-package org.simantics.diagram.profile.view;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Collection;\r
-import java.util.Collections;\r
-import java.util.Set;\r
-import java.util.TreeSet;\r
-\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.SelectionHints;\r
-import org.simantics.diagram.stubs.DiagramResource;\r
-import org.simantics.selectionview.ComparableTabContributor;\r
-import org.simantics.selectionview.SelectionProcessor;\r
-import org.simantics.utils.ui.ErrorLogger;\r
-import org.simantics.utils.ui.ISelectionUtils;\r
-\r
-/**\r
- * @author Tuukka Lehtonen\r
- */\r
-public class ProfileSelectionProcessor implements SelectionProcessor<Object, ReadGraph> {\r
-\r
- @Override\r
- public Collection<?> process(Object selection, ReadGraph g) {\r
- try {\r
- Resource object = ISelectionUtils.getSinglePossibleKey(selection, SelectionHints.KEY_MAIN, Resource.class);\r
- ResourcePair object2 = ISelectionUtils.getSinglePossibleKey(selection, SelectionHints.KEY_MAIN, ResourcePair.class);\r
-\r
- return processInternal(g, object, object2, selection);\r
- \r
- } catch (DatabaseException e) {\r
- ErrorLogger.defaultLogError(e);\r
- }\r
-\r
- return Collections.emptyList();\r
- }\r
-\r
- private Collection<?> processInternal(ReadGraph g, Resource object, ResourcePair pair, Object selection) throws DatabaseException {\r
-\r
- Collection<Object> inputs = new ArrayList<Object>();\r
- \r
- parseResourceInput(g, object, pair, inputs);\r
-\r
- return accept(inputs);\r
- }\r
-\r
- Collection<ComparableTabContributor> accept(Collection<?> inputs) {\r
- Set<ComparableTabContributor> result = new TreeSet<ComparableTabContributor>();\r
-// System.out.println("accept:");\r
- for (Object input : inputs) {\r
-// System.out.println("\tINPUT: " + input);\r
- if (input instanceof SCLInput) {\r
- SCLInput configurationInput = (SCLInput)input;\r
- result.add(new ComparableTabContributor(new SCLEditorComposite(), configurationInput.priority, configurationInput.getDatum(), configurationInput.text));\r
-// result.add(new ComparableTabContributor(new ResourceDescriptionSourceComposite(), -4, configurationInput.getDatum(), "Source"));\r
- }\r
- }\r
- return result;\r
- }\r
-\r
- private void parseResourceInput(ReadGraph g, Resource part, ResourcePair pair, Collection<Object> inputs) throws DatabaseException {\r
- getGroups(g, part, pair, inputs);\r
- }\r
-\r
- void getGroups(ReadGraph g, Resource r, ResourcePair p, Collection<Object> result) throws DatabaseException {\r
- DiagramResource dr = DiagramResource.getInstance(g);\r
- if (r != null && g.isInstanceOf(r, dr.SCLGroup)) {\r
- result.add(new SCLInput(r, 1, "SCL Group"));\r
- }\r
- if (r != null && g.isInstanceOf(r, dr.SCLTextStyle)) {\r
- result.add(new SCLInput(r, 2, "SCL Text Style"));\r
- }\r
- if (p != null && g.isInstanceOf(p.getSecond(), dr.GroupStyleProfileEntry)) {\r
- Resource group = g.getPossibleObject(p.getSecond(), dr.ProfileEntry_HasGroup);\r
- if (group != null && g.isInstanceOf(group, dr.SCLGroup)) {\r
- result.add(new SCLInput(group, 1, "SCL Group"));\r
- }\r
- Resource style = g.getPossibleObject(p.getSecond(), dr.ProfileEntry_HasStyle);\r
- if (style != null && g.isInstanceOf(style, dr.SCLTextStyle)) {\r
- result.add(new SCLInput(style, 2, "SCL Text Style"));\r
- }\r
- }\r
- }\r
-\r
+package org.simantics.diagram.profile.view;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.SelectionHints;
+import org.simantics.diagram.stubs.DiagramResource;
+import org.simantics.selectionview.ComparableTabContributor;
+import org.simantics.selectionview.SelectionProcessor;
+import org.simantics.utils.ui.ErrorLogger;
+import org.simantics.utils.ui.ISelectionUtils;
+
+/**
+ * @author Tuukka Lehtonen
+ */
+public class ProfileSelectionProcessor implements SelectionProcessor<Object, ReadGraph> {
+
+ @Override
+ public Collection<?> process(Object selection, ReadGraph g) {
+ try {
+ Resource object = ISelectionUtils.getSinglePossibleKey(selection, SelectionHints.KEY_MAIN, Resource.class);
+ ProfileTuple object2 = ISelectionUtils.getSinglePossibleKey(selection, SelectionHints.KEY_MAIN, ProfileTuple.class);
+
+ return processInternal(g, object, object2, selection);
+
+ } catch (DatabaseException e) {
+ ErrorLogger.defaultLogError(e);
+ }
+
+ return Collections.emptyList();
+ }
+
+ private Collection<?> processInternal(ReadGraph g, Resource object, ProfileTuple pair, Object selection) throws DatabaseException {
+
+ Collection<Object> inputs = new ArrayList<Object>();
+
+ parseResourceInput(g, object, pair, inputs);
+
+ return accept(inputs);
+ }
+
+ Collection<ComparableTabContributor> accept(Collection<?> inputs) {
+ Set<ComparableTabContributor> result = new TreeSet<ComparableTabContributor>();
+// System.out.println("accept:");
+ for (Object input : inputs) {
+// System.out.println("\tINPUT: " + input);
+ if (input instanceof SCLInput) {
+ SCLInput configurationInput = (SCLInput)input;
+ result.add(new ComparableTabContributor(new SCLEditorComposite(), configurationInput.priority, configurationInput.getDatum(), configurationInput.text));
+// result.add(new ComparableTabContributor(new ResourceDescriptionSourceComposite(), -4, configurationInput.getDatum(), "Source"));
+ }
+ }
+ return result;
+ }
+
+ private void parseResourceInput(ReadGraph g, Resource part, ProfileTuple pair, Collection<Object> inputs) throws DatabaseException {
+ getGroups(g, part, pair, inputs);
+ }
+
+ void getGroups(ReadGraph g, Resource r, ProfileTuple p, Collection<Object> result) throws DatabaseException {
+ DiagramResource dr = DiagramResource.getInstance(g);
+ if (r != null && g.isInstanceOf(r, dr.SCLGroup)) {
+ result.add(new SCLInput(r, 1, "SCL Group"));
+ }
+ if (r != null && g.isInstanceOf(r, dr.SCLTextStyle)) {
+ result.add(new SCLInput(r, 2, "SCL Text Style"));
+ }
+ if (p != null && g.isInstanceOf(p.getEntry(), dr.GroupStyleProfileEntry)) {
+ Resource group = g.getPossibleObject(p.getEntry(), dr.ProfileEntry_HasGroup);
+ if (group != null && g.isInstanceOf(group, dr.SCLGroup)) {
+ result.add(new SCLInput(group, 1, "SCL Group"));
+ }
+ Resource style = g.getPossibleObject(p.getEntry(), dr.ProfileEntry_HasStyle);
+ if (style != null && g.isInstanceOf(style, dr.SCLTextStyle)) {
+ result.add(new SCLInput(style, 2, "SCL Text Style"));
+ }
+ }
+ }
+