list - How to enable/disable item in selecManyCheckbox based on flag -


i need in disabling , enabling item selectmanycheckbox component in jsf page. first of all, selectmanycheckbox component showing 3 chechboxes (loan - health - transfer). list populated bean has code:

private list<hrcertificate> hrcertificateslist = new arraylist<hrcertificate>();   //getter , setter  private string loanflag="";  @postconstruct public void init() {      this.hrcertificateslist.add(new hrcertificate(("loan"), "lc"));     this.hrcertificateslist.add(new hrcertificate(("health"), "hi"));     this.hrcertificateslist.add(new hrcertificate(("trasnfer"), "te"));     } 

in same bean, running sql statement return either yes or no , value adding loanflag variable.so if flag="y", need enable loan checkbox user can select else need disable selectmanycheckbox. issue facing difficulties in applying logic disable , enable item selectmanycheckboxwhere in above code listing , enabling them time.

the code selectmanychexkbox:

 <p:selectmanycheckbox id="hrcertificates" value="#{user.selectedhrcertificates}" layout="pagedirectio>      <f:selectitems value="#{user.hrcertificateslist}"           var="hrcertificate" itemlabel="#{hrcertificate.hrcertificatename}"          itemvalue="#{hrcertificate.hrcertificatecode}"/>   </p:selectmanycheckbox> 

so how apply logic

could edit hrcertificate class add disabled boolean field? if yes, can add itemdisabled="#{hrcerticate.disabled}" f:selectitems should easiest solution.

another option use map<hrcertificate, boolean> instead of list<hrcertificate>.

private map<hrcertificate, boolean> hrcertificatesmap = new hashmap<hrcertificate, boolean>();  @postconstruct public void init() {      hrcertificatesmap.put(new hrcertificate(("loan"), "lc"), null);      hrcertificatesmap.put(new hrcertificate(("health"), "hi"), null);      hrcertificatesmap.put(new hrcertificate(("trasnfer"), "te"), null);  }   // when you're done sql query, update map add corresponding boolean values... 

.xhtml

<p:selectmanycheckbox id="hrcertificates" value="#{user.selectedhrcertificates}" layout="pagedirectio>     <f:selectitems value="#{user.hrcertificatesmap.keyset().toarray()}" var="hrcertificate" itemlabel="#{hrcertificate.hrcertificatename}" itemvalue="#{hrcertificate.hrcertificatecode}" itemdisabled="#{user.hrcertificatesmap.get(hrcertificate)}" /> </p:selectmanycheckbox> 

Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -