implementation module Shares.mTaskShare import Utils.SDS import iTasks from Data.Func import $ manageShares :: [MTaskShare] -> Task () manageShares shares = forever (enterChoice "Choose share to update" [ChooseFromGrid id] shares >&^ \st->whileUnchanged st $ \msh->case msh of Nothing = viewShares shares @! zero Just sh = forever ( viewSharedInformation "View value" [] (getSDSStore sh) >>* [OnAction (Action "Update") (withValue $ Just $ updateInformation "New value" [])] >>= updateShare sh ) ) @! () updateShare :: MTaskShare Int -> Task MTaskShare updateShare sh=:{withTask} i = return sh viewShares :: [MTaskShare] -> Task () viewShares sh = anyTask (map viewShare sh) <<@ ArrangeHorizontal @! () viewShare :: MTaskShare -> Task () viewShare m = viewSharedInformation "" [] (getSDSStore m) <<@ Title ("SDS: " +++ toString m.identifier) @! () instance zero MTaskShare where zero = {initValue=0,withTask="",identifier=0,realShare=""}