public AnyTypeDetailsPanel(final String id, final AnyTypeTO anyTypeTO) {
super(id);
final WebMarkupContainer container = new WebMarkupContainer("container");
container.setOutputMarkupId(true);
add(container);
final Form<AnyTypeTO> form = new Form<>("form");
form.setModel(new CompoundPropertyModel<>(anyTypeTO));
container.add(form);
final AjaxTextFieldPanel key =
new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<>(anyTypeTO, "key"));
key.addRequiredLabel();
key.setEnabled(key.getModelObject() == null || key.getModelObject().isEmpty());
form.add(key);
final AjaxDropDownChoicePanel<AnyTypeKind> kind = new AjaxDropDownChoicePanel<>(
"kind", getString("kind"), new PropertyModel<>(anyTypeTO, "kind"));
kind.setChoices(Arrays.asList(AnyTypeKind.values()));
kind.setOutputMarkupId(true);
if (anyTypeTO.getKind() == null) {
kind.setModelObject(AnyTypeKind.ANY_OBJECT);
}
kind.setEnabled(false);
form.add(kind);
form.add(new AjaxPalettePanel.Builder<String>().setAllowOrder(true).build("classes",
new PropertyModel<List<String>>(anyTypeTO, "classes"),
new ListModel<>(getAvailableAnyTypeClasses())).hideLabel().setOutputMarkupId(true));
}