-import "Simantics/DB"\r
-import "Simantics/Variables"\r
-\r
-importJava "org.simantics.document.server.io.IConsole" where\r
- data IConsole\r
- addMessage :: IConsole -> String -> <Proc> ()\r
-\r
-importJava "org.simantics.document.server.io.IDocument" where\r
- data IDocument\r
- elementIdToObjectId :: IDocument -> String -> <Proc> String\r
- getDocumentURI :: IDocument -> <Proc> String\r
- getSessionGUID :: IDocument -> <Proc> String\r
-\r
-importJava "org.simantics.document.server.io.ITableCell" where\r
- data ITableCell\r
-\r
-importJava "org.simantics.document.server.io.ITreeTableCell" where\r
- data ITreeTableCell\r
-\r
-importJava "org.simantics.document.server.io.IFont" where\r
- data IFont\r
-\r
-importJava "org.simantics.document.server.io.IColor" where\r
- data IColor\r
-\r
-importJava "org.simantics.modeling.services.ComponentNamingStrategy" where\r
- data ComponentNamingStrategy\r
-\r
-importJava "org.simantics.document.server.handler.EventHandler" where\r
- data EventHandler\r
-\r
-importJava "org.simantics.document.server.handler.AbstractEventHandler" where\r
- data AbstractEventHandler\r
-\r
-importJava "org.simantics.document.server.bean.Command" where\r
- data Command\r
-\r
-importJava "org.simantics.document.server.bean.DataDefinition" where\r
- data DataDefinition\r
-\r
-importJava "org.simantics.document.server.io.CommandContext" where\r
- data CommandContext\r
-\r
- @JavaName getString\r
- possibleString :: CommandContext -> String -> Maybe String\r
-\r
- @JavaName getValue\r
- possibleValue :: CommandContext -> String -> Maybe a\r
-\r
- @JavaName getValue\r
- justValue :: CommandContext -> String -> a\r
-\r
- @JavaName containsKey\r
- containsKey :: CommandContext -> String -> Boolean\r
- \r
- getKeys :: CommandContext -> [String]\r
-\r
-importJava "org.simantics.document.server.io.CommandContextMutable" where\r
- data CommandContextMutable\r
-\r
- @JavaName putString\r
- putString :: CommandContextMutable -> String -> String -> <Proc> CommandContextMutable\r
- \r
- putValue :: CommandContextMutable -> String -> a -> <Proc> CommandContextMutable\r
-\r
-importJava "org.simantics.document.server.io.CommandContextImpl" where\r
-\r
- @JavaName create\r
- commandContext :: () -> CommandContextMutable\r
-\r
-importJava "org.simantics.document.server.io.CommandResult" where\r
- data CommandResult\r
-\r
-importJava "org.simantics.document.server.serverResponse.ServerResponse" where\r
-\r
- @JavaName create\r
- commandResult :: Integer -> String -> CommandContextMutable -> CommandResult\r
-\r
-importJava "org.simantics.document.server.Functions" where\r
-\r
- @JavaName putTuple\r
- putTuple :: CommandContextMutable -> String -> a -> CommandContextMutable\r
-\r
- @JavaName getTuples\r
- getTuples :: CommandContext -> String -> [a]\r
-\r
- printContext :: CommandContext -> String\r
-\r
- commandList :: Variable -> <ReadGraph> [Command]\r
-\r
- dataDefinitions :: Variable -> <ReadGraph> [DataDefinition]\r
-\r
- emptyOnClick :: () -> <ReadGraph> AbstractEventHandler\r
- \r
- writeEventHandler :: Variable -> (Variable -> (String -> Maybe String) -> <WriteGraph> String) -> <ReadGraph> AbstractEventHandler\r
- readEventHandler :: Variable -> (Variable -> (String -> Maybe String) -> <ReadGraph> String) -> <ReadGraph> AbstractEventHandler\r
- eventHandler :: ((String -> Maybe String) -> String) -> <ReadGraph> AbstractEventHandler\r
-\r
- readEventHandler2 :: (CommandContext -> <ReadGraph> Maybe CommandResult) -> <ReadGraph> AbstractEventHandler\r
- writeEventHandler2 :: (CommandContext -> <WriteGraph> Maybe CommandResult) -> <ReadGraph> AbstractEventHandler\r
- eventHandler2 :: (CommandContext -> Maybe CommandResult) -> <ReadGraph> AbstractEventHandler\r
- \r
- responseHandler :: Variable -> String -> <ReadGraph> AbstractEventHandler\r
-\r
- sclStateVariable :: Variable -> Variable -> String -> <ReadGraph> Variable\r
- sclStateValueOrDefault :: Variable -> Variable -> String -> a -> <ReadGraph> a\r
- setSclStateValue :: Variable -> Variable -> String -> a -> <WriteGraph> ()\r
- \r
- projectComponentState :: Variable -> String -> a -> <ReadGraph> a\r
- setProjectComponentState :: Variable -> String -> a -> <WriteGraph> ()\r
-\r
- documentModelContribution :: Resource -> <ReadGraph> [Variable]\r
- documentModelContributionLabel :: Variable -> <ReadGraph> String\r
- \r
- @JavaName getPropertyValueCached\r
- propertyValueCached_ :: Variable -> String -> Binding a -> <ReadGraph> a\r
- \r
-propertyValueCached :: Serializable a => Typeable a => Variable -> String -> <ReadGraph> a\r
-propertyValueCached var prop = propertyValueCached_ var prop binding\r
- \r
-displayValue :: Variable -> String -> <ReadGraph> String\r
-displayValue var str = propertyValue (property var str) "HasDisplayValue"\r
-\r
-displayValue0 :: Variable -> <ReadGraph> String\r
-displayValue0 var = propertyValue var "HasDisplayValue"\r
-\r
-consoleLog :: Variable -> String -> <ReadGraph> ()\r
-consoleLog state message = do\r
- console = state#console\r
- runProc $ addMessage console message\r
-\r
-contextDocument :: CommandContext -> <Proc> IDocument\r
-contextDocument ctx = justValue ctx "__document__"\r
+import "Simantics/DB"
+import "Simantics/Variables"
+import "JavaBuiltin" as Java
+
+importJava "org.simantics.document.server.io.IConsole" where
+ data IConsole
+ addMessage :: IConsole -> String -> <Proc> ()
+ sendEvent :: IConsole -> String -> String -> Vector Dynamic -> <Proc> ()
+
+importJava "org.simantics.document.server.io.IDocument" where
+ data IDocument
+ elementIdToObjectId :: IDocument -> String -> <Proc> String
+ getDocumentURI :: IDocument -> <Proc> String
+ getSessionGUID :: IDocument -> <Proc> String
+
+importJava "org.simantics.document.server.io.ITableCell" where
+ data ITableCell
+
+importJava "org.simantics.document.server.io.ITreeTableCell" where
+ data ITreeTableCell
+
+importJava "org.simantics.document.server.io.IFont" where
+ data IFont
+
+ @JavaName getFamily
+ fontFamily :: IFont -> <Proc> Maybe String
+ @JavaName getStyle
+ fontStyle :: IFont -> <Proc> Maybe String
+ @JavaName getHeight
+ fontHeight :: IFont -> <Proc> Integer
+
+importJava "org.simantics.document.server.io.IColor" where
+ data IColor
+
+importJava "org.simantics.modeling.services.ComponentNamingStrategy" where
+ data ComponentNamingStrategy
+
+importJava "org.simantics.document.server.handler.EventHandler" where
+ data EventHandler
+
+importJava "org.simantics.document.server.handler.AbstractEventHandler" where
+ data AbstractEventHandler
+
+importJava "org.simantics.document.server.bean.Command" where
+ data Command
+
+importJava "org.simantics.document.server.bean.DataDefinition" where
+ data DataDefinition
+
+importJava "org.simantics.document.server.io.CommandContext" where
+ data CommandContext
+
+ @JavaName getString
+ possibleString :: CommandContext -> String -> Maybe String
+
+ @JavaName getValue
+ possibleValue :: CommandContext -> String -> Maybe a
+
+ @JavaName getValue
+ justValue :: CommandContext -> String -> a
+
+ @JavaName containsKey
+ containsKey :: CommandContext -> String -> Boolean
+
+ getKeys :: CommandContext -> [String]
+
+importJava "org.simantics.document.server.io.CommandContextMutable" where
+ data CommandContextMutable
+
+ @JavaName putString
+ putString :: CommandContextMutable -> String -> String -> <Proc> CommandContextMutable
+
+ putValue :: CommandContextMutable -> String -> a -> <Proc> CommandContextMutable
+
+ merge :: CommandContextMutable -> CommandContext -> <Proc> CommandContextMutable
+
+importJava "org.simantics.document.server.io.CommandContextImpl" where
+
+ @JavaName create
+ commandContext :: () -> CommandContextMutable
+
+instance Coercible CommandContextMutable CommandContext where
+ coerce = Java.unsafeCoerce
+
+cloneCommandContext :: CommandContext -> <Proc> CommandContextMutable
+cloneCommandContext context = merge (commandContext ()) context
+
+instance Show CommandContext where
+ show ctx = printContext ctx
+
+importJava "org.simantics.document.server.io.CommandResult" where
+ data CommandResult
+
+importJava "org.simantics.document.server.serverResponse.ServerResponse" where
+
+ @JavaName create
+ commandResult :: Integer -> String -> CommandContextMutable -> CommandResult
+
+importJava "org.simantics.document.server.Functions" where
+
+ @JavaName putTuple
+ putTuple :: CommandContextMutable -> String -> a -> CommandContextMutable
+
+ @JavaName getTuples
+ getTuples :: CommandContext -> String -> [a]
+
+ printContext :: CommandContext -> String
+
+ commandList :: Variable -> <ReadGraph> [Command]
+
+ dataDefinitions :: Variable -> <ReadGraph> [DataDefinition]
+
+ emptyOnClick :: () -> <ReadGraph> AbstractEventHandler
+
+ writeEventHandler :: Variable -> (Variable -> (String -> Maybe String) -> <WriteGraph> String) -> <ReadGraph> AbstractEventHandler
+ readEventHandler :: Variable -> (Variable -> (String -> Maybe String) -> <ReadGraph> String) -> <ReadGraph> AbstractEventHandler
+ eventHandler :: ((String -> Maybe String) -> String) -> <ReadGraph> AbstractEventHandler
+
+ readEventHandler2 :: (CommandContext -> <ReadGraph> Maybe CommandResult) -> <ReadGraph> AbstractEventHandler
+ writeEventHandler2 :: (CommandContext -> <WriteGraph> Maybe CommandResult) -> <ReadGraph> AbstractEventHandler
+ eventHandler2 :: (CommandContext -> Maybe CommandResult) -> <ReadGraph> AbstractEventHandler
+
+ responseHandler :: Variable -> String -> <ReadGraph> AbstractEventHandler
+
+ sclStateVariable :: Variable -> Variable -> String -> <ReadGraph> Variable
+ sclStateValueOrDefault :: Variable -> Variable -> String -> a -> <ReadGraph> a
+ setSclStateValue :: Variable -> Variable -> String -> a -> <WriteGraph> ()
+
+ projectComponentState :: Variable -> String -> a -> <ReadGraph> a
+ setProjectComponentState :: Variable -> String -> a -> <WriteGraph> ()
+
+ documentModelContribution :: Resource -> <ReadGraph> [Variable]
+ documentModelContributionLabel :: Variable -> <ReadGraph> String
+
+ @JavaName getPropertyValueCached
+ propertyValueCached_ :: Variable -> String -> Binding a -> <ReadGraph> a
+
+ stateVariable :: Variable -> <ReadGraph> Variable
+
+propertyValueCached :: Serializable a => Typeable a => Variable -> String -> <ReadGraph> a
+propertyValueCached var prop = propertyValueCached_ var prop binding
+
+displayValue :: Variable -> String -> <ReadGraph> String
+displayValue var str = propertyValue (property var str) "HasDisplayValue"
+
+displayValue0 :: Variable -> <ReadGraph> String
+displayValue0 var = propertyValue var "HasDisplayValue"
+
+consoleLog :: CommandContext -> String -> ()
+consoleLog context message = match possibleValue context "console" with
+ Nothing -> ()
+ Just console -> runProc $ addMessage console message
+
+contextDocument :: CommandContext -> <Proc> IDocument
+contextDocument ctx = justValue ctx "__document__"