From a249aa4af99ca4f59bbd4e29b9ba4cfbef15a2f2 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Wed, 20 May 2015 21:00:28 +0300 Subject: [PATCH] diff: getEditors() - accept nullable values --- .../diff/tools/util/base/TextDiffViewerBase.java | 12 ++++++------ .../tools/util/twoside/TwosideTextDiffViewer.java | 12 +----------- .../difftool/properties/SvnPropertiesDiffViewer.java | 1 + 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/platform/diff-impl/src/com/intellij/diff/tools/util/base/TextDiffViewerBase.java b/platform/diff-impl/src/com/intellij/diff/tools/util/base/TextDiffViewerBase.java index 693d9309825a..5842c8214191 100644 --- a/platform/diff-impl/src/com/intellij/diff/tools/util/base/TextDiffViewerBase.java +++ b/platform/diff-impl/src/com/intellij/diff/tools/util/base/TextDiffViewerBase.java @@ -78,12 +78,12 @@ public abstract class TextDiffViewerBase extends ListenerDiffViewerBase { List editors = getEditors(); for (EditorEx editor : editors) { - editor.addEditorMouseListener(myEditorPopupListener); + if (editor != null) editor.addEditorMouseListener(myEditorPopupListener); } if (editors.size() > 1) { for (EditorEx editor : editors) { - editor.addPropertyChangeListener(myFontSizeListener); + if (editor != null) editor.addPropertyChangeListener(myFontSizeListener); } } } @@ -93,12 +93,12 @@ public abstract class TextDiffViewerBase extends ListenerDiffViewerBase { List editors = getEditors(); for (EditorEx editor : editors) { - editor.removeEditorMouseListener(myEditorPopupListener); + if (editor != null) editor.removeEditorMouseListener(myEditorPopupListener); } if (editors.size() > 1) { for (EditorEx editor : editors) { - editor.removePropertyChangeListener(myFontSizeListener); + if (editor != null) editor.removePropertyChangeListener(myFontSizeListener); } } } @@ -183,7 +183,7 @@ public abstract class TextDiffViewerBase extends ListenerDiffViewerBase { int fontSize = ((Integer)evt.getNewValue()).intValue(); for (EditorEx editor : getEditors()) { - if (evt.getSource() != editor) updateEditor(editor, fontSize); + if (editor != null && evt.getSource() != editor) updateEditor(editor, fontSize); } } @@ -449,7 +449,7 @@ public abstract class TextDiffViewerBase extends ListenerDiffViewerBase { return ContainerUtil.filter(editors, new Condition() { @Override public boolean value(EditorEx editor) { - return !editor.isViewer(); + return editor != null && !editor.isViewer(); } }); } diff --git a/platform/diff-impl/src/com/intellij/diff/tools/util/twoside/TwosideTextDiffViewer.java b/platform/diff-impl/src/com/intellij/diff/tools/util/twoside/TwosideTextDiffViewer.java index 899c17e4eb01..61a692e82131 100644 --- a/platform/diff-impl/src/com/intellij/diff/tools/util/twoside/TwosideTextDiffViewer.java +++ b/platform/diff-impl/src/com/intellij/diff/tools/util/twoside/TwosideTextDiffViewer.java @@ -52,7 +52,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; -import java.util.Collections; import java.util.List; public abstract class TwosideTextDiffViewer extends TextDiffViewerBase { @@ -218,16 +217,7 @@ public abstract class TwosideTextDiffViewer extends TextDiffViewerBase { @NotNull @Override protected List getEditors() { - if (getEditor1() != null && getEditor2() != null) { - return ContainerUtil.list(getEditor1(), getEditor2()); - } - if (getEditor1() != null) { - return Collections.singletonList(getEditor1()); - } - if (getEditor2() != null) { - return Collections.singletonList(getEditor2()); - } - return Collections.emptyList(); + return ContainerUtil.list(getEditor1(), getEditor2()); } @NotNull diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/difftool/properties/SvnPropertiesDiffViewer.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/difftool/properties/SvnPropertiesDiffViewer.java index 03a989a2279a..b651f102fc60 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/difftool/properties/SvnPropertiesDiffViewer.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/difftool/properties/SvnPropertiesDiffViewer.java @@ -72,6 +72,7 @@ public class SvnPropertiesDiffViewer extends TwosideTextDiffViewer { assert getEditor1() != null && getEditor2() != null; for (EditorEx editor : getEditors()) { + if (editor == null) continue; EditorSettings settings = editor.getSettings(); settings.setAdditionalLinesCount(0);