import (
"fmt"
"os"
+ "strconv"
"github.com/gotk3/gotk3/gtk"
)
}
type Education struct {
- SchoolName string
- YearOfPassing int
- PassPercentage float32
+ Qualification string
+ Institution string
+ YearOfPassing uint
+ GradeOrPercentage string
}
type Sex int
}
} */
+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 wnd, nil
}
-func LoadMain() {
+func loadMain() {
gtk.Init(nil)
var err error
ui, err = gtk.BuilderNew()
ui.AddFromString(string(asset))
ui.ConnectSignals(map[string]interface{}{"SexMaleSelected": sexMaleSelected,
"SexFemaleSelected": sexFemaleSelected, "SexOtherSelected": sexOtherSelected,
- "SaveButtonClicked": SaveButtonClicked, "DoBSelected": doBSelected})
+ "SaveButtonClicked": saveButtonClicked, "DoBSelected": doBSelected,
+ "AddEducationClicked": addEducationClicked})
wnd, err := getWindow()
if err != nil {
selecteddate.Year, selecteddate.Month, selecteddate.Day = dob.GetDate()
}
-func SaveButtonClicked() {
+func getEducationFields() (*Education, error) {
+ ed := new(Education)
+ qual, err := getLineText("QualificationTitle")
+ if err != nil {
+ return nil, err
+ }
+ inst, err := getLineText("InstitutionName")
+ if err != nil {
+ return nil, err
+ }
+ yearp, err := getLineText("YearPassing")
+ if err != nil {
+ return nil, err
+ }
+ year, err := strconv.Atoi(yearp)
+ if err != nil {
+ return nil, err
+ }
+ gradep, err := getLineText("GradeOrPercentag")
+ if err != nil {
+ return nil, err
+ }
+ ed.Qualification = qual
+ ed.Institution = inst
+ ed.YearOfPassing = uint(year)
+ ed.GradeOrPercentage = gradep
+
+ return ed, nil
+}
+
+func addEducationClicked() {
+ ed, err := getEducationFields()
+ if err != nil {
+ return
+ }
+ lstore, err := ui.GetObject("EducationStore")
+ if err != nil {
+ return
+ }
+ edustore, ok := lstore.(*gtk.ListStore)
+ if !ok {
+ return
+ }
+ iter := edustore.Append()
+ edustore.SetValue(iter, 0, ed.Qualification)
+ edustore.SetValue(iter, 1, ed.Institution)
+ edustore.SetValue(iter, 2, ed.YearOfPassing)
+ edustore.SetValue(iter, 3, ed.GradeOrPercentage)
+
+ setLineText("QualificationTitle", "")
+ setLineText("InstitutionName", "")
+ setLineText("YearPassing", "")
+ setLineText("GradeOrPercentag", "")
+}
+
+func saveButtonClicked() {
a, err := getBasicDetails()
if err != nil {
fmt.Println(err.Error())
}
func main() {
- LoadMain()
+ loadMain()
}