PDA

View Full Version : How to disable the cells based on the other cell value in the Row



Gundamaiah
25 Mar 2014, 12:44 AM
Hi I am creating Editable using GXT 2.2.3. I created columns like 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 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 column cell values as Noneditable based on value of eventCombo box value.
How to make this in the Listener of eventCombo box.Please suggest.

I am new to GXT.

pragati.rithekar
1 Apr 2014, 6:22 AM
I am facing the same issue.. anyone?

Gundamaiah
10 Apr 2014, 3:27 AM
Anyone in this world ,please answer to this.

pragati.rithekar
25 May 2014, 10:24 PM
I was able to achieve this using a custom column config which extends ColumnConfig<M, M> and implements ComponentPlugin<Grid<M>>.
It decides the value of a cell based on the other cell values onBrowserEvent