diff options
Diffstat (limited to 'plugins')
2 files changed, 13 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/CompareToolBar.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/CompareToolBar.java index eb95e21e5..3f7e658a7 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/CompareToolBar.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/CompareToolBar.java @@ -153,6 +153,10 @@ public class CompareToolBar implements ISelectionChangedListener { toolbarManager.update(true); + final boolean enabled = any(this.compareConfiguration.getStructureMergeViewerFilter() + .getSelectedDifferenceFilters(), instanceOf(CascadingDifferencesFilter.class)); + updateMergeActions(enabled); + this.doOnce = true; } } @@ -209,6 +213,10 @@ public class CompareToolBar implements ISelectionChangedListener { public void selectedDifferenceFiltersChange(IDifferenceFilterChange event) { final boolean enabled = any(event.getSelectedDifferenceFilters(), instanceOf(CascadingDifferencesFilter.class)); + updateMergeActions(enabled); + } + + private void updateMergeActions(final boolean enabled) { for (MergeAction mergeAction : mergeActions) { mergeAction.setCascadingDifferencesFilterEnabled(enabled); } diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewer.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewer.java index 69c4ab155..b5d3d5cdc 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewer.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewer.java @@ -359,6 +359,10 @@ public class EMFCompareStructureMergeViewer extends AbstractStructuredViewerWrap inputChangedTask.setPriority(Job.LONG); config.getEventBus().register(this); + + final boolean enabled = any(config.getStructureMergeViewerFilter().getSelectedDifferenceFilters(), + instanceOf(CascadingDifferencesFilter.class)); + setCascadingDifferencesFilterEnabled(enabled); } /** @@ -426,6 +430,7 @@ public class EMFCompareStructureMergeViewer extends AbstractStructuredViewerWrap MergeAction mergeAction = new MergeAction(getCompareConfiguration().getEditingDomain(), mergerRegistry, mode, leftEditable, rightEditable, navigatable, (IStructuredSelection)getSelection()); + mergeAction.setCascadingDifferencesFilterEnabled(getCascadingDifferencesFilterEnabled()); manager.add(mergeAction); } } |