I am trying to modify the value that is displayed in a DataGrid cell after 
the user has entered or modified the existing value.  For example, if the 
user enters "5/6/12" I want the cell to display "05/06/2012" when the user 
exits the cell.  Here is the code that creates the column:

final TextInputCell fosterDateStartCell = new TextInputCell();
final Column<IFosterHistoryProxy, String> fosterDateStartColumn;
fosterDateStartColumn = new Column<IFosterHistoryProxy, 
String>(fosterDateStartCell) {
    @Override
    public String getValue(final IFosterHistoryProxy fosterHistory) {
        final String date = fosterHistory.getFosterDateStart();
        if (GLGWTUtil.isEmpty(date)) {
            return "";
        }
        return date.substring(4, 6) + "/" + date.substring(6, 8) + "/" + 
date.substring(0, 4);
    }
};
fosterDateStartColumn.setFieldUpdater(new FieldUpdater<IFosterHistoryProxy, 
String>() {
    @Override
    public void update(final int index, final IFosterHistoryProxy 
fosterHistory, final String value) {
        final String[] dateParts = value.split("/");
        if (dateParts.length != 3) {
            return;
        }
        final int month = Integer.valueOf(dateParts[0]);
        final int day = Integer.valueOf(dateParts[1]);
        final int year = Integer.valueOf(dateParts[2]);
        final String date = (year < 100 ? 2000 + year : year) + (month < 10 
? "0" : "") + month +
                            (day < 10 ? "0" : "") + day;
        getEditDTO(fosterHistory, 
ECacheUpdateType.Update).setFosterDateStart(date);
        final ViewData viewData = new ViewData(date.substring(4, 6) + "/" + 
date.substring(6, 8) +
                                               "/" + date.substring(0, 4));
        fosterDateStartCell.setViewData(fosterHistory.getFosterHistoryId(), 
viewData);
        fosterHistoryGrid.redraw();
    }
});
fosterDateStartColumn.setSortable(true);
fosterHistoryGrid.addColumn(fosterDateStartColumn, "Start Date");
fosterHistoryGrid.setColumnWidth(fosterDateStartColumn, "10ex");


The getValue() method is working well ... if the value in the proxy object 
is "20120506" then I see "05/06/2012" in the cell.  But the update() method 
is not showing the correct value ... if the user enters "5/6/12" then I do 
not see "05/06/2012" (the value in the cell is still "5/6/12" after the 
update() method has executed).  Note that the setFosterDateStart() method 
does not cause the update to be sent to the server; it simply sets the 
value in the editable proxy object.  Also note that the 
getFosterHistoryId() method returns the stable identifier value for the 
IFosterHistoryProxy object, and that the key provider for the selection 
model associated with the DataGrid is using that identifier.

Many thanks for any help!

Andy

-- 
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/groups/opt_out.


Reply via email to