From d04019eacd32b5adc07a535975529e24f179381f Mon Sep 17 00:00:00 2001 From: Marc Khouzam Date: Thu, 27 Oct 2016 11:03:41 -0400 Subject: [PATCH] Simplify API that opens the DebuggerConsole IDebuggerConsoleManager.showConsoleView() was mimicked on IConsoleManager.showConsoleView() which allows to specify which console in the view should now be shown. This makes sense for the generic platform Console view where extenders could choose to display any kind of console when an event happens (e.g., a build console when the build is started). However, in our Debugger Console case, it complicates things unnecessarily. In our case, we want to be able to open the view, but the console to show is handled by other logic such as a synchronizer service. And if there is a need to change which console should be shown within the Debugger Console view, then IDebuggerConsoleView.display() should be used. I think having it in IConsoleManager.showConsoleView() is a shortcut that is not very useful in our case. Change-Id: Id66ea5c953e8a7ab603cfc23789a814c1ad821d2 --- .../debuggerconsole/DebuggerConsoleManager.java | 15 ++------------- .../debuggerconsole/DebuggerConsoleView.java | 2 +- .../debuggerconsole/IDebuggerConsoleManager.java | 7 ++----- .../internal/ui/console/GdbCliConsoleManager.java | 2 +- 4 files changed, 6 insertions(+), 20 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/debuggerconsole/DebuggerConsoleManager.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/debuggerconsole/DebuggerConsoleManager.java index 5d178dbc185..ad90f994f86 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/debuggerconsole/DebuggerConsoleManager.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/debuggerconsole/DebuggerConsoleManager.java @@ -81,29 +81,21 @@ public class DebuggerConsoleManager implements IDebuggerConsoleManager { } @Override - public void showConsoleView(IDebuggerConsole console) { - fShowDebuggerConsoleViewJob.setConsole(console); + public void showConsoleView() { fShowDebuggerConsoleViewJob.schedule(100); } private class ShowDebuggerConsoleViewJob extends WorkbenchJob { - private IConsole fConsole; - ShowDebuggerConsoleViewJob() { super("Show GDB Console View"); //$NON-NLS-1$ setSystem(true); setPriority(Job.SHORT); } - void setConsole(IConsole console) { - fConsole = console; - } - @Override public IStatus runInUIThread(IProgressMonitor monitor) { IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); - IConsole c = fConsole; - if (window != null && c != null) { + if (window != null) { IWorkbenchPage page = window.getActivePage(); if (page != null) { boolean consoleFound = false; @@ -114,7 +106,6 @@ public class DebuggerConsoleManager implements IDebuggerConsoleManager { if (consoleVisible) { consoleFound = true; page.bringToTop(consoleView); - consoleView.display(c); } } @@ -125,14 +116,12 @@ public class DebuggerConsoleManager implements IDebuggerConsoleManager { null, IWorkbenchPage.VIEW_CREATE); page.bringToTop(consoleView); - consoleView.display(c); } catch (PartInitException e) { CDebugUIPlugin.log(e); } } } } - fConsole = null; return Status.OK_STATUS; } } diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/debuggerconsole/DebuggerConsoleView.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/debuggerconsole/DebuggerConsoleView.java index fd513db0950..0af01357613 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/debuggerconsole/DebuggerConsoleView.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/debuggerconsole/DebuggerConsoleView.java @@ -289,7 +289,7 @@ implements IConsoleView, IDebuggerConsoleView, IConsoleListener, IPropertyChange new PageSwitcher(this) { @Override public void activatePage(Object page) { - getConsoleManager().showConsoleView((IDebuggerConsole)page); + display((IDebuggerConsole)page); } @Override diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/debuggerconsole/IDebuggerConsoleManager.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/debuggerconsole/IDebuggerConsoleManager.java index a66c3cf6be6..870a25a8d6e 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/debuggerconsole/IDebuggerConsoleManager.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/debuggerconsole/IDebuggerConsoleManager.java @@ -52,11 +52,8 @@ public interface IDebuggerConsoleManager { public IDebuggerConsole[] getConsoles(); /** - * Opens the console view and displays given the console. + * Opens the console view. * If the view is already open, it is brought to the front. - * Has no effect if the given console is not currently registered. - * - * @param console console to display */ - public void showConsoleView(IDebuggerConsole console); + public void showConsoleView(); } diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbCliConsoleManager.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbCliConsoleManager.java index 49e9a048a1f..15870f79389 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbCliConsoleManager.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbCliConsoleManager.java @@ -199,7 +199,7 @@ public class GdbCliConsoleManager implements ILaunchesListener2 { addConsole(console); // Make sure the Debugger Console view is visible - getDebuggerConsoleManager().showConsoleView(console); + getDebuggerConsoleManager().showConsoleView(); } }