Skip to content
Snippets Groups Projects
Commit 0f209099 authored by Johannes Eder's avatar Johannes Eder
Browse files

Merge branch '4015' into 'master'

4015

See merge request !120
parents f4429a9d cc1b8aa6
No related branches found
No related tags found
1 merge request!1204015
DynamicTreeContentProviderBase.java 6760a6dc5721175b1dada8f30fd9da05f7bcc4b3 GREEN DynamicTreeContentProviderBase.java 6760a6dc5721175b1dada8f30fd9da05f7bcc4b3 GREEN
DynamicTreeItem.java 75dc5534b119ffdb3c10a65810c2a0f330b7955e GREEN DynamicTreeItem.java 75dc5534b119ffdb3c10a65810c2a0f330b7955e GREEN
DynamicTreeTableUIProviderBase.java f78c0f8b52fbc939166b3f94f7f6006cc0f4d32b GREEN DynamicTreeTableUIProviderBase.java f78c0f8b52fbc939166b3f94f7f6006cc0f4d32b GREEN
DynamicTreeTableViewer.java 5e58a31a63f8e56d8c8e69e2c4d095809bc46bf1 GREEN DynamicTreeTableViewer.java 9eb192873acf4f08ab3570c195d8828224a61934 GREEN
DynamicTreeUIProviderBase.java e9b68607683de279d0cb8712a28dc131c5c33ece GREEN DynamicTreeUIProviderBase.java e9b68607683de279d0cb8712a28dc131c5c33ece GREEN
DynamicTreeViewer.java 725f41f4fb4b6bfa813f010fb9083ab02eea164a GREEN DynamicTreeViewer.java 725f41f4fb4b6bfa813f010fb9083ab02eea164a GREEN
DynamicTreeViewerBase.java a2013538b62d86f6a09efdf2cd78babac2072484 GREEN DynamicTreeViewerBase.java a2013538b62d86f6a09efdf2cd78babac2072484 GREEN
......
...@@ -119,14 +119,19 @@ public final class DynamicTreeTableViewer<T> extends DynamicTreeViewerBase<T> { ...@@ -119,14 +119,19 @@ public final class DynamicTreeTableViewer<T> extends DynamicTreeViewerBase<T> {
} }
} }
/** Expands all items on all levels. */ /** Expand all items to the given level. */
public void expandAllItems() { public void expandToLevel(int revealLevel) {
TreeItem<T> root = view.getRoot(); TreeItem<T> root = view.getRoot();
if(root == null) { if(root == null) {
return; return;
} }
expandItem(root, MAX_VALUE); expandItem(root, revealLevel);
}
/** Expands all items on all levels. */
public void expandAllItems() {
expandToLevel(MAX_VALUE);
} }
/** /**
......
DiamondContentVisualBase.java a81e76e85706ad38b6c22bbcd1cc5a5696737e3d GREEN DiamondContentVisualBase.java a81e76e85706ad38b6c22bbcd1cc5a5696737e3d GREEN
LineLinkGraph.java 85a06a553f88f7b9fb4bd9c06411725d9fb160fc GREEN LineLinkGraph.java 85a06a553f88f7b9fb4bd9c06411725d9fb160fc GREEN
LineLinkVisualBase.java 74968c18bb68859bc795ed9a3b0693d1787e0806 GREEN LineLinkVisualBase.java 876d6872b1844568f055809b975d2471330f719f GREEN
LineSegment.java a8658ec5bcd930d417a148861831b9ebb70bb37d GREEN LineSegment.java 9ab1b97ad372db763654ef783747fa0733bec55c GREEN
RectangularBorderLocation.java 824472c353534d1094ae4f735a30a231b885f050 GREEN RectangularBorderLocation.java 824472c353534d1094ae4f735a30a231b885f050 GREEN
RectangularContentAnchorageVisualBase.java 39981dc29cac42d77c6ffe855ecc8ccad1689230 GREEN RectangularContentAnchorageVisualBase.java 39981dc29cac42d77c6ffe855ecc8ccad1689230 GREEN
RectangularContentVisualBase.java aeeda282f330180b1f339e3230810eccea2e7e7b GREEN RectangularContentVisualBase.java aeeda282f330180b1f339e3230810eccea2e7e7b GREEN
......
...@@ -70,7 +70,8 @@ public abstract class LineLinkVisualBase extends LinkVisualBase { ...@@ -70,7 +70,8 @@ public abstract class LineLinkVisualBase extends LinkVisualBase {
double nx = bp.getX() + chg.getDeltaX(); double nx = bp.getX() + chg.getDeltaX();
double ny = bp.getY() + chg.getDeltaY(); double ny = bp.getY() + chg.getDeltaY();
segments.add(new LineSegment(bpModel, sx, sy, nx, ny, getInvisibleSelectionLineWidth(), segments.add(new LineSegment(bpModel, sx, sy, nx, ny, getInvisibleSelectionLineWidth(),
feedbackSize, false, false, 0, getLabelText(i, pts + 1))); feedbackSize, false, false, 0, getLabelText(i, pts + 1),
getSimulationLabelText(i, pts + 1)));
sx = nx; sx = nx;
sy = ny; sy = ny;
bpModel = getBendPointModel(i); bpModel = getBendPointModel(i);
...@@ -80,7 +81,8 @@ public abstract class LineLinkVisualBase extends LinkVisualBase { ...@@ -80,7 +81,8 @@ public abstract class LineLinkVisualBase extends LinkVisualBase {
.applyToPoint(getEndAnchorPoint()); .applyToPoint(getEndAnchorPoint());
segments.add(new LineSegment(bpModel, sx, sy, endPoint.getX(), endPoint.getY(), segments.add(new LineSegment(bpModel, sx, sy, endPoint.getX(), endPoint.getY(),
getInvisibleSelectionLineWidth(), 0, showArrowOnLastSegment(), useLineArrow(), getInvisibleSelectionLineWidth(), 0, showArrowOnLastSegment(), useLineArrow(),
getArrowLength(), getLabelText(pts, pts + 1))); getArrowLength(), getLabelText(pts, pts + 1),
getSimulationLabelText(pts, pts + 1)));
endFeedbackHandle.setX(endPoint.getX() - fs2); endFeedbackHandle.setX(endPoint.getX() - fs2);
endFeedbackHandle.setY(endPoint.getY() - fs2); endFeedbackHandle.setY(endPoint.getY() - fs2);
endFeedbackHandle.setWidth(feedbackSize); endFeedbackHandle.setWidth(feedbackSize);
...@@ -90,7 +92,8 @@ public abstract class LineLinkVisualBase extends LinkVisualBase { ...@@ -90,7 +92,8 @@ public abstract class LineLinkVisualBase extends LinkVisualBase {
int numberOfSegs = segments.size(); int numberOfSegs = segments.size();
for(int i = 0; i < numberOfSegs; i++) { for(int i = 0; i < numberOfSegs; i++) {
LineSegment ls = segments.get(i); LineSegment ls = segments.get(i);
ls.addLinkNodes(layers, bundle, getLabelText(i, numberOfSegs)); ls.addLinkNodes(layers, bundle, getLabelText(i, numberOfSegs),
getSimulationLabelText(i, numberOfSegs));
} }
linesAddedToSceneGraph = true; linesAddedToSceneGraph = true;
} }
...@@ -156,14 +159,16 @@ public abstract class LineLinkVisualBase extends LinkVisualBase { ...@@ -156,14 +159,16 @@ public abstract class LineLinkVisualBase extends LinkVisualBase {
// handle bend points // handle bend points
for(int i = 0; i < pts; i++) { for(int i = 0; i < pts; i++) {
Point2D ep = getFeedbackChangeForBendPoint(i).applyToPoint(getBendPointLocation(i)); Point2D ep = getFeedbackChangeForBendPoint(i).applyToPoint(getBendPointLocation(i));
segments.get(segIndex).update(sp, ep, feedbackSize, 0, getLabelText(i, pts)); segments.get(segIndex).update(sp, ep, feedbackSize, 0, getLabelText(i, pts),
getSimulationLabelText(i, pts));
sp = ep; sp = ep;
segIndex++; segIndex++;
} }
// end point // end point
Point2D ep = getFeedbackChangeForBendPoint(END_OF_LINK_BEND_POINT_INDEX) Point2D ep = getFeedbackChangeForBendPoint(END_OF_LINK_BEND_POINT_INDEX)
.applyToPoint(getEndAnchorPoint()); .applyToPoint(getEndAnchorPoint());
segments.get(segIndex).update(sp, ep, 0, getArrowLength(), getLabelText(pts, pts)); segments.get(segIndex).update(sp, ep, 0, getArrowLength(), getLabelText(pts, pts),
getSimulationLabelText(pts, pts));
endFeedbackHandle.setX(ep.getX() - fs2); endFeedbackHandle.setX(ep.getX() - fs2);
endFeedbackHandle.setY(ep.getY() - fs2); endFeedbackHandle.setY(ep.getY() - fs2);
endFeedbackHandle.setWidth(feedbackSize); endFeedbackHandle.setWidth(feedbackSize);
...@@ -360,6 +365,19 @@ public abstract class LineLinkVisualBase extends LinkVisualBase { ...@@ -360,6 +365,19 @@ public abstract class LineLinkVisualBase extends LinkVisualBase {
return null; return null;
} }
/**
* Returns the simulation label text.
*
* @param currentSegment
* the current segment
* @param lastSegment
* the last index of a segment
* @return the label text for the current segment or null for no label
*/
protected String getSimulationLabelText(int currentSegment, int lastSegment) {
return null;
}
/** Returns the {@link LinkMVCBundle}. */ /** Returns the {@link LinkMVCBundle}. */
private LinkMVCBundle getLinkBundle() { private LinkMVCBundle getLinkBundle() {
return (LinkMVCBundle)getMVCBundle(); return (LinkMVCBundle)getMVCBundle();
......
...@@ -47,19 +47,23 @@ final class LineSegment { ...@@ -47,19 +47,23 @@ final class LineSegment {
private final LinkArrowWidget arrowWidget; private final LinkArrowWidget arrowWidget;
/** Stores the label. */ /** Stores the label. */
private Text label; private Text label;
/** Stores the simulation label */
private Text simulationLabel;
/** Offset of simulation label in y direction. */
private final int SIMULATION_OFFSET = 1;
/** Constructor. */ /** Constructor. */
public LineSegment(double sx, double sy, double ex, double ey, double clickableWidth, public LineSegment(double sx, double sy, double ex, double ey, double clickableWidth,
double markerSize, boolean showArrow, boolean useLineArrow, double arrowLength, double markerSize, boolean showArrow, boolean useLineArrow, double arrowLength,
String labelText) { String labelText, String simulationLabelText) {
this(null, sx, sy, ex, ey, clickableWidth, markerSize, showArrow, useLineArrow, arrowLength, this(null, sx, sy, ex, ey, clickableWidth, markerSize, showArrow, useLineArrow, arrowLength,
labelText); labelText, simulationLabelText);
} }
/** Constructor. */ /** Constructor. */
public LineSegment(Object bendPointModel, double sx, double sy, double ex, double ey, public LineSegment(Object bendPointModel, double sx, double sy, double ex, double ey,
double clickableWidth, double feedbackSize, boolean showArrow, boolean useLineArrow, double clickableWidth, double feedbackSize, boolean showArrow, boolean useLineArrow,
double arrowLength, String labelText) { double arrowLength, String labelText, String simulationLabelText) {
this.bendPointModel = bendPointModel; this.bendPointModel = bendPointModel;
this.visibleLine = new Line(sx, sy, ex, ey); this.visibleLine = new Line(sx, sy, ex, ey);
...@@ -85,6 +89,14 @@ final class LineSegment { ...@@ -85,6 +89,14 @@ final class LineSegment {
} else { } else {
label = null; label = null;
} }
if(simulationLabelText != null) {
simulationLabel = new Text(simulationLabelText);
simulationLabel.setTextAlignment(TextAlignment.CENTER);
simulationLabel.setTextOrigin(VPos.TOP);
simulationLabel.setFill(Color.RED);
} else {
simulationLabel = null;
}
} }
/** Returns the bend point model. */ /** Returns the bend point model. */
...@@ -108,12 +120,14 @@ final class LineSegment { ...@@ -108,12 +120,14 @@ final class LineSegment {
} }
/** Adds the link nodes of this segment to the link layer node. */ /** Adds the link nodes of this segment to the link layer node. */
public void addLinkNodes(DiagramLayers layers, ILinkMVCBundle bundle, String labelText) { public void addLinkNodes(DiagramLayers layers, ILinkMVCBundle bundle, String labelText,
String simulationLabelText) {
ILayer visualLayer = layers.getLinkLayer(); ILayer visualLayer = layers.getLinkLayer();
visualLayer.add(visibleLine, bundle); visualLayer.add(visibleLine, bundle);
if(arrowWidget != null) { if(arrowWidget != null) {
visualLayer.add(arrowWidget, bundle); visualLayer.add(arrowWidget, bundle);
} }
if(label != null) { if(label != null) {
label.setText(labelText); label.setText(labelText);
double lx = (visibleLine.getStartX() + visibleLine.getEndX() - double lx = (visibleLine.getStartX() + visibleLine.getEndX() -
...@@ -122,11 +136,26 @@ final class LineSegment { ...@@ -122,11 +136,26 @@ final class LineSegment {
label.setX(lx); label.setX(lx);
label.setY(ly); label.setY(ly);
layers.getTextLayer().add(label, bundle); layers.getTextLayer().add(label, bundle);
if(simulationLabel != null) {
setSimulationLabel(simulationLabelText, lx, ly,
label.getBoundsInLocal().getHeight());
layers.getTextLayer().add(simulationLabel, bundle);
}
} }
ILayer interactionLayer = layers.getLinkInteractionLayer(); ILayer interactionLayer = layers.getLinkInteractionLayer();
interactionLayer.add(clickableLine, bundle); interactionLayer.add(clickableLine, bundle);
} }
/**
* Sets the text of the simulation label below the label of the line.
*/
private void setSimulationLabel(String simulationLabelText, double lx, double ly,
double yOffset) {
simulationLabel.setText(simulationLabelText);
simulationLabel.setX(lx);
simulationLabel.setY(ly + yOffset + SIMULATION_OFFSET);
}
/** Removes the link nodes of this segment from the link layer node. */ /** Removes the link nodes of this segment from the link layer node. */
public void removeLinkNodes(DiagramLayers layers) { public void removeLinkNodes(DiagramLayers layers) {
ILayer visualLayer = layers.getLinkLayer(); ILayer visualLayer = layers.getLinkLayer();
...@@ -137,6 +166,9 @@ final class LineSegment { ...@@ -137,6 +166,9 @@ final class LineSegment {
if(label != null) { if(label != null) {
layers.getTextLayer().remove(label); layers.getTextLayer().remove(label);
} }
if(simulationLabel != null) {
layers.getTextLayer().remove(simulationLabel);
}
ILayer interactionLayer = layers.getLinkInteractionLayer(); ILayer interactionLayer = layers.getLinkInteractionLayer();
interactionLayer.remove(clickableLine); interactionLayer.remove(clickableLine);
} }
...@@ -166,7 +198,7 @@ final class LineSegment { ...@@ -166,7 +198,7 @@ final class LineSegment {
/** Updates the line segment. */ /** Updates the line segment. */
public void update(Point2D sp, Point2D ep, double feedbackSize, double arrowLength, public void update(Point2D sp, Point2D ep, double feedbackSize, double arrowLength,
String labelText) { String labelText, String simulationLabelText) {
double sx = sp.getX(); double sx = sp.getX();
double sy = sp.getY(); double sy = sp.getY();
visibleLine.setStartX(sx); visibleLine.setStartX(sx);
...@@ -196,6 +228,10 @@ final class LineSegment { ...@@ -196,6 +228,10 @@ final class LineSegment {
double ly = (sy + ey) / 2; double ly = (sy + ey) / 2;
label.setX(lx); label.setX(lx);
label.setY(ly); label.setY(ly);
if(simulationLabel != null) {
setSimulationLabel(simulationLabelText, lx, ly,
label.getBoundsInLocal().getHeight());
}
} }
} }
...@@ -210,5 +246,8 @@ final class LineSegment { ...@@ -210,5 +246,8 @@ final class LineSegment {
if(label != null) { if(label != null) {
label.setMouseTransparent(transparent); label.setMouseTransparent(transparent);
} }
if(simulationLabel != null) {
simulationLabel.setMouseTransparent(transparent);
}
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment