diff options
author | Mike Rennie | 2013-07-10 16:49:32 +0000 |
---|---|---|
committer | Mike Rennie | 2013-07-10 16:49:32 +0000 |
commit | ff806bed25131ecc9187492c04a0dbc8dd12e3d6 (patch) | |
tree | 8346280500d657e5da51a58de6c9b01b502c68d6 | |
parent | db7d993330d69dc6de2db58ac09eb158da0fbda6 (diff) | |
download | eclipse.platform.debug-ff806bed25131ecc9187492c04a0dbc8dd12e3d6.tar.gz eclipse.platform.debug-ff806bed25131ecc9187492c04a0dbc8dd12e3d6.tar.xz eclipse.platform.debug-ff806bed25131ecc9187492c04a0dbc8dd12e3d6.zip |
Bug 412658 - console view: "display selected console" should iterate
over _all_ open consoles
Change-Id: I1b9c20889d5fca94509382d11dd799038f4286d2
-rw-r--r-- | org.eclipse.ui.console/META-INF/MANIFEST.MF | 2 | ||||
-rw-r--r-- | org.eclipse.ui.console/pom.xml | 2 | ||||
-rw-r--r-- | org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java | 48 |
3 files changed, 38 insertions, 14 deletions
diff --git a/org.eclipse.ui.console/META-INF/MANIFEST.MF b/org.eclipse.ui.console/META-INF/MANIFEST.MF index 2beda5927..21638453f 100644 --- a/org.eclipse.ui.console/META-INF/MANIFEST.MF +++ b/org.eclipse.ui.console/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.ui.console; singleton:=true -Bundle-Version: 3.5.200.qualifier +Bundle-Version: 3.5.300.qualifier Bundle-Activator: org.eclipse.ui.console.ConsolePlugin Bundle-Vendor: %providerName Bundle-Localization: plugin diff --git a/org.eclipse.ui.console/pom.xml b/org.eclipse.ui.console/pom.xml index 21736bef2..2a5ca537c 100644 --- a/org.eclipse.ui.console/pom.xml +++ b/org.eclipse.ui.console/pom.xml @@ -18,6 +18,6 @@ </parent> <groupId>org.eclipse.ui</groupId> <artifactId>org.eclipse.ui.console</artifactId> - <version>3.5.200-SNAPSHOT</version> + <version>3.5.300-SNAPSHOT</version> <packaging>eclipse-plugin</packaging> </project> diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java index ab3b388ee..fcddf63d2 100644 --- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java +++ b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2008 IBM Corporation and others. + * Copyright (c) 2000, 2013 IBM 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,17 +11,17 @@ package org.eclipse.ui.internal.console; -import java.util.List; - import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.ActionContributionItem; +import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IMenuCreator; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.MenuItem; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.console.ConsolePlugin; import org.eclipse.ui.console.IConsole; @@ -117,16 +117,40 @@ class ConsoleDropDownAction extends Action implements IMenuCreator, IConsoleList public void run() { ConsoleView consoleView = (ConsoleView) fView; boolean pinned = consoleView.isPinned(); - if (pinned) { - consoleView.setPinned(false); + try { + if (pinned) { + consoleView.setPinned(false); + } + //we should be switching over the console views as ordered in the drop down + //not based on the internal view stack, which changes as new console are opened / brought to top + int size = fMenu.getItemCount(); + if(fMenu != null && size > 1) { + int idx = 0; + MenuItem[] items = fMenu.getItems(); + for (int i = 0; i < items.length; i++) { + idx = i; + if(items[i].getSelection()) { + break; + } + } + int next = idx+1; + if(next >= size) { + next = 0; + } + Object data = items[next].getData(); + if(data instanceof ActionContributionItem) { + //we have to set the selection because unless the sub-menu is shown it does not update + items[idx].setSelection(false); + items[next].setSelection(true); + IAction action = ((ActionContributionItem)data).getAction(); + action.run(); + } + } } - List stack = consoleView.getConsoleStack(); - if (stack.size() > 1) { - IConsole console = (IConsole) stack.get(1); - fView.display(console); - } - if (pinned) { - consoleView.setPinned(true); + finally { + if (pinned) { + consoleView.setPinned(true); + } } } |