]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/ge/VariableImageRule.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / ge / VariableImageRule.java
diff --git a/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/ge/VariableImageRule.java b/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/ge/VariableImageRule.java
new file mode 100644 (file)
index 0000000..139ccf3
--- /dev/null
@@ -0,0 +1,53 @@
+package org.simantics.document.linking.ge;\r
+\r
+import java.util.Collections;\r
+import java.util.Map;\r
+\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+import org.simantics.browsing.ui.model.images.ImageRule;\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.db.layer0.variable.StandardGraphPropertyVariable;\r
+import org.simantics.db.layer0.variable.Variable;\r
+import org.simantics.document.linking.ontology.DocumentLink;\r
+import org.simantics.silk.SilkResources;\r
+import org.simantics.simulation.ontology.SimulationResource;\r
+import org.simantics.structural.stubs.StructuralResource2;\r
+\r
+public class VariableImageRule implements ImageRule{\r
+\r
+       \r
+       @Override\r
+       public boolean isCompatible(Class<?> contentType) {\r
+               return contentType.equals(Variable.class);\r
+       }\r
+       \r
+       @Override\r
+       public Map<String, ImageDescriptor> getImage(ReadGraph graph, Object content)\r
+                       throws DatabaseException {\r
+               Variable v = (Variable)content;\r
+               Resource r = v.getPossibleRepresents(graph);\r
+               if (r == null)\r
+                       return null;\r
+               \r
+               DocumentLink sl = DocumentLink.getInstance(graph);\r
+               SilkResources SILK = SilkResources.getInstance(graph);\r
+               StructuralResource2 sr = StructuralResource2.getInstance(graph);\r
+               SimulationResource sim = SimulationResource.getInstance(graph);\r
+               \r
+               if (graph.isInstanceOf(r, sl.Source)) {\r
+                       return Collections.singletonMap(Constants.REFERENCE, graph.adapt(SILK.page_white, ImageDescriptor.class));\r
+               } else if ( graph.isInstanceOf(r, sr.Composite)) {\r
+                       return Collections.singletonMap(Constants.NAME, graph.adapt(SILK.application, ImageDescriptor.class));\r
+               } else if ( graph.isInstanceOf(r, sr.Component)) {\r
+                       return Collections.singletonMap(Constants.NAME, graph.adapt(SILK.brick, ImageDescriptor.class));\r
+               } else if (graph.isInstanceOf(r, sim.Model)) {\r
+                       return Collections.singletonMap(Constants.NAME, graph.adapt(SILK.chart_organisation, ImageDescriptor.class));\r
+               } else if (content instanceof StandardGraphPropertyVariable) {\r
+                       return Collections.singletonMap(Constants.NAME, graph.adapt(SILK.cog, ImageDescriptor.class));\r
+               }\r
+               \r
+               return null;\r
+       }\r
+}\r