svn commit: r13195 - trunk/src_new/org/argouml/ui/StylePanelFigNodeModelElement.java

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: mvw
Date: 2007-07-31 14:00:01-0700
New Revision: 13195

Modified:
   trunk/src_new/org/argouml/ui/StylePanelFigNodeModelElement.java

Log:
Make the path-visibility checkbox on the Presentation panel update when the value is changed by the pop-up menu.

Modified: trunk/src_new/org/argouml/ui/StylePanelFigNodeModelElement.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/ui/StylePanelFigNodeModelElement.java?view=diff&rev=13195&p1=trunk/src_new/org/argouml/ui/StylePanelFigNodeModelElement.java&p2=trunk/src_new/org/argouml/ui/StylePanelFigNodeModelElement.java&r1=13194&r2=13195
==============================================================================
--- trunk/src_new/org/argouml/ui/StylePanelFigNodeModelElement.java	(original)
+++ trunk/src_new/org/argouml/ui/StylePanelFigNodeModelElement.java	2007-07-31 14:00:01-0700
@@ -29,6 +29,8 @@
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
 import java.awt.event.KeyListener;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
 
 import javax.swing.JCheckBox;
 import javax.swing.JLabel;
@@ -36,16 +38,18 @@
 
 import org.argouml.i18n.Translator;
 import org.argouml.uml.diagram.PathContainer;
+import org.tigris.gef.presentation.Fig;
 import org.tigris.gef.ui.ColorRenderer;
 
 /**
  * Stylepanel which provides base style information for modelelements, e.g.
- * shadow width.
+ * shadow width, the path checkbox.
  *
  */
 public class StylePanelFigNodeModelElement
     extends StylePanelFig
-    implements ItemListener, FocusListener, KeyListener {
+    implements ItemListener, FocusListener, KeyListener, 
+    PropertyChangeListener {
 
     /**
      * Flag to indicate that a refresh is going on.
@@ -94,6 +98,19 @@
         displayPane.add(cb);
     }
 
+    @Override
+    public void setTarget(Object t) {
+        Fig oldTarget = getPanelTarget();
+        if (oldTarget != null) {
+            oldTarget.removePropertyChangeListener(this);
+        }
+        super.setTarget(t);
+        Fig newTarget = getPanelTarget();
+        if (newTarget != null) {
+            newTarget.addPropertyChangeListener(this);
+        }
+    }
+
     /*
      * @see org.argouml.ui.TabTarget#refresh()
      */
@@ -128,4 +145,28 @@
         }
     }
 
+    /**
+     * This function is called when the Fig property is changed from
+     * outside this Panel, e.g. when the Fig is relocated or when one of
+     * its properties change. <p>
+     * 
+     * We currently only need to react on the property
+     * that indicates that the "pathVisible" is changed. See
+     * the FigNodeModelElement for when this event is triggered. <p>
+     * 
+     * When the user toggles the visibility of the path in
+     * the Fig's pop-up menu, then this function
+     * updates the Presentation panel checkbox.
+     *
+     * @param evt the event
+     * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
+     */
+    public void propertyChange(PropertyChangeEvent evt) {
+        if ("pathVisible".equals(evt.getPropertyName())) {
+            refreshTransaction = true;
+            pathCheckBox.setSelected((Boolean) evt.getNewValue());
+            refreshTransaction = false;
+        }
+    }
+
 } /* end class StylePanelFigNodeModelElement */
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.