package org.sikuli.slides.api.actions; import org.sikuli.api.ScreenRegion; import org.sikuli.api.Target; import org.sikuli.slides.api.Context; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.base.Objects; public class WaitAction extends TargetAction { private long duration = 10000; private Target target; private Action retry; public WaitAction(Target target){ super(target); } @Override public void execute(Context context) throws ActionExecutionException { // Action action = new Action(){ // // @Override // public void execute(Context context) throws ActionExecutionException { // ScreenRegion screenRegion = context.getScreenRegion(); // ScreenRegion ret = screenRegion.find(getTarget()); // if (ret == null){ // throw new ActionExecutionException("", this); // } // } // // @Override // public void stop() { // } // // }; retry = new RetryAction(new TargetAction(target, new EmptyAction()), duration, 1000); retry.execute(context); } @Override public void stop(){ if (retry != null) retry.stop(); retry = null; } public String toString(){ return Objects.toStringHelper(this).add("target",getTarget()).toString(); } public long getDuration() { return duration; } public void setDuration(long duration) { this.duration = duration; } public Target getTarget() { return target; } public void setTarget(Target target) { this.target = target; } }