svn commit: r18968 - trunk/src/argouml-app/src/org/argouml: kernel persistence ui ui/explorer ui/explorer/rules

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
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]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.