initial quantum version
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.quantum.sql / src / com / quantum / actions / BaseSequenceAction.java
diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/actions/BaseSequenceAction.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/actions/BaseSequenceAction.java
new file mode 100644 (file)
index 0000000..0e967c4
--- /dev/null
@@ -0,0 +1,53 @@
+package com.quantum.actions;
+
+import java.sql.Connection;
+import java.util.List;
+
+import com.quantum.model.Bookmark;
+import com.quantum.util.connection.ConnectionUtil;
+import com.quantum.view.bookmark.EntityNode;
+import com.quantum.view.bookmark.TreeNode;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.actions.SelectionListenerAction;
+
+/**
+ * @author BC
+ */
+public abstract class BaseSequenceAction extends SelectionListenerAction {
+    
+    protected IViewPart view;
+    private ConnectionUtil connectionUtil = new ConnectionUtil();
+
+    protected BaseSequenceAction(String text, IViewPart view) {
+        super(text);
+        
+    }
+
+    protected Bookmark getBookmark() {
+        TreeNode node = getEntityNode();
+        return node.getBookmark();
+    }
+    
+    protected Connection getConnection() {
+        return connectionUtil.getConnection(getBookmark(), getShell());
+    }
+
+    protected EntityNode getEntityNode() {
+        List list = getSelectedNonResources();
+        return (EntityNode) list.get(0);
+    }
+
+    protected Shell getShell() {
+        return this.view.getViewSite().getShell();
+    }
+    
+    protected boolean updateSelection(IStructuredSelection selection) {
+        boolean enabled = super.updateSelection(selection);
+        return enabled && selection.size() == 1 
+            && (selection.getFirstElement() instanceof EntityNode) 
+            && ((EntityNode) selection.getFirstElement()).isSequence();
+    }
+}