Dear Jaga,
thank you for your answer. I have tried your
Am Freitag, 22. November 2013 19:39:42 UTC+1 schrieb jaga:
>
> For 1) just override the render() method of the cell or column. If the
> value is null do nothing otherwise render as normal .
>
Overriding the render() method was also my intention. However, *I get a NPE
when user clicks on the DatePicketCell for setting a new date*. See stack
trace below.
Nov 24, 2013 9:54:17 PM
com.google.gwt.logging.server.RemoteLoggingServiceUtil logOnServer
SEVERE: null
com.google.gwt.core.client.impl.SerializableThrowable$ThrowableWithClassName
at
com.google.gwt.user.datepicker.client.CalendarModel.setCurrentMonth(CalendarModel.java:148)
at
com.google.gwt.user.datepicker.client.DatePicker.setCurrentMonth(DatePicker.java:527)
at
com.google.gwt.cell.client.DatePickerCell.onEnterKeyDown(DatePickerCell.java:220)
at
com.google.gwt.cell.client.DatePickerCell.onBrowserEvent(DatePickerCell.java:183)
at
com.google.gwt.cell.client.DatePickerCell.onBrowserEvent(DatePickerCell.java:1)
at
com.google.gwt.user.cellview.client.Column.onBrowserEvent(Column.java:154)
at
com.google.gwt.user.cellview.client.AbstractCellTable.fireEventToCell(AbstractCellTable.java:2437)
at
com.google.gwt.user.cellview.client.AbstractCellTable.onBrowserEvent2(AbstractCellTable.java:2006)
at
com.google.gwt.user.cellview.client.AbstractHasData.onBrowserEvent(AbstractHasData.java:739)
at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1351)
at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1307)
at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at
com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at
com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:338)
at
com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:219)
at
com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
at
com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:571)
at
com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:279)
at
com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:242)
at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at
com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at
com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:293)
at
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
at
com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
at java.lang.Thread.run(Unknown Source)
> For 2) I suggest you look at the cell validation example in the gwt
> showcase. You could also probably just as well ignore the modified value
> and just call CellTable.redraw() or refresh your data provider.
*There is a GWT-Bug here.*
In case you use default DatePickerCell constructor, or the one with the
DateTimeFormat, the DatePicker will show up the chosen date, and it WILL
KEEP SHOWING IT even if you decide not to set it. Calling
CellTable.redraw() or refresh on data provider will not have any effect to
its value in the CellTable!
In case you override its render method, such as the one I have here:
...
@Override
public void render(Context context, Date value, SafeHtmlBuilder
sb) {
if(value != null) {
sb.appendEscaped(DateTimeFormat.getFormat("dd.MM.yyy").format(value));
}
}
In that case it works fine. DatePickerCell will not show the new value
until the data provider is not re-loaded with the new data.
In my opinion this looks like a bug.
My first question sounds also like a bug or like a feature request.
Can someone check this and report a bug/feature-request to GWT-developers?
Thank you:
Nermin
--
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.