diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableMultiSelectionModel.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableMultiSelectionModel.java index 3afb6eca890..2d306f34cdd 100644 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableMultiSelectionModel.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableMultiSelectionModel.java @@ -7,7 +7,7 @@ import com.google.gwt.view.client.MultiSelectionModel; import com.google.gwt.view.client.ProvidesKey; public class RefreshableMultiSelectionModel extends MultiSelectionModel implements RefreshableSelectionModel { - private EntityIdentityComparator comp; + private final EntityIdentityComparator comp; public RefreshableMultiSelectionModel() { super(); @@ -31,7 +31,7 @@ public class RefreshableMultiSelectionModel extends MultiSelectionModel im @Override public void refreshSelectionModel(Iterable newObjects) { - final Set selectedSet = new HashSet<>(getSelectedSet()); + final Set selectedSet = new HashSet<>(getSelectedSet()); // TODO Lukas: a copy doesn't seem required (anymore?) here; the result of getSelectedSet() is not referenced beyond the scope of this method final boolean isNotEmpty = !selectedSet.isEmpty(); clear(); if (isNotEmpty) { diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableSelectionModel.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableSelectionModel.java index a77a1c7d653..888a7144da5 100644 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableSelectionModel.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableSelectionModel.java @@ -5,11 +5,13 @@ import com.google.gwt.view.client.SetSelectionModel; import com.google.gwt.view.client.SingleSelectionModel; /** - * The Interface {@link RefreshableSelectionModel} unify the refresh behavior of SelectionModels e.g. of a + * The interface {@link RefreshableSelectionModel} unifies the refresh behavior of SelectionModels e.g. of a * {@link SingleSelectionModel}. To refresh this SelectionModel you can call the * {@link RefreshableSelectionModel#refreshSelectionModel(Iterable)} method and this method will refresh the * SelectionModel. * + * TODO Lukas, please enhance this comment to explain how this re-establishes the invariant of same elements in SetSelectionModel.getSelectedElements and DataProvider + * * @author D064976 */ @@ -27,7 +29,7 @@ public interface RefreshableSelectionModel extends SetSelectionModel { * has no {@link EntityIdentityComparator} set, this method will use the {@link #equals(Object)} method to compare. *

* - * If an selected object is not in the newObjects the object wouldn't be selected anymore. + * If a selected object is not contained in newObjects the object wouldn't be selected anymore. *

* * When the selection is refreshed this method triggers a diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableSingleSelectionModel.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableSingleSelectionModel.java index b8e71daf722..eb460ffc7a3 100644 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableSingleSelectionModel.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableSingleSelectionModel.java @@ -7,7 +7,7 @@ import com.google.gwt.view.client.ProvidesKey; import com.google.gwt.view.client.SingleSelectionModel; public class RefreshableSingleSelectionModel extends SingleSelectionModel implements RefreshableSelectionModel { - private EntityIdentityComparator comp; + private final EntityIdentityComparator comp; public RefreshableSingleSelectionModel() { super(); @@ -31,14 +31,14 @@ public class RefreshableSingleSelectionModel extends SingleSelectionModel @Override public void refreshSelectionModel(Iterable newObjects) { - final Set selectedSet = new HashSet<>(getSelectedSet()); + final Set selectedSet = new HashSet<>(getSelectedSet()); // TODO Lukas: a copy doesn't seem required (anymore?) here; the result of getSelectedSet() is not referenced beyond the scope of this method final T selected = selectedSet.isEmpty() ? null : selectedSet.iterator().next(); clear(); for (final T it : newObjects) { if (selected != null) { setSelected(it, comp == null ? selected.equals(it) : comp.representSameEntity(selected, it)); } else { - setSelected(it, false); + setSelected(it, false); // TODO Lukas: clear() already clears the selection } } scheduleSelectionChangeEvent();