public LangForm(String id, final WebMarkupContainer listContainer,
final LangPanel langPanel) {
super(id);
setOutputMarkupId(true);
FieldLanguageDao langDao = Application
.getBean(FieldLanguageDao.class);
languages = new DropDownChoice<FieldLanguage>("language"
, new PropertyModel<FieldLanguage>(langPanel, "language")
, langDao.getLanguages()
, new ChoiceRenderer<FieldLanguage>("name", "language_id"));
languages.add(new AjaxFormComponentUpdatingBehavior("onchange") {
private static final long serialVersionUID = -2055912815073387536L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(listContainer);
}
});
add(languages);
add(new WebMarkupContainer("deleteLangBtn").add(new AjaxEventBehavior("onclick"){
private static final long serialVersionUID = -1650946343073068686L;
@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
super.updateAjaxAttributes(attributes);
attributes.getAjaxCallListeners().add(new ConfirmCallListener(833L));
}
@Override
protected void onEvent(AjaxRequestTarget target) {
langPanel.language.setDeleted(true);
FieldLanguageDao langDao = Application.getBean(FieldLanguageDao.class);
try {
langDao.updateLanguage(langPanel.language);
} catch (Exception e) {
// TODO add feedback message
e.printStackTrace();
}
languages.setChoices(langDao.getLanguages());
target.add(languages);
// FIXME need to force update list container
target.add(listContainer);
}
}));