]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.modeling.ui/scl/Simantics/Testing/BrowseContext.scl
Merge "Added effectful Kleisli composition to Prelude."
[simantics/platform.git] / bundles / org.simantics.modeling.ui / scl / Simantics / Testing / BrowseContext.scl
1 import "Simantics/Variables"
2 import "Map" as Map
3 include "Simantics/Testing/BuiltinKeys" as BuiltinKeys
4
5 importJava "org.simantics.browsing.ui.model.browsecontexts.BrowseContext" where
6     """
7     BrowseContext holds all contributions related to given set of browse contexts.
8     """
9     data BrowseContext
10     
11     @JavaName getChildren
12     """
13     Returns the possible children of the given NodeContext parameter.
14     """
15     browseContextChildren :: BrowseContext -> NodeContext -> <ReadGraph> Collection NodeContext
16     
17     @JavaName getParents
18     """
19     Returns the possible parents of the given NodeContext parameter.
20     """
21     browseContextParents:: BrowseContext -> NodeContext -> <ReadGraph> Collection NodeContext
22     
23     @JavaName getLabel
24     """
25     Finds labels for the given NodeContext parameter.
26     """
27     browseContextLabel :: BrowseContext -> NodeContext -> <ReadGraph> Map.T String String
28     
29     @JavaName getImage
30     """
31     Finds @link ImageDescriptors for the given NodeContext parameter.
32     """
33     browseContextImage :: BrowseContext -> NodeContext -> <ReadGraph> Map.T String ImageDescriptor
34     
35     @JavaName getCheckedState
36     """
37     Finds if the given NodeContext is checked or not.
38     """
39     browseContextCheckedState :: BrowseContext -> NodeContext -> <ReadGraph> CheckedState
40     
41     @JavaName getLabelDecorator
42     """
43     Finds LabelDecorator for the given NodeContext parameter.
44     """
45     browseContextLabelDecorator :: BrowseContext -> NodeContext -> <ReadGraph> LabelDecorator
46     
47     @JavaName getImageDecorator
48     """
49     Finds ImageDecorator for the given NodeContext parameter.
50     """
51     browseContextImageDecorator :: BrowseContext -> NodeContext -> <ReadGraph> ImageDecorator
52     
53     @JavaName getModifier
54     """
55     Finds Modifier for the given NodeContext parameter.
56     """
57     browseContextModifier :: BrowseContext -> NodeContext -> String -> <ReadGraph> Maybe Modifier
58     
59     @private
60     create :: [Resource] -> <ReadGraph> BrowseContext
61
62 importJava "org.simantics.browsing.ui.NodeContext" where
63     """
64     A context used to represent a single visible UI item. 
65     """
66     data NodeContext
67     
68     """
69     Finds value with the specified key or <code>null</code> if there was no value for the key
70     """
71     getConstant :: NodeContext -> BuiltinKeys.ConstantKey -> <Proc> a
72
73 importJava "org.eclipse.jface.resource.ImageDescriptor" where
74     data ImageDescriptor
75
76 importJava "org.simantics.browsing.ui.content.ImageDecorator" where
77     data ImageDecorator
78
79 importJava "org.eclipse.jface.resource.DeviceResourceDescriptor" where
80     data FontDescriptor
81
82 importJava "org.eclipse.jface.resource.ColorDescriptor" where    
83     data ColorDescriptor
84
85 importJava "org.eclipse.jface.resource.FontDescriptor" where
86     @private
87     @JavaName createFrom
88     createFontDescriptorFrom :: String -> Integer -> Integer -> FontDescriptor
89
90 importJava "org.simantics.modeling.ColorDescriptorUtil" where
91     colorDescriptorAsHex :: ColorDescriptor -> <Proc> String
92     colorDescriptorAsTuple3 :: ColorDescriptor -> <Proc> (Double, Double, Double)
93     colorDescriptor :: (Double, Double, Double) -> <Proc> ColorDescriptor
94
95 defaultFontDescriptor = createFontDescriptorFrom "Arial" 12 0 
96
97 importJava "org.simantics.browsing.ui.content.LabelDecorator" where
98     """
99     An interface for decorating aesthetic properties of an UI item, including the label text, font, background color and foreground color.
100     """
101     data LabelDecorator
102     
103     """
104     Decorates the given label with the name of the UI column which the label is for and  the index of this label within its parenting INodeContext.
105     Returns the decorated Label 
106     """
107     decorateLabel :: LabelDecorator -> String -> String -> Integer -> <Proc> Maybe String
108     decorateForeground :: LabelDecorator -> a -> String -> Integer -> <Proc> a
109     decorateBackground :: LabelDecorator -> a -> String -> Integer -> <Proc> a
110     decorateFont :: LabelDecorator -> Maybe a -> String -> Integer -> <Proc> Maybe a
111
112 importJava "org.simantics.browsing.ui.CheckedState" where
113     data CheckedState
114
115 importJava "org.simantics.browsing.ui.content.Labeler$Modifier" where
116     data Modifier
117     
118     getValue :: Modifier -> <Proc> String
119     isValid :: Modifier -> String -> <Proc> Maybe String
120     modify :: Modifier -> String -> <Proc> ()
121
122 importJava "org.simantics.browsing.ui.model.browsecontexts.BrowseContexts" where
123     toBrowseContextG :: Vector String -> <ReadGraph> BrowseContext
124     getNodeContextForResource :: Resource -> <Proc> NodeContext
125     getNodeContextWithTypeForResource :: Resource -> <Proc, ReadGraph> NodeContext
126
127 """
128 Creates a new BrowseContext for the given Collection of Resources.
129 """
130 createBrowseContext :: [Resource] -> <ReadGraph> BrowseContext
131 createBrowseContext resource = do
132     create resource
133
134 importJava "org.simantics.browsing.ui.common.NodeContextBuilder" where
135     buildWithInput :: a -> <Proc> NodeContext
136
137 instanceOfTest :: Variable -> <ReadGraph> (Resource -> <ReadGraph> Boolean)
138 instanceOfTest self = do
139   typeResource = singleObject (represents $ parent self) MOD.InstanceOfTest.HasType
140   (\r -> isInstanceOf r typeResource)