use of org.kuali.kfs.krad.keyvalues.HierarchicalControlValuesFinder in project cu-kfs by CU-CommunityApps.
the class LookupResource method buildLookupControlValuesMap.
private Map<String, Object> buildLookupControlValuesMap(BusinessObjectEntry businessObjectEntry) {
Class classForType = businessObjectEntry.getBusinessObjectClass();
if (!isAuthorizedForLookup(classForType)) {
throw new ForbiddenException();
}
Map<String, Object> valuesMap = new LinkedHashMap<>();
List<FormAttribute> attributes = getLookupAttributeForClass(classForType);
for (FormAttribute attribute : attributes) {
Control control = attribute.getControl();
if (control == null) {
continue;
}
String singleAttributeName = attribute.getName();
if (control.getType() == Control.Type.TREE) {
// we have to do this bean resolution here b/c batch file (the only tree) is still a snowflake
// and the DDD doesn't do the bean lookup for us (mainly b/c of the typing); hope to get rid of the
// need for special VF type eventually
String valuesFinderName = control.getValuesFinderName();
if (StringUtils.isBlank(valuesFinderName)) {
LOG.warn("A tree control without ValuesFinder name is most likely a mistake. BOE: " + businessObjectEntry.getName() + " attribute: " + singleAttributeName);
continue;
}
HierarchicalControlValuesFinder valuesFinder = getDataDictionaryService().getDDBean(HierarchicalControlValuesFinder.class, valuesFinderName);
if (valuesFinder == null) {
LOG.warn("A tree control without a valid HierarchicalControlValuesFinder is most likely a " + "mistake. BOE:" + businessObjectEntry.getName() + " attribute: " + singleAttributeName);
continue;
}
List<HierarchicalData> values = valuesFinder.getHierarchicalControlValues();
valuesMap.put(singleAttributeName, values);
} else {
KeyValuesFinder valuesFinder = control.getValuesFinder();
if (valuesFinder == null) {
continue;
}
// CU Customization: keyValues list now comes from the helper method below.
List<KeyValue> keyValues = getKeyValuesForLookup(valuesFinder);
valuesMap.put(singleAttributeName, keyValues);
}
}
return valuesMap;
}
Aggregations