svn commit: r17151 - trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/UMLSequenceDiagram.java
Bob Tarling <[email protected]>
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: bobtarling
Date: 2009-06-22 16:38:44-0700
New Revision: 17151
Modified:
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/UMLSequenceDiagram.java
Log:
For safety double check that interaction and collaborations are empty before deleting them
Modified: trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/UMLSequenceDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/UMLSequenceDiagram.java?view=diff&pathrev=17151&r1=17150&r2=17151
==============================================================================
--- trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/UMLSequenceDiagram.java (original)
+++ trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/sequence2/diagram/UMLSequenceDiagram.java 2009-06-22 16:38:44-0700
@@ -28,12 +28,11 @@
import java.awt.Rectangle;
import java.beans.PropertyVetoException;
import java.util.Collection;
-import java.util.HashSet;
import java.util.List;
-import java.util.Set;
import org.apache.log4j.Logger;
import org.argouml.i18n.Translator;
+import org.argouml.model.Facade;
import org.argouml.model.Model;
import org.argouml.uml.diagram.DiagramSettings;
import org.argouml.uml.diagram.SequenceDiagram;
@@ -351,15 +350,14 @@
}
}
if (correctInteraction != null) {
- final Set deadInteractions = new HashSet();
for (final Fig f : getLayer().getContents()) {
if (f instanceof FigMessage) {
+ Facade facade = Model.getFacade();
+
final Object message = f.getOwner();
- final Object interaction =
- Model.getFacade().getInteraction(message);
- final Object context =
- Model.getFacade().getContext(interaction);
- final Object action = Model.getFacade().getAction(message);
+ final Object interaction = facade.getInteraction(message);
+ final Object context = facade.getContext(interaction);
+ final Object action = facade.getAction(message);
if (context != collaboration) {
LOG.warn("namespace of interaction does not match "
+ "collaboration - moving "
@@ -368,18 +366,23 @@
correctInteraction, message);
Model.getCoreHelper().setNamespace(
action, collaboration);
- deadInteractions.add(interaction);
+ // If this leaves the interaction empty then
+ // delete it.
+ if (facade.getMessages(interaction).isEmpty()) {
+ LOG.warn("Deleting empty interaction "
+ + interaction);
+ Model.getUmlFactory().delete(interaction);
+ // If that in turn leaves the collaboration empty
+ // then delete that also.
+ if (facade.getOwnedElements(context).isEmpty()) {
+ LOG.warn("Deleting empty collaboration "
+ + context);
+ Model.getUmlFactory().delete(context);
+ }
+ }
}
}
}
- for (Object interaction : deadInteractions) {
- if (Model.getFacade().getMessages(interaction).isEmpty()) {
- final Object context =
- Model.getFacade().getContext(interaction);
- Model.getUmlFactory().delete(interaction);
- Model.getUmlFactory().delete(context);
- }
- }
}
}
}
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2364346
To unsubscribe from this discussion, e-mail: [[email protected]].