added button to start tests.
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.quantum.sql / src / com / quantum / actions / BaseSequenceAction.java
1 package com.quantum.actions;
2
3 import java.sql.Connection;
4 import java.util.List;
5
6 import com.quantum.model.Bookmark;
7 import com.quantum.util.connection.ConnectionUtil;
8 import com.quantum.view.bookmark.EntityNode;
9 import com.quantum.view.bookmark.TreeNode;
10
11 import org.eclipse.jface.viewers.IStructuredSelection;
12 import org.eclipse.swt.widgets.Shell;
13 import org.eclipse.ui.IViewPart;
14 import org.eclipse.ui.actions.SelectionListenerAction;
15
16 /**
17  * @author BC
18  */
19 public abstract class BaseSequenceAction extends SelectionListenerAction {
20     
21     protected IViewPart view;
22     private ConnectionUtil connectionUtil = new ConnectionUtil();
23
24     protected BaseSequenceAction(String text, IViewPart view) {
25         super(text);
26         
27     }
28
29     protected Bookmark getBookmark() {
30         TreeNode node = getEntityNode();
31         return node.getBookmark();
32     }
33     
34     protected Connection getConnection() {
35         return connectionUtil.getConnection(getBookmark(), getShell());
36     }
37
38     protected EntityNode getEntityNode() {
39         List list = getSelectedNonResources();
40         return (EntityNode) list.get(0);
41     }
42
43     protected Shell getShell() {
44         return this.view.getViewSite().getShell();
45     }
46     
47     protected boolean updateSelection(IStructuredSelection selection) {
48         boolean enabled = super.updateSelection(selection);
49         return enabled && selection.size() == 1 
50             && (selection.getFirstElement() instanceof EntityNode) 
51             && ((EntityNode) selection.getFirstElement()).isSequence();
52     }
53 }