Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Rennie2013-07-10 16:49:32 +0000
committerMike Rennie2013-07-10 16:49:32 +0000
commitff806bed25131ecc9187492c04a0dbc8dd12e3d6 (patch)
tree8346280500d657e5da51a58de6c9b01b502c68d6
parentdb7d993330d69dc6de2db58ac09eb158da0fbda6 (diff)
downloadeclipse.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.MF2
-rw-r--r--org.eclipse.ui.console/pom.xml2
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java48
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);
+ }
}
}

Back to the top