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]].