1 package org.simantics.document.linking.ge;
3 import java.util.Collections;
6 import org.eclipse.jface.resource.ImageDescriptor;
7 import org.simantics.browsing.ui.model.images.ImageRule;
8 import org.simantics.db.ReadGraph;
9 import org.simantics.db.Resource;
10 import org.simantics.db.exception.DatabaseException;
11 import org.simantics.db.layer0.variable.StandardGraphPropertyVariable;
12 import org.simantics.db.layer0.variable.Variable;
13 import org.simantics.document.linking.ontology.DocumentLink;
14 import org.simantics.silk.SilkResources;
15 import org.simantics.simulation.ontology.SimulationResource;
16 import org.simantics.structural.stubs.StructuralResource2;
18 public class VariableImageRule implements ImageRule{
22 public boolean isCompatible(Class<?> contentType) {
23 return contentType.equals(Variable.class);
27 public Map<String, ImageDescriptor> getImage(ReadGraph graph, Object content)
28 throws DatabaseException {
29 Variable v = (Variable)content;
30 Resource r = v.getPossibleRepresents(graph);
34 DocumentLink sl = DocumentLink.getInstance(graph);
35 SilkResources SILK = SilkResources.getInstance(graph);
36 StructuralResource2 sr = StructuralResource2.getInstance(graph);
37 SimulationResource sim = SimulationResource.getInstance(graph);
39 if (graph.isInstanceOf(r, sl.Source)) {
40 return Collections.singletonMap(Constants.REFERENCE, graph.adapt(SILK.page_white, ImageDescriptor.class));
41 } else if ( graph.isInstanceOf(r, sr.Composite)) {
42 return Collections.singletonMap(Constants.NAME, graph.adapt(SILK.application, ImageDescriptor.class));
43 } else if ( graph.isInstanceOf(r, sr.Component)) {
44 return Collections.singletonMap(Constants.NAME, graph.adapt(SILK.brick, ImageDescriptor.class));
45 } else if (graph.isInstanceOf(r, sim.Model)) {
46 return Collections.singletonMap(Constants.NAME, graph.adapt(SILK.chart_organisation, ImageDescriptor.class));
47 } else if (content instanceof StandardGraphPropertyVariable) {
48 return Collections.singletonMap(Constants.NAME, graph.adapt(SILK.cog, ImageDescriptor.class));