From d2e38657674f04d3691e6e0a20a0b130eece0dfb Mon Sep 17 00:00:00 2001 From: Hannes Wellmann Date: Mon, 18 Mar 2024 19:42:25 +0100 Subject: [PATCH] Replace usage of actually internal SWT TypedListener Use the new API introduced in SWT via https://github.com/eclipse-platform/eclipse.platform.swt/pull/1112 --- .../org.eclipse.ui.console/META-INF/MANIFEST.MF | 2 +- .../participants/AnsiConsolePageParticipant.java | 16 ++++------------ .../org.eclipse.compare/META-INF/MANIFEST.MF | 2 +- .../contentmergeviewer/TextMergeViewer.java | 16 ++++------------ ua/org.eclipse.help.ui/META-INF/MANIFEST.MF | 4 ++-- .../eclipse/help/ui/internal/HyperlinkLabel.java | 15 +++++++-------- 6 files changed, 19 insertions(+), 36 deletions(-) diff --git a/debug/org.eclipse.ui.console/META-INF/MANIFEST.MF b/debug/org.eclipse.ui.console/META-INF/MANIFEST.MF index d15d0dcfb0d..14b5653810f 100644 --- a/debug/org.eclipse.ui.console/META-INF/MANIFEST.MF +++ b/debug/org.eclipse.ui.console/META-INF/MANIFEST.MF @@ -9,7 +9,7 @@ Bundle-Localization: plugin Export-Package: org.eclipse.ui.console, org.eclipse.ui.console.actions, org.eclipse.ui.internal.console;x-internal:=true -Require-Bundle: org.eclipse.ui;bundle-version="[3.5.0,4.0.0)", +Require-Bundle: org.eclipse.ui;bundle-version="[3.206.0,4.0.0)", org.eclipse.jface.text;bundle-version="[3.5.0,4.0.0)", org.eclipse.ui.workbench.texteditor;bundle-version="[3.5.0,4.0.0)", org.eclipse.core.runtime;bundle-version="[3.29.0,4.0.0)", diff --git a/debug/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ansi/participants/AnsiConsolePageParticipant.java b/debug/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ansi/participants/AnsiConsolePageParticipant.java index 5ed71335248..3986a507d33 100644 --- a/debug/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ansi/participants/AnsiConsolePageParticipant.java +++ b/debug/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ansi/participants/AnsiConsolePageParticipant.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2012-2022 Mihai Nita and others + * Copyright (c) 2012, 2024 Mihai Nita and others * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -10,6 +10,7 @@ *******************************************************************************/ package org.eclipse.ui.internal.console.ansi.participants; +import java.util.EventListener; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -20,8 +21,6 @@ import org.eclipse.jface.text.ITextViewer; import org.eclipse.swt.custom.ST; import org.eclipse.swt.custom.StyledText; -import org.eclipse.swt.widgets.Listener; -import org.eclipse.swt.widgets.TypedListener; import org.eclipse.ui.console.IConsole; import org.eclipse.ui.console.IConsolePageParticipant; import org.eclipse.ui.part.IPageBookViewPage; @@ -66,15 +65,8 @@ public void init(IPageBookViewPage page, IConsole console) { // Find the document associated with the viewer static IDocument getDocument(StyledText viewer) { - for (Listener listener : viewer.getListeners(ST.LineGetStyle)) { - if (listener instanceof TypedListener) { - Object evenListener = ((TypedListener) listener).getEventListener(); - if (evenListener instanceof ITextViewer) { - return ((ITextViewer) evenListener).getDocument(); - } - } - } - return null; + return viewer.getTypedListeners(ST.LineGetStyle, EventListener.class).filter(ITextViewer.class::isInstance) + .map(v -> ((ITextViewer) v).getDocument()).findFirst().orElse(null); } private void addViewer(StyledText viewer, IConsolePageParticipant participant) { diff --git a/team/bundles/org.eclipse.compare/META-INF/MANIFEST.MF b/team/bundles/org.eclipse.compare/META-INF/MANIFEST.MF index ca10e1e5aea..512254fe71b 100644 --- a/team/bundles/org.eclipse.compare/META-INF/MANIFEST.MF +++ b/team/bundles/org.eclipse.compare/META-INF/MANIFEST.MF @@ -13,7 +13,7 @@ Export-Package: org.eclipse.compare, org.eclipse.compare.internal.patch;x-friends:="org.eclipse.team.ui", org.eclipse.compare.patch, org.eclipse.compare.structuremergeviewer -Require-Bundle: org.eclipse.ui;bundle-version="[3.5.0,4.0.0)", +Require-Bundle: org.eclipse.ui;bundle-version="[3.206.0,4.0.0)", org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)", org.eclipse.jface.text;bundle-version="[3.8.0,4.0.0)", org.eclipse.ui.ide;bundle-version="[3.3.0,4.0.0)", diff --git a/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java b/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java index 123af793be6..20a980f78e3 100644 --- a/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java +++ b/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2023 IBM Corporation and others. + * Copyright (c) 2000, 2024 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -145,6 +145,7 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.accessibility.AccessibleAdapter; import org.eclipse.swt.accessibility.AccessibleEvent; +import org.eclipse.swt.custom.ST; import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.events.DisposeEvent; @@ -174,11 +175,9 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.ScrollBar; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.ToolBar; -import org.eclipse.swt.widgets.TypedListener; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.IKeyBindingService; @@ -3107,15 +3106,8 @@ private void configureSourceViewer(SourceViewer sourceViewer, boolean editable, } private boolean isCursorLinePainterInstalled(SourceViewer viewer) { - Listener[] listeners = viewer.getTextWidget().getListeners(3001/*StyledText.LineGetBackground*/); - for (Listener l : listeners) { - if (l instanceof TypedListener) { - TypedListener listener = (TypedListener) l; - if (listener.getEventListener() instanceof CursorLinePainter) - return true; - } - } - return false; + return viewer.getTextWidget().getTypedListeners(ST.LineGetBackground, CursorLinePainter.class) // + .findFirst().isPresent(); } /** diff --git a/ua/org.eclipse.help.ui/META-INF/MANIFEST.MF b/ua/org.eclipse.help.ui/META-INF/MANIFEST.MF index 5ad2914f25b..fb8b2cc33db 100644 --- a/ua/org.eclipse.help.ui/META-INF/MANIFEST.MF +++ b/ua/org.eclipse.help.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %help_system_plugin_name Bundle-SymbolicName: org.eclipse.help.ui; singleton:=true -Bundle-Version: 4.6.200.qualifier +Bundle-Version: 4.7.0.qualifier Bundle-Activator: org.eclipse.help.ui.internal.HelpUIPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin @@ -18,7 +18,7 @@ Export-Package: org.eclipse.help.ui, org.eclipse.help.ui.internal.util;x-friends:="org.eclipse.ua.tests", org.eclipse.help.ui.internal.views;x-friends:="org.eclipse.ui.cheatsheets,org.eclipse.ua.tests" Require-Bundle: org.eclipse.help.base;bundle-version="[4.0.0,5.0.0)";visibility:=reexport, - org.eclipse.ui;bundle-version="[3.6.0,4.0.0)";visibility:=reexport, + org.eclipse.ui;bundle-version="[3.206.0,4.0.0)";visibility:=reexport, org.eclipse.core.runtime;bundle-version="[3.29.0,4.0.0)";visibility:=reexport, org.eclipse.ui.forms;bundle-version="[3.5.0,4.0.0)" Bundle-RequiredExecutionEnvironment: JavaSE-17 diff --git a/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkLabel.java b/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkLabel.java index c2c01266097..2de59a09fe7 100644 --- a/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkLabel.java +++ b/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkLabel.java @@ -40,7 +40,6 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.TypedListener; /** * @@ -156,19 +155,19 @@ protected void paint(PaintEvent e) { public void addSelectionListener(SelectionListener listener) { checkWidget(); - if (listener == null) + if (listener == null) { return; - TypedListener typedListener = new TypedListener(listener); - addListener(SWT.Selection, typedListener); - addListener(SWT.DefaultSelection, typedListener); + } + addTypedListener(listener, SWT.Selection, SWT.DefaultSelection); } public void removeSelectionListener(SelectionListener listener) { checkWidget(); - if (listener == null) + if (listener == null) { return; - removeListener(SWT.Selection, listener); - removeListener(SWT.DefaultSelection, listener); + } + removeTypedListener(SWT.Selection, listener); + removeTypedListener(SWT.DefaultSelection, listener); } @Override