c0087d8ee663f9dc70c605c1189ba16a395a36c3
[mTask.git] / Shares / mTaskShare.icl
1 implementation module Shares.mTaskShare
2
3 import Utils.SDS
4 import Utils.Devices
5 import iTasks
6 import mTask
7 from Data.Func import $
8
9 manageShares :: [MTaskShare] -> Task ()
10 manageShares shares = forever (enterChoice "Choose share to update" [ChooseFromGrid id] shares
11 >&^ \st->whileUnchanged st $ \msh->case msh of
12 Nothing = viewShares shares @! zero
13 Just sh = forever (
14 viewSharedInformation "View value" [] (getSDSStore sh)
15 >>* [OnAction (Action "Update") (withValue (Just o updateInformation "New value" []))]
16 >>= updateShare sh
17 )
18
19 ) @! ()
20
21 updateShare :: MTaskShare a -> Task MTaskShare | toByteCode, iTask a
22 updateShare sh=:{withTask,identifier} a = getDeviceByName withTask
23 >>= sendMessages [MTUpd identifier $ toString $ toByteCode a]
24 >>| treturn sh
25
26
27 viewShares :: [MTaskShare] -> Task ()
28 viewShares sh = anyTask (map viewShare sh) <<@ ArrangeHorizontal @! ()
29
30 viewShare :: MTaskShare -> Task ()
31 viewShare m = treturn ()//viewSharedInformation "" [] (getSDSStore m)
32 //<<@ Title ("SDS: " +++ toString m.identifier) @! ()
33
34 instance zero MTaskShare where
35 zero = {withTask="",identifier=0,realShare=""}
36