import org.kuali.rice.kns.web.ui.SectionBridge; //导入方法依赖的package包/类
/**
* Essentially a copy of the overridden method with the addition of a call to getSectionIdsToIgnore, which is currently
* used to avoid processing / returning sections that are specific to the Contracts & Grants Billing (CGB) enhancement
* if CGB is not enabled.
*
* @see org.kuali.rice.kns.maintenance.KualiMaintainableImpl#getCoreSections(org.kuali.rice.kns.document.MaintenanceDocument, org.kuali.rice.kns.maintenance.Maintainable)
*/
@Override
public List getCoreSections(MaintenanceDocument document, Maintainable oldMaintainable) {
List sections = new ArrayList();
MaintenanceDocumentRestrictions maintenanceRestrictions = KNSServiceLocator
.getBusinessObjectAuthorizationService().getMaintenanceDocumentRestrictions(document,
GlobalVariables.getUserSession().getPerson());
MaintenanceDocumentPresentationController maintenanceDocumentPresentationController = (MaintenanceDocumentPresentationController) getDocumentHelperService()
.getDocumentPresentationController(document);
Set conditionallyRequiredFields = maintenanceDocumentPresentationController
.getConditionallyRequiredPropertyNames(document);
List sectionDefinitions = getMaintenanceDocumentDictionaryService()
.getMaintainableSections(getDocumentTypeName());
try {
Collection> sectionIdsToIgnore = getSectionIdsToIgnore();
// iterate through section definitions and create Section UI object
for (Iterator iter = sectionDefinitions.iterator(); iter.hasNext();) {
MaintainableSectionDefinition maintSectionDef = (MaintainableSectionDefinition) iter.next();
List displayedFieldNames = new ArrayList();
if (!maintenanceRestrictions.isHiddenSectionId(maintSectionDef.getId()) && !sectionIdsToIgnore.contains(maintSectionDef.getId())) {
for (Iterator iter2 = maintSectionDef.getMaintainableItems().iterator(); iter2.hasNext();) {
MaintainableItemDefinition item = (MaintainableItemDefinition) iter2.next();
if (item instanceof MaintainableFieldDefinition) {
displayedFieldNames.add(((MaintainableFieldDefinition) item).getName());
}
}
Section section = SectionBridge
.toSection(maintSectionDef, getBusinessObject(), this, oldMaintainable,
getMaintenanceAction(), displayedFieldNames, conditionallyRequiredFields);
if (maintenanceRestrictions.isReadOnlySectionId(maintSectionDef.getId())) {
section.setReadOnly(true);
}
// add to section list
sections.add(section);
}
}
}
catch (InstantiationException | IllegalAccessException e) {
LOG.error("Unable to create instance of object class" + e.getMessage());
throw new RuntimeException("Unable to create instance of object class" + e.getMessage());
}
return sections;
}