Bug 579247 - Commands for multi-selection not available in multipage editor Change-Id: Ibcd40039339b3ba2c6e79820d3f840640abe95e5 Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.text/+/191917 Tested-by: Platform Bot <platform-bot@eclipse.org> Reviewed-by: Mickael Istria <mistria@redhat.com>
diff --git a/org.eclipse.ui.workbench.texteditor/plugin.xml b/org.eclipse.ui.workbench.texteditor/plugin.xml index 70d47cf..9dea32d 100644 --- a/org.eclipse.ui.workbench.texteditor/plugin.xml +++ b/org.eclipse.ui.workbench.texteditor/plugin.xml
@@ -1381,60 +1381,45 @@ class="org.eclipse.ui.internal.texteditor.ToMultiSelectionHandler" commandId="org.eclipse.ui.edit.text.toMultiSelection"> <enabledWhen> - <with - variable="activeEditor"> - <instanceof - value="org.eclipse.ui.texteditor.ITextEditor"> - </instanceof> - </with> + <with variable="activeEditor"> + <adapt type="org.eclipse.ui.texteditor.ITextEditor"/> + </with> </enabledWhen> </handler> <handler class="org.eclipse.ui.internal.texteditor.multiselection.AddAllMatchesToMultiSelectionHandler" commandId="org.eclipse.ui.edit.text.select.addAllMatchesToMultiSelection"> <enabledWhen> - <with - variable="activeEditor"> - <instanceof - value="org.eclipse.ui.texteditor.ITextEditor"> - </instanceof> - </with> + <with variable="activeEditor"> + <adapt type="org.eclipse.ui.texteditor.ITextEditor"/> + </with> </enabledWhen> </handler> <handler class="org.eclipse.ui.internal.texteditor.multiselection.MultiSelectionDownHandler" commandId="org.eclipse.ui.edit.text.select.selectMultiSelectionDown"> <enabledWhen> - <with - variable="activeEditor"> - <instanceof - value="org.eclipse.ui.texteditor.ITextEditor"> - </instanceof> - </with> + <with variable="activeEditor"> + <adapt type="org.eclipse.ui.texteditor.ITextEditor"/> + </with> </enabledWhen> </handler> <handler class="org.eclipse.ui.internal.texteditor.multiselection.MultiSelectionUpHandler" commandId="org.eclipse.ui.edit.text.select.selectMultiSelectionUp"> <enabledWhen> - <with - variable="activeEditor"> - <instanceof - value="org.eclipse.ui.texteditor.ITextEditor"> - </instanceof> - </with> + <with variable="activeEditor"> + <adapt type="org.eclipse.ui.texteditor.ITextEditor"/> + </with> </enabledWhen> </handler> <handler class="org.eclipse.ui.internal.texteditor.multiselection.StopMultiSelectionHandler" commandId="org.eclipse.ui.edit.text.select.stopMultiSelection"> <enabledWhen> - <with - variable="activeEditor"> - <instanceof - value="org.eclipse.ui.texteditor.ITextEditor"> - </instanceof> - </with> + <with variable="activeEditor"> + <adapt type="org.eclipse.ui.texteditor.ITextEditor"/> + </with> </enabledWhen> </handler> </extension>
diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/ToMultiSelectionHandler.java b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/ToMultiSelectionHandler.java index 0fda409..ee9ebaf 100644 --- a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/ToMultiSelectionHandler.java +++ b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/ToMultiSelectionHandler.java
@@ -14,6 +14,8 @@ import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.Adapters; + import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.text.IBlockTextSelection; @@ -33,10 +35,10 @@ @Override public Object execute(ExecutionEvent event) throws ExecutionException { IEditorPart editor = HandlerUtil.getActiveEditor(event); - if (!(editor instanceof ITextEditor)) { + ITextEditor textEditor = Adapters.adapt(editor, ITextEditor.class); + if (textEditor == null) { return null; } - ITextEditor textEditor = (ITextEditor) editor; ISelection selection = textEditor.getSelectionProvider().getSelection(); if (!(selection instanceof IBlockTextSelection)) { return null;
diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/multiselection/AbstractMultiSelectionHandler.java b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/multiselection/AbstractMultiSelectionHandler.java index ba42de9..f16c20b 100644 --- a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/multiselection/AbstractMultiSelectionHandler.java +++ b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/multiselection/AbstractMultiSelectionHandler.java
@@ -24,6 +24,8 @@ import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.Adapters; + import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.text.BadLocationException; @@ -320,7 +322,7 @@ private void initTextEditor() { IEditorPart editor = HandlerUtil.getActiveEditor(event); - textEditor = editor instanceof ITextEditor ? (ITextEditor) editor : null; + textEditor = Adapters.adapt(editor, ITextEditor.class); } private IDocument getDocument() {