Let me get this straight, you run the code in dev mode, you set the
endTime TextInputCell to a value, let's say 14:18 and on pushing Enter
or leaving focus, the code parses the value and updates it to 15:19
(as the + 1 is set in the FieldUpdater) and then this displays
immediately on your machine??

On Aug 22, 10:46 pm, Jeff Chimene <jchim...@gmail.com> wrote:
> On 08/22/2011 01:13 PM, jsg wrote:
>
> > We haven't tried it in compiled mode yet, but it definitely doesn't
> > work in dev mode for us.
>
> Alright - at least that's better than what was happening on my side. The
> problem was that in dev mode, the NPE exception was correctly caught in
> the try/catch block.
>
> In compiled mode, the NPE doesn't exist, it's caught as a
> JavaScriptException.
>
> My code example was intended to demonstrate that when "MyVariable" is
> null, then the catch of the NPE doesn't happen in compiled mode.
>
> I was hoping that you were seeing the same thing: the refresh() succeeds
> in dev mode, but not in compiled mode because the NPE can't be caught in
> compiled mode. The refresh() never got called because of the NPE.
>
> In your case, it's not working in dev mode. In that case, what do you
> see when the presenter does not refresh?
>
> Also, is the celltable setup to allow focus to one cell? If so, does the
> refresh occur if you set focus to a cell, the blur out of that cell? One
> thing I was going to try before I figured out the NPE, was to subclass
> CellTable, and start hooking into some of the protected() routines.
>
>
>
>
>
>
>
>
>
> > What is your code that returns a value? Neither the
> > FieldUpdate.update() nor the ScheduledCommand.execute() expects a
> > value back so I'm a little perplexed as to your context? And what is
> > MyVariable?
>
> > Sorry if I've just lost the plot.
>
> > On Aug 22, 8:47 pm, Jeff Chimene <jchim...@gmail.com> wrote:
> >> On 08/22/2011 02:34 AM, jsg wrote:
>
> >>> Hi Jeff,
>
> >>> Given both our experience and your confirmation, I'm going to file a
> >>> bug report in case this thread isn't being noticed.
>
> >>> Thanks for your effort.
>
> >>> On Aug 22, 12:46 am, jchimene <jchim...@gmail.com> wrote:
> >>>> Hi Julian,
>
> >>>> I was too glib in my earlier reply.
>
> >>>> I, too, am seeing this problem. I hadn't completetly tested this app
> >>>> in production mode, and it fails miserably when compiled.
>
> >>>> So, I will post updates to this thread when I get a solution that
> >>>> works not only in development mode, but also when compiled.
>
> >> The answer (at least in my case), was the following:
>
> >> try {
> >>    switch (MyVariable) {
> >>     case 1: return 1;
> >>     case 2: return 2;
> >>     .
> >>     .
> >>     .
>
> >> } catch (NullPointerException e) {
> >>    return 1;
> >> }
>
> >> In compiled mode, the try/catch doesn't, so the Javascript was failing
> >> at the switch expression evaluation. So, the side-effect was that the
> >> display was never refresh()-ing
>
> >> Try compiling in PRETTY mode and checking for exceptions.
>
> >>>> On Aug 19, 8:17 am, jsg <jgerso...@gmail.com> wrote:
>
> >>>>> We have refreshed the view because instead of calling
> >>>>> ListDataProvider.refresh() which simply calls updateRowData() for all
> >>>>> the registered displays, we've done the following:
>
> >>>>> By calling batchTable.setRowData() we are simply more directly
> >>>>> targeting both the display and only the row that has changed. (Rather
> >>>>> than all visible rows by calling refresh().)
> >>>>> As far as I can tell from the system, the DataProviders have no
> >>>>> knowledge of the internal column data and so they can't know if any of
> >>>>> the values of the rows have been updated. Only that the row instances
> >>>>> themselves have changed. (I have tested it now, just to be safe,
> >>>>> replacing setRowData() with refresh() with the same results.)
>
> >>>>> Our use case is not so uncommon that we should be struggling so much
> >>>>> with this intended functionality.
>
> >>>>> Thanks for your prompt reply.
> >>>>> Julian
>
> >>>>> On Aug 19, 4:16 pm, Jeffrey Chimene <jchim...@gmail.com> wrote:
>
> >>>>>> On 8/19/2011 4:53 AM, jsg wrote:
>
> >>>>>>> Thanks for your insight.
>
> >>>>>>> However, after wrapping the setRowData() in a ScheduleDeferred like
> >>>>>>> so:
>
> >>>>>>> Scheduler.get().scheduleDeferred(new ScheduledCommand() {
> >>>>>>>                                            @Override
> >>>>>>>                                            public void execute() {
> >>>>>>>                                                    
> >>>>>>> batchTable.setRowData(index,
> >>>>>>> Collections.singletonList(object));
> >>>>>>>                                            }
> >>>>>>>                                    });
>
> >>>>>>> There is no perceived change in behaviour.
> >>>>>>> I've tried wrapping the whole FieldUpdater.update() contents inside
> >>>>>>> the execute() action, but to no avail.
>
> >>>>>> I'm not sitting in front of my GWT development machine,so I don't have
> >>>>>> this exactly right,but where are you calling the list.refresh() method?
> >>>>>> You've updated the backing list, but not refreshed the view (at least 
> >>>>>> in
> >>>>>> the sample).
>
> >>>>>>> On Aug 18, 10:01 pm, Jeff Chimene<jchim...@gmail.com>  wrote:
> >>>>>>>> On 08/18/2011 12:05 PM, jsg wrote:
>
> >>>>>>>>> Hello.
> >>>>>>>>> I've created a test case of my CellTable issue as a self contained
> >>>>>>>>> panel that can easily be imported into any project:
> >>>>>>>>>http://pastebin.com/zDLPKUNh
> >>>>>>>>> Basically I have two Date class fields in my row model, a startDate
> >>>>>>>>> and an endDate. Each Date has two columns in the CellTable (called
> >>>>>>>>> batchTable), one to display the actual date (a DatePickerCell) and
> >>>>>>>>> the other being a text input cell for the time.
> >>>>>>>>> When the FieldUpdater of the startTime or endTime is fired we parse
> >>>>>>>>> the value, save the new time and call batchTable.setRowData() with
> >>>>>>>>> the updated object and row index.
> >>>>>>>>> The problem is that when FieldUpdater is fired, the cells do not
> >>>>>>>>> update. I specifically edited the FieldUpdater of the endTime cell
> >>>>>>>>> to be an hour later than what it was set at.
> >>>>>>>>> I've checked as best as I can that all the gets and sets of the
> >>>>>>>>> respective startDate and endDate are in order, but I'm thinking that
> >>>>>>>>> there's something about CellTable I'm not getting.
> >>>>>>>>> Apologies if I've missed anything.
> >>>>>>>>> I'm running: GWT 2.3
> >>>>>>>>> I've tested it in the latest Chrome and IE9.
> >>>>>>>>> Regards, Julian
> >>>>>>>> Try putting your update actions inside a ScheduleDeferred command.
>
> >>>>>>>> The issue seems to be the coupling between the FieldUpdater and the
> >>>>>>>> cellTable refresh logic. Running the FieldUpdate.update() action 
> >>>>>>>> after
> >>>>>>>> the browser's refresh loop seems to address this issue.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to