Glad to hear that your problem is solved.
I'm going to open an issue about this problem.
It might be useful for others as it was for us.
About why does it happens when SelectionModel is set, I guess that the
SelectionModel forces an update on the click. So it just anticipates this
unexpected behavior. If you don't use SelectionModel you still realize that
EditTextCell fires update when you click on the cell for editing, and click
out with no changes (that was my exactly problem).
The abstract popup cell concept seems to be very extendable. It would be
interesting to have such a feature.
Eventually, if the EditSelectCell component will be useful for you, you can
email me and I'll share it with you.
--
D. Reinert
Em sexta-feira, 30 de agosto de 2013 10h49min30s UTC-3, Steve C escreveu:
>
> Danilo,
>
> That worked for me, although the line numbers were slightly different. I
> edited code from 2.5.1 - was yours based on an earlier version?
>
> I'm still trying to figure out the logic flow, given that the issue
> doesn't occur until I add a selection model.
>
> I like the selection cell concept. I've made a radio group cell to handle
> a set of radio buttons, but the drawback has been that it takes up a lot of
> space. Your concept layered on top of that might be a good solution,
> especially if I can use a popup when the buttons are displayed. (General
> thought - it seems like a generic popup cell might be useful, which things
> like DatePickerCell could extend, but that would also give inherited logic
> for any other sort of custom popup cell I'd want to create.)
>
>
> On Sunday, August 25, 2013 12:25:33 PM UTC-4, Steve C wrote:
>>
>> In a simple celltable, if I set a SingleSelectionModel, then clicking on
>> an EditTextCell triggers the updater for that column, even though the
>> editor doesn't even open (and the value is the current value). Without the
>> selection model this doesn't happen.
>>
>> Is this expected behavior?
>>
>> I've pasted sample code below.
>>
>> Also worth noting is the behavior if I hit *Enter *to clear the alert
>> box - that triggers whatever enter would do on the cell (like open it for
>> editing). Better yet, try editing a cell, and clicking on a different row,
>> then using *Enter *to close all of the alerts that come up.
>>
>> public class EditTextCellBug implements EntryPoint {
>> public void onModuleLoad() {
>>
>> List<Bean> list = new ArrayList<Bean>();
>> list.add(new Bean("John"));
>> list.add(new Bean("Jane"));
>>
>> ListDataProvider<Bean> provider = new
>> ListDataProvider<Bean>(list);
>>
>> // problem occurs whether we use explicit key provider or not
>> CellTable<Bean> ct = new CellTable<Bean>(provider);
>> provider.addDataDisplay(ct);
>>
>> Column<Bean, String> col = new Column<Bean, String>(new
>> EditTextCell()) {
>> @Override
>> public String getValue(Bean b) {
>> return b.name;
>> }
>> };
>> col.setFieldUpdater(new FieldUpdater<Bean, String>() {
>> @Override
>> public void update(int index, Bean b, String value) {
>> Window.alert(b.name + " updating to " + value);
>> b.name = value;
>> }
>> });
>> ct.addColumn(col);
>>
>> // problem doesn't occur if we don't set the selection model
>> SingleSelectionModel<Bean> selModel = new
>> SingleSelectionModel<Bean>();
>> ct.setSelectionModel(selModel);
>>
>> RootPanel.get().add(ct);
>>
>> // doesn't fire updater - only manual selection does
>> selModel.setSelected(list.get(0), true);
>> }
>> }
>> class Bean {
>> public String name;
>> public Bean(String name) {
>> this.name = name;
>> }
>> }
>>
>> As a side note, with the single selection model in place, it takes a
>> second click to open the cell for editing if the row wasn't currently
>> selected. (I think I may have a misunderstanding of the role of a selection
>> model, since it doesn't seem to be needed for simple editing, and there are
>> three states a row can have, no bg, yellow bg, and blue, using the default
>> styling. Do I only need one if I actually want to "do something" with the
>> user's selection?)
>>
>>
>>
--
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.