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