/** * */ public synchronized Map getAnchorIndexes() { if (anchorIndexes == null) { anchorIndexes = new HashMap(); int i = 0; for(Iterator itp = pages.iterator(); itp.hasNext(); i++) { JRPrintPage page = (JRPrintPage)itp.next(); Collection elements = page.getElements(); collectAnchors(elements, i, 0, 0); } } return anchorIndexes; }
protected void collectAnchors(Collection elements, int pageIndex, int offsetX, int offsetY) { if (elements != null && elements.size() > 0) { JRPrintElement element = null; for(Iterator it = elements.iterator(); it.hasNext();) { element = (JRPrintElement)it.next(); if (element instanceof JRPrintAnchor) { anchorIndexes.put( ((JRPrintAnchor)element).getAnchorName(), new JRPrintAnchorIndex(pageIndex, element, offsetX, offsetY) ); } if (element instanceof JRPrintFrame) { JRPrintFrame frame = (JRPrintFrame) element; collectAnchors(frame.getElements(), pageIndex, offsetX + frame.getX(), offsetY + frame.getY()); } } } }