package org.nightlabs.jfire.issuetracking.ui.project; import org.eclipse.jface.action.Action; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.TreeSelection; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.widgets.Display; import org.nightlabs.base.ui.resource.SharedImages; import org.nightlabs.jfire.issue.project.Project; import org.nightlabs.jfire.issue.project.ProjectDAO; import org.nightlabs.jfire.issuetracking.ui.IssueTrackingPlugin; import org.nightlabs.jfire.issuetracking.ui.resource.Messages; import org.nightlabs.progress.NullProgressMonitor; public class DeleteProjectAction extends Action { private TreeViewer projectTreeViewer; public DeleteProjectAction(TreeViewer projectTreeViewer) { this.projectTreeViewer = projectTreeViewer; setId(DeleteProjectAction.class.getName()); setImageDescriptor(SharedImages.getSharedImageDescriptor( IssueTrackingPlugin.getDefault(), ProjectAdminTreeComposite.class, "Delete")); //$NON-NLS-1$ setToolTipText(Messages.getString("org.nightlabs.jfire.issuetracking.ui.project.DeleteProjectAction.DeleteProjectAction.toolTipText")); //$NON-NLS-1$ setText(Messages.getString("org.nightlabs.jfire.issuetracking.ui.project.DeleteProjectAction.DeleteProjectAction.text")); //$NON-NLS-1$ } @Override public void run() { boolean confirm = MessageDialog.openConfirm(Display.getCurrent().getActiveShell(), Messages.getString("org.nightlabs.jfire.issuetracking.ui.project.DeleteProjectAction.dialog.confirmDelete.title"), Messages.getString("org.nightlabs.jfire.issuetracking.ui.project.DeleteProjectAction.dialog.confirmDelete.description")); //$NON-NLS-1$ //$NON-NLS-2$ if(confirm) { TreeSelection selection = (TreeSelection)projectTreeViewer.getSelection(); Project project = ((ProjectTreeNode)(selection.getFirstElement())).getJdoObject(); ProjectDAO.sharedInstance().deleteProject(project.getObjectId(), new NullProgressMonitor()); projectTreeViewer.refresh(); } } }