svn commit: r17521 - trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui

Bob Tarling <[email protected]>
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: bobtarling
Date: 2009-11-22 09:59:56-0800
New Revision: 17521

Modified:
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/XmlPropertyPanel.java

Log:
Deselect rows in one control if row in another control is selected

Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java?view=diff&pathrev=17521&r1=17520&r2=17521
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java	2009-11-22 09:59:56-0800
@@ -39,6 +39,7 @@
 import javax.swing.Action;
 import javax.swing.Icon;
 import javax.swing.JLabel;
+import javax.swing.JList;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.JTable;
@@ -363,6 +364,10 @@
         scroll.getList().removeListSelectionListener(listener);
     }
     
+    public JList getList() {
+        return scroll.getList();
+    }
+    
     /**
      * This action deletes the model elements that are selected in the JList
      */

Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java?view=diff&pathrev=17521&r1=17520&r2=17521
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java	2009-11-22 09:59:56-0800
@@ -116,11 +116,6 @@
         XMLPropertyPanelsData data = 
             XMLPropPanelFactory.getInstance().getPropertyPanelsData(
                     Model.getMetaTypes().getName(target));
-        JPanel p = buildPanel(data, target, panel);
-        return p;       
-    }
-    
-    private JPanel buildPanel(XMLPropertyPanelsData data, Object target, JPanel panel) {
         
         for (XMLPropertyPanelsDataRecord prop : data.getProperties()) {
             if ("text".equals(prop.getType())) {

Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/XmlPropertyPanel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/XmlPropertyPanel.java?view=diff&pathrev=17521&r1=17520&r2=17521
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/XmlPropertyPanel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/XmlPropertyPanel.java	2009-11-22 09:59:56-0800
@@ -24,7 +24,12 @@
 
 package org.argouml.core.propertypanels.ui;
 
+import java.awt.Component;
+
+import javax.swing.JList;
 import javax.swing.JPanel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
 
 import org.apache.log4j.Logger;
 import org.argouml.uml.ui.LabelledLayout;
@@ -34,7 +39,7 @@
  *
  * @author penyaskito
  */
-public class XmlPropertyPanel extends JPanel {
+public class XmlPropertyPanel extends JPanel implements ListSelectionListener {
     
     /**
      * Logger.
@@ -45,4 +50,48 @@
         super(new LabelledLayout());
         setName("UML Properties");
     }
+    
+    public Component add(Component comp) {
+        super.add(comp);
+        if (comp instanceof RowSelector) {
+            RowSelector rs = (RowSelector) comp;
+            rs.addListSelectionListener(this);
+        }
+        return comp;
+    }
+
+    public void remove(Component comp) {
+        super.add(comp);
+        if (comp instanceof RowSelector) {
+            RowSelector rs = (RowSelector) comp;
+            rs.removeListSelectionListener(this);
+        }
+    }
+
+    @Override
+    public void valueChanged(ListSelectionEvent e) {
+        final JList list = (JList) e.getSource();
+        
+        for (Component c : getComponents()) {
+            if (c instanceof RowSelector) {
+                RowSelector rs = (RowSelector) c;
+                rs.removeListSelectionListener(this);
+            }
+        }
+        
+        if (list.getSelectedValues().length > 0) {
+            for (Component c : getComponents()) {
+                if (c instanceof RowSelector && ((RowSelector) c).getList() != list) {
+                    ((RowSelector) c).getList().clearSelection();
+                }
+            }
+        }
+        
+        for (Component c : getComponents()) {
+            if (c instanceof RowSelector) {
+                RowSelector rs = (RowSelector) c;
+                rs.addListSelectionListener(this);
+            }
+        }
+    }
 }

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

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.