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

Reply via email to