java - How to make cell as non editable based on another cell value in Editable Grid in gxt -


hi creating editable grid using gxt 2.2.3. created columns below:

   list<string> eventlist=new arraylist<string>();     eventlist.add("mark/modify attendance");     eventlist.add("remove attendance");     eventlist.add("modify roster");     eventlist.add("mark od");     eventlist.add("forgot checkin");   eventcombo = new simplecombobox<string>();   eventcombo.setemptytext("");  eventcombo.settriggeraction(triggeraction.all);     //  eventcombo.setselection(eventlist);     celleditor eventcomboeditor = new celleditor(eventcombo) {             public object preprocessvalue(object value) {                 if (value == null) {                   return value;                 }                 return eventcombo.findmodel(value.tostring());               }             public object postprocessvalue(object value) {                  if (value == null) {                    return value;                  }                return ((modeldata) value).get("value");              }            };            eventcombo.setforceselection(true);            eventcombo.setemptytext("");          eventcombo.settriggeraction(triggeraction.all);          eventcombo.add(eventlist);        columnconfig eventcolumn = new columnconfig();     eventcolumn.setid("event");     eventcolumn.setheader("event");     eventcolumn.setwidth(145);     eventcolumn.setmenudisabled(true);     eventcolumn.setsortable(false);    /* */ //  column.seteditor(new);     eventcolumn.seteditor(eventcomboeditor);       configs.add(eventcolumn);      //rosterinout-10        columnconfig rosterinoutcolumn = new columnconfig();        rosterinoutcolumn.setid("rosterinout");        rosterinoutcolumn.setheader("old roster");        rosterinoutcolumn.setwidth(70);        rosterinoutcolumn.setmenudisabled(true);        rosterinoutcolumn.setsortable(false);     configs.add(rosterinoutcolumn);       rostercombo = new simplecombobox<string>();           celleditor editor1 = new celleditor(rostercombo) {                 public object preprocessvalue(object value) {                     if (value == null) {                       return value;                     }                     return rostercombo.findmodel(value.tostring());                   }                 public object postprocessvalue(object value) {                      if (value == null) {                        return value;                      }                    return ((modeldata) value).get("value");                  }                };                rostercombo.setforceselection(true);                rostercombo.settriggeraction(triggeraction.all);                rostercombo.add("od");                rostercombo.add("o");      //newrosterin-11     columnconfig newrosterincolumn = new columnconfig();     newrosterincolumn.setid("newrosterin");     newrosterincolumn.setheader("new roster in");     newrosterincolumn.setwidth(80);     newrosterincolumn.seteditor(editor1);     newrosterincolumn.setmenudisabled(true);     newrosterincolumn.setsortable(false);     configs.add(newrosterincolumn);      //checkinout-12      columnconfig checkinoutcolumn = new columnconfig();      checkinoutcolumn.setid("checkinout");      checkinoutcolumn.setheader("check in-out");      checkinoutcolumn.setwidth(80);      checkinoutcolumn.setmenudisabled(true);      checkinoutcolumn.setsortable(false);     configs.add(checkinoutcolumn);      //checkindate-13      columnconfig checkindatecolumn = new columnconfig();      checkindatecolumn.setid("checkindate");      checkindatecolumn.setheader("check in date");      checkindatecolumn.setwidth(85);      checkindatecolumn.setmenudisabled(true);      checkindatecolumn.setsortable(false);      final datefield datefield1 = new datefield();     datefield1.getpropertyeditor().setformat(datetimeformat.getformat("dd/mmm/yyyy"));      datefield1.getdatepicker().addlistener(events.select, new listener<datepickerevent>() {          @override         public void handleevent(datepickerevent dpe) {          //  window.alert("getting roster date here-->"+grid.getcolumnmodel().);         window.alert("getting rosterdate--."+   casestoremodule.getmodifiedrecords().get(0).get("rosterdate"));            }     });      checkindatecolumn.seteditor(new celleditor(datefield1));     checkindatecolumn.setdatetimeformat(datetimeformat.getformat("dd/mmm/yyyy"));     configs.add(checkindatecolumn);      //checkintime-14     columnconfig checkintimecolumn=new columnconfig();     checkintimecolumn.setid("checkintime");     checkintimecolumn.setheader("check in time");     checkintimecolumn.setwidth(80);     checkintimecolumn.setmenudisabled(true);     checkintimecolumn.setsortable(false);     final textfield<string> checkintime = new textfield<string>();     checkintime.setallowblank(true);       checkintime.addlistener(events.change, new listener<baseevent>() {          @override         public void handleevent(baseevent be) {          //  window.alert("getting checkin time value-->"+checkintime.getvalue());             string variable = checkintime.getrawvalue();             if(variable != null & !variable.equalsignorecase(""))             {                    if(!variable.matches(reg_exp))                 {                     checkintime.clear();                     msgbox.info("enter time in hh:mm format");                     checkintime.focus();                      return;                 }             }         }     });       checkintimecolumn.seteditor(new celleditor(checkintime));      configs.add(checkintimecolumn);        //checkoutdate-15     columnconfig checkoutdatecolumn=new columnconfig();     checkoutdatecolumn.setid("checkoutdate");     checkoutdatecolumn.setheader("check out date");     checkoutdatecolumn.setwidth(90);     checkoutdatecolumn.setmenudisabled(true);     checkoutdatecolumn.setsortable(false);     datefield datefield2 = new datefield();     datefield2.getpropertyeditor().setformat(datetimeformat.getformat("dd/mmm/yyyy"));      checkoutdatecolumn.seteditor(new celleditor(datefield2));     checkoutdatecolumn.setdatetimeformat(datetimeformat.getformat("dd/mmm/yyyy"));     configs.add(checkoutdatecolumn);      //checkouttime-15     columnconfig checkouttimecolumn=new columnconfig();     checkouttimecolumn.setid("checkouttime");     checkouttimecolumn.setheader("check out time");     checkouttimecolumn.setwidth(90);     checkouttimecolumn.setmenudisabled(true);     checkouttimecolumn.setsortable(false);     final textfield<string> checkouttime = new textfield<string>();     checkouttime.setallowblank(true);       checkouttime.addlistener(events.change, new listener<baseevent>() {          @override         public void handleevent(baseevent be) {          //  window.alert("getting checkouttime value-->"+checkouttime.getvalue());             string variable = checkouttime.getrawvalue();             if(variable != null & !variable.equalsignorecase(""))             {                    if(!variable.matches(reg_exp))                 {                     checkouttime.clear();                     msgbox.info("enter time in hh:mm format");                     checkouttime.focus();                      return;                 }             }         }     });     checkouttimecolumn.seteditor(new celleditor(checkouttime));     configs.add(checkouttimecolumn);      //for gradecode-16     columnconfig gradecodecolumn=new columnconfig();     gradecodecolumn.setid("gradecode");     gradecodecolumn.sethidden(true);     configs.add(gradecodecolumn);      //for rosterevent-17 columnconfig    rostereventcolumn=new columnconfig(); rostereventcolumn.setid("rosterevent"); rostereventcolumn.sethidden(true);     configs.add(rostereventcolumn);      //for action-18     columnconfig actioncolumn=new columnconfig();     actioncolumn.setid("action");     actioncolumn.setheader("action");     //column.sethidden(true);     actioncolumn.setwidth(70);     actioncolumn.setmenudisabled(true);     actioncolumn.setsortable(false);     configs.add(actioncolumn);      //for actionhidden-19     columnconfig actionhiddencolumn=new columnconfig();     actionhiddencolumn.setid("actionhidden");     actionhiddencolumn.sethidden(true);     configs.add(actionhiddencolumn);      //for attendid-20     columnconfig attendidcolumn=new columnconfig();     attendidcolumn.setid("attendid");     attendidcolumn.sethidden(true);     configs.add(attendidcolumn);      //for rosterchanged-21     columnconfig    rosterchangedcolumn=new columnconfig();     rosterchangedcolumn.setid("rosterchanged");     rosterchangedcolumn.sethidden(true);     configs.add(rosterchangedcolumn);      // holiday-22     columnconfig holidaycolumn=new columnconfig();     holidaycolumn.setid("holiday");     holidaycolumn.sethidden(true);     configs.add(holidaycolumn);      // checkindatetimehidden-23     column=new columnconfig();     column.setid("checkindatetimehidden");     column.sethidden(true);     configs.add(column);      // checkoutdatetimehidden-24     columnconfig checkoutdatetimehiddencolumn=new columnconfig();     checkoutdatetimehiddencolumn.setid("checkoutdatetimehidden");     checkoutdatetimehiddencolumn.sethidden(true);     configs.add(checkoutdatetimehiddencolumn);      // loginempentity-25     columnconfig loginempentitycolumn=new columnconfig();     loginempentitycolumn.setid("loginempentity");     loginempentitycolumn.sethidden(true);     configs.add(loginempentitycolumn);      //  halfdayllimit-26     columnconfig halfdayllimitcolumn=new columnconfig();     halfdayllimitcolumn.setid("halfdayllimit");     halfdayllimitcolumn.sethidden(true);     configs.add(halfdayllimitcolumn);        return new columnmodel(configs); 

now want make checkindate,checkintime,checkoutdate , checkouttime column cells noneditable or disabled based on value of eventcombo box value.

how make in listener of eventcombo box.please suggest.

i new gxt.

update

i tried below code disable , enable cell it's disabling cell fine.but after disabling,if choose it's not enabling again.

listener> gridaftereditlistener = new listener>() {

    @override     public void handleevent(gridevent<attendancecasecreationmodel> be) {         attendancecasecreationmodel data = be.getmodel();          string val = data.get("event");           if(val.equalsignorecase("remove attendance")){              data.set("checkindate","");                 grid.getcolumnmodel().getcolumnbyid("checkindate").geteditor().disable();               grid.getstore().update(data);                grid.getview().refresh(true);            }          else {              data.set("checkindate","");               grid.getcolumnmodel().getcolumnbyid("checkindate").geteditor().enable();          grid.getstore().update(data);               grid.getview().refresh(true);           }      } }; grid.addlistener(events.afteredit, gridaftereditlistener);  

please suggest how resolve this

instead thinking of disabling , enabling cell, hide , show cell using css. below code saves me reach requirement.

gridcellrenderer<attendancecasecreationmodel> checkinrenderer=new gridcellrenderer<attendancecasecreationmodel>() {          @override         public object render(attendancecasecreationmodel model, string property,                 columndata config, int rowindex, int colindex,                 liststore<attendancecasecreationmodel> store,                 grid<attendancecasecreationmodel> grid) {              string color="pink";             if(eventcombo.getvalue()!=null){                   if(eventcombo.getrawvalue().equalsignorecase("forgot checkin") ||                          eventcombo.getrawvalue().equalsignorecase("mark/modify attendance")){                     color="pink";                 }                 else{                      config.style=config.style+ ";visibility: hidden;";                 }              }              config.style=config.style+ ";background-color:" + color  + ";";             config.style=config.style+ ";display: block;";             object value = model.get(property);             return value;          }     }; 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -