newSelectionModel: made refreshSelectionModel private

This commit is contained in:
Lukas Furmanek committed 2015-12-07 16:16:25 +01:00
1 parent aab807ec02
commit 04052064ef
15 files changed
+9 -157

No files matched your search

@@ -312,7 +312,6 @@ public abstract class AbstractLeaderboardConfigPanel extends FormPanel implement
availableLeaderboardList.clear();
Util.addAll(leaderboards, availableLeaderboardList);
filterLeaderboardPanel.updateAll(availableLeaderboardList); // also maintains the filtered leaderboardList
refreshableLeaderboardSelectionModel.refreshSelectionModel(leaderboards);
leaderboardRaceColumnSelectionChanged();
}
@@ -481,7 +481,6 @@ public abstract class AbstractTrackedRacesListComposite extends SimplePanel impl
}
allRaces = newAllRaces;
filterablePanelRaces.updateAll(allRaces);
refreshableSelectionModel.refreshSelectionModel(allRaces);
}
/**
@@ -252,7 +252,6 @@ public class CompetitorTableWrapper<S extends RefreshableSelectionModel<Competit
@Override
public void onSuccess(Iterable<CompetitorDTO> result) {
refreshCompetitorList(result);
((RefreshableSelectionModel<CompetitorDTO>) getSelectionModel()).refreshSelectionModel(result);
if (callback != null) callback.onSuccess(result);
}
});
@@ -268,7 +267,6 @@ public class CompetitorTableWrapper<S extends RefreshableSelectionModel<Competit
public void onSuccess(Iterable<CompetitorDTO> result) {
getFilteredCompetitors(result);
refreshCompetitorList(result);
((RefreshableSelectionModel<CompetitorDTO>) getSelectionModel()).refreshSelectionModel(result);
if (callback != null) callback.onSuccess(result);
}
});
@@ -46,6 +46,5 @@ public class ControlPointTableWrapper<S extends RefreshableSelectionModel<Contro
@Override
public void refresh(Iterable<ControlPointDTO> controllPoints) {
super.refresh(controllPoints);
((RefreshableSelectionModel<ControlPointDTO>) getSelectionModel()).refreshSelectionModel(controllPoints);
}
}
@@ -79,7 +79,6 @@ public class DeviceConfigurationListComposite extends Composite {
ColumnSortEvent.fire(configurationTable, configurationTable.getColumnSortList());
noConfigurationsLabel.setVisible(false);
refreshableConfigurationSelectionModel.refreshSelectionModel(result);
}
@Override
@@ -595,7 +595,6 @@ public class EventListComposite extends Composite implements EventsRefresher, Le
eventTable.setVisible(true);
noEventsLabel.setVisible(false);
}
refreshableEventSelectionModel.refreshSelectionModel(events);
allEvents.clear();
allEvents.addAll(events);
filterTextbox.updateAll(allEvents);
@@ -602,8 +602,6 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
Util.addAll(groups, availableLeaderboardGroups);
}
groupsFilterablePanel.updateAll(availableLeaderboardGroups);
refreshableGroupsSelectionModel.refreshSelectionModel(groups);
}
@Override
@@ -822,7 +820,6 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
descriptionTextArea.setText(selectedGroup.description);
setDescriptionEditable(false);
refreshableGroupDetailsSelectionModel.refreshSelectionModel(availableLeaderboards);
groupDetailsProvider.getList().clear();
groupDetailsProvider.getList().addAll(selectedGroup.leaderboards);
groupDetailsProvider.refresh();
@@ -99,6 +99,5 @@ public class MarkTableWrapper<S extends RefreshableSelectionModel<MarkDTO>> exte
return o1.getName().compareTo(o2.getName());
}
});
((RefreshableSelectionModel<MarkDTO>) getSelectionModel()).refreshSelectionModel(marks);
}
}
@@ -145,7 +145,6 @@ public class MediaPanel extends FlowPanel {
allMediaTracks.addAll(mediaTrackListDataProvider.getList());
filterableMediaTracks.updateAll(allMediaTracks);
mediaTrackListDataProvider.refresh();
refreshableSelectionModel.refreshSelectionModel(allMediaTracks);
}
});
@@ -352,7 +352,6 @@ public class RegattaListComposite extends Composite implements RegattasDisplayer
Util.addAll(regattas, newAllRegattas);
allRegattas = newAllRegattas;
filterablePanelRegattas.updateAll(allRegattas);
refreshableRegattaMultiSelectionModel.refreshSelectionModel(regattas);
}
public List<RegattaDTO> getAllRegattas() {
@@ -183,7 +183,6 @@ public class RemoteServerInstancesManagementPanel extends SimplePanel {
@Override
public void onSuccess(List<RemoteSailingServerReferenceDTO> result) {
filteredServerTablePanel.updateAll(result);
refreshableServerSelectionModel.refreshSelectionModel(result);
}
});
}
@@ -50,6 +50,5 @@ public class WaypointTableWrapper<S extends RefreshableSelectionModel<WaypointDT
@Override
public void refresh(Iterable<WaypointDTO> wayPoints) {
super.refresh(wayPoints);
((RefreshableSelectionModel<WaypointDTO>) getSelectionModel()).refreshSelectionModel(wayPoints);
}
}
@@ -1,7 +1,5 @@
package com.sap.sse.gwt.client.celltable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -31,7 +29,6 @@ import com.google.gwt.view.client.SelectionModel;
public class RefreshableMultiSelectionModel<T> extends MultiSelectionModel<T>
implements RefreshableSelectionModel<T>, HasData<T> {
private final EntityIdentityComparator<T> comp;
private final List<T> elements;
private boolean dontcheckSelectionState = false;
/**
@@ -41,7 +38,6 @@ public class RefreshableMultiSelectionModel<T> extends MultiSelectionModel<T>
public RefreshableMultiSelectionModel(EntityIdentityComparator<T> comp) {
super();
this.comp = comp;
elements = new ArrayList<>();
}
/**
@@ -53,7 +49,6 @@ public class RefreshableMultiSelectionModel<T> extends MultiSelectionModel<T>
public RefreshableMultiSelectionModel(ProvidesKey<T> keyProvider, EntityIdentityComparator<T> comp) {
super(keyProvider);
this.comp = comp;
elements = new ArrayList<>();
}
@Override
@@ -89,11 +84,12 @@ public class RefreshableMultiSelectionModel<T> extends MultiSelectionModel<T>
}
/**
* refreshes the {@link RefreshableMultiSelectionModel SelectionModel} with all elements of the {@link ListDataProvider}
* refreshes the {@link RefreshableMultiSelectionModel SelectionModel} with all elements of the
* {@link ListDataProvider}
* <p>
* FIXME change to private
*/
public void refreshSelectionModel(Iterable<T> newObjects) {
private void refreshSelectionModel(Iterable<T> newObjects) {
dontcheckSelectionState = true;
final Set<T> selectedSet = getSelectedSet();
final boolean isEmpty = selectedSet.isEmpty();
@@ -118,73 +114,9 @@ public class RefreshableMultiSelectionModel<T> extends MultiSelectionModel<T>
dontcheckSelectionState = false;
}
/**
* refreshes the {@link RefreshableMultiSelectionModel SelectionModel}-Part from <code>start</code> to
* <code>elements.size()</code>
*
* @param start
* @param newObjects
*/
@Override
public void refreshSelectionModel(int start, List<T> newObjects) {
dontcheckSelectionState = true;
List<T> oldElements = elements.subList(start, elements.size());
Set<T> selectedElements = new HashSet<T>();
for (T it : oldElements) {
if (isSelected(it)) {
selectedElements.add(it);
setSelected(it, false);
}
}
if (!selectedElements.isEmpty()) {
for (T newElement : newObjects) {
if (comp != null) {
for (T selected : selectedElements) {
if (comp.representSameEntity(selected, newElement)) {
setSelected(newElement, true);
break;
}
}
} else {
if (selectedElements.contains(newElement)) {
setSelected(newElement, true);
}
}
}
SelectionChangeEvent.fire(this);
}
isSelected(newObjects.iterator().next()); // Triggers a clear of unselected elements in superclass
dontcheckSelectionState = false;
}
@SuppressWarnings("unchecked")
@Override
public void setRowData(int start, List<? extends T> values) {
if (!values.equals(elements.subList(start, elements.size()))) {
// refresh the selectionModel
if (start == 0 && (values.size() > 1 || values.size()==0)) {
refreshSelectionModel((Iterable<T>) values);
} else {
refreshSelectionModel(start, (List<T>) values);
}
// refresh the element list
// TODO discuss with Axel if this depends to much of the implementation of ListDataProvider
if (values.isEmpty()) {
elements.clear();
} else if (elements.isEmpty()) {
elements.addAll(values);
} else if (values.size() == 1) {
elements.set(start, values.get(0));
} else if (start == 0) {
elements.clear();
elements.addAll(values);
} else {
for (int i = start; i < elements.size(); i++) {
elements.remove(i);
}
elements.addAll(values);
}
}
//TODO /FIME refresh selectionModel with all data of ListDataProvider
}
@Override
@@ -1,7 +1,5 @@
package com.sap.sse.gwt.client.celltable;
import java.util.List;
import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.SetSelectionModel;
import com.google.gwt.view.client.SingleSelectionModel;
@@ -39,8 +37,6 @@ public interface RefreshableSelectionModel<T> extends SetSelectionModel<T> {
* {@link SelectionChangeEvent.Handler#onSelectionChange(SelectionChangeEvent) onSelectionChangedEvent} using
* {@link AbstractSelectionModel#fireEvent(com.google.gwt.event.shared.GwtEvent)}.
*/
// consider deleting this method and switch to private in sub classes
public void refreshSelectionModel(Iterable<T> newObjects);
// consider deleting this method and switch to private in sub classes
public void refreshSelectionModel(int start, List<T> newObjects);
// TODO / FIXME delete this method and describe interaction
// public void refreshSelectionModel(Iterable<T> newObjects);
}
@@ -1,6 +1,5 @@
package com.sap.sse.gwt.client.celltable;
import java.util.ArrayList;
import java.util.List;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.view.client.HasData;
@@ -19,7 +18,6 @@ import com.google.gwt.view.client.RangeChangeEvent.Handler;
public class RefreshableSingleSelectionModel<T> extends SingleSelectionModel<T> implements RefreshableSelectionModel<T>, HasData<T> {
private final EntityIdentityComparator<T> comp;
private final List<T> elements;
private boolean dontcheckSelectionState = false;
/**
@@ -29,7 +27,6 @@ public class RefreshableSingleSelectionModel<T> extends SingleSelectionModel<T>
public RefreshableSingleSelectionModel(EntityIdentityComparator<T> comp) {
super();
this.comp=comp;
elements = new ArrayList<>();
}
/**
@@ -41,7 +38,6 @@ public class RefreshableSingleSelectionModel<T> extends SingleSelectionModel<T>
public RefreshableSingleSelectionModel(ProvidesKey<T> keyProvider, EntityIdentityComparator<T> comp) {
super(keyProvider);
this.comp =comp;
elements = new ArrayList<>();
}
@Override
@@ -62,8 +58,8 @@ public class RefreshableSingleSelectionModel<T> extends SingleSelectionModel<T>
}
}
}
@Override
public void refreshSelectionModel(Iterable<T> newObjects) {
private void refreshSelectionModel(Iterable<T> newObjects) {
dontcheckSelectionState = true;
final T selected = getSelectedObject();
if (selected != null) {
@@ -79,67 +75,10 @@ public class RefreshableSingleSelectionModel<T> extends SingleSelectionModel<T>
SelectionChangeEvent.fire(this);
dontcheckSelectionState = false;
}
/**
* refreshes the {@link RefreshableMultiSelectionModel SelectionModel}-Part from <code>start</code> to
* <code>elements.size()</code>
*
* @param start
* @param newObjects
*/
@Override
public void refreshSelectionModel(int start, List<T> newObjects) {
dontcheckSelectionState = true;
T selectedElement = getSelectedObject();
if (selectedElement != null) {
final int index = elements.indexOf(selectedElement);
if (index < 0 || index < start) {
return;
}
setSelected(selectedElement, false);
if (comp != null) {
for (T newElement : newObjects) {
if (comp.representSameEntity(selectedElement, newElement)) {
setSelected(newElement, true);
break;
}
}
} else if (newObjects.contains(selectedElement)) {
setSelected(newObjects.get(newObjects.indexOf(selectedElement)), true);
}
SelectionChangeEvent.fire(this);
}
dontcheckSelectionState = false;
}
@SuppressWarnings("unchecked")
@Override
public void setRowData(int start, List<? extends T> values) {
if (!values.equals(elements.subList(start, elements.size()))) {
// refresh the selectionModel
if (start == 0 && (values.size() > 1 || values.size() == 0)) {
refreshSelectionModel((Iterable<T>) values);
} else {
refreshSelectionModel(start, (List<T>) values);
}
// refresh the element list
// TODO discuss with Axel if this depends to much of the implementation of ListDataProvider
if (values.isEmpty()) {
elements.clear();
} else if (elements.isEmpty()) {
elements.addAll(values);
} else if (values.size() == 1) {
elements.set(start, values.get(0));
} else if (start == 0) {
elements.clear();
elements.addAll(values);
} else {
for (int i = start; i < elements.size(); i++) {
elements.remove(i);
}
elements.addAll(values);
}
}
//TODO / FIXME update with all elements of ListDataProvider
}
@Override