public Details(final TypeExtensionTO typeExtensionTO) {
super();
setOutputMarkupId(true);
add(new Label("anyType.label", anyTypeLabel));
if (typeExtensionTO.getAnyType() == null) {
List<String> anyTypes = new AnyTypeRestClient().list();
anyTypes.remove(AnyTypeKind.GROUP.name());
anyTypes.removeAll(anyTypes.stream().
filter(anyType -> groupTO.getTypeExtension(anyType).isPresent()).collect(Collectors.toList()));
AjaxDropDownChoicePanel<String> anyTypeComponent = new AjaxDropDownChoicePanel<>(
"anyType.component", "anyType", new PropertyModel<>(typeExtensionTO, "anyType"));
anyTypeComponent.setChoices(anyTypes);
anyTypeComponent.addRequiredLabel();
add(anyTypeComponent.hideLabel().setOutputMarkupId(true));
} else {
AjaxTextFieldPanel anyTypeComponent = new AjaxTextFieldPanel(
"anyType.component", "anyType", new PropertyModel<>(typeExtensionTO, "anyType"));
anyTypeComponent.setEnabled(false);
add(anyTypeComponent.hideLabel());
}
add(new Label("auxClasses.label", auxClassesLabel));
List<String> anyTypeClasses = new AnyTypeClassRestClient().list().stream().
map(EntityTO::getKey).collect(Collectors.toList());
AjaxPalettePanel<String> auxClassesPalette = new AjaxPalettePanel.Builder<String>().build(
"auxClasses.palette",
new PropertyModel<List<String>>(typeExtensionTO, "auxClasses"),
new ListModel<>(anyTypeClasses));
add(auxClassesPalette.hideLabel().setOutputMarkupId(true));
}
}