< prev index next >
src/org/netbeans/jemmy/operators/Operator.java
Print this page
@@ -691,11 +691,11 @@
* @param state a ComponentChooser defining the state criteria.
* @throws TimeoutExpiredException if the state has not achieved in a value
* defined by {@code "ComponentOperator.WaitStateTimeout"}
*/
public void waitState(final ComponentChooser state) {
- Waiter<String, Void> stateWaiter = new Waiter<>(new Waitable<String, Void>() {
+ waitState(new Waitable<String, Void>() {
@Override
public String actionProduced(Void obj) {
return state.checkComponent(getSource()) ? "" : null;
}
@@ -708,16 +708,23 @@
@Override
public String toString() {
return "Operator.waitState.Waitable{description = " + getDescription() + '}';
}
});
- stateWaiter.setTimeoutsToCloneOf(getTimeouts(), "ComponentOperator.WaitStateTimeout");
+ }
+
+ public <R> R waitState(Waitable<R, Void> waitable) {
+ Waiter<R, Void> stateWaiter = new Waiter<>(waitable);
+ stateWaiter.setTimeoutsToCloneOf(getTimeouts(),
+ "ComponentOperator.WaitStateTimeout");
stateWaiter.setOutput(getOutput().createErrorOutput());
try {
- stateWaiter.waitAction(null);
+ return stateWaiter.waitAction(null);
} catch (InterruptedException e) {
- throw (new JemmyException("Waiting of \"" + state.getDescription()
+ Thread.currentThread().interrupt();
+ throw (new JemmyException(
+ "Waiting of \"" + waitable.getDescription()
+ "\" state has been interrupted!"));
}
}
/**
< prev index next >