svn commit: r18864 - trunk/src/argouml-app/src/org/argouml/kernel
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: thn
Date: 2010-12-03 01:07:27-0800
New Revision: 18864
Modified:
trunk/src/argouml-app/src/org/argouml/kernel/Project.java
trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java
Log:
UML2 only: provide a method for updating the roots of a project. This is needed when stereotypes get applied/unapplied to model elements.
Modified: trunk/src/argouml-app/src/org/argouml/kernel/Project.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/kernel/Project.java?view=diff&pathrev=18864&r1=18863&r2=18864
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/kernel/Project.java (original)
+++ trunk/src/argouml-app/src/org/argouml/kernel/Project.java 2010-12-03 01:07:27-0800
@@ -527,6 +527,13 @@
* @param elements Collection of top level ModelElements
*/
public void setRoots(final Collection elements);
+
+ /**
+ * Updates the top level ModelElements for all projects. In UML2, each
+ * model knows it's root elements, so this could make setRoots(...)
+ * obsolete. E.g., applying a stereotype in UML2 adds a new root.
+ */
+ public void updateRoots();
/**
* Returns true if the given name is a valid name for a diagram. Valid means
Modified: trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java?view=diff&pathrev=18864&r1=18863&r2=18864
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java (original)
+++ trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java 2010-12-03 01:07:27-0800
@@ -984,6 +984,21 @@
roots.addAll(elements);
}
+ public void updateRoots() {
+ if (Model.getFacade().getUmlVersion().charAt(0) == '1') {
+ // not needed in UML 1.x
+ return;
+ }
+ roots.clear();
+ for (Object m : models) {
+ for (Object e : Model.getModelManagementHelper().getRootElements(m)) {
+ if (!roots.contains(e)) {
+ roots.add(e);
+ }
+ }
+ }
+ }
+
public boolean isValidDiagramName(String name) {
boolean rv = true;
for (ArgoDiagram diagram : diagrams) {
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2687495
To unsubscribe from this discussion, e-mail: [[email protected]].