// Path: src/main/java/org/robotframework/formslibrary/operator/ListOperator.java
// public class ListOperator extends AbstractComponentOperator {
// 
// 	/**
// 	 * Initialize an ListOperator with the given list component.
// 	 */
// 	public ListOperator(Component list) {
// 		super(list);
// 	}
// 
// 	/**
// 	 * Initialize a CheckboxOperator with a check box that has the specified
// 	 * name in the current context.
// 	 * 
// 	 * @param identifier
// 	 *            checkbox label or ToolTip text.
// 	 */
// 	public ListOperator(String identifier) {
// 		super(getComponentChooser(identifier));
// 	}
// 
// 	private static ComponentChooser getComponentChooser(String identifier) {
// 		if (TextUtil.isNumeric(identifier)) {
// 			return new ByComponentTypeChooser(Integer.parseInt(identifier), ComponentType.LWList);
// 		} else {
// 			return new ByNameChooser(identifier, ComponentType.LWList);
// 		}
// 	}
// 
// 	public void select(String identifier) {
// 		int index;
// 		if (TextUtil.isNumeric(identifier)) {
// 			index = Integer.parseInt(identifier);
// 		} else {
// 			String[] items = getItems();
// 			index = Arrays.asList(items).indexOf(identifier);
// 			if (index == -1) {
// 				throw new FormsLibraryException("Value '" + identifier + "' not fond in list: " + items);
// 			}
// 		}
// 		ObjectUtil.invokeMethodWithIntArg(getSource(), "select()", index);
// 
// 		Method m;
// 		try {
// 			m = getSource().getClass().getSuperclass().getDeclaredMethod("_postItemEvent", String.class, int.class);
// 			m.setAccessible(true);
// 			m.invoke(getSource(), getItem(index), ItemEvent.SELECTED);
// 		} catch (Exception e) {
// 			e.printStackTrace();
// 			throw new FormsLibraryException("Could not call method _selectItem");
// 		}
// 
// 	}
// 
// 	public String getSelected() {
// 		return (String) ObjectUtil.invokeMethod(getSource(), "getSelectedItem()");
// 	}
// 
// 	public String getItem(int i) {
// 		return (String) ObjectUtil.invokeMethodWithIntArg(getSource(), "getItem()", i);
// 	}
// 
// 	public String[] getItems() {
// 		return (String[]) ObjectUtil.invokeMethod(getSource(), "getItems()");
// 	}
// 
// }


import org.robotframework.formslibrary.operator.ListOperator;
import org.robotframework.javalib.annotation.ArgumentNames;
import org.robotframework.javalib.annotation.RobotKeyword;
import org.robotframework.javalib.annotation.RobotKeywords;

package org.robotframework.formslibrary.keyword;


@RobotKeywords
public class ListKeyword {

	@RobotKeyword("Select List Item .\n\nExample:\\n| Select List Item | _1_ | _1_ | \n| Select List Item | _listname_ | 1 | \n"
			+ "\n| Select List Item | _listname_ | _value_ | \\n")
	@ArgumentNames({ "listIdentifier", "valueIdentifier" })
	public void selectListItem(String listIdentifier, String valueIdentifier) {

// Path: src/main/java/org/robotframework/formslibrary/operator/ListOperator.java
// public class ListOperator extends AbstractComponentOperator {
// 
// 	/**
// 	 * Initialize an ListOperator with the given list component.
// 	 */
// 	public ListOperator(Component list) {
// 		super(list);
// 	}
// 
// 	/**
// 	 * Initialize a CheckboxOperator with a check box that has the specified
// 	 * name in the current context.
// 	 * 
// 	 * @param identifier
// 	 *            checkbox label or ToolTip text.
// 	 */
// 	public ListOperator(String identifier) {
// 		super(getComponentChooser(identifier));
// 	}
// 
// 	private static ComponentChooser getComponentChooser(String identifier) {
// 		if (TextUtil.isNumeric(identifier)) {
// 			return new ByComponentTypeChooser(Integer.parseInt(identifier), ComponentType.LWList);
// 		} else {
// 			return new ByNameChooser(identifier, ComponentType.LWList);
// 		}
// 	}
// 
// 	public void select(String identifier) {
// 		int index;
// 		if (TextUtil.isNumeric(identifier)) {
// 			index = Integer.parseInt(identifier);
// 		} else {
// 			String[] items = getItems();
// 			index = Arrays.asList(items).indexOf(identifier);
// 			if (index == -1) {
// 				throw new FormsLibraryException("Value '" + identifier + "' not fond in list: " + items);
// 			}
// 		}
// 		ObjectUtil.invokeMethodWithIntArg(getSource(), "select()", index);
// 
// 		Method m;
// 		try {
// 			m = getSource().getClass().getSuperclass().getDeclaredMethod("_postItemEvent", String.class, int.class);
// 			m.setAccessible(true);
// 			m.invoke(getSource(), getItem(index), ItemEvent.SELECTED);
// 		} catch (Exception e) {
// 			e.printStackTrace();
// 			throw new FormsLibraryException("Could not call method _selectItem");
// 		}
// 
// 	}
// 
// 	public String getSelected() {
// 		return (String) ObjectUtil.invokeMethod(getSource(), "getSelectedItem()");
// 	}
// 
// 	public String getItem(int i) {
// 		return (String) ObjectUtil.invokeMethodWithIntArg(getSource(), "getItem()", i);
// 	}
// 
// 	public String[] getItems() {
// 		return (String[]) ObjectUtil.invokeMethod(getSource(), "getItems()");
// 	}
// 
// }


// Path: src/main/java/org/robotframework/formslibrary/keyword/ListKeyword.java
import org.robotframework.formslibrary.operator.ListOperator;
import org.robotframework.javalib.annotation.ArgumentNames;
import org.robotframework.javalib.annotation.RobotKeyword;
import org.robotframework.javalib.annotation.RobotKeywords;

package org.robotframework.formslibrary.keyword;


@RobotKeywords
public class ListKeyword {

	@RobotKeyword("Select List Item .\n\nExample:\\n| Select List Item | _1_ | _1_ | \n| Select List Item | _listname_ | 1 | \n"
			+ "\n| Select List Item | _listname_ | _value_ | \\n")
	@ArgumentNames({ "listIdentifier", "valueIdentifier" })
	public void selectListItem(String listIdentifier, String valueIdentifier) {

		new ListOperator(listIdentifier).select(valueIdentifier);
