Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2004-05-08 01:47:05 +0000
committerMichael Valenta2004-05-08 01:47:05 +0000
commit6200772ffe557a76279198bbbdb65b0b2b845ad3 (patch)
tree2fcd2451032f19ec9616e5fcc823b2f0c61e8925
parent46e839fd34ac07e7b920708208850504fd054ec6 (diff)
downloadeclipse.platform.team-6200772ffe557a76279198bbbdb65b0b2b845ad3.tar.gz
eclipse.platform.team-6200772ffe557a76279198bbbdb65b0b2b845ad3.tar.xz
eclipse.platform.team-6200772ffe557a76279198bbbdb65b0b2b845ad3.zip
Updated sharing wizard and optimized participant roots
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CompareParticipant.java2
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizeParticipant.java2
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceSynchronizeParticipant.java2
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java7
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizardSyncPage.java31
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ScopableSubscriberParticipant.java31
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/SubscriberParticipant.java59
7 files changed, 79 insertions, 55 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CompareParticipant.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CompareParticipant.java
index df1e1b7fe..7cb6c5daa 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CompareParticipant.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CompareParticipant.java
@@ -75,7 +75,7 @@ public class CompareParticipant extends CVSParticipant implements IPropertyChang
* @see org.eclipse.team.ui.synchronize.subscriber.SubscriberParticipant#setSubscriber(org.eclipse.team.core.subscribers.Subscriber)
*/
protected void setSubscriber(Subscriber subscriber) {
- super.setSubscriber(subscriber);
+ super.setSubscriber(subscriber, null);
if (CVSUIPlugin.getPlugin().getPluginPreferences().getBoolean(ICVSUIConstants.PREF_CONSIDER_CONTENTS)) {
setSyncInfoFilter(contentComparison);
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizeParticipant.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizeParticipant.java
index 48544b664..e5a88e3cd 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizeParticipant.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizeParticipant.java
@@ -108,7 +108,7 @@ public class MergeSynchronizeParticipant extends CVSParticipant {
* @see org.eclipse.team.ui.sync.SubscriberParticipant#setSubscriber(org.eclipse.team.core.subscribers.TeamSubscriber)
*/
public void setSubscriber(Subscriber subscriber) {
- super.setSubscriber(subscriber);
+ super.setSubscriber(subscriber, null);
try {
ISynchronizeParticipantDescriptor descriptor = TeamUI.getSynchronizeManager().getParticipantDescriptor(CVSMergeSubscriber.ID);
setInitializationData(descriptor);
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceSynchronizeParticipant.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceSynchronizeParticipant.java
index f2b3d44a2..0920ea2ed 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceSynchronizeParticipant.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/WorkspaceSynchronizeParticipant.java
@@ -128,7 +128,7 @@ public class WorkspaceSynchronizeParticipant extends ScopableSubscriberParticipa
public WorkspaceSynchronizeParticipant(IResource[] resources) {
super(resources);
- setSubscriber(CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber());
+ setSubscriber(CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber(), resources);
}
/* (non-Javadoc)
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java
index 1c26ec461..16fdc31ae 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java
@@ -34,6 +34,7 @@ import org.eclipse.team.internal.ccvs.ui.*;
import org.eclipse.team.internal.ccvs.ui.Policy;
import org.eclipse.team.internal.ccvs.ui.merge.ProjectElement;
import org.eclipse.team.internal.ccvs.ui.operations.*;
+import org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceSynchronizeParticipant;
import org.eclipse.team.ui.IConfigurationWizard;
import org.eclipse.ui.IWorkbench;
@@ -500,7 +501,7 @@ public class SharingWizard extends Wizard implements IConfigurationWizard, ICVSW
} else {
shareProject(Policy.subMonitorFor(monitor, 50));
}
- CVSUIPlugin.getPlugin().getCvsWorkspaceSynchronizeParticipant().refreshNow(new IResource[] {project}, Policy.bind("ShareProjectOperation.1"), Policy.subMonitorFor(monitor, 50)); //$NON-NLS-1$
+ getParticipant().refreshNow(new IResource[] {project}, Policy.bind("ShareProjectOperation.1"), Policy.subMonitorFor(monitor, 50)); //$NON-NLS-1$
if (monitor.isCanceled()) {
throw new InterruptedException();
}
@@ -524,4 +525,8 @@ public class SharingWizard extends Wizard implements IConfigurationWizard, ICVSW
tagPage.setFolder(remote);
tagPage.setDescription(Policy.bind("SharingWizard.25", remote.getRepositoryRelativePath())); //$NON-NLS-1$
}
+
+ private WorkspaceSynchronizeParticipant getParticipant() {
+ return syncPage.getParticipant();
+ }
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizardSyncPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizardSyncPage.java
index c01530387..20535b7f9 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizardSyncPage.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizardSyncPage.java
@@ -12,7 +12,11 @@ package org.eclipse.team.internal.ccvs.ui.wizards;
import org.eclipse.compare.CompareConfiguration;
import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.*;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.resource.ImageDescriptor;
@@ -22,18 +26,20 @@ import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.team.core.ITeamStatus;
import org.eclipse.team.core.TeamStatus;
-import org.eclipse.team.core.synchronize.*;
+import org.eclipse.team.core.synchronize.ISyncInfoSetChangeEvent;
+import org.eclipse.team.core.synchronize.ISyncInfoSetChangeListener;
+import org.eclipse.team.core.synchronize.SyncInfoSet;
import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
import org.eclipse.team.internal.ccvs.ui.Policy;
import org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceSynchronizeParticipant;
-import org.eclipse.team.internal.ui.TeamUIPlugin;
import org.eclipse.team.ui.synchronize.ISynchronizePageConfiguration;
import org.eclipse.team.ui.synchronize.ParticipantPageSaveablePart;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
import org.eclipse.ui.part.PageBook;
/**
@@ -134,14 +140,10 @@ public class SharingWizardSyncPage extends CVSWizardPage implements ISyncInfoSet
}
private ParticipantPageSaveablePart createCompareInput() {
- WorkspaceSynchronizeParticipant participant = CVSUIPlugin.getPlugin().getCvsWorkspaceSynchronizeParticipant();
+ WorkspaceSynchronizeParticipant participant = new WorkspaceSynchronizeParticipant(new IResource[] { project });
configuration = participant.createPageConfiguration();
configuration.setProperty(ISynchronizePageConfiguration.P_TOOLBAR_MENU, new String[] {SharingWizardPageActionGroup.ACTION_GROUP});
configuration.addActionContribution(new SharingWizardPageActionGroup());
-
- IWorkingSetManager manager = TeamUIPlugin.getPlugin().getWorkbench().getWorkingSetManager();
- IWorkingSet newSet = manager.createWorkingSet("sharing wizard", new IAdaptable[] {project});
- configuration.setWorkingSet(newSet);
configuration.setRunnableContext(getContainer());
CompareConfiguration cc = new CompareConfiguration();
@@ -156,7 +158,8 @@ public class SharingWizardSyncPage extends CVSWizardPage implements ISyncInfoSet
* @see org.eclipse.jface.dialogs.IDialogPage#dispose()
*/
public void dispose() {
- input.dispose();
+ if (input != null)
+ input.dispose();
}
/* (non-Javadoc)
@@ -206,4 +209,8 @@ public class SharingWizardSyncPage extends CVSWizardPage implements ISyncInfoSet
public void showError(TeamStatus status) {
infos.addError(status);
}
+
+ public WorkspaceSynchronizeParticipant getParticipant() {
+ return (WorkspaceSynchronizeParticipant)configuration.getParticipant();
+ }
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ScopableSubscriberParticipant.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ScopableSubscriberParticipant.java
index fca872922..501caad65 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ScopableSubscriberParticipant.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ScopableSubscriberParticipant.java
@@ -20,9 +20,7 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.team.core.subscribers.Subscriber;
-import org.eclipse.team.internal.core.subscribers.SyncInfoWorkingSetFilter;
import org.eclipse.team.internal.ui.TeamUIPlugin;
-import org.eclipse.team.internal.ui.Utils;
import org.eclipse.team.ui.synchronize.ISynchronizeParticipantDescriptor;
import org.eclipse.team.ui.synchronize.SubscriberParticipant;
import org.eclipse.ui.IMemento;
@@ -96,15 +94,10 @@ public abstract class ScopableSubscriberParticipant extends SubscriberParticipan
* @see org.eclipse.team.ui.synchronize.subscriber.SubscriberParticipant#setSubscriber(org.eclipse.team.core.subscribers.Subscriber)
*/
protected void setSubscriber(Subscriber subscriber) {
- super.setSubscriber(subscriber);
if (this.resources != null && isSameResources(resources, getSubscriber().roots())) {
this.resources = null;
}
- if (resources != null) {
- SyncInfoWorkingSetFilter filter = new SyncInfoWorkingSetFilter();
- filter.setWorkingSet(resources);
- setSyncInfoFilter(filter);
- }
+ super.setSubscriber(subscriber, this.resources);
try {
ISynchronizeParticipantDescriptor descriptor = getDescriptor();
setInitializationData(descriptor);
@@ -121,28 +114,6 @@ public abstract class ScopableSubscriberParticipant extends SubscriberParticipan
* @return the descriptor for this participant
*/
protected abstract ISynchronizeParticipantDescriptor getDescriptor();
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.SubscriberParticipant#getResources()
- */
- public IResource[] getResources() {
- if (resources == null) {
- return super.getResources();
- }
- return resources;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.AbstractSynchronizeParticipant#getName()
- */
- public String getName() {
- String name = super.getName();
- if (resources == null) {
- return name + " (Workspace)";
- } else {
- return name + " " + Utils.convertSelection(resources, 4);
- }
- }
private boolean isSameResources(IResource[] resources2, IResource[] resources3) {
if (resources2.length != resources3.length) return false;
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/SubscriberParticipant.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/SubscriberParticipant.java
index 346757452..80c06e0bd 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/SubscriberParticipant.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/SubscriberParticipant.java
@@ -11,6 +11,7 @@
package org.eclipse.team.ui.synchronize;
import java.util.Arrays;
+import java.util.List;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -25,9 +26,18 @@ import org.eclipse.team.core.synchronize.SyncInfoTree;
import org.eclipse.team.internal.core.subscribers.SubscriberSyncInfoCollector;
import org.eclipse.team.internal.ui.TeamUIPlugin;
import org.eclipse.team.internal.ui.Utils;
-import org.eclipse.team.internal.ui.synchronize.*;
+import org.eclipse.team.internal.ui.synchronize.IRefreshSubscriberListener;
+import org.eclipse.team.internal.ui.synchronize.RefreshSubscriberJob;
+import org.eclipse.team.internal.ui.synchronize.RefreshUserNotificationPolicy;
+import org.eclipse.team.internal.ui.synchronize.RefreshUserNotificationPolicyInModalDialog;
+import org.eclipse.team.internal.ui.synchronize.SubscriberParticipantPage;
+import org.eclipse.team.internal.ui.synchronize.SubscriberRefreshSchedule;
+import org.eclipse.team.internal.ui.synchronize.SynchronizePageConfiguration;
import org.eclipse.team.ui.TeamUI;
-import org.eclipse.ui.*;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchSite;
+import org.eclipse.ui.PartInitException;
import org.eclipse.ui.part.IPageBookViewPage;
/**
@@ -68,12 +78,11 @@ public abstract class SubscriberParticipant extends AbstractSynchronizeParticipa
* Key for schedule in memento
*/
private static final String CTX_SUBSCRIBER_SCHEDULE_SETTINGS = TeamUIPlugin.ID + ".TEAMSUBSRCIBER_REFRESHSCHEDULE"; //$NON-NLS-1$
-
+
/**
* Constructor initializes the schedule. Subclasses must call this method.
*/
public SubscriberParticipant() {
- super();
refreshSchedule = new SubscriberRefreshSchedule(this);
}
@@ -86,12 +95,14 @@ public abstract class SubscriberParticipant extends AbstractSynchronizeParticipa
}
/**
- * Returns the resources supervised by this participant.
+ * Returns the resources supervised by this participant. It will
+ * either be the roots of the subscriber or the resources
+ * provided when the subscriber was set.
*
* @return the resources supervised by this participant.
*/
public IResource[] getResources() {
- return collector.getSubscriber().roots();
+ return collector.getRoots();
}
/**
@@ -132,6 +143,19 @@ public abstract class SubscriberParticipant extends AbstractSynchronizeParticipa
collector.dispose();
}
+ /* (non-Javadoc)
+ * @see org.eclipse.team.ui.synchronize.AbstractSynchronizeParticipant#getName()
+ */
+ public String getName() {
+ String name = super.getName();
+ IResource[] resources = collector.getRoots();
+ if (resources == null) {
+ return name + " (Workspace)";
+ } else {
+ return name + " " + Utils.convertSelection(resources, 4);
+ }
+ }
+
/**
* Returns the <code>SyncInfoTree</code> for this participant. This set
* contains the out-of-sync resources supervised by this participant.
@@ -274,10 +298,15 @@ public abstract class SubscriberParticipant extends AbstractSynchronizeParticipa
* method is called in {@link #init(String, IMemento)}. This method will initialize
* the sync info collector.
*
- * @param subscriber the subscriner to associate with this participant.
+ * @param subscriber the subscriber to associate with this participant.
+ * @param roots the root resources to be consider by this participant
+ * (or <code>null</code> if all roots of the subscriber should be considered
*/
- protected void setSubscriber(Subscriber subscriber) {
- collector = new SubscriberSyncInfoCollector(subscriber);
+ protected void setSubscriber(Subscriber subscriber, IResource[] roots) {
+ if (roots != null && isSameResources(roots, subscriber.roots())) {
+ roots = null;
+ }
+ collector = new SubscriberSyncInfoCollector(subscriber, roots);
// listen for global ignore changes
TeamUI.addPropertyChangeListener(this);
@@ -320,4 +349,16 @@ public abstract class SubscriberParticipant extends AbstractSynchronizeParticipa
job.setUser(true);
Utils.schedule(job, site);
}
+
+ private boolean isSameResources(IResource[] resources2, IResource[] resources3) {
+ if (resources2.length != resources3.length) return false;
+ List checkList = Arrays.asList(resources2);
+ for (int i = 0; i < resources3.length; i++) {
+ IResource resource = resources3[i];
+ if (!checkList.contains(resource)) {
+ return false;
+ }
+ }
+ return true;
+ }
} \ No newline at end of file

Back to the top