moved editIcon to sse; implemented first version of a RolesPanel

Change-Id: I1cccf21abb2fcca3619d827a27eda2ca0625f54e
This commit is contained in:
Axel Uhl
2017-12-13 11:26:37 +01:00
parent f1d65a0acb
commit 2b35cd5a62
54 changed files with 386 additions and 98 deletions
@@ -2,7 +2,8 @@ package com.sap.sailing.gwt.ui.adminconsole;
import java.util.ArrayList; import java.util.ArrayList;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell; import com.sap.sse.gwt.client.celltable.ImagesBarCell;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.security.shared.PermissionBuilder.Action; import com.sap.sse.security.shared.PermissionBuilder.Action;
public abstract class AccessControlledActionsColumn<T, S extends ImagesBarCell> extends ImagesBarColumn<T, S> { public abstract class AccessControlledActionsColumn<T, S extends ImagesBarCell> extends ImagesBarColumn<T, S> {
@@ -31,6 +31,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.SecurityStylesheetResources; import com.sap.sailing.gwt.ui.shared.SecurityStylesheetResources;
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
import com.sap.sse.gwt.adminconsole.AdminConsolePanel; import com.sap.sse.gwt.adminconsole.AdminConsolePanel;
import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources;
import com.sap.sse.gwt.adminconsole.DefaultRefreshableAdminConsolePanel; import com.sap.sse.gwt.adminconsole.DefaultRefreshableAdminConsolePanel;
import com.sap.sse.gwt.adminconsole.ReplicationPanel; import com.sap.sse.gwt.adminconsole.ReplicationPanel;
import com.sap.sse.gwt.client.EntryPointHelper; import com.sap.sse.gwt.client.EntryPointHelper;
@@ -48,6 +49,8 @@ import com.sap.sse.security.ui.client.component.UserManagementPanel;
import com.sap.sse.security.ui.client.i18n.StringMessages; import com.sap.sse.security.ui.client.i18n.StringMessages;
public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements RegattaRefresher, LeaderboardsRefresher, LeaderboardGroupsRefresher { public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements RegattaRefresher, LeaderboardsRefresher, LeaderboardGroupsRefresher {
private final AdminConsoleTableResources tableResources = GWT.create(AdminConsoleTableResources.class);
private Set<RegattasDisplayer> regattasDisplayers; private Set<RegattasDisplayer> regattasDisplayers;
private Set<LeaderboardsDisplayer> leaderboardsDisplayers; private Set<LeaderboardsDisplayer> leaderboardsDisplayers;
private Set<LeaderboardGroupsDisplayer> leaderboardGroupsDisplayers; private Set<LeaderboardGroupsDisplayer> leaderboardGroupsDisplayers;
@@ -280,7 +283,7 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements
getStringMessages().localServer(), Permission.MANAGE_LOCAL_SERVER_INSTANCE); getStringMessages().localServer(), Permission.MANAGE_LOCAL_SERVER_INSTANCE);
final UserManagementPanel userManagementPanel = new UserManagementPanel(getUserService(), StringMessages.INSTANCE, final UserManagementPanel userManagementPanel = new UserManagementPanel(getUserService(), StringMessages.INSTANCE,
Arrays.<com.sap.sse.security.shared.Permission>asList(Permission.values()), this); Arrays.<com.sap.sse.security.shared.Permission>asList(Permission.values()), this, tableResources);
panel.addToTabPanel(advancedTabPanel, panel.addToTabPanel(advancedTabPanel,
new DefaultRefreshableAdminConsolePanel<UserManagementPanel>(userManagementPanel) { new DefaultRefreshableAdminConsolePanel<UserManagementPanel>(userManagementPanel) {
@Override @Override
@@ -7,9 +7,6 @@ interface AdminConsoleResources extends ClientBundle {
@Source("com/sap/sailing/gwt/ui/client/images/settingsActionIcon.png") @Source("com/sap/sailing/gwt/ui/client/images/settingsActionIcon.png")
ImageResource settingsActionIcon(); ImageResource settingsActionIcon();
@Source("com/sap/sailing/gwt/ui/client/images/edit.png")
ImageResource editIcon();
@Source("com/sap/sailing/gwt/ui/client/images/import.png") @Source("com/sap/sailing/gwt/ui/client/images/import.png")
ImageResource importIcon(); ImageResource importIcon();
@@ -5,7 +5,8 @@ import java.util.Arrays;
import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.GWT;
import com.google.gwt.text.shared.SafeHtmlRenderer; import com.google.gwt.text.shared.SafeHtmlRenderer;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell; import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
public class CompetitorConfigImagesBarCell extends ImagesBarCell { public class CompetitorConfigImagesBarCell extends ImagesBarCell {
static final String ACTION_EDIT = "ACTION_EDIT"; static final String ACTION_EDIT = "ACTION_EDIT";
@@ -26,7 +27,7 @@ public class CompetitorConfigImagesBarCell extends ImagesBarCell {
@Override @Override
protected Iterable<ImageSpec> getImageSpecs() { protected Iterable<ImageSpec> getImageSpecs() {
return Arrays.asList( return Arrays.asList(
new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon())), new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(IconResources.INSTANCE.editIcon())),
new ImageSpec(ACTION_REFRESH, stringMessages.reload(), makeImagePrototype(resources.reloadIcon())) new ImageSpec(ACTION_REFRESH, stringMessages.reload(), makeImagePrototype(resources.reloadIcon()))
); );
} }
@@ -21,11 +21,12 @@ import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.gwt.ui.client.FlagImageResolverImpl; import com.sap.sailing.gwt.ui.client.FlagImageResolverImpl;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sse.common.CountryCode; import com.sap.sse.common.CountryCode;
import com.sap.sse.common.util.NaturalComparator; import com.sap.sse.common.util.NaturalComparator;
import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator; import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.celltable.RefreshableSelectionModel; import com.sap.sse.gwt.client.celltable.RefreshableSelectionModel;
import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel;
@@ -30,6 +30,7 @@ import com.sap.sse.common.Util;
import com.sap.sse.common.util.NaturalComparator; import com.sap.sse.common.util.NaturalComparator;
import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator; import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.celltable.RefreshableSelectionModel; import com.sap.sse.gwt.client.celltable.RefreshableSelectionModel;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel;
@@ -31,6 +31,7 @@ import com.sap.sailing.gwt.ui.shared.WaypointDTO;
import com.sap.sse.common.Util; import com.sap.sse.common.Util;
import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources; import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources;
import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel; import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
import com.sap.sse.gwt.client.celltable.RefreshableSingleSelectionModel; import com.sap.sse.gwt.client.celltable.RefreshableSingleSelectionModel;
import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DataEntryDialog;
@@ -3,8 +3,8 @@ package com.sap.sailing.gwt.ui.adminconsole;
import java.util.ArrayList; import java.util.ArrayList;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sse.gwt.client.IconResources; import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
public class CourseManagementWidgetWaypointsImagesBarCell extends ImagesBarCell { public class CourseManagementWidgetWaypointsImagesBarCell extends ImagesBarCell {
public static final String ACTION_DELETE = "ACTION_DELETE"; public static final String ACTION_DELETE = "ACTION_DELETE";
@@ -2,16 +2,14 @@ package com.sap.sailing.gwt.ui.adminconsole;
import java.util.Arrays; import java.util.Arrays;
import com.google.gwt.core.client.GWT;
import com.google.gwt.text.shared.SafeHtmlRenderer; import com.google.gwt.text.shared.SafeHtmlRenderer;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sse.gwt.client.IconResources; import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
import com.sap.sse.security.shared.PermissionBuilder.DefaultActions; import com.sap.sse.security.shared.PermissionBuilder.DefaultActions;
public class EventConfigImagesBarCell extends ImagesBarCell { public class EventConfigImagesBarCell extends ImagesBarCell {
private final StringMessages stringMessages; private final StringMessages stringMessages;
private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class);
public EventConfigImagesBarCell(StringMessages stringMessages) { public EventConfigImagesBarCell(StringMessages stringMessages) {
super(); super();
@@ -26,8 +24,8 @@ public class EventConfigImagesBarCell extends ImagesBarCell {
@Override @Override
protected Iterable<ImageSpec> getImageSpecs() { protected Iterable<ImageSpec> getImageSpecs() {
return Arrays.asList( return Arrays.asList(
new ImageSpec(DefaultActions.EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon())), new ImageSpec(DefaultActions.EDIT.name(), stringMessages.actionEdit(), makeImagePrototype(IconResources.INSTANCE.editIcon())),
new ImageSpec(DefaultActions.REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon())) new ImageSpec(DefaultActions.REMOVE.name(), stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon()))
); );
} }
} }
@@ -32,13 +32,14 @@ import com.google.gwt.view.client.ListDataProvider;
import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration; import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sse.common.util.NaturalComparator; import com.sap.sse.common.util.NaturalComparator;
import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources; import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources;
import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.IconResources; import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.BaseCelltable; import com.sap.sse.gwt.client.celltable.BaseCelltable;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator; import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.celltable.RefreshableSingleSelectionModel; import com.sap.sse.gwt.client.celltable.RefreshableSingleSelectionModel;
import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DataEntryDialog;
import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel;
@@ -50,7 +51,6 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel {
private final CellTable<ExpeditionDeviceConfiguration> allDeviceConfigurations; private final CellTable<ExpeditionDeviceConfiguration> allDeviceConfigurations;
private final LabeledAbstractFilterablePanel<ExpeditionDeviceConfiguration> filterDeviceConfigurationsPanel; private final LabeledAbstractFilterablePanel<ExpeditionDeviceConfiguration> filterDeviceConfigurationsPanel;
private final RefreshableSingleSelectionModel<ExpeditionDeviceConfiguration> refreshableDeviceConfigurationsSelectionModel; private final RefreshableSingleSelectionModel<ExpeditionDeviceConfiguration> refreshableDeviceConfigurationsSelectionModel;
private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class);
public static class DeviceConfigurationImagesBarCell extends ImagesBarCell { public static class DeviceConfigurationImagesBarCell extends ImagesBarCell {
public static final String ACTION_REMOVE = "ACTION_REMOVE"; public static final String ACTION_REMOVE = "ACTION_REMOVE";
@@ -70,7 +70,7 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel {
@Override @Override
protected Iterable<ImageSpec> getImageSpecs() { protected Iterable<ImageSpec> getImageSpecs() {
return Arrays.asList( return Arrays.asList(
new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon())), new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(IconResources.INSTANCE.editIcon())),
new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon()))); new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon())));
} }
} }
@@ -36,12 +36,13 @@ import com.google.gwt.view.client.SelectionChangeEvent;
import com.google.gwt.view.client.SelectionChangeEvent.Handler; import com.google.gwt.view.client.SelectionChangeEvent.Handler;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sse.common.util.NaturalComparator; import com.sap.sse.common.util.NaturalComparator;
import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources; import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources;
import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.IconResources; import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.BaseCelltable; import com.sap.sse.gwt.client.celltable.BaseCelltable;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.celltable.RefreshableSingleSelectionModel; import com.sap.sse.gwt.client.celltable.RefreshableSingleSelectionModel;
import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DataEntryDialog;
import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel;
@@ -2,17 +2,15 @@ package com.sap.sailing.gwt.ui.adminconsole;
import java.util.Arrays; import java.util.Arrays;
import com.google.gwt.core.client.GWT;
import com.google.gwt.text.shared.SafeHtmlRenderer; import com.google.gwt.text.shared.SafeHtmlRenderer;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sse.gwt.client.IconResources; import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
public class ImageConfigImagesBarCell extends ImagesBarCell { public class ImageConfigImagesBarCell extends ImagesBarCell {
static final String ACTION_REMOVE = "ACTION_REMOVE"; static final String ACTION_REMOVE = "ACTION_REMOVE";
static final String ACTION_EDIT = "ACTION_EDIT"; static final String ACTION_EDIT = "ACTION_EDIT";
private final StringMessages stringMessages; private final StringMessages stringMessages;
private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class);
public ImageConfigImagesBarCell(StringMessages stringMessages) { public ImageConfigImagesBarCell(StringMessages stringMessages) {
super(); super();
@@ -27,7 +25,7 @@ public class ImageConfigImagesBarCell extends ImagesBarCell {
@Override @Override
protected Iterable<ImageSpec> getImageSpecs() { protected Iterable<ImageSpec> getImageSpecs() {
return Arrays.asList( return Arrays.asList(
new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon())), new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(IconResources.INSTANCE.editIcon())),
new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon())) new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon()))
); );
} }
@@ -34,6 +34,7 @@ import com.sap.sse.common.media.MediaTagConstants;
import com.sap.sse.common.util.NaturalComparator; import com.sap.sse.common.util.NaturalComparator;
import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources; import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources;
import com.sap.sse.gwt.client.celltable.BaseCelltable; import com.sap.sse.gwt.client.celltable.BaseCelltable;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
import com.sap.sse.gwt.client.media.ImageDTO; import com.sap.sse.gwt.client.media.ImageDTO;
@@ -5,8 +5,8 @@ import java.util.Arrays;
import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.GWT;
import com.google.gwt.text.shared.SafeHtmlRenderer; import com.google.gwt.text.shared.SafeHtmlRenderer;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sse.gwt.client.IconResources; import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
public class LeaderboardConfigImagesBarCell extends ImagesBarCell { public class LeaderboardConfigImagesBarCell extends ImagesBarCell {
public static final String ACTION_REMOVE = "ACTION_REMOVE"; public static final String ACTION_REMOVE = "ACTION_REMOVE";
@@ -33,7 +33,7 @@ public class LeaderboardConfigImagesBarCell extends ImagesBarCell {
@Override @Override
protected Iterable<ImageSpec> getImageSpecs() { protected Iterable<ImageSpec> getImageSpecs() {
return Arrays.asList( return Arrays.asList(
new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon())), new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(IconResources.INSTANCE.editIcon())),
new ImageSpec(ACTION_EDIT_SCORES, stringMessages.actionEditScores(), makeImagePrototype(resources.scoresIcon())), new ImageSpec(ACTION_EDIT_SCORES, stringMessages.actionEditScores(), makeImagePrototype(resources.scoresIcon())),
new ImageSpec(ACTION_EDIT_COMPETITORS, stringMessages.actionEditCompetitors(), makeImagePrototype(resources.competitorsIcon())), new ImageSpec(ACTION_EDIT_COMPETITORS, stringMessages.actionEditCompetitors(), makeImagePrototype(resources.competitorsIcon())),
new ImageSpec(ACTION_CONFIGURE_URL, stringMessages.actionConfigureUrl(), makeImagePrototype(resources.settingsActionIcon())), new ImageSpec(ACTION_CONFIGURE_URL, stringMessages.actionConfigureUrl(), makeImagePrototype(resources.settingsActionIcon())),
@@ -68,6 +68,7 @@ import com.sap.sse.common.util.NaturalComparator;
import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources; import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources;
import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.celltable.SelectionCheckboxColumn; import com.sap.sse.gwt.client.celltable.SelectionCheckboxColumn;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
import com.sap.sse.gwt.client.shared.components.LinkWithSettingsGenerator; import com.sap.sse.gwt.client.shared.components.LinkWithSettingsGenerator;
@@ -2,16 +2,14 @@ package com.sap.sailing.gwt.ui.adminconsole;
import java.util.Arrays; import java.util.Arrays;
import com.google.gwt.core.client.GWT;
import com.google.gwt.text.shared.SafeHtmlRenderer; import com.google.gwt.text.shared.SafeHtmlRenderer;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sse.gwt.client.IconResources; import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
public class LeaderboardGroupConfigImagesBarCell extends ImagesBarCell { public class LeaderboardGroupConfigImagesBarCell extends ImagesBarCell {
public static final String ACTION_REMOVE = "ACTION_REMOVE"; public static final String ACTION_REMOVE = "ACTION_REMOVE";
public static final String ACTION_EDIT = "ACTION_EDIT"; public static final String ACTION_EDIT = "ACTION_EDIT";
private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class);
private final StringMessages stringMessages; private final StringMessages stringMessages;
public LeaderboardGroupConfigImagesBarCell(StringMessages stringMessages) { public LeaderboardGroupConfigImagesBarCell(StringMessages stringMessages) {
@@ -26,7 +24,7 @@ public class LeaderboardGroupConfigImagesBarCell extends ImagesBarCell {
@Override @Override
protected Iterable<ImageSpec> getImageSpecs() { protected Iterable<ImageSpec> getImageSpecs() {
return Arrays.asList(new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon())), return Arrays.asList(new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(IconResources.INSTANCE.editIcon())),
new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon()))); new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon())));
} }
} }
@@ -57,6 +57,7 @@ import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.URLEncoder; import com.sap.sse.gwt.client.URLEncoder;
import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator; import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel; import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
import com.sap.sse.gwt.client.celltable.SelectionCheckboxColumn; import com.sap.sse.gwt.client.celltable.SelectionCheckboxColumn;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
@@ -5,9 +5,9 @@ import java.util.List;
import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.GWT;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
import com.sap.sse.gwt.client.IconResources; import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
public class LeaderboardRaceConfigImagesBarCell extends ImagesBarCell { public class LeaderboardRaceConfigImagesBarCell extends ImagesBarCell {
public final static String ACTION_REMOVE = "ACTION_REMOVE"; public final static String ACTION_REMOVE = "ACTION_REMOVE";
@@ -31,7 +31,7 @@ public class LeaderboardRaceConfigImagesBarCell extends ImagesBarCell {
@Override @Override
protected Iterable<ImageSpec> getImageSpecs() { protected Iterable<ImageSpec> getImageSpecs() {
List<ImageSpec> result = new ArrayList<ImageSpec>(); List<ImageSpec> result = new ArrayList<ImageSpec>();
result.add(new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon()))); result.add(new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(IconResources.INSTANCE.editIcon())));
result.add(new ImageSpec(ACTION_UNLINK, stringMessages.actionRaceUnlink(), makeImagePrototype(resources.unlinkIcon()))); result.add(new ImageSpec(ACTION_UNLINK, stringMessages.actionRaceUnlink(), makeImagePrototype(resources.unlinkIcon())));
StrippedLeaderboardDTO selectedLeaderboard = selectedLeaderboardProvider.getSelectedLeaderboard(); StrippedLeaderboardDTO selectedLeaderboard = selectedLeaderboardProvider.getSelectedLeaderboard();
if (selectedLeaderboard != null && !selectedLeaderboard.type.isRegattaLeaderboard()) { if (selectedLeaderboard != null && !selectedLeaderboard.type.isRegattaLeaderboard()) {
@@ -3,8 +3,8 @@ package com.sap.sailing.gwt.ui.adminconsole;
import java.util.Arrays; import java.util.Arrays;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sse.gwt.client.IconResources; import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
public class MediaActionBarCell extends ImagesBarCell { public class MediaActionBarCell extends ImagesBarCell {
@@ -58,6 +58,7 @@ import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
import com.sap.sse.gwt.client.celltable.BaseCelltable; import com.sap.sse.gwt.client.celltable.BaseCelltable;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator; import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.celltable.RefreshableSingleSelectionModel; import com.sap.sse.gwt.client.celltable.RefreshableSingleSelectionModel;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel;
@@ -15,6 +15,7 @@ import com.sap.sailing.gwt.ui.shared.RaceCourseDTO;
import com.sap.sse.common.TimePoint; import com.sap.sse.common.TimePoint;
import com.sap.sse.common.Util.Pair; import com.sap.sse.common.Util.Pair;
import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DataEntryDialog;
public class RaceLogCourseManagementWidget extends CourseManagementWidget { public class RaceLogCourseManagementWidget extends CourseManagementWidget {
@@ -4,7 +4,7 @@ import java.util.ArrayList;
import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.GWT;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell; import com.sap.sse.gwt.client.celltable.ImagesBarCell;
public class RaceLogTrackingCourseDefinitionDialogMarksImagesBarCell extends ImagesBarCell { public class RaceLogTrackingCourseDefinitionDialogMarksImagesBarCell extends ImagesBarCell {
public static final String ACTION_PING = "ACTION_PING"; public static final String ACTION_PING = "ACTION_PING";
@@ -4,9 +4,9 @@ import java.util.ArrayList;
import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.GWT;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sailing.gwt.ui.shared.DeviceMappingDTO; import com.sap.sailing.gwt.ui.shared.DeviceMappingDTO;
import com.sap.sse.gwt.client.IconResources; import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
public class RaceLogTrackingDeviceMappingsImagesBarCell extends ImagesBarCell { public class RaceLogTrackingDeviceMappingsImagesBarCell extends ImagesBarCell {
public static final String ACTION_CLOSE = "CLOSE"; public static final String ACTION_CLOSE = "CLOSE";
@@ -5,7 +5,7 @@ import java.util.ArrayList;
import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.GWT;
import com.google.gwt.text.shared.SafeHtmlRenderer; import com.google.gwt.text.shared.SafeHtmlRenderer;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell; import com.sap.sse.gwt.client.celltable.ImagesBarCell;
public class RaceLogTrackingEventManagementImagesBarCell extends ImagesBarCell { public class RaceLogTrackingEventManagementImagesBarCell extends ImagesBarCell {
public static final String ACTION_DENOTE_FOR_RACELOG_TRACKING = "ACTION_DENOTE_FOR_RACELOG_TRACKING"; public static final String ACTION_DENOTE_FOR_RACELOG_TRACKING = "ACTION_DENOTE_FOR_RACELOG_TRACKING";
@@ -7,8 +7,9 @@ import com.google.gwt.core.client.GWT;
import com.sap.sailing.domain.common.abstractlog.TimePointSpecificationFoundInLog; import com.sap.sailing.domain.common.abstractlog.TimePointSpecificationFoundInLog;
import com.sap.sailing.gwt.ui.adminconsole.AbstractLeaderboardConfigPanel.RaceColumnDTOAndFleetDTOWithNameBasedEquality; import com.sap.sailing.gwt.ui.adminconsole.AbstractLeaderboardConfigPanel.RaceColumnDTOAndFleetDTOWithNameBasedEquality;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sse.common.Util.Pair; import com.sap.sse.common.Util.Pair;
import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
public class RaceLogTrackingEventManagementRaceImagesBarCell extends ImagesBarCell { public class RaceLogTrackingEventManagementRaceImagesBarCell extends ImagesBarCell {
public final static String ACTION_DENOTE_FOR_RACELOG_TRACKING = "ACTION_DENOTE_FOR_RACELOG_TRACKING"; public final static String ACTION_DENOTE_FOR_RACELOG_TRACKING = "ACTION_DENOTE_FOR_RACELOG_TRACKING";
@@ -48,7 +49,7 @@ public class RaceLogTrackingEventManagementRaceImagesBarCell extends ImagesBarCe
result.add(new ImageSpec(ACTION_DEFINE_COURSE, stringMessages.defineCourse(), makeImagePrototype(resources.defineCourse()))); result.add(new ImageSpec(ACTION_DEFINE_COURSE, stringMessages.defineCourse(), makeImagePrototype(resources.defineCourse())));
result.add(new ImageSpec(ACTION_COPY, stringMessages.copyCourseAndCompetitors(), makeImagePrototype(resources.copy()))); result.add(new ImageSpec(ACTION_COPY, stringMessages.copyCourseAndCompetitors(), makeImagePrototype(resources.copy())));
} }
result.add(new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon()))); result.add(new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(IconResources.INSTANCE.editIcon())));
result.add(new ImageSpec(ACTION_REFRESH_RACELOG, stringMessages.refreshRaceLog(), makeImagePrototype(resources.reloadIcon()))); result.add(new ImageSpec(ACTION_REFRESH_RACELOG, stringMessages.refreshRaceLog(), makeImagePrototype(resources.reloadIcon())));
result.add(new ImageSpec(ACTION_SET_STARTTIME, stringMessages.setStartTime(), makeImagePrototype(resources.clockIcon()))); result.add(new ImageSpec(ACTION_SET_STARTTIME, stringMessages.setStartTime(), makeImagePrototype(resources.clockIcon())));
result.add(new ImageSpec(ACTION_SET_FINISHING_AND_FINISH_TIME, stringMessages.setFinishingAndFinishTime(), makeImagePrototype(resources.blueSmall()))); result.add(new ImageSpec(ACTION_SET_FINISHING_AND_FINISH_TIME, stringMessages.setFinishingAndFinishTime(), makeImagePrototype(resources.blueSmall())));
@@ -2,17 +2,15 @@ package com.sap.sailing.gwt.ui.adminconsole;
import java.util.Arrays; import java.util.Arrays;
import com.google.gwt.core.client.GWT;
import com.google.gwt.text.shared.SafeHtmlRenderer; import com.google.gwt.text.shared.SafeHtmlRenderer;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sse.gwt.client.IconResources; import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
public class RegattaConfigImagesBarCell extends ImagesBarCell { public class RegattaConfigImagesBarCell extends ImagesBarCell {
static final String ACTION_REMOVE = "ACTION_REMOVE"; static final String ACTION_REMOVE = "ACTION_REMOVE";
public static final String ACTION_EDIT = "ACTION_EDIT"; public static final String ACTION_EDIT = "ACTION_EDIT";
private final StringMessages stringMessages; private final StringMessages stringMessages;
private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class);
public RegattaConfigImagesBarCell(StringMessages stringConstants) { public RegattaConfigImagesBarCell(StringMessages stringConstants) {
super(); super();
@@ -26,7 +24,7 @@ public class RegattaConfigImagesBarCell extends ImagesBarCell {
@Override @Override
protected Iterable<ImageSpec> getImageSpecs() { protected Iterable<ImageSpec> getImageSpecs() {
return Arrays.asList(new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon())), return Arrays.asList(new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(IconResources.INSTANCE.editIcon())),
new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon()))); new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon())));
} }
} }
@@ -38,6 +38,7 @@ import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources;
import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
import com.sap.sse.gwt.client.celltable.BaseCelltable; import com.sap.sse.gwt.client.celltable.BaseCelltable;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
@@ -42,6 +42,7 @@ import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources;
import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator; import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel; import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
import com.sap.sse.gwt.client.celltable.SelectionCheckboxColumn; import com.sap.sse.gwt.client.celltable.SelectionCheckboxColumn;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
@@ -43,6 +43,7 @@ import com.sap.sailing.gwt.ui.shared.MarkDTO;
import com.sap.sailing.gwt.ui.shared.TypedDeviceMappingDTO; import com.sap.sailing.gwt.ui.shared.TypedDeviceMappingDTO;
import com.sap.sse.common.filter.Filter; import com.sap.sse.common.filter.Filter;
import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DataEntryDialog;
import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel;
@@ -2,17 +2,15 @@ package com.sap.sailing.gwt.ui.adminconsole;
import java.util.Arrays; import java.util.Arrays;
import com.google.gwt.core.client.GWT;
import com.google.gwt.text.shared.SafeHtmlRenderer; import com.google.gwt.text.shared.SafeHtmlRenderer;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sse.gwt.client.IconResources; import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
public class SeriesConfigImagesBarCell extends ImagesBarCell { public class SeriesConfigImagesBarCell extends ImagesBarCell {
static final String ACTION_REMOVE = "ACTION_REMOVE"; static final String ACTION_REMOVE = "ACTION_REMOVE";
static final String ACTION_EDIT = "ACTION_EDIT"; static final String ACTION_EDIT = "ACTION_EDIT";
private final StringMessages stringMessages; private final StringMessages stringMessages;
private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class);
public SeriesConfigImagesBarCell(StringMessages stringConstants) { public SeriesConfigImagesBarCell(StringMessages stringConstants) {
super(); super();
@@ -26,7 +24,7 @@ public class SeriesConfigImagesBarCell extends ImagesBarCell {
@Override @Override
protected Iterable<ImageSpec> getImageSpecs() { protected Iterable<ImageSpec> getImageSpecs() {
return Arrays.asList(new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon())), return Arrays.asList(new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(IconResources.INSTANCE.editIcon())),
new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon()))); new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon())));
} }
} }
@@ -65,6 +65,7 @@ import com.sap.sse.common.util.NaturalComparator;
import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources; import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources;
import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.celltable.SelectionCheckboxColumn; import com.sap.sse.gwt.client.celltable.SelectionCheckboxColumn;
import com.sap.sse.gwt.client.dialog.DataEntryDialog; 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.DialogCallback;
@@ -2,17 +2,15 @@ package com.sap.sailing.gwt.ui.adminconsole;
import java.util.Arrays; import java.util.Arrays;
import com.google.gwt.core.client.GWT;
import com.google.gwt.text.shared.SafeHtmlRenderer; import com.google.gwt.text.shared.SafeHtmlRenderer;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
import com.sap.sse.gwt.client.IconResources; import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
public class VideoConfigImagesBarCell extends ImagesBarCell { public class VideoConfigImagesBarCell extends ImagesBarCell {
static final String ACTION_REMOVE = "ACTION_REMOVE"; static final String ACTION_REMOVE = "ACTION_REMOVE";
static final String ACTION_EDIT = "ACTION_EDIT"; static final String ACTION_EDIT = "ACTION_EDIT";
private final StringMessages stringMessages; private final StringMessages stringMessages;
private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class);
public VideoConfigImagesBarCell(StringMessages stringMessages) { public VideoConfigImagesBarCell(StringMessages stringMessages) {
super(); super();
@@ -27,7 +25,7 @@ public class VideoConfigImagesBarCell extends ImagesBarCell {
@Override @Override
protected Iterable<ImageSpec> getImageSpecs() { protected Iterable<ImageSpec> getImageSpecs() {
return Arrays.asList( return Arrays.asList(
new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon())), new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(IconResources.INSTANCE.editIcon())),
new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon())) new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon()))
); );
} }
@@ -33,6 +33,7 @@ import com.sap.sse.common.media.MediaTagConstants;
import com.sap.sse.common.util.NaturalComparator; import com.sap.sse.common.util.NaturalComparator;
import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources; import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources;
import com.sap.sse.gwt.client.celltable.BaseCelltable; import com.sap.sse.gwt.client.celltable.BaseCelltable;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
import com.sap.sse.gwt.client.media.VideoDTO; import com.sap.sse.gwt.client.media.VideoDTO;
@@ -1,9 +1,11 @@
package com.sap.sse.gwt.adminconsole; package com.sap.sse.gwt.adminconsole;
import com.google.gwt.user.cellview.client.CellTable; import com.google.gwt.user.cellview.client.CellTable;
import com.sap.sse.security.ui.client.SecurityTableResources;
import com.sap.sse.security.ui.client.SecurityTableStyle;
public interface AdminConsoleTableResources extends CellTable.Resources { public interface AdminConsoleTableResources extends SecurityTableResources, CellTable.Resources {
interface AdminConsoleTableStyle extends CellTable.Style { interface AdminConsoleTableStyle extends SecurityTableStyle, CellTable.Style {
/** /**
* Applied to header cells of race columns * Applied to header cells of race columns
*/ */

Before

Width:  |  Height:  |  Size: 556 B

After

Width:  |  Height:  |  Size: 556 B

@@ -10,4 +10,7 @@ public interface IconResources extends ClientBundle {
@Source("images/remove.png") @Source("images/remove.png")
ImageResource removeIcon(); ImageResource removeIcon();
@Source("images/edit.png")
ImageResource editIcon();
} }
@@ -1,4 +1,4 @@
package com.sap.sailing.gwt.ui.client.shared.controls; package com.sap.sse.gwt.client.celltable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -20,7 +20,6 @@ import com.google.gwt.text.shared.SafeHtmlRenderer;
import com.google.gwt.text.shared.SimpleSafeHtmlRenderer; import com.google.gwt.text.shared.SimpleSafeHtmlRenderer;
import com.google.gwt.user.cellview.client.CellTable; import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.client.ui.AbstractImagePrototype; import com.google.gwt.user.client.ui.AbstractImagePrototype;
import com.sap.sse.security.shared.PermissionBuilder.Action;
/** /**
* A cell type for use in a {@link CellTable} which renders a horizontal sequence of images. Use by subclassing and * A cell type for use in a {@link CellTable} which renders a horizontal sequence of images. Use by subclassing and
@@ -41,9 +40,6 @@ public abstract class ImagesBarCell extends AbstractSafeHtmlCell<String> {
private final AbstractImagePrototype imagePrototype; private final AbstractImagePrototype imagePrototype;
private final String actionName; private final String actionName;
private final String tooltip; private final String tooltip;
public ImageSpec(Action action, String tooltip, AbstractImagePrototype imagePrototype) {
this(action.name(), tooltip, imagePrototype);
}
public ImageSpec(String actionName, String tooltip, AbstractImagePrototype imagePrototype) { public ImageSpec(String actionName, String tooltip, AbstractImagePrototype imagePrototype) {
super(); super();
this.imagePrototype = imagePrototype; this.imagePrototype = imagePrototype;
@@ -1,7 +1,6 @@
package com.sap.sailing.gwt.ui.adminconsole; package com.sap.sse.gwt.client.celltable;
import com.google.gwt.user.cellview.client.Column; import com.google.gwt.user.cellview.client.Column;
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
public class ImagesBarColumn<T, S extends ImagesBarCell> extends Column<T, String> { public class ImagesBarColumn<T, S extends ImagesBarCell> extends Column<T, String> {
public ImagesBarColumn(S imagesBarCell) { public ImagesBarColumn(S imagesBarCell) {
@@ -26,12 +26,12 @@ import com.sap.sse.gwt.client.celltable.RefreshableSingleSelectionModel;
/** /**
* This Panel contains a text box. Text entered into the text box filters the {@link CellTable} passed to the * This Panel contains a text box. Text entered into the text box filters the {@link CellTable} passed to the
* constructor by adjusting the cell table's {@link ListDataProvider}'s contents using the {@link applyFilter(String, * constructor by adjusting the cell table's {@link ListDataProvider}'s contents using the
* List)} of the {@link AbstractListFilter} and then sorting the table again according the the sorting criteria * {@link AbstractListFilter#applyFilter(String, List)} and then sorting the table again according the the sorting
* currently active (the sorting is the only reason why the {@link CellTable} actually needs to be known to an instance * criteria currently active (the sorting is the only reason why the {@link CellTable} actually needs to be known to an
* of this class). To be initiated the method {@link #getSearchableStrings(Object)} has to be defined, which gets those * instance of this class). To be initiated the method {@link #getSearchableStrings(Object)} has to be defined, which
* Strings from a <code>T</code> that should be considered when filtering, e.g. name or boatClass. The cell table can be * gets those Strings from a <code>T</code> that should be considered when filtering, e.g. name or boatClass. The cell
* sorted independently from the text box (e.g., after adding new objects) by calling the method * table can be sorted independently from the text box (e.g., after adding new objects) by calling the method
* {@link #updateAll(Iterable)} which then runs the filter over the new selection. * {@link #updateAll(Iterable)} which then runs the filter over the new selection.
* <p> * <p>
* *
@@ -7,24 +7,26 @@ import com.sap.sse.common.filter.AbstractListFilter;
/** /**
* This Panel contains a label and a text box. Text entered into the text box filters the {@link CellTable} passed to * This Panel contains a label and a text box. Text entered into the text box filters the {@link CellTable} passed to
* the constructor by adjusting the cell table's {@link ListDataProvider}'s contents using the {@link * the constructor by adjusting the cell table's {@link ListDataProvider}'s contents using the
* applyFilter(String, List)} of the {@link AbstractListFilter} and then sorting the table again according the the * {@link AbstractListFilter#applyFilter(String, List)} of the {@link AbstractListFilter} and then sorting the table
* sorting criteria currently active (the sorting is the only reason why the {@link CellTable} actually needs to be * again according the the sorting criteria currently active (the sorting is the only reason why the {@link CellTable}
* known to an instance of this class). To be initiated the method {@link #getSearchableStrings(Object)} has to be * actually needs to be known to an instance of this class). To be initiated the method
* defined, which gets those Strings from a <code>T</code> that should be considered when filtering, e.g. name or * {@link #getSearchableStrings(Object)} has to be defined, which gets those Strings from a <code>T</code> that should
* boatClass. The cell table can be sorted independently from the text box (e.g. after adding new objects) by calling * be considered when filtering, e.g. name or boatClass. The cell table can be sorted independently from the text box
* the method {@link #updateAll(Iterable)} which then runs the filter over the new selection.</p> * (e.g. after adding new objects) by calling the method {@link #updateAll(Iterable)} which then runs the filter over
* the new selection.
* </p>
* *
* Note that this panel does <em>not</em> contain the table that it filters. With this, this class's clients are free * Note that this panel does <em>not</em> contain the table that it filters. With this, this class's clients are free to
* to position the table wherever they want, not necessarily related to the text box provided by this panel in any * position the table wherever they want, not necessarily related to the text box provided by this panel in any specific
* specific way. * way.
* *
* @param <T> * @param <T>
* @author Nicolas Klose, Axel Uhl * @author Nicolas Klose, Axel Uhl
* *
*/ */
public abstract class LabeledAbstractFilterablePanel<T> extends AbstractFilterablePanel<T> { public abstract class LabeledAbstractFilterablePanel<T> extends AbstractFilterablePanel<T> {
/** /**
* @param display * @param display
* Note: when using this with a cell table obtained through {@link TableWrapper#getTable()}, obtain this * Note: when using this with a cell table obtained through {@link TableWrapper#getTable()}, obtain this
@@ -32,9 +34,10 @@ public abstract class LabeledAbstractFilterablePanel<T> extends AbstractFilterab
* {@link TableWrapper#registerSelectionModelOnNewDataProvider} method so that the selection is preserved * {@link TableWrapper#registerSelectionModelOnNewDataProvider} method so that the selection is preserved
* across setting and removing the filter * across setting and removing the filter
*/ */
public LabeledAbstractFilterablePanel(Label label, Iterable<T> all, CellTable<T> display, final ListDataProvider<T> filtered) { public LabeledAbstractFilterablePanel(Label label, Iterable<T> all, CellTable<T> display,
final ListDataProvider<T> filtered) {
super(all, display, filtered); super(all, display, filtered);
insert(label, 0); insert(label, 0);
} }
} }
@@ -34,7 +34,4 @@ public interface IconResources extends ClientBundle {
@Source("images/status_grey.png") @Source("images/status_grey.png")
ImageResource statusGrey(); ImageResource statusGrey();
@Source("images/delete.png")
ImageResource delete();
} }
@@ -0,0 +1,20 @@
.cellTableCheckboxColumnCell {
}
.cellTableCheckboxSelected {
height: 13px;
width: 13px;
margin: auto auto;
/* border: 1px solid #fcbb22; */
/* background-color: #fcbb22; */
border: solid 1px #acacac;
background-color: #cacaca;
}
.cellTableCheckboxDeselected {
height: 13px;
width: 13px;
margin: auto auto;
border: solid 1px #acacac;
}
@@ -0,0 +1,9 @@
package com.sap.sse.security.ui.client;
import com.google.gwt.user.cellview.client.CellTable;
public interface SecurityTableResources extends CellTable.Resources {
@Override
@Source({CellTable.Style.DEFAULT_CSS, "com/sap/sse/security/ui/client/SecurityTableResources.css"})
SecurityTableStyle cellTableStyle();
}
@@ -0,0 +1,20 @@
package com.sap.sse.security.ui.client;
import com.google.gwt.user.cellview.client.CellTable;
public interface SecurityTableStyle extends CellTable.Style {
/**
* Applied to checkbox column
*/
String cellTableCheckboxColumnCell();
/**
* Applied to the checkbox div when the checkbox is selected
*/
String cellTableCheckboxSelected();
/**
* Applied to the checkbox div when the checkbox is deselected
*/
String cellTableCheckboxDeselected();
}
@@ -0,0 +1,29 @@
package com.sap.sse.security.ui.client.component;
import java.util.Arrays;
import com.google.gwt.text.shared.SafeHtmlRenderer;
import com.sap.sse.gwt.client.IconResources;
import com.sap.sse.gwt.client.celltable.ImagesBarCell;
import com.sap.sse.security.ui.client.i18n.StringMessages;
public class RoleImagesBarCell extends ImagesBarCell {
static final String ACTION_REMOVE = "ACTION_REMOVE";
public static final String ACTION_EDIT = "ACTION_EDIT";
private final StringMessages stringMessages;
public RoleImagesBarCell(StringMessages stringMessages) {
super();
this.stringMessages = stringMessages;
}
public RoleImagesBarCell(SafeHtmlRenderer<String> renderer, StringMessages stringMessages) {
this(stringMessages);
}
@Override
protected Iterable<ImageSpec> getImageSpecs() {
return Arrays.asList(new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(IconResources.INSTANCE.editIcon())),
new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon())));
}
}
@@ -1,10 +1,39 @@
package com.sap.sse.security.ui.client.component; package com.sap.sse.security.ui.client.component;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import com.google.gwt.cell.client.FieldUpdater;
import com.google.gwt.cell.client.SafeHtmlCell;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.user.cellview.client.CellTable; import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
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.Button;
import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.view.client.ListDataProvider;
import com.sap.sse.common.util.NaturalComparator;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
import com.sap.sse.gwt.client.celltable.FlushableSortedCellTableWithStylableHeaders; import com.sap.sse.gwt.client.celltable.FlushableSortedCellTableWithStylableHeaders;
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
import com.sap.sse.gwt.client.celltable.SelectionCheckboxColumn;
import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel;
import com.sap.sse.security.shared.Role; import com.sap.sse.security.shared.Role;
import com.sap.sse.security.shared.WildcardPermission;
import com.sap.sse.security.ui.client.SecurityTableResources;
import com.sap.sse.security.ui.client.UserManagementServiceAsync; import com.sap.sse.security.ui.client.UserManagementServiceAsync;
import com.sap.sse.security.ui.client.i18n.StringMessages; import com.sap.sse.security.ui.client.i18n.StringMessages;
@@ -18,16 +47,162 @@ import com.sap.sse.security.ui.client.i18n.StringMessages;
* @author Axel Uhl (d043530) * @author Axel Uhl (d043530)
* *
*/ */
public class RolesPanel extends FlowPanel { public class RolesPanel extends VerticalPanel {
private final Button addButton; private final Button addButton;
private final Button removeButton; private final Button removeButton;
private final Button refreshButton; private final Button refreshButton;
private final FlushableSortedCellTableWithStylableHeaders<Role> rolesTable; private final FlushableSortedCellTableWithStylableHeaders<Role> rolesTable;
private final ErrorReporter errorReporter;
private final UserManagementServiceAsync userManagementService;
private final ListDataProvider<Role> rolesListDataProvider;
private final List<Role> allRoles;
private final StringMessages stringMessages;
private final LabeledAbstractFilterablePanel<Role> filterablePanelRoles;
private RefreshableMultiSelectionModel<? super Role> refreshableRoleMultiSelectionModel;
public RolesPanel(StringMessages stringMessages, UserManagementServiceAsync userManagementService, CellTable.Resources tableResources) { public RolesPanel(StringMessages stringMessages, UserManagementServiceAsync userManagementService, SecurityTableResources tableResources,
ErrorReporter errorReporter) {
this.errorReporter = errorReporter;
this.stringMessages = stringMessages;
this.userManagementService = userManagementService;
this.addButton = new Button(stringMessages.add()); this.addButton = new Button(stringMessages.add());
this.removeButton = new Button(stringMessages.remove()); this.removeButton = new Button(stringMessages.remove());
this.refreshButton = new Button(stringMessages.refresh()); this.refreshButton = new Button(stringMessages.refresh());
this.rolesTable = new FlushableSortedCellTableWithStylableHeaders<>(/* pageSize */ 50, tableResources); this.allRoles = new ArrayList<>();
rolesListDataProvider = new ListDataProvider<Role>();
filterablePanelRoles = new LabeledAbstractFilterablePanel<Role>(new Label(stringMessages.filterRoles()), allRoles,
new CellTable<Role>(), rolesListDataProvider) {
@Override
public Iterable<String> getSearchableStrings(Role role) {
return Arrays.asList(role.getName(), role.getId().toString(), role.getPermissions().toString());
}
};
filterablePanelRoles.getTextBox().ensureDebugId("RolesFilterTextBox");
rolesTable = createRolesTable(tableResources);
rolesTable.ensureDebugId("RolesCellTable");
filterablePanelRoles.setTable(rolesTable);
refreshableRoleMultiSelectionModel = (RefreshableMultiSelectionModel<? super Role>) rolesTable.getSelectionModel();
removeButton.addClickHandler(e->{
final Set<Role> selectedRoles = new HashSet<Role>(getSelectedRoles());
filterablePanelRoles.removeAll(selectedRoles);
});
refreshButton.addClickHandler(e->updateRoles());
final HorizontalPanel buttonPanel = new HorizontalPanel();
buttonPanel.add(refreshButton);
buttonPanel.add(addButton);
buttonPanel.add(removeButton);
add(buttonPanel);
add(filterablePanelRoles);
add(rolesTable);
updateRoles();
}
private Set<Role> getSelectedRoles() {
@SuppressWarnings("unchecked")
final Set<Role> result = (Set<Role>) refreshableRoleMultiSelectionModel.getSelectedSet();
return result;
}
private FlushableSortedCellTableWithStylableHeaders<Role> createRolesTable(SecurityTableResources tableResources) {
final FlushableSortedCellTableWithStylableHeaders<Role> table = new FlushableSortedCellTableWithStylableHeaders<>(/* pageSize */ 50, tableResources);
rolesListDataProvider.addDataDisplay(table);
table.setWidth("100%");
SelectionCheckboxColumn<Role> roleSelectionCheckboxColumn = new SelectionCheckboxColumn<Role>(
tableResources.cellTableStyle().cellTableCheckboxSelected(),
tableResources.cellTableStyle().cellTableCheckboxDeselected(),
tableResources.cellTableStyle().cellTableCheckboxColumnCell(), new EntityIdentityComparator<Role>() {
@Override
public boolean representSameEntity(Role role1, Role role2) {
return role1.getId().equals(role2.getId());
}
@Override
public int hashCode(Role t) {
return t.getId().hashCode();
}
}, filterablePanelRoles.getAllListDataProvider(), table);
ListHandler<Role> columnSortHandler = new ListHandler<>(rolesListDataProvider.getList());
table.addColumnSortHandler(columnSortHandler);
columnSortHandler.setComparator(roleSelectionCheckboxColumn, roleSelectionCheckboxColumn.getComparator());
TextColumn<Role> roleNameColumn = new TextColumn<Role>() {
@Override
public String getValue(Role role) {
return role.getName();
}
};
roleNameColumn.setSortable(true);
columnSortHandler.setComparator(roleNameColumn, new Comparator<Role>() {
@Override
public int compare(Role r1, Role r2) {
return new NaturalComparator().compare(r1.getName(), r2.getName());
}
});
Column<Role, SafeHtml> permissionsColumn = new Column<Role, SafeHtml>(new SafeHtmlCell()) {
@Override
public SafeHtml getValue(Role role) {
SafeHtmlBuilder builder = new SafeHtmlBuilder();
for (Iterator<WildcardPermission> permissionIter=role.getPermissions().iterator(); permissionIter.hasNext(); ) {
final WildcardPermission permission = permissionIter.next();
builder.appendEscaped(permission.toString());
if (permissionIter.hasNext()) {
builder.appendHtmlConstant("<br>");
}
}
return builder.toSafeHtml();
}
};
permissionsColumn.setSortable(true);
columnSortHandler.setComparator(permissionsColumn, new Comparator<Role>() {
@Override
public int compare(Role r1, Role r2) {
return new NaturalComparator().compare(r1.getPermissions().toString(), r2.getPermissions().toString());
}
});
ImagesBarColumn<Role, RoleImagesBarCell> regattaActionColumn = new ImagesBarColumn<Role, RoleImagesBarCell>(
new RoleImagesBarCell(stringMessages));
regattaActionColumn.setFieldUpdater(new FieldUpdater<Role, String>() {
@Override
public void update(int index, Role role, String value) {
if (RoleImagesBarCell.ACTION_EDIT.equals(value)) {
editRole(role);
} else if (RoleImagesBarCell.ACTION_REMOVE.equals(value)) {
if (Window.confirm(stringMessages.doYouReallyWantToRemoveRole(role.getName()))) {
removeRole(role);
}
}
}
});
table.addColumn(roleSelectionCheckboxColumn, roleSelectionCheckboxColumn.getHeader());
table.addColumn(roleNameColumn, stringMessages.name());
table.addColumn(permissionsColumn, stringMessages.permissions());
table.addColumn(regattaActionColumn, stringMessages.actions());
table.setSelectionModel(roleSelectionCheckboxColumn.getSelectionModel(), roleSelectionCheckboxColumn.getSelectionManager());
return table;
}
private void removeRole(Role role) {
// TODO Auto-generated method stub
Window.alert("Remove "+role);
}
private void editRole(Role role) {
// TODO Auto-generated method stub
Window.alert("Edit "+role);
}
public void updateRoles() {
userManagementService.getRoles(new AsyncCallback<ArrayList<Role>>() {
@Override
public void onSuccess(ArrayList<Role> allRoles) {
filterablePanelRoles.updateAll(allRoles);
}
@Override
public void onFailure(Throwable caught) {
errorReporter.reportError(stringMessages.errorTryingToLoadRoles(caught.getMessage()));
}
});
} }
} }
@@ -173,7 +173,7 @@ public class SettingsPanel extends LayoutPanel {
flexTable.setWidget(row, 2, statusGreen); flexTable.setWidget(row, 2, statusGreen);
final ImageResource deleteImageResource = IconResources.INSTANCE.delete(); final ImageResource deleteImageResource = com.sap.sse.gwt.client.IconResources.INSTANCE.removeIcon();
HTML delete = new HTML(renderer.render(deleteImageResource)); HTML delete = new HTML(renderer.render(deleteImageResource));
delete.addClickHandler(new ClickHandler() { delete.addClickHandler(new ClickHandler() {
@@ -283,7 +283,7 @@ public class SettingsPanel extends LayoutPanel {
flexTable.setWidget(row, 3, statusGreen); flexTable.setWidget(row, 3, statusGreen);
final ImageResource deleteImageResource = IconResources.INSTANCE.delete(); final ImageResource deleteImageResource = com.sap.sse.gwt.client.IconResources.INSTANCE.removeIcon();
HTML delete = new HTML(renderer.render(deleteImageResource)); HTML delete = new HTML(renderer.render(deleteImageResource));
delete.addClickHandler(new ClickHandler() { delete.addClickHandler(new ClickHandler() {
@@ -29,6 +29,7 @@ import com.google.gwt.view.client.SingleSelectionModel;
import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.security.shared.AccessControlList; import com.sap.sse.security.shared.AccessControlList;
import com.sap.sse.security.shared.Permission; import com.sap.sse.security.shared.Permission;
import com.sap.sse.security.ui.client.SecurityTableResources;
import com.sap.sse.security.ui.client.UserChangeEventHandler; import com.sap.sse.security.ui.client.UserChangeEventHandler;
import com.sap.sse.security.ui.client.UserManagementServiceAsync; import com.sap.sse.security.ui.client.UserManagementServiceAsync;
import com.sap.sse.security.ui.client.UserService; import com.sap.sse.security.ui.client.UserService;
@@ -38,23 +39,26 @@ import com.sap.sse.security.ui.shared.UserDTO;
public class UserManagementPanel extends DockPanel { public class UserManagementPanel extends DockPanel {
private List<UserCreatedEventHandler> userCreatedHandlers = new ArrayList<>(); private final List<UserCreatedEventHandler> userCreatedHandlers = new ArrayList<>();
private List<UserDeletedEventHandler> userDeletedHandlers = new ArrayList<>(); private final List<UserDeletedEventHandler> userDeletedHandlers = new ArrayList<>();
private SingleSelectionModel<AccessControlList> aclSingleSelectionModel; private final SingleSelectionModel<AccessControlList> aclSingleSelectionModel;
private AccessControlListListDataProvider aclListDataProvider; private final AccessControlListListDataProvider aclListDataProvider;
private SingleSelectionModel<UserDTO> singleSelectionModel; private final SingleSelectionModel<UserDTO> singleSelectionModel;
private UserListDataProvider userListDataProvider; private final UserListDataProvider userListDataProvider;
public UserManagementPanel(final UserService userService, final StringMessages stringMessages, ErrorReporter errorReporter) { private final RolesPanel rolesPanel;
this(userService, stringMessages, Collections.<Permission>emptySet(), errorReporter);
public UserManagementPanel(final UserService userService, final StringMessages stringMessages,
ErrorReporter errorReporter, SecurityTableResources tableResources) {
this(userService, stringMessages, Collections.<Permission>emptySet(), errorReporter, tableResources);
} }
public UserManagementPanel(final UserService userService, final StringMessages stringMessages, public UserManagementPanel(final UserService userService, final StringMessages stringMessages,
Iterable<Permission> additionalPermissions, ErrorReporter errorReporter) { Iterable<Permission> additionalPermissions, ErrorReporter errorReporter, SecurityTableResources tableResources) {
final UserManagementServiceAsync userManagementService = userService.getUserManagementService(); final UserManagementServiceAsync userManagementService = userService.getUserManagementService();
VerticalPanel west = new VerticalPanel(); VerticalPanel west = new VerticalPanel();
HorizontalPanel buttonPanel = new HorizontalPanel(); HorizontalPanel buttonPanel = new HorizontalPanel();
@@ -133,13 +137,16 @@ public class UserManagementPanel extends DockPanel {
west.add(aclPager); west.add(aclPager);
west.add(aclPanel); west.add(aclPanel);
rolesPanel = new RolesPanel(stringMessages, userManagementService, tableResources, errorReporter);
add(rolesPanel, DockPanel.CENTER);
final UserList userList = new UserList(); final UserList userList = new UserList();
userList.setSelectionModel(singleSelectionModel); userList.setSelectionModel(singleSelectionModel);
TextBox filterBox = new TextBox(); TextBox filterBox = new TextBox();
userListDataProvider = new UserListDataProvider(userManagementService, filterBox); userListDataProvider = new UserListDataProvider(userManagementService, filterBox);
final UserDetailsView userDetailsView = new UserDetailsView(userService, final UserDetailsView userDetailsView = new UserDetailsView(userService,
singleSelectionModel.getSelectedObject(), stringMessages, userListDataProvider, additionalPermissions, errorReporter); singleSelectionModel.getSelectedObject(), stringMessages, userListDataProvider, additionalPermissions, errorReporter);
add(userDetailsView, DockPanel.CENTER); add(userDetailsView, DockPanel.EAST);
userDetailsView.addUserChangeEventHandler(new UserChangeEventHandler() { userDetailsView.addUserChangeEventHandler(new UserChangeEventHandler() {
@Override @Override
public void onUserChange(UserDTO user) { public void onUserChange(UserDTO user) {
@@ -199,6 +206,7 @@ public class UserManagementPanel extends DockPanel {
public void updateUsersAndACLs() { public void updateUsersAndACLs() {
userListDataProvider.updateDisplays(); userListDataProvider.updateDisplays();
aclListDataProvider.updateDisplays(); aclListDataProvider.updateDisplays();
rolesPanel.updateRoles();
} }
public void addUserCreatedEventHandler(UserCreatedEventHandler handler){ public void addUserCreatedEventHandler(UserCreatedEventHandler handler){
@@ -115,4 +115,10 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages {
String id(); String id();
String displayName(); String displayName();
String tenants(); String tenants();
String errorTryingToLoadRoles(String message);
String filterRoles();
String actions();
String actionEdit();
String actionRemove();
String doYouReallyWantToRemoveRole(String name);
} }
@@ -119,4 +119,10 @@ couldNotDeleteTenant=Could not delete tenant.
filterTenants=Filter tenants... filterTenants=Filter tenants...
id=ID id=ID
displayName=Display Name displayName=Display Name
tenants=Tenants tenants=Tenants
errorTryingToLoadRoles=Error trying to load roles: {0}
filterRoles=Filter roles
actions=Actions
actionEdit=Edit
actionRemove=Remove
doYouReallyWantToRemoveRole=Do you really want to remove role "{0}"?
@@ -119,4 +119,10 @@ couldNotDeleteTenant=Mandant konnte nicht entfernt werden.
filterTenants=Mandanten filtern... filterTenants=Mandanten filtern...
id=ID id=ID
displayName=Anzeigename displayName=Anzeigename
tenants=Mandanten tenants=Mandanten
errorTryingToLoadRoles=Fehler beim Versuch, die Rollen zu laden: {0}
filterRoles=Rollen filtern
actions=Aktionen
actionEdit=Bearbeiten
actionRemove=Löschen
doYouReallyWantToRemoveRole=Rolle "{0}" wirklich löschen?
@@ -1,5 +1,6 @@
package com.sap.sse.security.ui.usermanagement; package com.sap.sse.security.ui.usermanagement;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.Window; import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootLayoutPanel; import com.google.gwt.user.client.ui.RootLayoutPanel;
@@ -8,6 +9,7 @@ import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.TabLayoutPanel; import com.google.gwt.user.client.ui.TabLayoutPanel;
import com.sap.sse.security.ui.client.AbstractSecurityEntryPoint; import com.sap.sse.security.ui.client.AbstractSecurityEntryPoint;
import com.sap.sse.security.ui.client.Resources; import com.sap.sse.security.ui.client.Resources;
import com.sap.sse.security.ui.client.SecurityTableResources;
import com.sap.sse.security.ui.client.UserStatusEventHandler; import com.sap.sse.security.ui.client.UserStatusEventHandler;
import com.sap.sse.security.ui.client.component.SettingsPanel; import com.sap.sse.security.ui.client.component.SettingsPanel;
import com.sap.sse.security.ui.client.component.UserManagementPanel; import com.sap.sse.security.ui.client.component.UserManagementPanel;
@@ -15,6 +17,8 @@ import com.sap.sse.security.ui.loginpanel.LoginPanel;
import com.sap.sse.security.ui.shared.UserDTO; import com.sap.sse.security.ui.shared.UserDTO;
public class UserManagementEntryPoint extends AbstractSecurityEntryPoint { public class UserManagementEntryPoint extends AbstractSecurityEntryPoint {
private final SecurityTableResources tableResources = GWT.create(SecurityTableResources.class);
private TabLayoutPanel center; private TabLayoutPanel center;
@Override @Override
@@ -26,7 +30,7 @@ public class UserManagementEntryPoint extends AbstractSecurityEntryPoint {
public void onUserStatusChange(UserDTO user, boolean preAuthenticated) { public void onUserStatusChange(UserDTO user, boolean preAuthenticated) {
} }
}); });
UserManagementPanel userManagementPanel = new UserManagementPanel(getUserService(), getStringMessages(), this); UserManagementPanel userManagementPanel = new UserManagementPanel(getUserService(), getStringMessages(), this, tableResources);
center.add(new ScrollPanel(userManagementPanel), getStringMessages().users()); center.add(new ScrollPanel(userManagementPanel), getStringMessages().users());
final SettingsPanel settingsPanel = new SettingsPanel(getUserManagementService(), getStringMessages()); final SettingsPanel settingsPanel = new SettingsPanel(getUserManagementService(), getStringMessages());
center.add(new ScrollPanel(settingsPanel), getStringMessages().settings()); center.add(new ScrollPanel(settingsPanel), getStringMessages().settings());
Binary file not shown.

Before

Width:  |  Height:  |  Size: 583 B