package de.elatexam.editor.components.panels.tasks.cloze;
import net.databinder.components.AjaxOnKeyPausedUpdater;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.util.convert.IConverter;
import de.elatexam.editor.components.panels.tasks.SubtaskSpecificsInputPanel;
import de.elatexam.model.ClozeSubTaskDef;
import de.elatexam.model.ClozeSubTaskDef.Cloze;
/**
* @author Steffen Dienst
*
*/
public class ClozeSubtaskDefInputPanel extends SubtaskSpecificsInputPanel<ClozeSubTaskDef> {
private static final IConverter<Cloze> clozeconverter = new ClozeConverter();
private static final IConverter<Cloze> previewConverter = new ClozePreviewConverter();
public ClozeSubtaskDefInputPanel(final String id, final IModel<ClozeSubTaskDef> model) {
super(id, model);
TextArea<Cloze> clozeText = new TextArea<Cloze>("cloze") {
@Override
public IConverter getConverter(Class type) {
return clozeconverter;
}
};
final Label previewLabel = new Label("preview", new PropertyModel<Cloze>(model, "cloze")) {
@Override
public IConverter getConverter(Class type) {
return previewConverter;
}
};
clozeText.add(new AjaxOnKeyPausedUpdater() {
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(previewLabel);
}
});
add(clozeText);
add(previewLabel.setEscapeModelStrings(false).setOutputMarkupId(true));
}
}