Author: tfmorris Date: 2011-01-13 06:39:23-0800 New Revision: 18968 Modified: trunk/src/argouml-app/src/org/argouml/kernel/Project.java trunk/src/argouml-app/src/org/argouml/kernel/ProjectManager.java trunk/src/argouml-app/src/org/argouml/persistence/ModelMemberFilePersister.java trunk/src/argouml-app/src/org/argouml/persistence/XmiFilePersister.java trunk/src/argouml-app/src/org/argouml/persistence/ZipFilePersister.java trunk/src/argouml-app/src/org/argouml/ui/ProjectActions.java trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerTree.java trunk/src/argouml-app/src/org/argouml/ui/explorer/rules/GoProjectToModel.java
Log: STARTED - task 6179: Remove side effect of creating an empty project when asking for current project. Fix places that assume there's always a current project. http://argouml.tigris.org/issues/show_bug.cgi?id=6179 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=18968&r1=18967&r2=18968 ============================================================================== --- trunk/src/argouml-app/src/org/argouml/kernel/Project.java (original) +++ trunk/src/argouml-app/src/org/argouml/kernel/Project.java 2011-01-13 06:39:23-0800 @@ -14,7 +14,6 @@ * Some portions of this file were previously release using the BSD License: */ -// $Id$ // Copyright (c) 2007-2008 The Regents of the University of California. All // Rights Reserved. Permission to use, copy, modify, and distribute this // software and its documentation without fee, and without a written @@ -40,7 +39,6 @@ package org.argouml.kernel; -import java.beans.VetoableChangeSupport; import java.io.File; import java.net.URI; import java.util.Collection; @@ -496,7 +494,7 @@ * * @return the Package which is the root * @deprecated for 0.25.4 by tfmorris - use {@link #getRoots()} to - * packages/model elements which are at the top level. + * get packages/model elements which are at the top level. * <p> * TODO: We probably need a getDefaultNamespace() method or * something similar to replace some uses of this. @@ -532,6 +530,12 @@ * 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. + * + * TODO: This is redundant with setRoots/getRoots. There are already too + * many ways this stuff is managed without adding an additional one. + * All current model subsystem implementations know their top level + * elements. Responsibility can be moved to the model subsystem, but + * let's choose *one* way of managing this. */ public void updateRoots(); Modified: trunk/src/argouml-app/src/org/argouml/kernel/ProjectManager.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/kernel/ProjectManager.java?view=diff&pathrev=18968&r1=18967&r2=18968 ============================================================================== --- trunk/src/argouml-app/src/org/argouml/kernel/ProjectManager.java (original) +++ trunk/src/argouml-app/src/org/argouml/kernel/ProjectManager.java 2011-01-13 06:39:23-0800 @@ -267,10 +267,8 @@ * renderings in diagrams use * {@link org.argouml.uml.diagram.ui.ArgoFig#getSettings()}. */ + @Deprecated public Project getCurrentProject() { - if (currentProject == null && !creatingCurrentProject) { - makeEmptyProject(); - } return currentProject; } Modified: trunk/src/argouml-app/src/org/argouml/persistence/ModelMemberFilePersister.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/persistence/ModelMemberFilePersister.java?view=diff&pathrev=18968&r1=18967&r2=18968 ============================================================================== --- trunk/src/argouml-app/src/org/argouml/persistence/ModelMemberFilePersister.java (original) +++ trunk/src/argouml-app/src/org/argouml/persistence/ModelMemberFilePersister.java 2011-01-13 06:39:23-0800 @@ -73,12 +73,14 @@ class ModelMemberFilePersister extends MemberFilePersister implements XmiExtensionParser { - /** - * Logger. - */ private static final Logger LOG = Logger.getLogger(ModelMemberFilePersister.class); + private Object curModel; + private HashMap<String, Object> uUIDRefs; + + private Collection elementsRead; + /** * Loads a model (XMI only) from a URL. BE ADVISED this * method has a side effect. It sets _UUIDREFS to the model.<p> @@ -137,6 +139,7 @@ // the listener. Until then, do it here. Model.getUmlHelper().addListenersToModel(mmodel); + // TODO Add all top level packages project.addMember(mmodel); project.setUUIDRefs(new HashMap<String, Object>(getUUIDRefs())); @@ -184,16 +187,13 @@ public void parse(String label, String xmiExtensionString) { LOG.info("Parsing an extension for " + label); } - - private Object curModel; - private HashMap<String, Object> uUIDRefs; - - private Collection elementsRead; /** * @return the current model + * @deprecated by tfmorris for 0.33.1 */ + @Deprecated public Object getCurModel() { return curModel; } Modified: trunk/src/argouml-app/src/org/argouml/persistence/XmiFilePersister.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/persistence/XmiFilePersister.java?view=diff&pathrev=18968&r1=18967&r2=18968 ============================================================================== --- trunk/src/argouml-app/src/org/argouml/persistence/XmiFilePersister.java (original) +++ trunk/src/argouml-app/src/org/argouml/persistence/XmiFilePersister.java 2011-01-13 06:39:23-0800 @@ -263,6 +263,7 @@ progressMgr.nextPhase(); Model.getUmlHelper().addListenersToModel(model); p.setUUIDRefs(modelPersister.getUUIDRefs()); + // TODO Handle multiple top level packages p.addMember(model); parseXmiExtensions(p); modelPersister.registerDiagrams(p); Modified: trunk/src/argouml-app/src/org/argouml/persistence/ZipFilePersister.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/persistence/ZipFilePersister.java?view=diff&pathrev=18968&r1=18967&r2=18968 ============================================================================== --- trunk/src/argouml-app/src/org/argouml/persistence/ZipFilePersister.java (original) +++ trunk/src/argouml-app/src/org/argouml/persistence/ZipFilePersister.java 2011-01-13 06:39:23-0800 @@ -223,6 +223,7 @@ new ModelMemberFilePersister(); modelPersister.readModels(is); + // TODO Handle multiple top level packages Object model = modelPersister.getCurModel(); Model.getUmlHelper().addListenersToModel(model); p.setUUIDRefs(modelPersister.getUUIDRefs()); Modified: trunk/src/argouml-app/src/org/argouml/ui/ProjectActions.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/ui/ProjectActions.java?view=diff&pathrev=18968&r1=18967&r2=18968 ============================================================================== --- trunk/src/argouml-app/src/org/argouml/ui/ProjectActions.java (original) +++ trunk/src/argouml-app/src/org/argouml/ui/ProjectActions.java 2011-01-13 06:39:23-0800 @@ -91,8 +91,11 @@ redoAction.setEnabled(false); TargetManager.getInstance().addTargetListener(this); - ProjectManager.getManager().getCurrentProject().getUndoManager() - .addPropertyChangeListener(this); + Project p = ProjectManager.getManager().getCurrentProject(); + if (p != null) { + p.getUndoManager().addPropertyChangeListener(this); + } + } /** Modified: trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerTree.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerTree.java?view=diff&pathrev=18968&r1=18967&r2=18968 ============================================================================== --- trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerTree.java (original) +++ trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerTree.java 2011-01-13 06:39:23-0800 @@ -114,10 +114,10 @@ bgImage = ResourceLoaderWrapper.lookupIconResource( "uml2explorerbg").getImage(); } - - ProjectSettings ps = p.getProjectSettings(); - setShowStereotype(ps.getShowStereotypesValue()); - + if (p != null) { + ProjectSettings ps = p.getProjectSettings(); + setShowStereotype(ps.getShowStereotypesValue()); + } this.addMouseListener(new ExplorerMouseListener(this)); this.addTreeSelectionListener(new ExplorerTreeSelectionListener()); this.addTreeWillExpandListener(new ExplorerTreeWillExpandListener()); Modified: trunk/src/argouml-app/src/org/argouml/ui/explorer/rules/GoProjectToModel.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/ui/explorer/rules/GoProjectToModel.java?view=diff&pathrev=18968&r1=18967&r2=18968 ============================================================================== --- trunk/src/argouml-app/src/org/argouml/ui/explorer/rules/GoProjectToModel.java (original) +++ trunk/src/argouml-app/src/org/argouml/ui/explorer/rules/GoProjectToModel.java 2011-01-13 06:39:23-0800 @@ -65,7 +65,7 @@ if (parent instanceof Project) { return ((Project) parent).getUserDefinedModelList(); } - return Collections.EMPTY_SET; + return Collections.emptyList(); } /* @@ -73,6 +73,6 @@ */ public Set getDependencies(Object parent) { // TODO: What? - return Collections.EMPTY_SET; + return Collections.emptySet(); } } ------------------------------------------------------ http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2697851 To unsubscribe from this discussion, e-mail: [[email protected]].
