mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-13 22:15:26 +00:00
[Bug 5258] Fixed data provider and appearance issue, small refactor
This commit is contained in:
1 parent
d6a1932f37
commit
f1b277bf26
8 files changed
+37
-38
No files matched your search
+1
-1
@@ -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() {
|
||||
|
||||
+1
-1
@@ -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) {
|
||||
|
||||
+1
-1
@@ -118,7 +118,7 @@ public class RaceLogCourseManagementWidget extends CourseManagementWidget {
|
||||
}
|
||||
}
|
||||
});
|
||||
marks.getTable().addColumn(actionColumn);
|
||||
marks.addColumn(actionColumn);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+14
-13
@@ -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;
|
||||
}
|
||||
|
||||
-10
@@ -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);
|
||||
}
|
||||
}
|
||||
+6
-11
@@ -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;
|
||||
}
|
||||
|
||||
+1
-1
@@ -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());
|
||||
});
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user