Bug 543397 - Obsolete classes: Page and Window SelectionService and
SelectionTracker
Change-Id: I45b93d060ce6a20ec04024ec332d8b39103dccb2
Signed-off-by: Rolf Theunissen <rolf.theunissen@altran.com>
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/AbstractPartSelectionTracker.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/AbstractPartSelectionTracker.java
deleted file mode 100644
index 70fec67..0000000
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/AbstractPartSelectionTracker.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2016 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.INullSelectionListener;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Provides per-part selection tracking for the selection service.
- */
-public abstract class AbstractPartSelectionTracker {
- /**
- * List of selection listeners for this tracker
- */
- private ListenerList<ISelectionListener> fListeners = new ListenerList<>();
-
- /**
- * List of post selection listeners for this tracker
- */
- private ListenerList<ISelectionListener> postListeners = new ListenerList<>();
-
- /**
- * The id of the part this tracls
- */
- private String fPartId;
-
- /**
- * Constructs a part selection tracker for the part with the given id.
- *
- * @param id part identifier
- */
- public AbstractPartSelectionTracker(String partId) {
- setPartId(partId);
- }
-
- /**
- * Adds a selection listener to this tracker
- *
- * @param listener the listener to add
- */
- public void addSelectionListener(ISelectionListener listener) {
- fListeners.add(listener);
- }
-
- /**
- * Adds a post selection listener to this tracker
- *
- * @param listener the listener to add
- */
- public void addPostSelectionListener(ISelectionListener listener) {
- postListeners.add(listener);
- }
-
- /**
- * Returns the selection from the part being tracked,
- * or <code>null</code> if the part is closed or has no selection.
- */
- public abstract ISelection getSelection();
-
- /**
- * Removes a selection listener from this tracker.
- *
- * @param listener the listener to remove
- */
- public void removeSelectionListener(ISelectionListener listener) {
- fListeners.remove(listener);
- }
-
- /**
- * Removes a post selection listener from this tracker.
- *
- * @param listener the listener to remove
- */
- public void removePostSelectionListener(ISelectionListener listener) {
- postListeners.remove(listener);
- }
-
- /**
- * Disposes this selection tracker. This removes all listeners currently registered.
- */
- public void dispose() {
- synchronized (fListeners) {
- for (Object listener : fListeners.getListeners()) {
- fListeners.remove(listener);
- postListeners.remove(listener);
- }
- }
- }
-
- /**
- * Fires a selection event to the listeners.
- *
- * @param part the part or <code>null</code> if no active part
- * @param sel the selection or <code>null</code> if no active selection
- * @param listeners the list of listeners to notify
- */
- protected void fireSelection(final IWorkbenchPart part, final ISelection sel) {
- for (final ISelectionListener l : fListeners) {
- if ((part != null && sel != null)
- || l instanceof INullSelectionListener) {
- SafeRunner.run(new SafeRunnable() {
- @Override
- public void run() {
- l.selectionChanged(part, sel);
- }
- });
- }
- }
- }
-
- /**
- * Fires a post selection event to the listeners.
- *
- * @param part the part or <code>null</code> if no active part
- * @param sel the selection or <code>null</code> if no active selection
- * @param listeners the list of listeners to notify
- */
- protected void firePostSelection(final IWorkbenchPart part,
- final ISelection sel) {
- for (final ISelectionListener l : postListeners) {
- if ((part != null && sel != null)
- || l instanceof INullSelectionListener) {
- SafeRunner.run(new SafeRunnable() {
- @Override
- public void run() {
- l.selectionChanged(part, sel);
- }
- });
- }
- }
- }
-
- /**
- * Sets the id of the part that this tracks.
- *
- * @param id view identifier
- */
- private void setPartId(String partId) {
- fPartId = partId;
- }
-
- /**
- * Returns the id of the part that this tracks.
- *
- * @return part identifier
- */
- protected String getPartId() {
- return fPartId;
- }
-
-}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/AbstractSelectionService.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/AbstractSelectionService.java
deleted file mode 100644
index 26dab98..0000000
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/AbstractSelectionService.java
+++ /dev/null
@@ -1,365 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal;
-
-import java.util.Hashtable;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.viewers.IPostSelectionProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.ui.INullSelectionListener;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.ISelectionService;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Abstract selection service.
- */
-public abstract class AbstractSelectionService implements ISelectionService {
-
- /**
- * The list of selection listeners (not per-part).
- */
- private ListenerList<ISelectionListener> listeners = new ListenerList<>();
-
- /**
- * The list of post selection listeners (not per-part).
- */
- private ListenerList<ISelectionListener> postListeners = new ListenerList<>();
-
- /**
- * The currently active part.
- */
- private IWorkbenchPart activePart;
-
- /**
- * The active part's selection provider, remembered in case the part
- * replaces its selection provider after we hooked a listener.
- */
- private ISelectionProvider activeProvider;
-
- /**
- * Map from part id (String) to per-part tracker (AbstractPartSelectionTracker).
- */
- private Hashtable perPartTrackers;
-
- /**
- * The JFace selection listener to hook on the active part's selection provider.
- */
- private ISelectionChangedListener selListener = event -> fireSelection(activePart, event.getSelection());
-
- /**
- * The JFace post selection listener to hook on the active part's selection provider.
- */
- private ISelectionChangedListener postSelListener = event -> firePostSelection(activePart, event.getSelection());
-
- /**
- * Creates a new SelectionService.
- */
- protected AbstractSelectionService() {
- }
-
- @Override
- public void addSelectionListener(ISelectionListener l) {
- listeners.add(l);
- }
-
- @Override
- public void addSelectionListener(String partId, ISelectionListener listener) {
- getPerPartTracker(partId).addSelectionListener(listener);
- }
-
- @Override
- public void addPostSelectionListener(ISelectionListener l) {
- postListeners.add(l);
- }
-
- @Override
- public void addPostSelectionListener(String partId,
- ISelectionListener listener) {
- getPerPartTracker(partId).addPostSelectionListener(listener);
- }
-
- @Override
- public void removeSelectionListener(ISelectionListener l) {
- listeners.remove(l);
- }
-
- @Override
- public void removePostSelectionListener(String partId,
- ISelectionListener listener) {
- getPerPartTracker(partId).removePostSelectionListener(listener);
- }
-
- @Override
- public void removePostSelectionListener(ISelectionListener l) {
- postListeners.remove(l);
- }
-
- @Override
- public void removeSelectionListener(String partId,
- ISelectionListener listener) {
- getPerPartTracker(partId).removeSelectionListener(listener);
- }
-
- /**
- * Fires a selection event to the given listeners.
- *
- * @param part the part or <code>null</code> if no active part
- * @param sel the selection or <code>null</code> if no active selection
- */
- protected void fireSelection(final IWorkbenchPart part, final ISelection sel) {
- for (final ISelectionListener l : listeners) {
- if ((part != null && sel != null) || l instanceof INullSelectionListener) {
- try {
- l.selectionChanged(part, sel);
- } catch (Exception e) {
- WorkbenchPlugin.log(e);
- }
- }
- }
- }
-
- /**
- * Fires a selection event to the given listeners.
- *
- * @param part the part or <code>null</code> if no active part
- * @param sel the selection or <code>null</code> if no active selection
- */
- protected void firePostSelection(final IWorkbenchPart part,
- final ISelection sel) {
- for (final ISelectionListener l : postListeners) {
- if ((part != null && sel != null) || l instanceof INullSelectionListener) {
- try {
- l.selectionChanged(part, sel);
- } catch (Exception e) {
- WorkbenchPlugin.log(e);
- }
- }
- }
- }
-
- /**
- * Returns the per-part selection tracker for the given part id.
- *
- * @param partId part identifier
- * @return per-part selection tracker
- */
- protected AbstractPartSelectionTracker getPerPartTracker(String partId) {
- if (perPartTrackers == null) {
- perPartTrackers = new Hashtable(4);
- }
- AbstractPartSelectionTracker tracker = (AbstractPartSelectionTracker) perPartTrackers
- .get(partId);
- if (tracker == null) {
- tracker = createPartTracker(partId);
- perPartTrackers.put(partId, tracker);
- }
- return tracker;
- }
-
- /**
- * Creates a new per-part selection tracker for the given part id.
- *
- * @param partId part identifier
- * @return per-part selection tracker
- */
- protected abstract AbstractPartSelectionTracker createPartTracker(
- String partId);
-
- /**
- * Returns the selection.
- */
- @Override
- public ISelection getSelection() {
- if (activeProvider != null) {
- return activeProvider.getSelection();
- }
- return null;
- }
-
- @Override
- public ISelection getSelection(String partId) {
- return getPerPartTracker(partId).getSelection();
- }
-
- /**
- * Sets the current-active part (or null if none)
- *
- * @since 3.1
- *
- * @param newPart the new active part (or null if none)
- */
- public void setActivePart(IWorkbenchPart newPart) {
- // Optimize.
- if (newPart == activePart) {
- return;
- }
-
- ISelectionProvider selectionProvider = null;
-
- if (newPart != null) {
- selectionProvider = newPart.getSite().getSelectionProvider();
-
- if (selectionProvider == null) {
- newPart = null;
- }
- }
-
- if (newPart == activePart) {
- return;
- }
-
- if (activePart != null) {
- if (activeProvider != null) {
- activeProvider.removeSelectionChangedListener(selListener);
- if (activeProvider instanceof IPostSelectionProvider) {
- ((IPostSelectionProvider) activeProvider)
- .removePostSelectionChangedListener(postSelListener);
- } else {
- activeProvider
- .removeSelectionChangedListener(postSelListener);
- }
- activeProvider = null;
- }
- activePart = null;
- }
-
- activePart = newPart;
-
- if (newPart != null) {
- activeProvider = selectionProvider;
- // Fire an event if there's an active provider
- activeProvider.addSelectionChangedListener(selListener);
- ISelection sel = activeProvider.getSelection();
- fireSelection(newPart, sel);
- if (activeProvider instanceof IPostSelectionProvider) {
- ((IPostSelectionProvider) activeProvider)
- .addPostSelectionChangedListener(postSelListener);
- } else {
- activeProvider.addSelectionChangedListener(postSelListener);
- }
- firePostSelection(newPart, sel);
- } else {
- fireSelection(null, null);
- firePostSelection(null, null);
- }
- }
-
-// /**
-// * Notifies the listener that a part has been activated.
-// */
-// public void partActivated(IWorkbenchPart newPart) {
-// // Optimize.
-// if (newPart == activePart)
-// return;
-//
-// // Unhook selection from the old part.
-// reset();
-//
-// // Update active part.
-// activePart = newPart;
-//
-// // Hook selection on the new part.
-// if (activePart != null) {
-// activeProvider = activePart.getSite().getSelectionProvider();
-// if (activeProvider != null) {
-// // Fire an event if there's an active provider
-// activeProvider.addSelectionChangedListener(selListener);
-// ISelection sel = activeProvider.getSelection();
-// fireSelection(newPart, sel);
-// if (activeProvider instanceof IPostSelectionProvider)
-// ((IPostSelectionProvider) activeProvider)
-// .addPostSelectionChangedListener(postSelListener);
-// else
-// activeProvider.addSelectionChangedListener(postSelListener);
-// firePostSelection(newPart, sel);
-// } else {
-// //Reset active part. activeProvider may not be null next time this method is called.
-// activePart = null;
-// }
-// }
-// // No need to fire an event if no active provider, since this was done in reset()
-// }
-//
-// /**
-// * Notifies the listener that a part has been brought to the front.
-// */
-// public void partBroughtToTop(IWorkbenchPart newPart) {
-// // do nothing, the active part has not changed,
-// // so the selection is unaffected
-// }
-//
-// /**
-// * Notifies the listener that a part has been closed
-// */
-// public void partClosed(IWorkbenchPart part) {
-// // Unhook selection from the part.
-// if (part == activePart) {
-// reset();
-// }
-// }
-//
-// /**
-// * Notifies the listener that a part has been deactivated.
-// */
-// public void partDeactivated(IWorkbenchPart part) {
-// // Unhook selection from the part.
-// if (part == activePart) {
-// reset();
-// }
-// }
-//
-// /**
-// * Notifies the listener that a part has been opened.
-// */
-// public void partOpened(IWorkbenchPart part) {
-// // Wait for activation.
-// }
-//
-// /**
-// * Notifies the listener that a part has been opened.
-// */
-// public void partInputChanged(IWorkbenchPart part) {
-// // 36501 - only process if part is active
-// if (activePart == part) {
-// reset();
-// partActivated(part);
-// }
-// }
-//
-// /**
-// * Resets the service. The active part and selection provider are
-// * dereferenced.
-// */
-// public void reset() {
-// if (activePart != null) {
-// fireSelection(null, null);
-// firePostSelection(null, null);
-// if (activeProvider != null) {
-// activeProvider.removeSelectionChangedListener(selListener);
-// if (activeProvider instanceof IPostSelectionProvider)
-// ((IPostSelectionProvider) activeProvider)
-// .removePostSelectionChangedListener(postSelListener);
-// else
-// activeProvider
-// .removeSelectionChangedListener(postSelListener);
-// activeProvider = null;
-// }
-// activePart = null;
-// }
-// }
-
-}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PagePartSelectionTracker.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PagePartSelectionTracker.java
index 15c9fec..bb29902 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PagePartSelectionTracker.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PagePartSelectionTracker.java
@@ -13,19 +13,8 @@
*******************************************************************************/
package org.eclipse.ui.internal;
-import org.eclipse.jface.viewers.IPostSelectionProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveListener2;
import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
/**
* Provides debug view selection management/notification for
@@ -34,95 +23,7 @@
* and still provides selection notification/information even
* when the debug view is not the active part.
*/
-public class PagePartSelectionTracker extends AbstractPartSelectionTracker
- implements IPartListener, IPerspectiveListener2, ISelectionChangedListener {
-
- /**
- * The workbench page for which this is tracking selection.
- */
- private IWorkbenchPage fPage;
-
- /**
- * The part in this tracker's page, or <code>null</code> if one is not open.
- */
- private IWorkbenchPart fPart;
-
- private ISelectionChangedListener selectionListener = event -> fireSelection(getPart(), event.getSelection());
-
- private ISelectionChangedListener postSelectionListener = event -> firePostSelection(getPart(), event.getSelection());
-
- public PagePartSelectionTracker(IWorkbenchPage page, String partId) {
- super(partId);
- setPage(page);
- page.addPartListener(this);
- page.getWorkbenchWindow().addPerspectiveListener(this);
- String secondaryId = null;
- int indexOfColon;
- if ((indexOfColon = partId.indexOf(':')) != -1) {
- secondaryId = partId.substring(indexOfColon + 1);
- partId = partId.substring(0, indexOfColon);
- }
- IViewReference part = page.findViewReference(partId, secondaryId);
- if (part != null && part.getView(false) != null) {
- setPart(part.getView(false), false);
- }
- }
-
- /**
- * Disposes this selection provider - removes all listeners
- * currently registered.
- */
- @Override
- public void dispose() {
- IWorkbenchPage page = getPage();
- page.getWorkbenchWindow().removePerspectiveListener(this);
- page.removePartListener(this);
- setPart(null, false);
- setPage(null);
- super.dispose();
- }
-
- /*
- * @see IPartListener#partActivated(IWorkbenchPart)
- */
- @Override
- public void partActivated(IWorkbenchPart part) {
- }
-
- /*
- * @see IPartListener#partBroughtToTop(IWorkbenchPart)
- */
- @Override
- public void partBroughtToTop(IWorkbenchPart part) {
- }
-
- /**
- * @see IPartListener#partClosed(IWorkbenchPart)
- */
- @Override
- public void partClosed(IWorkbenchPart part) {
- if (getPartId(part).equals(getPartId())) {
- setPart(null, true);
- }
- }
-
- /*
- * @see IPartListener#partDeactivated(IWorkbenchPart)
- */
- @Override
- public void partDeactivated(IWorkbenchPart part) {
- }
-
- /**
- * @see IPartListener#partOpened(IWorkbenchPart)
- */
- @Override
- public void partOpened(IWorkbenchPart part) {
- if (getPartId(part).equals(getPartId())) {
- setPart(part, true);
- }
- }
-
+public class PagePartSelectionTracker {
/**
* Returns the id for the given part, taking into account
* multi-view instances which may have a secondary id.
@@ -140,139 +41,4 @@
}
return id;
}
-
- /**
- * The selection has changed in the part being tracked.
- * Forward it to the listeners.
- *
- * @see ISelectionChangedListener#selectionChanged
- */
- @Override
- public void selectionChanged(SelectionChangedEvent event) {
- fireSelection(getPart(), event.getSelection());
- }
-
- /**
- * Sets the page this selection provider works for
- *
- * @param page workbench page
- */
- private void setPage(IWorkbenchPage page) {
- fPage = page;
- }
-
- /**
- * Returns the page this selection provider works for
- *
- * @return workbench page
- */
- protected IWorkbenchPage getPage() {
- return fPage;
- }
-
- /**
- * Returns the part this is tracking,
- * or <code>null</code> if it is not open
- *
- * @return part., or <code>null</code>
- */
- protected IWorkbenchPart getPart() {
- return fPart;
- }
-
- /*
- * @see AbstractPartSelectionTracker#getSelection()
- */
- @Override
- public ISelection getSelection() {
- IWorkbenchPart part = getPart();
- if (part != null) {
- ISelectionProvider sp = part.getSite().getSelectionProvider();
- if (sp != null) {
- return sp.getSelection();
- }
- }
- return null;
- }
-
- /**
- * @see AbstractDebugSelectionProvider#getSelectionProvider()
- */
- protected ISelectionProvider getSelectionProvider() {
- IWorkbenchPart part = getPart();
- if (part != null) {
- return part.getSite().getSelectionProvider();
- }
- return null;
- }
-
- /**
- * Sets the part for this selection tracker.
- *
- * @param part the part
- * @param notify whether to send notification that the selection has changed.
- */
- private void setPart(IWorkbenchPart part, boolean notify) {
- if (fPart != null) {
- // remove myself as a listener from the existing part
- ISelectionProvider sp = fPart.getSite().getSelectionProvider();
- if (sp != null) {
- sp.removeSelectionChangedListener(selectionListener);
- if (sp instanceof IPostSelectionProvider) {
- ((IPostSelectionProvider) sp)
- .removePostSelectionChangedListener(postSelectionListener);
- } else {
- sp.removeSelectionChangedListener(postSelectionListener);
- }
- }
- }
- fPart = part;
- ISelection sel = null;
- if (part != null) {
- ISelectionProvider sp = part.getSite().getSelectionProvider();
- if (sp != null) {
- sp.addSelectionChangedListener(selectionListener);
- if (sp instanceof IPostSelectionProvider) {
- ((IPostSelectionProvider) sp)
- .addPostSelectionChangedListener(postSelectionListener);
- } else {
- sp.addSelectionChangedListener(postSelectionListener);
- }
- if (notify) {
- // get the selection to send below
- sel = sp.getSelection();
- }
- }
- }
- if (notify) {
- fireSelection(part, sel);
- firePostSelection(part, sel);
- }
- }
-
- @Override
- public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
- // nothing to do
- }
-
- @Override
- public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective, String changeId) {
- // nothing to do
- }
-
- @Override
- public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective,
- IWorkbenchPartReference partRef, String changeId) {
- if (partRef == null)
- return;
- IWorkbenchPart part = partRef.getPart(false);
- if (part == null)
- return;
- if (IWorkbenchPage.CHANGE_VIEW_SHOW.equals(changeId)) {
- if (getPart() != null) // quick check first, plus avoids double setting
- return;
- if (getPartId(part).equals(getPartId()))
- setPart(part, true);
- }
- }
}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PageSelectionService.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PageSelectionService.java
deleted file mode 100644
index 0a8ddc9..0000000
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PageSelectionService.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2014 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal;
-
-import org.eclipse.ui.IWorkbenchPage;
-
-/**
- * The selection service for a page.
- */
-/* package */
-class PageSelectionService extends AbstractSelectionService {
-
- private IWorkbenchPage page;
-
- /**
- * Creates a new selection service for a specific workbench page.
- */
- public PageSelectionService(IWorkbenchPage page) {
- setPage(page);
- }
-
- /**
- * Sets the page.
- */
- private void setPage(IWorkbenchPage page) {
- this.page = page;
- }
-
- /**
- * Returns the page.
- */
- protected IWorkbenchPage getPage() {
- return page;
- }
-
- /*
- * @see AbstractSelectionService#createPartTracker(String)
- */
- @Override
- protected AbstractPartSelectionTracker createPartTracker(String partId) {
- return new PagePartSelectionTracker(getPage(), partId);
- }
-
-}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WindowPartSelectionTracker.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WindowPartSelectionTracker.java
deleted file mode 100644
index 14f21b9..0000000
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WindowPartSelectionTracker.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.INullSelectionListener;
-import org.eclipse.ui.IPageListener;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-
-/**
- * Provides part selection tracking for a part with a specific id
- * in all pages of a specific workbench window. This tracker shields
- * clients from a part opening and closing, and still provides selection
- * notification/information even when the part is not active.
- */
-public class WindowPartSelectionTracker extends AbstractPartSelectionTracker
- implements IPageListener {
- /**
- * The window this selection tracker is working in
- */
- private IWorkbenchWindow fWindow;
-
- /**
- * Part selection listener.
- */
- private final INullSelectionListener selListener = (part, selection) -> fireSelection(part, selection);
-
- /**
- * Part post selection listener
- */
- private final INullSelectionListener postSelListener = (part, selection) -> firePostSelection(part, selection);
-
- /**
- * Constructs a new selection tracker for the given window and part id.
- *
- * @param window workbench window
- * @param partId part identifier
- */
- public WindowPartSelectionTracker(IWorkbenchWindow window, String partId) {
- super(partId);
- setWindow(window);
- window.addPageListener(this);
- for (IWorkbenchPage page : window.getPages()) {
- pageOpened(page);
- }
- }
-
- /*
- * @see IPageListener#pageActivated(IWorkbenchPage)
- */
- @Override
- public void pageActivated(IWorkbenchPage page) {
- }
-
- /*
- * @see IPageListener#pageClosed(IWorkbenchPage)
- */
- @Override
- public void pageClosed(IWorkbenchPage page) {
- page.removeSelectionListener(getPartId(), selListener);
- page.removePostSelectionListener(getPartId(), postSelListener);
- }
-
- /*
- * @see IPageListener#pageOpened(IWorkbenchPage)
- */
- @Override
- public void pageOpened(IWorkbenchPage page) {
- page.addSelectionListener(getPartId(), selListener);
- page.addPostSelectionListener(getPartId(), postSelListener);
- }
-
- /**
- * Sets the window this tracker is working in.
- *
- * @param window workbench window
- */
- private void setWindow(IWorkbenchWindow window) {
- fWindow = window;
- }
-
- /**
- * Returns the window this tracker is working in.
- *
- * @return workbench window
- */
- protected IWorkbenchWindow getWindow() {
- return fWindow;
- }
-
- /**
- * @see AbstractPartSelectionTracker#dispose()
- */
- @Override
- public void dispose() {
- super.dispose();
- fWindow = null;
- }
-
- /*
- * @see AbstractPartSelectionTracker#getSelection()
- */
- @Override
- public ISelection getSelection() {
- IWorkbenchPage page = getWindow().getActivePage();
- if (page != null) {
- return page.getSelection(getPartId());
- }
- return null;
- }
-}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WindowSelectionService.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WindowSelectionService.java
deleted file mode 100644
index 02504d1..0000000
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WindowSelectionService.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2014 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal;
-
-import org.eclipse.ui.IWorkbenchWindow;
-
-/**
- * The selection service for a window.
- */
-/* package */
-class WindowSelectionService extends AbstractSelectionService {
-
- /**
- * The window.
- */
- private IWorkbenchWindow window;
-
- /**
- * Creates a new selection service for the given window.
- */
- public WindowSelectionService(IWorkbenchWindow window) {
- setWindow(window);
- }
-
- /**
- * Sets the window.
- */
- private void setWindow(IWorkbenchWindow window) {
- this.window = window;
- }
-
- /**
- * Returns the window.
- */
- protected IWorkbenchWindow getWindow() {
- return window;
- }
-
- /*
- * @see AbstractSelectionService#createPartTracker(String)
- */
- @Override
- protected AbstractPartSelectionTracker createPartTracker(String partId) {
- return new WindowPartSelectionTracker(getWindow(), partId);
- }
-
-}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchSupportFactory.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchSupportFactory.java
index 623bb87..0472b8f 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchSupportFactory.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchSupportFactory.java
@@ -78,10 +78,6 @@
}
if (ISelectionService.class.equals(serviceInterface)) {
- if (parent instanceof WindowSelectionService && window != null
- && window.getActivePage() != null) {
- return new SlaveSelectionService(window.getActivePage());
- }
return new SlaveSelectionService((ISelectionService) parent);
}