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/utils/DebugViewUtils.java')
-rw-r--r--dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/utils/DebugViewUtils.java79
1 files changed, 79 insertions, 0 deletions
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/utils/DebugViewUtils.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/utils/DebugViewUtils.java
new file mode 100644
index 00000000000..b91497d35b7
--- /dev/null
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/utils/DebugViewUtils.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2012 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William R. Swanson (Tilera Corporation)
+ *******************************************************************************/
+
+package org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.utils;
+
+import org.eclipse.cdt.visualizer.ui.util.GUIUtils;
+import org.eclipse.cdt.visualizer.ui.util.RunnableWithResult;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer;
+import org.eclipse.debug.internal.ui.views.launch.LaunchView;
+import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+
+
+/** Assorted utilities for interacting with the Debug View (aka LaunchView). */
+@SuppressWarnings("restriction") // allow access to internal classes
+public class DebugViewUtils
+{
+ // --- static utility methods ---
+
+ /**
+ * Returns Debug View (a.k.a. LaunchView).
+ */
+ public static LaunchView getDebugView() {
+ return (LaunchView) getViewWithID(IDebugUIConstants.ID_DEBUG_VIEW);
+ }
+
+ /**
+ * Returns tree model viewer for Debug View (a.k.a. LaunchView).
+ */
+ public static TreeModelViewer getDebugViewer() {
+ LaunchView debugView = getDebugView();
+ TreeModelViewer viewer = (debugView == null) ? null : (TreeModelViewer) debugView.getViewer();
+ return viewer;
+ }
+
+ /** Gets workbench view (if any) with specified ID. */
+ public static IViewPart getViewWithID(String viewID) {
+ final String viewID_f = viewID;
+ RunnableWithResult<IViewPart> runnable =
+ new RunnableWithResult<IViewPart>() {
+ @Override
+ public IViewPart call() {
+ IViewPart view = null;
+ IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ if (activePage != null) {
+ view = (viewID_f == null) ? null : activePage.findView(viewID_f);
+ }
+ return view;
+ }
+ };
+ // run on UI thread, wait for result
+ GUIUtils.execAndWait(runnable);
+ IViewPart result = runnable.getResult();
+ return result;
+ }
+
+ /**
+ * Sets debug view selection.
+ * Specified selection is an IStructuredSelection containing a flat list
+ * of the model objects (that is, _not_ the tree view nodes) to be selected.
+ */
+ public static boolean setDebugViewSelection(ISelection selection)
+ {
+ TreeModelViewer viewer = DebugViewUtils.getDebugViewer();
+ if (viewer == null || selection == null) return false;
+ return viewer.trySelection(selection, true, true);
+ }
+}

Back to the top