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;
     }

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to