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.