newSelectionModel: some refactoring to make the RefreshableSelectionModels

a listener of ListDataProvider
This commit is contained in:
Lukas Furmanek committed 2015-12-07 18:02:37 +01:00
1 parent 106924dc0d
commit 61d8587445
12 files changed
+41 -54

No files matched your search

@@ -141,7 +141,7 @@ public abstract class AbstractTrackedRacesListComposite extends SimplePanel impl
refreshableSelectionModel = selectionCheckboxColumn.getSelectionModel();
raceTable.setSelectionModel(refreshableSelectionModel, this.selectionCheckboxColumn.getSelectionManager());
} else {
refreshableSelectionModel = new RefreshableSingleSelectionModel<RaceDTO>(entityIdentityComparator);
refreshableSelectionModel = new RefreshableSingleSelectionModel<RaceDTO>(entityIdentityComparator, raceList);
raceTable.setSelectionModel(refreshableSelectionModel);
}
@@ -18,13 +18,13 @@ import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.DeviceConfigurationMatcherDTO;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.RefreshableSelectionModel;
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
public class DeviceConfigurationListComposite extends Composite {
protected static AdminConsoleTableResources tableResource = GWT.create(AdminConsoleTableResources.class);
private final RefreshableSelectionModel<DeviceConfigurationMatcherDTO> refreshableConfigurationSelectionModel;
private final RefreshableMultiSelectionModel<DeviceConfigurationMatcherDTO> refreshableConfigurationSelectionModel;
private final CellTable<DeviceConfigurationMatcherDTO> configurationTable;
protected ListDataProvider<DeviceConfigurationMatcherDTO> configurationsDataProvider;
@@ -38,7 +38,6 @@ public class DeviceConfigurationListComposite extends Composite {
protected final StringMessages stringMessages;
public DeviceConfigurationListComposite(final SailingServiceAsync sailingService,
final RefreshableSelectionModel<DeviceConfigurationMatcherDTO> refreshableSelectionModel,
final ErrorReporter errorReporter, final StringMessages stringMessages) {
this.sailingService = sailingService;
this.errorReporter = errorReporter;
@@ -57,8 +56,8 @@ public class DeviceConfigurationListComposite extends Composite {
configurationTable = createConfigurationTable();
configurationTable.setVisible(true);
refreshableConfigurationSelectionModel = refreshableSelectionModel;
// TODO / FIXME Lukas define EntityIdentityComparator
refreshableConfigurationSelectionModel = new RefreshableMultiSelectionModel<>(null, configurationsDataProvider);
configurationTable.setSelectionModel(refreshableConfigurationSelectionModel);
panel.add(configurationTable);
@@ -136,4 +135,8 @@ public class DeviceConfigurationListComposite extends Composite {
table.addColumn(identifierNameColumn, stringMessages.device());
return table;
}
public RefreshableMultiSelectionModel<DeviceConfigurationMatcherDTO> getSelectionModel() {
return refreshableConfigurationSelectionModel;
}
}
@@ -22,7 +22,6 @@ import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO;
import com.sap.sailing.gwt.ui.shared.DeviceConfigurationMatcherDTO;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
import com.sap.sse.gwt.client.celltable.RefreshableSelectionModel;
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator;
@@ -55,9 +54,8 @@ public class DeviceConfigurationPanel extends SimplePanel implements DeviceConfi
this.sailingService = sailingService;
this.stringMessages = stringMessages;
this.errorReporter = reporter;
this.refreshableMultiSelectionModel = new RefreshableMultiSelectionModel<>(null);
//TODO create an appropriate EntityIdentityComparator or define an .eqauls() method for DeviceConfigurationMatcherDTO
setupUi();
refreshableMultiSelectionModel = listComposite.getSelectionModel();
refreshableMultiSelectionModel.addSelectionChangeHandler(new Handler() {
@Override
@@ -73,8 +71,7 @@ public class DeviceConfigurationPanel extends SimplePanel implements DeviceConfi
}
removeConfigurationButton.setEnabled(!selectedConfigurations.isEmpty());
}
});
setupUi();
});
}
private void setupUi() {
@@ -124,7 +121,7 @@ public class DeviceConfigurationPanel extends SimplePanel implements DeviceConfi
Grid grid = new Grid(1 ,2);
mainPanel.add(grid);
listComposite = createListComposite(sailingService, refreshableMultiSelectionModel, errorReporter, stringMessages);
listComposite = createListComposite(sailingService, errorReporter, stringMessages);
grid.setWidget(0, 0, listComposite);
grid.getRowFormatter().setVerticalAlign(0, HasVerticalAlignment.ALIGN_TOP);
grid.getColumnFormatter().getElement(1).getStyle().setPaddingTop(2.0, Unit.EM);
@@ -185,10 +182,9 @@ public class DeviceConfigurationPanel extends SimplePanel implements DeviceConfi
return new DeviceConfigurationCreateMatcherDialog(stringMessages, validator, callback);
}
protected DeviceConfigurationListComposite createListComposite(SailingServiceAsync sailingService, RefreshableSelectionModel<DeviceConfigurationMatcherDTO> selectionModel,
protected DeviceConfigurationListComposite createListComposite(SailingServiceAsync sailingService,
ErrorReporter errorReporter, StringMessages stringMessages) {
return new DeviceConfigurationListComposite(sailingService, selectionModel,
errorReporter, stringMessages);
return new DeviceConfigurationListComposite(sailingService, errorReporter, stringMessages);
}
protected DeviceConfigurationDetailComposite createDetailComposite(SailingServiceAsync sailingService,
@@ -9,14 +9,12 @@ import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.DeviceConfigurationMatcherDTO;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.RefreshableSelectionModel;
public class DeviceConfigurationUserListComposite extends DeviceConfigurationListComposite {
public DeviceConfigurationUserListComposite(SailingServiceAsync sailingService,
RefreshableSelectionModel<DeviceConfigurationMatcherDTO> refreshableSelectionModel, ErrorReporter errorReporter,
public DeviceConfigurationUserListComposite(SailingServiceAsync sailingService, ErrorReporter errorReporter,
StringMessages stringMessages) {
super(sailingService, refreshableSelectionModel, errorReporter, stringMessages);
super(sailingService, errorReporter, stringMessages);
}
@Override
@@ -5,7 +5,6 @@ import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.DeviceConfigurationMatcherDTO;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.RefreshableSelectionModel;
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator;
@@ -18,9 +17,9 @@ public class DeviceConfigurationUserPanel extends DeviceConfigurationPanel {
}
@Override
protected DeviceConfigurationListComposite createListComposite(SailingServiceAsync sailingService, RefreshableSelectionModel<DeviceConfigurationMatcherDTO> refreshableSelectionModel,
protected DeviceConfigurationListComposite createListComposite(SailingServiceAsync sailingService,
ErrorReporter errorReporter, StringMessages stringMessages) {
return new DeviceConfigurationUserListComposite(sailingService, refreshableSelectionModel, errorReporter, stringMessages);
return new DeviceConfigurationUserListComposite(sailingService, errorReporter, stringMessages);
}
@Override
@@ -76,9 +76,9 @@ public class IgtimiAccountsPanel extends FlowPanel {
AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
allAccounts = new CellTable<String>(/* pageSize */10000, tableRes);
refreshableAccountsSelectionModel = new RefreshableSingleSelectionModel<String>(null);
allAccounts.setSelectionModel(refreshableAccountsSelectionModel);
final ListDataProvider<String> filteredAccounts = new ListDataProvider<String>();
refreshableAccountsSelectionModel = new RefreshableSingleSelectionModel<String>(null, filteredAccounts);
allAccounts.setSelectionModel(refreshableAccountsSelectionModel);
ListHandler<String> accountColumnListHandler = new ListHandler<String>(filteredAccounts.getList());
filteredAccounts.addDataDisplay(allAccounts);
final List<String> emptyList = Collections.emptyList();
@@ -580,7 +580,7 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
public boolean representSameEntity(LeaderboardGroupDTO dto1, LeaderboardGroupDTO dto2) {
return dto1.getId().equals(dto2.getId());
}
});
}, groupsProvider);
refreshableGroupsSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
@Override
public void onSelectionChange(SelectionChangeEvent event) {
@@ -171,7 +171,7 @@ public class MediaPanel extends FlowPanel {
public boolean representSameEntity(MediaTrack dto1, MediaTrack dto2) {
return dto1.dbId.equals(dto2.dbId);
}
});
}, mediaTrackListDataProvider);
mediaTracksTable.setSelectionModel(refreshableSelectionModel,
DefaultSelectionEventManager.<MediaTrack> createDefaultManager());
@@ -41,6 +41,7 @@ public class RemoteServerInstancesManagementPanel extends SimplePanel {
private final StringMessages stringMessages;
private final AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
private final ListDataProvider<RemoteSailingServerReferenceDTO> serverDataProvider;
private RefreshableMultiSelectionModel<RemoteSailingServerReferenceDTO> refreshableServerSelectionModel;
private LabeledAbstractFilterablePanel<RemoteSailingServerReferenceDTO> filteredServerTablePanel;
@@ -61,8 +62,8 @@ public class RemoteServerInstancesManagementPanel extends SimplePanel {
VerticalPanel remoteServersContentPanel = new VerticalPanel();
remoteServersPanel.setContentWidget(remoteServersContentPanel);
serverDataProvider = new ListDataProvider<RemoteSailingServerReferenceDTO>();
CellTable<RemoteSailingServerReferenceDTO> remoteServersTable = createRemoteServersTable();
ListDataProvider<RemoteSailingServerReferenceDTO> serverDataProvider = new ListDataProvider<RemoteSailingServerReferenceDTO>();
serverDataProvider.addDataDisplay(remoteServersTable);
filteredServerTablePanel = new LabeledAbstractFilterablePanel<RemoteSailingServerReferenceDTO>(
@@ -167,7 +168,7 @@ public class RemoteServerInstancesManagementPanel extends SimplePanel {
RemoteSailingServerReferenceDTO dto2) {
return dto1.getUrl().equals(dto2.getUrl());
}
});
}, serverDataProvider);
serverTable.setSelectionModel(refreshableServerSelectionModel);
return serverTable;
@@ -262,6 +262,7 @@ public class SwissTimingEventManagementPanel extends AbstractEventManagementPane
raceTable.addColumn(genderColumn, "Gender");
raceTable.addColumn(raceStartTimeColumn, stringConstants.startTime());
raceTable.setWidth("300px");
raceList = new ListDataProvider<SwissTimingRaceRecordDTO>();
raceTable.setSelectionModel(new RefreshableMultiSelectionModel<SwissTimingRaceRecordDTO>(
new EntityIdentityComparator<SwissTimingRaceRecordDTO>() {
@@ -269,12 +270,10 @@ public class SwissTimingEventManagementPanel extends AbstractEventManagementPane
public boolean representSameEntity(SwissTimingRaceRecordDTO dto1, SwissTimingRaceRecordDTO dto2) {
return dto1.raceId.equals(dto2.raceId);
}
}) {
}, raceList) {
});
trackableRacesPanel.add(raceTable);
raceList = new ListDataProvider<SwissTimingRaceRecordDTO>();
raceList.addDataDisplay(raceTable);
Handler columnSortHandler = getRaceTableColumnSortHandler(raceList.getList(), regattaNameColumn, seriesNameColumn,
raceNameColumn, raceStartTimeColumn, raceIdColumn, boatClassColumn, genderColumn, raceStatusColumn);
@@ -190,6 +190,7 @@ public class SwissTimingReplayConnectorPanel extends AbstractEventManagementPane
raceTable.addColumn(boatClassNamesColumn, stringMessages.boatClass());
raceTable.addColumn(raceStartTrackingColumn, stringMessages.startTime());
raceTable.setWidth("300px");
raceList = new ListDataProvider<SwissTimingReplayRaceDTO>();
raceTable.setSelectionModel(new RefreshableMultiSelectionModel<SwissTimingReplayRaceDTO>(
new EntityIdentityComparator<SwissTimingReplayRaceDTO>() {
@@ -197,13 +198,11 @@ public class SwissTimingReplayConnectorPanel extends AbstractEventManagementPane
public boolean representSameEntity(SwissTimingReplayRaceDTO dto1, SwissTimingReplayRaceDTO dto2) {
return dto1.race_id.equals(dto2.race_id);
}
}) {
}, raceList) {
});
racesHorizontalPanel.add(raceTable);
racesHorizontalPanel.add(trackPanel);
raceList = new ListDataProvider<SwissTimingReplayRaceDTO>();
raceList.addDataDisplay(raceTable);
Handler columnSortHandler = getRaceTableColumnSortHandler(raceList.getList(), raceNameColumn, boatClassNamesColumn, raceStartTrackingColumn);
raceTable.addColumnSortHandler(columnSortHandler);
@@ -22,8 +22,7 @@ import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.view.client.SelectionChangeEvent;
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
import com.sap.sse.gwt.client.celltable.RefreshableSingleSelectionModel;
import com.google.gwt.view.client.SingleSelectionModel;
import com.sap.sse.security.shared.PermissionsForRoleProvider;
import com.sap.sse.security.ui.client.UserChangeEventHandler;
import com.sap.sse.security.ui.client.UserManagementServiceAsync;
@@ -38,7 +37,7 @@ public class UserManagementPanel extends DockPanel {
private List<UserDeletedEventHandler> userDeletedHandlers = new ArrayList<>();
private RefreshableSingleSelectionModel<UserDTO> refreshableSingleSelectionModel;
private SingleSelectionModel<UserDTO> singleSelectionModel;
private UserListDataProvider userListDataProvider;
@@ -47,14 +46,7 @@ public class UserManagementPanel extends DockPanel {
VerticalPanel west = new VerticalPanel();
HorizontalPanel buttonPanel = new HorizontalPanel();
west.add(buttonPanel);
refreshableSingleSelectionModel = new RefreshableSingleSelectionModel<>(
new EntityIdentityComparator<UserDTO>() {
@Override
public boolean representSameEntity(UserDTO dto1, UserDTO dto2) {
return dto1.getEmail().equals(dto2.getEmail());
}
});
singleSelectionModel = new SingleSelectionModel<>();
Button createButton = new Button(stringMessages.createUser(), new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
@@ -65,7 +57,7 @@ public class UserManagementPanel extends DockPanel {
final Button deleteButton = new Button(stringMessages.deleteUser(), new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
final UserDTO userToDelete = refreshableSingleSelectionModel.getSelectedObject();
final UserDTO userToDelete = singleSelectionModel.getSelectedObject();
final String username = userToDelete.getName();
if (Window.confirm(stringMessages.doYouReallyWantToDeleteUser(username))) {
userManagementService.deleteUser(username, new AsyncCallback<SuccessInfo>() {
@@ -86,12 +78,12 @@ public class UserManagementPanel extends DockPanel {
}
});
buttonPanel.add(deleteButton);
deleteButton.setEnabled(refreshableSingleSelectionModel.getSelectedObject() != null);
deleteButton.setEnabled(singleSelectionModel.getSelectedObject() != null);
final UserList userList = new UserList();
userList.setSelectionModel(refreshableSingleSelectionModel);
userList.setSelectionModel(singleSelectionModel);
TextBox filterBox = new TextBox();
userListDataProvider = new UserListDataProvider(userManagementService, filterBox);
final UserDetailsView userDetailsView = new UserDetailsView(userService, refreshableSingleSelectionModel.getSelectedObject(), stringMessages, userListDataProvider, permissionsForRoleProvider);
final UserDetailsView userDetailsView = new UserDetailsView(userService, singleSelectionModel.getSelectedObject(), stringMessages, userListDataProvider, permissionsForRoleProvider);
add(userDetailsView, DockPanel.CENTER);
userDetailsView.addUserChangeEventHandler(new UserChangeEventHandler() {
@Override
@@ -99,11 +91,11 @@ public class UserManagementPanel extends DockPanel {
userListDataProvider.updateDisplays();
}
});
refreshableSingleSelectionModel.addSelectionChangeHandler(new Handler() {
singleSelectionModel.addSelectionChangeHandler(new Handler() {
@Override
public void onSelectionChange(SelectionChangeEvent event) {
userDetailsView.updateUser(refreshableSingleSelectionModel.getSelectedObject(), userManagementService);
deleteButton.setEnabled(refreshableSingleSelectionModel.getSelectedObject() != null);
userDetailsView.updateUser(singleSelectionModel.getSelectedObject(), userManagementService);
deleteButton.setEnabled(singleSelectionModel.getSelectedObject() != null);
}
});
userList.setPageSize(20);
@@ -135,7 +127,7 @@ public class UserManagementPanel extends DockPanel {
if (user != null) {
for (UserDTO u : userList.getVisibleItems()) {
if (u.getName().equals(user.getName())) {
refreshableSingleSelectionModel.setSelected(user, true);
singleSelectionModel.setSelected(user, true);
}
}
}