/*
* 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;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.Tag;
import org.apache.commons.lang.StringUtils;
import org.kuali.kfs.sys.document.web.renderers.LabelRenderer;
/**
* A class which represents a renderable header label for an input
*/
public class FieldHeaderLabel extends HeaderLabel {
private HeaderLabelPopulating headerLabelPopulator;
private String label;
private boolean readOnly = false;
private boolean required = false;
private String labelFor;
private String fullClassNameForHelp;
private String attributeEntryForHelp;
/**
* Constructs a FieldHeaderLabel, forcing an implementation of HeaderLabelPopulating to be passed in
* @param headerLabelPopulator the populator who will populate this label when the time has come
*/
public FieldHeaderLabel(HeaderLabelPopulating headerLabelPopulator) {
this.headerLabelPopulator = headerLabelPopulator;
}
/**
* Gets the attributeEntryForHelp attribute.
* @return Returns the attributeEntryForHelp.
*/
public String getAttributeEntryForHelp() {
return attributeEntryForHelp;
}
/**
* Sets the attributeEntryForHelp attribute value.
* @param attributeEntryForHelp The attributeEntryForHelp to set.
*/
public void setAttributeEntryForHelp(String attributeEntryForHelp) {
this.attributeEntryForHelp = attributeEntryForHelp;
}
/**
* Gets the fullClassNameForHelp attribute.
* @return Returns the fullClassNameForHelp.
*/
public String getFullClassNameForHelp() {
return fullClassNameForHelp;
}
/**
* Sets the fullClassNameForHelp attribute value.
* @param fullClassNameForHelp The fullClassNameForHelp to set.
*/
public void setFullClassNameForHelp(String fullClassNameForHelp) {
this.fullClassNameForHelp = fullClassNameForHelp;
}
/**
* Gets the label attribute.
* @return Returns the label.
*/
public String getLabel() {
return label;
}
/**
* Sets the label attribute value.
* @param label The label to set.
*/
public void setLabel(String label) {
this.label = label;
}
/**
* Gets the labelFor attribute.
* @return Returns the labelFor.
*/
public String getLabelFor() {
return labelFor;
}
/**
* Sets the labelFor attribute value.
* @param labelFor The labelFor to set.
*/
public void setLabelFor(String labelFor) {
this.labelFor = labelFor;
}
/**
* Gets the readOnly attribute.
* @return Returns the readOnly.
*/
public boolean isReadOnly() {
return readOnly;
}
/**
* Sets the readOnly attribute value.
* @param readOnly The readOnly to set.
*/
public void setReadOnly(boolean readOnly) {
this.readOnly = readOnly;
}
/**
* Gets the required attribute.
* @return Returns the required.
*/
public boolean isRequired() {
return required;
}
/**
* Sets the required attribute value.
* @param required The required to set.
*/
public void setRequired(boolean required) {
this.required = required;
}
/**
* @see org.kuali.kfs.sys.document.web.RenderableElement#renderElement(javax.servlet.jsp.PageContext, javax.servlet.jsp.tagext.Tag, org.kuali.kfs.sys.document.web.AccountingLineRenderingContext)
*/
public void renderElement(PageContext pageContext, Tag parentTag, AccountingLineRenderingContext renderingContext) throws JspException {
headerLabelPopulator.populateHeaderLabel(this, renderingContext);
LabelRenderer renderer = new LabelRenderer();
renderer.setLabel(label);
renderer.setRequired(required);
renderer.setReadOnly(readOnly);
renderer.setLabelFor(labelFor);
if (!StringUtils.isBlank(fullClassNameForHelp)) {
renderer.setFullClassNameForHelp(fullClassNameForHelp);
}
if (!StringUtils.isBlank(attributeEntryForHelp)) {
renderer.setAttributeEntryForHelp(attributeEntryForHelp);
}
renderer.render(pageContext, parentTag);
renderer.clear();
}
}