X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=Shares%2FmTaskShare.icl;h=1e9294c4c92ada35639c760caabd421ff149c1e8;hb=5019b4f7dbeda8679421ec482f40b85eec9ebd72;hp=ad2e3413d857482a81480b81e083280b816a4f09;hpb=b3d2bd33a99a2dbdc4907b6876a965c16c37314c;p=mTask.git diff --git a/Shares/mTaskShare.icl b/Shares/mTaskShare.icl index ad2e341..1e9294c 100644 --- a/Shares/mTaskShare.icl +++ b/Shares/mTaskShare.icl @@ -1,2 +1,36 @@ 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 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 = viewSharedInformation "" [] (getSDSStore m) + <<@ Title ("SDS: " +++ toString m.identifier) @! () + +instance zero MTaskShare where + zero = {initValue=0,withTask="",identifier=0,realShare=""} +