X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/bookmark/DropEntityAction.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/bookmark/DropEntityAction.java new file mode 100644 index 0000000..f8f2e80 --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/bookmark/DropEntityAction.java @@ -0,0 +1,81 @@ +package com.quantum.view.bookmark; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.quantum.Messages; +import com.quantum.actions.BaseExecuteAction; +import com.quantum.model.Bookmark; +import com.quantum.model.Entity; +import com.quantum.model.EntityHolder; +import com.quantum.sql.parser.DropEntityStatement; +import com.quantum.wizards.sql.DropEntityWizardPage; +import com.quantum.wizards.sql.SQLStatementWizard; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.jface.action.IStatusLineManager; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.WizardDialog; +import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IViewPart; + + +/** + * Drop a table. + * + * @author BC Holmes + */ +public class DropEntityAction extends BaseExecuteAction { + + private final IViewPart view; + private DropEntityStatement statement = new DropEntityStatement(); + + public DropEntityAction(IViewPart view) { + this.view = view; + setText(Messages.getString(getClass(), "text")); + } + + public void run() { + Entity entity = getEntity(); + if (entity != null) { + this.statement.setTableName(entity.getQuotedTableName()); + this.statement.setType(entity.getType()); + } + + DropEntityWizardPage page = new DropEntityWizardPage("page1", this.statement); + SQLStatementWizard wizard = new SQLStatementWizard(new WizardPage[] { page }, this.statement); + + WizardDialog dialog = new WizardDialog(this.view.getViewSite().getShell(), wizard); + if (WizardDialog.OK == dialog.open()) { + super.run(); + } + } + protected Shell getShell() { + return this.view.getViewSite().getShell(); + } + + protected Bookmark getBookmark() { + Entity entity = getEntity(); + return entity != null ? entity.getBookmark() : super.getBookmark(); + } + protected List getQueries() throws IOException, CoreException { + List list = new ArrayList(); + list.add(this.statement.toString()); + return list; + } + + protected Entity getEntity() { + List list = getSelectedNonResources(); + return list == null || list.isEmpty() ? null : ((EntityHolder) list.get(0)).getEntity(); + } + + protected IStatusLineManager getStatusLineManager() { + return this.view.getViewSite().getActionBars().getStatusLineManager(); + } + + protected boolean updateSelection(IStructuredSelection selection) { + return !selection.isEmpty(); + } +}