]> gerrit.simantics Code Review - simantics/district.git/commitdiff
Edge styling (e.g. width, color etc) 56/1956/2
authorjsimomaa <jani.simomaa@gmail.com>
Fri, 27 Jul 2018 06:32:18 +0000 (09:32 +0300)
committerJani Simomaa <jani.simomaa@semantum.fi>
Mon, 30 Jul 2018 05:39:39 +0000 (05:39 +0000)
gitlab #2

Change-Id: I4fda3892eb614ec0d170d66c7f85709a229d7403

org.simantics.district.network/src/org/simantics/district/network/profile/EdgeNodeGroup.java [new file with mode: 0644]
org.simantics.district.network/src/org/simantics/district/network/profile/EdgeNodeStyle.java [new file with mode: 0644]

diff --git a/org.simantics.district.network/src/org/simantics/district/network/profile/EdgeNodeGroup.java b/org.simantics.district.network/src/org/simantics/district/network/profile/EdgeNodeGroup.java
new file mode 100644 (file)
index 0000000..c66fc97
--- /dev/null
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 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.district.network.profile;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.diagram.profile.DiagramElementGroup;
+import org.simantics.district.network.ontology.DistrictNetworkResource;
+
+public class EdgeNodeGroup extends DiagramElementGroup {
+
+    public EdgeNodeGroup(ReadGraph graph) {
+        super(graph);
+        System.out.println("EdgeNodeGroup init");
+    }
+
+    @Override
+    protected boolean test(ReadGraph graph, Resource element) throws DatabaseException {
+        DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);
+        if (graph.isInstanceOf(element, DN.Edge)) {
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public String toString() {
+        return "Edge Nodes";
+    }
+
+}
diff --git a/org.simantics.district.network/src/org/simantics/district/network/profile/EdgeNodeStyle.java b/org.simantics.district.network/src/org/simantics/district/network/profile/EdgeNodeStyle.java
new file mode 100644 (file)
index 0000000..9d96f48
--- /dev/null
@@ -0,0 +1,39 @@
+package org.simantics.district.network.profile;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.diagram.profile.StyleBase;
+import org.simantics.district.network.ontology.DistrictNetworkResource;
+import org.simantics.scenegraph.INode;
+import org.simantics.scenegraph.g2d.nodes.ConnectionNode;
+import org.simantics.scenegraph.profile.EvaluationContext;
+import org.simantics.scenegraph.profile.common.ProfileVariables;
+
+public class EdgeNodeStyle extends StyleBase<Double> {
+
+    public EdgeNodeStyle() {
+        System.out.println("EdgeNodeStyle init");
+    }
+    
+    @Override
+    public Double calculateStyle(ReadGraph graph, Resource runtimeDiagram, Resource entry, Resource groupItem) throws DatabaseException {
+        DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);
+        Double diameter = graph.getPossibleRelatedValue(groupItem, DN.Edge_HasDiameter);
+        if (diameter != null) {
+            return diameter;
+        }
+        return super.calculateStyle(graph, runtimeDiagram, entry, groupItem);
+    }
+    
+    @Override
+    public void applyStyleForNode(EvaluationContext observer, INode node, Double result) {
+        if (result != null) {
+            ConnectionNode n = (ConnectionNode) node;
+            for (INode nn : n.getNodes()) {
+                ProfileVariables.claimNodeProperty(nn, "stroke", result, observer);
+            }
+        }
+    }
+    
+}