/**
* 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.wizard.WizardDialog;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.handlers.HandlerUtil;
import au.org.intersect.exsite9.domain.Project;
import au.org.intersect.exsite9.service.IProjectManager;
import au.org.intersect.exsite9.wizard.newproject.NewProjectWizard;
/**
* Handles the New Project action.
*/
public final class NewProjectHandler 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 IWorkbenchWindow activeWorkbenchWindow = HandlerUtil.getActiveWorkbenchWindow(event);
final Shell shell = activeWorkbenchWindow.getShell();
final NewProjectWizard wizard = new NewProjectWizard();
final WizardDialog wizardDialog = new WizardDialog(shell, wizard);
wizardDialog.open();
final Project newProject = wizard.getNewProject();
final IProjectManager projectManager = (IProjectManager) PlatformUI.getWorkbench().getService(IProjectManager.class);
if (newProject != null)
{
projectManager.setCurrentProjectID(newProject.getId());
HandlerUtils.activateShowProjectActivity(activeWorkbenchWindow);
shell.setText("ExSite9 - " + newProject.getName());
}
return newProject;
}
/**
* @{inheritDoc}
*/
@Override
public boolean isEnabled()
{
return true;
}
/**
* @{inheritDoc}
*/
@Override
public boolean isHandled()
{
return true;
}
/**
* @{inheritDoc}
*/
@Override
public void removeHandlerListener(final IHandlerListener handlerListener)
{
}
}