ValueType modifications to satisfy compilation of SCL-expressions
[simantics/platform.git] / bundles / org.simantics.document.server / scl / Document / All.scl
1 import "Simantics/DB"
2 import "Simantics/Variables"
3 import "JavaBuiltin" as Java
4
5 importJava "org.simantics.document.server.io.IConsole" where
6     data IConsole
7     addMessage :: IConsole -> String -> <Proc> ()
8     sendEvent :: IConsole -> String -> String -> Vector Dynamic -> <Proc> ()
9
10 importJava "org.simantics.document.server.io.IDocument" where
11     data IDocument
12     elementIdToObjectId :: IDocument -> String -> <Proc> String
13     getDocumentURI :: IDocument -> <Proc> String
14     getSessionGUID :: IDocument -> <Proc> String
15
16 importJava "org.simantics.document.server.io.ITableCell" where
17     data ITableCell
18
19 importJava "org.simantics.document.server.io.ITreeTableCell" where
20     data ITreeTableCell
21
22 importJava "org.simantics.document.server.io.IFont" where
23     data IFont
24     
25     @JavaName getFamily
26     fontFamily :: IFont -> <Proc> Maybe String
27     @JavaName getStyle
28     fontStyle :: IFont -> <Proc> Maybe String
29     @JavaName getHeight
30     fontHeight :: IFont -> <Proc> Integer
31
32 importJava "org.simantics.document.server.io.IColor" where
33     data IColor
34
35 importJava "org.simantics.modeling.services.ComponentNamingStrategy" where
36     data ComponentNamingStrategy
37
38 importJava "org.simantics.document.server.handler.EventHandler" where
39     data EventHandler
40
41 importJava "org.simantics.document.server.handler.AbstractEventHandler" where
42     data AbstractEventHandler
43
44 importJava "org.simantics.document.server.bean.Command" where
45     data Command
46
47 importJava "org.simantics.document.server.bean.DataDefinition" where
48     data DataDefinition
49
50 importJava "org.simantics.document.server.io.CommandContext" where
51     data CommandContext
52
53     @JavaName getString
54     possibleString :: CommandContext -> String -> Maybe String
55
56     @JavaName getValue
57     possibleValue :: CommandContext -> String -> Maybe a
58
59     @JavaName getValue
60     justValue :: CommandContext -> String -> a
61
62     @JavaName containsKey
63     containsKey :: CommandContext -> String -> Boolean
64     
65     getKeys :: CommandContext -> [String]
66
67 importJava "org.simantics.document.server.io.CommandContextMutable" where
68     data CommandContextMutable
69
70     @JavaName putString
71     putString :: CommandContextMutable -> String -> String -> <Proc> CommandContextMutable
72     
73     putValue :: CommandContextMutable -> String -> a -> <Proc> CommandContextMutable
74
75     merge :: CommandContextMutable -> CommandContext -> <Proc> CommandContextMutable    
76
77 importJava "org.simantics.document.server.io.CommandContextImpl" where
78
79     @JavaName create
80     commandContext :: () -> CommandContextMutable
81
82 instance Coercible CommandContextMutable CommandContext where
83     coerce = Java.unsafeCoerce
84
85 cloneCommandContext :: CommandContext -> <Proc> CommandContextMutable
86 cloneCommandContext context = merge (commandContext ()) context
87
88 instance Show CommandContext where
89     show ctx = printContext ctx
90
91 importJava "org.simantics.document.server.io.CommandResult" where
92     data CommandResult
93
94 importJava "org.simantics.document.server.serverResponse.ServerResponse" where
95
96     @JavaName create
97     commandResult :: Integer -> String -> CommandContextMutable -> CommandResult
98
99 importJava "org.simantics.document.server.Functions" where
100
101     @JavaName putTuple
102     putTuple :: CommandContextMutable -> String -> a -> CommandContextMutable
103
104     @JavaName getTuples
105     getTuples :: CommandContext -> String -> [a]
106
107     printContext :: CommandContext -> String
108
109     commandList :: Variable -> <ReadGraph> [Command]
110
111     dataDefinitions :: Variable -> <ReadGraph> [DataDefinition]
112
113     emptyOnClick :: () -> <ReadGraph> AbstractEventHandler
114     
115     writeEventHandler :: Variable -> (Variable -> (String -> Maybe String) -> <WriteGraph> String) -> <ReadGraph> AbstractEventHandler
116     readEventHandler :: Variable -> (Variable -> (String -> Maybe String) -> <ReadGraph> String) -> <ReadGraph> AbstractEventHandler
117     eventHandler :: ((String -> Maybe String) -> String) -> <ReadGraph> AbstractEventHandler
118
119     readEventHandler2 :: (CommandContext -> <ReadGraph> Maybe CommandResult) -> <ReadGraph> AbstractEventHandler
120     writeEventHandler2 :: (CommandContext -> <WriteGraph> Maybe CommandResult) -> <ReadGraph> AbstractEventHandler
121     eventHandler2 :: (CommandContext -> Maybe CommandResult) -> <ReadGraph> AbstractEventHandler
122     
123     responseHandler :: Variable -> String -> <ReadGraph> AbstractEventHandler
124
125     sclStateVariable :: Variable -> Variable -> String -> <ReadGraph> Variable
126     sclStateValueOrDefault :: Variable -> Variable -> String -> a -> <ReadGraph> a
127     setSclStateValue :: Variable -> Variable -> String -> a -> <WriteGraph> ()
128     
129     projectComponentState :: Variable -> String -> a -> <ReadGraph> a
130     setProjectComponentState :: Variable -> String -> a -> <WriteGraph> ()
131
132     documentModelContribution :: Resource -> <ReadGraph> [Variable]
133     documentModelContributionLabel :: Variable -> <ReadGraph> String
134     
135     @JavaName getPropertyValueCached
136     propertyValueCached_ :: Variable -> String -> Binding a -> <ReadGraph> a
137     
138     stateVariable :: Variable -> <ReadGraph> Variable
139     
140     compileDocumentSCLValueExpression :: Variable -> <ReadGraph> String
141     
142 propertyValueCached :: Serializable a => Typeable a => Variable -> String -> <ReadGraph> a
143 propertyValueCached var prop = propertyValueCached_ var prop binding
144     
145 displayValue :: Variable -> String -> <ReadGraph> String
146 displayValue var str = propertyValue (property var str) "HasDisplayValue"
147
148 displayValue0 :: Variable -> <ReadGraph> String
149 displayValue0 var = propertyValue var "HasDisplayValue"
150
151 consoleLog :: CommandContext -> String -> ()
152 consoleLog context message = match possibleValue context "console" with
153   Nothing -> ()
154   Just console -> runProc $ addMessage console message
155
156 contextDocument :: CommandContext -> <Proc> IDocument
157 contextDocument ctx = justValue ctx "__document__"