diff options
author | Susan Franklin | 2008-03-10 20:54:28 +0000 |
---|---|---|
committer | Susan Franklin | 2008-03-10 20:54:28 +0000 |
commit | 415237238d00e68a54150b69ebf6786560ed1128 (patch) | |
tree | 8671fac96eb1ec2d1c912ef7b22755029846856c /bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox | |
parent | b6ad585a19fb4e6f0e3961996434870d7c34ebad (diff) | |
download | rt.equinox.p2-415237238d00e68a54150b69ebf6786560ed1128.tar.gz rt.equinox.p2-415237238d00e68a54150b69ebf6786560ed1128.tar.xz rt.equinox.p2-415237238d00e68a54150b69ebf6786560ed1128.zip |
Bug 207220 - [ui] - quick and easy ways to get an URL into the repo list
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox')
11 files changed, 179 insertions, 40 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvUIMessages.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvUIMessages.java index 936b06c4b..079b1f209 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvUIMessages.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvUIMessages.java @@ -175,6 +175,7 @@ public class ProvUIMessages extends NLS { public static String UpdateAndInstallSelectionDialog_DeselectAllLabel; public static String UpdateAndInstallSelectionDialog_SelectAllLabel; public static String UpdateAndInstallGroup_Refresh; + public static String URLValidator_UnrecognizedURL; public static String UpdateManagerCompatibility_UnableToOpenFindAndInstall; public static String UpdateManagerCompatibility_UnableToOpenManageConfiguration; public static String UpdateOperation_NothingToUpdate; diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages.properties b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages.properties index f50647078..a41d055d4 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages.properties +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages.properties @@ -116,6 +116,7 @@ UpdateDialog_AssemblingUpdatesProgress=Assembling updates UpdateAction_UpdatesAvailableTitle=Available Updates UpdateOperation_NothingToUpdate=There is nothing to update. UpdateAndInstallGroup_Refresh=&Refresh +URLValidator_UnrecognizedURL=The URL {0} is not recognized. UpdateManagerCompatibility_UnableToOpenFindAndInstall=Unable to open the Update Manager Find and Install Wizard. UpdateManagerCompatibility_UnableToOpenManageConfiguration=Unable to open the Update Manager Configuration Manager. CategoryElementCollector_Uncategorized=Other diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/IRepositoryManipulator.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/IRepositoryManipulator.java index d401f2c6b..bf7e0a5cd 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/IRepositoryManipulator.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/IRepositoryManipulator.java @@ -10,6 +10,9 @@ *******************************************************************************/ package org.eclipse.equinox.internal.provisional.p2.ui; +import java.net.URL; +import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.URLValidator; +import org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningOperation; import org.eclipse.swt.widgets.Shell; /** @@ -35,4 +38,22 @@ public interface IRepositoryManipulator { */ public String getLabel(); + /** + * Return an array of URLs containing the repositories already known. + */ + public URL[] getKnownRepositories(); + + /** + * Return an operation that could be used to add the specified URL as + * a repository. + */ + public ProvisioningOperation getAddOperation(URL repoURL); + + /** + * Return an operation that could be used to remove the specified URL as + * a repositories. + */ + public ProvisioningOperation getRemoveOperation(URL[] repoURLs); + + public URLValidator getURLValidator(Shell shell); } diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/AddRepositoryDialog.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/AddRepositoryDialog.java index 97746b004..1f0f324b4 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/AddRepositoryDialog.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/AddRepositoryDialog.java @@ -10,26 +10,23 @@ *******************************************************************************/ package org.eclipse.equinox.internal.provisional.p2.ui.dialogs; -import java.lang.reflect.InvocationTargetException; import java.net.MalformedURLException; import java.net.URL; -import org.eclipse.core.runtime.*; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; import org.eclipse.equinox.internal.p2.ui.ProvUIActivator; import org.eclipse.equinox.internal.p2.ui.ProvUIMessages; -import org.eclipse.equinox.internal.provisional.p2.ui.ProvUI; import org.eclipse.equinox.internal.provisional.p2.ui.ProvisioningOperationRunner; import org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningOperation; import org.eclipse.jface.dialogs.*; import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.BusyIndicator; import org.eclipse.swt.dnd.*; import org.eclipse.swt.events.*; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.*; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.statushandlers.StatusManager; /** * Abstract dialog class for adding repositories of different types. This class @@ -44,15 +41,16 @@ public abstract class AddRepositoryDialog extends StatusDialog { Button okButton; Text url; - URLValidator urlValidator; + DefaultURLValidator urlValidator; static final String[] ARCHIVE_EXTENSIONS = new String[] {"*.jar;*.zip"}; //$NON-NLS-1$ static String lastLocalLocation = null; static String lastArchiveLocation = null; - public AddRepositoryDialog(Shell parentShell, URL[] knownRepositories) { + public AddRepositoryDialog(Shell parentShell, int repoFlag) { super(parentShell); - urlValidator = createURLValidator(knownRepositories); + urlValidator = createURLValidator(); + urlValidator.setKnownRepositoriesFlag(repoFlag); setTitle(ProvUIMessages.AddRepositoryDialog_Title); } @@ -78,7 +76,13 @@ public abstract class AddRepositoryDialog extends StatusDialog { url.setLayoutData(data); DropTarget target = new DropTarget(url, DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK); target.setTransfer(new Transfer[] {URLTransfer.getInstance()}); - target.addDropListener(new TextURLDropAdapter(url)); + target.addDropListener(new TextURLDropAdapter(url) { + protected void handleURLString(String urlText, DropTargetEvent event) { + super.handleURLString(urlText, event); + // validate the URL with remote checking since drop is more heavyweight than typing text + validateRepositoryURL(true); + } + }); url.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { validateRepositoryURL(false); @@ -133,8 +137,8 @@ public abstract class AddRepositoryDialog extends StatusDialog { return comp; } - protected URLValidator createURLValidator(URL[] knownRepositories) { - return new DefaultURLValidator(knownRepositories); + protected DefaultURLValidator createURLValidator() { + return new DefaultURLValidator(); } protected URLValidator getURLValidator() { @@ -184,24 +188,19 @@ public abstract class AddRepositoryDialog extends StatusDialog { if (url == null || url.isDisposed()) return Status.OK_STATUS; final IStatus[] status = new IStatus[1]; - status[0] = Status.OK_STATUS; + status[0] = URLValidator.getInvalidURLStatus(url.getText().trim()); final URL userURL = getUserURL(); if (url.getText().length() == 0) status[0] = new Status(IStatus.ERROR, ProvUIActivator.PLUGIN_ID, URLValidator.LOCAL_VALIDATION_ERROR, ProvUIMessages.RepositoryGroup_URLRequired, null); else if (userURL == null) status[0] = new Status(IStatus.ERROR, ProvUIActivator.PLUGIN_ID, URLValidator.LOCAL_VALIDATION_ERROR, ProvUIMessages.AddRepositoryDialog_InvalidURL, null); else { - try { - PlatformUI.getWorkbench().getProgressService().busyCursorWhile(new IRunnableWithProgress() { - public void run(IProgressMonitor monitor) { - status[0] = getURLValidator().validateRepositoryURL(userURL, contactRepositories, status[0], monitor); - } - }); - } catch (InvocationTargetException e) { - return ProvUI.handleException(e.getCause(), ProvUIMessages.AddRepositoryDialog_URLValidationError, StatusManager.SHOW | StatusManager.LOG); - } catch (InterruptedException e) { - // ignore - } + BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() { + public void run() { + status[0] = getURLValidator().validateRepositoryURL(userURL, contactRepositories, null); + } + }); + } // At this point the subclasses may have decided to opt out of diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/DefaultURLValidator.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/DefaultURLValidator.java index 12d7af918..59e58a446 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/DefaultURLValidator.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/DefaultURLValidator.java @@ -15,6 +15,8 @@ import java.net.URL; import org.eclipse.core.runtime.*; import org.eclipse.equinox.internal.p2.ui.ProvUIActivator; import org.eclipse.equinox.internal.p2.ui.ProvUIMessages; +import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; +import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager; import org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningUtil; /** @@ -23,25 +25,38 @@ import org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningUti */ public class DefaultURLValidator extends URLValidator { - URL[] knownRepositories; + int repoFlag; - public DefaultURLValidator(URL[] knownRepositories) { - this.knownRepositories = knownRepositories; + public DefaultURLValidator() { + repoFlag = IMetadataRepositoryManager.REPOSITORIES_ALL; + } + + public void setKnownRepositoriesFlag(int flag) { + repoFlag = flag; } /* (non-Javadoc) * @see org.eclipse.equinox.internal.provisional.p2.ui.dialogs.URLValidator#validateRepositoryURL(boolean) */ - protected IStatus validateRepositoryURL(URL location, boolean contactRepositories, IStatus originalStatus, IProgressMonitor monitor) { - IStatus status = originalStatus; + protected IStatus validateRepositoryURL(URL location, boolean contactRepositories, IProgressMonitor monitor) { + IStatus duplicateStatus = Status.OK_STATUS; + URL[] knownRepositories; + try { + knownRepositories = ProvisioningUtil.getMetadataRepositories(repoFlag); + } catch (ProvisionException e) { + knownRepositories = new URL[0]; + } for (int i = 0; i < knownRepositories.length; i++) { if (knownRepositories[i].toExternalForm().equalsIgnoreCase(location.toExternalForm())) { - status = new Status(IStatus.ERROR, ProvUIActivator.PLUGIN_ID, LOCAL_VALIDATION_ERROR, ProvUIMessages.AddRepositoryDialog_DuplicateURL, null); + duplicateStatus = new Status(IStatus.ERROR, ProvUIActivator.PLUGIN_ID, LOCAL_VALIDATION_ERROR, ProvUIMessages.AddRepositoryDialog_DuplicateURL, null); break; } } - if (status.isOK() && contactRepositories) - status = ProvisioningUtil.validateMetadataRepositoryLocation(location, monitor); - return status; + if (!duplicateStatus.isOK()) + return duplicateStatus; + + if (contactRepositories) + return ProvisioningUtil.validateMetadataRepositoryLocation(location, monitor); + return duplicateStatus; } } diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/RepositoryManipulatorDropTarget.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/RepositoryManipulatorDropTarget.java new file mode 100644 index 000000000..e27bbfb82 --- /dev/null +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/RepositoryManipulatorDropTarget.java @@ -0,0 +1,56 @@ +package org.eclipse.equinox.internal.provisional.p2.ui.dialogs; + +import java.net.MalformedURLException; +import java.net.URL; +import org.eclipse.core.runtime.Assert; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.equinox.internal.provisional.p2.ui.*; +import org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningOperation; +import org.eclipse.swt.custom.BusyIndicator; +import org.eclipse.swt.dnd.DND; +import org.eclipse.swt.dnd.DropTargetEvent; +import org.eclipse.swt.widgets.Control; +import org.eclipse.ui.statushandlers.StatusManager; + +/** + * @since 3.4 + * + */ +public class RepositoryManipulatorDropTarget extends URLDropAdapter { + IRepositoryManipulator manipulator; + Control control; + + public RepositoryManipulatorDropTarget(IRepositoryManipulator manipulator, Control control) { + Assert.isNotNull(manipulator); + this.manipulator = manipulator; + this.control = control; + } + + protected void handleURLString(String urlText, final DropTargetEvent event) { + event.detail = DND.DROP_NONE; + if (!dropTargetIsValid(event)) + return; + final URL url; + try { + url = new URL(urlText); + } catch (MalformedURLException e) { + ProvUI.reportStatus(URLValidator.getInvalidURLStatus(urlText), StatusManager.SHOW | StatusManager.LOG); + return; + } + BusyIndicator.showWhile(control.getDisplay(), new Runnable() { + public void run() { + IStatus status = manipulator.getURLValidator(control.getShell()).validateRepositoryURL(url, true, null); + if (status.isOK()) { + ProvisioningOperation addOperation = manipulator.getAddOperation(url); + ProvisioningOperationRunner.run(addOperation, control.getShell()); + event.detail = DND.DROP_LINK; + } else if (status.getCode() == URLValidator.REPO_AUTO_GENERATED) { + event.detail = DND.DROP_COPY; + } else if (!(status.getCode() == URLValidator.ALTERNATE_ACTION_TAKEN)) { + ProvUI.reportStatus(status, StatusManager.BLOCK | StatusManager.LOG); + } + + } + }); + } +}
\ No newline at end of file diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/TextURLDropAdapter.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/TextURLDropAdapter.java index f999712ce..5e7aa02b9 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/TextURLDropAdapter.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/TextURLDropAdapter.java @@ -11,6 +11,8 @@ package org.eclipse.equinox.internal.provisional.p2.ui.dialogs; +import org.eclipse.swt.dnd.DND; +import org.eclipse.swt.dnd.DropTargetEvent; import org.eclipse.swt.widgets.Text; /** @@ -26,10 +28,11 @@ public class TextURLDropAdapter extends URLDropAdapter { } /* (non-Javadoc) - * @see org.eclipse.equinox.internal.provisional.p2.ui.dialogs.URLDropAdapter#handleURLString(java.lang.String) + * @see org.eclipse.equinox.internal.provisional.p2.ui.dialogs.URLDropAdapter#handleURLString(java.lang.String, org.eclipse.swt.dnd.DropTargetEvent) */ - protected void handleURLString(String urlText) { + protected void handleURLString(String urlText, DropTargetEvent event) { text.setText(urlText); + event.detail = DND.DROP_LINK; } } diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/URLDropAdapter.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/URLDropAdapter.java index 5ac605f60..647178759 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/URLDropAdapter.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/URLDropAdapter.java @@ -20,6 +20,10 @@ import org.eclipse.swt.dnd.*; */ public abstract class URLDropAdapter extends DropTargetAdapter { public void dragEnter(DropTargetEvent e) { + if (!dropTargetIsValid(e)) { + e.detail = DND.DROP_NONE; + return; + } if (e.detail == DND.DROP_NONE) e.detail = DND.DROP_LINK; } @@ -34,8 +38,12 @@ public abstract class URLDropAdapter extends DropTargetAdapter { event.detail = DND.DROP_NONE; return; } - handleURLString((String) event.data); + handleURLString((String) event.data, event); + } + + protected boolean dropTargetIsValid(DropTargetEvent event) { + return true; } - protected abstract void handleURLString(String urlText); + protected abstract void handleURLString(String urlText, DropTargetEvent event); } diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/URLValidator.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/URLValidator.java index fadb07d41..cecaefb12 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/URLValidator.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/URLValidator.java @@ -12,8 +12,10 @@ package org.eclipse.equinox.internal.provisional.p2.ui.dialogs; import java.net.URL; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.*; +import org.eclipse.equinox.internal.p2.ui.ProvUIActivator; +import org.eclipse.equinox.internal.p2.ui.ProvUIMessages; +import org.eclipse.osgi.util.NLS; /** * @@ -34,5 +36,9 @@ public abstract class URLValidator { public static final int REPO_AUTO_GENERATED = 3001; public static final int ALTERNATE_ACTION_TAKEN = 3002; - protected abstract IStatus validateRepositoryURL(URL url, boolean contactRepositories, IStatus originalStatus, IProgressMonitor monitor); + public static Status getInvalidURLStatus(String urlText) { + return new Status(IStatus.ERROR, ProvUIActivator.PLUGIN_ID, LOCAL_VALIDATION_ERROR, NLS.bind(ProvUIMessages.URLValidator_UnrecognizedURL, urlText), null); + } + + protected abstract IStatus validateRepositoryURL(URL url, boolean contactRepositories, IProgressMonitor monitor); } diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/UpdateAndInstallGroup.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/UpdateAndInstallGroup.java index d45295e2a..a0bfc4da6 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/UpdateAndInstallGroup.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/UpdateAndInstallGroup.java @@ -28,6 +28,7 @@ import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.viewers.*; import org.eclipse.jface.window.SameShellProvider; import org.eclipse.swt.SWT; +import org.eclipse.swt.dnd.*; import org.eclipse.swt.graphics.FontMetrics; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; @@ -45,6 +46,7 @@ public class UpdateAndInstallGroup { private static final String BUTTONACTION = "buttonAction"; //$NON-NLS-1$ private static final int DEFAULT_HEIGHT = 240; private static final int DEFAULT_WIDTH = 300; + static final int INDEX_AVAILABLE = 1; TabFolder tabFolder; AvailableIUGroup availableIUGroup; InstalledIUGroup installedIUGroup; @@ -87,6 +89,8 @@ public class UpdateAndInstallGroup { TabItem availableTab = new TabItem(tabFolder, SWT.NONE); availableTab.setText(availableString); availableTab.setControl(createAvailableIUsPage(tabFolder, policies.getQueryProvider())); + + setDropTarget(tabFolder); } public TabFolder getTabFolder() { @@ -98,6 +102,7 @@ public class UpdateAndInstallGroup { GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); gd.widthHint = convertHorizontalDLUsToPixels(DEFAULT_WIDTH); composite.setLayoutData(gd); + setDropTarget(composite); GridLayout layout = new GridLayout(); layout.numColumns = 2; @@ -120,6 +125,8 @@ public class UpdateAndInstallGroup { } }); + setDropTarget(availableIUGroup.getStructuredViewer().getControl()); + validateAvailableIUButtons(availableIUGroup.getStructuredViewer().getSelection()); return composite; } @@ -339,4 +346,25 @@ public class UpdateAndInstallGroup { public InstalledIUGroup getInstalledIUGroup() { return installedIUGroup; } + + private void setDropTarget(final Control control) { + // Don't bother hooking drag/drop if we won't know + // what to do with it. + if (repositoryManipulator == null) + return; + + DropTarget target = new DropTarget(control, DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK); + target.setTransfer(new Transfer[] {URLTransfer.getInstance()}); + target.addDropListener(new RepositoryManipulatorDropTarget(repositoryManipulator, control) { + protected boolean dropTargetIsValid(DropTargetEvent event) { + // If we are on available features page, all drops are good. + if (tabFolder.getSelectionIndex() == UpdateAndInstallGroup.INDEX_AVAILABLE) + return true; + if (tabFolder.getItem(INDEX_AVAILABLE) == event.item) + return true; + return false; + } + }); + + } } diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/policy/Policies.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/policy/Policies.java index 0eb39c933..847e3a447 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/policy/Policies.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/policy/Policies.java @@ -10,6 +10,7 @@ *******************************************************************************/ package org.eclipse.equinox.internal.provisional.p2.ui.policy; + /** * Abstract class for a set of policies provided by applications that * are used for decision making during provisioning operations. |