Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomasz Zarna2010-01-12 15:41:15 +0000
committerTomasz Zarna2010-01-12 15:41:15 +0000
commit8c5b24c83bd600f2efeae6c74a48c89867138d57 (patch)
treed6d580d82dc1caefd9e6eb29323209acaef80714
parentfea52a74ae84d9b7040eb49d8664c0ae85161094 (diff)
downloadeclipse.platform.team-8c5b24c83bd600f2efeae6c74a48c89867138d57.tar.gz
eclipse.platform.team-8c5b24c83bd600f2efeae6c74a48c89867138d57.tar.xz
eclipse.platform.team-8c5b24c83bd600f2efeae6c74a48c89867138d57.zip
bug 298923: [Sync View][Apply patch] Merge changes from dev branch back to HEAD -- Ongoing work.
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/HunkDiffNode.java4
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchDiffNode.java10
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchFileDiffNode.java18
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchProjectDiffNode.java10
-rw-r--r--bundles/org.eclipse.team.ui/plugin.xml15
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/mapping/ModelCompareEditorInput.java2
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/ApplyPatchModelSynchronizeParticipant.java41
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/ApplyPatchSubscriber.java1
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchCompareAdapter.java17
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchModelProvider.java43
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchSyncContentProvider.java45
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchSyncLabelProvider.java25
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ModelSynchronizeParticipantActionGroup.java4
13 files changed, 168 insertions, 67 deletions
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/HunkDiffNode.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/HunkDiffNode.java
index 5515a7ee1..c0cb6610d 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/HunkDiffNode.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/HunkDiffNode.java
@@ -14,6 +14,7 @@ import org.eclipse.compare.ITypedElement;
import org.eclipse.compare.internal.core.patch.HunkResult;
import org.eclipse.compare.patch.PatchConfiguration;
import org.eclipse.compare.structuremergeviewer.Differencer;
+import org.eclipse.core.resources.IResource;
public class HunkDiffNode extends PatchDiffNode {
@@ -101,4 +102,7 @@ public class HunkDiffNode extends PatchDiffNode {
return false;
}
+ public IResource getResource() {
+ return ((PatchFileDiffNode)getParent()).getResource();
+ }
}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchDiffNode.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchDiffNode.java
index 89e9f1f81..ea4ba2de8 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchDiffNode.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchDiffNode.java
@@ -10,11 +10,14 @@
*******************************************************************************/
package org.eclipse.compare.internal.patch;
+import org.eclipse.compare.IResourceProvider;
import org.eclipse.compare.ITypedElement;
import org.eclipse.compare.patch.PatchConfiguration;
-import org.eclipse.compare.structuremergeviewer.*;
+import org.eclipse.compare.structuremergeviewer.DiffNode;
+import org.eclipse.compare.structuremergeviewer.IDiffContainer;
+import org.eclipse.core.resources.IResource;
-public abstract class PatchDiffNode extends DiffNode {
+public abstract class PatchDiffNode extends DiffNode implements IResourceProvider {
private Object fElement;
@@ -59,4 +62,7 @@ public abstract class PatchDiffNode extends DiffNode {
return getPatchElement().hashCode();
}
+ public IResource getResource() {
+ return null;
+ }
}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchFileDiffNode.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchFileDiffNode.java
index 8149140ea..922ce5d7a 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchFileDiffNode.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchFileDiffNode.java
@@ -10,12 +10,17 @@
*******************************************************************************/
package org.eclipse.compare.internal.patch;
-import org.eclipse.compare.*;
-import org.eclipse.compare.internal.core.patch.FilePatch2;
+import org.eclipse.compare.IContentChangeListener;
+import org.eclipse.compare.IContentChangeNotifier;
+import org.eclipse.compare.ITypedElement;
import org.eclipse.compare.internal.core.patch.FileDiffResult;
+import org.eclipse.compare.internal.core.patch.FilePatch2;
import org.eclipse.compare.patch.PatchConfiguration;
-import org.eclipse.compare.structuremergeviewer.*;
-import org.eclipse.core.resources.IFile;
+import org.eclipse.compare.structuremergeviewer.DiffNode;
+import org.eclipse.compare.structuremergeviewer.Differencer;
+import org.eclipse.compare.structuremergeviewer.IDiffContainer;
+import org.eclipse.compare.structuremergeviewer.IDiffElement;
+import org.eclipse.core.resources.IResource;
public class PatchFileDiffNode extends PatchDiffNode implements IContentChangeListener {
@@ -110,8 +115,11 @@ public class PatchFileDiffNode extends PatchDiffNode implements IContentChangeLi
}
public boolean fileExists() {
- IFile file = ((WorkspaceFileDiffResult)getDiffResult()).getTargetFile();
+ IResource file = getResource();
return file != null && file.isAccessible();
}
+ public IResource getResource() {
+ return ((WorkspaceFileDiffResult)getDiffResult()).getTargetFile();
+ }
}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchProjectDiffNode.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchProjectDiffNode.java
index 2f8f58a69..dd2285df2 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchProjectDiffNode.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchProjectDiffNode.java
@@ -14,7 +14,11 @@ import org.eclipse.compare.CompareUI;
import org.eclipse.compare.ITypedElement;
import org.eclipse.compare.internal.core.patch.DiffProject;
import org.eclipse.compare.patch.PatchConfiguration;
-import org.eclipse.compare.structuremergeviewer.*;
+import org.eclipse.compare.structuremergeviewer.Differencer;
+import org.eclipse.compare.structuremergeviewer.IDiffContainer;
+import org.eclipse.compare.structuremergeviewer.IDiffElement;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.jface.resource.LocalResourceManager;
import org.eclipse.swt.graphics.Image;
@@ -76,4 +80,8 @@ public class PatchProjectDiffNode extends PatchDiffNode {
return project;
}
+ public IResource getResource() {
+ return ResourcesPlugin.getWorkspace().getRoot().getProject(getDiffProject().getName());
+ }
+
}
diff --git a/bundles/org.eclipse.team.ui/plugin.xml b/bundles/org.eclipse.team.ui/plugin.xml
index 54bda73d3..4ebd62591 100644
--- a/bundles/org.eclipse.team.ui/plugin.xml
+++ b/bundles/org.eclipse.team.ui/plugin.xml
@@ -593,11 +593,11 @@
<modelProvider
class="org.eclipse.team.internal.ui.synchronize.patch.PatchModelProvider"/>
<extends-model id="org.eclipse.core.resources.modelProvider"/>
- <enablement>
+ <!--enablement>
<instanceof
value="org.eclipse.core.resources.IResource">
</instanceof>
- </enablement>
+ </enablement-->
</extension>
<extension
point="org.eclipse.ui.navigator.navigatorContent">
@@ -611,14 +611,14 @@
policy="InvokeAlwaysRegardlessOfSuppressedExt"
suppressedExtensionId="org.eclipse.team.ui.resourceContent">
</override>
- <triggerPoints>
+ <enablement>
<or>
- <instanceof
+ <!--instanceof
value="org.eclipse.team.core.mapping.ISynchronizationScope">
</instanceof>
<instanceof
value="org.eclipse.team.core.mapping.ISynchronizationContext">
- </instanceof>
+ </instanceof-->
<instanceof
value="org.eclipse.team.internal.ui.synchronize.patch.PatchWorkspace">
</instanceof>
@@ -627,9 +627,12 @@
</instanceof>
<instanceof
value="org.eclipse.team.internal.ui.synchronize.patch.PatchModelProvider">
+ </instanceof>
+ <instanceof
+ value="org.eclipse.core.resources.IResource">
</instanceof>
</or>
- </triggerPoints>
+ </enablement>
</navigatorContent>
</extension>
<extension
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/mapping/ModelCompareEditorInput.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/mapping/ModelCompareEditorInput.java
index 534d8c016..54ea848a6 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/mapping/ModelCompareEditorInput.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/mapping/ModelCompareEditorInput.java
@@ -189,7 +189,7 @@ public class ModelCompareEditorInput extends SaveableCompareEditorInput implemen
}
protected void handleMenuAboutToShow(IMenuManager manager) {
- StructuredSelection selection = new StructuredSelection(((ResourceDiffCompareInput)getCompareInput()).getResource());
+ StructuredSelection selection = new StructuredSelection(((IResourceProvider)getCompareInput()).getResource());
final ResourceMarkAsMergedHandler markAsMergedHandler = new ResourceMarkAsMergedHandler(getSynchronizeConfiguration());
markAsMergedHandler.updateEnablement(selection);
Action markAsMergedAction = new Action(TeamUIMessages.ModelCompareEditorInput_0) {
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/ApplyPatchModelSynchronizeParticipant.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/ApplyPatchModelSynchronizeParticipant.java
index c9f56a38e..4d4d92bd2 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/ApplyPatchModelSynchronizeParticipant.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/ApplyPatchModelSynchronizeParticipant.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
+ * Copyright (c) 2009, 2010 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
@@ -10,8 +10,10 @@
*******************************************************************************/
package org.eclipse.team.internal.ui.synchronize.patch;
+import org.eclipse.core.resources.mapping.ModelProvider;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuManager;
import org.eclipse.team.core.mapping.provider.SynchronizationContext;
import org.eclipse.team.ui.TeamUI;
import org.eclipse.team.ui.mapping.SynchronizationActionProvider;
@@ -56,16 +58,39 @@ public class ApplyPatchModelSynchronizeParticipant extends
protected void configureMergeAction(String mergeActionId, Action action) {
if (mergeActionId == SynchronizationActionProvider.MERGE_ACTION_ID) {
// Custom label for merge
- action.setText("Apply (merge)"); //$NON-NLS-1$
- } else if (mergeActionId == SynchronizationActionProvider.OVERWRITE_ACTION_ID) {
- // Custom label for overwrite
- action.setText("Apply (overwrite)"); //$NON-NLS-1$
- } else if (mergeActionId == SynchronizationActionProvider.MARK_AS_MERGE_ACTION_ID) {
- // Custom label for mark-as-merged
- action.setText("Exclude"); //$NON-NLS-1$
+ action.setText("Apply"); //$NON-NLS-1$
} else {
super.configureMergeAction(mergeActionId, action);
}
}
+ protected void addToContextMenu(String mergeActionId, Action action, IMenuManager manager) {
+ if (mergeActionId == SynchronizationActionProvider.OVERWRITE_ACTION_ID) {
+ // omit this action
+ return;
+ } else if (mergeActionId == SynchronizationActionProvider.MARK_AS_MERGE_ACTION_ID) {
+ // omit this action
+ return;
+ }
+ super.addToContextMenu(mergeActionId, action, manager);
+ }
+ }
+
+ public ModelProvider[] getEnabledModelProviders() {
+ ModelProvider[] enabledProviders = super.getEnabledModelProviders();
+ // add Patch model provider if it's not there
+ for (int i = 0; i < enabledProviders.length; i++) {
+ ModelProvider provider = enabledProviders[i];
+ if (provider.getId().equals(PatchModelProvider.ID))
+ return enabledProviders;
+ }
+ ModelProvider[] extended = new ModelProvider[enabledProviders.length + 1];
+ for (int i = 0; i < enabledProviders.length; i++) {
+ extended[i] = enabledProviders[i];
+ }
+ PatchModelProvider provider = PatchModelProvider.getProvider();
+ if (provider == null)
+ return enabledProviders;
+ extended[extended.length - 1] = provider;
+ return extended;
}
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/ApplyPatchSubscriber.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/ApplyPatchSubscriber.java
index 7e81fbbf6..b3373ecbb 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/ApplyPatchSubscriber.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/ApplyPatchSubscriber.java
@@ -34,6 +34,7 @@ public class ApplyPatchSubscriber extends Subscriber {
this.patcher = patcher;
this.comparator = new PatchedFileVariantComparator();
getPatcher().refresh();
+ // FIXME: create instance, singleton
PatchWorkspace.create(ResourcesPlugin.getWorkspace().getRoot(), getPatcher());
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchCompareAdapter.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchCompareAdapter.java
index 50c435bac..f4f2802c0 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchCompareAdapter.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchCompareAdapter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
+ * Copyright (c) 2009, 2010 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
@@ -11,12 +11,15 @@
package org.eclipse.team.internal.ui.synchronize.patch;
import org.eclipse.compare.structuremergeviewer.ICompareInput;
-import org.eclipse.core.resources.mapping.ResourceMapping;
+import org.eclipse.core.resources.mapping.*;
import org.eclipse.team.core.mapping.ISynchronizationContext;
+import org.eclipse.team.core.mapping.ISynchronizationScope;
+import org.eclipse.team.internal.ui.mapping.DiffTreeChangesSection.ITraversalFactory;
import org.eclipse.team.ui.mapping.SynchronizationCompareAdapter;
import org.eclipse.ui.IMemento;
-public class PatchCompareAdapter extends SynchronizationCompareAdapter {
+public class PatchCompareAdapter extends SynchronizationCompareAdapter
+ implements ITraversalFactory {
public ICompareInput asCompareInput(ISynchronizationContext context,
Object o) {
@@ -26,13 +29,15 @@ public class PatchCompareAdapter extends SynchronizationCompareAdapter {
}
public void save(ResourceMapping[] mappings, IMemento memento) {
- // TODO Auto-generated method stub
-
+ // Don't save
}
public ResourceMapping[] restore(IMemento memento) {
- // TODO Auto-generated method stub
+ // Don't restore
return null;
}
+ public ResourceTraversal[] getTraversals(ISynchronizationScope scope) {
+ return scope.getTraversals(ModelProvider.RESOURCE_MODEL_PROVIDER_ID);
+ }
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchModelProvider.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchModelProvider.java
index b662cb78f..24140bcb4 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchModelProvider.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchModelProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
+ * Copyright (c) 2009, 2010 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
@@ -13,11 +13,11 @@ package org.eclipse.team.internal.ui.synchronize.patch;
import org.eclipse.compare.internal.core.patch.FileDiffResult;
import org.eclipse.compare.internal.patch.*;
import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.resources.mapping.*;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.mapping.ModelProvider;
+import org.eclipse.core.resources.mapping.ResourceMapping;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.subscribers.SubscriberResourceMappingContext;
import org.eclipse.team.internal.core.TeamPlugin;
public class PatchModelProvider extends ModelProvider {
@@ -38,6 +38,7 @@ public class PatchModelProvider extends ModelProvider {
return provider;
}
+ /*
public ResourceMapping[] getMappings(IResource resource,
ResourceMappingContext context, IProgressMonitor monitor)
throws CoreException {
@@ -55,7 +56,7 @@ public class PatchModelProvider extends ModelProvider {
}
}
return super.getMappings(resource, context, monitor);
- }
+ }*/
static ResourceMapping getResourceMapping(IDiffElement object) {
if (object instanceof PatchProjectDiffNode) {
@@ -102,4 +103,34 @@ public class PatchModelProvider extends ModelProvider {
}
return null;
}
+
+ /**
+ * Returns the resource associated with the corresponding model element.
+ *
+ * @param element
+ * the model element
+ * @return the associated resource, or <code>null</code>
+ */
+ static IResource getResource(final Object element) {
+ IResource resource= null;
+ if (element instanceof PatchProjectDiffNode) {
+ return ((PatchProjectDiffNode) element).getResource();
+ } else if (element instanceof PatchFileDiffNode) {
+ return ((PatchFileDiffNode) element).getResource();
+ } else if (element instanceof HunkDiffNode) {
+ return ((HunkDiffNode) element).getResource();
+ } /*else if (element instanceof IResource) {
+ resource= (IResource) element;
+ } else if (element instanceof IAdaptable) {
+ final IAdaptable adaptable= (IAdaptable) element;
+ final Object adapted= adaptable.getAdapter(IResource.class);
+ if (adapted instanceof IResource)
+ resource= (IResource) adapted;
+ } else {
+ final Object adapted= Platform.getAdapterManager().getAdapter(element, IResource.class);
+ if (adapted instanceof IResource)
+ resource= (IResource) adapted;
+ }*/
+ return resource;
+ }
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchSyncContentProvider.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchSyncContentProvider.java
index 95890e804..d4c96a5c4 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchSyncContentProvider.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchSyncContentProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
+ * Copyright (c) 2009, 2010 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
@@ -67,20 +67,15 @@ public class PatchSyncContentProvider extends SynchronizationContentProvider
*/
protected ResourceTraversal[] getTraversals(
ISynchronizationContext context, Object object) {
-
- ResourceMapping mapping = PatchModelProvider.getResourceMapping((IDiffElement) object);
- ResourceMappingContext rmc = new SynchronizationResourceMappingContext(
- context);
- try {
- // XXX:
- // Technically speaking, this may end up being too long
- // running for this
- // (i.e. we may end up hitting the server) but it will do
- // for illustration purposes
- return mapping
- .getTraversals(rmc, new NullProgressMonitor());
- } catch (CoreException e) {
- TeamUIPlugin.log(e);
+ if (object instanceof IDiffElement) {
+ ResourceMapping mapping = PatchModelProvider.getResourceMapping((IDiffElement) object);
+ ResourceMappingContext rmc = new SynchronizationResourceMappingContext(
+ context);
+ try {
+ return mapping.getTraversals(rmc, new NullProgressMonitor());
+ } catch (CoreException e) {
+ TeamUIPlugin.log(e);
+ }
}
return new ResourceTraversal[0];
}
@@ -93,7 +88,7 @@ public class PatchSyncContentProvider extends SynchronizationContentProvider
sb.append(children[i].toString()).append(","); //$NON-NLS-1$
}
System.out
- .println(">> [super] PatchSyncContentProvider.getChildrenInContext: context-> " + context + "parent-> " + parent.toString() + "; children-> " + sb.toString()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ .println(">> [super] PatchSyncContentProvider.getChildrenInContext: context-> " + context + "; parent-> " + parent.toString() + "; children-> " + sb.toString()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return super.getChildrenInContext(context, parent, children);
}
@@ -102,9 +97,11 @@ public class PatchSyncContentProvider extends SynchronizationContentProvider
}
public void getPipelinedElements(Object anInput, Set theCurrentElements) {
- // Replace any model projects with a DiffProject if the input
- // is a synchronization context
if (anInput instanceof ISynchronizationContext) {
+ // Do not show hunks when all models are visible
+ //XXX
+ return;
+ } else if (anInput == getModelProvider()) {
List newProjects = new ArrayList();
for (Iterator iter = theCurrentElements.iterator(); iter.hasNext();) {
Object element = iter.next();
@@ -128,7 +125,7 @@ public class PatchSyncContentProvider extends SynchronizationContentProvider
theCurrentElements.add(getModelProvider());
}
}
-
+
public Object getPipelinedParent(Object anObject, Object aSuggestedParent) {
// TODO Auto-generated method stub
System.out
@@ -161,4 +158,14 @@ public class PatchSyncContentProvider extends SynchronizationContentProvider
.println(">> [false] PatchSyncContentProvider.interceptUpdate: anUpdateSynchronization-> " + anUpdateSynchronization); //$NON-NLS-1$
return false;
}
+
+ protected boolean isInScope(ISynchronizationScope scope, Object parent,
+ Object element) {
+ final IResource resource = PatchModelProvider.getResource(element);
+ if (resource == null)
+ return false;
+ if (scope.contains(resource))
+ return true;
+ return false;
+ }
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchSyncLabelProvider.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchSyncLabelProvider.java
index bf1b378ff..ab159e95b 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchSyncLabelProvider.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/patch/PatchSyncLabelProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
+ * Copyright (c) 2009, 2010 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
@@ -15,6 +15,7 @@ import org.eclipse.compare.structuremergeviewer.IDiffElement;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.mapping.ResourceMapping;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.team.core.diff.IDiff;
@@ -47,16 +48,18 @@ public class PatchSyncLabelProvider extends SynchronizationLabelProvider {
}
protected IDiff getDiff(Object element) {
- ResourceMapping mapping = PatchModelProvider
- .getResourceMapping((IDiffElement) element);
- if (mapping != null) {
- // XXX: getting IResource for patch model object
- try {
- IResource resource = mapping.getTraversals(null, null)[0]
- .getResources()[0];
- return getContext().getDiffTree().getDiff(resource);
- } catch (CoreException e) {
- TeamUIPlugin.log(e);
+ if (element instanceof IDiffElement) {
+ ResourceMapping mapping = PatchModelProvider
+ .getResourceMapping((IDiffElement) element);
+ if (mapping != null) {
+ // XXX: getting IResource for patch model object
+ try {
+ IResource resource = mapping.getTraversals(null, new NullProgressMonitor())[0]
+ .getResources()[0];
+ return getContext().getDiffTree().getDiff(resource);
+ } catch (CoreException e) {
+ TeamUIPlugin.log(e);
+ }
}
}
return super.getDiff(element);
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ModelSynchronizeParticipantActionGroup.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ModelSynchronizeParticipantActionGroup.java
index f0a4821b7..4b3969183 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ModelSynchronizeParticipantActionGroup.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ModelSynchronizeParticipantActionGroup.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2010 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
@@ -49,7 +49,7 @@ public class ModelSynchronizeParticipantActionGroup extends SynchronizePageActio
/**
* The id of the action group that determines where the other
- * actions (e.g. mark-as-mered) appear in the context menu.
+ * actions (e.g. mark-as-merged) appear in the context menu.
*/
public static final String OTHER_ACTION_GROUP = "other"; //$NON-NLS-1$

Back to the top