mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-09-10 03:53:21 +02:00
Bug 441713 - [visualizer] Make pinning of multicore visualizer view
possible Change-Id: Ie47c21c35dc85d4efd34f273f8f0a51d4e82d16a Reviewed-on: https://git.eclipse.org/r/31898 Reviewed-by: Marc Dumais <marc.dumais@ericsson.com> Tested-by: Marc Dumais <marc.dumais@ericsson.com>
This commit is contained in:
parent
698bb0afe4
commit
ce5a26d6ce
8 changed files with 188 additions and 5 deletions
|
@ -7,7 +7,7 @@ Bundle-Activator: org.eclipse.cdt.debug.ui.CDebugUIPlugin
|
||||||
Bundle-Vendor: %providerName
|
Bundle-Vendor: %providerName
|
||||||
Bundle-Localization: plugin
|
Bundle-Localization: plugin
|
||||||
Export-Package:
|
Export-Package:
|
||||||
org.eclipse.cdt.debug.internal.ui;x-friends:="org.eclipse.cdt.dsf.ui,org.eclipse.cdt.dsf.gdb.ui",
|
org.eclipse.cdt.debug.internal.ui;x-friends:="org.eclipse.cdt.dsf.ui,org.eclipse.cdt.dsf.gdb.ui,org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui",
|
||||||
org.eclipse.cdt.debug.internal.ui.actions;x-friends:="org.eclipse.cdt.dsf.ui,org.eclipse.cdt.debug.ui.memory.memorybrowser,org.eclipse.cdt.visualizer.ui",
|
org.eclipse.cdt.debug.internal.ui.actions;x-friends:="org.eclipse.cdt.dsf.ui,org.eclipse.cdt.debug.ui.memory.memorybrowser,org.eclipse.cdt.visualizer.ui",
|
||||||
org.eclipse.cdt.debug.internal.ui.actions.breakpoints;x-internal:=true,
|
org.eclipse.cdt.debug.internal.ui.actions.breakpoints;x-internal:=true,
|
||||||
org.eclipse.cdt.debug.internal.ui.breakpoints;x-friends:="org.eclipse.cdt.dsf.ui,org.eclipse.cdt.dsf.gdb.ui",
|
org.eclipse.cdt.debug.internal.ui.breakpoints;x-friends:="org.eclipse.cdt.dsf.ui,org.eclipse.cdt.dsf.gdb.ui",
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
* Ericsson - Added tracepoint support (284286)
|
* Ericsson - Added tracepoint support (284286)
|
||||||
* Marc Khouzam (Ericsson) - Added dynamic printf support (400628)
|
* Marc Khouzam (Ericsson) - Added dynamic printf support (400628)
|
||||||
* Marc Dumais (Ericsson) - Bug 437692
|
* Marc Dumais (Ericsson) - Bug 437692
|
||||||
|
* Marc Dumais (Ericsson) - Bug 441713
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.debug.internal.ui;
|
package org.eclipse.cdt.debug.internal.ui;
|
||||||
|
|
||||||
|
@ -127,6 +128,7 @@ public class CDebugImages {
|
||||||
public static final String IMG_LCL_DETAIL_PANE_HIDE = NAME_PREFIX + "det_pane_hide.gif"; //$NON-NLS-1$
|
public static final String IMG_LCL_DETAIL_PANE_HIDE = NAME_PREFIX + "det_pane_hide.gif"; //$NON-NLS-1$
|
||||||
public static final String IMG_LCL_COLLAPSE_ALL = NAME_PREFIX + "collapseall.gif"; //$NON-NLS-1$
|
public static final String IMG_LCL_COLLAPSE_ALL = NAME_PREFIX + "collapseall.gif"; //$NON-NLS-1$
|
||||||
public static final String IMG_LCL_OPEN_NEW_VIEW = NAME_PREFIX + "open_new.gif"; //$NON-NLS-1$
|
public static final String IMG_LCL_OPEN_NEW_VIEW = NAME_PREFIX + "open_new.gif"; //$NON-NLS-1$
|
||||||
|
public static final String IMG_LCL_PIN_VIEW = NAME_PREFIX + "toolbar_pinned.gif"; //$NON-NLS-1$
|
||||||
|
|
||||||
public static final String IMG_WIZBAN_ADD_SOURCE = NAME_PREFIX + "addsrcloc_wiz.gif"; //$NON-NLS-1$
|
public static final String IMG_WIZBAN_ADD_SOURCE = NAME_PREFIX + "addsrcloc_wiz.gif"; //$NON-NLS-1$
|
||||||
public static final String IMG_WIZBAN_PATH_MAPPING = NAME_PREFIX + "mapping_wiz.gif"; //$NON-NLS-1$
|
public static final String IMG_WIZBAN_PATH_MAPPING = NAME_PREFIX + "mapping_wiz.gif"; //$NON-NLS-1$
|
||||||
|
@ -215,6 +217,7 @@ public class CDebugImages {
|
||||||
public static final ImageDescriptor DESC_LCL_COLLAPSE_ALL = createManaged(T_ELCL, IMG_LCL_COLLAPSE_ALL);
|
public static final ImageDescriptor DESC_LCL_COLLAPSE_ALL = createManaged(T_ELCL, IMG_LCL_COLLAPSE_ALL);
|
||||||
public static final ImageDescriptor DESC_LCL_COLLAPSE_ALL_DISABLED = createManaged(T_DLCL, IMG_LCL_COLLAPSE_ALL);
|
public static final ImageDescriptor DESC_LCL_COLLAPSE_ALL_DISABLED = createManaged(T_DLCL, IMG_LCL_COLLAPSE_ALL);
|
||||||
public static final ImageDescriptor DESC_LCL_OPEN_NEW_VIEW = createManaged(T_ELCL, IMG_LCL_OPEN_NEW_VIEW);
|
public static final ImageDescriptor DESC_LCL_OPEN_NEW_VIEW = createManaged(T_ELCL, IMG_LCL_OPEN_NEW_VIEW);
|
||||||
|
public static final ImageDescriptor DESC_LCL_PIN_VIEW = createManaged(T_ELCL, IMG_LCL_PIN_VIEW);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the image managed under the given key in this registry.
|
* Returns the image managed under the given key in this registry.
|
||||||
|
|
|
@ -15,7 +15,8 @@ Require-Bundle: org.eclipse.ui,
|
||||||
org.eclipse.cdt.visualizer.core,
|
org.eclipse.cdt.visualizer.core,
|
||||||
org.eclipse.cdt.visualizer.ui,
|
org.eclipse.cdt.visualizer.ui,
|
||||||
org.eclipse.debug.ui,
|
org.eclipse.debug.ui,
|
||||||
org.eclipse.cdt.core
|
org.eclipse.cdt.core,
|
||||||
|
org.eclipse.cdt.debug.ui
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||||
Import-Package: com.ibm.icu.text
|
Import-Package: com.ibm.icu.text
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# Copyright (c) 2012, 2013 Tilera Corporation and others.
|
# Copyright (c) 2012, 2014 Tilera Corporation and others.
|
||||||
# All rights reserved. This program and the accompanying materials
|
# All rights reserved. This program and the accompanying materials
|
||||||
# are made available under the terms of the Eclipse Public License v1.0
|
# are made available under the terms of the Eclipse Public License v1.0
|
||||||
# which accompanies this distribution, and is available at
|
# which accompanies this distribution, and is available at
|
||||||
|
@ -9,6 +9,7 @@
|
||||||
# William R. Swanson (Tilera Corporation)
|
# William R. Swanson (Tilera Corporation)
|
||||||
# Marc Dumais (Ericsson) - Add CPU/core load information to the multicore visualizer (Bug 396268)
|
# Marc Dumais (Ericsson) - Add CPU/core load information to the multicore visualizer (Bug 396268)
|
||||||
# Marc Dumais (Ericsson) - Bug 405390
|
# Marc Dumais (Ericsson) - Bug 405390
|
||||||
|
# Marc Dumais (Ericsson) - Bug 441713
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
@ -36,6 +37,10 @@ MulticoreVisualizer.actions.LoadMetersRefreshSubSubmenu.text=Refresh Speed
|
||||||
|
|
||||||
MulticoreVisualizer.actions.ClearFilter.text=Clear filter
|
MulticoreVisualizer.actions.ClearFilter.text=Clear filter
|
||||||
MulticoreVisualizer.actions.SetFilter.text=Filter to selection
|
MulticoreVisualizer.actions.SetFilter.text=Filter to selection
|
||||||
|
|
||||||
|
MulticoreVisualizer.actions.PinToDebugSession.text=Pin view to debug session
|
||||||
|
MulticoreVisualizer.actions.PinToDebugSession.description=Pin this view to the current debug session
|
||||||
|
|
||||||
MulticoreVisualizer.view.CanvasFilter.Active.text=Filter Active:
|
MulticoreVisualizer.view.CanvasFilter.Active.text=Filter Active:
|
||||||
MulticoreVisualizer.view.CanvasFilter.cpu.text=CPUs:
|
MulticoreVisualizer.view.CanvasFilter.cpu.text=CPUs:
|
||||||
MulticoreVisualizer.view.CanvasFilter.core.text=Cores:
|
MulticoreVisualizer.view.CanvasFilter.core.text=Cores:
|
||||||
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2014 Ericsson 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:
|
||||||
|
* Marc Dumais (Ericsson) - Initial API and implementation (Bug 441713)
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
package org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.actions;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.debug.internal.ui.CDebugImages;
|
||||||
|
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.MulticoreVisualizerUIPlugin;
|
||||||
|
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.view.MulticoreVisualizer;
|
||||||
|
import org.eclipse.cdt.visualizer.ui.VisualizerAction;
|
||||||
|
|
||||||
|
/** Pins the multicore visualizer to the current debug session */
|
||||||
|
public class PinToDebugSessionAction extends VisualizerAction {
|
||||||
|
|
||||||
|
// --- members ---
|
||||||
|
|
||||||
|
/** current active state of pinning */
|
||||||
|
private boolean m_pinActive;
|
||||||
|
|
||||||
|
/** Visualizer instance we're associated with. */
|
||||||
|
MulticoreVisualizer m_visualizer = null;
|
||||||
|
|
||||||
|
|
||||||
|
// --- constructors/destructors ---
|
||||||
|
|
||||||
|
/** Constructor. */
|
||||||
|
public PinToDebugSessionAction() {
|
||||||
|
super(MulticoreVisualizerUIPlugin.getString("MulticoreVisualizer.actions.PinToDebugSession.text"), //$NON-NLS-1$
|
||||||
|
MulticoreVisualizerUIPlugin.getString("MulticoreVisualizer.actions.PinToDebugSession.description"), //$NON-NLS-1$
|
||||||
|
CDebugImages.DESC_LCL_PIN_VIEW
|
||||||
|
);
|
||||||
|
|
||||||
|
// at first, this action is disabled (un-pinned)
|
||||||
|
setChecked(false);
|
||||||
|
m_pinActive = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Dispose method. */
|
||||||
|
@Override
|
||||||
|
public void dispose() {
|
||||||
|
m_visualizer = null;
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// --- init methods ---
|
||||||
|
|
||||||
|
/** Initializes this action for the specified view. */
|
||||||
|
public void init(MulticoreVisualizer visualizer)
|
||||||
|
{
|
||||||
|
m_visualizer = visualizer;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- methods ---
|
||||||
|
|
||||||
|
/** Invoked when action is triggered. */
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
// Toggle pinned state
|
||||||
|
m_pinActive = !m_pinActive;
|
||||||
|
|
||||||
|
if (m_pinActive) {
|
||||||
|
m_visualizer.pin();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_visualizer.unpin();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2014 Ericsson 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:
|
||||||
|
* Marc Dumais (Ericsson) - Initial API and implementation (Bug 441713)
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
package org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.view;
|
||||||
|
|
||||||
|
/** Interface for pinnable objects */
|
||||||
|
public interface IPinnable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pins to the current context
|
||||||
|
*/
|
||||||
|
public void pin();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unpins
|
||||||
|
*/
|
||||||
|
public void unpin();
|
||||||
|
|
||||||
|
/** Returns whether currently pinned */
|
||||||
|
public boolean isPinned();
|
||||||
|
}
|
|
@ -17,6 +17,7 @@
|
||||||
* Marc-Andre Laperle (Ericsson) - Bug 411634
|
* Marc-Andre Laperle (Ericsson) - Bug 411634
|
||||||
* Marc Dumais (Ericsson) - Bug 409965
|
* Marc Dumais (Ericsson) - Bug 409965
|
||||||
* Xavier Raynaud (kalray) - Bug 431935
|
* Xavier Raynaud (kalray) - Bug 431935
|
||||||
|
* Marc Dumais (Ericsson) - Bug 441713
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.view;
|
package org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.view;
|
||||||
|
@ -37,6 +38,7 @@ import org.eclipse.cdt.dsf.gdb.launching.GdbLaunch;
|
||||||
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.MulticoreVisualizerUIPlugin;
|
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.MulticoreVisualizerUIPlugin;
|
||||||
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.actions.EnableLoadMetersAction;
|
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.actions.EnableLoadMetersAction;
|
||||||
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.actions.FilterCanvasAction;
|
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.actions.FilterCanvasAction;
|
||||||
|
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.actions.PinToDebugSessionAction;
|
||||||
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.actions.RefreshAction;
|
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.actions.RefreshAction;
|
||||||
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.actions.SelectAllAction;
|
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.actions.SelectAllAction;
|
||||||
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.actions.SetLoadMeterPeriodAction;
|
import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.actions.SetLoadMeterPeriodAction;
|
||||||
|
@ -95,7 +97,7 @@ import org.eclipse.swt.widgets.Composite;
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("restriction")
|
@SuppressWarnings("restriction")
|
||||||
public class MulticoreVisualizer extends GraphicCanvasVisualizer
|
public class MulticoreVisualizer extends GraphicCanvasVisualizer
|
||||||
implements DSFDebugModelListener
|
implements DSFDebugModelListener, IPinnable
|
||||||
{
|
{
|
||||||
// --- constants ---
|
// --- constants ---
|
||||||
|
|
||||||
|
@ -158,6 +160,9 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
|
||||||
private static final int LOAD_METER_TIMER_MEDIUM = 1000;
|
private static final int LOAD_METER_TIMER_MEDIUM = 1000;
|
||||||
private static final int LOAD_METER_TIMER_SLOW = 5000;
|
private static final int LOAD_METER_TIMER_SLOW = 5000;
|
||||||
|
|
||||||
|
/** Currently pinned session id, if any */
|
||||||
|
private String m_currentPinedSessionId = null;
|
||||||
|
|
||||||
|
|
||||||
// --- UI members ---
|
// --- UI members ---
|
||||||
|
|
||||||
|
@ -211,6 +216,9 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
|
||||||
/** Menu action */
|
/** Menu action */
|
||||||
FilterCanvasAction m_clearFilterAction = null;
|
FilterCanvasAction m_clearFilterAction = null;
|
||||||
|
|
||||||
|
/** Menu action */
|
||||||
|
PinToDebugSessionAction m_pinToDbgSessionAction = null;
|
||||||
|
|
||||||
// --- constructors/destructors ---
|
// --- constructors/destructors ---
|
||||||
|
|
||||||
/** Constructor. */
|
/** Constructor. */
|
||||||
|
@ -456,6 +464,10 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
|
||||||
m_clearFilterAction.init(this);
|
m_clearFilterAction.init(this);
|
||||||
m_clearFilterAction.setEnabled(false);
|
m_clearFilterAction.setEnabled(false);
|
||||||
|
|
||||||
|
m_pinToDbgSessionAction = new PinToDebugSessionAction();
|
||||||
|
m_pinToDbgSessionAction.init(this);
|
||||||
|
m_pinToDbgSessionAction.setEnabled(false);
|
||||||
|
|
||||||
// Note: debug view may not be initialized at startup,
|
// Note: debug view may not be initialized at startup,
|
||||||
// so we'll pretend the actions are not yet updated,
|
// so we'll pretend the actions are not yet updated,
|
||||||
// and reinitialize them later.
|
// and reinitialize them later.
|
||||||
|
@ -482,6 +494,9 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
|
||||||
// if the load meters are enabled
|
// if the load meters are enabled
|
||||||
m_loadMetersRefreshSubSubmenu.setVisible(m_loadMetersEnabled);
|
m_loadMetersRefreshSubSubmenu.setVisible(m_loadMetersEnabled);
|
||||||
|
|
||||||
|
// Enable pinning menu item when there is a current debug session
|
||||||
|
m_pinToDbgSessionAction.setEnabled(m_sessionState != null);
|
||||||
|
|
||||||
// We should not change the enablement of the debug view
|
// We should not change the enablement of the debug view
|
||||||
// actions, as they are automatically enabled/disabled
|
// actions, as they are automatically enabled/disabled
|
||||||
// by the platform.
|
// by the platform.
|
||||||
|
@ -573,6 +588,11 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
|
||||||
m_clearFilterAction = null;
|
m_clearFilterAction = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_pinToDbgSessionAction != null) {
|
||||||
|
m_pinToDbgSessionAction.dispose();
|
||||||
|
m_pinToDbgSessionAction = null;
|
||||||
|
}
|
||||||
|
|
||||||
m_actionsInitialized = false;
|
m_actionsInitialized = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -596,6 +616,7 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
|
||||||
toolBarManager.add(m_stepOverAction);
|
toolBarManager.add(m_stepOverAction);
|
||||||
toolBarManager.add(m_stepIntoAction);
|
toolBarManager.add(m_stepIntoAction);
|
||||||
toolBarManager.add(m_dropToFrameAction);
|
toolBarManager.add(m_dropToFrameAction);
|
||||||
|
toolBarManager.add(m_pinToDbgSessionAction);
|
||||||
|
|
||||||
updateActions();
|
updateActions();
|
||||||
}
|
}
|
||||||
|
@ -862,7 +883,10 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
|
||||||
}
|
}
|
||||||
else { // thread
|
else { // thread
|
||||||
VisualizerThread thread = model.getThread(tid);
|
VisualizerThread thread = model.getThread(tid);
|
||||||
if (thread != null) {
|
// here "tid" is the "GDB thread id", which is not
|
||||||
|
// unique across sessions, so make sure the thread
|
||||||
|
// belongs to the correct process, before selecting it
|
||||||
|
if (thread != null && thread.getPID() == pid) {
|
||||||
selected.add(thread);
|
selected.add(thread);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -876,6 +900,39 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// --- IPinnable implementation ---
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pins the multicore visualizer to the current debug session, preventing
|
||||||
|
* it from switching to a different session.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void pin() {
|
||||||
|
// No current session - do nothing
|
||||||
|
if (m_sessionState == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
m_currentPinedSessionId = m_sessionState.getSessionID();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unpins the visualizer.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void unpin() {
|
||||||
|
m_currentPinedSessionId = null;
|
||||||
|
// force visualizer to re-evaluate its current session and
|
||||||
|
// display the correct one, if needed
|
||||||
|
workbenchSelectionChanged(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns whether the MV is currently pinned to a session */
|
||||||
|
@Override
|
||||||
|
public boolean isPinned() {
|
||||||
|
return m_currentPinedSessionId != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// --- DSF Context Management ---
|
// --- DSF Context Management ---
|
||||||
|
|
||||||
/** Updates debug context being displayed by canvas.
|
/** Updates debug context being displayed by canvas.
|
||||||
|
@ -883,6 +940,10 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
|
||||||
*/
|
*/
|
||||||
public boolean updateDebugContext()
|
public boolean updateDebugContext()
|
||||||
{
|
{
|
||||||
|
// is the visualizer pinned? Then inhibit context change
|
||||||
|
if (isPinned())
|
||||||
|
return false;
|
||||||
|
|
||||||
String sessionId = null;
|
String sessionId = null;
|
||||||
IAdaptable debugContext = DebugUITools.getDebugContext();
|
IAdaptable debugContext = DebugUITools.getDebugContext();
|
||||||
if (debugContext instanceof IDMVMContext) {
|
if (debugContext instanceof IDMVMContext) {
|
||||||
|
|
|
@ -279,6 +279,14 @@ public class VisualizerView
|
||||||
else if (source == this) {
|
else if (source == this) {
|
||||||
// Do nothing.
|
// Do nothing.
|
||||||
}
|
}
|
||||||
|
// if the source is another instance of VisualizerView
|
||||||
|
// it's a selection in another (cloned) view. The
|
||||||
|
// workbench selection has or will be updated by the
|
||||||
|
// instance of the view where the selection originated,
|
||||||
|
// so no need to do anything
|
||||||
|
else if (source.getClass() == VisualizerView.class) {
|
||||||
|
// Do nothing.
|
||||||
|
}
|
||||||
// else this is a selection change from some other view
|
// else this is a selection change from some other view
|
||||||
// in the workbench, which we should pass down to the viewer
|
// in the workbench, which we should pass down to the viewer
|
||||||
else {
|
else {
|
||||||
|
|
Loading…
Add table
Reference in a new issue