]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.structural.ui/src/org/simantics/structural/ui/modelBrowser/contributions/ExperimentLabelRule.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.structural.ui / src / org / simantics / structural / ui / modelBrowser / contributions / ExperimentLabelRule.java
1 package org.simantics.structural.ui.modelBrowser.contributions;\r
2 \r
3 import java.util.Map;\r
4 \r
5 import org.simantics.browsing.ui.common.ColumnKeys;\r
6 import org.simantics.browsing.ui.graph.impl.LabelerUtil;\r
7 import org.simantics.browsing.ui.model.labels.LabelRule;\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.simulation.ontology.SimulationResource;\r
12 import org.simantics.utils.datastructures.ArrayMap;\r
13 \r
14 /**\r
15  * @author Tuukka Lehtonen\r
16  */\r
17 public enum ExperimentLabelRule implements LabelRule {\r
18 \r
19     INSTANCE;\r
20 \r
21     public static ExperimentLabelRule get() {\r
22         return INSTANCE;\r
23     }\r
24 \r
25     @Override\r
26     public boolean isCompatible(Class<?> contentType) {\r
27         return contentType.equals(Resource.class);\r
28     }\r
29 \r
30     @Override\r
31     public Map<String, String> getLabel(ReadGraph graph, Object content) throws DatabaseException {\r
32         Resource experiment = (Resource) content;\r
33 \r
34         String name = LabelerUtil.safeStringRepresentation(graph, experiment);\r
35         Resource initialState = graph.getPossibleObject(experiment, SimulationResource.getInstance(graph).HasInitialState);\r
36         if (initialState != null)\r
37             name += " (" + LabelerUtil.safeStringRepresentation(graph, initialState) + ")";\r
38         return ArrayMap.make(ColumnKeys.KEYS_SINGLE, new String[] { name });\r
39     }\r
40 \r
41 }\r