/*******************************************************************************
* Copyright (c) 2012 Google, Inc.
* 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
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Google, Inc. - initial API and implementation
*******************************************************************************/
package com.windowtester.test.widgets;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.swt.widgets.Widget;
import com.windowtester.codegen.generator.LocatorJavaStringFactory;
import com.windowtester.internal.runtime.IWidgetIdentifier;
import com.windowtester.runtime.locator.IWidgetLocator;
import com.windowtester.runtime.locator.IWidgetReference;
import com.windowtester.runtime.swt.internal.locator.WidgetIdentifier;
import com.windowtester.runtime.swt.locator.SWTWidgetLocator;
import com.windowtester.test.eclipse.BaseTest;
import com.windowtester.test.eclipse.helpers.JavaProjectHelper;
import com.windowtester.test.eclipse.helpers.WorkBenchHelper;
@SuppressWarnings("restriction")
public class WidgetIdentifierTest extends BaseTest {
WidgetIdentifier identifier = WidgetIdentifier.getInstance();
public void testViewTabs() throws Exception {
idAndDisplayAll(CTabItem.class);
}
public void testViewToolItems() throws Exception {
idAndDisplayAll(ToolItem.class);
}
public void testTreeItems() throws Exception {
WorkBenchHelper.openPreferences(getUI());
idAndDisplayAll(TreeItem.class);
}
public void testPackageExplorerTreeItems() throws Exception {
JavaProjectHelper.createJavaProject(getUI(), getClass().getName() + "Project");
idAndDisplayAll(TreeItem.class);
}
private void idAndDisplayAll(Class<? extends Widget> cls) {
List<? extends Widget> items = findAll(cls);
for (Widget item : items) {
idAndDisplay(item);
}
}
private void idAndDisplay(Widget w) {
IWidgetIdentifier loc = identify(w);
String str = LocatorJavaStringFactory.toJavaString(loc);
System.out.println(str);
}
IWidgetIdentifier identify(Widget w){
return identifier.identify(w);
}
@SuppressWarnings("unchecked")
public <T> List<T> findAll(Class<T> cls) {
List<T> widgets = new ArrayList<T>();
IWidgetLocator[] refs = getUI().findAll(new SWTWidgetLocator(cls));
for (IWidgetLocator ref : refs) {
widgets.add((T)((IWidgetReference)ref).getWidget());
}
return widgets;
}
}