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]].
