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.