]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
1 package org.simantics.document.linking.ge;\r
2 \r
3 import java.util.Collections;\r
4 import java.util.Map;\r
5 \r
6 import org.eclipse.jface.resource.ImageDescriptor;\r
7 import org.simantics.browsing.ui.model.images.ImageRule;\r
8 import org.simantics.db.ReadGraph;\r
9 import org.simantics.db.Resource;\r
10 import org.simantics.db.exception.DatabaseException;\r
11 import org.simantics.db.layer0.variable.StandardGraphPropertyVariable;\r
12 import org.simantics.db.layer0.variable.Variable;\r
13 import org.simantics.document.linking.ontology.DocumentLink;\r
14 import org.simantics.silk.SilkResources;\r
15 import org.simantics.simulation.ontology.SimulationResource;\r
16 import org.simantics.structural.stubs.StructuralResource2;\r
17 \r
18 public class VariableImageRule implements ImageRule{\r
19 \r
20         \r
21         @Override\r
22         public boolean isCompatible(Class<?> contentType) {\r
23                 return contentType.equals(Variable.class);\r
24         }\r
25         \r
26         @Override\r
27         public Map<String, ImageDescriptor> getImage(ReadGraph graph, Object content)\r
28                         throws DatabaseException {\r
29                 Variable v = (Variable)content;\r
30                 Resource r = v.getPossibleRepresents(graph);\r
31                 if (r == null)\r
32                         return null;\r
33                 \r
34                 DocumentLink sl = DocumentLink.getInstance(graph);\r
35                 SilkResources SILK = SilkResources.getInstance(graph);\r
36                 StructuralResource2 sr = StructuralResource2.getInstance(graph);\r
37                 SimulationResource sim = SimulationResource.getInstance(graph);\r
38                 \r
39                 if (graph.isInstanceOf(r, sl.Source)) {\r
40                         return Collections.singletonMap(Constants.REFERENCE, graph.adapt(SILK.page_white, ImageDescriptor.class));\r
41                 } else if ( graph.isInstanceOf(r, sr.Composite)) {\r
42                         return Collections.singletonMap(Constants.NAME, graph.adapt(SILK.application, ImageDescriptor.class));\r
43                 } else if ( graph.isInstanceOf(r, sr.Component)) {\r
44                         return Collections.singletonMap(Constants.NAME, graph.adapt(SILK.brick, ImageDescriptor.class));\r
45                 } else if (graph.isInstanceOf(r, sim.Model)) {\r
46                         return Collections.singletonMap(Constants.NAME, graph.adapt(SILK.chart_organisation, ImageDescriptor.class));\r
47                 } else if (content instanceof StandardGraphPropertyVariable) {\r
48                         return Collections.singletonMap(Constants.NAME, graph.adapt(SILK.cog, ImageDescriptor.class));\r
49                 }\r
50                 \r
51                 return null;\r
52         }\r
53 }\r