Update of /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/gui/db
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv10830/app/src/net/sourceforge/squirrel_sql/client/gui/db
Modified Files:
JTreeAliasesListImpl.java
Log Message:
ArrayIndexOutOfBounds exception occured when more than one Alias was deleted form Alias tree
Index: JTreeAliasesListImpl.java
===================================================================
RCS file: /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/gui/db/JTreeAliasesListImpl.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** JTreeAliasesListImpl.java 29 Nov 2009 21:17:54 -0000 1.12
--- JTreeAliasesListImpl.java 22 Dec 2009 10:37:13 -0000 1.13
***************
*** 332,337 ****
treeModel.removeNodeFromParent(delNode);
- treeModel.nodesWereRemoved(parent, new int[]{indexOfChild}, new Object[]{delNode});
- //treeModel.nodeStructureChanged(parent);
if(null != nextToSel)
--- 332,335 ----
***************
*** 500,507 ****
if (Dialogs.showYesNo(_app.getMainFrame(), s_stringMgr.getString("JTreeAliasesListImpl.confirmDeleteMultible")))
{
for (TreePath selectionPath : selectionPaths)
{
DefaultMutableTreeNode selNode = (DefaultMutableTreeNode) selectionPath.getLastPathComponent();
! TreeNode parent = selNode.getParent();
if(selNode.getUserObject() instanceof SQLAlias)
--- 498,506 ----
if (Dialogs.showYesNo(_app.getMainFrame(), s_stringMgr.getString("JTreeAliasesListImpl.confirmDeleteMultible")))
{
+ final HashSet<TreeNode> parentsRemovedFrom = new HashSet<TreeNode>();
for (TreePath selectionPath : selectionPaths)
{
DefaultMutableTreeNode selNode = (DefaultMutableTreeNode) selectionPath.getLastPathComponent();
! parentsRemovedFrom.add(selNode.getParent());
if(selNode.getUserObject() instanceof SQLAlias)
***************
*** 514,521 ****
removeAllAliasesFromNode(selNode);
selNode.removeFromParent();
- DefaultTreeModel dtm = (DefaultTreeModel) _tree.getModel();
- dtm.nodeStructureChanged(parent);
}
}
}
}
--- 513,532 ----
removeAllAliasesFromNode(selNode);
selNode.removeFromParent();
}
}
+
+ final DefaultTreeModel dtm = (DefaultTreeModel) _tree.getModel();
+
+ SwingUtilities.invokeLater(
+ new Runnable()
+ {
+ public void run()
+ {
+ for (TreeNode node : parentsRemovedFrom)
+ {
+ dtm.nodeStructureChanged(node);
+ }
+ }
+ });
}
}
|