/******************************************************************************* * 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.CoolBar; /** * A {@link CoolBar} reference. */ public class CoolBarReference extends CompositeReference<CoolBar> { public CoolBarReference(CoolBar coolbar) { super(coolbar); } /** * Gets the tab 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 CoolItemReference[] getItems() { return displayRef.execute(new Callable<CoolItemReference[]>() { public CoolItemReference[] call() throws Exception { return asReferencesOfType(widget.getItems(), CoolItemReference.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 (CoolItemReference item: getItems()) // item.accept(visitor); // visitor.visitLeave(this); // } // /* (non-Javadoc) // * @see com.windowtester.runtime.swt.internal.widgets.CompositeReference#visitChildren(com.windowtester.runtime.swt.internal.widgets.SWTWidgetReference.Visitor) // */ // @Override // protected void visitChildren(SWTWidgetReference.Visitor visitor) { // super.visitChildren(visitor); // for (CoolItemReference item: getItems()) // item.accept(visitor); // } // /* (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(getMenu()).add(getChildControls()).add(getItems()); } }