]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.server/scl/Document/All.scl
Make Write-interfaces as @FunctionalInterface for lambdas
[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 importJava "org.simantics.document.server.io.IColor" where
26     data IColor
27
28 importJava "org.simantics.modeling.services.ComponentNamingStrategy" where
29     data ComponentNamingStrategy
30
31 importJava "org.simantics.document.server.handler.EventHandler" where
32     data EventHandler
33
34 importJava "org.simantics.document.server.handler.AbstractEventHandler" where
35     data AbstractEventHandler
36
37 importJava "org.simantics.document.server.bean.Command" where
38     data Command
39
40 importJava "org.simantics.document.server.bean.DataDefinition" where
41     data DataDefinition
42
43 importJava "org.simantics.document.server.io.CommandContext" where
44     data CommandContext
45
46     @JavaName getString
47     possibleString :: CommandContext -> String -> Maybe String
48
49     @JavaName getValue
50     possibleValue :: CommandContext -> String -> Maybe a
51
52     @JavaName getValue
53     justValue :: CommandContext -> String -> a
54
55     @JavaName containsKey
56     containsKey :: CommandContext -> String -> Boolean
57     
58     getKeys :: CommandContext -> [String]
59
60 importJava "org.simantics.document.server.io.CommandContextMutable" where
61     data CommandContextMutable
62
63     @JavaName putString
64     putString :: CommandContextMutable -> String -> String -> <Proc> CommandContextMutable
65     
66     putValue :: CommandContextMutable -> String -> a -> <Proc> CommandContextMutable
67
68     merge :: CommandContextMutable -> CommandContext -> <Proc> CommandContextMutable    
69
70 importJava "org.simantics.document.server.io.CommandContextImpl" where
71
72     @JavaName create
73     commandContext :: () -> CommandContextMutable
74
75 instance Coercible CommandContextMutable CommandContext where
76     coerce = Java.unsafeCoerce
77
78 cloneCommandContext :: CommandContext -> <Proc> CommandContextMutable
79 cloneCommandContext context = merge (commandContext ()) context
80
81 importJava "org.simantics.document.server.io.CommandResult" where
82     data CommandResult
83
84 importJava "org.simantics.document.server.serverResponse.ServerResponse" where
85
86     @JavaName create
87     commandResult :: Integer -> String -> CommandContextMutable -> CommandResult
88
89 importJava "org.simantics.document.server.Functions" where
90
91     @JavaName putTuple
92     putTuple :: CommandContextMutable -> String -> a -> CommandContextMutable
93
94     @JavaName getTuples
95     getTuples :: CommandContext -> String -> [a]
96
97     printContext :: CommandContext -> String
98
99     commandList :: Variable -> <ReadGraph> [Command]
100
101     dataDefinitions :: Variable -> <ReadGraph> [DataDefinition]
102
103     emptyOnClick :: () -> <ReadGraph> AbstractEventHandler
104     
105     writeEventHandler :: Variable -> (Variable -> (String -> Maybe String) -> <WriteGraph> String) -> <ReadGraph> AbstractEventHandler
106     readEventHandler :: Variable -> (Variable -> (String -> Maybe String) -> <ReadGraph> String) -> <ReadGraph> AbstractEventHandler
107     eventHandler :: ((String -> Maybe String) -> String) -> <ReadGraph> AbstractEventHandler
108
109     readEventHandler2 :: (CommandContext -> <ReadGraph> Maybe CommandResult) -> <ReadGraph> AbstractEventHandler
110     writeEventHandler2 :: (CommandContext -> <WriteGraph> Maybe CommandResult) -> <ReadGraph> AbstractEventHandler
111     eventHandler2 :: (CommandContext -> Maybe CommandResult) -> <ReadGraph> AbstractEventHandler
112     
113     responseHandler :: Variable -> String -> <ReadGraph> AbstractEventHandler
114
115     sclStateVariable :: Variable -> Variable -> String -> <ReadGraph> Variable
116     sclStateValueOrDefault :: Variable -> Variable -> String -> a -> <ReadGraph> a
117     setSclStateValue :: Variable -> Variable -> String -> a -> <WriteGraph> ()
118     
119     projectComponentState :: Variable -> String -> a -> <ReadGraph> a
120     setProjectComponentState :: Variable -> String -> a -> <WriteGraph> ()
121
122     documentModelContribution :: Resource -> <ReadGraph> [Variable]
123     documentModelContributionLabel :: Variable -> <ReadGraph> String
124     
125     @JavaName getPropertyValueCached
126     propertyValueCached_ :: Variable -> String -> Binding a -> <ReadGraph> a
127     
128     stateVariable :: Variable -> <ReadGraph> Variable
129     
130 propertyValueCached :: Serializable a => Typeable a => Variable -> String -> <ReadGraph> a
131 propertyValueCached var prop = propertyValueCached_ var prop binding
132     
133 displayValue :: Variable -> String -> <ReadGraph> String
134 displayValue var str = propertyValue (property var str) "HasDisplayValue"
135
136 displayValue0 :: Variable -> <ReadGraph> String
137 displayValue0 var = propertyValue var "HasDisplayValue"
138
139 consoleLog :: Variable -> String -> <ReadGraph> ()
140 consoleLog state message = do
141     console = state#console
142     runProc $ addMessage console message
143
144 contextDocument :: CommandContext -> <Proc> IDocument
145 contextDocument ctx = justValue ctx "__document__"