package com.ftinc.si.assist.test.web;

import java.util.ArrayList;

import org.openqa.selenium.NotFoundException;
import org.openqa.selenium.TimeoutException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;

public class Drop extends PageAction {

	//操作の実行。返却値はScript実行や要素取得などのアクションの場合には結果文字列、通常のアクションはnullが返る。
	public ArrayList<String> doAction(WebDriver drv) {
		try {
			//drag and dropである。注意!!：落とすところが切れていたらoutかも？
			
			WebElement toElm = waitUntil(drv);
			Actions xactions = new Actions(drv);
			//toElm(この要素)までドラグして離す。
			xactions = new Actions(drv);
			Action xdrgndrop = xactions.moveToElement(toElm).release(toElm).build();
			xdrgndrop.perform(); 
		} catch (TimeoutException e) {
			//実際はタイムアウトではなく見つからなかった。
			String target = getXpath();
			if (arg_map.containsKey("itemID")) {
				target += " itemID=" + arg_map.get("itemID").toString();
			}
			throw new NotFoundException("\t\tdrop " + e.getMessage() + " ,where " + target); //$NON-NLS-1$
		}
		return null;
	}
}
