--- /dev/null
+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