Bug 242686 - [Compare] Enable 'Show Whitespace Characters' toolbar
button

Change-Id: I38a28c6ceafcdf8eb58d34bde315b7b7f960e3ee
Signed-off-by: Rolf Theunissen <rolf.theunissen@gmail.com>
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 a58365d..e3e720a 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
@@ -286,7 +286,8 @@
 		ActionFactory.DELETE.getId(),
 		ActionFactory.SELECT_ALL.getId(),
 		ActionFactory.FIND.getId(),
-		ITextEditorActionDefinitionIds.LINE_GOTO
+		ITextEditorActionDefinitionIds.LINE_GOTO,
+		ITextEditorActionDefinitionIds.SHOW_WHITESPACE_CHARACTERS
 	};
 	private static final String[] TEXT_ACTIONS= {
 		MergeSourceViewer.UNDO_ID,
@@ -297,7 +298,8 @@
 		MergeSourceViewer.DELETE_ID,
 		MergeSourceViewer.SELECT_ALL_ID,
 		MergeSourceViewer.FIND_ID,
-		MergeSourceViewer.GOTO_LINE_ID
+		MergeSourceViewer.GOTO_LINE_ID,
+		ITextEditorActionDefinitionIds.SHOW_WHITESPACE_CHARACTERS
 	};
 
 	private static final String BUNDLE_NAME= "org.eclipse.compare.contentmergeviewer.TextMergeViewerResources"; //$NON-NLS-1$
@@ -2684,6 +2686,9 @@
 
 		contributeChangeEncodingAction(viewer);
 
+		// showWhiteSpaceAction is added in createToolItems when fAncestor, fLeft and
+		// fRight are initialized
+
 		contributeDiffBackgroundListener(viewer);
 
 		return viewer;
@@ -3882,6 +3887,10 @@
 		showWhitespaceAction = new ShowWhitespaceAction(
 				new MergeSourceViewer[] {fLeft, fRight, fAncestor},
 				new boolean[] {needsLeftPainter, needsRightPainter, needsAncestorPainter });
+		// showWhitespaceAction is registered as global action in connectGlobalActions
+		fLeft.addAction(ITextEditorActionDefinitionIds.SHOW_WHITESPACE_CHARACTERS, showWhitespaceAction);
+		fRight.addAction(ITextEditorActionDefinitionIds.SHOW_WHITESPACE_CHARACTERS, showWhitespaceAction);
+		fAncestor.addAction(ITextEditorActionDefinitionIds.SHOW_WHITESPACE_CHARACTERS, showWhitespaceAction);
 		fHandlerService.registerAction(showWhitespaceAction, ITextEditorActionDefinitionIds.SHOW_WHITESPACE_CHARACTERS);
 
 		toggleLineNumbersAction = new LineNumberRulerToggleAction(CompareMessages.TextMergeViewer_16,
diff --git a/bundles/org.eclipse.compare/plugin.xml b/bundles/org.eclipse.compare/plugin.xml
index cb027b7..754cb68 100644
--- a/bundles/org.eclipse.compare/plugin.xml
+++ b/bundles/org.eclipse.compare/plugin.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.0"?>
 <!--
-    Copyright (c) 2001, 2012 IBM Corporation and others.
+    Copyright (c) 2001, 2019 IBM Corporation and others.
 
     This program and the accompanying materials
     are made available under the terms of the Eclipse Public License 2.0
@@ -128,6 +128,16 @@
    </extension>
 
    <extension
+         point="org.eclipse.ui.actionSetPartAssociations">
+      <actionSetPartAssociation
+            targetID="org.eclipse.ui.edit.text.actionSet.presentation">
+         <part
+               id="org.eclipse.compare.CompareEditor">
+         </part>
+      </actionSetPartAssociation>
+   </extension>
+
+   <extension
          point="org.eclipse.ui.preferencePages">
       <page
             name="%ComparePreferencePage.name"