From b6d4923d3dfb9ff4a9868ade1f42de49e1294244 Mon Sep 17 00:00:00 2001 From: miettinen Date: Tue, 7 Jan 2014 05:33:02 +0000 Subject: [PATCH] Delay marks to dependency arrows (refs #4615). git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@28590 ac1ea38d-2e2b-0410-8846-a27921b304fc --- org.simantics.sysdyn.ontology/graph.tg | Bin 164145 -> 164276 bytes .../graph/Sysdyn.pgraph | 2 + .../org/simantics/sysdyn/SysdynResource.java | 3 + .../ui/editor/routing/DependencyRouter.java | 37 +++- .../connections/DependencyEdgeClass.java | 5 +- .../elements/connections/DependencyNode.java | 16 +- .../ui/properties/ArrayDependencyTab.java | 7 +- .../sysdyn/ui/properties/DependencyTab.java | 5 + .../properties/widgets/DelayMarkWidget.java | 169 ++++++++++++++++++ 9 files changed, 230 insertions(+), 14 deletions(-) create mode 100644 org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/DelayMarkWidget.java diff --git a/org.simantics.sysdyn.ontology/graph.tg b/org.simantics.sysdyn.ontology/graph.tg index 71bc147d487d745aa818f1b85e3cd993053500ed..c232a28f6253e314aac5c7dcd21086ccda985812 100644 GIT binary patch literal 164276 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℞M@N5Caf=;ZL8p5F6;CO4w6?^)=T%V~f(4S{0 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 diff --git a/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph b/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph index 889e8de3..8ccf63a5 100644 --- a/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph +++ b/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph @@ -581,6 +581,8 @@ SYSDYN.DependencyConnection -- SYSDYN.DependencyConnection.polarity --> L0.String -- SYSDYN.DependencyConnection.polarityLocation --> L0.String -- SYSDYN.DependencyConnection.delayMark --> SYSDYN.DependencyConnection shapes = new Pair(new Arc2D.Double(), new Path2D.Double()); + Triple shapes = new Triple(new Arc2D.Double(), new Path2D.Double(), new Path2D.Double()); createArrowShape(shapes, begin.parentObstacle, end.parentObstacle, @@ -43,6 +43,8 @@ public class DependencyRouter implements IRouter2 { public static double ARROW_LENGTH1 = 1; public static double ARROW_LENGTH2 = 1.5; public static double ARROW_WIDTH = 1; + public static double DELAYMARK_LENGTH = 6; + public static double DELAYMARK_GAP = 1; private static Path2D createArrow(Path2D shape, double x, double y, double dx, double dy) { @@ -132,11 +134,28 @@ public class DependencyRouter implements IRouter2 { } - public static Pair createArrowShape(Pair shapes, Shape beginBounds, Shape endBounds, double angle) { - if(shapes == null || shapes.first == null || shapes.second == null) { - shapes = new Pair(new Arc2D.Double(), new Path2D.Double()); - } + public static Path2D createDelayMark(Path2D shape, double x, double y, double angle) { + if(shape == null) + shape = new Path2D.Double(); + else + shape.reset(); + + double dx = Math.cos(angle) * DELAYMARK_LENGTH / 2; + double dy = -Math.sin(angle) * DELAYMARK_LENGTH / 2; + double dxGap = Math.cos(angle + Math.PI / 2) * DELAYMARK_GAP / 2; + double dyGap = -Math.sin(angle + Math.PI / 2) * DELAYMARK_GAP / 2; + shape.moveTo(x - dx - dxGap, y - dy - dyGap); + shape.lineTo(x + dx - dxGap, y + dy - dyGap); + shape.moveTo(x - dx + dxGap, y - dy + dyGap); + shape.lineTo(x + dx + dxGap, y + dy + dyGap); + return shape; + } + + public static Triple createArrowShape(Triple shapes, Shape beginBounds, Shape endBounds, double angle) { + if(shapes == null || shapes.first == null || shapes.second == null || shapes.third == null) { + shapes = new Triple(new Arc2D.Double(), new Path2D.Double(), new Path2D.Double()); + } createArc(shapes.first, beginBounds, endBounds, angle); double angle0 = Math.toRadians(shapes.first.getAngleStart()); @@ -149,7 +168,13 @@ public class DependencyRouter implements IRouter2 { angle < 0.0 ? -y : y, angle > 0.0 ? -x : x); + double angleCenter = Math.toRadians(shapes.first.getAngleStart() + (shapes.first.getAngleExtent() / 2)); + double arcCenterX = shapes.first.getCenterX() + r * Math.cos(angleCenter); + double arcCenterY = shapes.first.getCenterY() - r * Math.sin(angleCenter); + createDelayMark(shapes.third, arcCenterX, arcCenterY, angleCenter); + return shapes; } + } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/connections/DependencyEdgeClass.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/connections/DependencyEdgeClass.java index 3e04c801..2a78ac2b 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/connections/DependencyEdgeClass.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/connections/DependencyEdgeClass.java @@ -130,15 +130,16 @@ public class DependencyEdgeClass { HashMap properties = e.getHint(DiagramHints.PROPERTIES); Pair polarityPair = (Pair)properties.get("polarity"); Pair polarityLocationPair = (Pair)properties.get("polarityLocation"); + boolean delayMark = properties.containsKey("delayMark"); String location; if(polarityLocationPair == null) location = DependencyNode.INSIDE; else location = (String) polarityLocationPair.second; - + String text = polarityPair != null ? (String) polarityPair.second : ""; - node.init(text, location, font, color, 0, 0, 0.235); + node.init(text, location, delayMark, font, color, 0, 0, 0.235); update(e); } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/connections/DependencyNode.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/connections/DependencyNode.java index 888c0a99..ec84bbde 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/connections/DependencyNode.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/connections/DependencyNode.java @@ -40,11 +40,12 @@ import org.simantics.scenegraph.utils.NodeUtil; import org.simantics.sysdyn.ui.editor.routing.DependencyRouter; import org.simantics.sysdyn.ui.elements.SysdynElementHints; import org.simantics.sysdyn.ui.utils.SysdynWorkbenchUtils; -import org.simantics.utils.datastructures.Pair; +import org.simantics.utils.datastructures.Triple; /** * Node for dependency arrows and polarity text * @author Teemu Lempinen + * @author Tuomas Miettinen * */ public class DependencyNode extends TextNode implements ISelectionPainterNode { @@ -64,7 +65,8 @@ public class DependencyNode extends TextNode implements ISelectionPainterNode { private Shape endBounds; private double angle = 0.1; private String side; - private transient Pair shapes = new Pair(new Arc2D.Double(), new Path2D.Double()); + private boolean delayMark = false; + private transient Triple shapes = new Triple(new Arc2D.Double(), new Path2D.Double(), new Path2D.Double()); transient public boolean hover = false; private boolean dragging = false; @@ -89,9 +91,10 @@ public class DependencyNode extends TextNode implements ISelectionPainterNode { * @param y Text initial location y * @param scale Scale */ - public void init(String text, String side, Font font, Color color, double x, double y, double scale) { + public void init(String text, String side, boolean delayMark, Font font, Color color, double x, double y, double scale) { super.init(text, font, color, x, y, scale); this.side = side; + this.delayMark = delayMark; setHorizontalAlignment((byte) Alignment.CENTER.ordinal()); setVerticalAlignment((byte) Alignment.CENTER.ordinal()); } @@ -146,7 +149,7 @@ public class DependencyNode extends TextNode implements ISelectionPainterNode { @PropertySetter("shapes") @SyncField("shapes") - public void setShapes(Pair shapes) { + public void setShapes(Triple shapes) { this.shapes = shapes; } @@ -170,7 +173,7 @@ public class DependencyNode extends TextNode implements ISelectionPainterNode { return angle; } - public Pair getShapes() { + public Triple getShapes() { return shapes; } @@ -194,6 +197,7 @@ public class DependencyNode extends TextNode implements ISelectionPainterNode { g.setStroke(stroke); g.draw(shapes.first); g.fill(shapes.second); + if (delayMark) g.draw(shapes.third); } else if (hover){ g.setColor(Color.LIGHT_GRAY); g.setStroke(STROKE); @@ -203,11 +207,13 @@ public class DependencyNode extends TextNode implements ISelectionPainterNode { g.setStroke(stroke); g.draw(shapes.first); g.fill(shapes.second); + if (delayMark) g.draw(shapes.third); } else { if(color != null) g.setColor(color); if(stroke != null) g.setStroke(stroke); g.draw(shapes.first); g.fill(shapes.second); + if (delayMark) g.draw(shapes.third); } double angleRad = angle > 0 ? diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ArrayDependencyTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ArrayDependencyTab.java index 247d1d50..b31a23ea 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ArrayDependencyTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ArrayDependencyTab.java @@ -34,6 +34,7 @@ import org.simantics.db.exception.DatabaseException; import org.simantics.db.management.ISessionContext; import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.ui.elements.connections.DependencyNode; +import org.simantics.sysdyn.ui.properties.widgets.DelayMarkWidget; import org.simantics.utils.datastructures.Pair; import org.simantics.utils.datastructures.Triple; @@ -46,12 +47,13 @@ public class ArrayDependencyTab extends LabelPropertyTabContributor { Button none, plus, minus, other, inside, outside; TrackedText polarityText, polarityLocationText; + private DelayMarkWidget delayMark; @Override public void createControls(Composite body, IWorkbenchSite site, ISessionContext context, WidgetSupport support) { Composite composite = new Composite(body, SWT.NONE); GridDataFactory.fillDefaults().grab(true, true).applyTo(composite); - GridLayoutFactory.fillDefaults().margins(3, 3).numColumns(3).applyTo(composite); + GridLayoutFactory.fillDefaults().margins(3, 3).numColumns(2).applyTo(composite); /* Add a dummy button at the begin to suck in the nonsense selection events that * the first radio button in the group of ALL the radio buttons receives when no @@ -106,6 +108,9 @@ public class ArrayDependencyTab extends LabelPropertyTabContributor { outside.setText("Outside"); outside.setSelectionFactory(new PolarityLocationRadioSelectionFactory(DependencyNode.OUTSIDE)); outside.addSelectionListener(new PolarityLocationSelectionListener(context, DependencyNode.OUTSIDE)); + + delayMark = new DelayMarkWidget(composite, support, SWT.NULL); + GridDataFactory.fillDefaults().applyTo(delayMark.getWidget()); } class OtherPolarityStringPropertyFactory extends ReadFactoryImpl, String> { diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/DependencyTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/DependencyTab.java index d480a2d2..659180bb 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/DependencyTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/DependencyTab.java @@ -33,6 +33,7 @@ import org.simantics.db.exception.DatabaseException; import org.simantics.db.management.ISessionContext; import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.ui.elements.connections.DependencyNode; +import org.simantics.sysdyn.ui.properties.widgets.DelayMarkWidget; import org.simantics.utils.datastructures.Pair; import org.simantics.utils.datastructures.Triple; @@ -40,6 +41,7 @@ public class DependencyTab extends LabelPropertyTabContributor { Button none, plus, minus, other, inside, outside; TrackedText polarityText, polarityLocationText; + private DelayMarkWidget delayMark; @Override public void createControls(Composite body, IWorkbenchSite site, ISessionContext context, WidgetSupport support) { @@ -90,6 +92,9 @@ public class DependencyTab extends LabelPropertyTabContributor { outside.setText("Outside"); outside.setSelectionFactory(new PolarityLocationRadioSelectionFactory(DependencyNode.OUTSIDE)); outside.addSelectionListener(new PolarityLocationSelectionListener(context, DependencyNode.OUTSIDE)); + + delayMark = new DelayMarkWidget(composite, support, SWT.NULL); + GridDataFactory.fillDefaults().applyTo(delayMark.getWidget()); } class PolarityLocationSelectionListener extends SelectionListenerImpl { diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/DelayMarkWidget.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/DelayMarkWidget.java new file mode 100644 index 00000000..e5d4e0ec --- /dev/null +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/DelayMarkWidget.java @@ -0,0 +1,169 @@ +/******************************************************************************* + * Copyright (c) 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.sysdyn.ui.properties.widgets; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.simantics.browsing.ui.swt.widgets.impl.SelectionListenerImpl; +import org.simantics.browsing.ui.swt.widgets.impl.Widget; +import org.simantics.browsing.ui.swt.widgets.impl.WidgetSupport; +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.WriteGraph; +import org.simantics.db.common.request.ReadRequest; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.management.ISessionContext; +import org.simantics.sysdyn.SysdynResource; +import org.simantics.utils.ui.ISelectionUtils; + +/** + * Widget for Delay marks in dependencies. + * @author Tuomas Miettinen + * + */ +public class DelayMarkWidget implements Widget{ + + List variables = null; + org.simantics.browsing.ui.swt.widgets.Button delayMarkButton; + + public DelayMarkWidget(Composite parent, WidgetSupport support, int style) { + support.register(this); + delayMarkButton = new org.simantics.browsing.ui.swt.widgets.Button(parent, support, style |= SWT.CHECK); + delayMarkButton.setText("Delay mark"); + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + @Override + public void setInput(ISessionContext context, Object input) { + if(input instanceof ISelection) { + ISelection selection = (ISelection)input; + if(selection instanceof IStructuredSelection) { + List resources = ISelectionUtils.filterSelection(selection, Resource.class); + if(resources != null && !resources.isEmpty()) { + variables = resources; + } else { + List resourceLists = ISelectionUtils.filterSelection(selection, ArrayList.class); + variables = resourceLists.get(0); + } + } + } + + if(variables == null) return; + + try { + context.getSession().syncRequest(new ReadRequest() { + + @Override + public void run(ReadGraph graph) throws DatabaseException { + SysdynResource sr = SysdynResource.getInstance(graph); + + // Determine if there are delay marks in some of the variables. + boolean hasDelayMarks = false, hasNotDelayMarks = false; + for (Resource variable : variables) { + if (graph.hasStatement(variable, sr.DependencyConnection_delayMark)) { + hasDelayMarks = true; + } else { + hasNotDelayMarks = true; + } + } + + // If some have delay marks but others don't, the check box is grayed. + final Button button = getWidget(); + final boolean delayMark = hasDelayMarks; + final boolean mixedDelayMarks = hasDelayMarks && hasNotDelayMarks; + button.getDisplay().asyncExec(new Runnable() { + + @Override + public void run() { + if(button.isDisposed()) return; + button.setSelection(delayMark); + button.setGrayed(mixedDelayMarks); + } + }); + } + }); + } catch (DatabaseException e) { + e.printStackTrace(); + } + + // Multiple selections + delayMarkButton.addSelectionListener(new SelectionListenerImpl>(context) { + + @Override + public void apply(WriteGraph graph, ArrayList inputs) throws DatabaseException { + if (inputs == null) + return; + + final SysdynResource sr = SysdynResource.getInstance(graph); + boolean nextState = true; // The next state of the checkbox + for (Resource variable : variables) { + if (graph.hasStatement(variable, sr.DependencyConnection_delayMark)) { + nextState = false; // The next state is true iff at least one has the delay mark. + break; + } + } + + try { + if (nextState) { + for (Resource input : inputs) { + graph.claim(input, SysdynResource.getInstance(graph).DependencyConnection_delayMark, null, input); + } + } else { + for (Resource input : inputs) { + graph.deny(input, sr.DependencyConnection_delayMark); + } + } + } catch (DatabaseException e) { + e.printStackTrace(); + } + + // Get the button out of the grayed state. + final Button button = getWidget(); + button.getDisplay().asyncExec(new Runnable() { + + @Override + public void run() { + button.setGrayed(false); + } + }); + } + }); + + // One selection + delayMarkButton.addSelectionListener(new SelectionListenerImpl(context) { + + @Override + public void apply(WriteGraph graph, Resource input) throws DatabaseException { + if (input == null) + return; + + final SysdynResource sr = SysdynResource.getInstance(graph); + if(graph.hasStatement(input, sr.DependencyConnection_delayMark)) { + graph.deny(input, sr.DependencyConnection_delayMark); + } else { + graph.claim(input, SysdynResource.getInstance(graph).DependencyConnection_delayMark, null, input); + } + } + }); + } + + public Button getWidget() { + return delayMarkButton.getWidget(); + } + +} -- 2.47.1