[ 
https://issues.apache.org/jira/browse/TOBAGO-871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12914790#action_12914790
 ] 

D. W. commented on TOBAGO-871:
------------------------------

Any news on this?

> button with defaultCommand="true" and tabGroup with switchType="client" shows 
> wrong/unexpected behaviour
> --------------------------------------------------------------------------------------------------------
>
>                 Key: TOBAGO-871
>                 URL: https://issues.apache.org/jira/browse/TOBAGO-871
>             Project: MyFaces Tobago
>          Issue Type: Bug
>    Affects Versions: 1.0.24
>         Environment: Ubuntu 9.04, Tomcat 6.0, Firefox 3.0.18
>            Reporter: D. W.
>
> Dear all,
> When the attribute defaultCommand="true" for a tc:button is combined with 
> tc:tabGroup and attribute switchType="client" (i.e. the default value), a 
> wrong/unexpected behaviour is noticed. Please consider the following code and 
> read the more detailed explanations below:
> Backing Bean: TestDefaultCommand.java
> ------------------------------------------
> public class TestDefaultCommand {
>       public String value1;
>       public String value2;
>       public String value3;
>       public String message;
>       
>       public String getValue1() {
>               return value1;
>       }
>       public void setValue1(String value1) {
>               this.value1 = value1;
>       }
>       public String getValue2() {
>               return value2;
>       }
>       public void setValue2(String value2) {
>               this.value2 = value2;
>       }
>       public String getValue3() {
>               return value3;
>       }
>       public void setValue3(String value3) {
>               this.value3 = value3;
>       }
>       public String getMessage() {
>               return message;
>       }
>       public void setMessage(String message) {
>               this.message = message;
>       }       
>       public String go1() {
>               setMessage("action of button in tab 1 invoked - value: " + 
> getValue1());
>               return null;
>       }
>       public String go2() {
>               setMessage("action of button in tab 2 invoked - value: " + 
> getValue2());
>               return null;
>       }
>       public String go3() {
>               setMessage("action of button in tab 3 invoked - value: " + 
> getValue3());
>               return null;
>       }
> }
> ------------------------------------------
> JSP-File: testDefaultCommand.jsp
> ------------------------------------------
> <?xml version="1.0" encoding="UTF-8" ?>
> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page";
>           xmlns:f="http://java.sun.com/jsf/core";
>           xmlns:tc="http://myfaces.apache.org/tobago/component";
>           xmlns:tx="http://myfaces.apache.org/tobago/extension";
>           version="2.0">
>           
>     <f:view>              
>       <tc:page label="Default Command Test">
>               <f:facet name="layout">
>                       <tc:gridLayout rows="fixed;*"/>
>               </f:facet>
>                       
>                       <tc:cell>               
>                       <tc:out value="#{testDefaultCommand.message}"/>
>               </tc:cell>
>                       <tc:tabGroup>
>                               <tc:tab label="Tab 1">
>                               <f:facet name="layout">
>                                       <tc:gridLayout rows="fixed;fixed"/>
>                               </f:facet>                                      
>                         
>                                       <tx:in 
> value="#{testDefaultCommand.value1}" label="Text: " />
>                                       <tc:button 
> action="#{testDefaultCommand.go1}" label="Test 1" />
>                               </tc:tab>
>                               <tc:tab label="Tab 2">
>                               <f:facet name="layout">
>                                       <tc:gridLayout rows="fixed;fixed"/>
>                               </f:facet>                                      
>                         
>                                       <tx:in 
> value="#{testDefaultCommand.value2}" label="Text: " />
>                                       <tc:button defaultCommand="true" 
> action="#{testDefaultCommand.go2}" label="Test 2" />
>                               </tc:tab>
>                               <tc:tab label="Tab 3">
>                               <f:facet name="layout">
>                                       <tc:gridLayout rows="fixed;fixed"/>
>                               </f:facet>                                      
>                         
>                                       <tx:in 
> value="#{testDefaultCommand.value3}" label="Text: " />
>                                       <tc:button defaultCommand="true" 
> action="#{testDefaultCommand.go3}" label="Test 3" />
>                               </tc:tab>
>                       </tc:tabGroup>                  
>               </tc:page>
>     </f:view>
> </jsp:root>
> ------------------------------------------
> Faces-config: excerpt
> ------------------------------------------
> ...
>       <managed-bean>
>               <managed-bean-name>testDefaultCommand</managed-bean-name>
>               <managed-bean-class>TestDefaultCommand</managed-bean-class>
>               <managed-bean-scope>request</managed-bean-scope>
>       </managed-bean>
> ...
> ------------------------------------------
> All the scenarios are executed in the listed order:
> Scenario 1: works as expected
> Action: In Tab 1, the user enters "a" in input field and clicks on button 
> "Test 1".
> Expected output: "action of button in tab 1 invoked - value: a"
> Actual output: "action of button in tab 1 invoked - value: a"
> Scenario 2: doesn't work as expected
> Action: In Tab 2, the user enters "b" in input field and clicks on button 
> "Test 2".
> Expected output: "action of button in tab 2 invoked - value: b"
> Actual output: "action of button in tab 3 invoked - value: "
> Scenario 3: works as expected
> Action: In Tab 3, the user enters "c" in input field and clicks on button 
> "Test 3".
> Expected output: "action of button in tab 3 invoked - value: c"
> Actual output: "action of button in tab 3 invoked - value: c"
> Scenario 4: doesn't work as expected
> Action: In Tab 1, there is still the value "a" in the text field and the user 
> sets the cursor in the text field and hits "enter".
> Expected output: "action of button in tab 1 invoked - value: a"
> Actual output: "action of button in tab 3 invoked - value: c"
> Scenario 5: doesn't work as expected
> Action: In Tab 2, there is still the value "b" in the text field and the user 
> sets the cursor in the text field and hits "enter".
> Expected output: "action of button in tab 2 invoked - value: b"
> Actual output: "action of button in tab 3 invoked - value: c"
> Scenario 4: works as expected (by accident)
> Action: In Tab 3, there is still the value "c" in the text field and the user 
> sets the cursor in the text field and hits "enter".
> Expected output: "action of button in tab 3 invoked - value: c"
> Actual output: "action of button in tab 3 invoked - value: c"
> These scenarios show that there is certainly something wrong with the 
> defaultCommand invocation. It seems that the defaultCommand in Tab 2 gets 
> overwritten by the default command in Tab 3. However, this is an unexpected 
> behavior, since the tabs should function independently of each other and 
> hence should also have the possibility to take independent defaultCommand 
> buttons.
> Important note: If the attribute "switchType" is set to "reloadTab", all the 
> scenarios work as expected.
> I am looking forward to any comments on this issue.
> Many thanks,
> dw.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to