[Bug 5258] Fixed data provider and appearance issue, small refactor

This commit is contained in:
Aleksandr Lukyanchik committed 2020-04-29 08:18:45 +02:00
1 parent d6a1932f37
commit f1b277bf26
8 files changed
+37 -38

No files matched your search

@@ -79,7 +79,7 @@ public class CompetitorToBoatMappingsDialog extends DataEntryDialog<Map<Competit
}
}
});
competitorTable.getTable().addColumn(competitorActionColumn, stringMessages.actions());
competitorTable.addColumn(competitorActionColumn, stringMessages.actions());
refreshableBoatSelectionModel = boatTable.getSelectionModel();
refreshableCompetitorSelectionModel = competitorTable.getSelectionModel();
boatListHandler = new SelectionChangeEvent.Handler() {
@@ -182,7 +182,7 @@ public abstract class CourseManagementWidget implements IsWidget {
waypoint -> createOrcPcsLegEventForLegEndingAt(waypoint));
waypointsActionColumn.addAction(WaypointImagesBarCell.ACTION_ORC_PCS_DEFINE_ALL_LEGS, DefaultActions.UPDATE,
waypoint -> createOrcPcsLegEventsForAllLegs());
waypoints.getTable().addColumn(waypointsActionColumn);
waypoints.addColumn(waypointsActionColumn);
waypoints.getSelectionModel().addSelectionChangeHandler(new Handler() {
@Override
public void onSelectionChange(SelectionChangeEvent event) {
@@ -118,7 +118,7 @@ public class RaceLogCourseManagementWidget extends CourseManagementWidget {
}
}
});
marks.getTable().addColumn(actionColumn);
marks.addColumn(actionColumn);
}
@Override
@@ -17,6 +17,7 @@ import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.user.cellview.client.AbstractCellTable;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CaptionPanel;
@@ -41,6 +42,7 @@ import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel;
import com.sap.sse.security.shared.impl.SecuredSecurityTypes.ServerActions;
import com.sap.sse.security.ui.client.UserService;
import com.sap.sse.security.ui.client.component.DefaultActionsImagesBarCell;
import com.sap.sse.security.ui.client.component.SelectedElementsCountingButton;
public class RemoteServerInstancesManagementPanel extends SimplePanel {
private final SailingServiceAsync sailingService;
@@ -110,17 +112,14 @@ public class RemoteServerInstancesManagementPanel extends SimplePanel {
}
private Button createRemoveButton(HorizontalPanel buttonPanel, ClickHandler handler) {
Button button = new Button(stringMessages.remove(), (ClickHandler) event -> removeSelectedSailingServers());
refreshableServerSelectionModel.addSelectionChangeHandler(event -> {
Set<RemoteSailingServerReferenceDTO> set = refreshableServerSelectionModel.getSelectedSet();
button.setText(set.size() <= 1 ? stringMessages.remove() : stringMessages.removeNumber(set.size()));
});
return button;
return new SelectedElementsCountingButton<RemoteSailingServerReferenceDTO>(stringMessages.remove(),
refreshableServerSelectionModel, true, (ClickHandler) event -> removeSelectedSailingServers());
}
private FlushableCellTable<RemoteSailingServerReferenceDTO> createRemoteServersTable(CellTableWithCheckboxResources tableResources) {
private FlushableCellTable<RemoteSailingServerReferenceDTO> createRemoteServersTable(
CellTableWithCheckboxResources tableResources) {
RemoteServerInstancesManagementTableWrapper wrapper = new RemoteServerInstancesManagementTableWrapper(
stringMessages, errorReporter, serverDataProvider, tableResources);
stringMessages, errorReporter, filteredServerTablePanel.getAllListDataProvider(), tableResources);
wrapper.addColumn(createTextColumn(RemoteSailingServerReferenceDTO::getName), stringMessages.name());
wrapper.addColumn(createTextColumn(RemoteSailingServerReferenceDTO::getUrl), stringMessages.url());
wrapper.addColumn(createEventsColumn(), stringMessages.events());
@@ -161,12 +160,14 @@ public class RemoteServerInstancesManagementPanel extends SimplePanel {
}
private ServerActionsColumn<RemoteSailingServerReferenceDTO, DefaultActionsImagesBarCell> createActionsColumn() {
final ServerActionsColumn<RemoteSailingServerReferenceDTO, DefaultActionsImagesBarCell> actionsColumn = ServerActionsColumn.create(
new DefaultActionsImagesBarCell(stringMessages), userService);
final ServerActionsColumn<RemoteSailingServerReferenceDTO, DefaultActionsImagesBarCell> actionsColumn = ServerActionsColumn
.create(new DefaultActionsImagesBarCell(stringMessages), userService);
actionsColumn.addAction(ACTION_DELETE, ServerActions.CONFIGURE_REMOTE_INSTANCES, e -> {
Set<String> toDelete = new HashSet<>();
toDelete.add(e.getName());
removeSailingServers(toDelete);
if (Window.confirm(StringMessages.INSTANCE.doYouReallyWantToRemoveSelectedElements(e.getName()))) {
Set<String> toDelete = new HashSet<>();
toDelete.add(e.getName());
removeSailingServers(toDelete);
}
});
return actionsColumn;
}
@@ -1,7 +1,5 @@
package com.sap.sailing.gwt.ui.adminconsole;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.view.client.ListDataProvider;
import com.sap.sailing.gwt.ui.shared.RemoteSailingServerReferenceDTO;
import com.sap.sse.gwt.client.ErrorReporter;
@@ -30,12 +28,4 @@ public class RemoteServerInstancesManagementTableWrapper extends
}, tableResources);
registerSelectionModelOnNewDataProvider(dataProvider);
}
public <T> void addColumn(Column<RemoteSailingServerReferenceDTO, T> column, String header) {
getTable().addColumn(column, header);
}
public void setEmptyTableWidget(Widget widget) {
getTable().setEmptyTableWidget(widget);
}
}
@@ -11,6 +11,11 @@ import com.sap.sse.security.shared.HasPermissions.Action;
import com.sap.sse.security.shared.impl.SecuredSecurityTypes.ServerActions;
import com.sap.sse.security.ui.client.UserService;
/**
* Implementation of actions column for actions that requires checking only server permissions
*
* @author Aleksandr Lukyanchik
*/
public class ServerActionsColumn<T, S extends ImagesBarCell> extends ImagesBarColumn<T, S> {
/**
@@ -53,21 +58,11 @@ public class ServerActionsColumn<T, S extends ImagesBarCell> extends ImagesBarCo
final ArrayList<String> allowedActions = new ArrayList<>();
for (final String name : nameToCallbackMap.keySet()) {
final Action action = nameToActionMap.get(name);
if (isNotRestrictedOrHasPermission(action)) {
if (action == null || userService.hasServerPermission(action)) {
final String escapedName = name.replace("\\", "\\\\").replace(",", "\\,");
allowedActions.add(escapedName);
}
}
return String.join(",", allowedActions);
}
private boolean isNotRestrictedOrHasPermission(final Action action) {
final boolean result;
if (action == null) {
result = true;
} else {
result = userService.hasServerPermission(action);
}
return result;
}
}
@@ -1,6 +1,7 @@
package com.sap.sse.gwt.client.celltable;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
import com.google.gwt.user.cellview.client.SimplePager;
import com.google.gwt.user.client.ui.IsWidget;
@@ -99,6 +100,18 @@ public abstract class TableWrapper<T, S extends RefreshableSelectionModel<T>, SM
return table;
}
public void addColumn(Column<T, ?> column) {
table.addColumn(column);
}
public void addColumn(Column<T, ?> column, String header) {
table.addColumn(column, header);
}
public void setEmptyTableWidget(Widget widget) {
table.setEmptyTableWidget(widget);
}
public S getSelectionModel() {
return selectionModel;
}
@@ -43,7 +43,7 @@ public class SelectedElementsCountingButton<T extends Named> extends Button {
private void addSelectionEventHandler(final String html, final SetSelectionModel<T> selectionModel) {
selectionModel.addSelectionChangeHandler(event -> {
Set<T> selectedSet = selectionModel.getSelectedSet();
setText(selectedSet.size() <= 1 ? html : html + " (" + selectedSet.size() + ")");
setText(selectedSet.isEmpty() ? html : html + " (" + selectedSet.size() + ")");
setEnabled(!selectedSet.isEmpty());
});
}