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.PHPEclipseSQLPlugin; import net.sourceforge.phpdt.sql.sql.MultiSQLServer; import net.sourceforge.phpdt.sql.view.BookmarkView; import net.sourceforge.phpdt.sql.view.SubsetView; import net.sourceforge.phpdt.sql.view.TableView; import net.sourceforge.phpdt.sql.view.bookmark.BookmarkContentProvider; import net.sourceforge.phpdt.sql.view.bookmark.BookmarkNode; import net.sourceforge.phpdt.sql.view.bookmark.ObjectNode; import net.sourceforge.phpdt.sql.view.bookmark.TreeNode; /** * @author root * Implements action for "View Table" */ public class ViewTableAction extends Action implements IViewActionDelegate { IViewPart view; /** * @see org.eclipse.ui.IViewActionDelegate#init(IViewPart) */ public void init(IViewPart view) { this.view = view; } /** * @see org.eclipse.ui.IActionDelegate#run(IAction) */ public void run(IAction action) { run(); } public void run() { PHPEclipseSQLPlugin PHPEclipsePluginPluginInstance = PHPEclipseSQLPlugin.getDefault(); PHPEclipsePluginPluginInstance.showView("net.sourceforge.phpdt.sql.view.tableview"); //$NON-NLS-1$ TreeNode node = null; BookmarkNode bookmark = null; if (view instanceof BookmarkView){ BookmarkView bookmarkView = (BookmarkView) view; node = (TreeNode) bookmarkView.getCurrent(); bookmark = bookmarkView.getCurrentBookmark(); if (bookmark != null && node != null) TableView.getInstance().loadTable(bookmark, node.getName()); } else if (view instanceof SubsetView){ SubsetView subsetView = (SubsetView) view; node = (TreeNode) subsetView.getCurrent(); if (!(node instanceof ObjectNode)) return; ObjectNode objectNode = (ObjectNode) node; String bookmarkName = objectNode.getBookmark(); bookmark = BookmarkContentProvider.getInstance().find(bookmarkName); String query = objectNode.getQuery(); MultiSQLServer server = MultiSQLServer.getInstance(); TableView.getInstance().loadQuery(bookmark, server.execute(bookmark.getConnection(), query)); } } /** * @see org.eclipse.ui.IActionDelegate#selectionChanged(IAction, ISelection) */ public void selectionChanged(IAction action, ISelection selection) { } }