I'm updating a double value in a datagrid to using a custom parser on an 
EditTextCell.  If the parser throws an error, then I'm trying to put the 
original value back by redrawing the row.  But, the erroneous value stays 
in place.  Stepping through the code, I do see it going through 
HasDataPresenter's setRowData method, and even see the original value in 
the row object.  But, that value doesn't get drawn.

If I now click on the cell again, then click away without editing, then the 
original value does get written into the cell.  That led me to try a 
deferred command, which didn't work, hence code below with a ridiculous 
delay before redrawing (which, needless to say, also doesn't work).

If it makes any difference, I'm using a SingleSelectionModel.

Am I doing something wrong here?  Or is there a better way to check the 
values as they're being entered?

          @Override
          public void update(final int index, R item, String value)
          {
             double doubleValue = 0.0;
             boolean needsRedraw = false;
             try
             {
                 if (value != null && !value.isEmpty())
                 {
                     doubleValue = MyFormat.PARSER.parse(value);
                     needsRedraw = true;  // added
                 }
                 item.setAmt(doubleValue);
                 thisCell.clearViewData(item);
             }
             catch(Exception e)
             {
                needsRedraw = true;
             }
             if (needsRedraw)
             {
                //grid.redrawRow(index);
                Scheduler.get().scheduleFixedDelay(new 
Scheduler.RepeatingCommand() {
                   public boolean execute() {
                      grid.redrawRow(index);
                      return false;
                   }
                }, 1000);
                
             }
          }
       });

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to