--- /dev/null
+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();
+ }
+}