mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-18 18:20:58 +00:00
newSelectionModel: some refactoring to make the RefreshableSelectionModels
a listener of ListDataProvider
This commit is contained in:
1 parent
106924dc0d
commit
61d8587445
12 files changed
+41
-54
No files matched your search
+1
-1
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+8
-5
@@ -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;
|
||||
}
|
||||
}
|
||||
+6
-10
@@ -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,
|
||||
|
||||
+2
-4
@@ -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
|
||||
|
||||
+2
-3
@@ -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
|
||||
|
||||
+2
-2
@@ -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();
|
||||
|
||||
+1
-1
@@ -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) {
|
||||
|
||||
+1
-1
@@ -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());
|
||||
|
||||
|
||||
+3
-2
@@ -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;
|
||||
|
||||
+2
-3
@@ -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);
|
||||
|
||||
+2
-3
@@ -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);
|
||||
|
||||
+11
-19
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user