diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositoryManipulatorDropTarget.java')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositoryManipulatorDropTarget.java | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositoryManipulatorDropTarget.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositoryManipulatorDropTarget.java index cb258f8e8..a44ee11d4 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositoryManipulatorDropTarget.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositoryManipulatorDropTarget.java @@ -14,13 +14,9 @@ import java.net.URI; import java.net.URISyntaxException; import org.eclipse.core.runtime.*; import org.eclipse.core.runtime.jobs.Job; -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.equinox.internal.provisional.p2.ui.policy.RepositoryLocationValidator; -import org.eclipse.equinox.internal.provisional.p2.ui.policy.RepositoryManipulator; +import org.eclipse.equinox.internal.p2.ui.*; +import org.eclipse.equinox.p2.operations.RepositoryTracker; +import org.eclipse.equinox.p2.ui.ProvisioningUI; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.dnd.DND; import org.eclipse.swt.dnd.DropTargetEvent; @@ -38,13 +34,15 @@ import org.eclipse.ui.statushandlers.StatusManager; * */ public class RepositoryManipulatorDropTarget extends URLDropAdapter { - RepositoryManipulator manipulator; + ProvisioningUI ui; + RepositoryTracker tracker; Control control; - public RepositoryManipulatorDropTarget(RepositoryManipulator manipulator, Control control) { + public RepositoryManipulatorDropTarget(ProvisioningUI ui, Control control) { super(true); // convert file drops to URL - Assert.isNotNull(manipulator); - this.manipulator = manipulator; + Assert.isNotNull(ui); + this.ui = ui; + this.tracker = ui.getRepositoryTracker(); this.control = control; } @@ -54,7 +52,7 @@ public class RepositoryManipulatorDropTarget extends URLDropAdapter { try { location[0] = URIUtil.fromString(urlText); } catch (URISyntaxException e) { - ProvUI.reportStatus(RepositoryLocationValidator.getInvalidLocationStatus(urlText), StatusManager.SHOW | StatusManager.LOG); + ProvUI.reportStatus(tracker.getInvalidLocationStatus(urlText), StatusManager.SHOW | StatusManager.LOG); return; } if (location[0] == null) @@ -63,13 +61,10 @@ public class RepositoryManipulatorDropTarget extends URLDropAdapter { Job job = new WorkbenchJob(ProvUIMessages.RepositoryManipulatorDropTarget_DragAndDropJobLabel) { public IStatus runInUIThread(IProgressMonitor monitor) { - IStatus status = manipulator.getRepositoryLocationValidator(control.getShell()).validateRepositoryLocation(location[0], false, monitor); + IStatus status = tracker.validateRepositoryLocation(ui.getSession(), location[0], false, monitor); if (status.isOK()) { - ProvisioningOperation addOperation = manipulator.getAddOperation(location[0]); - ProvisioningOperationRunner.schedule(addOperation, StatusManager.SHOW | StatusManager.LOG); + tracker.addRepository(location[0], null, ui.getSession()); event.detail = DND.DROP_LINK; - } else if (status.getCode() == RepositoryLocationValidator.ALTERNATE_ACTION_TAKEN) { - event.detail = DND.DROP_COPY; } else if (status.getSeverity() == IStatus.CANCEL) { event.detail = DND.DROP_NONE; } else { |