Revision: 3537
Author: [email protected]
Date: Thu May 13 13:10:22 2010
Log: Replaced the last fix for the tree bug with a somewhat nicer one.
http://code.google.com/p/power-architect/source/detail?r=3537

Modified:
 /trunk/regress/ca/sqlpower/architect/swingui/dbtree/TestDBTreeModel.java
 /trunk/src/main/java/ca/sqlpower/architect/swingui/DBTree.java
 /trunk/src/main/java/ca/sqlpower/architect/swingui/DataMoverPanel.java
 /trunk/src/main/java/ca/sqlpower/architect/swingui/dbtree/DBTreeModel.java
 /trunk/src/main/java/ca/sqlpower/architect/swingui/olap/JoinEntryPanel.java
 /trunk/src/main/java/ca/sqlpower/architect/swingui/olap/ViewEntryPanel.java

=======================================
--- /trunk/regress/ca/sqlpower/architect/swingui/dbtree/TestDBTreeModel.java Mon Feb 8 10:12:47 2010 +++ /trunk/regress/ca/sqlpower/architect/swingui/dbtree/TestDBTreeModel.java Thu May 13 13:10:22 2010
@@ -24,6 +24,7 @@
 import java.util.List;
 import java.util.Set;

+import javax.swing.JTree;
 import javax.swing.event.TreeModelEvent;
 import javax.swing.event.TreeModelListener;
 import javax.swing.tree.TreePath;
@@ -102,7 +103,7 @@

     protected void setUp() throws Exception {
session = new ArchitectSessionImpl(new ArchitectSessionContextImpl(), "TestSession");
-        tm = new DBTreeModel(session.getRootObject());
+        tm = new DBTreeModel(session.getRootObject(), new JTree());
         tm.setRefireEventsOnAnyThread(true);
        }

=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/DBTree.java Tue May 11 15:34:51 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/DBTree.java Thu May 13 13:10:22 2010
@@ -135,7 +135,7 @@

public DBTree(final ArchitectSwingSession session) throws SQLObjectException {
         this.session = session;
-        treeModel = new DBTreeModel(session.getRootObject());
+        treeModel = new DBTreeModel(session.getRootObject(), this);
         setModel(treeModel);
                setUI(new MultiDragTreeUI());
                setRootVisible(false);
@@ -282,15 +282,6 @@
        public void expandPath(TreePath tp) {
                try {
                        session.getArchitectFrame().setCursor(new 
Cursor(Cursor.WAIT_CURSOR));
-                       if 
(treeModel.isColumnsFolder(tp.getLastPathComponent())) {
-                           // This is so that the indices of the table will be 
populated.
-                // When the indices are populated, there is a chance that
- // columns will be moved around. If this is done while expanding - // the tree, the removal event will make it back to the tree,
-                // and cause exceptions.
- SQLTable table = (SQLTable) tp.getPathComponent(tp.getPathCount() - 2);
-                           table.getChildren(SQLIndex.class);
-                       }
                        super.expandPath(tp);
                } catch (Exception ex) {
logger.warn("Unexpected exception while expanding path "+tp, ex); //$NON-NLS-1$
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/DataMoverPanel.java Thu May 13 11:03:34 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/DataMoverPanel.java Thu May 13 13:10:22 2010
@@ -110,16 +110,16 @@

         setupDBTrees();

-        final DBTreeModel sourceTreeModel = new DBTreeModel(treeRoot);
-        sourceTree = new JTree(sourceTreeModel);
- sourceTree.addTreeWillExpandListener(sourceTreeModel.getTreeWillExpandListener());
+        sourceTree = new JTree();
+ final DBTreeModel sourceTreeModel = new DBTreeModel(treeRoot, sourceTree);
+        sourceTree.setModel(sourceTreeModel);
         sourceTree.setRootVisible(false);
         sourceTree.setShowsRootHandles(true);
         sourceTree.setCellRenderer(new DBTreeCellRenderer());

-        final DBTreeModel destTreeModel = new DBTreeModel(treeRoot);
-        destTree = new JTree(destTreeModel);
- destTree.addTreeWillExpandListener(destTreeModel.getTreeWillExpandListener());
+        destTree = new JTree();
+ final DBTreeModel destTreeModel = new DBTreeModel(treeRoot, sourceTree);
+        destTree.setModel(destTreeModel);
         destTree.setRootVisible(false);
         destTree.setShowsRootHandles(true);
         destTree.setCellRenderer(new DBTreeCellRenderer());
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/dbtree/DBTreeModel.java Thu May 13 11:03:34 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/dbtree/DBTreeModel.java Thu May 13 13:10:22 2010
@@ -31,6 +31,7 @@
 import java.util.Set;
 import java.util.concurrent.Callable;

+import javax.swing.JTree;
 import javax.swing.SwingUtilities;
 import javax.swing.event.TreeExpansionEvent;
 import javax.swing.event.TreeModelEvent;
@@ -418,9 +419,10 @@
         * root object associated with the given session, but it normally
         * will be.
         */
-       public DBTreeModel(SQLObjectRoot root) throws SQLObjectException {
+ public DBTreeModel(SQLObjectRoot root, JTree tree) throws SQLObjectException {
                this.root = root;
                this.treeModelListeners = new LinkedList();
+               tree.addTreeWillExpandListener(treeWillExpandListener);
                SQLPowerUtils.listenToHierarchy(root, treeListener);

                for (SPObject ancestor : SQLPowerUtils.getAncestorList(root)) {
@@ -429,10 +431,6 @@

                setupTreeForNode(root);
        }
-
-       public TreeWillExpandListener getTreeWillExpandListener() {
-           return treeWillExpandListener;
-       }

        /**
         * Recursively walks the tree doing any necessary setup for each node.
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/olap/JoinEntryPanel.java Fri Mar 12 08:02:18 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/olap/JoinEntryPanel.java Thu May 13 13:10:22 2010
@@ -280,8 +280,8 @@
         DBTree tree;
         try {
             root.addChild(db);
-            treeModel = new DBTreeModel(root);
             tree = new DBTree(session);
+            treeModel = new DBTreeModel(root, tree);
         } catch (SQLObjectException e) {
             throw new RuntimeException(e);
         }
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/olap/ViewEntryPanel.java Thu Feb 25 09:46:15 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/olap/ViewEntryPanel.java Thu May 13 13:10:22 2010
@@ -106,8 +106,8 @@
         DBTree tree;
         try {
             root.addChild(db);
-            treeModel = new DBTreeModel(root);
             tree = new DBTree(session);
+            treeModel = new DBTreeModel(root, tree);
         } catch (SQLObjectException e) {
             throw new RuntimeException(e);
         }

Reply via email to