+func setLineText(fieldname string, buf string) {
+ obj, err := ui.GetObject(fieldname)
+ if err != nil {
+ return
+ }
+ field, ok := obj.(*gtk.Entry)
+ if !ok {
+ return
+ }
+ field.SetText(buf)
+}
+
+func getLineText(fieldname string) (string, error) {
+ obj, err := ui.GetObject(fieldname)
+ if err != nil {
+ return "", err
+ }
+ field, ok := obj.(*gtk.Entry)
+ if !ok {
+ return "", err
+ }
+ fieldstr, err := field.GetText()
+ if err != nil {
+ return "", err
+ }
+ return fieldstr, nil
+}
+
+func getMultilineText(fieldname string) (string, error) {
+ obj, err := ui.GetObject(fieldname)
+ if err != nil {
+ return "", err
+ }
+ fieldctl, ok := obj.(*gtk.TextView)
+ if !ok {
+ return "", err
+ }
+ textbuf, err := fieldctl.GetBuffer()
+ if err != nil {
+ return "", err
+ }
+ start, end := textbuf.GetBounds()
+ textstr, err := textbuf.GetText(start, end, true)
+ if err != nil {
+ return "", err
+ }
+ return textstr, nil
+}
+
+func getBasicDetails() (*Applicant, error) {
+ // Retrieve all the fields.
+
+ firstname, err := getLineText("FirstName")
+ if err != nil {
+ return nil, err
+ }
+ lastname, err := getLineText("LastName")
+ if err != nil {
+ return nil, err
+ }
+
+ address, err := getMultilineText("Address")
+ if err != nil {
+ return nil, err
+ }
+
+ contact, err := getLineText("ContactNumber")
+ if err != nil {
+ return nil, err
+ }
+ email, err := getLineText("Email")
+ if err != nil {
+ return nil, err
+ }
+
+ // Store the contents in Applicant object
+ var applicant = new(Applicant)
+
+ applicant.FirstName = firstname
+ applicant.LastName = lastname
+ applicant.DateOfBirth = selecteddate
+ applicant.Sex = selectedsex
+ applicant.Address = address
+ applicant.ContactNo = contact
+ applicant.Email = email
+
+ return applicant, nil
+}
+
+func getWindow() (*gtk.Window, error) {