svn commit: r16629 - trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigGeneralization.java

Tom Morris <[email protected]>
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: tfmorris
Date: 2009-01-15 15:13:39-0800
New Revision: 16629

Modified:
   trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigGeneralization.java

Log:
Issue 5625: Make sure fig for discriminator has an owner (this was the underlying cause of the PGML parser crash).  Also add model listener so that discriminator gets updated.

Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigGeneralization.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigGeneralization.java?view=diff&pathrev=16629&r1=16628&r2=16629
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigGeneralization.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigGeneralization.java	2009-01-15 15:13:39-0800
@@ -26,13 +26,13 @@
 
 import java.awt.Font;
 import java.awt.Graphics;
+import java.awt.Rectangle;
 import java.beans.PropertyChangeEvent;
 
 import org.argouml.model.AttributeChangeEvent;
 import org.argouml.model.Model;
 import org.argouml.uml.diagram.DiagramSettings;
 import org.tigris.gef.base.Layer;
-import org.tigris.gef.base.PathConvPercent;
 import org.tigris.gef.presentation.ArrowHeadTriangle;
 import org.tigris.gef.presentation.Fig;
 import org.tigris.gef.presentation.FigText;
@@ -44,6 +44,10 @@
  */
 public class FigGeneralization extends FigEdgeModelElement {
 
+    private static final int TEXT_HEIGHT = 20;
+
+    private static final int DISCRIMINATOR_WIDTH = 90;
+
     /*
      * The serialVersionUID (generated by Eclipse)
      */
@@ -52,7 +56,7 @@
     /**
      * Text box for discriminator.
      */
-    private FigText discriminator = new FigText(X0, Y0 + 20, 90, 20);
+    private FigText discriminator;
 
     private ArrowHeadTriangle endArrow;
 
@@ -64,6 +68,8 @@
     @SuppressWarnings("deprecation")
     @Deprecated
     public FigGeneralization() {
+        discriminator = new ArgoFigText(null, new Rectangle(X0, Y0,
+                DISCRIMINATOR_WIDTH, TEXT_HEIGHT), getSettings(), false);
         initialize();
     }
 
@@ -108,8 +114,11 @@
      */
     public FigGeneralization(Object owner, DiagramSettings settings) {
         super(owner, settings);
+        discriminator = new ArgoFigText(owner, new Rectangle(X0, Y0,
+                DISCRIMINATOR_WIDTH, TEXT_HEIGHT), settings, false);
         initialize();
         fixup(owner);
+        addListener(owner);
     }
 
     /*
@@ -143,11 +152,14 @@
             removeElementListener(oldOwner);
         }
         if (newOwner != null) {
-            addElementListener(newOwner, 
-                    new String[] {"remove", "discriminator"});
+            addListener(newOwner);
         }
     }
 
+    private void addListener(Object owner) {
+        addElementListener(owner, new String[] {"remove", "discriminator"});
+    }
+
     /**
      * Updates the discriminator text. Called if the model is changed
      * and on construction time.

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

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.