/******************************************************************************* * 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.runtime.swt.internal.widgets; import java.util.concurrent.Callable; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; /** * A {@link Table} reference. */ public class TableReference extends CompositeReference<Table> { public TableReference(Table table) { super(table); } /** * Gets the table item count. * * @return the number of items in the menu. */ public int getItemCount() { return displayRef.execute(new Callable<Integer>() { public Integer call() throws Exception { return widget.getItemCount(); } }); } /* (non-Javadoc) * @see com.windowtester.runtime.swt.internal.widgets.SWTWidgetReference#getParent() */ public CompositeReference<Composite> getParent() { return displayRef.execute(new Callable<CompositeReference<Composite>>() { public CompositeReference<Composite> call() throws Exception { Composite parent = widget.getParent(); if (parent == null) return null; return new CompositeReference<Composite>(parent); } }); } public TableItemReference[] getItems() { return displayRef.execute(new Callable<TableItemReference[]>() { public TableItemReference[] call() throws Exception { return asReferencesOfType(widget.getItems(), TableItemReference.class); } }); } public TableColumnReference[] getColumns() { return displayRef.execute(new Callable<TableColumnReference[]>() { public TableColumnReference[] call() throws Exception { return asReferencesOfType(widget.getColumns(), TableColumnReference.class); } }); } // /* (non-Javadoc) // * @see com.windowtester.runtime.swt.internal.widgets.SWTWidgetReference#accept(com.windowtester.runtime.swt.internal.widgets.SWTWidgetReference.Visitor) // */ // @Override // public void accept(SWTWidgetReference.Visitor visitor) { // visitor.visit(this); // visitor.visitEnter(this); // for (SWTWidgetReference<?> child : getChildren()) // child.accept(visitor); // for (TableItemReference item: getItems()) // item.accept(visitor); // for (TableColumnReference item: getColumns()) // item.accept(visitor); // visitor.visitLeave(this); // } /* (non-Javadoc) * @see com.windowtester.runtime.swt.internal.widgets.CompositeReference#setChildren(com.windowtester.runtime.swt.internal.widgets.SWTWidgetReference.ChildSet) */ @Override protected void setChildren(ChildSet children) { children.add(getChildControls()).add(getItems()).add(getColumns()); } }