From: jsimomaa Date: Fri, 27 Jul 2018 06:32:18 +0000 (+0300) Subject: Edge styling (e.g. width, color etc) X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F56%2F1956%2F2;p=simantics%2Fdistrict.git Edge styling (e.g. width, color etc) gitlab #2 Change-Id: I4fda3892eb614ec0d170d66c7f85709a229d7403 --- 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 index 00000000..c66fc973 --- /dev/null +++ b/org.simantics.district.network/src/org/simantics/district/network/profile/EdgeNodeGroup.java @@ -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 index 00000000..9d96f48c --- /dev/null +++ b/org.simantics.district.network/src/org/simantics/district/network/profile/EdgeNodeStyle.java @@ -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 { + + 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); + } + } + } + +}