public void run()
{
synchronized (ObjectTree.this._syncObject)
{
CursorChanger cursorChg = new CursorChanger(ObjectTree.this);
cursorChg.show();
try
{
if(_refreshSchemaInfo)
{
_session.getSchemaInfo().reload(_node.getDatabaseObjectInfo());
}
expandNode(_node, _selectNode);
if (_selectedPathNames != null)
{
final List<TreePath> newlySelectedTreepaths = new ArrayList<TreePath>();
GUIUtils.processOnSwingEventThread(new Runnable()
{
public void run()
{
restoreExpansionState(_node, _selectedPathNames, newlySelectedTreepaths);
setSelectionPaths(newlySelectedTreepaths.toArray(new TreePath[newlySelectedTreepaths.size()]));
}
});
}
}
finally
{
cursorChg.restore();
}
}
}