-/*******************************************************************************\r
- * Copyright (c) 2012 Association for Decentralized Information Management in\r
- * Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- * VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.modeling.template2d.ui.diagram.adapter;\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.variable.Variable;\r
-import org.simantics.diagram.profile.StyleBase;\r
-import org.simantics.g2d.scenegraph.SceneGraphConstants;\r
-import org.simantics.modeling.template2d.ontology.Template2dResource;\r
-import org.simantics.modeling.template2d.ui.function.All;\r
-import org.simantics.scenegraph.INode;\r
-import org.simantics.scenegraph.g2d.G2DParentNode;\r
-import org.simantics.scenegraph.g2d.G2DSceneGraph;\r
-import org.simantics.scenegraph.g2d.nodes.SingleElementNode;\r
-import org.simantics.scenegraph.loader.ScenegraphLoaderProcess;\r
-import org.simantics.scenegraph.profile.DataNodeMap;\r
-import org.simantics.scenegraph.profile.EvaluationContext;\r
-import org.simantics.scenegraph.profile.common.ProfileVariables;\r
-\r
-\r
-public class DrawingTemplateStyle extends StyleBase<INode> {\r
-\r
- private static final String PAGE_TEMPLATE_NODE_NAME = "pageTemplate";\r
-\r
- private static Resource getTemplateScenegraph(ReadGraph graph, Resource runtimeDiagram) throws DatabaseException {\r
- Template2dResource TEMPLATE2D = Template2dResource.getInstance(graph);\r
- Resource template = All.getTemplate(graph, runtimeDiagram);\r
- if (template == null)\r
- return null;\r
- return graph.getPossibleObject(template, TEMPLATE2D.HasScenegraph);\r
- }\r
-\r
- @Override\r
- public INode calculateStyle(ReadGraph graph, Resource runtimeDiagram, Resource entry, Resource groupItem, Variable activeComposite)\r
- throws DatabaseException {\r
- Resource sceneGraph = DrawingTemplateStyle.getTemplateScenegraph(graph, runtimeDiagram);\r
- if (sceneGraph == null)\r
- return null;\r
- ScenegraphLoaderProcess loader = new ScenegraphLoaderProcess(new G2DParentNode(), "TemplateStyle.calculate");\r
- return loader.load(graph, sceneGraph, runtimeDiagram);\r
- }\r
-\r
- @Override\r
- public void applyStyleForItem(EvaluationContext evaluationContext, DataNodeMap map, Object item, INode node) {\r
- if (node == null)\r
- return;\r
-\r
- G2DSceneGraph sg = evaluationContext.getSceneGraph();\r
- if (sg == null)\r
- return;\r
- G2DParentNode nav = (G2DParentNode) sg.getNode(SceneGraphConstants.NAVIGATION_NODE_NAME);\r
- if (nav == null)\r
- return;\r
-\r
- SingleElementNode pageTemplate = ProfileVariables.claimChild(evaluationContext.getSceneGraph(),\r
- SceneGraphConstants.NAVIGATION_NODE_NAME, PAGE_TEMPLATE_NODE_NAME, SingleElementNode.class,\r
- evaluationContext);\r
-\r
- if (pageTemplate == null)\r
- return;\r
-\r
- pageTemplate.setZIndex(1);\r
- pageTemplate.setVisible(true);\r
-\r
- // Switch template contents if the contents are not exactly the same.\r
- INode previous = pageTemplate.getNode("structure");\r
- if (previous != node) {\r
- pageTemplate.detachNode("structure");\r
- pageTemplate.attachNode("structure", node);\r
- }\r
- }\r
-\r
- @Override\r
- protected void cleanupStyleForItem(EvaluationContext evaluationContext, DataNodeMap map, Object item) {\r
- G2DSceneGraph sg = evaluationContext.getSceneGraph();\r
- if (sg == null)\r
- return;\r
- G2DParentNode nav = (G2DParentNode) sg.getNode(SceneGraphConstants.NAVIGATION_NODE_NAME);\r
- if (nav == null)\r
- return;\r
-\r
- G2DParentNode pageTemplate = (G2DParentNode) nav.getNode(PAGE_TEMPLATE_NODE_NAME);\r
- if (pageTemplate == null)\r
- return;\r
-\r
- pageTemplate.detachNode("structure");\r
- ProfileVariables.denyChild(evaluationContext.getSceneGraph(),\r
- SceneGraphConstants.NAVIGATION_NODE_NAME, PAGE_TEMPLATE_NODE_NAME);\r
- }\r
-\r
- @Override\r
- public String toString() {\r
- return "Template";\r
- }\r
-\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2012 Association for Decentralized Information Management in
+ * Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.modeling.template2d.ui.diagram.adapter;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.variable.Variable;
+import org.simantics.diagram.profile.StyleBase;
+import org.simantics.g2d.scenegraph.SceneGraphConstants;
+import org.simantics.modeling.template2d.ontology.Template2dResource;
+import org.simantics.modeling.template2d.ui.function.All;
+import org.simantics.scenegraph.INode;
+import org.simantics.scenegraph.g2d.G2DParentNode;
+import org.simantics.scenegraph.g2d.G2DSceneGraph;
+import org.simantics.scenegraph.g2d.nodes.SingleElementNode;
+import org.simantics.scenegraph.loader.ScenegraphLoaderProcess;
+import org.simantics.scenegraph.profile.DataNodeMap;
+import org.simantics.scenegraph.profile.EvaluationContext;
+import org.simantics.scenegraph.profile.common.ProfileVariables;
+
+
+public class DrawingTemplateStyle extends StyleBase<INode> {
+
+ private static final String PAGE_TEMPLATE_NODE_NAME = "pageTemplate";
+
+ private static Resource getTemplateScenegraph(ReadGraph graph, Resource runtimeDiagram) throws DatabaseException {
+ Template2dResource TEMPLATE2D = Template2dResource.getInstance(graph);
+ Resource template = All.getTemplate(graph, runtimeDiagram);
+ if (template == null)
+ return null;
+ return graph.getPossibleObject(template, TEMPLATE2D.HasScenegraph);
+ }
+
+ @Override
+ public INode calculateStyle(ReadGraph graph, Resource runtimeDiagram, Resource entry, Resource groupItem, Variable activeComposite)
+ throws DatabaseException {
+ Resource sceneGraph = DrawingTemplateStyle.getTemplateScenegraph(graph, runtimeDiagram);
+ if (sceneGraph == null)
+ return null;
+ ScenegraphLoaderProcess loader = new ScenegraphLoaderProcess(new G2DParentNode(), "TemplateStyle.calculate");
+ return loader.load(graph, sceneGraph, runtimeDiagram);
+ }
+
+ @Override
+ public void applyStyleForItem(EvaluationContext evaluationContext, DataNodeMap map, Object item, INode node) {
+ if (node == null)
+ return;
+
+ G2DSceneGraph sg = evaluationContext.getSceneGraph();
+ if (sg == null)
+ return;
+ G2DParentNode nav = (G2DParentNode) sg.getNode(SceneGraphConstants.NAVIGATION_NODE_NAME);
+ if (nav == null)
+ return;
+
+ SingleElementNode pageTemplate = ProfileVariables.claimChild(evaluationContext.getSceneGraph(),
+ SceneGraphConstants.NAVIGATION_NODE_NAME, PAGE_TEMPLATE_NODE_NAME, SingleElementNode.class,
+ evaluationContext);
+
+ if (pageTemplate == null)
+ return;
+
+ pageTemplate.setZIndex(1);
+ pageTemplate.setVisible(true);
+
+ // Switch template contents if the contents are not exactly the same.
+ INode previous = pageTemplate.getNode("structure");
+ if (previous != node) {
+ pageTemplate.detachNode("structure");
+ pageTemplate.attachNode("structure", node);
+ }
+ }
+
+ @Override
+ protected void cleanupStyleForItem(EvaluationContext evaluationContext, DataNodeMap map, Object item) {
+ G2DSceneGraph sg = evaluationContext.getSceneGraph();
+ if (sg == null)
+ return;
+ G2DParentNode nav = (G2DParentNode) sg.getNode(SceneGraphConstants.NAVIGATION_NODE_NAME);
+ if (nav == null)
+ return;
+
+ G2DParentNode pageTemplate = (G2DParentNode) nav.getNode(PAGE_TEMPLATE_NODE_NAME);
+ if (pageTemplate == null)
+ return;
+
+ pageTemplate.detachNode("structure");
+ ProfileVariables.denyChild(evaluationContext.getSceneGraph(),
+ SceneGraphConstants.NAVIGATION_NODE_NAME, PAGE_TEMPLATE_NODE_NAME);
+ }
+
+ @Override
+ public String toString() {
+ return "Template";
+ }
+
+}