001: /*******************************************************************************
002: * Copyright (c) 2000, 2007 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: *******************************************************************************/package org.eclipse.pde.internal.ui.wizards.exports;
011:
012: import org.eclipse.core.resources.IProject;
013: import org.eclipse.core.runtime.IAdaptable;
014: import org.eclipse.jface.dialogs.IDialogSettings;
015: import org.eclipse.jface.viewers.IStructuredSelection;
016: import org.eclipse.jface.wizard.IWizardPage;
017: import org.eclipse.pde.core.IModel;
018: import org.eclipse.pde.internal.core.FeatureModelManager;
019: import org.eclipse.pde.internal.core.PDECore;
020: import org.eclipse.pde.internal.core.ifeature.IFeatureModel;
021: import org.eclipse.pde.internal.ui.IHelpContextIds;
022: import org.eclipse.pde.internal.ui.PDEUIMessages;
023: import org.eclipse.swt.SWT;
024: import org.eclipse.swt.widgets.Control;
025: import org.eclipse.swt.widgets.TabFolder;
026: import org.eclipse.swt.widgets.TabItem;
027: import org.eclipse.ui.PlatformUI;
028:
029: public class FeatureExportWizardPage extends BaseExportWizardPage {
030:
031: private JNLPTab fJNLPTab;
032:
033: public FeatureExportWizardPage(IStructuredSelection selection) {
034: super (selection, "featureExport", //$NON-NLS-1$
035: PDEUIMessages.ExportWizard_Feature_pageBlock);
036: setTitle(PDEUIMessages.ExportWizard_Feature_pageTitle);
037: }
038:
039: protected Object getInput() {
040: return PDECore.getDefault().getFeatureModelManager();
041: }
042:
043: public Object[] getListElements() {
044: FeatureModelManager manager = PDECore.getDefault()
045: .getFeatureModelManager();
046: return manager.getWorkspaceModels();
047: }
048:
049: protected void hookHelpContext(Control control) {
050: PlatformUI.getWorkbench().getHelpSystem().setHelp(control,
051: IHelpContextIds.FEATURE_EXPORT_WIZARD);
052: }
053:
054: protected boolean isValidModel(IModel model) {
055: return model instanceof IFeatureModel;
056: }
057:
058: protected void createTabs(TabFolder folder, IDialogSettings settings) {
059: super .createTabs(folder, settings);
060: if (fDestinationTab.doExportToDirectory()
061: && fOptionsTab.useJARFormat()) {
062: createJNLPTab(folder);
063: fJNLPTab.initialize(settings);
064: }
065: }
066:
067: protected void createDestinationTab(TabFolder folder) {
068: fDestinationTab = new FeatureDestinationTab(this );
069: TabItem item = new TabItem(folder, SWT.NONE);
070: item.setControl(fDestinationTab.createControl(folder));
071: item.setText(PDEUIMessages.ExportWizard_destination);
072: }
073:
074: protected void createOptionsTab(TabFolder folder) {
075: fOptionsTab = new FeatureOptionsTab(this );
076: TabItem item = new TabItem(folder, SWT.NONE);
077: item.setControl(fOptionsTab.createControl(folder));
078: item.setText(PDEUIMessages.ExportWizard_options);
079: }
080:
081: private void createJNLPTab(TabFolder folder) {
082: fJNLPTab = new JNLPTab(this );
083: TabItem item = new TabItem(folder, SWT.NONE);
084: item.setControl(fJNLPTab.createControl(folder));
085: item.setText(PDEUIMessages.AdvancedFeatureExportPage_jnlp);
086: }
087:
088: protected IModel findModelFor(IAdaptable object) {
089: IProject project = (IProject) object.getAdapter(IProject.class);
090: if (project != null)
091: return PDECore.getDefault().getFeatureModelManager()
092: .getFeatureModel(project);
093: return null;
094: }
095:
096: protected void saveSettings(IDialogSettings settings) {
097: super .saveSettings(settings);
098: if (fJNLPTab != null)
099: fJNLPTab.saveSettings(settings);
100: }
101:
102: protected String validateTabs() {
103: String message = super .validateTabs();
104: if (message == null && fTabFolder.getItemCount() > 3)
105: message = fJNLPTab.validate();
106: return message;
107: }
108:
109: protected void adjustAdvancedTabsVisibility() {
110: adjustJARSigningTabVisibility();
111: adjustJNLPTabVisibility();
112: pageChanged();
113: }
114:
115: protected void adjustJNLPTabVisibility() {
116: IDialogSettings settings = getDialogSettings();
117: if (useJARFormat() && doExportToDirectory()) {
118: if (fTabFolder.getItemCount() < 4) {
119: createJNLPTab(fTabFolder);
120: fJNLPTab.initialize(settings);
121: }
122: } else {
123: int count = fTabFolder.getItemCount();
124: if (count >= (useJARFormat() ? 4 : 3)) {
125: fJNLPTab.saveSettings(settings);
126: fTabFolder.getItem(count - 1).dispose();
127: }
128: }
129: }
130:
131: protected boolean doMultiPlatform() {
132: return ((FeatureOptionsTab) fOptionsTab).doMultiplePlatform();
133: }
134:
135: protected String[] getJNLPInfo() {
136: if (fJNLPTab == null || fTabFolder.getItemCount() < 4)
137: return null;
138: return fJNLPTab.getJNLPInfo();
139: }
140:
141: public IWizardPage getNextPage() {
142: return doMultiPlatform() ? getWizard().getNextPage(this) : null;
143: }
144:
145: }
|