initial quantum version
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.quantum.sql / src / com / quantum / view / bookmark / QueryListNode.java
diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/bookmark/QueryListNode.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/bookmark/QueryListNode.java
new file mode 100644 (file)
index 0000000..eb8b173
--- /dev/null
@@ -0,0 +1,76 @@
+package com.quantum.view.bookmark;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
+import com.quantum.Messages;
+
+/**
+ * @author BC
+ */
+public class QueryListNode extends TreeNode implements PropertyChangeListener {
+
+    /**
+     * @param parent
+     */
+    public QueryListNode(TreeNode parent) {
+        super(parent);
+        getBookmark().addPropertyChangeListener(this);
+    }
+
+    /**
+     * @see com.quantum.view.bookmark.TreeNode#getChildren()
+     */
+    public Object[] getChildren() {
+        initializeChildren();
+        return (TreeNode[]) this.children.toArray(new TreeNode[this.children.size()]);
+    }
+
+    protected void initializeChildren() {
+        this.children.clear();
+        String[] queries = getBookmark().getQueries();
+        for (int i = 0, length = (queries == null) ? 0 : queries.length;
+            i < length;
+            i++) {
+            this.children.add(new QueryNode(this, queries[i]));
+        }
+    }
+
+    /**
+     * @see com.quantum.view.bookmark.TreeNode#hasChildren()
+     */
+    public boolean hasChildren() {
+        return getBookmark().getQueries().length > 0;
+    }
+
+    /**
+     * @see com.quantum.view.bookmark.TreeNode#getName()
+     */
+    public String getName() {
+        return Messages.getString(getClass().getName() + ".labelName");
+    }
+
+    /**
+     * @see com.quantum.view.bookmark.TreeNode#getImageName()
+     */
+    protected String getImageName() {
+        return "group.gif";
+    }
+
+    /**
+     * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
+     */
+    public void propertyChange(PropertyChangeEvent event) {
+        if ("queries".equals(event.getPropertyName())) {
+            firePropertyChange("queries", null, null);
+        }
+    }
+    /**
+     * @see com.quantum.view.bookmark.TreeNode#dispose()
+     */
+    protected void dispose() {
+        getBookmark().removePropertyChangeListener(this);
+        super.dispose();
+    }
+
+}