diff options
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/expressions/SelectionSourceProvider.java')
-rw-r--r-- | target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/expressions/SelectionSourceProvider.java | 414 |
1 files changed, 207 insertions, 207 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/expressions/SelectionSourceProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/expressions/SelectionSourceProvider.java index c1dc9d004..4b3c9c0f7 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/expressions/SelectionSourceProvider.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/expressions/SelectionSourceProvider.java @@ -1,207 +1,207 @@ -/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.ui.views.expressions;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.tcf.te.ui.views.interfaces.IUIConstants;
-import org.eclipse.ui.AbstractSourceProvider;
-import org.eclipse.ui.INullSelectionListener;
-import org.eclipse.ui.ISelectionService;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.services.IEvaluationService;
-import org.eclipse.ui.services.IServiceLocator;
-
-/**
- * Selection service source provider implementation.
- */
-public class SelectionSourceProvider extends AbstractSourceProvider implements INullSelectionListener, IWindowListener {
-
- /**
- * Source name identifying the System Manager view selection.
- */
- public static final String systemManagerViewSelectionName = "systemManagerViewSelection"; //$NON-NLS-1$
-
- /**
- * Source name identifying the Debug View view selection.
- */
- public static final String debugViewSelectionName = "debugViewSelection"; //$NON-NLS-1$
-
- // The internal list of provided source names
- private final static String[] PROVIDED_SOURCE_NAMES = { systemManagerViewSelectionName, debugViewSelectionName };
-
- /**
- * Debug view identifier (value <code>"org.eclipse.debug.ui.DebugView"</code>).
- * @see IDebugUIConstants
- */
- private static final String ID_DEBUG_VIEW = "org.eclipse.debug.ui.DebugView"; //$NON-NLS-1$
-
- // The map containing the cached selections
- private final Map<String, ISelection> cache = new HashMap<String, ISelection>();
-
- // The reference to the expression evaluation service
- private IEvaluationService service = null;
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.AbstractSourceProvider#initialize(org.eclipse.ui.services.IServiceLocator)
- */
- @Override
- public void initialize(IServiceLocator locator) {
- super.initialize(locator);
-
- if (PlatformUI.getWorkbench() != null) {
- // Register the service provider as workbench window listener
- PlatformUI.getWorkbench().addWindowListener(this);
- // Initialize the selection cache and the selection listener
- if (PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null) {
- windowOpened(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
- }
- }
-
- // Register the source provider with the expression evaluation service
- if (locator.hasService(IEvaluationService.class)) {
- service = (IEvaluationService)locator.getService(IEvaluationService.class);
- if (service != null) service.addSourceProvider(this);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.ISourceProvider#dispose()
- */
- @Override
- public void dispose() {
- // Unregister the selection listener
- if (PlatformUI.getWorkbench() != null) {
- // Unregister the service provide as workbench window listener
- PlatformUI.getWorkbench().removeWindowListener(this);
- // Unregister the selection listener
- if (PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null) {
- windowClosed(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
- }
- }
-
- // Unregister the source provider from the expression evaluation service
- if (service != null) { service.removeSourceProvider(this); service = null; }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.ISourceProvider#getProvidedSourceNames()
- */
- @Override
- public String[] getProvidedSourceNames() {
- return PROVIDED_SOURCE_NAMES;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.ISourceProvider#getCurrentState()
- */
- @Override
- public Map getCurrentState() {
- Map<String, Object> state = new HashMap<String, Object>();
-
- ISelection selection = cache.get(IUIConstants.ID_EXPLORER);
- state.put(systemManagerViewSelectionName, selection != null ? selection : IEvaluationContext.UNDEFINED_VARIABLE);
-
- selection = cache.get(ID_DEBUG_VIEW);
- state.put(debugViewSelectionName, selection != null ? selection : IEvaluationContext.UNDEFINED_VARIABLE);
-
- return state;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
- */
- @Override
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- String partId = part != null ? part.getSite().getId() : null;
- if (!IUIConstants.ID_EXPLORER.equals(partId) && !ID_DEBUG_VIEW.equals(partId)) {
- return;
- }
-
- // Update the cached selection
- if (selection != null) cache.put(partId, selection);
- else cache.remove(partId);
-
- // Fire the source changed notification
- fireSourceChanged(ISources.WORKBENCH, IUIConstants.ID_EXPLORER.equals(partId) ? systemManagerViewSelectionName : debugViewSelectionName,
- selection != null ? selection : IEvaluationContext.UNDEFINED_VARIABLE);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWindowListener#windowActivated(org.eclipse.ui.IWorkbenchWindow)
- */
- @Override
- public void windowActivated(IWorkbenchWindow window) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWindowListener#windowDeactivated(org.eclipse.ui.IWorkbenchWindow)
- */
- @Override
- public void windowDeactivated(IWorkbenchWindow window) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWindowListener#windowClosed(org.eclipse.ui.IWorkbenchWindow)
- */
- @Override
- public void windowClosed(IWorkbenchWindow window) {
- // Remove ourself as selection listener
- if (window != null && window.getSelectionService() != null) {
- ISelectionService service = window.getSelectionService();
- service.removePostSelectionListener(IUIConstants.ID_EXPLORER, this);
- service.removePostSelectionListener(ID_DEBUG_VIEW, this);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWindowListener#windowOpened(org.eclipse.ui.IWorkbenchWindow)
- */
- @Override
- public void windowOpened(IWorkbenchWindow window) {
- // A new workbench window opened. We have to register
- // ourself as selection listener if not done
- if (window != null && window.getSelectionService() != null) {
- // Get the selection service
- ISelectionService service = window.getSelectionService();
-
- // Unregister the source provider first, just in case to
- // avoid the listener to be registered multiple time
- service.removePostSelectionListener(IUIConstants.ID_EXPLORER, this);
- service.removePostSelectionListener(ID_DEBUG_VIEW, this);
-
- // Register the source provider now as post selection listener
- service.addPostSelectionListener(IUIConstants.ID_EXPLORER, this);
- service.addPostSelectionListener(ID_DEBUG_VIEW, this);
-
- // Initialize the selections
- ISelection selection = service.getSelection(IUIConstants.ID_EXPLORER);
- if (selection != null) cache.put(IUIConstants.ID_EXPLORER, selection);
- else cache.remove(IUIConstants.ID_EXPLORER);
-
- fireSourceChanged(ISources.WORKBENCH, systemManagerViewSelectionName,
- selection != null ? selection : IEvaluationContext.UNDEFINED_VARIABLE);
-
- selection = service.getSelection(ID_DEBUG_VIEW);
- if (selection != null) cache.put(ID_DEBUG_VIEW, selection);
- else cache.remove(ID_DEBUG_VIEW);
-
- fireSourceChanged(ISources.WORKBENCH, debugViewSelectionName,
- selection != null ? selection : IEvaluationContext.UNDEFINED_VARIABLE);
- }
- }
-}
+/******************************************************************************* + * Copyright (c) 2012, 2013 Wind River Systems, Inc. and others. All rights reserved. + * This program and the accompanying materials are made available under the terms + * of the Eclipse Public License v1.0 which accompanies this distribution, and is + * available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.ui.views.expressions; + +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.core.expressions.IEvaluationContext; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.tcf.te.ui.views.interfaces.IUIConstants; +import org.eclipse.ui.AbstractSourceProvider; +import org.eclipse.ui.INullSelectionListener; +import org.eclipse.ui.ISelectionService; +import org.eclipse.ui.ISources; +import org.eclipse.ui.IWindowListener; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.services.IEvaluationService; +import org.eclipse.ui.services.IServiceLocator; + +/** + * Selection service source provider implementation. + */ +public class SelectionSourceProvider extends AbstractSourceProvider implements INullSelectionListener, IWindowListener { + + /** + * Source name identifying the System Manager view selection. + */ + public static final String systemManagerViewSelectionName = "systemManagerViewSelection"; //$NON-NLS-1$ + + /** + * Source name identifying the Debug View view selection. + */ + public static final String debugViewSelectionName = "debugViewSelection"; //$NON-NLS-1$ + + // The internal list of provided source names + private final static String[] PROVIDED_SOURCE_NAMES = { systemManagerViewSelectionName, debugViewSelectionName }; + + /** + * Debug view identifier (value <code>"org.eclipse.debug.ui.DebugView"</code>). + * @see IDebugUIConstants + */ + private static final String ID_DEBUG_VIEW = "org.eclipse.debug.ui.DebugView"; //$NON-NLS-1$ + + // The map containing the cached selections + private final Map<String, ISelection> cache = new HashMap<String, ISelection>(); + + // The reference to the expression evaluation service + private IEvaluationService service = null; + + /* (non-Javadoc) + * @see org.eclipse.ui.AbstractSourceProvider#initialize(org.eclipse.ui.services.IServiceLocator) + */ + @Override + public void initialize(IServiceLocator locator) { + super.initialize(locator); + + if (PlatformUI.getWorkbench() != null) { + // Register the service provider as workbench window listener + PlatformUI.getWorkbench().addWindowListener(this); + // Initialize the selection cache and the selection listener + if (PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null) { + windowOpened(PlatformUI.getWorkbench().getActiveWorkbenchWindow()); + } + } + + // Register the source provider with the expression evaluation service + if (locator.hasService(IEvaluationService.class)) { + service = (IEvaluationService)locator.getService(IEvaluationService.class); + if (service != null) service.addSourceProvider(this); + } + } + + /* (non-Javadoc) + * @see org.eclipse.ui.ISourceProvider#dispose() + */ + @Override + public void dispose() { + // Unregister the selection listener + if (PlatformUI.getWorkbench() != null) { + // Unregister the service provide as workbench window listener + PlatformUI.getWorkbench().removeWindowListener(this); + // Unregister the selection listener + if (PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null) { + windowClosed(PlatformUI.getWorkbench().getActiveWorkbenchWindow()); + } + } + + // Unregister the source provider from the expression evaluation service + if (service != null) { service.removeSourceProvider(this); service = null; } + } + + /* (non-Javadoc) + * @see org.eclipse.ui.ISourceProvider#getProvidedSourceNames() + */ + @Override + public String[] getProvidedSourceNames() { + return PROVIDED_SOURCE_NAMES; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.ISourceProvider#getCurrentState() + */ + @Override + public Map getCurrentState() { + Map<String, Object> state = new HashMap<String, Object>(); + + ISelection selection = cache.get(IUIConstants.ID_EXPLORER); + state.put(systemManagerViewSelectionName, selection != null ? selection : IEvaluationContext.UNDEFINED_VARIABLE); + + selection = cache.get(ID_DEBUG_VIEW); + state.put(debugViewSelectionName, selection != null ? selection : IEvaluationContext.UNDEFINED_VARIABLE); + + return state; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection) + */ + @Override + public void selectionChanged(IWorkbenchPart part, ISelection selection) { + String partId = part != null ? part.getSite().getId() : null; + if (!IUIConstants.ID_EXPLORER.equals(partId) && !ID_DEBUG_VIEW.equals(partId)) { + return; + } + + // Update the cached selection + if (selection != null) cache.put(partId, selection); + else cache.remove(partId); + + // Fire the source changed notification + fireSourceChanged(ISources.WORKBENCH, IUIConstants.ID_EXPLORER.equals(partId) ? systemManagerViewSelectionName : debugViewSelectionName, + selection != null ? selection : IEvaluationContext.UNDEFINED_VARIABLE); + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IWindowListener#windowActivated(org.eclipse.ui.IWorkbenchWindow) + */ + @Override + public void windowActivated(IWorkbenchWindow window) { + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IWindowListener#windowDeactivated(org.eclipse.ui.IWorkbenchWindow) + */ + @Override + public void windowDeactivated(IWorkbenchWindow window) { + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IWindowListener#windowClosed(org.eclipse.ui.IWorkbenchWindow) + */ + @Override + public void windowClosed(IWorkbenchWindow window) { + // Remove ourself as selection listener + if (window != null && window.getSelectionService() != null) { + ISelectionService service = window.getSelectionService(); + service.removePostSelectionListener(IUIConstants.ID_EXPLORER, this); + service.removePostSelectionListener(ID_DEBUG_VIEW, this); + } + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IWindowListener#windowOpened(org.eclipse.ui.IWorkbenchWindow) + */ + @Override + public void windowOpened(IWorkbenchWindow window) { + // A new workbench window opened. We have to register + // ourself as selection listener if not done + if (window != null && window.getSelectionService() != null) { + // Get the selection service + ISelectionService service = window.getSelectionService(); + + // Unregister the source provider first, just in case to + // avoid the listener to be registered multiple time + service.removePostSelectionListener(IUIConstants.ID_EXPLORER, this); + service.removePostSelectionListener(ID_DEBUG_VIEW, this); + + // Register the source provider now as post selection listener + service.addPostSelectionListener(IUIConstants.ID_EXPLORER, this); + service.addPostSelectionListener(ID_DEBUG_VIEW, this); + + // Initialize the selections + ISelection selection = service.getSelection(IUIConstants.ID_EXPLORER); + if (selection != null) cache.put(IUIConstants.ID_EXPLORER, selection); + else cache.remove(IUIConstants.ID_EXPLORER); + + fireSourceChanged(ISources.WORKBENCH, systemManagerViewSelectionName, + selection != null ? selection : IEvaluationContext.UNDEFINED_VARIABLE); + + selection = service.getSelection(ID_DEBUG_VIEW); + if (selection != null) cache.put(ID_DEBUG_VIEW, selection); + else cache.remove(ID_DEBUG_VIEW); + + fireSourceChanged(ISources.WORKBENCH, debugViewSelectionName, + selection != null ? selection : IEvaluationContext.UNDEFINED_VARIABLE); + } + } +} |