Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/view/MulticoreVisualizer.java')
-rwxr-xr-xdsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/view/MulticoreVisualizer.java58
1 files changed, 57 insertions, 1 deletions
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/view/MulticoreVisualizer.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/view/MulticoreVisualizer.java
index 65443da8b91..aab49363d3b 100755
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/view/MulticoreVisualizer.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/view/MulticoreVisualizer.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Tilera Corporation and others.
+ * Copyright (c) 2012, 2013 Tilera Corporation 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
@@ -11,6 +11,7 @@
* Marc Dumais (Ericsson) - Bug 399281
* Marc Dumais (Ericsson) - Add CPU/core load information to the multicore visualizer (Bug 396268)
* Marc Dumais (Ericsson) - Bug 399419
+ * Marc Dumais (Ericsson) - Bug 405390
*******************************************************************************/
package org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.view;
@@ -29,6 +30,7 @@ import org.eclipse.cdt.dsf.gdb.launching.GDBProcess;
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.actions.EnableLoadMetersAction;
+import org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.actions.FilterCanvasAction;
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.SetLoadMeterPeriodAction;
@@ -197,6 +199,11 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
/** Menu action */
List<SetLoadMeterPeriodAction> m_setLoadMeterPeriodActions = null;
+ /** Menu action */
+ FilterCanvasAction m_setFilterAction = null;
+
+ /** Menu action */
+ FilterCanvasAction m_clearFilterAction = null;
// --- constructors/destructors ---
@@ -339,6 +346,23 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
return (MulticoreVisualizerCanvas) getCanvas();
}
+ /** Sets-up a canvas filter */
+ public void applyCanvasFilter() {
+ m_canvas.applyFilter();
+ refresh();
+ }
+
+ /** Removes current canvas filter */
+ public void clearCanvasFilter() {
+ m_canvas.clearFilter();
+ refresh();
+ }
+
+ /** Tells if a canvas filter is in effect */
+ public boolean isCanvasFilterActive() {
+ return m_canvas.isFilterActive();
+ }
+
/** Return the data model backing this multicore visualizer */
public VisualizerModel getModel() {
return fDataModel;
@@ -415,6 +439,16 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
defaultAction.setChecked(true);
defaultAction.run();
+ // canvas filter actions - they will be dynamically enabled/disabled
+ // according to canvas selection
+ m_setFilterAction = new FilterCanvasAction(true);
+ m_setFilterAction.init(this);
+ m_setFilterAction.setEnabled(false);
+
+ m_clearFilterAction = new FilterCanvasAction(false);
+ m_clearFilterAction.init(this);
+ m_clearFilterAction.setEnabled(false);
+
// Note: debug view may not be initialized at startup,
// so we'll pretend the actions are not yet updated,
// and reinitialize them later.
@@ -429,6 +463,13 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
boolean enabled = hasSelection();
m_selectAllAction.setEnabled(enabled);
m_refreshAction.setEnabled(enabled);
+
+ // enable "filter-to selection" menu item if there is a
+ // canvas selection
+ m_setFilterAction.setEnabled(m_canvas.hasSelection());
+
+ // enable "Clear filter" menu item if filter is active
+ m_clearFilterAction.setEnabled(isCanvasFilterActive());
// show the load meter refresh speed sub-menu only
// if the load meters are enabled
@@ -515,6 +556,16 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
m_setLoadMeterPeriodActions = null;
}
+ if (m_setFilterAction != null) {
+ m_setFilterAction.dispose();
+ m_setFilterAction = null;
+ }
+
+ if (m_clearFilterAction != null) {
+ m_clearFilterAction.dispose();
+ m_clearFilterAction = null;
+ }
+
m_actionsInitialized = false;
}
@@ -592,6 +643,11 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
m_loadMetersRefreshSubSubmenu.add(act);
}
+ // add filtering options
+ menuManager.add(m_separatorAction);
+ menuManager.add(m_setFilterAction);
+ menuManager.add(m_clearFilterAction);
+
updateActions();
Point location = m_viewer.getContextMenuLocation();
updateContextMenuActions(location);

Back to the top