Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSusan Franklin2007-10-15 22:20:27 +0000
committerSusan Franklin2007-10-15 22:20:27 +0000
commitadec7392cfe5ee6292a28d7520b567e897c8975b (patch)
treed93c479ae0b66dbb2bb4d3a638fc1545e3cd6f11 /bundles/org.eclipse.equinox.p2.ui/src/org/eclipse
parent86ad8d63826d6186aa433020f7d4b06330feec04 (diff)
downloadrt.equinox.p2-adec7392cfe5ee6292a28d7520b567e897c8975b.tar.gz
rt.equinox.p2-adec7392cfe5ee6292a28d7520b567e897c8975b.tar.xz
rt.equinox.p2-adec7392cfe5ee6292a28d7520b567e897c8975b.zip
Bug 204301 - [prov] [ui] remove editable name field from "add repo" UIv20071015
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.ui/src/org/eclipse')
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvUIMessages.java16
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvisioningEventManager.java (renamed from bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvisioningPropertyManager.java)21
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages.properties33
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/IProvisioningListener.java (renamed from bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/IProvisioningProperties.java)9
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/ProvUIActivator.java14
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AddColocatedRepositoryDialog.java12
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AddRepositoryDialog.java131
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUImplementationGroup.java202
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUImplementationPropertyPage.java59
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryGroup.java75
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryImplementationGroup.java74
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryImplementationPropertyPage.java31
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryPropertyPage.java16
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/UpdateAndInstallGroup.java8
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddArtifactRepositoryOperation.java7
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddColocatedRepositoryOperation.java7
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddMetadataRepositoryOperation.java7
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/ProvisioningUtil.java83
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveArtifactRepositoryOperation.java6
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveColocatedRepositoryOperation.java7
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveMetadataRepositoryOperation.java6
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RepositoryOperation.java4
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/viewers/StructuredViewerProvisioningListener.java23
23 files changed, 195 insertions, 656 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 a6289ce27..657b590f8 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
@@ -41,10 +41,10 @@ public class ProvUIMessages extends NLS {
public static String IUPropertiesGroup_ProviderProperty;
public static String ProfileGroup_Cache;
public static String ProfileGroup_SelectBundlePoolCache;
- public static String ProvisioningUtil_InstallProgressName;
// utility error messages
public static String ProvisioningUtil_NoRepositoryManager;
public static String ProvisioningUtil_AddRepositoryFailure;
+ public static String ProvisioningUtil_CreateRepositoryFailure;
public static String ProvisioningUtil_RepoNotWritable;
public static String ProvisioningUtil_RepositoryNotFound;
public static String ProvisioningUtil_NoProfileRegistryFound;
@@ -89,21 +89,11 @@ public class ProvUIMessages extends NLS {
// Property pages
public static String ProfilePropertyPage_NoProfileSelected;
public static String IUPropertyPage_NoIUSelected;
- public static String RepositoryGroup_NameColumnLabel;
- public static String RepositoryGroup_PropertiesLabel;
- public static String RepositoryGroup_ValueColumnLabel;
public static String RepositoryPropertyPage_NoRepoSelected;
// Dialog groups
- public static String IUGroup_ID;
- public static String IUGroup_IU_ID_Required;
- public static String IUGroup_Namespace;
- public static String IUGroup_ProvidedCapabilities;
- public static String IUGroup_RequiredCapabilities;
- public static String IUGroup_TouchpointData;
- public static String IUGroup_TouchpointType;
- public static String IUGroup_Version;
- public static String RepositoryGroup_Browse;
+ public static String RepositoryGroup_LocalRepoBrowseButton;
+ public static String RepositoryGroup_ArchivedRepoBrowseButton;
public static String RepositoryGroup_RepositoryFile;
public static String RepositoryGroup_SelectRepositoryDirectory;
public static String RepositoryGroup_RepositoryNameFieldLabel;
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvisioningPropertyManager.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvisioningEventManager.java
index 6f9bc1a26..db0bf2528 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvisioningPropertyManager.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvisioningEventManager.java
@@ -11,12 +11,12 @@
package org.eclipse.equinox.internal.p2.ui;
+import java.util.EventObject;
import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.equinox.p2.ui.IProvisioningListener;
/**
- * ProvisioningPropertyManager can notify clients of changes to the properties
+ * ProvisioningEventManager can notify clients of changes to the properties
* of provisioning objects.
*
* @since 3.4
@@ -26,26 +26,23 @@ import org.eclipse.jface.util.PropertyChangeEvent;
// This class should go away and instead these kinds of events should be handled
// by the provisioning event bus. See bug #197052 and #197701
//
-// TODO Some of these aren't even truly property changes but rather just notification
-// that something happened. Since this class is (hoped to be) temporary, I did not
-// want to define new event types and just used what was already available.
-public class ProvisioningPropertyManager {
+public class ProvisioningEventManager {
private ListenerList listeners = new ListenerList();
- public void addPropertyChangeListener(IPropertyChangeListener listener) {
+ public void addListener(IProvisioningListener listener) {
listeners.add(listener);
}
- public void removePropertyChangeListener(IPropertyChangeListener listener) {
+ public void removeListener(IProvisioningListener listener) {
listeners.remove(listener);
}
- public void notifyListeners(PropertyChangeEvent event) {
+ public void notifyListeners(EventObject event) {
final Object[] listenerArray = listeners.getListeners();
for (int i = 0; i < listenerArray.length; i++) {
- final IPropertyChangeListener listener = (IPropertyChangeListener) listenerArray[i];
- listener.propertyChange(event);
+ final IProvisioningListener listener = (IProvisioningListener) listenerArray[i];
+ listener.notify(event);
}
}
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 1f742e5d2..be76ca2d9 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
@@ -11,6 +11,7 @@
ProvisioningUtil_NoRepositoryManager=No repository manager was found
ProvisioningUtil_AddRepositoryFailure=Unable to add repository {0}
+ProvisioningUtil_CreateRepositoryFailure=Unable to create repository {0}
ProvisioningUtil_RepositoryNotFound=Could not find repository {0}
ProvisioningUtil_RepoNotWritable=Repository is not writable
ProvisioningUtil_NoProfileRegistryFound=No profile registry was found
@@ -40,32 +41,30 @@ UpdateIUOperationLabelWithMnemonic=&Update
UpdateIUCommandLabel=&Check for updates...
UpdateIUCommandTooltip=See if updates are available for the selected items
UpdateIUProgress=Updating...
-RollbackIUOperationLabel=Rollback
-RollbackIUOperationLabelWithMnemonic=&Rollback
-RollbackIUCommandLabel=&Rollback...
-RollbackIUCommandTooltip=Roll back to a previously installed configuration
-RollbackIUProgress=Rolling back...
+RollbackIUOperationLabel=Revert
+RollbackIUOperationLabelWithMnemonic=&Revert
+RollbackIUCommandLabel=&Revert...
+RollbackIUCommandTooltip=Revert to a previously installed configuration
+RollbackIUProgress=Reverting...
ProvDropAdapter_NoIUsToDrop=No IUs were available to be dropped
ProvDropAdapter_InvalidDropTarget=Invalid drop target
ProvDropAdapter_UnsupportedDropOperation=Unsupported drop operation
ProfilePropertyPage_NoProfileSelected=There was no profile selected
-IUPropertyPage_NoIUSelected=There was no IU selected
+IUPropertyPage_NoIUSelected=There was nothing selected to show in the properties.
IUDetailsLabelProvider_Unknown=Unknown
IUPropertiesGroup_NameProperty=Name
IUPropertiesGroup_ProviderProperty=Provider
IUPropertiesGroup_LicenseProperty=License
RepositoryPropertyPage_NoRepoSelected=There was no repository selected
-RepositoryGroup_RepositoryNameFieldLabel=Repository &name:
-RepositoryGroup_RepositoryURLFieldLabel=Repository &URL:
+RepositoryGroup_RepositoryNameFieldLabel=&Name:
+RepositoryGroup_RepositoryURLFieldLabel=&URL:
+RepositoryGroup_LocalRepoBrowseButton=&Local...
+RepositoryGroup_ArchivedRepoBrowseButton=&Archive...
RepositoryGroup_SelectRepositoryDirectory=Select a repository root directory:
-RepositoryGroup_Browse=&Browse...
-RepositoryGroup_RepositoryFile=Repository file
-RepositoryGroup_PropertiesLabel=Repository properties:
-RepositoryGroup_NameColumnLabel=Name
-RepositoryGroup_ValueColumnLabel=Value
+RepositoryGroup_RepositoryFile=Repository archive
RepositoryGroup_URLRequired=Must specify a URL
ProfileGroup_ID=Profile &id:
ProfileGroup_Browse=&Browse...
@@ -80,14 +79,6 @@ ProfileGroup_InstallFolder=Install &folder:
ProfileGroup_Environments=&Environments:
ProfileGroup_ProfileIDRequired=Must specify a Profile ID
ProfileGroup_ProfileInstallFolderRequired=Must specify an install folder
-IUGroup_ID=IU &id:
-IUGroup_Version=&Version:
-IUGroup_Namespace=&Namespace:
-IUGroup_TouchpointType=&Touchpoint type:
-IUGroup_TouchpointData=Touchpoint &data:
-IUGroup_RequiredCapabilities=&Required capabilities:
-IUGroup_ProvidedCapabilities=&Provided capabilities:
-IUGroup_IU_ID_Required=Must set an IU ID
AddRepositoryDialog_Title=Add Repository
AddRepositoryDialog_DuplicateURL=Duplicate URL
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/IProvisioningProperties.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/IProvisioningListener.java
index 125f782d2..0497ac9be 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/IProvisioningProperties.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/IProvisioningListener.java
@@ -10,18 +10,19 @@
*******************************************************************************/
package org.eclipse.equinox.p2.ui;
+import org.eclipse.equinox.p2.core.eventbus.ProvisioningListener;
+
/**
- * Temporary class
+ * Temporary class. A tagging listener used to distinguish listeners
+ * for events that aren't triggered in the core yet.
*
* @since 3.4
*/
// TODO this should all be defined in the core
// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=197052
// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=197701
-public interface IProvisioningProperties {
+public interface IProvisioningListener extends ProvisioningListener {
public final static String REPO_ADDED = "org.eclipse.equinox.p2.ui.property.repoadded"; //$NON-NLS-1$
- public final static String REPO_NAME = "org.eclipse.equinox.p2.ui.property.reponame"; //$NON-NLS-1$
public final static String REPO_REMOVED = "org.eclipse.equinox.p2.ui.property.reporemoved"; //$NON-NLS-1$
-
} \ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/ProvUIActivator.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/ProvUIActivator.java
index 38c579003..e749b1380 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/ProvUIActivator.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/ProvUIActivator.java
@@ -11,13 +11,13 @@
package org.eclipse.equinox.p2.ui;
import java.net.URL;
+import java.util.EventObject;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
-import org.eclipse.equinox.internal.p2.ui.ProvisioningPropertyManager;
+import org.eclipse.equinox.internal.p2.ui.ProvisioningEventManager;
import org.eclipse.equinox.p2.core.eventbus.ProvisioningEventBus;
import org.eclipse.equinox.p2.ui.viewers.StructuredViewerProvisioningListener;
import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.*;
import org.osgi.service.packageadmin.PackageAdmin;
@@ -32,7 +32,7 @@ public class ProvUIActivator extends AbstractUIPlugin {
private static PackageAdmin packageAdmin = null;
private static ServiceReference packageAdminRef = null;
private static ProvUIActivator plugin;
- private ProvisioningPropertyManager propertyManager = new ProvisioningPropertyManager();
+ private ProvisioningEventManager eventManager = new ProvisioningEventManager();
public static final String PLUGIN_ID = "org.eclipse.equinox.p2.ui"; //$NON-NLS-1$
@@ -105,7 +105,7 @@ public class ProvUIActivator extends AbstractUIPlugin {
// TODO hack for unsupported repository events.
// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=197052
if ((listener.getEventTypes() & StructuredViewerProvisioningListener.PROV_EVENT_REPOSITORY) == StructuredViewerProvisioningListener.PROV_EVENT_REPOSITORY) {
- propertyManager.addPropertyChangeListener(listener);
+ eventManager.addListener(listener);
} else {
ServiceReference busReference = context.getServiceReference(ProvisioningEventBus.class.getName());
ProvisioningEventBus bus = (ProvisioningEventBus) context.getService(busReference);
@@ -114,13 +114,13 @@ public class ProvUIActivator extends AbstractUIPlugin {
}
// TODO hack for triggering events from the UI.
- public void notifyListeners(PropertyChangeEvent event) {
- propertyManager.notifyListeners(event);
+ public void notifyListeners(EventObject event) {
+ eventManager.notifyListeners(event);
}
public void removeProvisioningListener(StructuredViewerProvisioningListener listener) {
if ((listener.getEventTypes() & StructuredViewerProvisioningListener.PROV_EVENT_REPOSITORY) == StructuredViewerProvisioningListener.PROV_EVENT_REPOSITORY) {
- propertyManager.removePropertyChangeListener(listener);
+ eventManager.removeListener(listener);
} else {
ServiceReference busReference = context.getServiceReference(ProvisioningEventBus.class.getName());
ProvisioningEventBus bus = (ProvisioningEventBus) context.getService(busReference);
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AddColocatedRepositoryDialog.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AddColocatedRepositoryDialog.java
index b631ed49b..83ddaa46e 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AddColocatedRepositoryDialog.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AddColocatedRepositoryDialog.java
@@ -33,8 +33,8 @@ public class AddColocatedRepositoryDialog extends AddRepositoryDialog {
}
- protected ProvisioningOperation getOperation(URL url, String name) {
- return new AddColocatedRepositoryOperation(getShell().getText(), url, name);
+ protected ProvisioningOperation getOperation(URL url) {
+ return new AddColocatedRepositoryOperation(getShell().getText(), url);
}
protected URL makeRepositoryURL(String urlString) {
@@ -56,12 +56,4 @@ public class AddColocatedRepositoryDialog extends AddRepositoryDialog {
}
return newURL;
}
-
- protected String repositoryFileName() {
- return null;
- }
-
- protected boolean repositoryIsFile() {
- return false;
- }
}
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AddRepositoryDialog.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AddRepositoryDialog.java
index 8d4452f75..877b4085d 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AddRepositoryDialog.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AddRepositoryDialog.java
@@ -22,8 +22,10 @@ import org.eclipse.jface.dialogs.*;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.window.Window;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.SWT;
+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.statushandlers.StatusManager;
@@ -38,9 +40,12 @@ import org.eclipse.ui.statushandlers.StatusManager;
*/
public abstract class AddRepositoryDialog extends StatusDialog {
- private Button okButton;
- private IRepository[] knownRepositories;
- private RepositoryGroup repoGroup;
+ Button okButton;
+ Text url;
+ IRepository[] knownRepositories;
+ static final String[] ARCHIVE_EXTENSIONS = new String[] {"*.jar;*.zip"}; //$NON-NLS-1$
+ static String lastLocalLocation = null;
+ static String lastArchiveLocation = null;
public AddRepositoryDialog(Shell parentShell, IRepository[] knownRepositories) {
@@ -55,14 +60,69 @@ public abstract class AddRepositoryDialog extends StatusDialog {
}
protected Control createDialogArea(Composite parent) {
- repoGroup = new RepositoryGroup(parent, null, new ModifyListener() {
- public void modifyText(ModifyEvent event) {
+ Composite comp = new Composite(parent, SWT.NONE);
+ initializeDialogUnits(comp);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 3;
+ comp.setLayout(layout);
+ GridData data = new GridData();
+ comp.setLayoutData(data);
+
+ Label urlLabel = new Label(comp, SWT.NONE);
+ urlLabel.setText(ProvUIMessages.RepositoryGroup_RepositoryURLFieldLabel);
+ url = new Text(comp, SWT.BORDER);
+ data = new GridData(GridData.FILL_HORIZONTAL);
+ data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.ENTRY_FIELD_WIDTH);
+ url.setLayoutData(data);
+ url.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
verifyComplete();
}
- }, repositoryIsFile(), null, repositoryFileName());
-
- Dialog.applyDialogFont(repoGroup.getComposite());
- return repoGroup.getComposite();
+ });
+ url.setText("http://"); //$NON-NLS-1$
+
+ // add vertical buttons for setting archive or local repos
+ Composite buttonParent = new Composite(comp, SWT.NONE);
+ layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.marginWidth = 5;
+ layout.marginHeight = 0;
+ layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
+ layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
+ buttonParent.setLayout(layout);
+ Button locationButton = new Button(buttonParent, SWT.PUSH);
+ locationButton.setText(ProvUIMessages.RepositoryGroup_LocalRepoBrowseButton);
+ locationButton.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent event) {
+ DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.APPLICATION_MODAL);
+ dialog.setMessage(ProvUIMessages.RepositoryGroup_SelectRepositoryDirectory);
+ dialog.setFilterPath(lastLocalLocation);
+ String path = dialog.open();
+ if (path != null) {
+ lastLocalLocation = path;
+ url.setText("file:" + path.toLowerCase()); //$NON-NLS-1$
+ }
+ }
+ });
+ setButtonLayoutData(locationButton);
+ locationButton = new Button(buttonParent, SWT.PUSH);
+ locationButton.setText(ProvUIMessages.RepositoryGroup_ArchivedRepoBrowseButton);
+ locationButton.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent event) {
+ FileDialog dialog = new FileDialog(getShell(), SWT.APPLICATION_MODAL);
+ dialog.setText(ProvUIMessages.RepositoryGroup_RepositoryFile);
+ dialog.setFilterExtensions(ARCHIVE_EXTENSIONS);
+ dialog.setFileName(lastArchiveLocation);
+ String path = dialog.open();
+ if (path != null) {
+ lastArchiveLocation = path;
+ url.setText("jar:file:" + path.toLowerCase() + "!/"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+ });
+ setButtonLayoutData(locationButton);
+ Dialog.applyDialogFont(comp);
+ return comp;
}
protected void okPressed() {
@@ -75,12 +135,12 @@ public abstract class AddRepositoryDialog extends StatusDialog {
}
protected boolean addRepository() {
- URL newURL = makeRepositoryURL(repoGroup.getURLString());
+ URL newURL = makeRepositoryURL(url.getText().trim());
if (newURL == null) {
return false;
}
- final ProvisioningOperation op = getOperation(newURL, repoGroup.getRepositoryName());
+ final ProvisioningOperation op = getOperation(newURL);
final IStatus[] status = new IStatus[1];
IRunnableWithProgress runnable = new IRunnableWithProgress() {
public void run(IProgressMonitor monitor) {
@@ -107,52 +167,37 @@ public abstract class AddRepositoryDialog extends StatusDialog {
}
- protected abstract ProvisioningOperation getOperation(URL url, String name);
+ protected abstract ProvisioningOperation getOperation(URL repoURL);
protected abstract URL makeRepositoryURL(String urlString);
- protected abstract boolean repositoryIsFile();
-
- protected abstract String repositoryFileName();
-
void verifyComplete() {
if (okButton == null) {
return;
}
- IStatus status = repoGroup.verify();
- if (!status.isOK()) {
- okButton.setEnabled(false);
- updateStatus(status);
- return;
- }
- if (isDuplicate()) {
- return;
- }
- okButton.setEnabled(true);
- updateStatus(new Status(IStatus.OK, ProvUIActivator.PLUGIN_ID, IStatus.OK, "", null)); //$NON-NLS-1$
-
- }
-
- protected boolean isDuplicate() {
- String urlText = repoGroup.getURLString();
- for (int i = 0; i < knownRepositories.length; i++) {
- URL repURL = knownRepositories[i].getLocation();
- if (repURL != null && repURL.equals(urlText)) {
- setOkEnablement(false);
- this.updateStatus(new Status(IStatus.ERROR, ProvUIActivator.PLUGIN_ID, IStatus.OK, ProvUIMessages.AddRepositoryDialog_DuplicateURL, null));
- return true;
+ String urlText = url.getText().trim();
+ IStatus status = Status.OK_STATUS;
+ if (urlText.length() == 0) {
+ status = new Status(IStatus.ERROR, ProvUIActivator.PLUGIN_ID, 0, ProvUIMessages.RepositoryGroup_URLRequired, null);
+ } else {
+ for (int i = 0; i < knownRepositories.length; i++) {
+ URL repURL = knownRepositories[i].getLocation();
+ if (repURL != null && repURL.equals(urlText)) {
+ status = new Status(IStatus.ERROR, ProvUIActivator.PLUGIN_ID, IStatus.OK, ProvUIMessages.AddRepositoryDialog_DuplicateURL, null);
+ break;
+ }
}
}
- return false;
+ setOkEnablement(status.isOK());
+ updateStatus(status);
}
protected void updateButtonsEnableState(IStatus status) {
setOkEnablement(!status.matches(IStatus.ERROR));
}
- protected void setOkEnablement(boolean enable) {
+ private void setOkEnablement(boolean enable) {
if (okButton != null && !okButton.isDisposed())
okButton.setEnabled(enable);
}
-
}
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUImplementationGroup.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUImplementationGroup.java
deleted file mode 100644
index 4c1cc990f..000000000
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUImplementationGroup.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 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.equinox.p2.ui.dialogs;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
-import org.eclipse.equinox.p2.metadata.*;
-import org.eclipse.equinox.p2.ui.ProvUIActivator;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.osgi.framework.Version;
-
-/**
- * An IUImplementationGroup is a reusable UI component that displays and edits the
- * implementation-oriented properties of an IU. It can be used in
- * different dialogs that manipulate or define IU's.
- *
- * @since 3.4
- */
-public class IUImplementationGroup extends IUGroup {
-
- private Text id;
- private Text version;
- private Text namespace;
- private Text touchpointType;
- private List touchpointData;
- private List requiredCapabilities;
- private List providedCapabilities;
-
- public IUImplementationGroup(final Composite parent, IInstallableUnit iu, ModifyListener listener) {
- super(parent, iu, listener);
- }
-
- protected Composite createGroupComposite(Composite parent, ModifyListener listener) {
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- composite.setLayout(layout);
- GridData data = new GridData();
- data.widthHint = 350;
- composite.setLayoutData(data);
-
- // Grid data for text controls
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-
- // Grid data for controls spanning both columns
- GridData gd2 = new GridData(GridData.FILL_HORIZONTAL);
- gd2.horizontalSpan = 2;
-
- // Grid data for lists grabbing vertical space
- GridData gdList = new GridData(GridData.FILL_HORIZONTAL);
- GC gc = new GC(parent);
- gc.setFont(JFaceResources.getDialogFont());
- FontMetrics fontMetrics = gc.getFontMetrics();
- gc.dispose();
- gdList.horizontalSpan = 2;
- gdList.heightHint = Dialog.convertHeightInCharsToPixels(fontMetrics, 5);
-
- boolean editable = iuElement == null && listener != null;
-
- Label label = new Label(composite, SWT.NONE);
- label.setText(ProvUIMessages.IUGroup_ID);
- id = new Text(composite, SWT.BORDER);
- id.setLayoutData(gd);
- if (editable) {
- id.addModifyListener(listener);
- } else {
- id.setEditable(false);
- }
-
- label = new Label(composite, SWT.NONE);
- label.setText(ProvUIMessages.IUGroup_Version);
- version = new Text(composite, SWT.BORDER);
- version.setLayoutData(gd);
-
- label = new Label(composite, SWT.NONE);
- label.setText(ProvUIMessages.IUGroup_Namespace);
- namespace = new Text(composite, SWT.BORDER);
- namespace.setLayoutData(gd);
-
- label = new Label(composite, SWT.NONE);
- label.setText(ProvUIMessages.IUGroup_TouchpointType);
- touchpointType = new Text(composite, SWT.BORDER | SWT.READ_ONLY);
- touchpointType.setLayoutData(gd);
-
- label = new Label(composite, SWT.NONE);
- label.setText(ProvUIMessages.IUGroup_TouchpointData);
- label.setLayoutData(gd2);
- touchpointData = new List(composite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- touchpointData.setLayoutData(gdList);
-
- label = new Label(composite, SWT.NONE);
- label.setText(ProvUIMessages.IUGroup_RequiredCapabilities);
- label.setLayoutData(gd2);
- requiredCapabilities = new List(composite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- requiredCapabilities.setLayoutData(gdList);
-
- label = new Label(composite, SWT.NONE);
- label.setText(ProvUIMessages.IUGroup_ProvidedCapabilities);
- label.setLayoutData(gd2);
- providedCapabilities = new List(composite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- providedCapabilities.setLayoutData(gdList);
-
- if (editable) {
- id.addModifyListener(listener);
- version.addModifyListener(listener);
- namespace.addModifyListener(listener);
- touchpointType.addModifyListener(listener);
- } else {
- id.setEditable(false);
- version.setEditable(false);
- namespace.setEditable(false);
- touchpointType.setEditable(false);
- }
- initializeFields();
- return composite;
- }
-
- private void initializeFields() {
- IInstallableUnit iu = getIU();
- if (iu == null) {
- return;
- }
- id.setText(iu.getId());
- version.setText(iu.getVersion().toString());
-
- String value = iu.getProperty(IInstallableUnit.IU_NAMESPACE);
- if (value != null) {
- namespace.setText(value);
- }
- TouchpointType type = iu.getTouchpointType();
- if (type != null) {
- touchpointType.setText(type.getId());
- }
- TouchpointData[] data = iu.getTouchpointData();
- String[] items = new String[data.length];
- for (int i = 0; i < data.length; i++) {
- items[i] = data[i].toString();
- }
- touchpointData.setItems(items);
-
- RequiredCapability[] req = iu.getRequiredCapabilities();
- items = new String[req.length];
- for (int i = 0; i < req.length; i++) {
- items[i] = req[i].toString();
- }
- requiredCapabilities.setItems(items);
- ProvidedCapability[] prov = iu.getProvidedCapabilities();
- items = new String[prov.length];
- for (int i = 0; i < prov.length; i++) {
- items[i] = prov[i].toString();
- }
- providedCapabilities.setItems(items);
- }
-
- public void updateIU() {
- if (iuElement == null) {
- iuElement = new InstallableUnit();
- }
- // If it's not an InstallableUnit it is not editable
- if (iuElement instanceof InstallableUnit) {
- InstallableUnit unit = (InstallableUnit) iuElement;
- unit.setId(id.getText().trim());
- unit.setVersion(new Version(version.getText().trim()));
- unit.setProperty(IInstallableUnit.IU_NAMESPACE, namespace.getText().trim());
- // TODO this is bogus because we don't let user provide a touchpoint
- // type version
- unit.setTouchpointType(new TouchpointType(touchpointType.getText().trim(), new Version("1.0.0"))); //$NON-NLS-1$
- }
- }
-
- /**
- * Return a status indicating the validity of the profile info
- *
- * @return a status indicating the validity of the profile info
- */
- public IStatus verify() {
- if (id.getText().trim().length() == 0) {
- return new Status(IStatus.ERROR, ProvUIActivator.PLUGIN_ID, 0, ProvUIMessages.IUGroup_IU_ID_Required, null);
- }
-
- // TODO what kind of validation do we perform for other properties?
- return new Status(IStatus.OK, ProvUIActivator.PLUGIN_ID, IStatus.OK, "", null); //$NON-NLS-1$
-
- }
-}
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUImplementationPropertyPage.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUImplementationPropertyPage.java
deleted file mode 100644
index 19283aa7f..000000000
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUImplementationPropertyPage.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 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.equinox.p2.ui.dialogs;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
-import org.eclipse.equinox.p2.metadata.InstallableUnit;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.dialogs.PropertyPage;
-
-/**
- * PropertyPage that shows an IU's properties
- *
- * @since 3.4
- */
-public class IUImplementationPropertyPage extends PropertyPage {
-
- private IUImplementationGroup iuGroup;
-
- protected Control createContents(Composite parent) {
- InstallableUnit iu = (InstallableUnit) getElement().getAdapter(InstallableUnit.class);
- if (iu == null) {
- Label label = new Label(parent, SWT.DEFAULT);
- label.setText(ProvUIMessages.IUPropertyPage_NoIUSelected);
- }
- iuGroup = new IUImplementationGroup(parent, iu, new ModifyListener() {
- public void modifyText(ModifyEvent event) {
- verifyComplete();
- }
- });
- Dialog.applyDialogFont(iuGroup.getComposite());
- verifyComplete();
- return iuGroup.getComposite();
- }
-
- public boolean performOk() {
- return true;
- }
-
- void verifyComplete() {
- if (iuGroup == null) {
- return;
- }
- IStatus status = iuGroup.verify();
- setValid(status.isOK());
- }
-}
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryGroup.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryGroup.java
index 2a989a4be..f5de1edbe 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryGroup.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryGroup.java
@@ -10,13 +10,12 @@
*******************************************************************************/
package org.eclipse.equinox.p2.ui.dialogs;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.*;
import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
import org.eclipse.equinox.p2.core.repository.IRepository;
import org.eclipse.equinox.p2.ui.ProvUIActivator;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
+import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
@@ -30,21 +29,21 @@ import org.eclipse.swt.widgets.*;
*/
public class RepositoryGroup {
- private static final String EXTENSION = "*.xml"; //$NON-NLS-1$
private Composite composite;
Text name;
Text url;
IRepository repository;
- public RepositoryGroup(Composite parent, IRepository repository, ModifyListener listener, boolean chooseFile, String dirPath, String fileName) {
+ public RepositoryGroup(Composite parent, IRepository repository, ModifyListener listener) {
+ Assert.isNotNull(repository);
this.repository = repository;
- createGroupComposite(parent, listener, chooseFile, dirPath, fileName);
+ createGroupComposite(parent, listener);
}
- protected Composite createGroupComposite(final Composite parent, ModifyListener listener, final boolean chooseFile, final String dirPath, final String fileName) {
+ protected Composite createGroupComposite(final Composite parent, ModifyListener listener) {
Composite comp = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
- layout.numColumns = 3;
+ layout.numColumns = 2;
comp.setLayout(layout);
GridData data = new GridData();
data.widthHint = 350;
@@ -55,55 +54,14 @@ public class RepositoryGroup {
name = new Text(comp, SWT.BORDER);
data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
name.setLayoutData(data);
- name.addModifyListener(listener);
- boolean readOnlyInfo = (repository != null && !repository.isModifiable());
- if (readOnlyInfo) {
- name.setEditable(false);
- }
+ name.setEditable(repository.isModifiable());
Label urlLabel = new Label(comp, SWT.NONE);
urlLabel.setText(ProvUIMessages.RepositoryGroup_RepositoryURLFieldLabel);
-
url = new Text(comp, SWT.BORDER);
url.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- if (repository == null) {
- data = new GridData(GridData.FILL_HORIZONTAL);
- url.setLayoutData(data);
- url.addModifyListener(listener);
-
- // add a button for setting a local repository
- Button locationButton = new Button(comp, SWT.PUSH);
- locationButton.setText(ProvUIMessages.RepositoryGroup_Browse);
- locationButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- String path;
- if (chooseFile) {
- FileDialog dialog = new FileDialog(parent.getShell(), SWT.APPLICATION_MODAL);
- dialog.setText(ProvUIMessages.RepositoryGroup_RepositoryFile);
- dialog.setFileName(fileName);
- dialog.setFilterPath(dirPath);
- dialog.setFilterExtensions(new String[] {EXTENSION});
- path = dialog.open();
- } else {
- DirectoryDialog dialog = new DirectoryDialog(parent.getShell(), SWT.APPLICATION_MODAL);
- dialog.setMessage(ProvUIMessages.RepositoryGroup_SelectRepositoryDirectory);
- dialog.setFilterPath(dirPath);
- path = dialog.open();
- }
- if (path != null) {
- url.setText("file:" + path.toLowerCase()); //$NON-NLS-1$
- }
- }
- });
-
- } else {
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- url.setLayoutData(data);
- url.setEditable(false);
- }
+ url.setEditable(repository.isModifiable());
initializeFields();
return comp;
@@ -112,7 +70,6 @@ public class RepositoryGroup {
private void initializeFields() {
if (repository == null) {
url.setText("http://"); //$NON-NLS-1$
- name.setText(""); //$NON-NLS-1$
} else {
url.setText(repository.getLocation().toExternalForm());
name.setText(repository.getName());
@@ -123,7 +80,6 @@ public class RepositoryGroup {
if (url.getText().trim().length() == 0) {
return new Status(IStatus.ERROR, ProvUIActivator.PLUGIN_ID, 0, ProvUIMessages.RepositoryGroup_URLRequired, null);
}
- // blank name is ok
return new Status(IStatus.OK, ProvUIActivator.PLUGIN_ID, IStatus.OK, "", null); //$NON-NLS-1$
}
@@ -137,16 +93,11 @@ public class RepositoryGroup {
return url.getText().trim();
}
- /**
- * Get the repository name string as shown in the dialog.
- *
- * @return the repository name.
- */
- public String getRepositoryName() {
- return name.getText().trim();
- }
-
public Composite getComposite() {
return composite;
}
+
+ protected IRepository getRepository() {
+ return repository;
+ }
}
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryImplementationGroup.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryImplementationGroup.java
deleted file mode 100644
index d6fb366b5..000000000
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryImplementationGroup.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 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.equinox.p2.ui.dialogs;
-
-import java.util.Map;
-import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
-import org.eclipse.equinox.p2.core.repository.IRepository;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.*;
-
-/**
- * A RepositoryGroup is a reusable UI component that allows repository
- * attributes to be displayed and edited in different UI dialogs.
- *
- * @since 3.4
- *
- */
-public class RepositoryImplementationGroup extends RepositoryGroup {
-
- Table propertiesTable;
-
- public RepositoryImplementationGroup(final Composite parent, IRepository repository, ModifyListener listener, final boolean chooseFile, final String dirPath, final String fileName) {
- super(parent, repository, listener, chooseFile, dirPath, fileName);
- }
-
- protected Composite createGroupComposite(final Composite parent, ModifyListener listener, final boolean chooseFile, final String dirPath, final String fileName) {
- Composite comp = super.createGroupComposite(parent, listener, chooseFile, dirPath, fileName);
- Label propertiesLabel = new Label(comp, SWT.NONE);
- propertiesLabel.setText(ProvUIMessages.RepositoryGroup_PropertiesLabel);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 3;
- propertiesLabel.setLayoutData(data);
-
- propertiesTable = new Table(comp, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- data = new GridData(GridData.FILL_BOTH);
- data.horizontalSpan = 3;
- data.grabExcessVerticalSpace = true;
- propertiesTable.setLayoutData(data);
- propertiesTable.setHeaderVisible(true);
- TableColumn nameColumn = new TableColumn(propertiesTable, SWT.NONE);
- nameColumn.setText(ProvUIMessages.RepositoryGroup_NameColumnLabel);
- TableColumn valueColumn = new TableColumn(propertiesTable, SWT.NONE);
- valueColumn.setText(ProvUIMessages.RepositoryGroup_ValueColumnLabel);
-
- initializeTable();
-
- nameColumn.pack();
- valueColumn.pack();
- return comp;
- }
-
- private void initializeTable() {
- if (repository != null) {
- Map repoProperties = repository.getProperties();
- if (repoProperties != null) {
- String[] propNames = (String[]) repoProperties.keySet().toArray(new String[repoProperties.size()]);
- for (int i = 0; i < propNames.length; i++) {
- TableItem item = new TableItem(propertiesTable, SWT.NULL);
- item.setText(new String[] {propNames[i], repoProperties.get(propNames[i]).toString()});
- }
- }
- }
- }
-}
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryImplementationPropertyPage.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryImplementationPropertyPage.java
deleted file mode 100644
index a949c3685..000000000
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryImplementationPropertyPage.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 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.equinox.p2.ui.dialogs;
-
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * PropertyPage that shows a repository's properties
- *
- * @since 3.4
- */
-public class RepositoryImplementationPropertyPage extends RepositoryPropertyPage {
-
- protected RepositoryGroup createRepositoryGroup(Composite parent) {
- return new RepositoryImplementationGroup(parent, repository, new ModifyListener() {
- public void modifyText(ModifyEvent event) {
- verifyComplete();
- }
- }, false, null, null); // these don't matter since repo already
- }
-}
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryPropertyPage.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryPropertyPage.java
index 0e782b459..efa775282 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryPropertyPage.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/RepositoryPropertyPage.java
@@ -13,7 +13,6 @@ package org.eclipse.equinox.p2.ui.dialogs;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
import org.eclipse.equinox.p2.core.repository.IRepository;
-import org.eclipse.equinox.p2.ui.operations.ProvisioningUtil;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
@@ -51,21 +50,10 @@ public class RepositoryPropertyPage extends PropertyPage {
public void modifyText(ModifyEvent event) {
verifyComplete();
}
- }, false, null, null); // these don't matter since repo already
+ });
}
- public boolean performOk() {
- String nameValue = repoGroup.getRepositoryName();
- if (repository != null && nameValue != null && !nameValue.equals(repository.getName())) {
- // TODO HACK - if I could get event notification from core, I
- // wouldn't have to call the
- // util class
- ProvisioningUtil.setRepositoryName(repository, nameValue);
- }
- return true;
- }
-
- void verifyComplete() {
+ protected void verifyComplete() {
if (repoGroup == null) {
return;
}
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/UpdateAndInstallGroup.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/UpdateAndInstallGroup.java
index db9eefcff..b23dbc562 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/UpdateAndInstallGroup.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/UpdateAndInstallGroup.java
@@ -258,14 +258,6 @@ public class UpdateAndInstallGroup {
uninstallButton.setData(BUTTONACTION, new UninstallAction(installedIUViewer, profile, null, parent.getShell()));
updateButton = createVerticalButton(composite, ProvUIMessages.UpdateIUCommandLabel, false);
updateButton.setData(BUTTONACTION, new UpdateAction(installedIUViewer, profile, null, parent.getShell()));
- if (repositoryManipulator != null) {
- Button repoButton = createVerticalButton(composite, repositoryManipulator.getLabel(), false);
- repoButton.setData(BUTTONACTION, new Action() {
- public void runWithEvent(Event event) {
- repositoryManipulator.manipulateRepositories(getControl().getShell());
- }
- });
- }
if (profileChooser != null) {
Button profileButton = createVerticalButton(composite, profileChooser.getLabel(), false);
profileButton.setData(BUTTONACTION, new Action() {
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddArtifactRepositoryOperation.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddArtifactRepositoryOperation.java
index c84a292f0..721001cef 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddArtifactRepositoryOperation.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddArtifactRepositoryOperation.java
@@ -24,8 +24,8 @@ public class AddArtifactRepositoryOperation extends RepositoryOperation {
boolean added = false;
- public AddArtifactRepositoryOperation(String label, URL url, String name) {
- super(label, new URL[] {url}, new String[] {name});
+ public AddArtifactRepositoryOperation(String label, URL url) {
+ super(label, new URL[] {url});
}
protected IStatus doExecute(IProgressMonitor monitor, IAdaptable uiInfo) throws ProvisionException {
@@ -34,9 +34,6 @@ public class AddArtifactRepositoryOperation extends RepositoryOperation {
if (repo == null) {
return failureStatus();
}
- if (names[i] != null) {
- ProvisioningUtil.setRepositoryName(repo, names[i]);
- }
}
added = true;
return okStatus();
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddColocatedRepositoryOperation.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddColocatedRepositoryOperation.java
index 1c5f4d243..eeec342ce 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddColocatedRepositoryOperation.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddColocatedRepositoryOperation.java
@@ -26,8 +26,8 @@ public class AddColocatedRepositoryOperation extends RepositoryOperation {
boolean added = false;
- public AddColocatedRepositoryOperation(String label, URL url, String name) {
- super(label, new URL[] {url}, new String[] {name});
+ public AddColocatedRepositoryOperation(String label, URL url) {
+ super(label, new URL[] {url});
}
protected IStatus doExecute(IProgressMonitor monitor, IAdaptable uiInfo) throws ProvisionException {
@@ -37,9 +37,6 @@ public class AddColocatedRepositoryOperation extends RepositoryOperation {
if (repo == null) {
return failureStatus();
}
- if (names[i] != null) {
- ProvisioningUtil.setRepositoryName(repo, names[i]);
- }
repo = ProvisioningUtil.addArtifactRepository(ColocatedRepositoryUtil.makeArtifactRepositoryURL(urls[i]), monitor);
if (repo == null) {
// remove the metadata repo we just added
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddMetadataRepositoryOperation.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddMetadataRepositoryOperation.java
index 745ea29a0..9f46428ff 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddMetadataRepositoryOperation.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/AddMetadataRepositoryOperation.java
@@ -24,8 +24,8 @@ public class AddMetadataRepositoryOperation extends RepositoryOperation {
boolean added = false;
- public AddMetadataRepositoryOperation(String label, URL url, String name) {
- super(label, new URL[] {url}, new String[] {name});
+ public AddMetadataRepositoryOperation(String label, URL url) {
+ super(label, new URL[] {url});
}
protected IStatus doExecute(IProgressMonitor monitor, IAdaptable uiInfo) throws ProvisionException {
@@ -34,9 +34,6 @@ public class AddMetadataRepositoryOperation extends RepositoryOperation {
if (repo == null) {
return failureStatus();
}
- if (names[i] != null) {
- ProvisioningUtil.setRepositoryName(repo, names[i]);
- }
}
added = true;
return okStatus();
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/ProvisioningUtil.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/ProvisioningUtil.java
index b59d73c19..033f6a86b 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/ProvisioningUtil.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/ProvisioningUtil.java
@@ -12,15 +12,13 @@
package org.eclipse.equinox.p2.ui.operations;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.Iterator;
+import java.util.*;
import org.eclipse.core.runtime.*;
import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
import org.eclipse.equinox.p2.artifact.repository.IArtifactRepository;
import org.eclipse.equinox.p2.artifact.repository.IArtifactRepositoryManager;
import org.eclipse.equinox.p2.core.ProvisionException;
import org.eclipse.equinox.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.p2.core.repository.IRepository;
import org.eclipse.equinox.p2.director.IPlanner;
import org.eclipse.equinox.p2.director.ProvisioningPlan;
import org.eclipse.equinox.p2.engine.*;
@@ -31,7 +29,7 @@ import org.eclipse.equinox.p2.metadata.repository.IMetadataRepository;
import org.eclipse.equinox.p2.metadata.repository.IMetadataRepositoryManager;
import org.eclipse.equinox.p2.query.CompoundIterator;
import org.eclipse.equinox.p2.query.Query;
-import org.eclipse.equinox.p2.ui.IProvisioningProperties;
+import org.eclipse.equinox.p2.ui.IProvisioningListener;
import org.eclipse.equinox.p2.ui.ProvUIActivator;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.osgi.service.resolver.VersionRange;
@@ -60,22 +58,26 @@ public class ProvisioningUtil {
IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(ProvUIActivator.getContext(), IMetadataRepositoryManager.class.getName());
if (manager == null)
throw new ProvisionException(ProvUIMessages.ProvisioningUtil_NoRepositoryManager);
- IMetadataRepository repo = null;
- repo = manager.loadRepository(location, monitor);
+ IMetadataRepository repo = manager.loadRepository(location, monitor);
if (repo == null) {
throw new ProvisionException(NLS.bind(ProvUIMessages.ProvisioningUtil_AddRepositoryFailure, location.toExternalForm()));
}
- PropertyChangeEvent event = new PropertyChangeEvent(repo, IProvisioningProperties.REPO_ADDED, null, null);
+ EventObject event = new EventObject(IProvisioningListener.REPO_ADDED);
ProvUIActivator.getDefault().notifyListeners(event);
return repo;
}
- public static IMetadataRepository getMetadataRepository(URL location, IProgressMonitor monitor) throws ProvisionException {
+ public static IMetadataRepository createMetadataRepository(String name, String type, URL location, IProgressMonitor monitor) throws ProvisionException {
IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(ProvUIActivator.getContext(), IMetadataRepositoryManager.class.getName());
- if (manager == null) {
+ if (manager == null)
throw new ProvisionException(ProvUIMessages.ProvisioningUtil_NoRepositoryManager);
+ IMetadataRepository repo = manager.createRepository(location, name, type);
+ if (repo == null) {
+ throw new ProvisionException(NLS.bind(ProvUIMessages.ProvisioningUtil_CreateRepositoryFailure, location.toExternalForm()));
}
- return manager.getRepository(location);
+ EventObject event = new EventObject(IProvisioningListener.REPO_ADDED);
+ ProvUIActivator.getDefault().notifyListeners(event);
+ return repo;
}
public static void removeMetadataRepository(URL location, IProgressMonitor monitor) throws ProvisionException {
@@ -86,7 +88,7 @@ public class ProvisioningUtil {
IMetadataRepository repo = manager.getRepository(location);
if (repo != null)
manager.removeRepository(repo);
- PropertyChangeEvent event = new PropertyChangeEvent(repo, IProvisioningProperties.REPO_REMOVED, null, null);
+ PropertyChangeEvent event = new PropertyChangeEvent(repo, IProvisioningListener.REPO_REMOVED, null, null);
ProvUIActivator.getDefault().notifyListeners(event);
}
@@ -96,16 +98,29 @@ public class ProvisioningUtil {
if (manager == null) {
throw new ProvisionException(ProvUIMessages.ProvisioningUtil_NoRepositoryManager);
}
- // TODO need to get rid of this string constant. see bug #196862
- String repositoryName = location + " - artifacts"; //$NON-NLS-1$
- IArtifactRepository repository = manager.createRepository(location, repositoryName, "org.eclipse.equinox.p2.artifact.repository.simpleRepository"); //$NON-NLS-1$
- if (repository == null) {
+ IArtifactRepository repo = manager.loadRepository(location, monitor);
+ if (repo == null) {
throw new ProvisionException(NLS.bind(ProvUIMessages.ProvisioningUtil_AddRepositoryFailure, location));
}
- PropertyChangeEvent event = new PropertyChangeEvent(repository, IProvisioningProperties.REPO_ADDED, null, null);
+ EventObject event = new EventObject(IProvisioningListener.REPO_ADDED);
ProvUIActivator.getDefault().notifyListeners(event);
- return repository;
+ return repo;
+ }
+
+ public static IArtifactRepository createArtifactRepository(String name, String type, URL location, IProgressMonitor monitor) throws ProvisionException {
+ IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(ProvUIActivator.getContext(), IArtifactRepositoryManager.class.getName());
+ if (manager == null) {
+ throw new ProvisionException(ProvUIMessages.ProvisioningUtil_NoRepositoryManager);
+ }
+ IArtifactRepository repo = manager.createRepository(location, name, type);
+ if (repo == null) {
+ throw new ProvisionException(NLS.bind(ProvUIMessages.ProvisioningUtil_CreateRepositoryFailure, location));
+ }
+ EventObject event = new EventObject(IProvisioningListener.REPO_ADDED);
+ ProvUIActivator.getDefault().notifyListeners(event);
+
+ return repo;
}
public static void removeArtifactRepository(URL location, IProgressMonitor monitor) throws ProvisionException {
@@ -118,7 +133,7 @@ public class ProvisioningUtil {
IArtifactRepository repo = repos[i];
if (repo.getLocation().equals(location)) {
manager.removeRepository(repo);
- PropertyChangeEvent event = new PropertyChangeEvent(repo, IProvisioningProperties.REPO_REMOVED, null, null);
+ PropertyChangeEvent event = new PropertyChangeEvent(repo, IProvisioningListener.REPO_REMOVED, null, null);
ProvUIActivator.getDefault().notifyListeners(event);
return;
@@ -137,17 +152,6 @@ public class ProvisioningUtil {
return new IArtifactRepository[0];
}
- public static IArtifactRepository getArtifactRepository(URL repoURL, IProgressMonitor monitor) throws ProvisionException {
- IArtifactRepository[] repositories = getArtifactRepositories(monitor);
- if (repositories == null)
- return null;
- for (int i = 0; i < repositories.length; i++) {
- if (repoURL.equals(repositories[i].getLocation()))
- return repositories[i];
- }
- return null;
- }
-
public static void addProfile(Profile profile, IProgressMonitor monitor) throws ProvisionException {
IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper.getService(ProvUIActivator.getContext(), IProfileRegistry.class.getName());
if (profileRegistry == null) {
@@ -308,19 +312,6 @@ public class ProvisioningUtil {
return null;
}
- // TODO This method is only in the util class so that I can generate an
- // event. If the setName API generated this event, callers could just do
- // it directly (and I could make this class/package truly internal....)
- public static IStatus setRepositoryName(IRepository repository, String name) {
- if (repository.isModifiable()) {
- repository.setName(name);
- PropertyChangeEvent event = new PropertyChangeEvent(repository, IProvisioningProperties.REPO_NAME, null, name);
- ProvUIActivator.getDefault().notifyListeners(event);
- return Status.OK_STATUS;
- }
- return error(ProvUIMessages.ProvisioningUtil_RepoNotWritable);
- }
-
public static IStatus performInstall(ProvisioningPlan plan, Profile profile, IInstallableUnit[] installRoots, IProgressMonitor monitor) throws ProvisionException {
IStatus engineResult = performProvisioningPlan(plan, profile, monitor);
if (engineResult.isOK()) {
@@ -335,8 +326,12 @@ public class ProvisioningUtil {
return getEngine().perform(profile, new DefaultPhaseSet(), plan.getOperands(), monitor);
}
- private static IStatus error(String message) {
- return new Status(IStatus.ERROR, ProvUIActivator.PLUGIN_ID, message);
+ private static IMetadataRepository getMetadataRepository(URL location, IProgressMonitor monitor) throws ProvisionException {
+ IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(ProvUIActivator.getContext(), IMetadataRepositoryManager.class.getName());
+ if (manager == null) {
+ throw new ProvisionException(ProvUIMessages.ProvisioningUtil_NoRepositoryManager);
+ }
+ return manager.getRepository(location);
}
private static Engine getEngine() throws ProvisionException {
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveArtifactRepositoryOperation.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveArtifactRepositoryOperation.java
index d89fce0d2..8e216fd5c 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveArtifactRepositoryOperation.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveArtifactRepositoryOperation.java
@@ -25,10 +25,9 @@ public class RemoveArtifactRepositoryOperation extends RepositoryOperation {
private boolean removed = false;
public RemoveArtifactRepositoryOperation(String label, IArtifactRepository[] repos) {
- super(label, new URL[repos.length], new String[repos.length]);
+ super(label, new URL[repos.length]);
for (int i = 0; i < repos.length; i++) {
urls[i] = repos[i].getLocation();
- names[i] = repos[i].getName();
}
}
@@ -64,9 +63,6 @@ public class RemoveArtifactRepositoryOperation extends RepositoryOperation {
if (repo == null) {
return failureStatus();
}
- if (names[i] != null) {
- ProvisioningUtil.setRepositoryName(repo, names[i]);
- }
}
removed = false;
return okStatus();
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveColocatedRepositoryOperation.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveColocatedRepositoryOperation.java
index 39d44ea98..01a01b677 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveColocatedRepositoryOperation.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveColocatedRepositoryOperation.java
@@ -27,10 +27,9 @@ public class RemoveColocatedRepositoryOperation extends RepositoryOperation {
private boolean removed = false;
public RemoveColocatedRepositoryOperation(String label, IMetadataRepository[] repos) {
- super(label, new URL[repos.length], new String[repos.length]);
+ super(label, new URL[repos.length]);
for (int i = 0; i < repos.length; i++) {
urls[i] = ColocatedRepositoryUtil.makeColocatedRepositoryURL(repos[i].getLocation());
- names[i] = repos[i].getName();
}
}
@@ -68,10 +67,6 @@ public class RemoveColocatedRepositoryOperation extends RepositoryOperation {
if (repo == null) {
return failureStatus();
}
- if (names[i] != null) {
- ProvisioningUtil.setRepositoryName(repo, names[i]);
- }
-
repo = ProvisioningUtil.addArtifactRepository(ColocatedRepositoryUtil.makeArtifactRepositoryURL(urls[i]), monitor);
if (repo == null) {
// remove the metadata repo we just added
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveMetadataRepositoryOperation.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveMetadataRepositoryOperation.java
index cae6d91e7..9b9bda0ad 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveMetadataRepositoryOperation.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RemoveMetadataRepositoryOperation.java
@@ -25,10 +25,9 @@ public class RemoveMetadataRepositoryOperation extends RepositoryOperation {
private boolean removed = false;
public RemoveMetadataRepositoryOperation(String label, IMetadataRepository[] repos) {
- super(label, new URL[repos.length], new String[repos.length]);
+ super(label, new URL[repos.length]);
for (int i = 0; i < repos.length; i++) {
urls[i] = repos[i].getLocation();
- names[i] = repos[i].getName();
}
}
@@ -64,9 +63,6 @@ public class RemoveMetadataRepositoryOperation extends RepositoryOperation {
if (repo == null) {
return failureStatus();
}
- if (names[i] != null) {
- ProvisioningUtil.setRepositoryName(repo, names[i]);
- }
}
removed = false;
return okStatus();
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RepositoryOperation.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RepositoryOperation.java
index 109a80c01..c4e460ccb 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RepositoryOperation.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/operations/RepositoryOperation.java
@@ -20,12 +20,10 @@ import java.net.URL;
abstract class RepositoryOperation extends UndoableProvisioningOperation {
URL[] urls;
- String[] names;
- RepositoryOperation(String label, URL[] urls, String[] names) {
+ RepositoryOperation(String label, URL[] urls) {
super(label);
this.urls = urls;
- this.names = names;
}
public boolean canExecute() {
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/viewers/StructuredViewerProvisioningListener.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/viewers/StructuredViewerProvisioningListener.java
index b9f02b168..0cb7d2390 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/viewers/StructuredViewerProvisioningListener.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/viewers/StructuredViewerProvisioningListener.java
@@ -14,9 +14,7 @@ package org.eclipse.equinox.p2.ui.viewers;
import java.util.EventObject;
import org.eclipse.equinox.p2.core.eventbus.SynchronousProvisioningListener;
import org.eclipse.equinox.p2.engine.*;
-import org.eclipse.equinox.p2.ui.IProvisioningProperties;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.equinox.p2.ui.IProvisioningListener;
import org.eclipse.jface.viewers.StructuredViewer;
import org.eclipse.swt.widgets.Display;
@@ -26,7 +24,7 @@ import org.eclipse.swt.widgets.Display;
*
* @since 3.4
*/
-public class StructuredViewerProvisioningListener implements SynchronousProvisioningListener, IPropertyChangeListener {
+public class StructuredViewerProvisioningListener implements SynchronousProvisioningListener, IProvisioningListener {
// TODO this should be replaced with actual event topic ids from the event API once they are defined
// TODO the IPropertyChangeListener implementation should also disappear once repo events are supported
@@ -65,20 +63,9 @@ public class StructuredViewerProvisioningListener implements SynchronousProvisio
viewer.refresh();
}
});
- }
- }
-
- public void propertyChange(final PropertyChangeEvent event) {
- // Currently we only support repo events
- if ((eventTypes & PROV_EVENT_REPOSITORY) == PROV_EVENT_REPOSITORY) {
- String property = event.getProperty();
- if (property.equals(IProvisioningProperties.REPO_NAME)) {
- display.asyncExec(new Runnable() {
- public void run() {
- viewer.update(event.getSource(), null);
- }
- });
- } else if (property.equals(IProvisioningProperties.REPO_ADDED) || (property.equals(IProvisioningProperties.REPO_REMOVED))) {
+ } else if ((o.getSource() instanceof String) && (eventTypes & PROV_EVENT_REPOSITORY) == PROV_EVENT_REPOSITORY) {
+ String name = (String) o.getSource();
+ if (name.equals(IProvisioningListener.REPO_ADDED) || (name.equals(IProvisioningListener.REPO_REMOVED))) {
display.asyncExec(new Runnable() {
public void run() {
viewer.refresh();

Back to the top