public void hideFields(final ViewDefinitionState view, final Entity plannedEvent, final FieldsForType fieldsForType) { Set<String> allFields = plannedEvent.getDataDefinition().getFields().keySet(); List<String> hiddenFields = fieldsForType.getHiddenFields(); for (String fieldName : allFields) { Optional<ComponentState> maybeFieldComponent = view.tryFindComponentByReference(fieldName); if (maybeFieldComponent.isPresent() && !PlannedEventFields.STATE.equals(fieldName)) { ComponentState fieldComponent = maybeFieldComponent.get(); if (hiddenFields.contains(fieldName)) { fieldComponent.setVisible(false); } else { fieldComponent.setVisible(true); } } } }
@Override public void checkFields() { DataDefinition dataDefinition = getDataDefinition(); List<String> fieldNames = Lists.newArrayList(getOwnerFieldName(), getSourceStateFieldName(), getTargetStateFieldName(), getStatusFieldName(), getMessagesFieldName(), getPhaseFieldName(), getDateTimeFieldName(), getShiftFieldName(), getWorkerFieldName()); Set<String> uniqueFieldNames = Sets.newHashSet(fieldNames); checkState(fieldNames.size() == uniqueFieldNames.size(), "Describer methods should return unique field names."); Set<String> existingFieldNames = dataDefinition.getFields().keySet(); checkState(existingFieldNames.containsAll(uniqueFieldNames), "DataDefinition for " + dataDefinition.getPluginIdentifier() + '.' + dataDefinition.getName() + " does not have all fields with name specified by this desciber."); }
private void assignMessageToEntity(final Entity entity, final Entity message) { DataDefinition dataDefinition = entity.getDataDefinition(); String correspondFieldName = MessagesUtil.getCorrespondFieldName(message); if (StringUtils.isNotBlank(correspondFieldName) && dataDefinition.getFields().containsKey(correspondFieldName)) { LOG.info(String.format("Change state error. Entity name : %S id : %d. Field : %S %S", entity.getDataDefinition() .getName(), entity.getId(), correspondFieldName, translationService.translate(getKey(message), LocaleContextHolder.getLocale(), getArgs(message)))); entity.addError(entity.getDataDefinition().getField(correspondFieldName), getKey(message), getArgs(message)); } else { LOG.info(String.format("Change state error. Entity name : %S id : %d. %S", entity.getDataDefinition().getName(), entity.getId(), translationService.translate(getKey(message), LocaleContextHolder.getLocale(), getArgs(message)))); entity.addGlobalError(getKey(message), isAutoClosed(message), getArgs(message)); } }