130418 - Infinite loop on while/scope/assign add
diff --git a/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/editparts/ScopeEditPart.java b/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/editparts/ScopeEditPart.java
index 01ca03c..ba82e59 100644
--- a/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/editparts/ScopeEditPart.java
+++ b/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/editparts/ScopeEditPart.java
@@ -225,7 +225,6 @@
border.setShowCompensation(getCompensationHandler() != null);
border.setShowTermination(getTerminationHandler() != null);
border.setShowEvent(getEventHandler() != null);
- border.setHasChildren(getChildren().size() != 0);
// Force a repaint, as the drawer images may have changed.
getFigure().repaint();
}
diff --git a/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/editparts/borders/ContainerBorder.java b/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/editparts/borders/ContainerBorder.java
index 6b1c658..0394770 100644
--- a/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/editparts/borders/ContainerBorder.java
+++ b/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/editparts/borders/ContainerBorder.java
@@ -246,11 +246,7 @@
public Insets getInsets(IFigure figure) {
if (isCollapsed()) return super.getInsets(figure);
calculate(figure);
- int hInsets = hBorderInsets;
- if (isCollapsed()) hInsets = 0;
- int vInsets = vBorderInsets;
- if (isCollapsed()) vInsets = 0;
- Insets result = new Insets(vInsets + rectLabelBorder.height, hInsets, vInsets, hInsets);
+ Insets result = new Insets(vBorderInsets + rectLabelBorder.height, hBorderInsets, vBorderInsets, hBorderInsets);
result.left += DRAWER_WIDTH;
result.right += DRAWER_WIDTH;
return result;
diff --git a/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/editparts/borders/ScopeBorder.java b/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/editparts/borders/ScopeBorder.java
index 26a0fc0..925d56f 100644
--- a/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/editparts/borders/ScopeBorder.java
+++ b/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/editparts/borders/ScopeBorder.java
@@ -65,10 +65,6 @@
private Rectangle rectTermination;
private Rectangle rectEvent;
- // Whether or not we have children; used to determine whether
- // to add extraSpace
- private boolean hasChildren = false;
-
public ScopeBorder(IFigure parentFigure, String labelText, Image image) {
super(true, IBPELUIConstants.ARC_WIDTH, parentFigure, labelText, image);
@@ -96,14 +92,12 @@
public Dimension getPreferredSize(IFigure f) {
calculate(f);
- if (isCollapsed()) {
- return new Dimension(rectCollapsed.width + DRAWER_WIDTH * 2, rectCollapsed.height + expandedHeight);
+ Dimension d = new Dimension(rectCollapsed.width, rectCollapsed.height + expandedHeight);
+ d.width += DRAWER_WIDTH * 2;
+ if (!isCollapsed()) {
+ d.width += extraHorizontalSpace;
}
- int extraSpace = 0;
- if (!hasChildren) {
- extraSpace = extraHorizontalSpace;
- }
- return new Dimension(expandedBounds.width + extraSpace, expandedBounds.height + expandedHeight);
+ return d;
}
protected void doPaint(IFigure figure, Graphics graphics, Insets insets) {
@@ -359,8 +353,4 @@
calculate(parentFigure);
return expandedBounds;
}
-
- public void setHasChildren(boolean hasChildren) {
- this.hasChildren = hasChildren;
- }
}
\ No newline at end of file