svn commit: r14574 - trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: mvw
Date: 2008-05-01 14:58:07-0700
New Revision: 14574

Added:
   trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ModePlacePartition.java
      - copied, changed from r14571, /trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ModePlacePackage.java
Removed:
   trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ModePlacePackage.java
Modified:
   trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ActionCreatePartition.java
   trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/FigPartition.java
   trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java

Log:
Fix for issue 5052: Resolve cyclic dependency between FigPartition and UMLActivityDiagram.

Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ActionCreatePartition.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ActionCreatePartition.java?view=diff&rev=14574&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ActionCreatePartition.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ActionCreatePartition.java&r1=14573&r2=14574
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ActionCreatePartition.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ActionCreatePartition.java	2008-05-01 14:58:07-0700
@@ -1,5 +1,5 @@
 // $Id$
-// Copyright (c) 2007 The Regents of the University of California. All
+// 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
 // agreement is hereby granted, provided that the above copyright notice
@@ -28,19 +28,27 @@
 import org.argouml.ui.CmdCreateNode;
 import org.tigris.gef.base.Mode;
 
+/**
+ * The Action to create a Partition on the diagram.
+ */
 public class ActionCreatePartition extends CmdCreateNode {
 
+    private Object machine;
+
     /**
      * Constructor
+     *
+     * @param activityGraph the UML element that contains the Partition
      */
-    public ActionCreatePartition() {
+    public ActionCreatePartition(Object activityGraph) {
         super(Model.getMetaTypes().getPartition(),
       	  "button.new-partition");
+        machine = activityGraph;
     }
 
     @Override
     protected Mode createMode(String instructions) {
-        return new ModePlacePackage(this, instructions);
+        return new ModePlacePartition(this, instructions, machine);
     }
 
 }

Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/FigPartition.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/FigPartition.java?view=diff&rev=14574&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/FigPartition.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/FigPartition.java&r1=14573&r2=14574
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/FigPartition.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/FigPartition.java	2008-05-01 14:58:07-0700
@@ -1,5 +1,5 @@
 // $Id$
-// Copyright (c) 2003-2007 The Regents of the University of California. All
+// Copyright (c) 2003-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
 // agreement is hereby granted, provided that the above copyright notice
@@ -248,16 +248,14 @@
     /**
      * On post placement look to see if there are any other
      * FigPartitions. If so place to the right and resize height.
+     *
+     * @param activityGraph the UML ActivityGraph element 
+     * that contains the Partition 
      */
-    public void appendToPool() {
+    public void appendToPool(Object activityGraph) {
 	List partitions = getPartitions(getLayer());
-        // TODO: There is a cyclic dependency between FigPartition and
-        // UMLActivityDiagram which needs to be removed. - tfm
-        UMLActivityDiagram diagram = 
-            (UMLActivityDiagram) getProject().getActiveDiagram();
-        Object machine = diagram.getStateMachine();
         Model.getCoreHelper().setModelElementContainer(
-                getOwner(), machine);
+                getOwner(), activityGraph);
 	
 	if (partitions.size() == 1) {
 	    FigPool fp = new FigPool(getBounds());
@@ -412,6 +410,8 @@
         
         /**
          * Construct a new SelectionPartition for the given partition
+         *
+         * @param f the Fig
          */
         public SelectionPartition(FigPartition f) {
             super(f);

Removed: trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ModePlacePackage.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ModePlacePackage.java?view=auto&rev=14573

Copied: trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ModePlacePartition.java (from r14571, /trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ModePlacePackage.java)
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ModePlacePartition.java?view=diff&rev=14574&p1=/trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ModePlacePackage.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ModePlacePartition.java&r1=14571&r2=14574
==============================================================================
--- /trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ModePlacePackage.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/ModePlacePartition.java	2008-05-01 14:58:07-0700
@@ -1,5 +1,5 @@
 // $Id$
-// Copyright (c) 2007 The Regents of the University of California. All
+// 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
 // agreement is hereby granted, provided that the above copyright notice
@@ -28,10 +28,23 @@
 import org.tigris.gef.base.ModePlace;
 import org.tigris.gef.graph.GraphFactory;
 
-public class ModePlacePackage extends ModePlace {
+/**
+ * A mode to place a new Partition on the diagram.
+ *
+ * @author Bobtarling
+ */
+public class ModePlacePartition extends ModePlace {
+    private Object machine;
     
-    public ModePlacePackage(GraphFactory gf, String instructions) {
+    /**
+     * @param gf the command to create the node
+     * @param instructions help text
+     * @param activityGraph the UML element that contains the Partition
+     */
+    public ModePlacePartition(GraphFactory gf, String instructions, 
+            Object activityGraph) {
 	super(gf, instructions);
+	machine = activityGraph;
     }
     
     @Override
@@ -44,6 +57,6 @@
         
         super.mouseReleased(me);
         
-        fig.appendToPool();
+        fig.appendToPool(machine);
     }
 }

Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java?view=diff&rev=14574&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java&r1=14573&r2=14574
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java	2008-05-01 14:58:07-0700
@@ -443,7 +443,7 @@
     protected Action getActionSwimlane() {
         if (actionSwimlane == null) {
             actionSwimlane =
-                new ActionCreatePartition();
+                new ActionCreatePartition(getStateMachine());
         }
         return actionSwimlane;
     }
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.