package econtract.taglib.customdisplay; import com.softwareag.xtools.xapplication.jsp.ExceptionContainer; import com.softwareag.xtools.xapplication.businessdocument.*; import com.softwareag.xtools.xapplication.jsp.taglib.*; public class Loop extends LoopTag { int mInitialSize = 0; public void setInitialsize(String initialSize) { mInitialSize = Integer.parseInt(initialSize); } public int doStartTagCore() throws ExceptionContainer { int returnVal = super.doStartTagCore(); // don't add initial elements if there is an element action String elementAction = requestContext.getElementaction(); if (elementAction !=null && elementAction.length() > 0) return returnVal; Page page = getActivePage(); if (page instanceof BusinessNodePage) { BusinessNodePage bnp = (BusinessNodePage) page; if (bnp.size() == 0 && mInitialSize > 0) { for (int i=0; i < mInitialSize; i++) { bnp.insert(i); } BusinessDocument doc = sessionContext.getDocument(getDocument()); doc.map(bnp.getPageName(), bnp.get(0)); activateSubPages(0, page); setEmpty(false); return EVAL_BODY_TAG; } } return returnVal; } }