Author: mvw
Date: 2008-11-07 23:33:25-0800
New Revision: 15981

Added:
   trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigStereotypesGroup.java
      - copied, changed from r15952, 
/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigStereotypesCompartment.java
Removed:
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigStereotypesCompartment.java
Modified:
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/FigClassifierRole.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/sequence/ui/FigClassifierRole.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigDataType.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigEnumeration.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigInterface.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigPackage.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigSignal.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigStereotypeDeclaration.java
   trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEdgeModelElement.java
   trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java
   trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigSingleLineText.java

Log:
First refactoring step towards fixing issue 5421: Printing causes a line to be 
printed between stereotype and class name.

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/FigClassifierRole.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/FigClassifierRole.java?view=diff&rev=15981&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/FigClassifierRole.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/FigClassifierRole.java&r1=15980&r2=15981
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/FigClassifierRole.java
   (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/FigClassifierRole.java
   2008-11-07 23:33:25-0800
@@ -38,7 +38,6 @@
 import org.argouml.notation.NotationProvider;
 import org.argouml.notation.NotationProviderFactory2;
 import org.argouml.uml.diagram.ui.FigNodeModelElement;
-import org.argouml.uml.diagram.ui.FigStereotypesCompartment;
 import org.tigris.gef.base.Layer;
 import org.tigris.gef.base.Selection;
 import org.tigris.gef.graph.GraphModel;
@@ -197,7 +196,6 @@
         int heightWithoutStereo = getHeight() - stereotypeHeight;
 
         getStereotypeFig().setOwner(getOwner());
-        ((FigStereotypesCompartment) getStereotypeFig()).populate();
 
         stereotypeHeight = 0;
         if (getStereotypeFig().isVisible()) {

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/sequence/ui/FigClassifierRole.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/sequence/ui/FigClassifierRole.java?view=diff&rev=15981&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/sequence/ui/FigClassifierRole.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/sequence/ui/FigClassifierRole.java&r1=15980&r2=15981
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/sequence/ui/FigClassifierRole.java
        (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/sequence/ui/FigClassifierRole.java
        2008-11-07 23:33:25-0800
@@ -41,7 +41,6 @@
 import org.argouml.uml.diagram.sequence.MessageNode;
 import org.argouml.uml.diagram.sequence.ui.FigLifeLine.FigLifeLineHandler;
 import org.argouml.uml.diagram.ui.FigNodeModelElement;
-import org.argouml.uml.diagram.ui.FigStereotypesCompartment;
 import org.tigris.gef.base.Globals;
 import org.tigris.gef.base.Layer;
 import org.tigris.gef.base.Selection;
@@ -1259,7 +1258,6 @@
         Rectangle rect = headFig.getBounds();
 
         getStereotypeFig().setOwner(getOwner());
-        ((FigStereotypesCompartment) getStereotypeFig()).populate();
 
         int minWidth = headFig.getMinimumSize().width;
         if (minWidth > rect.width) {

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigDataType.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigDataType.java?view=diff&rev=15981&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigDataType.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigDataType.java&r1=15980&r2=15981
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigDataType.java
      (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigDataType.java
      2008-11-07 23:33:25-0800
@@ -32,7 +32,7 @@
 import org.argouml.model.Model;
 import org.argouml.ui.targetmanager.TargetManager;
 import org.argouml.uml.diagram.ArgoDiagram;
-import org.argouml.uml.diagram.ui.FigStereotypesCompartment;
+import org.argouml.uml.diagram.ui.FigStereotypesGroup;
 import org.tigris.gef.base.Editor;
 import org.tigris.gef.base.Globals;
 import org.tigris.gef.base.Selection;
@@ -82,8 +82,8 @@
      */
     public FigDataType() {
 
-        FigStereotypesCompartment fsc =
-            (FigStereotypesCompartment) getStereotypeFig();
+        FigStereotypesGroup fsc =
+            (FigStereotypesGroup) getStereotypeFig();
         fsc.setKeyword("datatype");
 
         // Put all the bits together, suppressing bounds calculations until
@@ -126,7 +126,7 @@
      */
     public FigDataType(GraphModel gm, Object node, String keyword) {
         this(gm, node);        
-        ((FigStereotypesCompartment) getStereotypeFig()).setKeyword(keyword);
+        ((FigStereotypesGroup) getStereotypeFig()).setKeyword(keyword);
     }
     
 

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigEnumeration.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigEnumeration.java?view=diff&rev=15981&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigEnumeration.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigEnumeration.java&r1=15980&r2=15981
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigEnumeration.java
   (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigEnumeration.java
   2008-11-07 23:33:25-0800
@@ -39,7 +39,7 @@
 import org.argouml.ui.ArgoJMenu;
 import org.argouml.uml.diagram.ui.EnumLiteralsCompartmentContainer;
 import org.argouml.uml.diagram.ui.FigEnumLiteralsCompartment;
-import org.argouml.uml.diagram.ui.FigStereotypesCompartment;
+import org.argouml.uml.diagram.ui.FigStereotypesGroup;
 import org.argouml.uml.ui.foundation.core.ActionAddEnumerationLiteral;
 import org.tigris.gef.base.Selection;
 import org.tigris.gef.graph.GraphModel;
@@ -68,8 +68,8 @@
      */
     public FigEnumeration() {
         super();
-        FigStereotypesCompartment fsc =
-            (FigStereotypesCompartment) getStereotypeFig();
+        FigStereotypesGroup fsc =
+            (FigStereotypesGroup) getStereotypeFig();
         fsc.setKeyword("enumeration");
 
         enableSizeChecking(true);

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigInterface.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigInterface.java?view=diff&rev=15981&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigInterface.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigInterface.java&r1=15980&r2=15981
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigInterface.java
     (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigInterface.java
     2008-11-07 23:33:25-0800
@@ -32,7 +32,7 @@
 import org.argouml.model.Model;
 import org.argouml.ui.targetmanager.TargetManager;
 import org.argouml.uml.diagram.ArgoDiagram;
-import org.argouml.uml.diagram.ui.FigStereotypesCompartment;
+import org.argouml.uml.diagram.ui.FigStereotypesGroup;
 import org.tigris.gef.base.Editor;
 import org.tigris.gef.base.Globals;
 import org.tigris.gef.base.Selection;
@@ -83,8 +83,8 @@
      */
     public FigInterface() {
 
-        FigStereotypesCompartment fsc =
-            (FigStereotypesCompartment) getStereotypeFig();
+        FigStereotypesGroup fsc =
+            (FigStereotypesGroup) getStereotypeFig();
         fsc.setKeyword("interface");
 
         // Put all the bits together, suppressing bounds calculations until

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigPackage.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigPackage.java?view=diff&rev=15981&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigPackage.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigPackage.java&r1=15980&r2=15981
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigPackage.java
       (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigPackage.java
       2008-11-07 23:33:25-0800
@@ -54,7 +54,6 @@
 import org.argouml.uml.diagram.VisibilityContainer;
 import org.argouml.uml.diagram.DiagramFactory.DiagramType;
 import org.argouml.uml.diagram.ui.FigNodeModelElement;
-import org.argouml.uml.diagram.ui.FigStereotypesCompartment;
 import org.tigris.gef.base.Editor;
 import org.tigris.gef.base.Geometry;
 import org.tigris.gef.base.Globals;

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigSignal.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigSignal.java?view=diff&rev=15981&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigSignal.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigSignal.java&r1=15980&r2=15981
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigSignal.java
        (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigSignal.java
        2008-11-07 23:33:25-0800
@@ -30,7 +30,7 @@
 
 import org.argouml.model.AssociationChangeEvent;
 import org.argouml.model.AttributeChangeEvent;
-import org.argouml.uml.diagram.ui.FigStereotypesCompartment;
+import org.argouml.uml.diagram.ui.FigStereotypesGroup;
 import org.tigris.gef.base.Selection;
 import org.tigris.gef.graph.GraphModel;
 
@@ -52,8 +52,8 @@
      */
     public FigSignal() {
         super();
-        FigStereotypesCompartment fsc =
-            (FigStereotypesCompartment) getStereotypeFig();
+        FigStereotypesGroup fsc =
+            (FigStereotypesGroup) getStereotypeFig();
         fsc.setKeyword("signal");
 
         addFig(getBigPort());

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigStereotypeDeclaration.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigStereotypeDeclaration.java?view=diff&rev=15981&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigStereotypeDeclaration.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigStereotypeDeclaration.java&r1=15980&r2=15981
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigStereotypeDeclaration.java
 (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigStereotypeDeclaration.java
 2008-11-07 23:33:25-0800
@@ -45,7 +45,7 @@
 import org.argouml.uml.diagram.ui.ActionEdgesDisplay;
 import org.argouml.uml.diagram.ui.CompartmentFigText;
 import org.argouml.uml.diagram.ui.FigCompartmentBox;
-import org.argouml.uml.diagram.ui.FigStereotypesCompartment;
+import org.argouml.uml.diagram.ui.FigStereotypesGroup;
 import 
org.argouml.uml.ui.foundation.extension_mechanisms.ActionNewTagDefinition;
 import org.tigris.gef.base.Selection;
 import org.tigris.gef.graph.GraphModel;
@@ -67,8 +67,8 @@
      * Create a new Fig for a stereotype declaration.
      */
     public FigStereotypeDeclaration() {
-        FigStereotypesCompartment fsc =
-            (FigStereotypesCompartment) getStereotypeFig();
+        FigStereotypesGroup fsc =
+            (FigStereotypesGroup) getStereotypeFig();
         fsc.setKeyword("stereotype");
 
         // Put all the bits together, suppressing bounds calculations until

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEdgeModelElement.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEdgeModelElement.java?view=diff&rev=15981&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEdgeModelElement.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEdgeModelElement.java&r1=15980&r2=15981
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEdgeModelElement.java   
    (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEdgeModelElement.java   
    2008-11-07 23:33:25-0800
@@ -172,7 +172,7 @@
         nameFig = new FigNameWithAbstract(10, 30, 90, 20, false);
         nameFig.setTextFilled(false);
 
-        stereotypeFig = new FigStereotypesCompartment(10, 10, 90, 15);
+        stereotypeFig = new FigStereotypesGroup(10, 10, 90, 15);
 
         setBetweenNearestPoints(true);
 

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java?view=diff&rev=15981&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java&r1=15980&r2=15981
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java   
    (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java   
    2008-11-07 23:33:25-0800
@@ -307,7 +307,7 @@
         nameFig.setRightMargin(4); // margin between text and border
         nameFig.setLeftMargin(4);
 
-        stereotypeFig = new FigStereotypesCompartment(10, 10, 90, 15);
+        stereotypeFig = new FigStereotypesGroup(10, 10, 90, 15);
 
         readyToEdit = false;
         ArgoEventPump.addListener(ArgoEventTypes.ANY_NOTATION_EVENT, this);
@@ -1696,10 +1696,10 @@
        Collection stereos = Model.getFacade().getStereotypes(modelElement);
         
        Fig stereoFig = getStereotypeFig();
-        if (stereoFig instanceof FigStereotypesCompartment) {
+        if (stereoFig instanceof FigStereotypesGroup) {
             boolean hiding = 
                 practicalView == DiagramAppearance.STEREOTYPE_VIEW_SMALL_ICON;
-            ((FigStereotypesCompartment) stereoFig)
+            ((FigStereotypesGroup) stereoFig)
                     .setHidingStereotypesWithIcon(hiding);
         }
 
@@ -1864,9 +1864,9 @@
     }
 
     /**
-     * Get the Fig containing the stereotype.
+     * Get the Fig containing the stereotype(s).
      * <p>
-     * TODO: Should return FigStereotypesCompartment or at the very least
+     * TODO: Should return FigStereotypesGroup or at the very least
      * a FigGroup
      *
      * @return the stereotype Fig

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigSingleLineText.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigSingleLineText.java?view=diff&rev=15981&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigSingleLineText.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigSingleLineText.java&r1=15980&r2=15981
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigSingleLineText.java 
(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigSingleLineText.java 
2008-11-07 23:33:25-0800
@@ -187,6 +187,7 @@
                     getOwner(), 
                     properties);
         }
+        ArgoEventPump.removeListener(ArgoEventTypes.ANY_NOTATION_EVENT, this);
     }
     
     @Override
@@ -241,7 +242,8 @@
             /* TODO: Why does it fail for changing 
              * the name of an associationend?
              *  Why should it pass? */
-            //assert 
Arrays.asList(properties).contains(event.getPropertyName()) 
+            //assert Arrays.asList(properties).contains(
+            //    event.getPropertyName()) 
             //  : event.getPropertyName(); 
             // TODO: Do we really always need to do this or only if
             // notationProvider is null?

Removed: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigStereotypesCompartment.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigStereotypesCompartment.java?view=auto&rev=15980

Copied: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigStereotypesGroup.java 
(from r15952, 
/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigStereotypesCompartment.java)
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigStereotypesGroup.java?view=diff&rev=15981&p1=/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigStereotypesCompartment.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigStereotypesGroup.java&r1=15952&r2=15981
==============================================================================
--- 
/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigStereotypesCompartment.java
        (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigStereotypesGroup.java   
    2008-11-07 23:33:25-0800
@@ -24,6 +24,7 @@
 
 package org.argouml.uml.diagram.ui;
 
+import java.awt.Color;
 import java.awt.Dimension;
 import java.awt.Image;
 import java.beans.PropertyChangeEvent;
@@ -38,6 +39,7 @@
 import org.argouml.model.Model;
 import org.argouml.model.RemoveAssociationEvent;
 import org.tigris.gef.presentation.Fig;
+import org.tigris.gef.presentation.FigRect;
 import org.tigris.gef.presentation.FigText;
 
 /**
@@ -58,18 +60,15 @@
  * class can be used for this.
  * @author Bob Tarling
  */
-public class FigStereotypesCompartment extends FigCompartment {
+public class FigStereotypesGroup extends ArgoFigGroup {
 
-    /**
-     * The UID.
-     */
-    private static final long serialVersionUID = -1696363445893406130L;
+    private Fig bigPort;
     
     /**
      * Logger.
      */
     private static final Logger LOG =
-        Logger.getLogger(FigStereotypesCompartment.class);
+        Logger.getLogger(FigStereotypesGroup.class);
 
     /**
      * One UML keyword is allowed. These are not strictly stereotypes but are
@@ -89,8 +88,13 @@
      * @param w width
      * @param h height
      */
-    public FigStereotypesCompartment(int x, int y, int w, int h) {
-        super(x, y, w, h);
+    public FigStereotypesGroup(int x, int y, int w, int h) {
+        super();
+        bigPort = new FigRect(x, y, w, h, Color.black, Color.white);
+        addFig(bigPort);
+
+        /* Do not show border line, make transparent: */
+        setLineWidth(0);
         setFilled(false);
     }
 
@@ -111,9 +115,17 @@
      */
     @Override
     public void removeFromDiagram() {
+        super.removeFromDiagram();
         Model.getPump()
                 .removeModelEventListener(this, getOwner(), "stereotype");
     }
+
+    /**
+     * @return the bigport
+     */
+    public Fig getBigPort() {
+        return bigPort;
+    }
     
     @Override
     public void propertyChange(PropertyChangeEvent event) {
@@ -122,16 +134,16 @@
             if (event.getPropertyName().equals("stereotype")) {
                 Object stereotype = aae.getChangedValue();
                 if (findFig(stereotype) == null) {
-                    Fig bigPort = this.getBigPort();
+                    Fig theBigPort = this.getBigPort();
                     FigText stereotypeTextFig =
                         new FigStereotype(
-                                bigPort.getX() + 1,
-                                bigPort.getY() + 1
+                                theBigPort.getX() + 1,
+                                theBigPort.getY() + 1
                                 + (++stereotypeCount)
                                 * FigNodeModelElement.ROWHEIGHT,
                                 0,
                                 FigNodeModelElement.ROWHEIGHT - 2,
-                                bigPort,
+                                theBigPort,
                                 stereotype);
                     stereotypeTextFig.setJustification(FigText.JUSTIFY_CENTER);
                     stereotypeTextFig.setEditable(false);
@@ -224,9 +236,9 @@
         }
         
         int acounter = 1;
-        Fig bigPort = this.getBigPort();
-        int xpos = bigPort.getX();
-        int ypos = bigPort.getY();
+        Fig theBigPort = this.getBigPort();
+        int xpos = theBigPort.getX();
+        int ypos = theBigPort.getY();
 
         List figs = getFigs();
         CompartmentFigText stereotypeTextFig;
@@ -242,7 +254,7 @@
                                 * FigNodeModelElement.ROWHEIGHT,
                             0,
                             FigNodeModelElement.ROWHEIGHT - 2,
-                            bigPort,
+                            theBigPort,
                             null);
                 // bounds not relevant here
                 stereotypeTextFig.setJustification(FigText.JUSTIFY_CENTER);
@@ -267,7 +279,7 @@
                             * FigNodeModelElement.ROWHEIGHT,
                             0,
                             FigNodeModelElement.ROWHEIGHT - 2,
-                            bigPort,
+                            theBigPort,
                             stereo);
                 // bounds not relevant here
                 stereotypeTextFig.setJustification(FigText.JUSTIFY_CENTER);
@@ -385,7 +397,24 @@
         if (modelElement != null) {
             Collection stereos = 
Model.getFacade().getStereotypes(modelElement);
             if (stereos.size() > 0 || keyword != null) {
-                dim = super.getMinimumSize();
+                int minWidth = 0;
+                int minHeight = 0;
+                //set new bounds for all included figs
+                Iterator figs = iterator();
+                Fig fig;
+                while (figs.hasNext()) {
+                    fig = (Fig) figs.next();
+                    if (fig.isVisible() && fig != getBigPort()) {
+                        int fw = fig.getMinimumSize().width;
+                        if (fw > minWidth) {
+                            minWidth = fw;
+                        }
+                        minHeight += fig.getMinimumSize().height;
+                    }
+                }
+
+                minHeight += 2; // 2 Pixel padding after compartment
+                dim = new Dimension(minWidth, minHeight);
             }
         }
         if (dim == null) {

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to