/**
* Copyright (C) Intersect 2012.
*
* This module contains Proprietary Information of Intersect,
* and should be treated as Confidential.
*/
package au.org.intersect.exsite9.commands.handlers;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
import org.eclipse.core.commands.IHandlerListener;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.handlers.HandlerUtil;
import au.org.intersect.exsite9.domain.SubmissionPackage;
import au.org.intersect.exsite9.service.ISubmissionPackageService;
/**
* Handler used to delete a submission package.
*/
public final class DeleteSubmissionPackageHandler implements IHandler
{
/**
* @{inheritDoc}
*/
@Override
public void addHandlerListener(final IHandlerListener handlerListener)
{
}
/**
* @{inheritDoc}
*/
@Override
public void dispose()
{
}
/**
* @{inheritDoc}
*/
@Override
public Object execute(final ExecutionEvent event) throws ExecutionException
{
final IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getSelection();
final Object selectedObject = selection.getFirstElement();
if (!(selectedObject instanceof SubmissionPackage))
{
throw new RuntimeException("Trying to delete something that is not a SubmissionPackage");
}
final SubmissionPackage submissionPackage = (SubmissionPackage) selectedObject;
final Shell shell = HandlerUtil.getActiveWorkbenchWindow(event).getShell();
final boolean confirm = MessageDialog.openConfirm(shell, "Are you sure?", "Are you sure you want to delete submission package '" + submissionPackage.getName() + "'?");
if (confirm)
{
final ISubmissionPackageService submissionPackageService = (ISubmissionPackageService) PlatformUI.getWorkbench().getService(ISubmissionPackageService.class);
submissionPackageService.deleteSubmissionPackage(submissionPackage);
}
return null;
}
/**
* @{inheritDoc}
*/
@Override
public boolean isEnabled()
{
return true;
}
/**
* @{inheritDoc}
*/
@Override
public boolean isHandled()
{
return true;
}
/**
* @{inheritDoc}
*/
@Override
public void removeHandlerListener(final IHandlerListener handlerListener)
{
}
}