Revision: 3682
Author: [email protected]
Date: Tue Jul  6 15:27:44 2010
Log: NEW - bug 2458: Create Critic Manager
http://trillian.sqlpower.ca/bugzilla/show_bug.cgi?id=2458

Fixed an NPE when clicking on a group name. The isCellEditable only informs us of the tree that is editable and not the cell in question so now all cells are editable and those that have nothing to edit return their rendered component.
http://code.google.com/p/power-architect/source/detail?r=3682

Modified:
/trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticGroupingPanel.java

=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticGroupingPanel.java Tue Jul 6 15:01:13 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticGroupingPanel.java Tue Jul 6 15:27:44 2010
@@ -19,8 +19,6 @@
 import javax.swing.event.CellEditorListener;
 import javax.swing.event.TreeModelEvent;
 import javax.swing.event.TreeModelListener;
-import javax.swing.event.TreeSelectionEvent;
-import javax.swing.event.TreeSelectionListener;
 import javax.swing.tree.TreeCellEditor;
 import javax.swing.tree.TreeCellRenderer;
 import javax.swing.tree.TreeModel;
@@ -49,17 +47,6 @@

private final List<CellEditorListener> editorListeners = new ArrayList<CellEditorListener>();

-        private SPObject lastSelectedPath;
-
-        public GroupingTreeCellEditor(final JTree tree) {
-            tree.addTreeSelectionListener(new TreeSelectionListener() {
-
-                public void valueChanged(TreeSelectionEvent e) {
- lastSelectedPath = (SPObject) e.getNewLeadSelectionPath().getLastPathComponent();
-                }
-            });
-        }
-
         public boolean stopCellEditing() {
             return true;
         }
@@ -73,9 +60,7 @@
         }

         public boolean isCellEditable(EventObject e) {
-            if (lastSelectedPath != null &&
- lastSelectedPath instanceof CriticAndSettings) return true;
-            return false;
+            return true;
         }

         public Object getCellEditorValue() {
@@ -96,12 +81,10 @@
             if (value instanceof CriticAndSettings) {
return settingsPanels.get((CriticAndSettings) value).getPanel();
             }
-            return null;
+ return tree.getCellRenderer().getTreeCellRendererComponent(tree, value,
+                    isSelected, expanded, leaf, row, false);
         }

-        public void setLastSelectedPath(SPObject lastSelectedPath) {
-            this.lastSelectedPath = lastSelectedPath;
-        }
     }

     /**
@@ -274,14 +257,10 @@
         settingsTree.setCellRenderer(treeCellRenderer);
         settingsTree.setRowHeight(0);
         settingsTree.setShowsRootHandles(true);
- GroupingTreeCellEditor treeCellEditor = new GroupingTreeCellEditor(settingsTree); + GroupingTreeCellEditor treeCellEditor = new GroupingTreeCellEditor();
         settingsTree.setCellEditor(treeCellEditor);
         settingsTree.setEditable(true);

-        //Makes the first element in the tree editable so the user doesn't
- //have to click the first time to start editing and then a second time to
-        //make changes.
- treeCellEditor.setLastSelectedPath(settingsPanels.keySet().iterator().next());
         treeCellEditor.isCellEditable(new EventObject(settingsTree));

         settingsTree.setBackground(panel.getBackground());

Reply via email to