diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java index 7e8bd5b04e9..2c62d5dd7ee 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java @@ -38,7 +38,6 @@ import java.util.Date; import java.util.List; -import de.symeda.sormas.api.caze.ReinfectionDetailGroup; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -86,6 +85,7 @@ import de.symeda.sormas.api.caze.PreviousCaseDto; import de.symeda.sormas.api.caze.QuarantineReason; import de.symeda.sormas.api.caze.ReinfectionDetail; +import de.symeda.sormas.api.caze.ReinfectionDetailGroup; import de.symeda.sormas.api.caze.classification.DiseaseClassificationCriteriaDto; import de.symeda.sormas.api.contact.ContactDto; import de.symeda.sormas.api.contact.FollowUpStatus; @@ -129,7 +129,7 @@ import de.symeda.sormas.ui.location.AccessibleTextField; import de.symeda.sormas.ui.utils.AbstractEditForm; import de.symeda.sormas.ui.utils.ButtonHelper; -import de.symeda.sormas.ui.utils.CheckBoxTreeUpdated; +import de.symeda.sormas.ui.utils.CheckBoxTree; import de.symeda.sormas.ui.utils.ComboBoxHelper; import de.symeda.sormas.ui.utils.ComboBoxWithPlaceholder; import de.symeda.sormas.ui.utils.ConfirmationComponent; @@ -176,7 +176,6 @@ public class CaseDataForm extends AbstractEditForm { private static final String REINFECTION_DETAILS_COL_1_LOC = "reinfectionDetailsCol1Loc"; private static final String REINFECTION_DETAILS_COL_2_LOC = "reinfectionDetailsCol2Loc"; public static final String CASE_REFER_POINT_OF_ENTRY_BTN_LOC = "caseReferFromPointOfEntryBtnLoc"; - public static final String TEST_Heading = "testHeading"; //@formatter:off private static final String MAIN_HTML_LAYOUT = @@ -309,8 +308,6 @@ public class CaseDataForm extends AbstractEditForm { private FollowUpPeriodDto expectedFollowUpPeriodDto; private boolean ignoreDifferentPlaceOfStayJurisdiction = false; - private CheckBoxTreeUpdated reinfectionDetailGroupCheckBoxTreeUpdated; - public CaseDataForm( String caseUuid, PersonDto person, @@ -637,16 +634,18 @@ protected void addFields() { getContent().addComponent(reinfectionInfoLabel, REINFECTION_INFO_LOC); reinfectionInfoLabel.setVisible(false); - reinfectionDetailGroupCheckBoxTreeUpdated = addField(CaseDataDto.REINFECTION_DETAILS, CheckBoxTreeUpdated.class); - reinfectionDetailGroupCheckBoxTreeUpdated.setEnumType(ReinfectionDetail.class, ReinfectionDetail::getGroup, ReinfectionDetailGroup.class, 2); + CheckBoxTree reinfectionDetailGroupCheckBoxTree = + addField(CaseDataDto.REINFECTION_DETAILS, CheckBoxTree.class); + reinfectionDetailGroupCheckBoxTree + .setEnumType(ReinfectionDetail.class, ReinfectionDetail::getGroup, ReinfectionDetailGroup.class, 2); tfReinfectionStatus.setReadOnly(false); - tfReinfectionStatus.setValue(CaseLogic.calculateReinfectionStatus(reinfectionDetailGroupCheckBoxTreeUpdated.getValue())); + tfReinfectionStatus.setValue(CaseLogic.calculateReinfectionStatus(reinfectionDetailGroupCheckBoxTree.getValue())); tfReinfectionStatus.setReadOnly(true); - reinfectionDetailGroupCheckBoxTreeUpdated.addValueChangeListener(e->{ + reinfectionDetailGroupCheckBoxTree.addValueChangeListener(e -> { tfReinfectionStatus.setReadOnly(false); - tfReinfectionStatus.setValue(CaseLogic.calculateReinfectionStatus(reinfectionDetailGroupCheckBoxTreeUpdated.getValue())); + tfReinfectionStatus.setValue(CaseLogic.calculateReinfectionStatus(reinfectionDetailGroupCheckBoxTree.getValue())); tfReinfectionStatus.setReadOnly(true); }); @@ -677,11 +676,11 @@ protected void addFields() { reinfectionInfoLabel.setDescription(null); reinfectionInfoLabel.setVisible(false); } - reinfectionDetailGroupCheckBoxTreeUpdated.setVisible(isVisibleAllowed(CaseDataDto.RE_INFECTION)); + reinfectionDetailGroupCheckBoxTree.setVisible(isVisibleAllowed(CaseDataDto.RE_INFECTION)); } else { reinfectionInfoLabel.setDescription(null); reinfectionInfoLabel.setVisible(false); - reinfectionDetailGroupCheckBoxTreeUpdated.setVisible(false); + reinfectionDetailGroupCheckBoxTree.setVisible(false); } }); } @@ -1625,8 +1624,6 @@ private void updateFollowUpStatusComponents() { @Override public void setValue(CaseDataDto newFieldValue) throws ReadOnlyException, ConversionException { - reinfectionDetailGroupCheckBoxTreeUpdated.setValue(newFieldValue.getReinfectionDetails()); - super.setValue(newFieldValue); ComboBox caseConfirmationBasisCombo = getField(CASE_CONFIRMATION_BASIS); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/environment/EnvironmentDataForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/environment/EnvironmentDataForm.java index 66f3ec21176..69f61b8830d 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/environment/EnvironmentDataForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/environment/EnvironmentDataForm.java @@ -35,7 +35,7 @@ import de.symeda.sormas.ui.UserProvider; import de.symeda.sormas.ui.location.LocationEditForm; import de.symeda.sormas.ui.utils.AbstractEditForm; -import de.symeda.sormas.ui.utils.CheckBoxTreeUpdated; +import de.symeda.sormas.ui.utils.CheckBoxTree; import de.symeda.sormas.ui.utils.CssStyles; import de.symeda.sormas.ui.utils.FieldHelper; import de.symeda.sormas.ui.utils.ResizableTextAreaWrapper; @@ -65,8 +65,6 @@ public class EnvironmentDataForm extends AbstractEditForm { fluidRowLocs(EnvironmentDto.OTHER_DELETION_REASON); //@formatter:on - CheckBoxTreeUpdated waterUseCheckBoxTreeUpdated; - public EnvironmentDataForm(boolean isPseudonymized, boolean inJurisdiction, boolean isEditAllowed) { super( EnvironmentDto.class, @@ -116,10 +114,10 @@ protected void addFields() { TextField otherWaterUse = addField(EnvironmentDto.OTHER_WATER_USE, TextField.class); otherWaterUse.setInputPrompt(I18nProperties.getString(Strings.pleaseSpecify)); - waterUseCheckBoxTreeUpdated = addField(EnvironmentDto.WATER_USE, CheckBoxTreeUpdated.class); - waterUseCheckBoxTreeUpdated.setEnumType(WaterUse.class, null); + CheckBoxTree waterUseCheckBoxTree = addField(EnvironmentDto.WATER_USE, CheckBoxTree.class); + waterUseCheckBoxTree.setEnumType(WaterUse.class, null); - waterUseCheckBoxTreeUpdated.addValueChangeListener((e) -> { + waterUseCheckBoxTree.addValueChangeListener((e) -> { if (e.getProperty().getValue() != null) { if (Boolean.TRUE.equals(((Map) e.getProperty().getValue()).get(WaterUse.OTHER))) { otherWaterUse.setVisible(true); @@ -204,18 +202,18 @@ protected void addFields() { if (EnvironmentMedia.WATER.equals(valueChangeEvent.getProperty().getValue())) { waterType.setVisible(true); infrastructureDetails.setVisible(true); - waterUseCheckBoxTreeUpdated.setVisible(true); + waterUseCheckBoxTree.setVisible(true); useOfWaterHeading.setVisible(true); } else { useOfWaterHeading.setVisible(false); waterType.setVisible(false); infrastructureDetails.setVisible(false); - waterUseCheckBoxTreeUpdated.setVisible(false); + waterUseCheckBoxTree.setVisible(false); otherWaterUse.setVisible(false); waterType.clear(); infrastructureDetails.clear(); - waterUseCheckBoxTreeUpdated.clear(); - waterUseCheckBoxTreeUpdated.clear(); + waterUseCheckBoxTree.clear(); + waterUseCheckBoxTree.clear(); otherWaterUse.clear(); } }); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataForm.java index 9ab93d75470..3a059ec0508 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataForm.java @@ -82,7 +82,7 @@ import de.symeda.sormas.ui.UserProvider; import de.symeda.sormas.ui.location.LocationEditForm; import de.symeda.sormas.ui.utils.AbstractEditForm; -import de.symeda.sormas.ui.utils.CheckBoxTreeUpdated; +import de.symeda.sormas.ui.utils.CheckBoxTree; import de.symeda.sormas.ui.utils.CssStyles; import de.symeda.sormas.ui.utils.DateComparisonValidator; import de.symeda.sormas.ui.utils.DateTimeField; @@ -167,8 +167,6 @@ public class EventDataForm extends AbstractEditForm { private List regionEventResponsibles = new ArrayList<>(); private List districtEventResponsibles = new ArrayList<>(); private LocationEditForm locationForm; - private CheckBoxTreeUpdated epidemiologicalEvidenceCheckBoxTreeUpdated; - private CheckBoxTreeUpdated laboratoryDiagnosticEvidenceDetailCheckBoxTreeUpdated; public EventDataForm(boolean create, boolean isPseudonymized, boolean inJurisdiction) { super( @@ -280,11 +278,13 @@ protected void addFields() { final NullableOptionGroup epidemiologicalEvidence = addField(EventDto.EPIDEMIOLOGICAL_EVIDENCE, NullableOptionGroup.class); final NullableOptionGroup laboratoryDiagnosticEvidence = addField(EventDto.LABORATORY_DIAGNOSTIC_EVIDENCE, NullableOptionGroup.class); - epidemiologicalEvidenceCheckBoxTreeUpdated = addField(EventDto.EPIDEMIOLOGICAL_EVIDENCE_DETAILS, CheckBoxTreeUpdated.class); - epidemiologicalEvidenceCheckBoxTreeUpdated.setEnumType(EpidemiologicalEvidenceDetail.class, EpidemiologicalEvidenceDetail::getParent); + CheckBoxTree epidemiologicalEvidenceCheckBoxTree = + addField(EventDto.EPIDEMIOLOGICAL_EVIDENCE_DETAILS, CheckBoxTree.class); + epidemiologicalEvidenceCheckBoxTree.setEnumType(EpidemiologicalEvidenceDetail.class, EpidemiologicalEvidenceDetail::getParent); - laboratoryDiagnosticEvidenceDetailCheckBoxTreeUpdated = addField(EventDto.LABORATORY_DIAGNOSTIC_EVIDENCE_DETAILS, CheckBoxTreeUpdated.class); - laboratoryDiagnosticEvidenceDetailCheckBoxTreeUpdated + CheckBoxTree laboratoryDiagnosticEvidenceDetailCheckBoxTree = + addField(EventDto.LABORATORY_DIAGNOSTIC_EVIDENCE_DETAILS, CheckBoxTree.class); + laboratoryDiagnosticEvidenceDetailCheckBoxTree .setEnumType(LaboratoryDiagnosticEvidenceDetail.class, LaboratoryDiagnosticEvidenceDetail::getParent); DateField evolutionDateField = addField(EventDto.EVOLUTION_DATE, DateField.class); @@ -530,10 +530,10 @@ protected void addFields() { epidemiologicalEvidence.addValueChangeListener(valueChangeEvent -> { if (((NullableOptionGroup) valueChangeEvent.getProperty()).getNullableValue() == YesNoUnknown.YES) { - epidemiologicalEvidenceCheckBoxTreeUpdated.setVisible(true); + epidemiologicalEvidenceCheckBoxTree.setVisible(true); } else { - epidemiologicalEvidenceCheckBoxTreeUpdated.clear(); - epidemiologicalEvidenceCheckBoxTreeUpdated.setVisible(false); + epidemiologicalEvidenceCheckBoxTree.clear(); + epidemiologicalEvidenceCheckBoxTree.setVisible(false); } }); } @@ -547,10 +547,10 @@ protected void addFields() { laboratoryDiagnosticEvidence.addValueChangeListener(valueChangeEvent -> { if (((NullableOptionGroup) valueChangeEvent.getProperty()).getNullableValue() == YesNoUnknown.YES) { - laboratoryDiagnosticEvidenceDetailCheckBoxTreeUpdated.setVisible(true); + laboratoryDiagnosticEvidenceDetailCheckBoxTree.setVisible(true); } else { - laboratoryDiagnosticEvidenceDetailCheckBoxTreeUpdated.clear(); - laboratoryDiagnosticEvidenceDetailCheckBoxTreeUpdated.setVisible(false); + laboratoryDiagnosticEvidenceDetailCheckBoxTree.clear(); + laboratoryDiagnosticEvidenceDetailCheckBoxTree.setVisible(false); } }); } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/environmentsample/EnvironmentSampleEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/environmentsample/EnvironmentSampleEditForm.java index 9eac1780174..15f19beefd9 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/environmentsample/EnvironmentSampleEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/environmentsample/EnvironmentSampleEditForm.java @@ -28,7 +28,6 @@ import org.jetbrains.annotations.NotNull; import com.vaadin.ui.Label; -import com.vaadin.v7.data.Validator; import com.vaadin.v7.data.util.converter.Converter; import com.vaadin.v7.ui.ComboBox; import com.vaadin.v7.ui.Field; @@ -57,7 +56,7 @@ import de.symeda.sormas.ui.UserProvider; import de.symeda.sormas.ui.location.LocationEditForm; import de.symeda.sormas.ui.utils.AbstractEditForm; -import de.symeda.sormas.ui.utils.CheckBoxTreeUpdated; +import de.symeda.sormas.ui.utils.CheckBoxTree; import de.symeda.sormas.ui.utils.CssStyles; import de.symeda.sormas.ui.utils.DateFormatHelper; import de.symeda.sormas.ui.utils.FieldHelper; @@ -104,8 +103,6 @@ public class EnvironmentSampleEditForm extends AbstractEditForm weatherConditionCheckBoxTreeUpdated; - private final boolean isCreate; public EnvironmentSampleEditForm(boolean isPseudonymized, boolean isCreate) { @@ -179,8 +176,8 @@ protected void addFields() { TextField phValueField = addField(EnvironmentSampleDto.PH_VALUE); phValueField.setConversionError(I18nProperties.getValidationError(Validations.onlyNumbersAllowed, phValueField.getCaption())); - weatherConditionCheckBoxTreeUpdated = addField(EnvironmentSampleDto.WEATHER_CONDITIONS, CheckBoxTreeUpdated.class); - weatherConditionCheckBoxTreeUpdated.setEnumType(WeatherCondition.class, null); + CheckBoxTree weatherConditionCheckBoxTree = addField(EnvironmentSampleDto.WEATHER_CONDITIONS, CheckBoxTree.class); + weatherConditionCheckBoxTree.setEnumType(WeatherCondition.class, null); addField(EnvironmentSampleDto.HEAVY_RAIN, NullableOptionGroup.class); @@ -283,22 +280,11 @@ private void disableFieldsBasedOnRights(EnvironmentSampleDto sample) { } } }); - if (!(canEditDispatchField)) { - weatherConditionCheckBoxTreeUpdated.setEnabled(false); - } - } - - @Override - public void commit() throws SourceException, Validator.InvalidValueException { - super.commit(); - getValue().setWeatherConditions(weatherConditionCheckBoxTreeUpdated.getValue()); } @Override public void setValue(EnvironmentSampleDto newFieldValue) throws ReadOnlyException, Converter.ConversionException { super.setValue(newFieldValue); - weatherConditionCheckBoxTreeUpdated.setValue(newFieldValue.getWeatherConditions()); - disableFieldsBasedOnRights(newFieldValue); } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CheckBoxTreeUpdated.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CheckBoxTree.java similarity index 71% rename from sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CheckBoxTreeUpdated.java rename to sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CheckBoxTree.java index 4da951d8f4a..e67c0b8a8b9 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CheckBoxTreeUpdated.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CheckBoxTree.java @@ -6,9 +6,9 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; import java.util.function.UnaryOperator; +import java.util.stream.Collectors; import org.jetbrains.annotations.NotNull; @@ -22,7 +22,7 @@ import com.vaadin.v7.ui.CheckBox; import com.vaadin.v7.ui.CustomField; -public class CheckBoxTreeUpdated> extends CustomField> { +public class CheckBoxTree> extends CustomField> { private static final String[] INDENTATION_STYLES = new String[] { CssStyles.INDENT_LEFT_1, @@ -30,8 +30,8 @@ public class CheckBoxTreeUpdated> extends CustomField enumToggles = new HashMap<>(); - private VerticalLayout checkBoxTreeLayout; - private HorizontalLayout checkBoxTreeLayoutForGroups; + private VerticalLayout checkBoxLayout; + private HorizontalLayout groupLayout; private Class enumType; private boolean addVerticalSpaces; private UnaryOperator parentProvider; @@ -40,34 +40,30 @@ public class CheckBoxTreeUpdated> extends CustomField getEnumToggles() { - return enumToggles; - } - @Override protected Component initContent() { if (enumType != null) { if (groupProvider == null) { - checkBoxTreeLayout = new VerticalLayout(); - checkBoxTreeLayout.setMargin(false); - checkBoxTreeLayout.setSpacing(false); - checkBoxTreeLayout.setWidth(100, Sizeable.Unit.PERCENTAGE); + checkBoxLayout = new VerticalLayout(); + checkBoxLayout.setMargin(false); + checkBoxLayout.setSpacing(false); + checkBoxLayout.setWidth(100, Sizeable.Unit.PERCENTAGE); addCheckBoxes(); final MarginInfo marginInfo = new MarginInfo(false, false, true, false); - checkBoxTreeLayout.setMargin(marginInfo); + checkBoxLayout.setMargin(marginInfo); } else { - checkBoxTreeLayoutForGroups = new HorizontalLayout(); - checkBoxTreeLayoutForGroups.setMargin(false); - checkBoxTreeLayoutForGroups.setWidth(100, Unit.PERCENTAGE); + groupLayout = new HorizontalLayout(); + groupLayout.setMargin(false); + groupLayout.setWidth(100, Unit.PERCENTAGE); addGroups(); } - setToggleValues(); + setToggleValues(getValue()); } addValueChangeListener(valueChangeEvent -> { @@ -83,71 +79,47 @@ protected Component initContent() { settingToggles = false; }); - if (checkBoxTreeLayout != null) { - return checkBoxTreeLayout; + if (checkBoxLayout != null) { + return checkBoxLayout; } - return checkBoxTreeLayoutForGroups; - } - - private void setToggleValues() { - settingToggles = true; - setToggleValues(getValue()); - settingToggles = false; + return groupLayout; } private void addGroups() { - final ENUM[] enumElements = enumType.getEnumConstants(); - - Map> enumGroupMap = new HashMap<>(); - - for (ENUM enumElement : enumElements) { - final Enum groupElement = groupProvider.apply(enumElement); - if (enumGroupMap.containsKey(groupElement)) { - enumGroupMap.get(groupElement).add(enumElement); - } else { - enumGroupMap.put(groupElement, new ArrayList<>()); - enumGroupMap.get(groupElement).add(enumElement); - } - } + Map, List> enumGroupMap = + Arrays.stream(enumType.getEnumConstants()).collect(Collectors.groupingBy(anEnum -> groupProvider.apply(anEnum))); List columnList = new ArrayList<>(); for (int i = 0; i < columns; i++) { - final VerticalLayout e = new VerticalLayout(); - e.setMargin(false); - e.setSpacing(false); - columnList.add(e); + final VerticalLayout columnLayout = new VerticalLayout(); + columnLayout.setMargin(false); + columnLayout.setSpacing(false); + columnList.add(columnLayout); + groupLayout.addComponent(columnLayout); } - AtomicInteger currentColumn = new AtomicInteger(); - currentColumn.set(0); - - Arrays.stream(parentGroup.getEnumConstants()).forEach(enumListEntry -> { + final Enum[] enumConstants = parentGroup.getEnumConstants(); + for (int i = 0; i < parentGroup.getEnumConstants().length; i++) { + final Enum enumListEntry = enumConstants[i]; Label heading = new Label(enumListEntry.toString()); heading.setWidth(100, Unit.PERCENTAGE); CssStyles.style(heading, CssStyles.H4); - columnList.get(currentColumn.get()).addComponent(heading); + final VerticalLayout columnLayout = columnList.get(i % columns); + columnLayout.addComponent(heading); - enumGroupMap.get(enumListEntry).stream().forEach(anEnum -> { + enumGroupMap.get(enumListEntry).forEach(anEnum -> { CheckBox checkbox = createCheckbox(0, anEnum, null); enumToggles.put(anEnum, checkbox); - columnList.get(currentColumn.get()).addComponent(checkbox); + columnLayout.addComponent(checkbox); }); - - checkBoxTreeLayoutForGroups.addComponent(columnList.get(currentColumn.get())); - - if (currentColumn.get() == columns - 1) { - currentColumn.set(0); - } else { - currentColumn.getAndIncrement(); - } - }); + } final MarginInfo marginInfo = new MarginInfo(false, false, true, false); - checkBoxTreeLayoutForGroups.setMargin(marginInfo); + groupLayout.setMargin(marginInfo); - setToggleValues(); + setToggleValues(getValue()); } private void addCheckBoxes() { @@ -165,7 +137,7 @@ private void addCheckBoxes() { CheckBox elementCheckbox = createCheckbox(level, enumElement, parentElement); enumToggles.put(enumElement, elementCheckbox); - checkBoxTreeLayout.addComponent(elementCheckbox); + checkBoxLayout.addComponent(elementCheckbox); } } @@ -236,10 +208,11 @@ public void setValue(Map newFieldValue) throws ReadOnlyException, } private void setToggleValues(Map newFieldValue) { + settingToggles = true; enumToggles.forEach((anEnum, checkBox) -> { checkBox.setValue(newFieldValue != null && (newFieldValue.get(anEnum) != null && newFieldValue.get(anEnum))); - System.out.println("test"); }); + settingToggles = false; } @Override diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/SormasFieldGroupFieldFactory.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/SormasFieldGroupFieldFactory.java index 355627d70c3..2220475bb61 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/SormasFieldGroupFieldFactory.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/SormasFieldGroupFieldFactory.java @@ -174,8 +174,8 @@ public T createField(Class type, Class fieldType) { return (T) new CustomizableEnumPropertiesComponent(); } else if (UserField.class.isAssignableFrom(fieldType)) { return (T) new UserField(); - }else if (CheckBoxTreeUpdated.class.isAssignableFrom(fieldType)){ - return (T) new CheckBoxTreeUpdated<>(); + }else if (CheckBoxTree.class.isAssignableFrom(fieldType)){ + return (T) new CheckBoxTree<>(); } return super.createField(type, fieldType); }