]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.modeling.ui/scl/Simantics/Testing/BrowseContext.scl
Merge "Revert "Support enumerated property types in UC interface""
[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     CHECKED :: CheckedState
115     GRAYED :: CheckedState
116     NOT_CHECKED :: CheckedState
117
118 importJava "org.simantics.browsing.ui.content.Labeler$Modifier" where
119     data Modifier
120     
121     getValue :: Modifier -> <Proc> String
122     isValid :: Modifier -> String -> <Proc> Maybe String
123     modify :: Modifier -> String -> <Proc> ()
124
125 importJava "org.simantics.browsing.ui.model.browsecontexts.BrowseContexts" where
126     toBrowseContextG :: Vector String -> <ReadGraph> BrowseContext
127     getNodeContextForResource :: Resource -> <Proc> NodeContext
128     getNodeContextWithTypeForResource :: Resource -> <Proc, ReadGraph> NodeContext
129
130 """
131 Creates a new BrowseContext for the given Collection of Resources.
132 """
133 createBrowseContext :: [Resource] -> <ReadGraph> BrowseContext
134 createBrowseContext resource = do
135     create resource
136
137 importJava "org.simantics.browsing.ui.common.NodeContextBuilder" where
138     buildWithInput :: a -> <Proc> NodeContext
139
140 instanceOfTest :: Variable -> <ReadGraph> (Resource -> <ReadGraph> Boolean)
141 instanceOfTest self = do
142   typeResource = singleObject (represents $ parent self) MOD.InstanceOfTest.HasType
143   (\r -> isInstanceOf r typeResource) 
144
145 type BrowseNodeRule a = VariableOrResource -> <ReadGraph,Proc> a  
146