[jbosstools-commits] JBoss Tools SVN: r41770 - in trunk: tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/view and 1 other directory.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Jun 7 09:45:33 EDT 2012


Author: ljelinko
Date: 2012-06-07 09:45:32 -0400 (Thu, 07 Jun 2012)
New Revision: 41770

Modified:
   trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/console/ConsoleClearingTask.java
   trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/view/ViewBase.java
Log:
Added method getToolbarButtons to fix Juno issues with SWTBot (fix taken from Eclipse Bug 375598 proposed patch)

Modified: trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/console/ConsoleClearingTask.java
===================================================================
--- trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/console/ConsoleClearingTask.java	2012-06-07 13:42:02 UTC (rev 41769)
+++ trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/console/ConsoleClearingTask.java	2012-06-07 13:45:32 UTC (rev 41770)
@@ -1,6 +1,5 @@
 package org.jboss.tools.portlet.ui.bot.task.console;
 
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
 import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarButton;
 import org.jboss.tools.portlet.ui.bot.task.AbstractSWTTask;
 import org.jboss.tools.ui.bot.ext.SWTBotFactory;
@@ -17,9 +16,8 @@
 	@Override
 	public void perform() {
 		// does not use the ConsoleView.clear() funtionality because it didn't work for me 
-		SWTBotView view = SWTBotFactory.getConsole().show();
-		
-		for (SWTBotToolbarButton button : view.getToolbarButtons()){
+
+		for (SWTBotToolbarButton button : SWTBotFactory.getConsole().getToolbarButtons()){
 			if (button.isEnabled() && IDELabel.ConsoleView.BUTTON_CLEAR_CONSOLE_TOOLTIP.equals(button.getToolTipText())){
 				button.click();
 			}

Modified: trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/view/ViewBase.java
===================================================================
--- trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/view/ViewBase.java	2012-06-07 13:42:02 UTC (rev 41769)
+++ trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/view/ViewBase.java	2012-06-07 13:45:32 UTC (rev 41770)
@@ -1,8 +1,29 @@
 package org.jboss.tools.ui.bot.ext.view;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.log4j.Logger;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.ToolBarManager;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
 import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
 import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
+import org.eclipse.swtbot.swt.finder.results.ListResult;
+import org.eclipse.swtbot.swt.finder.utils.SWTUtils;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarButton;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarDropDownButton;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarPushButton;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarRadioButton;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarSeparatorButton;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarToggleButton;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.internal.WorkbenchPartReference;
 import org.jboss.tools.ui.bot.ext.SWTBotExt;
 import org.jboss.tools.ui.bot.ext.SWTOpenExt;
 import org.jboss.tools.ui.bot.ext.SWTTestExt;
@@ -45,4 +66,44 @@
 		return open.viewOpen(viewObject);
 	}
 
+	public List<SWTBotToolbarButton> getToolbarButtons() {
+		return UIThreadRunnable.syncExec(new ListResult<SWTBotToolbarButton>() {
+
+			public List<SWTBotToolbarButton> run() {
+				SWTBotView view = show();
+				IWorkbenchPart obj = ((WorkbenchPartReference) view.getReference()).getPart(false);
+				ToolBar toolbar = null;
+				IToolBarManager t = ((IViewSite)obj.getSite()).getActionBars().getToolBarManager();
+				if (t instanceof ToolBarManager) {
+				    toolbar = ((ToolBarManager)t).getControl();
+				}
+
+				final List<SWTBotToolbarButton> l = new ArrayList<SWTBotToolbarButton>();
+
+				if (toolbar == null)
+					return l;
+
+				ToolItem[] items = toolbar.getItems();
+				for (int i = 0; i < items.length; i++) {
+					try {
+						if (SWTUtils.hasStyle(items[i], SWT.PUSH))
+							l.add(new SWTBotToolbarPushButton(items[i]));
+						else if(SWTUtils.hasStyle(items[i], SWT.CHECK))
+							l.add(new SWTBotToolbarToggleButton(items[i]));
+						else if(SWTUtils.hasStyle(items[i], SWT.RADIO))
+							l.add(new SWTBotToolbarRadioButton(items[i]));
+						else if(SWTUtils.hasStyle(items[i], SWT.DROP_DOWN))
+							l.add(new SWTBotToolbarDropDownButton(items[i]));
+						else if(SWTUtils.hasStyle(items[i], SWT.SEPARATOR))
+							l.add(new SWTBotToolbarSeparatorButton(items[i]));
+					} catch (WidgetNotFoundException e) {
+						e.printStackTrace();
+					}
+				}
+
+				return l;
+
+			}
+		});
+	}
 }



More information about the jbosstools-commits mailing list