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)
+ @! ()
+
+
+
+/*
+ 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 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="",initVal=""}
+