X-Git-Url: http://secure.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/driver/DeleteDriverAction.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/driver/DeleteDriverAction.java new file mode 100644 index 0000000..324ff6d --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/driver/DeleteDriverAction.java @@ -0,0 +1,86 @@ +package com.quantum.view.driver; + +import java.util.List; + +import com.quantum.ImageStore; +import com.quantum.Messages; +import com.quantum.model.Bookmark; +import com.quantum.model.BookmarkCollection; +import com.quantum.model.JDBCDriver; + +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IViewPart; +import org.eclipse.ui.actions.SelectionListenerAction; + +/** + * This action deletes JDBC Drivers from the JDBC Driver collection. + * + * @author BC Holmes + */ +public class DeleteDriverAction extends SelectionListenerAction { + + private final IViewPart viewPart; + + /** + * @param text + */ + protected DeleteDriverAction(IViewPart viewPart, ISelectionProvider selectionProvider) { + super(Messages.getString(DeleteDriverAction.class, "text")); + this.viewPart = viewPart; + selectionProvider.addSelectionChangedListener(this); + setImageDescriptor(ImageStore.getImageDescriptor(ImageStore.DELETE)); + } + + public void run() { + JDBCDriver driver = getJDBCDriver(); + + if (driver != null) { + Bookmark[] bookmarks = BookmarkCollection.getInstance().getBookmarks(); + boolean found = false; + for (int i = 0, length = bookmarks == null ? 0 : bookmarks.length; + driver != null && !found && i < length; i++) { + found |= driver.equals(bookmarks[i].getJDBCDriver()); + } + + if (found) { + MessageDialog.openWarning(getShell(), + Messages.getString(DeleteDriverAction.class, "failed"), + Messages.getString(DeleteDriverAction.class, "inUse")); + } else { + if (MessageDialog.openConfirm(getShell(), + Messages.getString(DeleteDriverAction.class, "confirm"), + Messages.getString(DeleteDriverAction.class, "confirmText", + new Object[] { driver.getName() }))) { + + if (!BookmarkCollection.getInstance().removeDriver(driver)) { + MessageDialog.openWarning(getShell(), + Messages.getString(DeleteDriverAction.class, "failed"), + Messages.getString(DeleteDriverAction.class, "cant")); + } + } + } + } + } + + /** + * @return + */ + private Shell getShell() { + return this.viewPart.getViewSite().getShell(); + } + + /** + * @return + */ + private JDBCDriver getJDBCDriver() { + List list = getSelectedNonResources(); + return list == null || list.size() == 0 ? null : (JDBCDriver) list.get(0); + } + + protected boolean updateSelection(IStructuredSelection selection) { + return selection != null && !selection.isEmpty(); + } +}