### Eclipse Workspace Patch 1.0 #P org.eclipse.pde.p2.ui Index: .classpath =================================================================== RCS file: .classpath diff -N .classpath --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ .classpath 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,7 @@ + + + + + + + Index: src/org/eclipse/pde/internal/p2/ui/PDEP2Plugin.java =================================================================== RCS file: src/org/eclipse/pde/internal/p2/ui/PDEP2Plugin.java diff -N src/org/eclipse/pde/internal/p2/ui/PDEP2Plugin.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/internal/p2/ui/PDEP2Plugin.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,36 @@ +package org.eclipse.pde.internal.p2.ui; + +import org.eclipse.ui.plugin.AbstractUIPlugin; + +public class PDEP2Plugin extends AbstractUIPlugin { + + public static final String PLUGIN_ID = "org.eclipse.pde.p2.ui"; //$NON-NLS-1$ + + private static PDEP2Plugin fgPDEP2Plugin; + + /** + * Constructs the PDE p2 UI plug-in + */ + public PDEP2Plugin() { + super(); + fgPDEP2Plugin = this; + } + + /** + * Convenience method which returns the unique identifier of this plug-in. + */ + public static String getUniqueIdentifier() { + return PLUGIN_ID; + } + + /** + * Returns the singleton instance of the debug plug-in. + */ + public static PDEP2Plugin getDefault() { + if(fgPDEP2Plugin == null) { + fgPDEP2Plugin = new PDEP2Plugin(); + } + return fgPDEP2Plugin; + } + +} Index: src/org/eclipse/pde/internal/p2/ui/provisioner/ProvisionerMessages.properties =================================================================== RCS file: src/org/eclipse/pde/internal/p2/ui/provisioner/ProvisionerMessages.properties diff -N src/org/eclipse/pde/internal/p2/ui/provisioner/ProvisionerMessages.properties --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/internal/p2/ui/provisioner/ProvisionerMessages.properties 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,31 @@ +############################################################################### +# Copyright (c) 2008 IBM Corporation 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: +# IBM Corporation - initial API and implementation +############################################################################### +P2TargetProvisionerWizard_1=Repository and Update Site Target Provisioner +P2TargetProvisionerWizard_10=Clearing install folder +P2TargetProvisionerWizard_2=Add plug-ins from repository or update site to the target platform +P2TargetProvisionerWizard_3=Error During Download Operation +P2TargetProvisionerWizard_7=Download Operation Was Interrupted +P2TargetProvisionerWizard_9=Provisioning target +P2TargetProvisionerWizardPage_0=Location: +P2TargetProvisionerWizardPage_1=At least one plug-in must be selected +P2TargetProvisionerWizardPage_10=&Properties... +P2TargetProvisionerWizardPage_11=&Manage sites... +P2TargetProvisionerWizardPage_12=Add Site +P2TargetProvisionerWizardPage_13=Remove Site +P2TargetProvisionerWizardPage_16=Install Location +P2TargetProvisionerWizardPage_17=Select a folder to download plug-ins to: +P2TargetProvisionerWizardPage_3=The specified folder is invalid or does not exist +P2TargetProvisionerWizardPage_4=Use &default location +P2TargetProvisionerWizardPage_5=Problem opening directory: The specified folder invalid or does not exist. +P2TargetProvisionerWizardPage_6=Problem opening directory: +P2TargetProvisionerWizardPage_7=B&rowse... +P2TargetProvisionerWizardPage_8=&Clear contents of folder before downloading +P2TargetProvisionerWizardPage_9=Available Plug-ins Index: META-INF/MANIFEST.MF =================================================================== RCS file: META-INF/MANIFEST.MF diff -N META-INF/MANIFEST.MF --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ META-INF/MANIFEST.MF 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,22 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %Bundle-Name.0 +Bundle-SymbolicName: org.eclipse.pde.p2.ui;singleton:=true +Bundle-Version: 3.4.0.qualifier +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.equinox.p2.engine, + org.eclipse.equinox.p2.metadata, + org.eclipse.equinox.p2.ui, + org.eclipse.equinox.p2.ui.sdk, + org.eclipse.equinox.p2.core, + org.eclipse.equinox.p2.director, + org.eclipse.pde.ui, + org.eclipse.equinox.p2.metadata.repository;bundle-version="0.1.0" +Bundle-RequiredExecutionEnvironment: J2SE-1.4 +Bundle-ActivationPolicy: lazy +Bundle-Activator: org.eclipse.pde.internal.p2.ui.PDEP2Plugin +Bundle-Localization: plugin +Export-Package: org.eclipse.pde.internal.p2.ui;x-internal:=true, + org.eclipse.pde.internal.p2.ui.provisioner;x-internal:=true Index: plugin.xml =================================================================== RCS file: plugin.xml diff -N plugin.xml --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ plugin.xml 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,17 @@ + + + + + + + %provisioner.description.0 + + + + + Index: src/org/eclipse/pde/internal/p2/ui/provisioner/P2TargetProvisionerWizard.java =================================================================== RCS file: src/org/eclipse/pde/internal/p2/ui/provisioner/P2TargetProvisionerWizard.java diff -N src/org/eclipse/pde/internal/p2/ui/provisioner/P2TargetProvisionerWizard.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/internal/p2/ui/provisioner/P2TargetProvisionerWizard.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,209 @@ +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation 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: IBM Corporation - initial API and implementation + ******************************************************************************/ +package org.eclipse.pde.internal.p2.ui.provisioner; + +import java.io.File; +import java.lang.reflect.InvocationTargetException; +import java.util.HashMap; +import java.util.Map; +import org.eclipse.core.runtime.*; +import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; +import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest; +import org.eclipse.equinox.internal.provisional.p2.director.ProvisioningPlan; +import org.eclipse.equinox.internal.provisional.p2.engine.IProfile; +import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningContext; +import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit; +import org.eclipse.equinox.internal.provisional.p2.ui.ProvUIImages; +import org.eclipse.equinox.internal.provisional.p2.ui.operations.DownloadPhaseSet; +import org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningUtil; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.jface.dialogs.IDialogSettings; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.pde.internal.p2.ui.PDEP2Plugin; +import org.eclipse.pde.ui.IProvisionerWizard; + +/** + * Wizard to provision a target using a p2 metadata repository such as an update site. + * The user will select a download location and a list of installable units from known + * sites. When the user is finished, the IUs will be downloaded to a specific directory + * and the directory will be added to the 'additional locations' of the target platform. + * + * @since 3.4 + * @see IProvisionerWizard + * @see P2TargetProvisionerWizardPage + */ +public class P2TargetProvisionerWizard extends Wizard implements IProvisionerWizard { + + private P2TargetProvisionerWizardPage fSelectIUPage; + private File[] fLocations; + + /** + * Name of the temporary profile that will be created to execute the download. + */ + private static final String PROFILE_ID = "TEMP_TARGET_PROVISIONER_PROFILE"; //$NON-NLS-1$ + + /** + * Identifier for dialog settings section + */ + private static final String DIALOG_SETTINGS_SECTION = "P2TargetProvisionerWizardSettings"; //$NON-NLS-1$ + + public P2TargetProvisionerWizard() { + setWindowTitle(ProvisionerMessages.P2TargetProvisionerWizard_1); + setDefaultPageImageDescriptor(ProvUIImages.getImageDescriptor(ProvUIImages.WIZARD_BANNER_INSTALL)); + setNeedsProgressMonitor(true); + IDialogSettings workbenchSettings = PDEP2Plugin.getDefault().getDialogSettings(); + IDialogSettings section = workbenchSettings.getSection(DIALOG_SETTINGS_SECTION); + if (section == null) + section = workbenchSettings.addNewSection(DIALOG_SETTINGS_SECTION); + setDialogSettings(section); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.Wizard#addPages() + */ + public void addPages() { + fSelectIUPage = new P2TargetProvisionerWizardPage("Select IU Page"); //$NON-NLS-1$ + fSelectIUPage.setTitle(ProvisionerMessages.P2TargetProvisionerWizard_1); + fSelectIUPage.setDescription(ProvisionerMessages.P2TargetProvisionerWizard_2); + addPage(fSelectIUPage); + super.addPages(); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.Wizard#canFinish() + */ + public boolean canFinish() { + return fSelectIUPage.isPageComplete(); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.Wizard#performFinish() + */ + public boolean performFinish() { + fSelectIUPage.saveWidgetState(); + DownloadIUOperation op = new DownloadIUOperation(fSelectIUPage.getDownloadLocation(true), fSelectIUPage.isClearContentsBeforeDownloading(), fSelectIUPage.getUnits()); + try { + fLocations = new File[0]; + getContainer().run(true, true, op); + return true; + } catch (InvocationTargetException e) { + if (e.getTargetException() != null) { + ErrorDialog.openError(getShell(), ProvisionerMessages.P2TargetProvisionerWizard_3, e.getTargetException().getMessage(), e.getTargetException() instanceof CoreException ? ((CoreException) e.getTargetException()).getStatus() : new Status(IStatus.ERROR, PDEP2Plugin.getUniqueIdentifier(), e.getTargetException().getMessage())); + } else { + ErrorDialog.openError(getShell(), ProvisionerMessages.P2TargetProvisionerWizard_3, e.getMessage(), new Status(IStatus.ERROR, PDEP2Plugin.getUniqueIdentifier(), e.getMessage())); + } + return false; + } catch (InterruptedException e) { + ErrorDialog.openError(getShell(), ProvisionerMessages.P2TargetProvisionerWizard_7, e.getMessage(), new Status(IStatus.ERROR, PDEP2Plugin.getUniqueIdentifier(), e.getMessage())); + return false; + } + } + + /* (non-Javadoc) + * @see org.eclipse.pde.ui.IProvisionerWizard#getLocations() + */ + public File[] getLocations() { + return fLocations; + } + + /** + * Job to perform the download of the installable units, reports progress. + * @since 3.4 + */ + private class DownloadIUOperation implements IRunnableWithProgress { + + private File fInstallDir; + private boolean fClearContents; + private IInstallableUnit[] fUnits; + + public DownloadIUOperation(File installDir, boolean clearContentsBeforeDownload, IInstallableUnit[] units) { + fInstallDir = installDir; + fClearContents = clearContentsBeforeDownload; + fUnits = units; + } + + /* (non-Javadoc) + * @see org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.runtime.IProgressMonitor) + */ + public void run(IProgressMonitor monitor) throws InvocationTargetException { + monitor.beginTask(ProvisionerMessages.P2TargetProvisionerWizard_9, 4); + if (fInstallDir != null && fInstallDir.isDirectory()) { + + // Clear the contents of the directory if required + if (fClearContents) { + File[] contents = fInstallDir.listFiles(); + SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, contents.length, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK); + subMonitor.setTaskName(ProvisionerMessages.P2TargetProvisionerWizard_10); + for (int i = 0; i < contents.length; i++) { + deleteDir(contents[i]); + subMonitor.worked(1); + } + subMonitor.done(); + } else { + monitor.worked(1); + } + + try { + // Create the temporary profile + Map properties = new HashMap(); + properties.put(IProfile.PROP_INSTALL_FOLDER, fInstallDir.toString()); + properties.put(IProfile.PROP_CACHE, fInstallDir.toString()); + ProvisioningUtil.removeProfile(PROFILE_ID, monitor); + IProfile newProfile = ProvisioningUtil.addProfile(PROFILE_ID, properties, monitor); + monitor.worked(1); + + // Create the provisioning plan + ProfileChangeRequest request = new ProfileChangeRequest(newProfile); + request.addInstallableUnits(fUnits); + ProvisioningPlan plan = ProvisioningUtil.getProvisioningPlan(request, new ProvisioningContext(), monitor); + monitor.worked(1); + + // Execute the provisioning plan + IStatus result = ProvisioningUtil.performProvisioningPlan(plan, new DownloadPhaseSet(), newProfile, monitor); + + if (result.isOK()) { + fLocations = new File[] {fInstallDir}; + } else { + throw new InvocationTargetException(new CoreException(result)); + } + + } catch (ProvisionException e) { + throw new InvocationTargetException(e); + } finally { + // Make sure to remove the temporary profile + try { + ProvisioningUtil.removeProfile(PROFILE_ID, monitor); + } catch (ProvisionException e) { + } + } + } + monitor.done(); + } + + /** + * Deletes a directory + * @param dir the directory to delete + */ + private void deleteDir(File dir) { + if (dir.exists()) { + if (dir.isDirectory()) { + File[] children = dir.listFiles(); + if (children != null) { + for (int i = 0; i < children.length; i++) { + deleteDir(children[i]); + } + } + } + dir.delete(); + } + } + } + +} Index: about.html =================================================================== RCS file: about.html diff -N about.html --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ about.html 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,28 @@ + + + + +About + + +

About This Content

+ +

June 2, 2006

+

License

+ +

The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at http://www.eclipse.org/legal/epl-v10.html. +For purposes of the EPL, "Program" will mean the Content.

+ +

If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at http://www.eclipse.org.

+ + + Index: src/org/eclipse/pde/internal/p2/ui/provisioner/ProvisionerMessages.java =================================================================== RCS file: src/org/eclipse/pde/internal/p2/ui/provisioner/ProvisionerMessages.java diff -N src/org/eclipse/pde/internal/p2/ui/provisioner/ProvisionerMessages.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/internal/p2/ui/provisioner/ProvisionerMessages.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,43 @@ +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation 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: IBM Corporation - initial API and implementation + ******************************************************************************/ +package org.eclipse.pde.internal.p2.ui.provisioner; + +import org.eclipse.osgi.util.NLS; + +public class ProvisionerMessages extends NLS { + private static final String BUNDLE_NAME = "org.eclipse.pde.internal.p2.ui.provisioner.ProvisionerMessages"; //$NON-NLS-1$ + public static String P2TargetProvisionerWizard_1; + public static String P2TargetProvisionerWizard_10; + public static String P2TargetProvisionerWizard_2; + public static String P2TargetProvisionerWizard_3; + public static String P2TargetProvisionerWizard_7; + public static String P2TargetProvisionerWizard_9; + public static String P2TargetProvisionerWizardPage_0; + public static String P2TargetProvisionerWizardPage_1; + public static String P2TargetProvisionerWizardPage_10; + public static String P2TargetProvisionerWizardPage_11; + public static String P2TargetProvisionerWizardPage_12; + public static String P2TargetProvisionerWizardPage_13; + public static String P2TargetProvisionerWizardPage_16; + public static String P2TargetProvisionerWizardPage_17; + public static String P2TargetProvisionerWizardPage_3; + public static String P2TargetProvisionerWizardPage_4; + public static String P2TargetProvisionerWizardPage_5; + public static String P2TargetProvisionerWizardPage_6; + public static String P2TargetProvisionerWizardPage_7; + public static String P2TargetProvisionerWizardPage_8; + public static String P2TargetProvisionerWizardPage_9; + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, ProvisionerMessages.class); + } + + private ProvisionerMessages() { + } +} Index: src/org/eclipse/pde/internal/p2/ui/PixelConverter.java =================================================================== RCS file: src/org/eclipse/pde/internal/p2/ui/PixelConverter.java diff -N src/org/eclipse/pde/internal/p2/ui/PixelConverter.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/internal/p2/ui/PixelConverter.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,58 @@ +/******************************************************************************* + * Copyright (c) 2000, 2006 IBM Corporation 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: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.pde.internal.p2.ui; + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.DialogPage; +import org.eclipse.swt.graphics.FontMetrics; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.widgets.Control; + +public class PixelConverter { + + private FontMetrics fFontMetrics; + + public PixelConverter(Control control) { + GC gc = new GC(control); + gc.setFont(control.getFont()); + fFontMetrics = gc.getFontMetrics(); + gc.dispose(); + } + + /** + * @see DialogPage#convertHeightInCharsToPixels + */ + public int convertHeightInCharsToPixels(int chars) { + return Dialog.convertHeightInCharsToPixels(fFontMetrics, chars); + } + + /** + * @see DialogPage#convertHorizontalDLUsToPixels + */ + public int convertHorizontalDLUsToPixels(int dlus) { + return Dialog.convertHorizontalDLUsToPixels(fFontMetrics, dlus); + } + + /** + * @see DialogPage#convertVerticalDLUsToPixels + */ + public int convertVerticalDLUsToPixels(int dlus) { + return Dialog.convertVerticalDLUsToPixels(fFontMetrics, dlus); + } + + /** + * @see DialogPage#convertWidthInCharsToPixels + */ + public int convertWidthInCharsToPixels(int chars) { + return Dialog.convertWidthInCharsToPixels(fFontMetrics, chars); + } + +} Index: src/org/eclipse/pde/internal/p2/ui/provisioner/P2TargetProvisionerWizardPage.java =================================================================== RCS file: src/org/eclipse/pde/internal/p2/ui/provisioner/P2TargetProvisionerWizardPage.java diff -N src/org/eclipse/pde/internal/p2/ui/provisioner/P2TargetProvisionerWizardPage.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/internal/p2/ui/provisioner/P2TargetProvisionerWizardPage.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,405 @@ +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation 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: IBM Corporation - initial API and implementation + ******************************************************************************/ +package org.eclipse.pde.internal.p2.ui.provisioner; + +import java.io.File; +import java.net.URL; + +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; +import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningContext; +import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit; +import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager; +import org.eclipse.equinox.internal.provisional.p2.ui.IRepositoryManipulator; +import org.eclipse.equinox.internal.provisional.p2.ui.actions.PropertyDialogAction; +import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.AvailableIUGroup; +import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.DefaultMetadataURLValidator; +import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.URLValidator; +import org.eclipse.equinox.internal.provisional.p2.ui.operations.AddColocatedRepositoryOperation; +import org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningOperation; +import org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningUtil; +import org.eclipse.equinox.internal.provisional.p2.ui.operations.RemoveColocatedRepositoryOperation; +import org.eclipse.equinox.internal.provisional.p2.ui.sdk.ProvPolicies; +import org.eclipse.equinox.internal.provisional.p2.ui.sdk.RepositoryManipulationDialog; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.IDialogSettings; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.window.SameShellProvider; +import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.pde.internal.p2.ui.PDEP2Plugin; +import org.eclipse.pde.internal.p2.ui.SWTUtil; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.program.Program; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.DirectoryDialog; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Link; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; + +/** + * Wizard page allowing users to select which IUs they would like to download + * and where they would like them to be downloaded to. + * + * @since 3.4 + * @see P2TargetProvisionerWizard + */ +public class P2TargetProvisionerWizardPage extends WizardPage { + + /** + * Default location to download IUs to, will be created if it does not exist. + * Will be appended to the current workspace. + */ + private static final String DEFAULT_DIR_NAME = ".metadata/.plugins/org.eclipse.pde.core/target_plugins"; //$NON-NLS-1$; + // state constants + private static final String USE_DEFAULT = "useDefault"; //$NON-NLS-1$ + private static final String CLEAR_CONTENTS = "clearContents"; //$NON-NLS-1$ + private static final String FOLDER_NAME = "folderName"; //$NON-NLS-1$ + + static final IStatus BAD_IU_SELECTION = new Status(IStatus.ERROR, PDEP2Plugin.getUniqueIdentifier(), ProvisionerMessages.P2TargetProvisionerWizardPage_1); + private static final IStatus DIR_DOES_NOT_EXIST = new Status(IStatus.ERROR, PDEP2Plugin.getUniqueIdentifier(), ProvisionerMessages.P2TargetProvisionerWizardPage_3); + + private IStatus fDirectoryStatus = Status.OK_STATUS; + IStatus fSelectedIUStatus = BAD_IU_SELECTION; + + private String previousLocation; + IInstallableUnit[] fUnits; + + private Link fLocationLink; + private Text fInstallLocation; + private Button fUseDefaultsButton; + private Button fBrowseButton; + private Button fClearContentsButton; + + AvailableIUGroup fAvailableIUGroup; + Button fPropertiesButton; + private IAction fPropertyAction; + private IRepositoryManipulator fManipulator; + + protected P2TargetProvisionerWizardPage(String pageName) { + super(pageName); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite) + */ + public void createControl(Composite parent) { + Composite composite = new Composite(parent, SWT.NONE); + composite.setLayout(new GridLayout()); + composite.setLayoutData(new GridData(GridData.FILL_BOTH)); + composite.setFont(parent.getFont()); + + createInstallFolderArea(composite); + createAvailableIUArea(composite); + + setPageComplete(false); + restoreWidgetState(); + setControl(composite); + } + + /** + * Create the UI area where the user will choose what directory to download + * bundles to. The user can choose to use the default area and they can choose + * to delete the contents of the folder before downloading. + * + * @param composite parent composite + */ + private void createInstallFolderArea(Composite composite) { + Composite locationComp = new Composite(composite, SWT.NONE); + locationComp.setLayout(new GridLayout(3, false)); + locationComp.setFont(composite.getFont()); + locationComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + + fUseDefaultsButton = new Button(locationComp, SWT.CHECK | SWT.RIGHT); + GridData gd = new GridData(); + gd.horizontalSpan = 3; + fUseDefaultsButton.setLayoutData(gd); + fUseDefaultsButton.setText(ProvisionerMessages.P2TargetProvisionerWizardPage_4); + fUseDefaultsButton.setSelection(true); + fUseDefaultsButton.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + Button button = (Button) e.getSource(); + if (button.getSelection()) { + fInstallLocation.setEnabled(false); + fBrowseButton.setEnabled(false); + previousLocation = fInstallLocation.getText(); + fInstallLocation.setText(getDefaultDownloadLocation()); + } else { + fInstallLocation.setEnabled(true); + fBrowseButton.setEnabled(true); + fInstallLocation.setText(previousLocation); + } + + } + }); + fUseDefaultsButton.setSelection(true); + + fLocationLink = new Link(locationComp, SWT.NONE); + fLocationLink.setText("" + ProvisionerMessages.P2TargetProvisionerWizardPage_0 + ""); //$NON-NLS-1$ //$NON-NLS-2$ + fLocationLink.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + try { + File file = getDownloadLocation(true); + if (file != null && file.isDirectory()) + Program.launch(file.getCanonicalPath()); + else + setErrorMessage(ProvisionerMessages.P2TargetProvisionerWizardPage_5); + } catch (Exception ex) { + setErrorMessage(ProvisionerMessages.P2TargetProvisionerWizardPage_6 + ex.getMessage()); + } + } + }); + + fInstallLocation = new Text(locationComp, SWT.BORDER); + gd = new GridData(GridData.FILL_HORIZONTAL); + fInstallLocation.setLayoutData(gd); + previousLocation = getDefaultDownloadLocation(); + fInstallLocation.setText(previousLocation); + fInstallLocation.setEnabled(false); + fInstallLocation.addModifyListener(new ModifyListener() { + public void modifyText(ModifyEvent e) { + File location = getDownloadLocation(false); + if (location == null || (!location.exists() && !fUseDefaultsButton.getSelection())) { + fDirectoryStatus = DIR_DOES_NOT_EXIST; + } else { + fDirectoryStatus = Status.OK_STATUS; + } + pageChanged(); + } + }); + + fBrowseButton = new Button(locationComp, SWT.PUSH); + fBrowseButton.setText(ProvisionerMessages.P2TargetProvisionerWizardPage_7); + fBrowseButton.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent event) { + handleLocationBrowseButtonPressed(); + } + }); + fBrowseButton.setEnabled(false); + fBrowseButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); + SWTUtil.setButtonDimensionHint(fBrowseButton); + + fClearContentsButton = new Button(locationComp, SWT.CHECK | SWT.RIGHT); + gd = new GridData(); + gd.horizontalSpan = 3; + fClearContentsButton.setLayoutData(gd); + fClearContentsButton.setText(ProvisionerMessages.P2TargetProvisionerWizardPage_8); + fClearContentsButton.setSelection(false); + + } + + /** + * Create the UI area where the user will be able to select which IUs they + * would like to download. There will also be buttons to see properties for + * the selection and open the manage sites dialog. + * + * @param composite parent composite + */ + private void createAvailableIUArea(Composite composite) { + Group mainGroup = new Group(composite, SWT.NONE); + mainGroup.setText(ProvisionerMessages.P2TargetProvisionerWizardPage_9); + mainGroup.setLayout(new GridLayout(2, false)); + mainGroup.setFont(composite.getFont()); + mainGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + fAvailableIUGroup = new AvailableIUGroup(mainGroup, ProvPolicies.getDefault().getQueryProvider(), mainGroup.getFont(), new ProvisioningContext()); + fAvailableIUGroup.getStructuredViewer().addSelectionChangedListener(new ISelectionChangedListener() { + public void selectionChanged(SelectionChangedEvent event) { + fUnits = fAvailableIUGroup.getSelectedIUs(); + fPropertiesButton.setEnabled(fUnits.length > 0); + if (fUnits.length > 0) { + fSelectedIUStatus = Status.OK_STATUS; + } else { + fSelectedIUStatus = BAD_IU_SELECTION; + } + pageChanged(); + } + }); + fAvailableIUGroup.setUseBoldFontForFilteredItems(true); + GridData data = (GridData) fAvailableIUGroup.getStructuredViewer().getControl().getLayoutData(); + data.heightHint = 200; + + Composite iuButtonComp = new Composite(mainGroup, SWT.NONE); + iuButtonComp.setLayout(new GridLayout(1, false)); + iuButtonComp.setFont(mainGroup.getFont()); + iuButtonComp.setLayoutData(new GridData(GridData.FILL_BOTH)); + + fPropertiesButton = new Button(iuButtonComp, SWT.PUSH); + fPropertiesButton.setText(ProvisionerMessages.P2TargetProvisionerWizardPage_10); + fPropertiesButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + fPropertiesButton.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent event) { + fPropertyAction.run(); + } + }); + fPropertyAction = new PropertyDialogAction(new SameShellProvider(getShell()), fAvailableIUGroup.getStructuredViewer()); + + fManipulator = new IRepositoryManipulator(){ + public String getManipulatorLabel() { + return ProvisionerMessages.P2TargetProvisionerWizardPage_11; + } + public boolean manipulateRepositories(Shell shell) { + new RepositoryManipulationDialog(shell, this).open(); + return true; + } + public ProvisioningOperation getAddOperation(URL repoURL) { + return new AddColocatedRepositoryOperation(getAddOperationLabel(), repoURL); + } + public String getAddOperationLabel() { + return ProvisionerMessages.P2TargetProvisionerWizardPage_12; + } + public URL[] getKnownRepositories() { + try { + return ProvisioningUtil.getMetadataRepositories(IMetadataRepositoryManager.REPOSITORIES_ALL); + } catch (ProvisionException e) { + return new URL[0]; + } + } + public ProvisioningOperation getRemoveOperation(URL[] reposToRemove) { + return new RemoveColocatedRepositoryOperation(getRemoveOperationLabel(), reposToRemove); + } + public String getRemoveOperationLabel() { + return ProvisionerMessages.P2TargetProvisionerWizardPage_13; + } + public URLValidator getURLValidator(Shell shell) { + return new DefaultMetadataURLValidator(); + } + }; + Button editReposButton = new Button(iuButtonComp, SWT.PUSH); + editReposButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + editReposButton.setText(ProvisionerMessages.P2TargetProvisionerWizardPage_11); + editReposButton.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent event) { + fManipulator.manipulateRepositories(getShell()); + } + }); + } + + /** + * Checks if the page is complete, updating messages and finish button. + */ + void pageChanged() { + if (fDirectoryStatus.getSeverity() == IStatus.ERROR) { + setErrorMessage(fDirectoryStatus.getMessage()); + setPageComplete(false); + } else if (fSelectedIUStatus.getSeverity() == IStatus.ERROR) { + setErrorMessage(fSelectedIUStatus.getMessage()); + setPageComplete(false); + } else { + setErrorMessage(null); + setPageComplete(true); + } + } + + /** + * Determines the default download folder location based on the workspace + * location. + */ + private String getDefaultDownloadLocation() { + IPath path = ResourcesPlugin.getWorkspace().getRoot().getLocation(); + if (path != null) { + return new File(path.toFile(), DEFAULT_DIR_NAME).toString(); + } + return ""; //$NON-NLS-1$ + } + + /** + * Open a directory dialog to select a folder. + */ + private void handleLocationBrowseButtonPressed() { + DirectoryDialog dialog = new DirectoryDialog(getShell()); + dialog.setFilterPath(fInstallLocation.getText()); + dialog.setText(ProvisionerMessages.P2TargetProvisionerWizardPage_16); + dialog.setMessage(ProvisionerMessages.P2TargetProvisionerWizardPage_17); + String result = dialog.open(); + if (result != null) + fInstallLocation.setText(result); + } + + /** + * Save the state of the widgets select, for successive invocations of the wizard + */ + void saveWidgetState() { + IDialogSettings settings = getDialogSettings(); + if(settings != null) { + if (fUseDefaultsButton.getSelection()){ + settings.put(USE_DEFAULT, true); + } else { + settings.put(USE_DEFAULT, false); + settings.put(FOLDER_NAME, fInstallLocation.getText()); + } + settings.put(CLEAR_CONTENTS, fClearContentsButton.getSelection()); + } + } + + /** + * Restores the state of the wizard from previous invocations + */ + private void restoreWidgetState() { + IDialogSettings settings = getDialogSettings(); + if(settings != null) { + String location = settings.get(FOLDER_NAME); + if (location != null && location.length() > 0){ + previousLocation = location; + } + String useDefaults = settings.get(USE_DEFAULT); + if (useDefaults != null){ + boolean useDefaultsBoolean = Boolean.valueOf(useDefaults).booleanValue(); + fUseDefaultsButton.setSelection(useDefaultsBoolean); + if (!useDefaultsBoolean){ + fInstallLocation.setText(previousLocation); + fInstallLocation.setEnabled(true); + fBrowseButton.setEnabled(true); + + } + } + fClearContentsButton.setSelection(Boolean.valueOf(settings.get(CLEAR_CONTENTS)).booleanValue()); + } + } + + /** + * @return the list of installable units to download on finish + */ + public IInstallableUnit[] getUnits() { + return fUnits; + } + + /** + * @param createIfDefault whether to create the directory structure if it doesn't exist, only occurs if default is used + * @return the location where installable units should be downloaded to + */ + public File getDownloadLocation(boolean createIfDefault) { + if (fInstallLocation.getText().trim().length() > 0) { + File file = new File(fInstallLocation.getText()); + if (createIfDefault && fUseDefaultsButton.getSelection() && !file.isDirectory()) { + file.mkdirs(); + } + return file; + } + return null; + } + + /** + * @return whether contents of the download location should be deleted before starting the download + */ + public boolean isClearContentsBeforeDownloading() { + return fClearContentsButton.getSelection(); + } + +} Index: .settings/org.eclipse.jdt.core.prefs =================================================================== RCS file: .settings/org.eclipse.jdt.core.prefs diff -N .settings/org.eclipse.jdt.core.prefs --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ .settings/org.eclipse.jdt.core.prefs 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,344 @@ +#Wed Jan 02 10:06:25 CST 2008 +eclipse.preferences.version=1 +org.eclipse.jdt.core.builder.cleanOutputFolder=clean +org.eclipse.jdt.core.builder.duplicateResourceTask=warning +org.eclipse.jdt.core.builder.invalidClasspath=abort +org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore +org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch +org.eclipse.jdt.core.circularClasspath=error +org.eclipse.jdt.core.classpath.exclusionPatterns=enabled +org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.4 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=error +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled +org.eclipse.jdt.core.compiler.problem.unusedImport=error +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.3 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=false +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false +org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false +org.eclipse.jdt.core.formatter.comment.indent_root_tags=false +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=800 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.incompatibleJDKLevel=ignore +org.eclipse.jdt.core.incompleteClasspath=error Index: src/org/eclipse/pde/internal/p2/ui/SWTUtil.java =================================================================== RCS file: src/org/eclipse/pde/internal/p2/ui/SWTUtil.java diff -N src/org/eclipse/pde/internal/p2/ui/SWTUtil.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/internal/p2/ui/SWTUtil.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,98 @@ +/******************************************************************************* + * Copyright (c) 2000, 2006 IBM Corporation 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: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.pde.internal.p2.ui; + +import org.eclipse.core.runtime.Assert; +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.resource.JFaceResources; +import org.eclipse.swt.SWT; +import org.eclipse.swt.dnd.DragSource; +import org.eclipse.swt.dnd.DropTarget; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.widgets.*; + +/** + * Utility class to simplify access to some SWT resources. + */ +public class SWTUtil { + + /** + * Returns the standard display to be used. The method first checks, if + * the thread calling this method has an associated disaply. If so, this + * display is returned. Otherwise the method returns the default display. + */ + public static Display getStandardDisplay() { + Display display; + display = Display.getCurrent(); + if (display == null) + display = Display.getDefault(); + return display; + } + + /** + * Returns the shell for the given widget. If the widget doesn't represent + * a SWT object that manage a shell, null is returned. + * + * @return the shell for the given widget + */ + public static Shell getShell(Widget widget) { + if (widget instanceof Control) + return ((Control) widget).getShell(); + if (widget instanceof Caret) + return ((Caret) widget).getParent().getShell(); + if (widget instanceof DragSource) + return ((DragSource) widget).getControl().getShell(); + if (widget instanceof DropTarget) + return ((DropTarget) widget).getControl().getShell(); + if (widget instanceof Menu) + return ((Menu) widget).getParent().getShell(); + if (widget instanceof ScrollBar) + return ((ScrollBar) widget).getParent().getShell(); + + return null; + } + + /** + * Returns a width hint for a button control. + */ + public static int getButtonWidthHint(Button button) { + if (button.getFont().equals(JFaceResources.getDefaultFont())) + button.setFont(JFaceResources.getDialogFont()); + PixelConverter converter = new PixelConverter(button); + int widthHint = converter.convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH); + return Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x); + } + + /** + * Sets width and height hint for the button control. + * Note: This is a NOP if the button's layout data is not + * an instance of GridData. + * + * @param the button for which to set the dimension hint + */ + public static void setButtonDimensionHint(Button button) { + Dialog.applyDialogFont(button); + Assert.isNotNull(button); + Object gd = button.getLayoutData(); + if (gd instanceof GridData) { + ((GridData) gd).widthHint = getButtonWidthHint(button); + } + } + + public static void setDialogSize(Dialog dialog, int width, int height) { + Point computedSize = dialog.getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT); + width = Math.max(computedSize.x, width); + height = Math.max(computedSize.y, height); + dialog.getShell().setSize(width, height); + } +} Index: build.properties =================================================================== RCS file: build.properties diff -N build.properties --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ build.properties 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,6 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + plugin.properties Index: .project =================================================================== RCS file: .project diff -N .project --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ .project 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,28 @@ + + + org.eclipse.pde.p2.ui + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + Index: plugin.properties =================================================================== RCS file: plugin.properties diff -N plugin.properties --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ plugin.properties 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,14 @@ +############################################################################### +# Copyright (c) 2008 IBM Corporation 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: +# IBM Corporation - initial API and implementation +############################################################################### +#Properties file for org.eclipse.pde.p2.ui +Bundle-Name.0 = PDE p2 UI +provisioner.name.0 = Repository or Update Site +provisioner.description.0 = This provisioner adds new plug-ins from repositories and update sites into your target platform.