-package org.simantics.diagram.profile.view;\r
-\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.widgets.Event;\r
-import org.eclipse.swt.widgets.Listener;\r
-import org.eclipse.swt.widgets.Tree;\r
-import org.eclipse.swt.widgets.TreeItem;\r
-import org.simantics.Simantics;\r
-import org.simantics.browsing.ui.BuiltinKeys;\r
-import org.simantics.browsing.ui.GraphExplorer;\r
-import org.simantics.browsing.ui.NodeContext;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.common.request.WriteRequest;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.service.VirtualGraphSupport;\r
-import org.simantics.diagram.stubs.DiagramResource;\r
-import org.simantics.scenegraph.profile.ProfileUtils;\r
-import org.simantics.simulation.ontology.SimulationResource;\r
-\r
-public class ProfileEntrySelectionListener implements Listener {\r
-\r
- public void processRecursively(WriteGraph graph, Resource runtimeProfile, Resource entry, boolean checked) throws DatabaseException {\r
-\r
- DiagramResource DIA = DiagramResource.getInstance(graph);\r
- \r
- if(graph.isInstanceOf(entry, DIA.Profile)) {\r
- \r
- for(Resource child : ProfileUtils.getProfileChildren(graph, entry)) {\r
- processRecursively(graph, runtimeProfile, child, checked);\r
- }\r
- \r
- } else if(graph.isInstanceOf(entry, DIA.ProfileEntry)) {\r
-\r
- if(checked) {\r
- graph.claim(runtimeProfile, SimulationResource.getInstance(graph).IsActive, null, entry);\r
- } else {\r
- graph.denyStatement(runtimeProfile, SimulationResource.getInstance(graph).IsActive, entry);\r
- }\r
-\r
- }\r
- \r
- }\r
- \r
- @Override\r
- public void handleEvent (Event event) {\r
- \r
- if(event.detail == SWT.CHECK) {\r
- \r
- final TreeItem item = (TreeItem)event.item;\r
- Tree tree = item.getParent();\r
- GraphExplorer explorer = (GraphExplorer)tree.getData(GraphExplorer.KEY_GRAPH_EXPLORER);\r
- final Resource runtimeDiagram = (Resource)explorer.getRoot().getConstant(BuiltinKeys.INPUT);\r
- final boolean checked = item.getChecked();\r
- NodeContext context = (NodeContext)item.getData();\r
- final ResourcePair entry = (ResourcePair)context.getConstant(BuiltinKeys.INPUT);\r
- try {\r
- \r
- VirtualGraphSupport support = Simantics.getSession().getService(VirtualGraphSupport.class);\r
- Simantics.getSession().syncRequest(new WriteRequest(support.getWorkspacePersistent("profiles")) {\r
-\r
- @Override\r
- public void perform(WriteGraph graph) throws DatabaseException {\r
- \r
- DiagramResource DIA = DiagramResource.getInstance(graph);\r
- Resource runtimeProfile = graph.getPossibleObject(runtimeDiagram, DIA.RuntimeDiagram_HasRuntimeProfile);\r
- processRecursively(graph, runtimeProfile, entry.getSecond(), checked);\r
- \r
- }\r
-\r
- });\r
- } catch (DatabaseException e) {\r
- e.printStackTrace();\r
- }\r
- }\r
- }\r
-\r
-}\r
+package org.simantics.diagram.profile.view;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.simantics.Simantics;
+import org.simantics.browsing.ui.BuiltinKeys;
+import org.simantics.browsing.ui.GraphExplorer;
+import org.simantics.browsing.ui.NodeContext;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.common.request.WriteRequest;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.service.VirtualGraphSupport;
+import org.simantics.diagram.stubs.DiagramResource;
+import org.simantics.scenegraph.profile.ProfileUtils;
+import org.simantics.simulation.ontology.SimulationResource;
+
+public class ProfileEntrySelectionListener implements Listener {
+
+ public void processRecursively(WriteGraph graph, Resource runtimeProfile, Resource entry, boolean checked) throws DatabaseException {
+
+ DiagramResource DIA = DiagramResource.getInstance(graph);
+
+ if(graph.isInstanceOf(entry, DIA.Profile)) {
+
+ for(Resource child : ProfileUtils.getProfileChildren(graph, entry)) {
+ processRecursively(graph, runtimeProfile, child, checked);
+ }
+
+ } else if(graph.isInstanceOf(entry, DIA.ProfileEntry)) {
+
+ if(checked) {
+ graph.claim(runtimeProfile, SimulationResource.getInstance(graph).IsActive, null, entry);
+ } else {
+ graph.denyStatement(runtimeProfile, SimulationResource.getInstance(graph).IsActive, entry);
+ }
+
+ }
+
+ }
+
+ @Override
+ public void handleEvent (Event event) {
+
+ if(event.detail == SWT.CHECK) {
+
+ final TreeItem item = (TreeItem)event.item;
+ Tree tree = item.getParent();
+ GraphExplorer explorer = (GraphExplorer)tree.getData(GraphExplorer.KEY_GRAPH_EXPLORER);
+ final Resource runtimeDiagram = (Resource)explorer.getRoot().getConstant(BuiltinKeys.INPUT);
+ final boolean checked = item.getChecked();
+ NodeContext context = (NodeContext)item.getData();
+ final ResourcePair entry = (ResourcePair)context.getConstant(BuiltinKeys.INPUT);
+ try {
+
+ VirtualGraphSupport support = Simantics.getSession().getService(VirtualGraphSupport.class);
+ Simantics.getSession().syncRequest(new WriteRequest(support.getWorkspacePersistent("profiles")) {
+
+ @Override
+ public void perform(WriteGraph graph) throws DatabaseException {
+
+ DiagramResource DIA = DiagramResource.getInstance(graph);
+ Resource runtimeProfile = graph.getPossibleObject(runtimeDiagram, DIA.RuntimeDiagram_HasRuntimeProfile);
+ processRecursively(graph, runtimeProfile, entry.getSecond(), checked);
+
+ }
+
+ });
+ } catch (DatabaseException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+}