X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=afp%2Fa4%2Fskeleton4.icl;h=6b96cd5e5d5cb7b0dd1008722847e585b7e07172;hb=3d178c7c12e836d3791180034d029cbd3897921a;hp=af496b73c7cc415efbf4fd965fa4fd7ab749f0c4;hpb=9e76dc6627279fc2a754ef4a0482fe5b4da209ec;p=clean-tests.git diff --git a/afp/a4/skeleton4.icl b/afp/a4/skeleton4.icl index af496b7..6b96cd5 100644 --- a/afp/a4/skeleton4.icl +++ b/afp/a4/skeleton4.icl @@ -73,7 +73,7 @@ gToString{|OBJECT|} fx (OBJECT x) = fx x instance + String where + s t = s +++ t -Start w = doTasks (changeName student) w +Start w = doTasks (changeNameEdcomb student) w enterStudent :: Task Student enterStudent = enterInformation "Enter a student" [] @@ -88,32 +88,33 @@ selectStudent :: ([Student] -> Task Student) selectStudent = enterChoice "Pick a student" [] selectStudentOnlyName :: ([Student] -> Task Student) -selectStudentOnlyName = enterChoice "Pick a student" [ChooseFromDropdown \s->s.Student.name] +selectStudentOnlyName = enterChoice "Pick a student" [ChooseFromDropdown \{Student|name}->name] selectStudentFormat :: ([Student] -> Task Student) selectStudentFormat = enterChoice "Pick a student" [ChooseFromDropdown gToString{|*|}] selectPartner :: ([Student] -> Task [Student]) -selectPartner = enterMultipleChoice "Pick a partner" [ChooseFromDropdown \s->s.Student.name + "(" + gToString{|*|} s.Student.bama + ")"] +selectPartner = enterMultipleChoice "Pick a partner" [ChooseFromDropdown \{name,bama}->name + "(" + gToString{|*|} bama + ")"] changeName :: Student -> Task Student changeName s = viewInformation "Student to change" [] s - ||- updateInformation "New name" [UpdateAs (\s->s.Student.name) (\s n->{Student | s & name=n})] s + ||- updateInformation "New name" [UpdateAs (\{Student|name}->name) (\s n->{Student | s & name=n})] s changeNameEdcomb :: Student -> Task Student changeNameEdcomb s - = updateInformation "New name" [UpdateUsing id (\_ v->v) studed] s + = updateInformation "New name" [UpdateUsing id (\_ v->v) nameEditor] s where - studed :: Editor Student - studed = bijectEditorValue - (\s->(s.Student.name, s.snum, s.bama, s.year)) + nameEditor :: Editor Student + nameEditor = bijectEditorValue + (\{name=n,snum=s,bama=b,year=y}->(n, s, b, y)) (\(n,s,b,y)->{name=n,snum=s,bama=b,year=y}) (container4 - gEditor{|*|} - (withChangedEditMode toView gEditor{|*|}) - (withChangedEditMode toView gEditor{|*|}) - (withChangedEditMode toView gEditor{|*|}) + (gEditor{|*|} <<@ labelAttr "name") + (withChangedEditMode toView gEditor{|*|} <<@ labelAttr "snum") + (withChangedEditMode toView gEditor{|*|} <<@ labelAttr "bama") + (withChangedEditMode toView gEditor{|*|} <<@ labelAttr "year") ) + toView (Update a) = View a toView v = v