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