7 "github.com/gotk3/gotk3/gtk"
10 type Applicant struct {
27 type Education struct {
30 PassPercentage float32
45 /* func SaveToJson(a *Applicant) {
46 b, err := json.Marshal(a)
49 fmt.Println(err.Error())
52 err = ioutil.WriteFile("test.json", b, 0644)
54 fmt.Println(err.Error())
59 func getLineText(fieldname string) (string, error) {
60 obj, err := ui.GetObject(fieldname)
64 field, ok := obj.(*gtk.Entry)
68 fieldstr, err := field.GetText()
75 func getMultilineText(fieldname string) (string, error) {
76 obj, err := ui.GetObject(fieldname)
80 fieldctl, ok := obj.(*gtk.TextView)
84 textbuf, err := fieldctl.GetBuffer()
88 start, end := textbuf.GetBounds()
89 textstr, err := textbuf.GetText(start, end, true)
96 func getBasicDetails() (*Applicant, error) {
97 // Retrieve all the fields.
99 firstname, err := getLineText("FirstName")
103 lastname, err := getLineText("LastName")
108 address, err := getMultilineText("Address")
113 contact, err := getLineText("ContactNumber")
117 email, err := getLineText("Email")
122 // Store the contents in Applicant object
123 var applicant = new(Applicant)
125 applicant.FirstName = firstname
126 applicant.LastName = lastname
127 applicant.DateOfBirth = selecteddate
128 applicant.Sex = selectedsex
129 applicant.Address = address
130 applicant.ContactNo = contact
131 applicant.Email = email
133 return applicant, nil
136 func getWindow() (*gtk.Window, error) {
137 obj, err := ui.GetObject("MainWindow")
139 fmt.Println(err.Error())
142 wnd, ok := obj.(*gtk.Window)
152 ui, err = gtk.BuilderNew()
154 fmt.Println(err.Error())
157 asset, err := Asset("resources/resumebuilder.glade")
159 fmt.Println(err.Error())
162 ui.AddFromString(string(asset))
163 ui.ConnectSignals(map[string]interface{}{"SexMaleSelected": sexMaleSelected,
164 "SexFemaleSelected": sexFemaleSelected, "SexOtherSelected": sexOtherSelected,
165 "SaveButtonClicked": SaveButtonClicked, "DoBSelected": doBSelected})
167 wnd, err := getWindow()
172 wnd.SetTitle("Resume Builder")
176 wnd.Connect("destroy", func() {
182 func sexMaleSelected(male *gtk.RadioButton) {
183 if male.GetActive() {
188 func sexFemaleSelected(female *gtk.RadioButton) {
189 if female.GetActive() {
194 func sexOtherSelected(other *gtk.RadioButton) {
195 if other.GetActive() {
200 func doBSelected(dob *gtk.Calendar) {
201 selecteddate.Year, selecteddate.Month, selecteddate.Day = dob.GetDate()
204 func SaveButtonClicked() {
205 a, err := getBasicDetails()
207 fmt.Println(err.Error())