Click here to Skip to main content
15,891,739 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi I am creating Editable Grid using GXT 2.2.3. I created columns like below:

Java
   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 To 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 the 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 the 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);

    // for holiday-22
    ColumnConfig holidaycolumn=new ColumnConfig();
    holidaycolumn.setId("holiday");
    holidaycolumn.setHidden(true);
    configs.add(holidaycolumn);

    // for checkinDateTimeHidden-23
    column=new ColumnConfig();
    column.setId("checkinDateTimeHidden");
    column.setHidden(true);
    configs.add(column);

    // for checkoutDateTimeHidden-24
    ColumnConfig checkoutDateTimeHiddencolumn=new ColumnConfig();
    checkoutDateTimeHiddencolumn.setId("checkoutDateTimeHidden");
    checkoutDateTimeHiddencolumn.setHidden(true);
    configs.add(checkoutDateTimeHiddencolumn);

    // for loginEmpEntity-25
    ColumnConfig loginEmpEntitycolumn=new ColumnConfig();
    loginEmpEntitycolumn.setId("loginEmpEntity");
    loginEmpEntitycolumn.setHidden(true);
    configs.add(loginEmpEntitycolumn);

    // for  halfDayLLimit-26
    ColumnConfig halfDayLLimitcolumn=new ColumnConfig();
    halfDayLLimitcolumn.setId("halfDayLLimit");
    halfDayLLimitcolumn.setHidden(true);
    configs.add(halfDayLLimitcolumn);



    return new ColumnModel(configs);

Now I want to make the checkinDate,CheckIntime,CheckOutDate and CheckOutTime 


Now I want to make the checkinDate,CheckIntime,CheckOutDate and CheckOutTime column cells as Noneditable or disabled based on value of eventCombo box value.

How to make this in the Listener of eventCombo box.Please suggest.
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900