blob: c596762475a57aaf56d359c211336f6600f136b5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2011 EclipseSource and others. All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Holger Staudacher - initial API and implementation
*******************************************************************************/
package org.eclipse.libra.warproducts.ui.newwizard;
import java.lang.reflect.InvocationTargetException;
import org.eclipse.core.resources.IFile;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.libra.warproducts.ui.Messages;
import org.eclipse.pde.internal.ui.PDEPlugin;
import org.eclipse.pde.internal.ui.PDEPluginImages;
import org.eclipse.pde.internal.ui.wizards.product.NewProductFileWizard;
import org.eclipse.ui.IWorkbench;
public class NewWarProductFileWizard extends NewProductFileWizard {
private WARProductFileWizardPage mainPage;
public void addPages() {
mainPage = new WARProductFileWizardPage( "warproduct", getSelection() ); //$NON-NLS-1$
addPage( mainPage );
}
public boolean performFinish() {
boolean result = true;
try {
getContainer().run( false, true, getOperation() );
} catch( final InvocationTargetException e ) {
PDEPlugin.logException( e );
result = false;
} catch( final InterruptedException e ) {
result = false;
}
return result;
}
private IRunnableWithProgress getOperation() {
IRunnableWithProgress result = null;
IFile file = mainPage.createNewFile();
int option = mainPage.getInitializationOption();
if( option == WARProductFileWizardPage.USE_LAUNCH_CONFIG ) {
ILaunchConfiguration selectedLaunchConfiguration
= mainPage.getSelectedLaunchConfiguration();
result = new WARProductFromConfigOperation( file,
selectedLaunchConfiguration );
} else {
result = new BaseWARProductCreationOperation( file );
}
return result;
}
public void init( final IWorkbench workbench,
final IStructuredSelection currentSelection )
{
super.init( workbench, currentSelection );
setWindowTitle( Messages.NewWarProductFileWizard );
setNeedsProgressMonitor( true );
}
protected void initializeDefaultPageImageDescriptor() {
setDefaultPageImageDescriptor( PDEPluginImages.DESC_PRODUCT_WIZ );
}
}