svn commit: r19291 - trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
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]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.