1 /*******************************************************************************
2  *  Copyright (c) 2005, 2015 IBM Corporation and others.
3  *
4  *  This program and the accompanying materials
5  *  are made available under the terms of the Eclipse Public License 2.0
6  *  which accompanies this distribution, and is available at
7  *  https://www.eclipse.org/legal/epl-2.0/
8  *
9  *  SPDX-License-Identifier: EPL-2.0
10  *
11  *  Contributors:
12  *     IBM Corporation - initial API and implementation
13  *******************************************************************************/
14 package org.eclipse.pde.internal.ui.wizards.product;
15 
16 import java.lang.reflect.InvocationTargetException;
17 import org.eclipse.jface.dialogs.MessageDialog;
18 import org.eclipse.jface.wizard.Wizard;
19 import org.eclipse.pde.internal.core.iproduct.IProduct;
20 import org.eclipse.pde.internal.ui.PDEPluginImages;
21 import org.eclipse.pde.internal.ui.PDEUIMessages;
22 
23 public class ProductDefinitionWizard extends Wizard {
24 
25 	private ProductDefinitonWizardPage fMainPage;
26 	private String fProductId;
27 	private String fPluginId;
28 	private String fApplication;
29 	private IProduct fProduct;
30 
ProductDefinitionWizard(IProduct product)31 	public ProductDefinitionWizard(IProduct product) {
32 		fProduct = product;
33 		setDefaultPageImageDescriptor(PDEPluginImages.DESC_DEFCON_WIZ);
34 		setNeedsProgressMonitor(true);
35 		setWindowTitle(PDEUIMessages.ProductDefinitionWizard_title);
36 	}
37 
38 	@Override
addPages()39 	public void addPages() {
40 		fMainPage = new ProductDefinitonWizardPage("product", fProduct); //$NON-NLS-1$
41 		addPage(fMainPage);
42 	}
43 
44 	@Override
performFinish()45 	public boolean performFinish() {
46 		try {
47 			fProductId = fMainPage.getProductId();
48 			fPluginId = fMainPage.getDefiningPlugin();
49 			fApplication = fMainPage.getApplication();
50 			String newProductName = fMainPage.getProductName();
51 			if (newProductName != null)
52 				fProduct.setName(newProductName);
53 			getContainer().run(false, true, new ProductDefinitionOperation(fProduct, fPluginId, fProductId, fApplication, getContainer().getShell()));
54 		} catch (InvocationTargetException e) {
55 			MessageDialog.openError(getContainer().getShell(), PDEUIMessages.ProductDefinitionWizard_error, e.getTargetException().getMessage());
56 			return false;
57 		} catch (InterruptedException e) {
58 			return false;
59 		}
60 		return true;
61 	}
62 
getProductId()63 	public String getProductId() {
64 		return fPluginId + "." + fProductId; //$NON-NLS-1$
65 	}
66 
getApplication()67 	public String getApplication() {
68 		return fApplication;
69 	}
70 
71 }
72