X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=Shares%2FmTaskShare.icl;h=8eb7dc081b3da404d8c6d349ff3f4811f9fe7095;hb=5f4c4b61ea1e4062e90715af9e1027da6d1c7a66;hp=c0087d8ee663f9dc70c605c1189ba16a395a36c3;hpb=ff7049a99f7fdd701d49222019df65a9aee8f05a;p=mTask.git diff --git a/Shares/mTaskShare.icl b/Shares/mTaskShare.icl index c0087d8..8eb7dc0 100644 --- a/Shares/mTaskShare.icl +++ b/Shares/mTaskShare.icl @@ -1,36 +1,49 @@ 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 manageShares :: [MTaskShare] -> Task () -manageShares shares = forever (enterChoice "Choose share to update" [ChooseFromGrid id] shares +manageShares shares = + forever (enterChoice "Choose share to update" [ChooseFromGrid id] shares >&^ \st->whileUnchanged st $ \msh->case msh of - Nothing = viewShares shares @! zero + Nothing = viewShares shares Just sh = forever ( - viewSharedInformation "View value" [] (getSDSStore sh) - >>* [OnAction (Action "Update") (withValue (Just o updateInformation "New value" []))] - >>= updateShare sh + 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 +//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 @! () +viewShares :: [MTaskShare] -> Task MTaskShare +viewShares sh = anyTask (map viewShare sh) <<@ ArrangeHorizontal + >>| return (hd sh) -viewShare :: MTaskShare -> Task () -viewShare m = treturn ()//viewSharedInformation "" [] (getSDSStore m) - //<<@ Title ("SDS: " +++ toString m.identifier) @! () +viewShare :: MTaskShare -> Task String +viewShare m = viewSharedInformation "" [] (getSDSShare m) + <<@ Title ("SDS: " +++ toString m.identifier) -instance zero MTaskShare where - zero = {withTask="",identifier=0,realShare=""} +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 + ,realShare=MTaskWithShare $ "mTaskSDS-" +++ toString identifier + } >>= \sh->set value (getSDSShare sh) >>| treturn sh