I am not able to check or uncheck a Gwt CheckBoxCell . It works fine in Chrome but it doesn't work at all in mozilla . What wrong i am doing ? Please Suggest . When i am selecting selectAllHeader not able to check/uncheck in mozilla though same works in chrome.
    DataGridTableRowModel headerRow = dataGridTableRowList.get(0);
            E12CommonUtils.printOnConsole("IN createTableComponent================="+ headerRow);
            int width = 50;
            final MultiSelectionModel<DataGridTableRowModel> multiSelectionModel = new MultiSelectionModel<DataGridTableRowModel>();
            this.setSelectionModel(multiSelectionModel,DefaultSelectionEventManager.<DataGridTableRowModel> createCheckboxManager(0));
            multiSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() 
            {
                        public void onSelectionChange(SelectionChangeEvent event) 
                        {
                            count++;
                            E12CommonUtils.printOnConsole("Inside select : ");
                            Set<DataGridTableRowModel> set = multiSelectionModel.getSelectedSet();
                            Iterator it = set.iterator();
                            selectedValues = new StringBuffer();
                            selectedNames = new StringBuffer();
                            while (it.hasNext()) 
                            {
                                DataGridTableRowModel row = (DataGridTableRowModel) it.next();
                                E12CommonUtils.printOnConsole("Inside select = "+ row.getCellText(1));
                                selectedValues.append(row.getCellText(1) + ":");
                                E12CommonUtils.printOnConsole("AFTER APPENDING selectedValues = "+ row.getCellText(1));
                                selectedNames.append(row.getCellData(1).getName() + ":");
                            }
                        }
                    });
            E12CommonUtils.printOnConsole("IN $$$$$$$$$$$$$$$$$=================135");
            final Column<DataGridTableRowModel, Boolean> checkColumn = new Column<DataGridTableRowModel, Boolean>(new E12CheckBoxCell(false, false)) 
                    {
                @Override
                public Boolean getValue(DataGridTableRowModel dataGridTRModel) 
                {
                    boolean isSelected = multiSelectionModel.isSelected(dataGridTRModel);
                    E12CommonUtils.printOnConsole("checkColumn isSelected["+ isSelected + "]\tprotect["+ dataGridTRModel.getCellData(0).isProtect() + "]");
                    getFieldUpdater().update(0, dataGridTRModel, isSelected); // If commented deselect all works
                    return isSelected;
                }
            };
            checkColumn.setFieldUpdater(new FieldUpdater<DataGridTableRowModel, Boolean>() 
                    {
                        @Override
                        public void update(int idx,DataGridTableRowModel dataGridTRModel,Boolean value) 
                        {
                            try 
                            {
                                CellData cellData = dataGridTRModel.getCellData(0);
                                cellData.setData(String.valueOf(value));
                                dataGridTRModel.setCellData(0, cellData);
                                multiSelectionModel.setSelected(dataGridTRModel, value);
                            } 
                            catch (Exception e) 
                            {
                                Window.alert("Exception in checkColumn.setFieldUpdater : "+ e.getMessage());
                            }
                        }
                    });
            CheckboxCell checkAll = new CheckboxCell(); 
//          E12CheckBoxCell checkAll = new E12CheckBoxCell(false, false);
            Header<Boolean> selectAllHeader = new Header<Boolean>(checkAll){
                @Override
                public Boolean getValue() 
                {
                    E12CommonUtils.printOnConsole("IN getValue()=========");
                    return false;
                }
            };
            selectAllHeader.setUpdater(new ValueUpdater<Boolean>(){
                @Override
                public void update(Boolean selected) 
                {
                    for (DataGridTableRowModel ele : getVisibleItems()) 
                    {
                        E12CommonUtils.printOnConsole("IN update**************");
                        multiSelectionModel.setSelected(ele, selected);
                    }
                }
            });
            this.addColumn(checkColumn, selectAllHeader);
            this.setColumnWidth(checkColumn, 20, Unit.PX);
            for (int i = 1; i < headerRow.getRowData().size(); i++) 
            {
                final int index = i;
                final String colName = headerRow.getCellData(index).getName();
                width = 25;// TODO
                E12CustomColumn column = new E12CustomColumn(index, false);
                this.setColumnWidth(column, width + "px");
                // Add a selection model to handle user selection.
                ResizableHeader<DataGridTableRowModel> header = new ResizableHeader<DataGridTableRowModel>(colName, this, column) {
                    @Override
                    public String getValue() 
                    {
                        return colName;
                    }
                };
                // this.addColumn(column, selectAllHeader,header);
                // this.addColumn(selectAllHeader, header);
                this.addColumn(column, header);
            }
            dataProvider.addDataDisplay(this);
            dataProvider.refresh();
 
     
    