/**
* Aptana Studio
* Copyright (c) 2005-2012 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the GNU Public License (GPL) v3 (with exceptions).
* Please see the license.html included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package com.aptana.deploy.internal.ui.handlers;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.handlers.HandlerUtil;
import com.aptana.deploy.internal.ui.handlers.DeployWizardDialog;
import com.aptana.deploy.internal.ui.handlers.Messages;
import com.aptana.deploy.ui.DeployUIPlugin;
import com.aptana.deploy.wizard.DeployWizard;
public class RunDeployWizardHandler extends AbstractHandler
{
private static final String DEPLOY_WIZARD_SECTION = "DeployWizardAction"; //$NON-NLS-1$
public Object execute(ExecutionEvent event) throws ExecutionException
{
IStructuredSelection selection = StructuredSelection.EMPTY;
IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
if (activePart instanceof IEditorPart)
{
IEditorInput editorInput = ((IEditorPart) activePart).getEditorInput();
if (editorInput instanceof IFileEditorInput)
{
selection = new StructuredSelection(((IFileEditorInput) editorInput).getFile());
}
}
else
{
selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
}
// Instantiates and initializes the wizard
DeployWizard wizard = new DeployWizard();
wizard.init(activePart.getSite().getWorkbenchWindow().getWorkbench(), selection);
wizard.setWindowTitle(Messages.DeployHandler_Wizard_Title);
IDialogSettings workbenchSettings = DeployUIPlugin.getDefault().getDialogSettings();
IDialogSettings wizardSettings = workbenchSettings.getSection(DEPLOY_WIZARD_SECTION);
if (wizardSettings == null)
{
wizardSettings = workbenchSettings.addNewSection(DEPLOY_WIZARD_SECTION);
}
wizard.setDialogSettings(wizardSettings);
wizard.setForcePreviousAndNextButtons(true);
// Instantiates the wizard container with the wizard and opens it
Shell shell = activePart.getSite().getShell();
if (shell == null)
{
shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
}
// FIXME Don't use this special dialog! move ILoginValidator stuff to page change listener stuff when necessary!
DeployWizardDialog dialog = new DeployWizardDialog(shell, wizard);
dialog.setPageSize(350, 500);
dialog.setHelpAvailable(false);
dialog.create();
dialog.open();
return null;
}
}