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);
}