/*******************************************************************************
* Copyright (c) 2014 BREDEX GmbH.
* 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:
* BREDEX GmbH - initial API and implementation and/or initial documentation
*******************************************************************************/
package org.eclipse.jubula.rc.javafx.tester.adapter;
import java.util.List;
import java.util.concurrent.Callable;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import org.eclipse.jubula.rc.common.tester.adapter.interfaces.IMenuComponent;
import org.eclipse.jubula.rc.common.tester.adapter.interfaces.IMenuItemComponent;
import org.eclipse.jubula.rc.javafx.driver.EventThreadQueuerJavaFXImpl;
/**
* Adapter for a MenuBar.
*
* @author BREDEX GmbH
* @created 10.2.2014
*/
public class MenuBarAdapter extends JavaFXComponentAdapter<MenuBar> implements
IMenuComponent {
/**
* Creates an adapter for a MenuBar.
*
* @param objectToAdapt
* the object which needs to be adapted
*/
public MenuBarAdapter(MenuBar objectToAdapt) {
super(objectToAdapt);
}
/**
* Returns the adapted Menus of this MenuBar
* @return the Menus
*/
@Override
public IMenuItemComponent[] getItems() {
return EventThreadQueuerJavaFXImpl.invokeAndWait("getItems", //$NON-NLS-1$
new Callable<IMenuItemComponent[]>() {
@Override
public IMenuItemComponent[] call() throws Exception {
List<Menu> menus = getRealComponent().getMenus();
if (menus.size() > 0) {
IMenuItemComponent[] itemAdapters =
new IMenuItemComponent[menus.size()];
for (int i = 0; i < menus.size(); i++) {
itemAdapters[i] = new MenuBarItemAdapter(menus
.get(i));
}
return itemAdapters;
}
return null;
}
});
}
@Override
public int getItemCount() {
return EventThreadQueuerJavaFXImpl.invokeAndWait("getItemCount", //$NON-NLS-1$
new Callable<Integer>() {
@Override
public Integer call() throws Exception {
return getRealComponent().getMenus().size();
}
});
}
}