You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@beehive.apache.org by "David Madrid (JIRA)" <be...@incubator.apache.org> on 2005/03/03 01:48:48 UTC

[jira] Created: (BEEHIVE-396)
<netui:CheckBoxOption defaultValue doesn't take any expression or non-boolean
-----------------------------------------------------------------------------

         Key: BEEHIVE-396
         URL: http://issues.apache.org/jira/browse/BEEHIVE-396
     Project: Beehive
        Type: Bug
  Components: NetUI  
    Versions: V1Beta    
    Reporter: David Madrid


DefaultValue for checkBoxOption only allows a "true" of "false" value.  It should also allow an explicit string or expression that resolves to checked, unchecked, String or String[] values that match any option values.

My resutls:
defaultValue=
"checked" - ignored
"unchecked" - ignored
"${any.expression}" - ignored
"true" - this works, generates html checked="checked" for all options.
"false" - this works. It will override the defaultValue in checkBoxGroup tag if set.

Note: According to the tld, CheckBoxOption should take a runtime expression.

*** TLD ***
	<description><![CDATA[A checkbox whose state is determined by its enclosing CheckBoxGroup.]]></description>
        <name>checkBoxOption</name>
        <tag-class>org.apache.beehive.netui.tags.html.CheckBoxOption</tag-class>
  
  	<attribute>
            <description><![CDATA[Sets the default value.]]></description>
            <name>defaultValue</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
*****



 - Test Case:

	1. Create a jsp:

	<netui:form action="post">
	    <netui:checkBoxGroup dataSource="pageFlow.resultsThree" optionsDataSource="${pageFlow.checkGroupOptions}" repeater="true" >
                 <netui:span styleClass="normal"  value="${container.item}" />
                 <netui:checkBoxOption defaultValue="Check 1" value="${container.item}" />&nbsp;                
            </netui:checkBoxGroup>
	<netui:button value="Post" />
        </netui:form>


	2. Create a Controller.jpf:

   	    // Results Three
	    private String resultsThree;
 	    public String getResultsThree()
 	    {
	        return resultsThree;
	    }
	
	    public void setResultsThree(String resultsThree)
	    {
                this.resultsThree = resultsThree;
	    }  

	    private String[] _checkGroupOptions = {"Check 1", "Check 2", "Check 3",
				       			"Default Check 1", "Default Check 2"};
	    public String[] getCheckGroupOptions() {
		return _checkGroupOptions;
	    }

	3. Run the JSP and see that "Check 1" checkbox is NOT selected.


 - Expected Results:  
	Checkbox "Check 1" should be selected and html source should have checked="checked".

 - Actual Results: 
	Checkbox "Check 1" is NOT selected and html source does NOT have checked="checked".

 - Root Cause:
	I think this might be because checkBoxOption.setDefaultValue() needs another case to set:

		_defaultValue = defaultValue.toString();

	Right now, if defaultValue="Check 1", none of these cases are a match, so _defaultValue is set to false:

		else {
	            _defaultValue = Boolean.valueOf(defaultValue.toString());


	==== CheckBoxOption.setDefaultValue() ====

	 /**
	     * Sets the default value (can be an expression).
	     * @param defaultValue - the default value
	     * @netui:attribute required="false"  rtexprvalue="true"
	     * description="Sets the default value."
	     * @netui.tldx:attribute
	     */
	    public void setDefaultValue(Object defaultValue)
	            throws JspException
	    {
	        if (defaultValue == null) {
	            String s = Bundle.getString("Tags_AttrValueRequired", new Object[]{"defaultValue"});
	            registerTagError(s, null);
	            return;
	        }
	        if (defaultValue instanceof Boolean) {
	            _defaultValue = (Boolean) defaultValue;
	        }
	        else {
	            _defaultValue = Boolean.valueOf(defaultValue.toString());
	        }
	    }


 - There are no other exceptions or errors.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


[jira] Assigned: (BEEHIVE-396) Posted by "Krista Baker (JIRA)" <be...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/BEEHIVE-396?page=all ]

Krista Baker reassigned BEEHIVE-396:
------------------------------------

    Assign To: Krista Baker  (was: Daryl Olander)

> <netui:CheckBoxOption defaultValue doesn't take any expression or non-boolean
> -----------------------------------------------------------------------------
>
>          Key: BEEHIVE-396
>          URL: http://issues.apache.org/jira/browse/BEEHIVE-396
>      Project: Beehive
>         Type: Bug
>   Components: NetUI
>     Versions: V1Beta
>     Reporter: David Madrid
>     Assignee: Krista Baker

>
> DefaultValue for checkBoxOption only allows a "true" of "false" value.  It should also allow an explicit string or expression that resolves to checked, unchecked, String or String[] values that match any option values.
> My resutls:
> defaultValue=
> "checked" - ignored
> "unchecked" - ignored
> "${any.expression}" - ignored
> "true" - this works, generates html checked="checked" for all options.
> "false" - this works. It will override the defaultValue in checkBoxGroup tag if set.
> Note: According to the tld, CheckBoxOption should take a runtime expression.
> *** TLD ***
> 	<description><![CDATA[A checkbox whose state is determined by its enclosing CheckBoxGroup.]]></description>
>         <name>checkBoxOption</name>
>         <tag-class>org.apache.beehive.netui.tags.html.CheckBoxOption</tag-class>
>   
>   	<attribute>
>             <description><![CDATA[Sets the default value.]]></description>
>             <name>defaultValue</name>
>             <required>false</required>
>             <rtexprvalue>true</rtexprvalue>
>         </attribute>
> *****
>  - Test Case:
> 	1. Create a jsp:
> 	<netui:form action="post">
> 	    <netui:checkBoxGroup dataSource="pageFlow.resultsThree" optionsDataSource="${pageFlow.checkGroupOptions}" repeater="true" >
>                  <netui:span styleClass="normal"  value="${container.item}" />
>                  <netui:checkBoxOption defaultValue="Check 1" value="${container.item}" />&nbsp;                
>             </netui:checkBoxGroup>
> 	<netui:button value="Post" />
>         </netui:form>
> 	2. Create a Controller.jpf:
>    	    // Results Three
> 	    private String resultsThree;
>  	    public String getResultsThree()
>  	    {
> 	        return resultsThree;
> 	    }
> 	
> 	    public void setResultsThree(String resultsThree)
> 	    {
>                 this.resultsThree = resultsThree;
> 	    }  
> 	    private String[] _checkGroupOptions = {"Check 1", "Check 2", "Check 3",
> 				       			"Default Check 1", "Default Check 2"};
> 	    public String[] getCheckGroupOptions() {
> 		return _checkGroupOptions;
> 	    }
> 	3. Run the JSP and see that "Check 1" checkbox is NOT selected.
>  - Expected Results:  
> 	Checkbox "Check 1" should be selected and html source should have checked="checked".
>  - Actual Results: 
> 	Checkbox "Check 1" is NOT selected and html source does NOT have checked="checked".
>  - Root Cause:
> 	I think this might be because checkBoxOption.setDefaultValue() needs another case to set:
> 		_defaultValue = defaultValue.toString();
> 	Right now, if defaultValue="Check 1", none of these cases are a match, so _defaultValue is set to false:
> 		else {
> 	            _defaultValue = Boolean.valueOf(defaultValue.toString());
> 	==== CheckBoxOption.setDefaultValue() ====
> 	 /**
> 	     * Sets the default value (can be an expression).
> 	     * @param defaultValue - the default value
> 	     * @netui:attribute required="false"  rtexprvalue="true"
> 	     * description="Sets the default value."
> 	     * @netui.tldx:attribute
> 	     */
> 	    public void setDefaultValue(Object defaultValue)
> 	            throws JspException
> 	    {
> 	        if (defaultValue == null) {
> 	            String s = Bundle.getString("Tags_AttrValueRequired", new Object[]{"defaultValue"});
> 	            registerTagError(s, null);
> 	            return;
> 	        }
> 	        if (defaultValue instanceof Boolean) {
> 	            _defaultValue = (Boolean) defaultValue;
> 	        }
> 	        else {
> 	            _defaultValue = Boolean.valueOf(defaultValue.toString());
> 	        }
> 	    }
>  - There are no other exceptions or errors.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Assigned: (BEEHIVE-396) Posted by "Daryl Olander (JIRA)" <be...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/BEEHIVE-396?page=history ]

Daryl Olander reassigned BEEHIVE-396:
-------------------------------------

    Assign To: Daryl Olander

> <netui:CheckBoxOption defaultValue doesn't take any expression or non-boolean
> -----------------------------------------------------------------------------
>
>          Key: BEEHIVE-396
>          URL: http://issues.apache.org/jira/browse/BEEHIVE-396
>      Project: Beehive
>         Type: Bug
>   Components: NetUI
>     Versions: V1Beta
>     Reporter: David Madrid
>     Assignee: Daryl Olander

>
> DefaultValue for checkBoxOption only allows a "true" of "false" value.  It should also allow an explicit string or expression that resolves to checked, unchecked, String or String[] values that match any option values.
> My resutls:
> defaultValue=
> "checked" - ignored
> "unchecked" - ignored
> "${any.expression}" - ignored
> "true" - this works, generates html checked="checked" for all options.
> "false" - this works. It will override the defaultValue in checkBoxGroup tag if set.
> Note: According to the tld, CheckBoxOption should take a runtime expression.
> *** TLD ***
> 	<description><![CDATA[A checkbox whose state is determined by its enclosing CheckBoxGroup.]]></description>
>         <name>checkBoxOption</name>
>         <tag-class>org.apache.beehive.netui.tags.html.CheckBoxOption</tag-class>
>   
>   	<attribute>
>             <description><![CDATA[Sets the default value.]]></description>
>             <name>defaultValue</name>
>             <required>false</required>
>             <rtexprvalue>true</rtexprvalue>
>         </attribute>
> *****
>  - Test Case:
> 	1. Create a jsp:
> 	<netui:form action="post">
> 	    <netui:checkBoxGroup dataSource="pageFlow.resultsThree" optionsDataSource="${pageFlow.checkGroupOptions}" repeater="true" >
>                  <netui:span styleClass="normal"  value="${container.item}" />
>                  <netui:checkBoxOption defaultValue="Check 1" value="${container.item}" />&nbsp;                
>             </netui:checkBoxGroup>
> 	<netui:button value="Post" />
>         </netui:form>
> 	2. Create a Controller.jpf:
>    	    // Results Three
> 	    private String resultsThree;
>  	    public String getResultsThree()
>  	    {
> 	        return resultsThree;
> 	    }
> 	
> 	    public void setResultsThree(String resultsThree)
> 	    {
>                 this.resultsThree = resultsThree;
> 	    }  
> 	    private String[] _checkGroupOptions = {"Check 1", "Check 2", "Check 3",
> 				       			"Default Check 1", "Default Check 2"};
> 	    public String[] getCheckGroupOptions() {
> 		return _checkGroupOptions;
> 	    }
> 	3. Run the JSP and see that "Check 1" checkbox is NOT selected.
>  - Expected Results:  
> 	Checkbox "Check 1" should be selected and html source should have checked="checked".
>  - Actual Results: 
> 	Checkbox "Check 1" is NOT selected and html source does NOT have checked="checked".
>  - Root Cause:
> 	I think this might be because checkBoxOption.setDefaultValue() needs another case to set:
> 		_defaultValue = defaultValue.toString();
> 	Right now, if defaultValue="Check 1", none of these cases are a match, so _defaultValue is set to false:
> 		else {
> 	            _defaultValue = Boolean.valueOf(defaultValue.toString());
> 	==== CheckBoxOption.setDefaultValue() ====
> 	 /**
> 	     * Sets the default value (can be an expression).
> 	     * @param defaultValue - the default value
> 	     * @netui:attribute required="false"  rtexprvalue="true"
> 	     * description="Sets the default value."
> 	     * @netui.tldx:attribute
> 	     */
> 	    public void setDefaultValue(Object defaultValue)
> 	            throws JspException
> 	    {
> 	        if (defaultValue == null) {
> 	            String s = Bundle.getString("Tags_AttrValueRequired", new Object[]{"defaultValue"});
> 	            registerTagError(s, null);
> 	            return;
> 	        }
> 	        if (defaultValue instanceof Boolean) {
> 	            _defaultValue = (Boolean) defaultValue;
> 	        }
> 	        else {
> 	            _defaultValue = Boolean.valueOf(defaultValue.toString());
> 	        }
> 	    }
>  - There are no other exceptions or errors.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


[jira] Closed: (BEEHIVE-396) Posted by "Krista Baker (JIRA)" <be...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/BEEHIVE-396?page=all ]
     
Krista Baker closed BEEHIVE-396:
--------------------------------


This item should have been resolved as a won't fix.  The behavior of the defaultValue attribute has not changed, but a better example of how it is intended to be used within a repeater is given.

> <netui:CheckBoxOption defaultValue doesn't take any expression or non-boolean
> -----------------------------------------------------------------------------
>
>          Key: BEEHIVE-396
>          URL: http://issues.apache.org/jira/browse/BEEHIVE-396
>      Project: Beehive
>         Type: Bug
>   Components: NetUI
>     Versions: V1Beta
>     Reporter: David Madrid
>     Assignee: Krista Baker

>
> DefaultValue for checkBoxOption only allows a "true" of "false" value.  It should also allow an explicit string or expression that resolves to checked, unchecked, String or String[] values that match any option values.
> My resutls:
> defaultValue=
> "checked" - ignored
> "unchecked" - ignored
> "${any.expression}" - ignored
> "true" - this works, generates html checked="checked" for all options.
> "false" - this works. It will override the defaultValue in checkBoxGroup tag if set.
> Note: According to the tld, CheckBoxOption should take a runtime expression.
> *** TLD ***
> 	<description><![CDATA[A checkbox whose state is determined by its enclosing CheckBoxGroup.]]></description>
>         <name>checkBoxOption</name>
>         <tag-class>org.apache.beehive.netui.tags.html.CheckBoxOption</tag-class>
>   
>   	<attribute>
>             <description><![CDATA[Sets the default value.]]></description>
>             <name>defaultValue</name>
>             <required>false</required>
>             <rtexprvalue>true</rtexprvalue>
>         </attribute>
> *****
>  - Test Case:
> 	1. Create a jsp:
> 	<netui:form action="post">
> 	    <netui:checkBoxGroup dataSource="pageFlow.resultsThree" optionsDataSource="${pageFlow.checkGroupOptions}" repeater="true" >
>                  <netui:span styleClass="normal"  value="${container.item}" />
>                  <netui:checkBoxOption defaultValue="Check 1" value="${container.item}" />&nbsp;                
>             </netui:checkBoxGroup>
> 	<netui:button value="Post" />
>         </netui:form>
> 	2. Create a Controller.jpf:
>    	    // Results Three
> 	    private String resultsThree;
>  	    public String getResultsThree()
>  	    {
> 	        return resultsThree;
> 	    }
> 	
> 	    public void setResultsThree(String resultsThree)
> 	    {
>                 this.resultsThree = resultsThree;
> 	    }  
> 	    private String[] _checkGroupOptions = {"Check 1", "Check 2", "Check 3",
> 				       			"Default Check 1", "Default Check 2"};
> 	    public String[] getCheckGroupOptions() {
> 		return _checkGroupOptions;
> 	    }
> 	3. Run the JSP and see that "Check 1" checkbox is NOT selected.
>  - Expected Results:  
> 	Checkbox "Check 1" should be selected and html source should have checked="checked".
>  - Actual Results: 
> 	Checkbox "Check 1" is NOT selected and html source does NOT have checked="checked".
>  - Root Cause:
> 	I think this might be because checkBoxOption.setDefaultValue() needs another case to set:
> 		_defaultValue = defaultValue.toString();
> 	Right now, if defaultValue="Check 1", none of these cases are a match, so _defaultValue is set to false:
> 		else {
> 	            _defaultValue = Boolean.valueOf(defaultValue.toString());
> 	==== CheckBoxOption.setDefaultValue() ====
> 	 /**
> 	     * Sets the default value (can be an expression).
> 	     * @param defaultValue - the default value
> 	     * @netui:attribute required="false"  rtexprvalue="true"
> 	     * description="Sets the default value."
> 	     * @netui.tldx:attribute
> 	     */
> 	    public void setDefaultValue(Object defaultValue)
> 	            throws JspException
> 	    {
> 	        if (defaultValue == null) {
> 	            String s = Bundle.getString("Tags_AttrValueRequired", new Object[]{"defaultValue"});
> 	            registerTagError(s, null);
> 	            return;
> 	        }
> 	        if (defaultValue instanceof Boolean) {
> 	            _defaultValue = (Boolean) defaultValue;
> 	        }
> 	        else {
> 	            _defaultValue = Boolean.valueOf(defaultValue.toString());
> 	        }
> 	    }
>  - There are no other exceptions or errors.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Resolved: (BEEHIVE-396) Posted by "Daryl Olander (JIRA)" <be...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/BEEHIVE-396?page=history ]
     
Daryl Olander resolved BEEHIVE-396:
-----------------------------------

    Resolution: Fixed

So I made the defaultValue a boolean.  The intention for this is that you would set the value as a boolean "true"/"false" or bind to a Boolean.  So the test isn't really invalid, but I believe the way that JSP works, for a boolean, it is legal to do this and the boolean default will be false.

In general, I don't think this is the right behavior for repeating CheckBoxOptions.  The right behavior would be to databind to some type of class tha thas a boolean property that sets the default value of the checkbox instance.  So you would bind like this
<checkBoxOption defaultValue="${container.item.default}" value="${container.item.value}" />

> <netui:CheckBoxOption defaultValue doesn't take any expression or non-boolean
> -----------------------------------------------------------------------------
>
>          Key: BEEHIVE-396
>          URL: http://issues.apache.org/jira/browse/BEEHIVE-396
>      Project: Beehive
>         Type: Bug
>   Components: NetUI
>     Versions: V1Beta
>     Reporter: David Madrid
>     Assignee: Daryl Olander

>
> DefaultValue for checkBoxOption only allows a "true" of "false" value.  It should also allow an explicit string or expression that resolves to checked, unchecked, String or String[] values that match any option values.
> My resutls:
> defaultValue=
> "checked" - ignored
> "unchecked" - ignored
> "${any.expression}" - ignored
> "true" - this works, generates html checked="checked" for all options.
> "false" - this works. It will override the defaultValue in checkBoxGroup tag if set.
> Note: According to the tld, CheckBoxOption should take a runtime expression.
> *** TLD ***
> 	<description><![CDATA[A checkbox whose state is determined by its enclosing CheckBoxGroup.]]></description>
>         <name>checkBoxOption</name>
>         <tag-class>org.apache.beehive.netui.tags.html.CheckBoxOption</tag-class>
>   
>   	<attribute>
>             <description><![CDATA[Sets the default value.]]></description>
>             <name>defaultValue</name>
>             <required>false</required>
>             <rtexprvalue>true</rtexprvalue>
>         </attribute>
> *****
>  - Test Case:
> 	1. Create a jsp:
> 	<netui:form action="post">
> 	    <netui:checkBoxGroup dataSource="pageFlow.resultsThree" optionsDataSource="${pageFlow.checkGroupOptions}" repeater="true" >
>                  <netui:span styleClass="normal"  value="${container.item}" />
>                  <netui:checkBoxOption defaultValue="Check 1" value="${container.item}" />&nbsp;                
>             </netui:checkBoxGroup>
> 	<netui:button value="Post" />
>         </netui:form>
> 	2. Create a Controller.jpf:
>    	    // Results Three
> 	    private String resultsThree;
>  	    public String getResultsThree()
>  	    {
> 	        return resultsThree;
> 	    }
> 	
> 	    public void setResultsThree(String resultsThree)
> 	    {
>                 this.resultsThree = resultsThree;
> 	    }  
> 	    private String[] _checkGroupOptions = {"Check 1", "Check 2", "Check 3",
> 				       			"Default Check 1", "Default Check 2"};
> 	    public String[] getCheckGroupOptions() {
> 		return _checkGroupOptions;
> 	    }
> 	3. Run the JSP and see that "Check 1" checkbox is NOT selected.
>  - Expected Results:  
> 	Checkbox "Check 1" should be selected and html source should have checked="checked".
>  - Actual Results: 
> 	Checkbox "Check 1" is NOT selected and html source does NOT have checked="checked".
>  - Root Cause:
> 	I think this might be because checkBoxOption.setDefaultValue() needs another case to set:
> 		_defaultValue = defaultValue.toString();
> 	Right now, if defaultValue="Check 1", none of these cases are a match, so _defaultValue is set to false:
> 		else {
> 	            _defaultValue = Boolean.valueOf(defaultValue.toString());
> 	==== CheckBoxOption.setDefaultValue() ====
> 	 /**
> 	     * Sets the default value (can be an expression).
> 	     * @param defaultValue - the default value
> 	     * @netui:attribute required="false"  rtexprvalue="true"
> 	     * description="Sets the default value."
> 	     * @netui.tldx:attribute
> 	     */
> 	    public void setDefaultValue(Object defaultValue)
> 	            throws JspException
> 	    {
> 	        if (defaultValue == null) {
> 	            String s = Bundle.getString("Tags_AttrValueRequired", new Object[]{"defaultValue"});
> 	            registerTagError(s, null);
> 	            return;
> 	        }
> 	        if (defaultValue instanceof Boolean) {
> 	            _defaultValue = (Boolean) defaultValue;
> 	        }
> 	        else {
> 	            _defaultValue = Boolean.valueOf(defaultValue.toString());
> 	        }
> 	    }
>  - There are no other exceptions or errors.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira