package de.elatexam.editor.pages.taskdef; import net.databinder.components.NullPlug; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; import de.elatexam.model.SubTaskDef; /** * @author Steffen Dienst * */ public abstract class TaskSelectorModalWindow extends ModalWindow { public TaskSelectorModalWindow(String id) { super(id); setTitle("Bitte wählen Sie den Aufgabentyp"); setResizable(true); setInitialWidth(650); setInitialHeight(450); setContent(new NullPlug(getContentId())); } abstract void onSelect(AjaxRequestTarget target, SubTaskDef... subtaskdefs); /** * @param clazz */ public void showFor(Class<? extends SubTaskDef> clazz, final AjaxRequestTarget target) { setContent(new TaskSelectionPanel(getContentId(), clazz) { @Override public void onSelect(AjaxRequestTarget target, SubTaskDef... subtaskdefs) { TaskSelectorModalWindow.this.onSelect(target, subtaskdefs); TaskSelectorModalWindow.this.close(target); } }); super.show(target); } /* * (non-Javadoc) * * @see org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow#show(org.apache.wicket.ajax.AjaxRequestTarget) */ @Override public void show(AjaxRequestTarget target) { showFor( SubTaskDef.class, target); } }