Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAxel Richard2013-07-25 08:37:47 +0000
committerGerrit Code Review @ Eclipse.org2013-07-26 08:23:52 +0000
commit7870aeb68103ee678b86f735ef3c269da28e2ec9 (patch)
tree8b6095408d749b13b36b532ec21523f38453444c /plugins/org.eclipse.emf.compare.ide.ui/src
parenta44f3196ab06a4f52f8eed312aebd94bb4ac9dc9 (diff)
downloadorg.eclipse.emf.compare-7870aeb68103ee678b86f735ef3c269da28e2ec9.tar.gz
org.eclipse.emf.compare-7870aeb68103ee678b86f735ef3c269da28e2ec9.tar.xz
org.eclipse.emf.compare-7870aeb68103ee678b86f735ef3c269da28e2ec9.zip
[413707] Remove merge buttons in content merge viewer
Diffstat (limited to 'plugins/org.eclipse.emf.compare.ide.ui/src')
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/table/TableContentMergeViewer.java28
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/text/EMFCompareTextMergeViewer.java187
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/tree/TreeContentMergeViewer.java26
3 files changed, 75 insertions, 166 deletions
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/table/TableContentMergeViewer.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/table/TableContentMergeViewer.java
index 45ef92e57..a64f41592 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/table/TableContentMergeViewer.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/table/TableContentMergeViewer.java
@@ -15,8 +15,6 @@ import java.util.ResourceBundle;
import org.eclipse.compare.CompareConfiguration;
import org.eclipse.emf.compare.Diff;
import org.eclipse.emf.compare.ide.ui.internal.contentmergeviewer.EMFCompareContentMergeViewer;
-import org.eclipse.emf.compare.internal.utils.ComparisonUtil;
-import org.eclipse.emf.compare.rcp.EMFCompareRCPPlugin;
import org.eclipse.emf.compare.rcp.ui.internal.contentmergeviewer.accessor.ICompareAccessor;
import org.eclipse.emf.compare.rcp.ui.internal.mergeviewer.IMergeViewer.MergeViewerSide;
import org.eclipse.emf.compare.rcp.ui.internal.mergeviewer.impl.AbstractMergeViewer;
@@ -29,6 +27,10 @@ import org.eclipse.emf.edit.provider.IItemFontProvider;
import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
@@ -287,6 +289,28 @@ public class TableContentMergeViewer extends EMFCompareContentMergeViewer {
}
}
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.ide.ui.internal.contentmergeviewer.EMFCompareContentMergeViewer#createToolItems(org.eclipse.jface.action.ToolBarManager)
+ */
+ @Override
+ protected void createToolItems(ToolBarManager toolBarManager) {
+ super.createToolItems(toolBarManager);
+ IContributionItem[] items = toolBarManager.getItems();
+ for (IContributionItem iContributionItem : items) {
+ if (iContributionItem instanceof ActionContributionItem) {
+ IAction action = ((ActionContributionItem)iContributionItem).getAction();
+ String id = action.getActionDefinitionId();
+ if ("org.eclipse.compare.copyAllLeftToRight".equals(id)) {
+ toolBarManager.remove(iContributionItem);
+ } else if ("org.eclipse.compare.copyAllRightToLeft".equals(id)) {
+ toolBarManager.remove(iContributionItem);
+ }
+ }
+ }
+ }
+
private void drawCenterLine(GC g, Rectangle leftClientArea, Rectangle rightClientArea,
TableItem leftItem, TableItem rightItem) {
Control control = getCenterControl();
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/text/EMFCompareTextMergeViewer.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/text/EMFCompareTextMergeViewer.java
index 890b8acc5..80544258d 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/text/EMFCompareTextMergeViewer.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/text/EMFCompareTextMergeViewer.java
@@ -10,11 +10,7 @@
*******************************************************************************/
package org.eclipse.emf.compare.ide.ui.internal.contentmergeviewer.text;
-import static com.google.common.collect.Iterables.filter;
-
import com.google.common.base.Charsets;
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.io.ByteStreams;
import com.google.common.io.Closeables;
@@ -22,9 +18,7 @@ import com.google.common.io.Closeables;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
-import java.util.Collections;
import java.util.EventObject;
-import java.util.List;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.concurrent.Executors;
@@ -39,10 +33,8 @@ import org.eclipse.compare.contentmergeviewer.IMergeViewerContentProvider;
import org.eclipse.compare.contentmergeviewer.TextMergeViewer;
import org.eclipse.compare.internal.CompareHandlerService;
import org.eclipse.compare.internal.MergeSourceViewer;
-import org.eclipse.compare.internal.Utilities;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.common.command.CommandStackListener;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.common.util.EList;
@@ -50,7 +42,6 @@ import org.eclipse.emf.compare.AttributeChange;
import org.eclipse.emf.compare.Comparison;
import org.eclipse.emf.compare.Conflict;
import org.eclipse.emf.compare.Diff;
-import org.eclipse.emf.compare.DifferenceSource;
import org.eclipse.emf.compare.DifferenceState;
import org.eclipse.emf.compare.Match;
import org.eclipse.emf.compare.command.ICompareCommandStack;
@@ -62,9 +53,7 @@ import org.eclipse.emf.compare.ide.ui.internal.contentmergeviewer.util.RedoActio
import org.eclipse.emf.compare.ide.ui.internal.contentmergeviewer.util.UndoAction;
import org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.CompareInputAdapter;
import org.eclipse.emf.compare.ide.ui.internal.util.SWTUtil;
-import org.eclipse.emf.compare.rcp.EMFCompareRCPPlugin;
import org.eclipse.emf.compare.rcp.ui.internal.EMFCompareConstants;
-import org.eclipse.emf.compare.utils.EMFComparePredicates;
import org.eclipse.emf.compare.utils.IEqualityHelper;
import org.eclipse.emf.compare.utils.ReferenceUtil;
import org.eclipse.emf.ecore.EAttribute;
@@ -74,17 +63,14 @@ import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.change.util.ChangeRecorder;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.edit.command.ChangeCommand;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.ToolBarManager;
+import org.eclipse.jface.text.ITextListener;
+import org.eclipse.jface.text.TextEvent;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.events.VerifyListener;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
@@ -99,10 +85,6 @@ public class EMFCompareTextMergeViewer extends TextMergeViewer implements IPrope
private DynamicObject fDynamicObject;
- private ActionContributionItem fCopyDiffLeftToRightItem;
-
- private ActionContributionItem fCopyDiffRightToLeftItem;
-
private UndoAction fUndoAction;
private RedoAction fRedoAction;
@@ -241,58 +223,6 @@ public class EMFCompareTextMergeViewer extends TextMergeViewer implements IPrope
}
/**
- * {@inheritDoc}
- *
- * @see org.eclipse.compare.contentmergeviewer.TextMergeViewer#copy(boolean)
- */
- @Override
- protected void copy(final boolean leftToRight) {
- final List<Diff> differences;
-
- if (getComparison().isThreeWay()) {
- differences = ImmutableList.copyOf(filter(getComparison().getDifferences(),
- new Predicate<Diff>() {
- public boolean apply(Diff diff) {
- final boolean unresolved = diff.getState() == DifferenceState.UNRESOLVED;
- final boolean nonConflictual = diff.getConflict() == null;
- final boolean fromLeftToRight = leftToRight
- && diff.getSource() == DifferenceSource.LEFT;
- final boolean fromRightToLeft = !leftToRight
- && diff.getSource() == DifferenceSource.RIGHT;
- return unresolved && nonConflictual && (fromLeftToRight || fromRightToLeft);
- }
- }));
- } else {
- differences = ImmutableList.copyOf(filter(getComparison().getDifferences(), EMFComparePredicates
- .hasState(DifferenceState.UNRESOLVED)));
- }
-
- if (differences.size() > 0) {
- final Command copyCommand = getEditingDomain().createCopyCommand(differences, leftToRight,
- EMFCompareRCPPlugin.getDefault().getMergerRegistry());
-
- getEditingDomain().getCommandStack().execute(copyCommand);
- refresh();
- }
- }
-
- protected void copyDiff(boolean leftToRight) {
- Object input = getInput();
- if (input instanceof CompareInputAdapter
- && ((CompareInputAdapter)input).getComparisonObject() instanceof AttributeChange) {
- final AttributeChange attributeChange = (AttributeChange)((CompareInputAdapter)input)
- .getComparisonObject();
-
- final Command copyCommand = getEditingDomain().createCopyCommand(
- Collections.singletonList(attributeChange), leftToRight,
- EMFCompareRCPPlugin.getDefault().getMergerRegistry());
- getEditingDomain().getCommandStack().execute(copyCommand);
-
- refresh();
- }
- }
-
- /**
* Inhibits this method to avoid asking to save on each input change!!
*
* @see org.eclipse.compare.contentmergeviewer.ContentMergeViewer#doSave(java.lang.Object,
@@ -400,26 +330,30 @@ public class EMFCompareTextMergeViewer extends TextMergeViewer implements IPrope
}
});
- textWidget.addVerifyListener(new VerifyListener() {
- public void verifyText(VerifyEvent e) {
- fDelayedExecutor.schedule(new Runnable() {
- public void run() {
- // When we leave the current input
- Object oldInput = getInput();
- if (oldInput instanceof CompareInputAdapter) {
- final AttributeChange diff = (AttributeChange)((CompareInputAdapter)oldInput)
- .getComparisonObject();
- final EAttribute eAttribute = diff.getAttribute();
- final Match match = diff.getMatch();
- final IEqualityHelper equalityHelper = match.getComparison().getEqualityHelper();
-
- updateModel(diff, eAttribute, equalityHelper, match.getLeft(), true);
- updateModel(diff, eAttribute, equalityHelper, match.getRight(), false);
+ viewer.getSourceViewer().addTextListener(new ITextListener() {
+ public void textChanged(TextEvent event) {
+ final Object oldInput = getInput();
+ if (event.getDocumentEvent() != null && oldInput instanceof CompareInputAdapter) {
+ fDelayedExecutor.schedule(new Runnable() {
+ public void run() {
+ // When we leave the current input
+ if (oldInput instanceof CompareInputAdapter) {
+ final AttributeChange diff = (AttributeChange)((CompareInputAdapter)oldInput)
+ .getComparisonObject();
+ final EAttribute eAttribute = diff.getAttribute();
+ final Match match = diff.getMatch();
+ final IEqualityHelper equalityHelper = match.getComparison()
+ .getEqualityHelper();
+
+ updateModel(diff, eAttribute, equalityHelper, match.getLeft(), true);
+ updateModel(diff, eAttribute, equalityHelper, match.getRight(), false);
+ }
}
- }
- });
+ });
+ }
}
});
+
}
private void setActiveViewer(MergeSourceViewer viewer, boolean activate) {
@@ -452,81 +386,6 @@ public class EMFCompareTextMergeViewer extends TextMergeViewer implements IPrope
}
/**
- * {@inheritDoc}
- *
- * @see org.eclipse.compare.contentmergeviewer.TextMergeViewer#createToolItems(org.eclipse.jface.action.ToolBarManager)
- */
- @SuppressWarnings("restriction")
- @Override
- protected void createToolItems(ToolBarManager toolBarManager) {
- // avoid super to avoid NPE in org.eclipse.compare.internal.ViewerDescriptor.createViewer
- CompareHandlerService handlerService = CompareHandlerService.createFor(getCompareConfiguration()
- .getContainer(), getLeftSourceViewer().getSourceViewer().getControl().getShell());
- setHandlerService(handlerService);
-
- // Copy actions
- CompareConfiguration cc = getCompareConfiguration();
- if (cc.isRightEditable()) {
- Action copyLeftToRight = new Action() {
- @Override
- public void run() {
- copyDiff(true);
- navigate(true);
- }
- };
- Utilities.initAction(copyLeftToRight, getResourceBundle(), "action.CopyDiffLeftToRight."); //$NON-NLS-1$
- fCopyDiffLeftToRightItem = new ActionContributionItem(copyLeftToRight);
- fCopyDiffLeftToRightItem.setVisible(true);
- toolBarManager.appendToGroup("merge", fCopyDiffLeftToRightItem); //$NON-NLS-1$
- handlerService.registerAction(copyLeftToRight, "org.eclipse.compare.copyLeftToRight"); //$NON-NLS-1$
- }
-
- if (cc.isLeftEditable()) {
- Action copyRightToLeft = new Action() {
- @Override
- public void run() {
- copyDiff(false);
- navigate(true);
- }
- };
- Utilities.initAction(copyRightToLeft, getResourceBundle(), "action.CopyDiffRightToLeft."); //$NON-NLS-1$
- fCopyDiffRightToLeftItem = new ActionContributionItem(copyRightToLeft);
- fCopyDiffRightToLeftItem.setVisible(true);
- toolBarManager.appendToGroup("merge", fCopyDiffRightToLeftItem); //$NON-NLS-1$
- handlerService.registerAction(copyRightToLeft, "org.eclipse.compare.copyRightToLeft"); //$NON-NLS-1$
- }
-
- // Navigation
- final Action nextDiff = new Action() {
- @Override
- public void run() {
- endOfContentReached(true);
- }
- };
- Utilities.initAction(nextDiff, getResourceBundle(), "action.NextDiff.");
- ActionContributionItem contributionNextDiff = new ActionContributionItem(nextDiff);
- contributionNextDiff.setVisible(true);
- toolBarManager.appendToGroup("navigation", contributionNextDiff);
-
- final Action previousDiff = new Action() {
- @Override
- public void run() {
- endOfContentReached(false);
- }
- };
- Utilities.initAction(previousDiff, getResourceBundle(), "action.PrevDiff.");
- ActionContributionItem contributionPreviousDiff = new ActionContributionItem(previousDiff);
- contributionPreviousDiff.setVisible(true);
- toolBarManager.appendToGroup("navigation", contributionPreviousDiff);
-
- fRedoAction = new RedoAction(getEditingDomain());
- fUndoAction = new UndoAction(getEditingDomain());
-
- getHandlerService().setGlobalActionHandler(ActionFactory.UNDO.getId(), fUndoAction);
- getHandlerService().setGlobalActionHandler(ActionFactory.REDO.getId(), fRedoAction);
- }
-
- /**
* Called by the framework when the last (or first) diff of the current content viewer has been reached.
* This will open the content viewer for the next (or previous) diff displayed in the structure viewer.
*
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/tree/TreeContentMergeViewer.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/tree/TreeContentMergeViewer.java
index 4a50e8f85..74bf283d2 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/tree/TreeContentMergeViewer.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/tree/TreeContentMergeViewer.java
@@ -45,6 +45,10 @@ import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory
import org.eclipse.emf.edit.tree.TreeNode;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.viewers.IContentProvider;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -373,6 +377,28 @@ public class TreeContentMergeViewer extends EMFCompareContentMergeViewer {
}
}
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.ide.ui.internal.contentmergeviewer.EMFCompareContentMergeViewer#createToolItems(org.eclipse.jface.action.ToolBarManager)
+ */
+ @Override
+ protected void createToolItems(ToolBarManager toolBarManager) {
+ super.createToolItems(toolBarManager);
+ IContributionItem[] items = toolBarManager.getItems();
+ for (IContributionItem iContributionItem : items) {
+ if (iContributionItem instanceof ActionContributionItem) {
+ IAction action = ((ActionContributionItem)iContributionItem).getAction();
+ String id = action.getActionDefinitionId();
+ if ("org.eclipse.compare.copyAllLeftToRight".equals(id)) {
+ toolBarManager.remove(iContributionItem);
+ } else if ("org.eclipse.compare.copyAllRightToLeft".equals(id)) {
+ toolBarManager.remove(iContributionItem);
+ }
+ }
+ }
+ }
+
private List<TreeItem> getExpandedTreeItems(Tree tree) {
return getExpandedTreeItems(tree.getItems());
}

Back to the top