@SuppressWarnings("unchecked") protected void addAttributeSectionsToInquiryView( InquiryView view, DataObjectEntry dataObjectEntry) { // Set up data structures to manage the creation of sections Map<String, Group> inquirySectionsById = new HashMap<String, Group>(); Group currentGroup = createInquirySection("default", dataObjectEntry.getObjectLabel()); inquirySectionsById.put(currentGroup.getId(), currentGroup); ((List<Group>) view.getItems()).add(currentGroup); // Loop over the attributes on the data object, adding them into the inquiry // If we have an @Section notation, switch to the section, creating if the ID is unknown List<Component> items = (List<Component>) currentGroup.getItems(); // needed to deal with generics issue for (AttributeDefinition attr : dataObjectEntry.getAttributes()) { boolean dontDisplay = hasHintOfType(attr.getDataObjectAttribute(), UifDisplayHintType.NO_INQUIRY); dontDisplay |= (attr.getControlField() instanceof HiddenControl); // Check for a section hint // Create or retrieve existing section as determined by the ID on the annotation UifDisplayHint sectionHint = getHintOfType(attr.getDataObjectAttribute(), UifDisplayHintType.SECTION); if (sectionHint != null) { if (StringUtils.isNotBlank(sectionHint.id())) { currentGroup = inquirySectionsById.get(sectionHint.id()); if (currentGroup == null) { String sectionLabel = sectionHint.label(); if (StringUtils.isBlank(sectionLabel)) { sectionLabel = deriveHumanFriendlyNameFromPropertyName(sectionHint.id()); } currentGroup = createInquirySection(sectionHint.id(), sectionHint.label()); inquirySectionsById.put(currentGroup.getId(), currentGroup); ((List<Group>) view.getItems()).add(currentGroup); } } else { LOG.warn("SECTION UifDisplayHint given without an ID - assuming 'default'"); currentGroup = inquirySectionsById.get("default"); } items = (List<Component>) currentGroup.getItems(); } // This is checked after the section test, since the @Section annotation // would be on the FK field if (dontDisplay) { continue; } DataField dataField = ComponentFactory.getDataField(); dataField.setPropertyName(attr.getName()); dataField.setLabel(attr.getLabel()); items.add(dataField); } }
/** * @see * org.kuali.rice.krad.uif.service.UifDefaultingService#deriveLookupViewFromMetadata(org.kuali.rice.krad.datadictionary.DataObjectEntry) */ @Override public LookupView deriveLookupViewFromMetadata(DataObjectEntry dataObjectEntry) { LookupView view = ComponentFactory.getLookupView(); view.setHeaderText(dataObjectEntry.getObjectLabel() + " Lookup"); view.setDataObjectClass(dataObjectEntry.getDataObjectClass()); view.setCriteriaFields(new ArrayList<Component>()); view.setResultFields(new ArrayList<Component>()); view.setDefaultSortAttributeNames(dataObjectEntry.getPrimaryKeys()); addAttributesToLookupCriteria(view, dataObjectEntry); addAttributesToLookupResults(view, dataObjectEntry); return view; }
/** * @see * org.kuali.rice.krad.uif.service.UifDefaultingService#deriveInquiryViewFromMetadata(org.kuali.rice.krad.datadictionary.DataObjectEntry) */ @Override public InquiryView deriveInquiryViewFromMetadata(DataObjectEntry dataObjectEntry) { // Create the main view object and set the title and BO class InquiryView view = ComponentFactory.getInquiryView(); view.setHeaderText(dataObjectEntry.getObjectLabel()); view.setDataObjectClassName(dataObjectEntry.getDataObjectClass()); addAttributeSectionsToInquiryView(view, dataObjectEntry); // TODO: if there are updatable reference objects, include sections for them // If there are collections on the object, include sections for them addCollectionSectionsToInquiryView(view, dataObjectEntry); return view; }