]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.browsing.ui.model/src/org/simantics/browsing/ui/model/visuals/VisualsContribution.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.browsing.ui.model / src / org / simantics / browsing / ui / model / visuals / VisualsContribution.java
index 01d2078ce752fb55eaa2d289cba77c8a58056605..824ab862d3a6b490311d26083658a5195e3bef40 100644 (file)
-/*******************************************************************************\r
- * Copyright (c) 2010, 2011 Association for Decentralized Information Management in\r
- * Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *     VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.browsing.ui.model.visuals;\r
-\r
-import org.simantics.browsing.ui.model.InvalidContribution;\r
-import org.simantics.browsing.ui.model.check.CheckedStateContribution;\r
-import org.simantics.browsing.ui.model.check.CheckedStateRule;\r
-import org.simantics.browsing.ui.model.imagedecorators.ImageDecorationContribution;\r
-import org.simantics.browsing.ui.model.imagedecorators.ImageDecorationRule;\r
-import org.simantics.browsing.ui.model.images.ImageContribution;\r
-import org.simantics.browsing.ui.model.images.ImageRule;\r
-import org.simantics.browsing.ui.model.labeldecorators.LabelDecorationContribution;\r
-import org.simantics.browsing.ui.model.labeldecorators.LabelDecorationRule;\r
-import org.simantics.browsing.ui.model.labels.LabelContribution;\r
-import org.simantics.browsing.ui.model.labels.LabelRule;\r
-import org.simantics.browsing.ui.model.modifiers.ModifierContribution;\r
-import org.simantics.browsing.ui.model.modifiers.ModifierRule;\r
-import org.simantics.browsing.ui.model.nodetypes.NodeType;\r
-import org.simantics.browsing.ui.model.nodetypes.OrderedNodeTypeMultiMap;\r
-import org.simantics.browsing.ui.model.sorters.SorterContribution;\r
-import org.simantics.browsing.ui.model.sorters.SorterRule;\r
-import org.simantics.browsing.ui.model.tests.Test;\r
-import org.simantics.browsing.ui.model.tooltips.TooltipContribution;\r
-import org.simantics.browsing.ui.model.tooltips.TooltipRule;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.exception.AdaptionException;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.viewpoint.ontology.ViewpointResource;\r
-\r
-/**\r
- * Produces labels for nodes of given node type.\r
- * @author Hannu Niemistö\r
- */\r
-public class VisualsContribution implements Comparable<VisualsContribution> {\r
-    protected NodeType nodeType;\r
-    protected Test test;\r
-    protected double priority;\r
-    \r
-    public VisualsContribution(NodeType nodeType, Test test, double priority) throws InvalidContribution {\r
-        if(test != null && !test.isCompatible(\r
-                nodeType.getContentType()\r
-                ))\r
-            throw new InvalidContribution("Test is not compatible with the content type.");\r
-        this.nodeType = nodeType;\r
-        this.test = test;\r
-        this.priority = priority;\r
-    }\r
-    \r
-    public static void load(ReadGraph g, Resource visualsContributionResource,\r
-            OrderedNodeTypeMultiMap<LabelContribution> labelContributions,\r
-            OrderedNodeTypeMultiMap<ImageContribution> imageContributions,\r
-            OrderedNodeTypeMultiMap<CheckedStateContribution> checkedStateContributions,\r
-            OrderedNodeTypeMultiMap<LabelDecorationContribution> labelDecorationContributions,\r
-            OrderedNodeTypeMultiMap<ImageDecorationContribution> imageDecorationContributions,\r
-            OrderedNodeTypeMultiMap<ModifierContribution> modifierContributions,\r
-            OrderedNodeTypeMultiMap<SorterContribution> sorterContributions,\r
-            OrderedNodeTypeMultiMap<FlatNodeContribution> flatNodeContributions,\r
-            OrderedNodeTypeMultiMap<TooltipContribution> tooltipContributions)\r
-    throws DatabaseException, InvalidContribution {\r
-        ViewpointResource vr = ViewpointResource.getInstance(g);\r
-        \r
-        Resource testResource = g.getPossibleObject(visualsContributionResource, vr.VisualsContribution_HasCondition);\r
-        Test test = testResource == null ? null : g.adapt(testResource, Test.class);\r
-        \r
-        Double mpriority = g.getPossibleRelatedValue(visualsContributionResource, vr.VisualsContribution_HasPriority);\r
-        double priority = mpriority == null ? 0.0 : mpriority.doubleValue();         \r
-        \r
-        for(Resource nodeTypeResource : g.getObjects(visualsContributionResource, vr.VisualsContribution_HasNodeType)) {\r
-            NodeType nodeType = g.adapt(nodeTypeResource, NodeType.class);\r
-\r
-            for(Resource ruleResource : g.getObjects(visualsContributionResource, vr.VisualsContribution_HasRule)) {\r
-                if(ruleResource.equals(vr.FlatNodeRule)) \r
-                    flatNodeContributions.put(nodeType, FlatNodeContribution.INSTANCE);\r
-                else {          \r
-                    VisualsRule rule;\r
-                    try {\r
-                        rule = g.adapt(ruleResource, VisualsRule.class);\r
-                    } catch(AdaptionException e) {\r
-                        e.printStackTrace();\r
-                        continue;\r
-                    }                    \r
-                    try {\r
-                        // Note: the rule may be an instance of multiple interfaces\r
-                        if(rule instanceof LabelRule)\r
-                            labelContributions.put(nodeType, new LabelContribution(nodeType, test, (LabelRule)rule, priority));\r
-                        if(rule instanceof ModifierRule)\r
-                            modifierContributions.put(nodeType, new ModifierContribution(nodeType, test, (ModifierRule)rule, priority));\r
-                        if(rule instanceof ImageRule)\r
-                            imageContributions.put(nodeType, new ImageContribution(nodeType, test, (ImageRule)rule, priority));\r
-                        if(rule instanceof CheckedStateRule)\r
-                            checkedStateContributions.put(nodeType, new CheckedStateContribution(nodeType, test, (CheckedStateRule)rule, priority));\r
-                        if(rule instanceof LabelDecorationRule)\r
-                            labelDecorationContributions.put(nodeType, new LabelDecorationContribution(nodeType, test, (LabelDecorationRule)rule, priority));\r
-                        if(rule instanceof ImageDecorationRule)\r
-                            imageDecorationContributions.put(nodeType, new ImageDecorationContribution(nodeType, test, (ImageDecorationRule)rule, priority));\r
-                        if(rule instanceof SorterRule)\r
-                            sorterContributions.put(nodeType, new SorterContribution(nodeType, test, (SorterRule)rule, priority));\r
-                        if(rule instanceof TooltipRule)\r
-                            tooltipContributions.put(nodeType, new TooltipContribution(nodeType, test, (TooltipRule)rule, priority));\r
-                    } catch(InvalidContribution e) {\r
-                        e.printStackTrace();\r
-                        continue;\r
-                    }\r
-                }\r
-            }\r
-        }\r
-    }   \r
-    \r
-    public NodeType getNodeType() {\r
-        return nodeType;\r
-    }\r
-\r
-    @Override\r
-    public int compareTo(VisualsContribution o) {\r
-        return Double.compare(o.priority, priority);\r
-    }\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2010, 2011 Association for Decentralized Information Management in
+ * Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.browsing.ui.model.visuals;
+
+import org.simantics.browsing.ui.model.InvalidContribution;
+import org.simantics.browsing.ui.model.check.CheckedStateContribution;
+import org.simantics.browsing.ui.model.check.CheckedStateRule;
+import org.simantics.browsing.ui.model.imagedecorators.ImageDecorationContribution;
+import org.simantics.browsing.ui.model.imagedecorators.ImageDecorationRule;
+import org.simantics.browsing.ui.model.images.ImageContribution;
+import org.simantics.browsing.ui.model.images.ImageRule;
+import org.simantics.browsing.ui.model.labeldecorators.LabelDecorationContribution;
+import org.simantics.browsing.ui.model.labeldecorators.LabelDecorationRule;
+import org.simantics.browsing.ui.model.labels.LabelContribution;
+import org.simantics.browsing.ui.model.labels.LabelRule;
+import org.simantics.browsing.ui.model.modifiers.ModifierContribution;
+import org.simantics.browsing.ui.model.modifiers.ModifierRule;
+import org.simantics.browsing.ui.model.nodetypes.NodeType;
+import org.simantics.browsing.ui.model.nodetypes.OrderedNodeTypeMultiMap;
+import org.simantics.browsing.ui.model.sorters.SorterContribution;
+import org.simantics.browsing.ui.model.sorters.SorterRule;
+import org.simantics.browsing.ui.model.tests.Test;
+import org.simantics.browsing.ui.model.tooltips.TooltipContribution;
+import org.simantics.browsing.ui.model.tooltips.TooltipRule;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.AdaptionException;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.viewpoint.ontology.ViewpointResource;
+
+/**
+ * Produces labels for nodes of given node type.
+ * @author Hannu Niemistö
+ */
+public class VisualsContribution implements Comparable<VisualsContribution> {
+    protected NodeType nodeType;
+    protected Test test;
+    protected double priority;
+    
+    public VisualsContribution(NodeType nodeType, Test test, double priority) throws InvalidContribution {
+        if(test != null && !test.isCompatible(
+                nodeType.getContentType()
+                ))
+            throw new InvalidContribution("Test is not compatible with the content type.");
+        this.nodeType = nodeType;
+        this.test = test;
+        this.priority = priority;
+    }
+    
+    public static void load(ReadGraph g, Resource visualsContributionResource,
+            OrderedNodeTypeMultiMap<LabelContribution> labelContributions,
+            OrderedNodeTypeMultiMap<ImageContribution> imageContributions,
+            OrderedNodeTypeMultiMap<CheckedStateContribution> checkedStateContributions,
+            OrderedNodeTypeMultiMap<LabelDecorationContribution> labelDecorationContributions,
+            OrderedNodeTypeMultiMap<ImageDecorationContribution> imageDecorationContributions,
+            OrderedNodeTypeMultiMap<ModifierContribution> modifierContributions,
+            OrderedNodeTypeMultiMap<SorterContribution> sorterContributions,
+            OrderedNodeTypeMultiMap<FlatNodeContribution> flatNodeContributions,
+            OrderedNodeTypeMultiMap<TooltipContribution> tooltipContributions)
+    throws DatabaseException, InvalidContribution {
+        ViewpointResource vr = ViewpointResource.getInstance(g);
+        
+        Resource testResource = g.getPossibleObject(visualsContributionResource, vr.VisualsContribution_HasCondition);
+        Test test = testResource == null ? null : g.adapt(testResource, Test.class);
+        
+        Double mpriority = g.getPossibleRelatedValue(visualsContributionResource, vr.VisualsContribution_HasPriority);
+        double priority = mpriority == null ? 0.0 : mpriority.doubleValue();         
+        
+        for(Resource nodeTypeResource : g.getObjects(visualsContributionResource, vr.VisualsContribution_HasNodeType)) {
+            NodeType nodeType = g.adapt(nodeTypeResource, NodeType.class);
+
+            for(Resource ruleResource : g.getObjects(visualsContributionResource, vr.VisualsContribution_HasRule)) {
+                if(ruleResource.equals(vr.FlatNodeRule)) 
+                    flatNodeContributions.put(nodeType, FlatNodeContribution.INSTANCE);
+                else {          
+                    VisualsRule rule;
+                    try {
+                        rule = g.adapt(ruleResource, VisualsRule.class);
+                    } catch(AdaptionException e) {
+                        e.printStackTrace();
+                        continue;
+                    }                    
+                    try {
+                        // Note: the rule may be an instance of multiple interfaces
+                        if(rule instanceof LabelRule)
+                            labelContributions.put(nodeType, new LabelContribution(nodeType, test, (LabelRule)rule, priority));
+                        if(rule instanceof ModifierRule)
+                            modifierContributions.put(nodeType, new ModifierContribution(nodeType, test, (ModifierRule)rule, priority));
+                        if(rule instanceof ImageRule)
+                            imageContributions.put(nodeType, new ImageContribution(nodeType, test, (ImageRule)rule, priority));
+                        if(rule instanceof CheckedStateRule)
+                            checkedStateContributions.put(nodeType, new CheckedStateContribution(nodeType, test, (CheckedStateRule)rule, priority));
+                        if(rule instanceof LabelDecorationRule)
+                            labelDecorationContributions.put(nodeType, new LabelDecorationContribution(nodeType, test, (LabelDecorationRule)rule, priority));
+                        if(rule instanceof ImageDecorationRule)
+                            imageDecorationContributions.put(nodeType, new ImageDecorationContribution(nodeType, test, (ImageDecorationRule)rule, priority));
+                        if(rule instanceof SorterRule)
+                            sorterContributions.put(nodeType, new SorterContribution(nodeType, test, (SorterRule)rule, priority));
+                        if(rule instanceof TooltipRule)
+                            tooltipContributions.put(nodeType, new TooltipContribution(nodeType, test, (TooltipRule)rule, priority));
+                    } catch(InvalidContribution e) {
+                        e.printStackTrace();
+                        continue;
+                    }
+                }
+            }
+        }
+    }   
+    
+    public NodeType getNodeType() {
+        return nodeType;
+    }
+
+    @Override
+    public int compareTo(VisualsContribution o) {
+        return Double.compare(o.priority, priority);
+    }
+}