private void collectAlignableElements( final Section section, final List<Element> collectedElements) { if (section instanceof CrosstabGroup) { return; } final int theElementCount = section.getElementCount(); for (int i = 0; i < theElementCount; i++) { final ReportElement reportElement = section.getElement(i); if (reportElement instanceof Section) { collectAlignableElements((Section) reportElement, collectedElements); } final CachedLayoutData cachedLayoutData = ModelUtility.getCachedLayoutData((Element) reportElement); final long layoutAge = cachedLayoutData.getLayoutAge(); if (layoutAge != -1) { if (reportElement instanceof RootLevelBand) { continue; } if (reportElement instanceof Band || reportElement instanceof Section == false) { collectedElements.add((Element) reportElement); } } } }
public void traverseSection(final Section section) { final int count = section.getElementCount(); for (int i = 0; i < count; i++) { final ReportElement element = section.getElement(i); if (element instanceof SubReport) { inspect((SubReport) element); } else if (element instanceof Section) { inspectElement(element); traverseSection((Section) element); if (element instanceof RootLevelBand) { final RootLevelBand rlb = (RootLevelBand) element; for (int sr = 0; sr < rlb.getSubReportCount(); sr += 1) { inspect(rlb.getSubReport(sr)); } } } else { inspectElement(element); } } }