Merge branch 'master' of gitlab.science.ru.nl:mlubbers/mTask
[mTask.git] / Shares / mTaskShare.icl
index 836b504..c0087d8 100644 (file)
@@ -1,11 +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, iTask a
+updateShare sh=:{withTask,identifier} a = getDeviceByName withTask
+       >>= sendMessages [MTUpd identifier $ toString $ toByteCode a]
+       >>| treturn sh
+
 
 viewShares :: [MTaskShare] -> Task ()
-viewShares st = anyTask (map viewer st)
+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=""}
 
-viewer :: MTaskShare -> Task ()
-viewer m = viewSharedInformation "" [] (getSDSStore m)
-       <<@ Title ("SDS: " +++ toString m.identifier) @! ()