Collapsible panel in datatable gets jammed
------------------------------------------

         Key: MYFACES-1040
         URL: http://issues.apache.org/jira/browse/MYFACES-1040
     Project: MyFaces
        Type: Bug
  Components: Tomahawk  
    Versions: Nightly    
 Environment: Replicable in all environments.
    Reporter: [EMAIL PROTECTED]
    Priority: Blocker


After binding collapsible-panel's value-parameter to a backing bean property, 
it works, but all collapsible-panel's in a data table collapse and expand at 
same time - click one and all get expanded - and when we try to bind it to an 
object in the list returned by backing bean - "prodReq" in sample - it doesn't 
works and gets jammed - if it is collapsed it remains collapsed and if expanded 
it remains expanded the toggling dosen't work.

Same problem is reproduceable in the tomahawk sample application in the latest 
code from svn.

Eg:
<t:dataTable id="prod_dt" var="prodReq"
value="#{prqfilter.productionRequests}" preserveDataModel="false">
  <h:column>                    
        <t:collapsiblePanel id="test4" title="prod" dir="ltr"
value="#{prodReq.collapsed}" var="toggle">      
      <f:facet name="header">
      <t:div style="width:500px;background-color:#CCCCCC;">
          <h:outputText value="Production Request"/>
          <t:headerLink>
              <h:outputText value="> Details" rendered="#{toggle}"/>
              <h:outputText value="v Overview" rendered="#{!toggle}"/>
          </t:headerLink>
          <h:commandLink value="test" action="#{prodReq.toggleState}"/>
      </t:div>
      </f:facet>
        
      <h:inputText value="#{prodReq.firstName}"/>
      <h:inputText value="#{prodReq.surName}"/>
      <h:inputText value="#{prodReq.collapsed}"/>
   </t:collapsiblePanel>
 </h:column>
</t:dataTable>

Code from {prqfilter} Backing Bean: 
===========================

    private List<SelectItem> prodLocaions;
    
    private List<ProductionRequest> productionRequests;
    
    private boolean _collapsed;

    public boolean isCollapsed()
    {
        return _collapsed;
    }

    public void setCollapsed(boolean collapsed)
    {
        _collapsed = collapsed;
    }
    
        public List<ProductionRequest> getProductionRequests() {

                //System.out.println("In get prod req" + productionRequests);
        //test data
                productionRequests = new ArrayList<ProductionRequest>();
        productionRequests.add(new ProductionRequest("A","B","12/12/2006"));    
        
        productionRequests.add(new ProductionRequest("c","d","12/12/2006"));
        productionRequests.add(new ProductionRequest("e","f","12/12/2006"));
        productionRequests.add(new ProductionRequest("g","h","12/12/2006"));    
                
                System.out.println("In get prod req" + productionRequests);     
        
                return productionRequests;
        }       

        public void setProductionRequests(List<ProductionRequest> 
productionRequests) {

                this.productionRequests = productionRequests;
        }

Code from {prodReq} list object:
===========================

public class ProductionRequest implements java.io.Serializable {
        
        private String _firstName;
        private String _surName;
        private String _birthDate;
        
        private boolean _collapsed=true;
        
        
        public ProductionRequest() { 
                //Do Nothing            
        }
        
        public ProductionRequest(String firstName, String surName, String 
birthDate) {
                setFirstName(firstName);
                setSurName(surName);
                setBirthDate(birthDate);
        }
        
        public void toggleState() {             
                System.out.println("Prodreq togg" + isCollapsed());
                this.setCollapsed(!isCollapsed());
        }
        
          
    public boolean isCollapsed() {
        return _collapsed;
    }

    public void setCollapsed(boolean collapsed) {
        _collapsed = collapsed;
    }

        public String getBirthDate() {
                return _birthDate;
        }

        public void setBirthDate(String birthDate) {
                this._birthDate = birthDate;
        }

        public String getFirstName() {
                return _firstName;
        }

        public void setFirstName(String firstName) {
                this._firstName = firstName;
        }

        public String getSurName() {
                return _surName;
        }

        public void setSurName(String surName) {
                this._surName = surName;
        }


}

-- 
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

Reply via email to