mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-09-10 03:53:21 +02:00
[177587] Kevin's patch for selection provider in Monitor view
This commit is contained in:
parent
060656a2c1
commit
807e1d2515
3 changed files with 102 additions and 8 deletions
|
@ -15,6 +15,7 @@
|
||||||
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
||||||
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
||||||
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
|
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
|
||||||
|
* Kevin Doyle (IBM) - [177587] changed wrapped selection provider in setFocus()
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.ui.view.monitor;
|
package org.eclipse.rse.internal.ui.view.monitor;
|
||||||
|
@ -277,7 +278,8 @@ FocusListener
|
||||||
|
|
||||||
public void setFocus()
|
public void setFocus()
|
||||||
{
|
{
|
||||||
_viewPart.getSite().setSelectionProvider(_viewer);
|
if (_viewPart != null)
|
||||||
|
_viewPart.setActiveViewerSelectionProvider(_viewer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IActionBars getActionBars()
|
public IActionBars getActionBars()
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* {Name} (company) - description of contribution.
|
* {Name} (company) - description of contribution.
|
||||||
|
* Kevin Doyle (IBM) - [177587] createTabItem sets the wrapped selection provider
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.ui.view.monitor;
|
package org.eclipse.rse.internal.ui.view.monitor;
|
||||||
|
@ -229,9 +230,11 @@ public class MonitorViewWorkbook extends Composite
|
||||||
monitorViewPage.setInput(root);
|
monitorViewPage.setInput(root);
|
||||||
|
|
||||||
SystemTableView viewer = monitorViewPage.getViewer();
|
SystemTableView viewer = monitorViewPage.getViewer();
|
||||||
_viewPart.getSite().setSelectionProvider(viewer);
|
if (_viewPart != null)
|
||||||
_viewPart.getSite().registerContextMenu(viewer.getContextMenuManager(), viewer);
|
{
|
||||||
|
_viewPart.setActiveViewerSelectionProvider(viewer);
|
||||||
|
_viewPart.getSite().registerContextMenu(viewer.getContextMenuManager(), viewer);
|
||||||
|
}
|
||||||
monitorViewPage.setFocus();
|
monitorViewPage.setFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,13 +14,14 @@
|
||||||
* Michael Berger (IBM) - 146339 Added refresh action graphic.
|
* Michael Berger (IBM) - 146339 Added refresh action graphic.
|
||||||
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
||||||
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
|
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
|
||||||
|
* Kevin Doyle (IBM) - [177587] Made MonitorViewPart a SelectionProvider
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.ui.view.monitor;
|
package org.eclipse.rse.internal.ui.view.monitor;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
|
||||||
import org.eclipse.core.runtime.IAdaptable;
|
import org.eclipse.core.runtime.IAdaptable;
|
||||||
import org.eclipse.jface.action.IMenuManager;
|
import org.eclipse.jface.action.IMenuManager;
|
||||||
import org.eclipse.jface.action.IStatusLineManager;
|
import org.eclipse.jface.action.IStatusLineManager;
|
||||||
|
@ -28,6 +29,7 @@ import org.eclipse.jface.action.IToolBarManager;
|
||||||
import org.eclipse.jface.action.Separator;
|
import org.eclipse.jface.action.Separator;
|
||||||
import org.eclipse.jface.viewers.ISelection;
|
import org.eclipse.jface.viewers.ISelection;
|
||||||
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
||||||
|
import org.eclipse.jface.viewers.ISelectionProvider;
|
||||||
import org.eclipse.jface.viewers.SelectionChangedEvent;
|
import org.eclipse.jface.viewers.SelectionChangedEvent;
|
||||||
import org.eclipse.jface.viewers.Viewer;
|
import org.eclipse.jface.viewers.Viewer;
|
||||||
import org.eclipse.jface.window.Window;
|
import org.eclipse.jface.window.Window;
|
||||||
|
@ -90,7 +92,8 @@ public class SystemMonitorViewPart
|
||||||
ISystemShellProvider,
|
ISystemShellProvider,
|
||||||
ISystemRemoteChangeListener,
|
ISystemRemoteChangeListener,
|
||||||
ISystemMessageLine,
|
ISystemMessageLine,
|
||||||
IRSEViewPart
|
IRSEViewPart,
|
||||||
|
ISelectionProvider
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
@ -621,6 +624,11 @@ class SubSetAction extends BrowseAction
|
||||||
private SubSetAction _subsetAction = null;
|
private SubSetAction _subsetAction = null;
|
||||||
private PositionToAction _positionToAction = null;
|
private PositionToAction _positionToAction = null;
|
||||||
|
|
||||||
|
private ISelectionProvider viewerProvider = null;
|
||||||
|
private ArrayList selectionListeners = new ArrayList();
|
||||||
|
|
||||||
|
private ISelectionChangedListener selectionListener = null;
|
||||||
|
|
||||||
// constants
|
// constants
|
||||||
public static final String ID = "org.eclipse.rse.ui.view.monitorView"; //$NON-NLS-1$
|
public static final String ID = "org.eclipse.rse.ui.view.monitorView"; //$NON-NLS-1$
|
||||||
// matches id in plugin.xml, view tag
|
// matches id in plugin.xml, view tag
|
||||||
|
@ -672,6 +680,21 @@ class SubSetAction extends BrowseAction
|
||||||
|
|
||||||
RestoreStateRunnable restore = new RestoreStateRunnable();
|
RestoreStateRunnable restore = new RestoreStateRunnable();
|
||||||
Display.getCurrent().asyncExec(restore);
|
Display.getCurrent().asyncExec(restore);
|
||||||
|
|
||||||
|
getSite().setSelectionProvider(this);
|
||||||
|
selectionListener = new ISelectionChangedListener() {
|
||||||
|
public void selectionChanged (SelectionChangedEvent event)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < selectionListeners.size(); i++)
|
||||||
|
{
|
||||||
|
if (selectionListeners.get(i) instanceof ISelectionChangedListener)
|
||||||
|
{
|
||||||
|
((ISelectionChangedListener) selectionListeners.get(i)).selectionChanged(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
fillLocalToolBar();
|
fillLocalToolBar();
|
||||||
|
|
||||||
|
@ -760,7 +783,60 @@ class SubSetAction extends BrowseAction
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addSelectionChangedListener(ISelectionChangedListener listener)
|
||||||
|
{
|
||||||
|
if (selectionListeners != null)
|
||||||
|
selectionListeners.add(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeSelectionChangedListener(ISelectionChangedListener listener)
|
||||||
|
{
|
||||||
|
if (selectionListeners != null)
|
||||||
|
selectionListeners.remove(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ISelection getSelection()
|
||||||
|
{
|
||||||
|
if (viewerProvider == null)
|
||||||
|
return null;
|
||||||
|
else
|
||||||
|
return viewerProvider.getSelection();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the wrapped selection provider.
|
||||||
|
* This method should only be called when the viewer changes.
|
||||||
|
* @param newProvider The new wrapped selection provider.
|
||||||
|
*/
|
||||||
|
public void setActiveViewerSelectionProvider(ISelectionProvider newProvider)
|
||||||
|
{
|
||||||
|
if (viewerProvider != null)
|
||||||
|
viewerProvider.removeSelectionChangedListener(selectionListener);
|
||||||
|
|
||||||
|
viewerProvider = newProvider;
|
||||||
|
|
||||||
|
if (newProvider != null)
|
||||||
|
{
|
||||||
|
newProvider.addSelectionChangedListener(selectionListener);
|
||||||
|
|
||||||
|
// Create a new event and tell all listeners about it, so that the properties
|
||||||
|
// view is updated to show the new viewers selected object
|
||||||
|
SelectionChangedEvent event = new SelectionChangedEvent(newProvider, newProvider.getSelection());
|
||||||
|
for (int i = 0; i < selectionListeners.size(); i++)
|
||||||
|
{
|
||||||
|
if (selectionListeners.get(i) instanceof ISelectionChangedListener)
|
||||||
|
{
|
||||||
|
((ISelectionChangedListener) selectionListeners.get(i)).selectionChanged(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSelection(ISelection selection)
|
||||||
|
{
|
||||||
|
if (viewerProvider != null)
|
||||||
|
viewerProvider.setSelection(selection);
|
||||||
|
}
|
||||||
|
|
||||||
public void addItemToMonitor(IAdaptable root)
|
public void addItemToMonitor(IAdaptable root)
|
||||||
{
|
{
|
||||||
|
@ -921,7 +997,20 @@ class SubSetAction extends BrowseAction
|
||||||
public void widgetSelected(SelectionEvent e)
|
public void widgetSelected(SelectionEvent e)
|
||||||
{
|
{
|
||||||
Widget source = e.widget;
|
Widget source = e.widget;
|
||||||
|
Widget item = e.item;
|
||||||
|
Object data = item.getData();
|
||||||
|
MonitorViewPage page = null;
|
||||||
|
|
||||||
|
if (data instanceof MonitorViewPage)
|
||||||
|
page = (MonitorViewPage) data;
|
||||||
|
|
||||||
|
// Set the wrapped viewer to be the viewer of the new selected tab
|
||||||
|
if (page != null)
|
||||||
|
{
|
||||||
|
SystemTableView viewer = page.getViewer();
|
||||||
|
setActiveViewerSelectionProvider(viewer);
|
||||||
|
}
|
||||||
|
|
||||||
if (source == _folder.getFolder())
|
if (source == _folder.getFolder())
|
||||||
{
|
{
|
||||||
updateActionStates();
|
updateActionStates();
|
||||||
|
|
Loading…
Add table
Reference in a new issue