svn commit: r15446 - trunk/src/argouml-app/src/org/argouml/uml/ui: . foundation/core

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: bobtarling
Date: 2008-08-02 10:45:52-0700
New Revision: 15446

Modified:
   trunk/src/argouml-app/src/org/argouml/uml/ui/PropPanel.java
   trunk/src/argouml-app/src/org/argouml/uml/ui/UMLComboBoxNavigator.java
   trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/PropPanelModelElement.java
   trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/UMLModelElementVisibilityRadioButtonPanel.java

Log:
Issue 5264: Disable prop panel controls when model element is readonly

Modified: trunk/src/argouml-app/src/org/argouml/uml/ui/PropPanel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/ui/PropPanel.java?view=diff&rev=15446&p1=trunk/src/argouml-app/src/org/argouml/uml/ui/PropPanel.java&p2=trunk/src/argouml-app/src/org/argouml/uml/ui/PropPanel.java&r1=15445&r2=15446
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/ui/PropPanel.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/ui/PropPanel.java	2008-08-02 10:45:52-0700
@@ -665,12 +665,25 @@
         return titleLabel;
     }
 
-    protected JPanel createBorderPanel(String title) {
-    	JPanel panel = new JPanel(new GridLayout2());
-    	TitledBorder border = new TitledBorder(Translator.localize(title));
-    	border.setTitleFont(stdFont);
-    	panel.setBorder(border);
-    	return panel;
+    protected final JPanel createBorderPanel(String title) {
+    	return new GroupPanel(Translator.localize(title));
+    }
+    
+    private class GroupPanel extends JPanel {
+        
+        public GroupPanel(String title) {
+            super(new GridLayout2());
+            TitledBorder border = new TitledBorder(Translator.localize(title));
+            border.setTitleFont(stdFont);
+            setBorder(border);
+        }
+        
+        public void setEnabled(boolean enabled) {
+            super.setEnabled(enabled);
+            for (final Component component : getComponents()) {
+                component.setEnabled(enabled);
+            }
+        }
     }
 
     /**

Modified: trunk/src/argouml-app/src/org/argouml/uml/ui/UMLComboBoxNavigator.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/ui/UMLComboBoxNavigator.java?view=diff&rev=15446&p1=trunk/src/argouml-app/src/org/argouml/uml/ui/UMLComboBoxNavigator.java&p2=trunk/src/argouml-app/src/org/argouml/uml/ui/UMLComboBoxNavigator.java&r1=15445&r2=15446
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/ui/UMLComboBoxNavigator.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/ui/UMLComboBoxNavigator.java	2008-08-02 10:45:52-0700
@@ -172,4 +172,9 @@
             theButton.setEnabled(false);
         }
     }
+    
+    public void setEnabled(boolean enabled) {
+        theComboBox.setEnabled(enabled);
+        theComboBox.setEditable(enabled);
+    }
 }

Modified: trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/PropPanelModelElement.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/PropPanelModelElement.java?view=diff&rev=15446&p1=trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/PropPanelModelElement.java&p2=trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/PropPanelModelElement.java&r1=15445&r2=15446
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/PropPanelModelElement.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/PropPanelModelElement.java	2008-08-02 10:45:52-0700
@@ -24,6 +24,7 @@
 
 package org.argouml.uml.ui.foundation.core;
 
+import java.awt.Component;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -31,6 +32,7 @@
 import javax.swing.ImageIcon;
 import javax.swing.JComboBox;
 import javax.swing.JComponent;
+import javax.swing.JLabel;
 import javax.swing.JList;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
@@ -39,6 +41,7 @@
 import org.argouml.i18n.Translator;
 import org.argouml.kernel.UmlModelMutator;
 import org.argouml.model.Model;
+import org.argouml.ui.targetmanager.TargetEvent;
 import org.argouml.ui.targetmanager.TargetManager;
 import org.argouml.uml.ui.PropPanel;
 import org.argouml.uml.ui.ScrollList;
@@ -52,7 +55,6 @@
 
 /**
  * The properties panel for a modelelement.
- *
  */
 public abstract class PropPanelModelElement extends PropPanel {
 
@@ -176,6 +178,20 @@
 
     }
     
+    /*
+     * @see TargetListener#targetSet(TargetEvent)
+     */
+    public void targetSet(TargetEvent e) {
+        super.targetSet(e);
+        boolean enable =
+            !Model.getModelManagementHelper().isReadOnly(e.getNewTarget());
+        for (final Component component : getComponents()) {
+            if (!(component instanceof JLabel)) {
+                component.setEnabled(enable);
+            }
+        }
+    }
+
     /**
      * This overrides the behaviour of the base class to filter out any
      * actions that could be used to attempt to modify the UML model on

Modified: trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/UMLModelElementVisibilityRadioButtonPanel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/UMLModelElementVisibilityRadioButtonPanel.java?view=diff&rev=15446&p1=trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/UMLModelElementVisibilityRadioButtonPanel.java&p2=trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/UMLModelElementVisibilityRadioButtonPanel.java&r1=15445&r2=15446
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/UMLModelElementVisibilityRadioButtonPanel.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/UMLModelElementVisibilityRadioButtonPanel.java	2008-08-02 10:45:52-0700
@@ -24,6 +24,7 @@
 
 package org.argouml.uml.ui.foundation.core;
 
+import java.awt.Component;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -105,5 +106,11 @@
             }
         }
     }
+    
+    public void setEnabled(boolean enabled) {
+        for (final Component component : getComponents()) {
+            component.setEnabled(enabled);
+        }
+    }
 
 }
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.