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

Bob Tarling <[email protected]>
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: bobtarling
Date: 2009-09-24 05:03:33-0700
New Revision: 17351

Modified:
   trunk/src/argouml-app/src/org/argouml/persistence/PGMLStackParser.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/FigPool.java

Log:
FigPool should not extend FigNodeModelElement. Resolving that will take more effort but for now we don't want the constructor being the style for FigNodeModelElement and indicating an owner is required.

Modified: trunk/src/argouml-app/src/org/argouml/persistence/PGMLStackParser.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/persistence/PGMLStackParser.java?view=diff&pathrev=17351&r1=17350&r2=17351
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/persistence/PGMLStackParser.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/persistence/PGMLStackParser.java	2009-09-24 05:03:33-0700
@@ -838,11 +838,16 @@
     private Fig constructFig(String className, String href, Rectangle bounds, Attributes attributes)
         throws SAXException {
 	
-	Fig f = null;
+        final DiagramSettings diagramSettings =
+            ((ArgoDiagram) getDiagram()).getDiagramSettings();
 
+        Fig f = null;
         try {
             Class figClass = Class.forName(className);
-            for (Constructor constructor : figClass.getConstructors()) {
+            
+            final Constructor[] constructors = figClass.getConstructors();
+            
+            for (Constructor constructor : constructors) {
                 Class[] parameterTypes = constructor.getParameterTypes();
                 // FigNodeModelElements should match here
                 if (parameterTypes.length == 3
@@ -903,11 +908,26 @@
                     constructor.setAccessible(true);
                     f =  (Fig) constructor.newInstance(parameters);
                 }
+                // A FigNodeModelElement with no owner should match here
+                // TODO: This is a temporary solution due to FigPool extending
+                // FigNodeModelElement when in fact it should not do so.
+                if (parameterTypes.length == 2
+                        && parameterTypes[0].equals(Rectangle.class)
+                        && parameterTypes[1].equals(DiagramSettings.class)
+                ) {
+                    Object parameters[] = new Object[2];
+                    parameters[0] = bounds;
+                    parameters[1] = 
+                        ((ArgoDiagram) getDiagram()).getDiagramSettings();
+                    
+                    constructor.setAccessible(true);
+                    f =  (Fig) constructor.newInstance(parameters);
+                }
             }
             if (f == null) {
                 // FigEdgeModelElements with the old style constructor should
                 // match here (they have no bounds)
-                for (Constructor constructor : figClass.getConstructors()) {
+                for (Constructor constructor : constructors) {
                     Class[] parameterTypes = constructor.getParameterTypes();
                     if (parameterTypes.length == 2
                             && parameterTypes[0].equals(Object.class)

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&pathrev=17351&r1=17350&r2=17351
==============================================================================
--- 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	2009-09-24 05:03:33-0700
@@ -259,7 +259,7 @@
                 getOwner(), activityGraph);
 	
 	if (partitions.size() == 1) {
-	    FigPool fp = new FigPool(null, getBounds(), getSettings());
+	    FigPool fp = new FigPool(getBounds(), getSettings());
 	    getLayer().add(fp);
 	    getLayer().bringToFront(this);
 	} else if (partitions.size() > 1) {

Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/FigPool.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/FigPool.java?view=diff&pathrev=17351&r1=17350&r2=17351
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/FigPool.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/FigPool.java	2009-09-24 05:03:33-0700
@@ -64,11 +64,10 @@
     /**
      * Constructor used by PGML parser when loading.
      * 
-     * @param owner owning UML element
      * @param bounds bounding box rectangle
      * @param settings (ignored since this is just an empty rectangle)
      */
-    public FigPool(Object owner, Rectangle bounds, DiagramSettings settings) {
+    public FigPool(Rectangle bounds, DiagramSettings settings) {
         super(null, bounds, settings);
         initialize(bounds);
     }

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2399258

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.