X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=Shares%2FmTaskShare.icl;h=7f9a2f499dbdc3576039cf4a891f8296d701673a;hb=18c1286739897b65578e87b17167c6cef1922a3b;hp=ad2e3413d857482a81480b81e083280b816a4f09;hpb=b3d2bd33a99a2dbdc4907b6876a965c16c37314c;p=mTask.git diff --git a/Shares/mTaskShare.icl b/Shares/mTaskShare.icl index ad2e341..7f9a2f4 100644 --- a/Shares/mTaskShare.icl +++ b/Shares/mTaskShare.icl @@ -1,2 +1,58 @@ implementation module Shares.mTaskShare +import dynamic_string +import Utils.SDS +import Utils.Devices +import iTasks +import mTask +from Data.Func import $ + +derive class iTask MTaskShareType + +derive gEditor MTaskShare +derive gText MTaskShare +derive JSONEncode MTaskShare +derive JSONDecode MTaskShare +derive gDefault MTaskShare +gEq{|MTaskShare|} m1 m2 = m1.identifier == m2.identifier + +manageShares :: [MTaskShare] -> Task () +manageShares shares = + forever (enterChoice "Choose share to update" [ChooseFromGrid id] shares + >&^ \st->whileUnchanged st $ \msh->case msh of + Nothing = viewShares shares + Just sh = forever ( + viewSharedInformation "View value" [] (getSDSShare sh) >>| treturn 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 MTaskShare +viewShares sh = anyTask (map viewShare sh) <<@ ArrangeHorizontal + >>| return (hd sh) + +viewShare :: MTaskShare -> Task String +viewShare m = viewSharedInformation "" [] (getSDSShare m) + <<@ Title ("SDS: " +++ toString m.identifier) + +getSDSShare :: MTaskShare -> Shared String +getSDSShare s=:{realShare=(MTaskWithShare id)} + = memoryShare id s.MTaskShare.value + +makeShare :: String Int String -> Task MTaskShare +makeShare withTask identifier value = treturn + {MTaskShare + |withTask=withTask + ,identifier=identifier + ,value=value + ,dynvalue=dynamic value + ,realShare=MTaskWithShare $ "mTaskSDS-" +++ toString identifier + } >>= \sh->set value (getSDSShare sh) >>| treturn sh