Bug 412658 - console view: - don't use widgets, use console manager
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 fcddf63..d578e0e 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
@@ -17,11 +17,9 @@
 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;
@@ -121,31 +119,20 @@
 	        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;
-	        		}
+	        IConsole[] consoles = ConsolePlugin.getDefault().getConsoleManager().getConsoles();
+			IConsole current = fView.getConsole();
+			int idx = 0;
+			for (int i = 0; i < consoles.length; i++) {
+				idx = i;
+				if(consoles[i] == current) {
+					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();
-	        	}
-	        }	
+			}
+			int next = idx+1;
+        	if(next >= consoles.length) {
+        		next = 0;
+        	}
+        	fView.display(consoles[next]);
         }
         finally {
 	        if (pinned) {