001    /*
002     * Copyright 2011 The Kuali Foundation.
003     * 
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     * 
008     * http://www.opensource.org/licenses/ecl2.php
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.kuali.kfs.sys.document.web;
017    
018    import java.util.List;
019    
020    import javax.servlet.jsp.JspException;
021    import javax.servlet.jsp.PageContext;
022    import javax.servlet.jsp.tagext.JspFragment;
023    import javax.servlet.jsp.tagext.Tag;
024    
025    import org.kuali.kfs.sys.document.web.renderers.GroupErrorsRenderer;
026    
027    
028    public interface AccountingLineGroup {
029    
030        /**
031         * Renders the whole of this accounting line group
032         * 
033         * @param pageContext the page context to render to
034         * @param parentTag the AccountingLinesTag that is requesting this rendering
035         */
036        public abstract void renderEverything(PageContext pageContext, Tag parentTag) throws JspException;
037    
038        /**
039         * Finds the maximum number of cells in the accounting line table row
040         * 
041         * @param rows the rows which are being rendered
042         * @return the maximum number of cells to render
043         */
044        public abstract int getWidthInCells();
045    
046        /**
047         * Sets the cellCount attribute value.
048         * 
049         * @param cellCount The cellCount to set.
050         */
051        public abstract void setCellCount(int cellCount);
052    
053        /**
054         * Sets the importLineOverride attribute value.
055         * 
056         * @param importLineOverride The importLineOverride to set.
057         */
058        public abstract void setImportLineOverride(JspFragment importLineOverride);
059    
060        /**
061         * Sets the form's arbitrarily high tab index
062         * 
063         * @param arbitrarilyHighIndex the index to set
064         */
065        public abstract void setArbitrarilyHighIndex(int arbitrarilyHighIndex);
066    
067        /**
068         * Gets the errors attribute.
069         * 
070         * @return Returns the errors.
071         */
072        public abstract List getErrorKeys();
073    
074        /**
075         * Sets the errors attribute value.
076         * 
077         * @param errors The errors to set.
078         */
079        public abstract void setErrorKeys(List errors);
080    
081        /**
082         * Determines if there is more than one editable line in this group; if so, then it allows deleting
083         */
084        public abstract void updateDeletabilityOfAllLines();
085    
086        /**
087         * Gets the collectionItemPropertyName attribute. 
088         * @return Returns the collectionItemPropertyName.
089         */
090        public abstract String getCollectionItemPropertyName();
091    
092    }