Revision: 3811
Author: [email protected]
Date: Thu Jul 29 15:04:01 2010
Log: NEW - bug 2899: Compare revisions - Auto compare when hovering over checkbox
http://trillian.sqlpower.ca/bugzilla/show_bug.cgi?id=2899

The auto-compare box should be using an ItemStateListener, not a ChangeListener. This fixes the issue where hovering over the check box causes a compare to occur.
http://code.google.com/p/power-architect/source/detail?r=3811

Modified:
/trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/CompareRevisionsPanel.java

=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/CompareRevisionsPanel.java Wed May 26 14:59:32 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/CompareRevisionsPanel.java Thu Jul 29 15:04:01 2010
@@ -22,6 +22,8 @@
 import java.awt.Dimension;
 import java.awt.Insets;
 import java.awt.event.ActionEvent;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
 import java.util.List;

 import javax.swing.AbstractAction;
@@ -33,8 +35,6 @@
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.JTextPane;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
 import javax.swing.text.BadLocationException;
@@ -97,7 +97,7 @@

         final JCheckBox autoCompare = new JCheckBox("Auto-compare", true);

- final ListSelectionListener changeListener = new ListSelectionListener() { + final ListSelectionListener listSelectionListener = new ListSelectionListener() {
             public void valueChanged(ListSelectionEvent e) {
                 refreshPanel();
                 if (autoCompare.isSelected()
@@ -108,13 +108,14 @@
             }
         };

-        autoCompare.addChangeListener(new ChangeListener() {
-            public void stateChanged(ChangeEvent e) {
-                changeListener.valueChanged(null);
-            }
-        });
- revisionsTableLeft.getSelectionModel().addListSelectionListener(changeListener); - revisionsTableRight.getSelectionModel().addListSelectionListener(changeListener);
+        autoCompare.addItemListener(new ItemListener() {
+            @Override
+            public void itemStateChanged(ItemEvent e) {
+                listSelectionListener.valueChanged(null);
+            }
+        });
+ revisionsTableLeft.getSelectionModel().addListSelectionListener(listSelectionListener); + revisionsTableRight.getSelectionModel().addListSelectionListener(listSelectionListener);

         comparePane = new JTextPane();
         comparePane.setEditable(false);

Reply via email to