package de.dhbw.humbuch.event;
import java.util.UUID;
/**
* Event for showing a confirm dialogue holding two runnables which can be called
* for either of two events: cancel, confirm
*
* @author David Vitt
*/
public class ConfirmEvent {
public final UUID id;
public final String caption;
public final String message;
public final String confirmCaption;
public final String cancelCaption;
private final Runnable confirmRunnable;
private final Runnable cancelRunnable;
private static final String DEFAULT_WINDOW_CAPTION = "Bestätigen";
private static final String DEFAULT_CONFIRM_CAPTION = "Ok";
private static final String DEFAULT_CANCEL_CAPTION = "Abbrechen";
public void confirm() {
if(confirmRunnable != null)
confirmRunnable.run();
}
public void cancel() {
if(cancelRunnable != null)
cancelRunnable.run();
}
public static class Builder {
private final String message;
private String caption;
private String confirmCaption;
private String cancelCaption;
private Runnable confirmRunnable;
private Runnable cancelRunnable;
public Builder(String message) {
this.message = message;
this.caption = DEFAULT_WINDOW_CAPTION;
this.confirmCaption = DEFAULT_CONFIRM_CAPTION;
this.cancelCaption = DEFAULT_CANCEL_CAPTION;
}
public Builder caption(String caption) {
this.caption = caption;
return this;
}
public Builder confirmCaption(String confirmCaption) {
this.confirmCaption = confirmCaption;
return this;
}
public Builder cancelCaption(String cancelCaption) {
this.cancelCaption = cancelCaption;
return this;
}
public Builder confirmRunnable(Runnable runnable) {
this.confirmRunnable = runnable;
return this;
}
public Builder cancelRunnable(Runnable runnable) {
this.cancelRunnable = runnable;
return this;
}
public ConfirmEvent build() {
return new ConfirmEvent(this);
}
}
private ConfirmEvent(Builder builder) {
this.caption = builder.caption;
this.message = builder.message;
this.confirmCaption = builder.confirmCaption;
this.cancelCaption = builder.cancelCaption;
this.confirmRunnable = builder.confirmRunnable;
this.cancelRunnable = builder.cancelRunnable;
id = UUID.randomUUID();
}
}