/** * Handles visible if attribute */ protected void processDependantNodes() { final List<ViewInputComponent> entries = new ArrayList<>(); for(IFormFieldsetRow e: formRows) { entries.addAll(e.getViewEntries()); } for (final ViewInputComponent row : entries) { final String visibleIf = row.getConfiguration().getVisibleIf(); if (StringUtils.isNotEmpty(visibleIf)) { // entry is not visible and no managed row.getDisplay().setVisible(false); // means that visibility of this component depends on the // value of a component // VisibleIF format: componentId,value if (visibleIf.contains(REGEX)) { final String attrId = visibleIf.split(REGEX)[0]; final String attrValue = visibleIf.split(REGEX)[1]; final AbstractInputComponent component = (AbstractInputComponent) controller.getComponent(attrId); } } } }
public void postProcess() { for (final IFieldset fieldset : fieldsets) { FormFieldset formFieldset = (FormFieldset) fieldset; for (final IInputComponentWrapper row : formFieldset.getRows()) { final String visibleIf = row.getConfiguration().getVisibleIf(); if (StringUtils.isNotEmpty(visibleIf)) { // means that visibility of this component depends on the // value of a component // VisibleIF format: componentId,value1,value2 ... valuen // VisibleIF format: componentId,value1 if (visibleIf.contains(",")) { final String attrId = visibleIf.split(",")[0]; final List<String> attrValue = Arrays.asList(visibleIf.split(",")); final AbstractInputComponent comp = (AbstractInputComponent) controller.getComponent(attrId); if (comp != null) { comp.addValueChangeListner((arg0, arg1, arg2) -> { String newValKey = (String) comp.getValueToValidate(); if (attrValue.contains(newValKey)) { row.getDisplay().setVisible(true); } else { row.getDisplay().setVisible(false); } }); } } } } } }
protected static void copySourcesAttributes(VLViewComponentXML referenced, VLViewComponentXML resolved) { if(referenced.getVisibleIf() != null) resolved.setVisibleIf(referenced.getVisibleIf()); if(referenced.getCriteria() != null && resolved.getCriteria() == null) resolved.setCriteria(referenced.getCriteria()); if(referenced.getSeparatorAfter() != null) resolved.setSeparatorAfter(referenced.getSeparatorAfter()); if(referenced.getResponsiveOrder() != null) resolved.setResponsiveOrder(referenced.getResponsiveOrder()); if(referenced.getMasterColumn() != null) resolved.setMasterColumn(referenced.getMasterColumn()); if (StringUtils.isNotBlank(referenced.getDefaultButton())) { if(!resolved.getProperties().containsKey("default")) resolved.getProperties().put("default", referenced.getDefaultButton()); } if (referenced.getComponentById(VALIDATOR) != null) { if (resolved.getComponentById(VALIDATOR) != null) { final Optional<VLViewComponentXML> comp = resolved.getComponentById(VALIDATOR); comp.ifPresent(c -> resolved.getSubcomponents().remove(c)); } final Optional<VLViewComponentXML> d = referenced.getComponentById(VALIDATOR); d.ifPresent(f -> resolved.getSubcomponents().add(f)); } }
for (final IInputComponentWrapper row : formFieldset.getRows()) { final String visibleIf = row.getConfiguration().getVisibleIf();
attributeCfg.setVisibleIf(referencedAtt.getVisibleIf()); final InputComponentWrapper componentWrapper = new InputComponentWrapper(); componentWrapper.buildFrom(attributeCfg, controller, mode, lastRow);