package lt.inventi.wicket.component.bootstrap;
import java.io.Serializable;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
public class ModalBehaviorConfig implements Serializable {
public enum Backdrop {
TRUE, FALSE, STATIC;
}
private Backdrop backdrop = Backdrop.TRUE;
private IModel<Boolean> isShown = Model.of(false);
public ModalBehaviorConfig() {
super();
}
public ModalBehaviorConfig(IModel<Boolean> visibilityModel) {
this.isShown = visibilityModel;
}
public ModalBehaviorConfig withBackdrop(Backdrop value) {
this.backdrop = value;
return this;
}
public ModalBehaviorConfig shownWhen(IModel<Boolean> value) {
this.isShown = value;
return this;
}
// default scope
Backdrop backdrop() {
return backdrop;
}
boolean isShown() {
return isShown != null && isShown.getObject();
}
boolean hasVisibilityModel() {
return isShown != null;
}
IModel<Boolean> visibilityModel() {
return isShown;
}
void onClose() {
isShown.setObject(false);
}
void onShow() {
isShown.setObject(true);
}
}