Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Michel-Lemieux2004-03-12 20:39:03 +0000
committerJean Michel-Lemieux2004-03-12 20:39:03 +0000
commit63374c3200e725bdae72759de3fb7b2e25ab17ed (patch)
tree5cbc5d6a0e82135a99d3f250aea913e9ee415d85 /bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs
parent7178a060534b68a62430a540b8459a7b202457c3 (diff)
downloadeclipse.platform.team-63374c3200e725bdae72759de3fb7b2e25ab17ed.tar.gz
eclipse.platform.team-63374c3200e725bdae72759de3fb7b2e25ab17ed.tar.xz
eclipse.platform.team-63374c3200e725bdae72759de3fb7b2e25ab17ed.zip
Adding changes for compare in dialog and global sync action.
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs')
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithRemoteAction.java36
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithTagAction.java8
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SyncAction.java8
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizard.java41
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties3
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.java2
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ReconcileProjectOperation.java2
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSLocalCompareConfiguration.java108
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java2
9 files changed, 52 insertions, 158 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithRemoteAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithRemoteAction.java
index f36c5a974..190e50920 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithRemoteAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithRemoteAction.java
@@ -13,12 +13,16 @@ package org.eclipse.team.internal.ccvs.ui.actions;
import java.lang.reflect.InvocationTargetException;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.action.IAction;
+import org.eclipse.team.core.subscribers.FilteredSyncInfoCollector;
+import org.eclipse.team.core.synchronize.*;
import org.eclipse.team.internal.ccvs.core.CVSException;
import org.eclipse.team.internal.ccvs.core.ICVSResource;
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.ui.synchronize.subscriber.SubscriberParticipantDialog;
/**
* This action shows the CVS workspace participant into a model dialog. For single file
@@ -27,15 +31,37 @@ import org.eclipse.team.ui.synchronize.subscriber.SubscriberParticipantDialog;
* @since 3.0
*/
public class CompareWithRemoteAction extends WorkspaceAction {
-
+
public void execute(IAction action) throws InvocationTargetException, InterruptedException {
final IResource[] resources = getSelectedResources();
+ SyncInfoFilter contentComparison = new SyncInfoFilter() {
+ private SyncInfoFilter contentCompare = new SyncInfoFilter.ContentComparisonSyncInfoFilter();
+ public boolean select(SyncInfo info, IProgressMonitor monitor) {
+ // Want to select infos whose contents do not match
+ boolean different = !contentCompare.select(info, monitor);
+ if(different) {
+ for (int i = 0; i < resources.length; i++) {
+ IResource resource = resources[i];
+ if (resource.getFullPath().isPrefixOf(info.getLocal().getFullPath())) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ };
+
// Show the 3-way comparison in a model dialog
WorkspaceSynchronizeParticipant participant = CVSUIPlugin.getPlugin().getCvsWorkspaceSynchronizeParticipant();
- SubscriberParticipantDialog openCompare = new SubscriberParticipantDialog(getShell(), participant.getId(), participant, resources);
- openCompare.setRememberInSyncView(false);
- openCompare.run();
+ SyncInfoTree syncInfoSet = new SyncInfoTree();
+
+ FilteredSyncInfoCollector collector = new FilteredSyncInfoCollector(
+ participant.getSubscriberSyncInfoCollector().getSubscriberSyncInfoSet(),
+ syncInfoSet,
+ contentComparison);
+ collector.start(new NullProgressMonitor());
+ participant.refresh(resources, participant.getRefreshListeners().createModalDialogListener(participant.getId(), participant, syncInfoSet), Policy.bind("Participant.comparing"), null);
}
/*
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithTagAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithTagAction.java
index 3dfd3c3e8..cc6f9ef36 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithTagAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CompareWithTagAction.java
@@ -17,9 +17,9 @@ import org.eclipse.core.resources.IResource;
import org.eclipse.jface.action.IAction;
import org.eclipse.team.internal.ccvs.core.CVSCompareSubscriber;
import org.eclipse.team.internal.ccvs.core.CVSTag;
+import org.eclipse.team.internal.ccvs.ui.Policy;
import org.eclipse.team.internal.ccvs.ui.TagSelectionDialog;
import org.eclipse.team.internal.ccvs.ui.subscriber.CompareParticipant;
-import org.eclipse.team.ui.synchronize.subscriber.SubscriberParticipantDialog;
public class CompareWithTagAction extends WorkspaceAction {
@@ -32,8 +32,10 @@ public class CompareWithTagAction extends WorkspaceAction {
// Run the comparison
CVSCompareSubscriber s = new CVSCompareSubscriber(resources, tag);
CompareParticipant participant = new CompareParticipant(s);
- SubscriberParticipantDialog openCompare = new SubscriberParticipantDialog(getShell(), CVSCompareSubscriber.ID_MODAL, participant, resources);
- openCompare.run();
+ participant.refresh(resources,
+ participant.getRefreshListeners().createModalDialogListener(CVSCompareSubscriber.ID_MODAL, participant, participant.getSubscriberSyncInfoCollector().getSyncInfoTree()),
+ Policy.bind("Participant.comparing"), //$NON-NLS-1$
+ null);
}
protected CVSTag promptForTag(IResource[] resources) {
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SyncAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SyncAction.java
index 0e5688de6..6bf107d27 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SyncAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SyncAction.java
@@ -14,13 +14,15 @@ import java.lang.reflect.InvocationTargetException;
import org.eclipse.core.resources.IResource;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.wizard.IWizard;
+import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.team.internal.ccvs.core.CVSException;
import org.eclipse.team.internal.ccvs.core.ICVSResource;
import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
import org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceSynchronizeParticipant;
/**
- * Action for catchup/release in popup menus.
+ * Action to initiate a CVS workspace synchronize
*/
public class SyncAction extends WorkspaceAction {
@@ -30,7 +32,9 @@ public class SyncAction extends WorkspaceAction {
WorkspaceSynchronizeParticipant participant = CVSUIPlugin.getPlugin().getCvsWorkspaceSynchronizeParticipant();
if(participant != null) {
- participant.refresh(resources);
+ IWizard wizard = participant.createSynchronizeWizard();
+ WizardDialog dialog = new WizardDialog(getShell(), wizard);
+ dialog.open();
}
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizard.java
index f6a553be7..df8ddb41b 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizard.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeWizard.java
@@ -11,22 +11,16 @@
package org.eclipse.team.internal.ccvs.ui.merge;
-import org.eclipse.compare.CompareEditorInput;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.swt.widgets.Shell;
import org.eclipse.team.internal.ccvs.core.CVSMergeSubscriber;
import org.eclipse.team.internal.ccvs.core.CVSTag;
import org.eclipse.team.internal.ccvs.ui.*;
import org.eclipse.team.internal.ccvs.ui.subscriber.MergeSynchronizeParticipant;
-import org.eclipse.team.ui.synchronize.subscriber.SubscriberParticipantDialog;
+import org.eclipse.team.ui.synchronize.subscriber.IRefreshSubscriberListener;
import org.eclipse.team.ui.synchronize.subscriber.SubscriberParticipant;
-import org.eclipse.team.ui.synchronize.viewers.SynchronizeDialog;
import org.eclipse.ui.*;
public class MergeWizard extends Wizard {
@@ -68,36 +62,9 @@ public class MergeWizard extends Wizard {
MergeSynchronizeParticipant participant = (MergeSynchronizeParticipant)SubscriberParticipant.find(s);
if(participant == null) {
participant = new MergeSynchronizeParticipant(s);
- }
-
- SubscriberParticipantDialog compareAction = new SubscriberParticipantDialog(activePage.getWorkbenchWindow().getShell(), CVSMergeSubscriber.ID_MODAL, participant, s.roots()) {
- protected SynchronizeDialog createCompareDialog(Shell shell, String title, CompareEditorInput input) {
- return new SynchronizeDialog(shell, title, input) {
- public boolean close() {
- final IPreferenceStore store = CVSUIPlugin.getPlugin().getPreferenceStore();
- if(! isRememberParticipant() && store.getBoolean(ICVSUIConstants.PREF_PROMPT_ON_MIXED_TAGS)) {
- AvoidableMessageDialog dialog = new AvoidableMessageDialog(
- getShell(),
- "Remember the Merge", //$NON-NLS-1$
- null, // accept the default window icon
- "Do you want to remember this merge session for later? If you plan on merging changes into your workspace from this merge configuration later on you should save this session. This will make it easier to incrementally merge changes.", //$NON-NLS-1$
- MessageDialog.WARNING,
- new String[] {IDialogConstants.OK_LABEL, IDialogConstants.NO_LABEL},
- 0);
-
- if(dialog.open() == IDialogConstants.OK_ID) {
- rememberParticipant();
- }
- if(dialog.isDontShowAgain()) {
- store.setValue(ICVSUIConstants.PREF_WARN_REMEMBERING_MERGES, false);
- }
- }
- return super.close();
- }
- };
- }
- };
- compareAction.run();
+ }
+ IRefreshSubscriberListener listener = participant.getRefreshListeners().createModalDialogListener(CVSMergeSubscriber.ID_MODAL, participant, participant.getSubscriberSyncInfoCollector().getSyncInfoTree());
+ participant.refresh(s.roots(), listener, Policy.bind("Participant.merging"), null); //$NON-NLS-1$
return true;
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties
index 660e25e87..0f5612bf7 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties
@@ -1071,3 +1071,6 @@ CompareRevertAction.0=Reverting {0} resources
FileModificationValidator.3=Perform Edit?
FileModificationValidator.4=A CVS edit notification is required to be sent to the server in order to allow editing of one or more selected files. Continue?
CVSSynchronizeViewPage.0=Show incoming grouped by comment
+Participant.comparing=Comparing
+Participant.merging=Merging
+Participant.synchronizing=Synchronizing
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.java
index 3e0f522cd..748c06c7e 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.java
@@ -22,7 +22,7 @@ import org.eclipse.team.internal.ccvs.core.CVSStatus;
import org.eclipse.team.internal.ccvs.core.util.Assert;
import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.ui.synchronize.subscriber.TeamOperation;
+import org.eclipse.team.ui.TeamOperation;
import org.eclipse.ui.IWorkbenchPart;
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ReconcileProjectOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ReconcileProjectOperation.java
index c7f8f7e29..b1c03eb99 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ReconcileProjectOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/ReconcileProjectOperation.java
@@ -54,7 +54,7 @@ public class ReconcileProjectOperation extends CVSOperation {
public void run() {
WorkspaceSynchronizeParticipant participant = CVSUIPlugin.getPlugin().getCvsWorkspaceSynchronizeParticipant();
if(participant != null) {
- participant.refresh(new IResource[] {project});
+ participant.refresh(new IResource[] {project}, participant.getRefreshListeners().createSynchronizeViewListener(participant), Policy.bind("Participant.synchronizing"), null); //$NON-NLS-1$
}
}
});
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSLocalCompareConfiguration.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSLocalCompareConfiguration.java
deleted file mode 100644
index 70304c78a..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSLocalCompareConfiguration.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.subscriber;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.SubscriberSyncInfoCollector;
-import org.eclipse.team.core.synchronize.*;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.ui.synchronize.subscriber.RefreshAction;
-import org.eclipse.team.ui.synchronize.viewers.TreeViewerAdvisor;
-
-/**
- * Provides compare specific support
- */
-public class CVSLocalCompareConfiguration extends TreeViewerAdvisor {
-
- private CVSCompareSubscriber subscriber;
- private SubscriberSyncInfoCollector collector;
- private RefreshAction refreshAction;
- private RefreshAction refreshAllAction;
-
- /**
- * Return a <code>SyncInfoSetCompareConfiguration</code> that can be used in a
- * <code>SynchronizeCompareInput</code> to show the comparsion between the local
- * workspace resources and their tagged counterparts on the server.
- * @param resources the resources to be compared
- * @param tag the tag to be compared with
- * @return a configuration for a <code>SynchronizeCompareInput</code>
- */
- public static CVSLocalCompareConfiguration create(IResource[] resources, CVSTag tag) {
- CVSCompareSubscriber subscriber = new CVSCompareSubscriber(resources, tag);
- SubscriberSyncInfoCollector collector = new SubscriberSyncInfoCollector(subscriber);
- collector.setFilter(new SyncInfoFilter() {
- private SyncInfoFilter contentCompare = new SyncInfoFilter.ContentComparisonSyncInfoFilter();
- public boolean select(SyncInfo info, IProgressMonitor monitor) {
- if (info.getLocal().getType() == IResource.FILE) {
- // Want to select infos whose contents do not match
- return !contentCompare.select(info, monitor);
- } else {
- return true;
- }
- }
- });
- collector.start();
- return new CVSLocalCompareConfiguration(subscriber, collector);
- }
-
- private CVSLocalCompareConfiguration(CVSCompareSubscriber subscriber, SubscriberSyncInfoCollector collector) {
- super("org.eclipse.team.cvs.ui.compare-participant", null, collector.getSyncInfoTree()); //$NON-NLS-1$
- this.subscriber = subscriber;
- this.collector = collector;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.SyncInfoSetCompareConfiguration#dispose()
- */
- public void dispose() {
- collector.dispose();
- subscriber.dispose();
- super.dispose();
- }
-
- public Object prepareInput(IProgressMonitor monitor) throws TeamException {
- subscriber.refresh(subscriber.roots(), IResource.DEPTH_INFINITE, monitor);
- collector.waitForCollector(monitor);
- return super.prepareInput(monitor);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.SyncInfoSetCompareConfiguration#fillContextMenu(org.eclipse.jface.viewers.StructuredViewer, org.eclipse.jface.action.IMenuManager)
- */
- protected void fillContextMenu(StructuredViewer viewer, IMenuManager manager) {
- manager.add(refreshAction);
- manager.add(new Separator());
- super.fillContextMenu(viewer, manager);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.TreeViewerAdvisor#contributeToToolBar(org.eclipse.jface.action.IToolBarManager)
- */
- public void contributeToToolBar(IToolBarManager tbm) {
- tbm.add(refreshAllAction);
- }
-
- protected void initializeActions(StructuredViewer viewer) {
- super.initializeActions(viewer);
- refreshAction = new RefreshAction(viewer, ((CVSSyncTreeSubscriber)collector.getSubscriber()).getName(), collector, null /* no listener */, false);
- refreshAllAction = new RefreshAction(viewer, ((CVSSyncTreeSubscriber)collector.getSubscriber()).getName(), collector, null /* no listener */, true);
- }
- /* (non-Javadoc)
- * @see org.eclipse.team.ui.synchronize.SyncInfoSetCompareConfiguration#getSyncSet()
- */
- public SyncInfoTree getSyncInfoTree() {
- return collector.getSyncInfoTree();
- }
-}
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 32e0a0688..5d60cd05d 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
@@ -289,7 +289,7 @@ public class SharingWizard extends Wizard implements IConfigurationWizard {
}
WorkspaceSynchronizeParticipant participant = CVSUIPlugin.getPlugin().getCvsWorkspaceSynchronizeParticipant();
if(participant != null) {
- participant.refresh(new IResource[] {project});
+ participant.refresh(new IResource[] {project}, participant.getRefreshListeners().createSynchronizeViewListener(participant), Policy.bind("Participant.synchronizing"), null);
}
}
} catch (InterruptedException e) {

Back to the top