EventUtils.java
public static <A extends Node, B extends Event> void addOnetimeEventHandler(
final A targetNode,
final EventType<B> eventType,
final ProxyEventHandler proxyHandler) {
targetNode.addEventHandler(eventType, new EventHandler<B>() {
@Override
public void handle(B event) {
Node node = (Node) event.getTarget();
node.removeEventHandler(eventType, this);
proxyHandler.handle(node);
}
});
}
public static interface ProxyEventHandler {
void handle(EventTarget target);
}