SQL Plugin copied from Quantum plugin and refactored for PHPEclipse
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.sql / src / net / sourceforge / phpdt / sql / actions / NextSequenceAction.java
diff --git a/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/actions/NextSequenceAction.java b/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/actions/NextSequenceAction.java
new file mode 100644 (file)
index 0000000..0b6cddd
--- /dev/null
@@ -0,0 +1,52 @@
+package net.sourceforge.phpdt.sql.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IViewActionDelegate;
+import org.eclipse.ui.IViewPart;
+
+import net.sourceforge.phpdt.sql.adapters.AdapterFactory;
+import net.sourceforge.phpdt.sql.adapters.DatabaseAdapter;
+import net.sourceforge.phpdt.sql.adapters.NoSuchAdapterException;
+import net.sourceforge.phpdt.sql.sql.MultiSQLServer;
+import net.sourceforge.phpdt.sql.sql.SQLResults;
+import net.sourceforge.phpdt.sql.view.BookmarkView;
+import net.sourceforge.phpdt.sql.view.TableView;
+import net.sourceforge.phpdt.sql.view.bookmark.BookmarkNode;
+import net.sourceforge.phpdt.sql.view.bookmark.SequenceNode;
+import net.sourceforge.phpdt.sql.view.bookmark.TreeNode;
+
+public class NextSequenceAction extends Action implements IViewActionDelegate {
+       BookmarkView view;
+       
+       public void init(IViewPart view) {
+               this.view = (BookmarkView) view;
+       }
+
+       public void run(IAction action) {
+               run();
+       }
+
+       public void run() {
+               TreeNode node = (TreeNode) view.getCurrent();
+               String name = null;
+               try {
+                       if (node instanceof SequenceNode) {
+                               SequenceNode sequence = (SequenceNode) node;
+                               BookmarkNode parent = (BookmarkNode) sequence.getParent();
+                               DatabaseAdapter adapter = AdapterFactory.getInstance().getAdapter(parent.getType());
+                               name = sequence.getName();
+                               String query = adapter.getNextValue(name);
+                               MultiSQLServer server = MultiSQLServer.getInstance();
+                               SQLResults results = server.execute(query);
+                               TableView.getInstance().loadQuery(results);
+                       }
+               } catch (NoSuchAdapterException e) {
+               }
+       }
+
+       public void selectionChanged(IAction action, ISelection selection) {
+       }
+
+}