this.bookmark.addPropertyChangeListener(this);
}
- public Object[] getChildren() {
+ public Object[] getChildren() throws NotConnectedException, SQLException {
if (bookmark.isConnected() && this.children.isEmpty()) {
initializeChildren();
}
}
}
- protected void initializeChildren() {
+ protected void initializeChildren() throws NotConnectedException, SQLException {
boolean changed = false;
Map temp = new HashMap();
for (Iterator i = this.children.iterator(); i.hasNext(); ) {
changed = true;
}
- if (changed) {
+ if (temp.size() > 0 || changed ) {
firePropertyChange("children", null, null);
}
}
}
firePropertyChange("connected", event.getOldValue(), event.getNewValue());
} else if ("schemas".equals(event.getPropertyName())) {
- initializeChildren();
+ try {
+ initializeChildren();
+ } catch (NotConnectedException e) {
+ this.children.clear();
+ } catch (SQLException e) {
+ this.children.clear();
+ }
firePropertyChange("children", event.getOldValue(), event.getNewValue());
} else if ("name".equals(event.getPropertyName())) {
firePropertyChange("name", event.getOldValue(), event.getNewValue());