diff options
author | Susan Franklin | 2008-03-11 02:35:55 +0000 |
---|---|---|
committer | Susan Franklin | 2008-03-11 02:35:55 +0000 |
commit | 45755006d88fdf60796dc0ca6611ebbd6227925c (patch) | |
tree | 2fe5772abdcd7bfdd299312fddd882826d2f2d06 /bundles/org.eclipse.equinox.p2.ui.admin | |
parent | 4d168c7500d33b91f2ca17d8a9ee49b51cc8eb4d (diff) | |
download | rt.equinox.p2-45755006d88fdf60796dc0ca6611ebbd6227925c.tar.gz rt.equinox.p2-45755006d88fdf60796dc0ca6611ebbd6227925c.tar.xz rt.equinox.p2-45755006d88fdf60796dc0ca6611ebbd6227925c.zip |
Bug 222156 - [ui] Can't add an artifact repository with the same URL than a metadata repo
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.ui.admin')
3 files changed, 28 insertions, 2 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java index 7b30d5c23..d7cdcc66d 100644 --- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java +++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java @@ -24,6 +24,7 @@ public class ProvAdminUIMessages extends NLS { // load message values from bundle file NLS.initializeMessages(BUNDLE_NAME, ProvAdminUIMessages.class); } + public static String AddArtifactRepositoryDialog_DuplicateURL; public static String AddArtifactRepositoryDialog_OperationLabel; public static String AddProfileDialog_Title; public static String AddRepositoryDialog_InvalidURL; diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/AddArtifactRepositoryDialog.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/AddArtifactRepositoryDialog.java index 8787e3f65..ee1c521b6 100644 --- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/AddArtifactRepositoryDialog.java +++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/AddArtifactRepositoryDialog.java @@ -11,10 +11,13 @@ package org.eclipse.equinox.internal.p2.ui.admin.dialogs; import java.net.URL; +import org.eclipse.core.runtime.*; +import org.eclipse.equinox.internal.p2.ui.admin.ProvAdminUIActivator; import org.eclipse.equinox.internal.p2.ui.admin.ProvAdminUIMessages; +import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.AddRepositoryDialog; -import org.eclipse.equinox.internal.provisional.p2.ui.operations.AddArtifactRepositoryOperation; -import org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningOperation; +import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.DefaultURLValidator; +import org.eclipse.equinox.internal.provisional.p2.ui.operations.*; import org.eclipse.swt.widgets.Shell; /** @@ -32,4 +35,25 @@ public class AddArtifactRepositoryDialog extends AddRepositoryDialog { protected ProvisioningOperation getOperation(URL url) { return new AddArtifactRepositoryOperation(ProvAdminUIMessages.AddArtifactRepositoryDialog_OperationLabel, url); } + + protected DefaultURLValidator createURLValidator() { + return new DefaultURLValidator() { + protected IStatus validateRepositoryURL(URL location, boolean contactRepositories, IProgressMonitor monitor) { + IStatus duplicateStatus = Status.OK_STATUS; + URL[] knownRepositories; + try { + knownRepositories = ProvisioningUtil.getArtifactRepositories(repoFlag); + } catch (ProvisionException e) { + knownRepositories = new URL[0]; + } + for (int i = 0; i < knownRepositories.length; i++) { + if (knownRepositories[i].toExternalForm().equalsIgnoreCase(location.toExternalForm())) { + duplicateStatus = new Status(IStatus.ERROR, ProvAdminUIActivator.PLUGIN_ID, LOCAL_VALIDATION_ERROR, ProvAdminUIMessages.AddArtifactRepositoryDialog_DuplicateURL, null); + break; + } + } + return duplicateStatus; + } + }; + } } diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties index 6790c6c93..07184ab08 100644 --- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties +++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties @@ -25,6 +25,7 @@ AddRepositoryDialog_InvalidURL=Invalid URL AddProfileDialog_Title=Add Profile AddProfileDialog_OperationLabel=Add Profile AddMetadataRepositoryDialog_OperationLabel=Add Metadata Repository +AddArtifactRepositoryDialog_DuplicateURL=Duplicate URL AddArtifactRepositoryDialog_OperationLabel=Add Artifact Repository MetadataRepositoriesView_AddRepositoryLabel=Add repository... MetadataRepositoriesView_AddRepositoryTooltip=Add a new metadata repository |