From 34dcb300f6165458410a0beb3f1500fa79b5c034 Mon Sep 17 00:00:00 2001 From: Mykola Nikishov Date: Fri, 6 Jul 2018 12:34:35 +0300 Subject: Use guard condition in TextMergeViewer's configureCompareFilterActions Change-Id: I55638c8d55ef0825892effe8415b028a859dad6b Signed-off-by: Mykola Nikishov --- .../contentmergeviewer/TextMergeViewer.java | 135 +++++++++------------ 1 file changed, 54 insertions(+), 81 deletions(-) diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java index f3c1eaa1d..a9c9555a2 100644 --- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java +++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java @@ -3837,97 +3837,70 @@ public class TextMergeViewer extends ContentMergeViewer implements IAdaptable { private void configureCompareFilterActions(Object input, Object ancestor, Object left, Object right) { - if (getCompareConfiguration() != null) { - CompareFilterDescriptor[] compareFilterDescriptors = - CompareUIPlugin.getDefault().findCompareFilters(input); - - Object current = getCompareConfiguration().getProperty( - ChangeCompareFilterPropertyAction.COMPARE_FILTER_ACTIONS); - boolean currentFiltersMatch = false; - if (current != null - && current instanceof List - && ((List) current).size() == compareFilterDescriptors.length) { - currentFiltersMatch = true; - @SuppressWarnings("unchecked") - List currentFilterActions = - (List) current; - for (int i = 0; i < compareFilterDescriptors.length; i++) { - boolean match = false; - for (int j = 0; j < currentFilterActions.size(); j++) { - if (compareFilterDescriptors[i] - .getFilterId() - .equals(currentFilterActions.get(j).getFilterId())) { - match = true; - break; - } - } - if (!match) { - currentFiltersMatch = false; + if (getCompareConfiguration() == null) { + return; + } + + CompareFilterDescriptor[] compareFilterDescriptors = CompareUIPlugin.getDefault().findCompareFilters(input); + Object current = getCompareConfiguration() + .getProperty(ChangeCompareFilterPropertyAction.COMPARE_FILTER_ACTIONS); + boolean currentFiltersMatch = false; + if (current != null && current instanceof List + && ((List) current).size() == compareFilterDescriptors.length) { + currentFiltersMatch = true; + @SuppressWarnings("unchecked") + List currentFilterActions = (List) current; + for (int i = 0; i < compareFilterDescriptors.length; i++) { + boolean match = false; + for (int j = 0; j < currentFilterActions.size(); j++) { + if (compareFilterDescriptors[i].getFilterId().equals(currentFilterActions.get(j).getFilterId())) { + match = true; break; } } + if (!match) { + currentFiltersMatch = false; + break; + } } - - if (!currentFiltersMatch) { - getCompareConfiguration() - .setProperty( - ChangeCompareFilterPropertyAction.COMPARE_FILTERS_INITIALIZING, - Boolean.TRUE); - disposeCompareFilterActions(true); - fCompareFilterActions.clear(); - for (int i = 0; i < compareFilterDescriptors.length; i++) { - ChangeCompareFilterPropertyAction compareFilterAction = new ChangeCompareFilterPropertyAction( - compareFilterDescriptors[i], - getCompareConfiguration()); - compareFilterAction.setInput(input, ancestor, left, right); - fCompareFilterActions.add(compareFilterAction); - fLeft.addTextAction(compareFilterAction); - fRight.addTextAction(compareFilterAction); - fAncestor.addTextAction(compareFilterAction); - - if (getCompareConfiguration().getContainer() - .getActionBars() != null) { + } + if (!currentFiltersMatch) { + getCompareConfiguration().setProperty(ChangeCompareFilterPropertyAction.COMPARE_FILTERS_INITIALIZING, + Boolean.TRUE); + disposeCompareFilterActions(true); + fCompareFilterActions.clear(); + for (int i = 0; i < compareFilterDescriptors.length; i++) { + ChangeCompareFilterPropertyAction compareFilterAction = new ChangeCompareFilterPropertyAction( + compareFilterDescriptors[i], getCompareConfiguration()); + compareFilterAction.setInput(input, ancestor, left, right); + fCompareFilterActions.add(compareFilterAction); + fLeft.addTextAction(compareFilterAction); + fRight.addTextAction(compareFilterAction); + fAncestor.addTextAction(compareFilterAction); + + if (getCompareConfiguration().getContainer().getActionBars() != null) { + getCompareConfiguration().getContainer().getActionBars().getToolBarManager() + .appendToGroup(CompareEditorContributor.FILTER_SEPARATOR, compareFilterAction); + if (compareFilterAction.getActionDefinitionId() != null) getCompareConfiguration() .getContainer() .getActionBars() - .getToolBarManager() - .appendToGroup( - CompareEditorContributor.FILTER_SEPARATOR, + .setGlobalActionHandler(compareFilterAction.getActionDefinitionId(), compareFilterAction); - if (compareFilterAction.getActionDefinitionId() != null) - getCompareConfiguration() - .getContainer() - .getActionBars() - .setGlobalActionHandler( - compareFilterAction - .getActionDefinitionId(), - compareFilterAction); - } - } - if (!fCompareFilterActions.isEmpty() - && getCompareConfiguration().getContainer() - .getActionBars() != null) { - getCompareConfiguration().getContainer().getActionBars() - .getToolBarManager().markDirty(); - getCompareConfiguration().getContainer().getActionBars() - .getToolBarManager().update(true); - getCompareConfiguration().getContainer().getActionBars() - .updateActionBars(); - } - getCompareConfiguration() - .setProperty( - ChangeCompareFilterPropertyAction.COMPARE_FILTER_ACTIONS, - fCompareFilterActions); - getCompareConfiguration() - .setProperty( - ChangeCompareFilterPropertyAction.COMPARE_FILTERS_INITIALIZING, - null); - } else { - for (int i = 0; i < fCompareFilterActions.size(); i++) { - fCompareFilterActions - .get(i).setInput(input, ancestor, left, right); } } + if (!fCompareFilterActions.isEmpty() && getCompareConfiguration().getContainer().getActionBars() != null) { + getCompareConfiguration().getContainer().getActionBars().getToolBarManager().markDirty(); + getCompareConfiguration().getContainer().getActionBars().getToolBarManager().update(true); + getCompareConfiguration().getContainer().getActionBars().updateActionBars(); + } + getCompareConfiguration().setProperty(ChangeCompareFilterPropertyAction.COMPARE_FILTER_ACTIONS, + fCompareFilterActions); + getCompareConfiguration().setProperty(ChangeCompareFilterPropertyAction.COMPARE_FILTERS_INITIALIZING, null); + } else { + for (int i = 0; i < fCompareFilterActions.size(); i++) { + fCompareFilterActions.get(i).setInput(input, ancestor, left, right); + } } } -- cgit v1.2.3