/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.sys.document.web.renderers; import javax.servlet.jsp.JspException; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.Tag; import org.kuali.rice.kns.web.ui.Field; /** * More detailed contract for renderers which render fields */ public interface FieldRenderer extends Renderer { /** * On the renderer, sets the field to render * @param field the field to render */ public abstract void setField(Field field); /** * On the renderer, sets the name of the dynamic name label * @param label the label to set */ public abstract void setDynamicNameLabel(String label); /** * Sets that this renderer should display as in error * @param error true if renderer should display as in error, false otherwise */ public abstract void setShowError(boolean error); /** * Tells the renderer to render a quickfinder or not * @return true if a quick finder should be rendered, false otherwise */ public abstract boolean renderQuickfinder(); /** * Sets the tab index the field being rendered should use - if it never ever wants to get tabbed to * @param tabIndex a tab index no human will have the patience to reach */ public abstract void setArbitrarilyHighTabIndex(int tabIndex); /** * Renders the opening of a no-wrap span * @param pageContext the page contex to render to * @param parentTag the tag requesting all of this rendering * @throws JspException thrown if something goes wrong in rendering */ public abstract void openNoWrapSpan(PageContext pageContext, Tag parentTag) throws JspException; /** * Renders the closing of a no wrap span * @param pageContext the page contex to render to * @param parentTag the tag requesting all of this rendering * @throws JspException thrown if something goes wrong in rendering */ public abstract void closeNoWrapSpan(PageContext pageContext, Tag parentTag) throws JspException; /** * Overrides the onBlur setting for this renderer * @param onBlur the onBlur value to set and return from buildOnBlur */ public abstract void overrideOnBlur(String onBlur); /** * Sets the accessible title of the current field * @param accessibleTitle the given the accessible title */ public abstract void setAccessibleTitle(String accessibleTitle); /** * When called, this will render an image that, when clicked * shows a temporary page to the user with a significantly larger input area * so that a detailed message can be composed comfortably for this field. */ public abstract void renderExplodableLink(PageContext pageContext) throws JspException; }