Author: bobtarling
Date: 2011-04-27 04:22:55-0700
New Revision: 19291

Modified:
   
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigCompartment.java
   
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigComposite.java
   
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigNameCompartment.java

Log:
Work started getting the name compartment to react to added and removed 
stereotypes

Modified: 
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigCompartment.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigCompartment.java?view=diff&pathrev=19291&r1=19290&r2=19291
==============================================================================
--- 
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigCompartment.java
     (original)
+++ 
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigCompartment.java
     2011-04-27 04:22:55-0700
@@ -18,8 +18,11 @@
 import java.util.Arrays;
 import java.util.List;
 
+import org.argouml.model.AddAssociationEvent;
+import org.argouml.model.AssociationChangeListener;
 import org.argouml.model.InvalidElementException;
 import org.argouml.model.Model;
+import org.argouml.model.RemoveAssociationEvent;
 import org.argouml.notation2.NotationType;
 import org.argouml.uml.diagram.DiagramSettings;
 import org.tigris.gef.presentation.Fig;
@@ -35,11 +38,17 @@
  * 
  * @author Bob Tarling
  */
-class FigCompartment extends FigComposite {
+class FigCompartment extends FigComposite implements AssociationChangeListener 
{
 
-    public FigCompartment(Object owner, Rectangle bounds,
-            DiagramSettings settings, Object metaType) {
-        this(owner, bounds, settings, Arrays.asList(new Object[] {metaType}));
+    public FigCompartment(
+            final Object owner,
+            final Rectangle bounds,
+            final DiagramSettings settings,
+            final Object metaType,
+            final String propertyName) {
+        this(owner, bounds, settings,
+                Arrays.asList(new Object[] {metaType}),
+                propertyName);
     }
     
     /**
@@ -48,20 +57,25 @@
      * @param settings the diagram settings
      * @param metaType the different metatype that can be displayed in the 
compartment
      */
-    public FigCompartment(Object owner, Rectangle bounds,
-            DiagramSettings settings, List<Object> metaTypes) {
+    public FigCompartment(
+            final Object owner,
+            final Rectangle bounds,
+            final DiagramSettings settings,
+            final List<Object> metaTypes,
+            final String propertyName) {
         
         super(owner, settings);
         
         Model.getFacade().getModelElementContents(owner);
-        for (Object element : 
Model.getFacade().getModelElementContents(owner)) {
+        for (Object element
+                : Model.getFacade().getModelElementContents(owner)) {
             if (metaTypes.contains(element.getClass())) {
                 try {
                     int y = bounds.y + getTopMargin();
                     int x = bounds.x + getLeftMargin();
                     Rectangle childBounds = new Rectangle(x, y, 0, 0);
-                    FigNotation fn =
-                        new FigNotation(element, childBounds, settings, 
NotationType.NAME);
+                    FigNotation fn = new FigNotation(
+                            element, childBounds, settings, NotationType.NAME);
                     addFig(fn);
                     y += fn.getHeight();
                 } catch (InvalidElementException e) {
@@ -69,7 +83,9 @@
             }
         }
         
-        // TODO: Add listeners for add/remove events
+        Model.getPump().addModelEventListener(
+                (AssociationChangeListener) this, owner, propertyName);
+        // TODO: Remove listeners for add/remove events
     }
     
     public FigCompartment(
@@ -117,4 +133,17 @@
             y += fig.getHeight();
         }
     }
+
+    public void elementAdded(AddAssociationEvent evt) {
+        Object element = evt.getNewValue();
+        Rectangle childBounds = new Rectangle(getX() + getHeight(), getY(), 0, 
0);
+        FigNotation fn = new FigNotation(
+                element, childBounds, getDiagramSettings(), NotationType.NAME);
+        addFig(fn);
+    }
+
+    public void elementRemoved(RemoveAssociationEvent evt) {
+        // TODO Auto-generated method stub
+        
+    }
 }

Modified: 
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigComposite.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigComposite.java?view=diff&pathrev=19291&r1=19290&r2=19291
==============================================================================
--- 
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigComposite.java
       (original)
+++ 
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigComposite.java
       2011-04-27 04:22:55-0700
@@ -9,13 +9,18 @@
 public class FigComposite extends FigGroup implements DiagramElement {
     
     private static final int MARGIN = 0;
+    private final DiagramSettings diagramSettings;
     
     public FigComposite(
             final Object owner,
             final DiagramSettings settings) {
         setOwner(owner);
+        diagramSettings = settings;
     }
     
+    protected DiagramSettings getDiagramSettings() {
+        return diagramSettings;
+    }
     
     int getRightMargin() {
         return MARGIN;

Modified: 
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigNameCompartment.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigNameCompartment.java?view=diff&pathrev=19291&r1=19290&r2=19291
==============================================================================
--- 
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigNameCompartment.java
 (original)
+++ 
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigNameCompartment.java
 2011-04-27 04:22:55-0700
@@ -25,7 +25,9 @@
     public FigNameCompartment(Object owner, Rectangle bounds,
             DiagramSettings settings) {
         super(owner, settings);
-        addFig(new FigCompartment(owner, bounds, settings, 
Model.getMetaTypes().getStereotype()));
+        addFig(new FigCompartment(
+                owner, bounds, settings, 
+                Model.getMetaTypes().getStereotype(), "stereotype"));
         Fig nameDisplay = new FigNotation(
                 owner,
                 new Rectangle(0, 0, 0, 0),

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2724787

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to