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
DynamicTreeItem.java 75dc5534b119ffdb3c10a65810c2a0f330b7955e GREEN
DynamicTreeTableUIProviderBase.java f78c0f8b52fbc939166b3f94f7f6006cc0f4d32b GREEN
DynamicTreeTableViewer.java 5e58a31a63f8e56d8c8e69e2c4d095809bc46bf1 GREEN
DynamicTreeTableViewer.java 9eb192873acf4f08ab3570c195d8828224a61934 GREEN
DynamicTreeUIProviderBase.java e9b68607683de279d0cb8712a28dc131c5c33ece GREEN
DynamicTreeViewer.java 725f41f4fb4b6bfa813f010fb9083ab02eea164a GREEN
DynamicTreeViewerBase.java a2013538b62d86f6a09efdf2cd78babac2072484 GREEN
......
......@@ -119,14 +119,19 @@ public final class DynamicTreeTableViewer<T> extends DynamicTreeViewerBase<T> {
}
}
/** Expands all items on all levels. */
public void expandAllItems() {
/** Expand all items to the given level. */
public void expandToLevel(int revealLevel) {
TreeItem<T> root = view.getRoot();
if(root == null) {
return;
}
expandItem(root, MAX_VALUE);
expandItem(root, revealLevel);
}
/** Expands all items on all levels. */
public void expandAllItems() {
expandToLevel(MAX_VALUE);
}
/**
......
DiamondContentVisualBase.java a81e76e85706ad38b6c22bbcd1cc5a5696737e3d GREEN
LineLinkGraph.java 85a06a553f88f7b9fb4bd9c06411725d9fb160fc GREEN
LineLinkVisualBase.java 74968c18bb68859bc795ed9a3b0693d1787e0806 GREEN
LineSegment.java a8658ec5bcd930d417a148861831b9ebb70bb37d GREEN
LineLinkVisualBase.java 876d6872b1844568f055809b975d2471330f719f GREEN
LineSegment.java 9ab1b97ad372db763654ef783747fa0733bec55c GREEN
RectangularBorderLocation.java 824472c353534d1094ae4f735a30a231b885f050 GREEN
RectangularContentAnchorageVisualBase.java 39981dc29cac42d77c6ffe855ecc8ccad1689230 GREEN
RectangularContentVisualBase.java aeeda282f330180b1f339e3230810eccea2e7e7b GREEN
......
......@@ -70,7 +70,8 @@ public abstract class LineLinkVisualBase extends LinkVisualBase {
double nx = bp.getX() + chg.getDeltaX();
double ny = bp.getY() + chg.getDeltaY();
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;
sy = ny;
bpModel = getBendPointModel(i);
......@@ -80,7 +81,8 @@ public abstract class LineLinkVisualBase extends LinkVisualBase {
.applyToPoint(getEndAnchorPoint());
segments.add(new LineSegment(bpModel, sx, sy, endPoint.getX(), endPoint.getY(),
getInvisibleSelectionLineWidth(), 0, showArrowOnLastSegment(), useLineArrow(),
getArrowLength(), getLabelText(pts, pts + 1)));
getArrowLength(), getLabelText(pts, pts + 1),
getSimulationLabelText(pts, pts + 1)));
endFeedbackHandle.setX(endPoint.getX() - fs2);
endFeedbackHandle.setY(endPoint.getY() - fs2);
endFeedbackHandle.setWidth(feedbackSize);
......@@ -90,7 +92,8 @@ public abstract class LineLinkVisualBase extends LinkVisualBase {
int numberOfSegs = segments.size();
for(int i = 0; i < numberOfSegs; 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;
}
......@@ -156,14 +159,16 @@ public abstract class LineLinkVisualBase extends LinkVisualBase {
// handle bend points
for(int i = 0; i < pts; 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;
segIndex++;
}
// end point
Point2D ep = getFeedbackChangeForBendPoint(END_OF_LINK_BEND_POINT_INDEX)
.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.setY(ep.getY() - fs2);
endFeedbackHandle.setWidth(feedbackSize);
......@@ -360,6 +365,19 @@ public abstract class LineLinkVisualBase extends LinkVisualBase {
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}. */
private LinkMVCBundle getLinkBundle() {
return (LinkMVCBundle)getMVCBundle();
......
......@@ -47,19 +47,23 @@ final class LineSegment {
private final LinkArrowWidget arrowWidget;
/** Stores the 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. */
public LineSegment(double sx, double sy, double ex, double ey, double clickableWidth,
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,
labelText);
labelText, simulationLabelText);
}
/** Constructor. */
public LineSegment(Object bendPointModel, double sx, double sy, double ex, double ey,
double clickableWidth, double feedbackSize, boolean showArrow, boolean useLineArrow,
double arrowLength, String labelText) {
double arrowLength, String labelText, String simulationLabelText) {
this.bendPointModel = bendPointModel;
this.visibleLine = new Line(sx, sy, ex, ey);
......@@ -85,6 +89,14 @@ final class LineSegment {
} else {
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. */
......@@ -108,12 +120,14 @@ final class LineSegment {
}
/** 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();
visualLayer.add(visibleLine, bundle);
if(arrowWidget != null) {
visualLayer.add(arrowWidget, bundle);
}
if(label != null) {
label.setText(labelText);
double lx = (visibleLine.getStartX() + visibleLine.getEndX() -
......@@ -122,11 +136,26 @@ final class LineSegment {
label.setX(lx);
label.setY(ly);
layers.getTextLayer().add(label, bundle);
if(simulationLabel != null) {
setSimulationLabel(simulationLabelText, lx, ly,
label.getBoundsInLocal().getHeight());
layers.getTextLayer().add(simulationLabel, bundle);
}
}
ILayer interactionLayer = layers.getLinkInteractionLayer();
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. */
public void removeLinkNodes(DiagramLayers layers) {
ILayer visualLayer = layers.getLinkLayer();
......@@ -137,6 +166,9 @@ final class LineSegment {
if(label != null) {
layers.getTextLayer().remove(label);
}
if(simulationLabel != null) {
layers.getTextLayer().remove(simulationLabel);
}
ILayer interactionLayer = layers.getLinkInteractionLayer();
interactionLayer.remove(clickableLine);
}
......@@ -166,7 +198,7 @@ final class LineSegment {
/** Updates the line segment. */
public void update(Point2D sp, Point2D ep, double feedbackSize, double arrowLength,
String labelText) {
String labelText, String simulationLabelText) {
double sx = sp.getX();
double sy = sp.getY();
visibleLine.setStartX(sx);
......@@ -196,6 +228,10 @@ final class LineSegment {
double ly = (sy + ey) / 2;
label.setX(lx);
label.setY(ly);
if(simulationLabel != null) {
setSimulationLabel(simulationLabelText, lx, ly,
label.getBoundsInLocal().getHeight());
}
}
}
......@@ -210,5 +246,8 @@ final class LineSegment {
if(label != null) {
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