implementation module Shares.mTaskShare import Utils.SDS import Utils.Devices import iTasks import mTask 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 o updateInformation "New value" []))] >>= updateShare sh ) ) @! () updateShare :: MTaskShare a -> Task MTaskShare | toByteCode, iTask a updateShare sh=:{withTask,identifier} a = getDeviceByName withTask >>= sendMessages [MTUpd identifier $ toString $ toByteCode a] >>| treturn sh viewShares :: [MTaskShare] -> Task () viewShares sh = anyTask (map viewShare sh) <<@ ArrangeHorizontal @! () viewShare :: MTaskShare -> Task () viewShare m = treturn ()//viewSharedInformation "" [] (getSDSStore m) //<<@ Title ("SDS: " +++ toString m.identifier) @! () instance zero MTaskShare where zero = {withTask="",identifier=0,realShare=""}