package forscher.nocket.page.modal;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.PropertyModel;
import org.nocket.component.modal.ButtonFlag;
import org.nocket.component.modal.DMDMessageBox;
import org.nocket.component.modal.DMDModalWindow;
import org.nocket.component.modal.ModalCallback;
import forscher.nocket.page.ForscherPage;
import forscher.nocket.page.HomePage;
@SuppressWarnings("serial")
public class ModalExamplePage extends ForscherPage {
private static final long serialVersionUID = 1L;
private String status;
final DMDMessageBox messagebox = new DMDMessageBox("modal1");
public ModalExamplePage() {
add(messagebox);
final WebMarkupContainer cont = new WebMarkupContainer("cont", new PropertyModel<String>(this, "status"));
cont.setOutputMarkupId(true);
messagebox.get(messagebox.getContentId()).setVisibilityAllowed(true);
messagebox.get(messagebox.getContentId()).setVisible(true);
add(new AjaxLink<Void>("link") {
public void onClick(AjaxRequestTarget target) {
messagebox.showInfo(target, "Example of MessageBox.", new ModalCallback() {
public boolean doAction(AjaxRequestTarget target, ButtonFlag flag) {
ModalExamplePage.this.setStatus("Answer form the box is: " + flag);
target.add(cont);
return true;
}
});
}
});
add(new AjaxLink<Void>("link2") {
public void onClick(AjaxRequestTarget target) {
messagebox.showConfirm(target, "Example of ConfirmBox.", new ModalCallback() {
public boolean doAction(AjaxRequestTarget target, ButtonFlag flag) {
ModalExamplePage.this.setStatus(flag + " has been choosen.");
target.add(cont);
return true;
}
});
}
});
add(new AjaxLink<Void>("link3") {
public void onClick(AjaxRequestTarget target) {
messagebox.showConfirm(target, "Do you want to go back to home page?", new ModalCallback() {
public boolean doAction(AjaxRequestTarget target, ButtonFlag flag) {
if (flag == ButtonFlag.YES) {
setResponsePage(HomePage.class);
} else {
ModalExamplePage.this.setStatus("So you stay here!");
target.add(cont);
}
return true;
}
});
}
});
final DMDModalWindow dmdModalWindow = new DMDModalWindow("modal-panel");
add(dmdModalWindow);
add(new AjaxLink<Void>("linkB1") {
public void onClick(AjaxRequestTarget target) {
target.add(ModalExamplePage.this);
dmdModalWindow.showInfo("Example of Bootstrap modal info box.", new ModalCallback() {
public boolean doAction(AjaxRequestTarget target, ButtonFlag flag) {
ModalExamplePage.this.setStatus("Answer form the box is: " + flag);
target.add(cont);
return true;
}
});
}
});
add(new AjaxLink<Void>("linkB2") {
public void onClick(AjaxRequestTarget target) {
target.add(ModalExamplePage.this);
dmdModalWindow.showConfirm("Example of Bootstrap modal confirmation box.", new ModalCallback() {
public boolean doAction(AjaxRequestTarget target, ButtonFlag flag) {
ModalExamplePage.this.setStatus("Answer form the box is: " + flag);
target.add(cont);
return true;
}
});
}
});
cont.add(new Label("statuslabel", new PropertyModel<String>(this, "status")));
cont.add(new AjaxLink<String>("remove", new PropertyModel<String>(this, "status")) {
public void onClick(AjaxRequestTarget target) {
ModalExamplePage.this.setStatus(null);
target.add(cont);
}
@Override
public boolean isVisible() {
return getDefaultModelObject() != null;
}
});
add(cont);
}
public void setStatus(String status) {
this.status = status;
}
public String getStatus() {
return status;
}
}