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

Reply via email to