Here is my modified readonly and disabled attribute update of
DbTextFieldTag. followed by the tld revised textField tag description. Was
this done already? Who do I email code to?
/*
* $Header:
/cvsroot/jdbforms/dbforms/src/org/dbforms/taglib/DbTextFieldTag.java,v 1.3
2001/09/26 22:08:42 joepeer Exp $
* $Revision: 1.3 $
* $Date: 2001/09/26 22:08:42 $
*
* DbForms - a Rapid Application Development Framework
* Copyright (C) 2001 Joachim Peer <[EMAIL PROTECTED]> et al.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.dbforms.taglib;
import java.util.*;
import java.sql.*;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import org.dbforms.*;
import org.apache.log4j.Category;
import javax.servlet.http.*;
/****
*
* <p>This tag renders a HTML TextArea - Element</p>
*
* this tag renders a dabase-datadriven textArea, which is an active
element - the user
* can change data
*
* @author Joachim Peer <[EMAIL PROTECTED]>
*/
public class DbTextFieldTag extends DbBaseInputTag {
static Category logCat =
Category.getInstance(DbTextFieldTag.class.getName()); // logging category
for this class
public int doStartTag() throws javax.servlet.jsp.JspException {
return SKIP_BODY;
}
/*
===========================================================================
* [EMAIL PROTECTED]
* 2001-05-23
*
* Added two new attributes: hidden and overrideValue
*
* hidden : Determines if the text field should be hidden or
displayed.
* overrideValue : Defines the text field's default value. When this
attribute is set, the value retrieved
* from the database is ignored.
*
* These attributes where added to allow a developer to:
* - set a field's default value (Insert mode)
* - override a field's value with a developer defined value (Update mode)
* - hide a field, set its value (Insert and Update mode)
*
* Example:
*
* From within a given JSP page, a developer is required to set the SOLD
field to 'true' when the user clicks
* the updateButton. The SOLD field should not to be displayed on screen.
*
* <db:textField fieldName="SOLD" hidden="true" overrideValue="true"/>
* <db:updateButton caption="OK"/>
*
*/
/*
*
============================================================================
====
* [EMAIL PROTECTED]
* 2002-06-04
*
* Added two new attribute: readonly="readonly" and disabled="disabled" (the
xhtml tidy way)
*
* readonly: Determines if we want to allow a user to enter data in a
field.
* disabled: Makes the field light grey and will not be submittable.
*
*/
public int doEndTag() throws javax.servlet.jsp.JspException {
HttpServletRequest request = (HttpServletRequest)
this.pageContext.getRequest();
Vector errors = (Vector) request.getAttribute("errors");
try {
/* Does the developer require the field to be hidden or displayed? */
String value =
("true".equals(this.getHidden()))
? "<input type=\"hidden\" name=\""
: "<input type=\"text\" name=\"";
StringBuffer tagBuf = new StringBuffer(value);
tagBuf.append(getFormFieldName());
tagBuf.append("\" value=\"");
// For generation Javascript Validation. Need all original and
modified
fields name
parentForm.addChildName(getFieldName(), getFormFieldName());
/* If the overrideValue attribute has been set, use its value instead
of
the one
retrieved from the database. This mechanism can be used to
set an
initial default
value for a given field. */
if (this.getOverrideValue() != null)
{
//If the redisplayFieldsOnError attribute is set and we are in
error
mode, forget override!
if ("true".equals(parentForm.getRedisplayFieldsOnError()) &&
errors !=
null && errors.size() > 0)
{
tagBuf.append(getFormFieldValue());
}
else
{
tagBuf.append(this.getOverrideValue());
}
}
else
{
tagBuf.append(getFormFieldValue());
}
tagBuf.append("\" ");
if(this.getReadonly() != null && this.getReadonly().equals("true"))
{
tagBuf.append(" readonly=\"readonly\"");
}
if(this.getDisabled() != null && this.getDisabled().equals("true"))
{
tagBuf.append(" disabled=\"disabled\"");
}
if (accessKey != null) {
tagBuf.append(" accesskey=\"");
tagBuf.append(accessKey);
tagBuf.append("\"");
}
if (maxlength != null) {
tagBuf.append(" maxlength=\"");
tagBuf.append(maxlength);
tagBuf.append("\"");
}
if (cols != null) {
tagBuf.append(" size=\"");
tagBuf.append(cols);
tagBuf.append("\"");
}
if (tabIndex != null) {
tagBuf.append(" tabindex=\"");
tagBuf.append(tabIndex);
tagBuf.append("\"");
}
tagBuf.append(prepareStyles());
tagBuf.append(prepareEventHandlers());
tagBuf.append("/>");
pageContext.getOut().write(tagBuf.toString());
} catch (java.io.IOException ioe) {
throw new JspException("IO Error: " + ioe.getMessage());
}
return EVAL_PAGE;
}
private java.lang.String hidden = "false";
private java.lang.String overrideValue = null;
private java.lang.String readonly = "false";
private java.lang.String disabled = "false";
/**
* [EMAIL PROTECTED]
* 2001-05-23
* @param newHidden java.lang.String
*
* Determines if the text field should be hidden or displayed
* @return java.lang.String
*/
public java.lang.String getHidden() {
return hidden;
}
/**
* [EMAIL PROTECTED]
* 2001-05-23
*
* Defines the text field's default value. When this attribute is set, the
value retrieved
* from the database is ignored.
*
* @return java.lang.String
*/
public java.lang.String getOverrideValue() {
return overrideValue;
}
/**
* [EMAIL PROTECTED]
* 2002-06-04
*
* Determine whether the field is editable or not. either "true" or "false"
* @return java.lang.String
*/
public java.lang.String getReadonly() {
return readonly;
}
/**
* [EMAIL PROTECTED]
* 2002-06-04
*
* Determine whether the field is editable and submittable or not. either
"true" or "false"
* @return java.lang.String
*/
public java.lang.String getDisabled() {
return disabled;
}
/**
* [EMAIL PROTECTED]
* 2001-05-23
* @param newHidden java.lang.String
*
* Determines if the text field should be hidden or displayed
*/
public void setHidden(java.lang.String newHidden) {
hidden = newHidden;
}
/**
* [EMAIL PROTECTED]
* 2001-05-23
*
* Defines the text field's default value. When this attribute is set, the
value retrieved
* from the database is ignored.
*
* @param newOverrideValue java.lang.String
*/
public void setOverrideValue(java.lang.String newOverrideValue) {
overrideValue = newOverrideValue;
}
/**
* [EMAIL PROTECTED]
* 2002-06-04
* @param newReadonly java.lang.String
*
* Set this textfield to be displayed but not editable.
*/
public void setReadonly(java.lang.String newReadonly) {
readonly = newReadonly;
}
/**
* [EMAIL PROTECTED]
* 2002-06-04
* @param newDisabled java.lang.String
*
* Set this textfield to be displayed with light grey and neither editable
or submittable.
*/
public void setDisabled(java.lang.String newDisabled) {
disabled = newDisabled;
}
}
///////////////////////////////////////////TLD revision of the tag
<tag>
<name>textField</name>
<tagclass>org.dbforms.taglib.DbTextFieldTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>id</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>fieldName</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>format</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>hidden</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>overrideValue</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>accessKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>maxlength</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onBlur</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onChange</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onClick</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onDblClick</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onFocus</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onKeyDown</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onKeyPress</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onKeyUp</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onMouseDown</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onMouseMove</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onMouseOut</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onMouseOver</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onMouseUp</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onSelect</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>size</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>style</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>styleClass</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>tabIndex</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>readonly</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
_______________________________________________________________
Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm
_______________________________________________
DbForms Mailing List
http://www.wap-force.net/dbforms