X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/bookmark/SchemaNode.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/bookmark/SchemaNode.java new file mode 100644 index 0000000..6b44cda --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/bookmark/SchemaNode.java @@ -0,0 +1,81 @@ +package com.quantum.view.bookmark; + +import java.sql.SQLException; + +import com.quantum.model.Bookmark; +import com.quantum.model.NotConnectedException; +import com.quantum.model.Schema; +import com.quantum.model.SchemaHolder; + +/** + * @author BC + */ +public class SchemaNode extends TreeNode implements SchemaHolder { + + private Schema schema; + /** + * @param parent + */ + public SchemaNode(TreeNode parent, Schema schema) { + super(parent); + this.schema = schema; + } + + /** + * @see com.quantum.view.bookmark.TreeNode#getChildren() + */ + public Object[] getChildren() { + Bookmark bookmark = getBookmark(); + if (!bookmark.isConnected()) { + return BookmarkListNode.EMPTY_ARRAY; + } else { + if (this.children.isEmpty()) { + initializeChildren(); + } + } + return (TreeNode[]) this.children.toArray(new TreeNode[this.children.size()]); + } + + protected void initializeChildren() { + this.children.clear(); + Bookmark bookmark = getBookmark(); + try { + String[] types = bookmark.getDatabase().getEntityTypes(); + for (int i = 0, length = (types == null) ? 0 : types.length; + i < length; + i++) { + this.children.add(new GroupNode(this, this.schema, types[i])); + } + } catch (NotConnectedException e) { + } catch (SQLException e) { + } + } + + /** + * @see com.quantum.view.bookmark.TreeNode#hasChildren() + */ + public boolean hasChildren() { + return getBookmark().isConnected(); + } + + /** + * @see com.quantum.view.bookmark.TreeNode#getName() + */ + public String getName() { + return this.schema.getDisplayName(); + } + + /** + * @see com.quantum.view.bookmark.TreeNode#getImageName() + */ + protected String getImageName() { + return this.schema.isDefault() ? "user.gif" : "schema.gif"; + } + + /** + * @see com.quantum.model.SchemaHolder#getSchema() + */ + public Schema getSchema() { + return this.schema; + } +}