Hi Thomas,
Thanks for the suggestions. I tried both of them and didn't really work. Am
I missing something here? Any help would be appreciated.
1) I tried using Custom Selection Model and overriding setSelected. When
checkbox is unchecked, it doesn't go to setSelected method.
private class CustomSingleSelectionModel<T> extends SingleSelectionModel<T> {
public CustomSingleSelectionModel() {
super();
}
public CustomSingleSelectionModel(final ProvidesKey<T> keyProvider) {
super(keyProvider);
}
@Override
public void setSelected(final T object, final boolean selected) {
if (selected) {
Window.alert("Selected is true");
super.setSelected(object, selected);
}
else {
Window.alert("Selected is false");
//Do nothing. To skip already selected cell to uncheck.
}
}
}
2) I tried using customEventTranslator. I had breakpoint
in translateSelectionEvent() method. But it doesn't go there.
DefaultSelectionEventManager.<EnrollmentSummaryDTO> createCustomManager(
new CustomCheckboxEventTranslator<>(5))
private class CustomCheckboxEventTranslator<T> extends
DefaultSelectionEventManager.CheckboxEventTranslator<T> {
private int column;
public CustomCheckboxEventTranslator() {
super();
}
public CustomCheckboxEventTranslator(final int column) {
super(column);
this.column = column;
}
@Override
public DefaultSelectionEventManager.SelectAction
translateSelectionEvent(final CellPreviewEvent<T> event) {
final boolean isSelected =
event.getDisplay().getSelectionModel().isSelected(event.getValue());
if (isSelected) {
return DefaultSelectionEventManager.SelectAction.IGNORE;
}
else {
return DefaultSelectionEventManager.SelectAction.TOGGLE;
}
}
}
On Tuesday, July 24, 2018 at 3:30:24 AM UTC-5, Thomas Broyer wrote:
>
>
>
> On Monday, July 23, 2018 at 6:17:58 PM UTC+2, BM wrote:
>>
>> I have GWT cell list with single selection model and checkbox which is
>> one of the selection column. So it does toggle between rows since it
>> acquires single section model.
>>
>> The toggle should function AS-IS but what I want is if one clicks on an
>> already selected row, the selection should not uncheck that row. If they
>> click on second row, the selection should move to second row which is fine.
>>
>> How do we do this?
>>
>
> You'd need a specific SelectionModel that would "refuse" to unselect the
> selected item.
> It might be as simple as extending SingleSelectionModel, overriding
> setSelected(T,boolean) to do nothing when 'selected' is 'false'; or you may
> have to write your own SelectionModel (inspired by the SingleSelectionModel)
>
> Alternatively, I suppose you could also achieve your goal with a specific
> EventTranslator that wouldn't toggle the selection on an already selected
> item (instead of using
> DefaultSelectionEventManager.createCheckboxManager(), use a new
> DefaultSelectionEventManager(new MyEventTranslator()); you could possibly
> wrap a CheckboxEventTranslator and return IGNORE on an already-selected
> item –event.getDisplay().getSelectionModel().isSelected(event.getValue())–
> instead of delegating to the CheckboxEventTranslator, which could then only
> return TOGGLE on an unchecked checkbox)
>
--
You received this message because you are subscribed to the Google Groups "GWT
Users" 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 https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.