diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AccessControlledActionsColumn.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AccessControlledActionsColumn.java index 94b17dacac8..758fd36c4c5 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AccessControlledActionsColumn.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AccessControlledActionsColumn.java @@ -2,7 +2,8 @@ package com.sap.sailing.gwt.ui.adminconsole; 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; public abstract class AccessControlledActionsColumn extends ImagesBarColumn { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleEntryPoint.java index 5402a11e828..982c5abe381 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleEntryPoint.java @@ -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.StrippedLeaderboardDTO; 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.ReplicationPanel; 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; public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements RegattaRefresher, LeaderboardsRefresher, LeaderboardGroupsRefresher { + private final AdminConsoleTableResources tableResources = GWT.create(AdminConsoleTableResources.class); + private Set regattasDisplayers; private Set leaderboardsDisplayers; private Set leaderboardGroupsDisplayers; @@ -280,7 +283,7 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements getStringMessages().localServer(), Permission.MANAGE_LOCAL_SERVER_INSTANCE); final UserManagementPanel userManagementPanel = new UserManagementPanel(getUserService(), StringMessages.INSTANCE, - Arrays.asList(Permission.values()), this); + Arrays.asList(Permission.values()), this, tableResources); panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel(userManagementPanel) { @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleResources.java index b32145dadd6..47c041be1ed 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleResources.java @@ -7,9 +7,6 @@ interface AdminConsoleResources extends ClientBundle { @Source("com/sap/sailing/gwt/ui/client/images/settingsActionIcon.png") ImageResource settingsActionIcon(); - @Source("com/sap/sailing/gwt/ui/client/images/edit.png") - ImageResource editIcon(); - @Source("com/sap/sailing/gwt/ui/client/images/import.png") ImageResource importIcon(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorConfigImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorConfigImagesBarCell.java index 8e0818b1bb6..99be7f48429 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorConfigImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorConfigImagesBarCell.java @@ -5,7 +5,8 @@ import java.util.Arrays; import com.google.gwt.core.client.GWT; import com.google.gwt.text.shared.SafeHtmlRenderer; 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 { static final String ACTION_EDIT = "ACTION_EDIT"; @@ -26,7 +27,7 @@ public class CompetitorConfigImagesBarCell extends ImagesBarCell { @Override protected Iterable getImageSpecs() { 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())) ); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorDescriptorTableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorDescriptorTableWrapper.java index de6852e47e0..69362e038a4 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorDescriptorTableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorDescriptorTableWrapper.java @@ -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.SailingServiceAsync; 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.util.NaturalComparator; import com.sap.sse.gwt.client.ErrorReporter; 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.panels.LabeledAbstractFilterablePanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorTableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorTableWrapper.java index d99d30f2e24..239b808c455 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorTableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorTableWrapper.java @@ -30,6 +30,7 @@ import com.sap.sse.common.Util; 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.ImagesBarColumn; import com.sap.sse.gwt.client.celltable.RefreshableSelectionModel; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidget.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidget.java index f9a530db65b..8af99f97c6e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidget.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidget.java @@ -31,6 +31,7 @@ import com.sap.sailing.gwt.ui.shared.WaypointDTO; import com.sap.sse.common.Util; import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources; 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.RefreshableSingleSelectionModel; import com.sap.sse.gwt.client.dialog.DataEntryDialog; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidgetWaypointsImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidgetWaypointsImagesBarCell.java index f2456b771ac..8d7895653c5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidgetWaypointsImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidgetWaypointsImagesBarCell.java @@ -3,8 +3,8 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.ArrayList; 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 CourseManagementWidgetWaypointsImagesBarCell extends ImagesBarCell { public static final String ACTION_DELETE = "ACTION_DELETE"; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventConfigImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventConfigImagesBarCell.java index b5bc2115502..bbb67265113 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventConfigImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventConfigImagesBarCell.java @@ -2,16 +2,14 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.Arrays; -import com.google.gwt.core.client.GWT; import com.google.gwt.text.shared.SafeHtmlRenderer; 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; import com.sap.sse.security.shared.PermissionBuilder.DefaultActions; public class EventConfigImagesBarCell extends ImagesBarCell { private final StringMessages stringMessages; - private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); public EventConfigImagesBarCell(StringMessages stringMessages) { super(); @@ -26,8 +24,8 @@ public class EventConfigImagesBarCell extends ImagesBarCell { @Override protected Iterable getImageSpecs() { return Arrays.asList( - new ImageSpec(DefaultActions.EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon())), - new ImageSpec(DefaultActions.REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon())) + new ImageSpec(DefaultActions.EDIT.name(), stringMessages.actionEdit(), makeImagePrototype(IconResources.INSTANCE.editIcon())), + new ImageSpec(DefaultActions.REMOVE.name(), stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon())) ); } } \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventListComposite.java old mode 100644 new mode 100755 diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ExpeditionDeviceConfigurationsPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ExpeditionDeviceConfigurationsPanel.java index 8686028cc2c..5cd2d349006 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ExpeditionDeviceConfigurationsPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ExpeditionDeviceConfigurationsPanel.java @@ -32,13 +32,14 @@ import com.google.gwt.view.client.ListDataProvider; import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; 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.gwt.adminconsole.AdminConsoleTableResources; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.IconResources; import com.sap.sse.gwt.client.celltable.BaseCelltable; 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.dialog.DataEntryDialog; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; @@ -50,7 +51,6 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel { private final CellTable allDeviceConfigurations; private final LabeledAbstractFilterablePanel filterDeviceConfigurationsPanel; private final RefreshableSingleSelectionModel refreshableDeviceConfigurationsSelectionModel; - private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); public static class DeviceConfigurationImagesBarCell extends ImagesBarCell { public static final String ACTION_REMOVE = "ACTION_REMOVE"; @@ -70,7 +70,7 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel { @Override protected Iterable getImageSpecs() { 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()))); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/IgtimiAccountsPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/IgtimiAccountsPanel.java index b617d217290..58dfb2f4025 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/IgtimiAccountsPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/IgtimiAccountsPanel.java @@ -36,12 +36,13 @@ import com.google.gwt.view.client.SelectionChangeEvent; import com.google.gwt.view.client.SelectionChangeEvent.Handler; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; 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.gwt.adminconsole.AdminConsoleTableResources; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.IconResources; 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.dialog.DataEntryDialog; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImageConfigImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImageConfigImagesBarCell.java index be162a0fd4e..9dc9f0e4f2b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImageConfigImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImageConfigImagesBarCell.java @@ -2,17 +2,15 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.Arrays; -import com.google.gwt.core.client.GWT; import com.google.gwt.text.shared.SafeHtmlRenderer; 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 ImageConfigImagesBarCell extends ImagesBarCell { static final String ACTION_REMOVE = "ACTION_REMOVE"; static final String ACTION_EDIT = "ACTION_EDIT"; private final StringMessages stringMessages; - private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); public ImageConfigImagesBarCell(StringMessages stringMessages) { super(); @@ -27,7 +25,7 @@ public class ImageConfigImagesBarCell extends ImagesBarCell { @Override protected Iterable getImageSpecs() { 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())) ); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImagesListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImagesListComposite.java index 9ad1dd4e842..8ec8e773206 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImagesListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImagesListComposite.java @@ -34,6 +34,7 @@ import com.sap.sse.common.media.MediaTagConstants; import com.sap.sse.common.util.NaturalComparator; import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources; 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.media.ImageDTO; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigImagesBarCell.java index 6a07fca8cae..60bbd0a95f7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigImagesBarCell.java @@ -5,8 +5,8 @@ import java.util.Arrays; import com.google.gwt.core.client.GWT; import com.google.gwt.text.shared.SafeHtmlRenderer; 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 LeaderboardConfigImagesBarCell extends ImagesBarCell { public static final String ACTION_REMOVE = "ACTION_REMOVE"; @@ -33,7 +33,7 @@ public class LeaderboardConfigImagesBarCell extends ImagesBarCell { @Override protected Iterable getImageSpecs() { 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_COMPETITORS, stringMessages.actionEditCompetitors(), makeImagePrototype(resources.competitorsIcon())), new ImageSpec(ACTION_CONFIGURE_URL, stringMessages.actionConfigureUrl(), makeImagePrototype(resources.settingsActionIcon())), diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java index d14b1948ad2..0dece29a0c4 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java @@ -68,6 +68,7 @@ import com.sap.sse.common.util.NaturalComparator; import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources; import com.sap.sse.gwt.client.ErrorReporter; 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.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.shared.components.LinkWithSettingsGenerator; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigImagesBarCell.java index b22b759ad71..34c7de45acc 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigImagesBarCell.java @@ -2,16 +2,14 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.Arrays; -import com.google.gwt.core.client.GWT; import com.google.gwt.text.shared.SafeHtmlRenderer; 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 LeaderboardGroupConfigImagesBarCell extends ImagesBarCell { public static final String ACTION_REMOVE = "ACTION_REMOVE"; public static final String ACTION_EDIT = "ACTION_EDIT"; - private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); private final StringMessages stringMessages; public LeaderboardGroupConfigImagesBarCell(StringMessages stringMessages) { @@ -26,7 +24,7 @@ public class LeaderboardGroupConfigImagesBarCell extends ImagesBarCell { @Override protected Iterable 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()))); } } \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigPanel.java index 3e73ba1a623..0ffe02225bc 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigPanel.java @@ -57,6 +57,7 @@ import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.URLEncoder; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; 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.SelectionCheckboxColumn; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardRaceConfigImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardRaceConfigImagesBarCell.java index 6b1f391d941..0dc3089c6a7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardRaceConfigImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardRaceConfigImagesBarCell.java @@ -5,9 +5,9 @@ import java.util.List; import com.google.gwt.core.client.GWT; 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.sse.gwt.client.IconResources; +import com.sap.sse.gwt.client.celltable.ImagesBarCell; public class LeaderboardRaceConfigImagesBarCell extends ImagesBarCell { public final static String ACTION_REMOVE = "ACTION_REMOVE"; @@ -31,7 +31,7 @@ public class LeaderboardRaceConfigImagesBarCell extends ImagesBarCell { @Override protected Iterable getImageSpecs() { List result = new ArrayList(); - 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()))); StrippedLeaderboardDTO selectedLeaderboard = selectedLeaderboardProvider.getSelectedLeaderboard(); if (selectedLeaderboard != null && !selectedLeaderboard.type.isRegattaLeaderboard()) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaActionBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaActionBarCell.java index 8faacd4021a..8983d64c5b1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaActionBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaActionBarCell.java @@ -3,8 +3,8 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.Arrays; 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 MediaActionBarCell extends ImagesBarCell { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaPanel.java index 41d9615a7a9..a5c96c3d55e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaPanel.java @@ -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.celltable.BaseCelltable; 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.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogCourseManagementWidget.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogCourseManagementWidget.java index cddffbcf064..c6d18b76c37 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogCourseManagementWidget.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogCourseManagementWidget.java @@ -15,6 +15,7 @@ import com.sap.sailing.gwt.ui.shared.RaceCourseDTO; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util.Pair; import com.sap.sse.gwt.client.ErrorReporter; +import com.sap.sse.gwt.client.celltable.ImagesBarColumn; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class RaceLogCourseManagementWidget extends CourseManagementWidget { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingCourseDefinitionDialogMarksImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingCourseDefinitionDialogMarksImagesBarCell.java index a21886d460f..1553dd3475c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingCourseDefinitionDialogMarksImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingCourseDefinitionDialogMarksImagesBarCell.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import com.google.gwt.core.client.GWT; 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 static final String ACTION_PING = "ACTION_PING"; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingDeviceMappingsImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingDeviceMappingsImagesBarCell.java index e1e57b60cfb..93105018f7e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingDeviceMappingsImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingDeviceMappingsImagesBarCell.java @@ -4,9 +4,9 @@ import java.util.ArrayList; import com.google.gwt.core.client.GWT; 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.sse.gwt.client.IconResources; +import com.sap.sse.gwt.client.celltable.ImagesBarCell; public class RaceLogTrackingDeviceMappingsImagesBarCell extends ImagesBarCell { public static final String ACTION_CLOSE = "CLOSE"; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementImagesBarCell.java index 8c5f4bf10f5..da0f9c9d749 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementImagesBarCell.java @@ -5,7 +5,7 @@ import java.util.ArrayList; import com.google.gwt.core.client.GWT; import com.google.gwt.text.shared.SafeHtmlRenderer; 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 static final String ACTION_DENOTE_FOR_RACELOG_TRACKING = "ACTION_DENOTE_FOR_RACELOG_TRACKING"; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementRaceImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementRaceImagesBarCell.java index 633b29b0386..b4b85604ead 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementRaceImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementRaceImagesBarCell.java @@ -7,8 +7,9 @@ import com.google.gwt.core.client.GWT; import com.sap.sailing.domain.common.abstractlog.TimePointSpecificationFoundInLog; import com.sap.sailing.gwt.ui.adminconsole.AbstractLeaderboardConfigPanel.RaceColumnDTOAndFleetDTOWithNameBasedEquality; 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.gwt.client.IconResources; +import com.sap.sse.gwt.client.celltable.ImagesBarCell; public class RaceLogTrackingEventManagementRaceImagesBarCell extends ImagesBarCell { 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_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_SET_STARTTIME, stringMessages.setStartTime(), makeImagePrototype(resources.clockIcon()))); result.add(new ImageSpec(ACTION_SET_FINISHING_AND_FINISH_TIME, stringMessages.setFinishingAndFinishTime(), makeImagePrototype(resources.blueSmall()))); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigImagesBarCell.java index f21a987b891..3e503af8619 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigImagesBarCell.java @@ -2,17 +2,15 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.Arrays; -import com.google.gwt.core.client.GWT; import com.google.gwt.text.shared.SafeHtmlRenderer; 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 RegattaConfigImagesBarCell extends ImagesBarCell { static final String ACTION_REMOVE = "ACTION_REMOVE"; public static final String ACTION_EDIT = "ACTION_EDIT"; private final StringMessages stringMessages; - private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); public RegattaConfigImagesBarCell(StringMessages stringConstants) { super(); @@ -26,7 +24,7 @@ public class RegattaConfigImagesBarCell extends ImagesBarCell { @Override protected Iterable 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()))); } } \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java index 4cc03da7388..96e19f7ae97 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java @@ -38,6 +38,7 @@ import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; 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; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java index fbf368f2267..d9043e41335 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java @@ -42,6 +42,7 @@ import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; 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.SelectionCheckboxColumn; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLogTrackingDeviceMappingsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLogTrackingDeviceMappingsDialog.java index adf3fffae0f..16f4e4e5451 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLogTrackingDeviceMappingsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLogTrackingDeviceMappingsDialog.java @@ -43,6 +43,7 @@ import com.sap.sailing.gwt.ui.shared.MarkDTO; import com.sap.sailing.gwt.ui.shared.TypedDeviceMappingDTO; import com.sap.sse.common.filter.Filter; 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.panels.LabeledAbstractFilterablePanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesConfigImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesConfigImagesBarCell.java index d5b1f993913..3ece5911f7f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesConfigImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SeriesConfigImagesBarCell.java @@ -2,17 +2,15 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.Arrays; -import com.google.gwt.core.client.GWT; import com.google.gwt.text.shared.SafeHtmlRenderer; 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 SeriesConfigImagesBarCell extends ImagesBarCell { static final String ACTION_REMOVE = "ACTION_REMOVE"; static final String ACTION_EDIT = "ACTION_EDIT"; private final StringMessages stringMessages; - private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); public SeriesConfigImagesBarCell(StringMessages stringConstants) { super(); @@ -26,7 +24,7 @@ public class SeriesConfigImagesBarCell extends ImagesBarCell { @Override protected Iterable 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()))); } } \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java index ed58c332350..b9c68747b38 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java @@ -65,6 +65,7 @@ import com.sap.sse.common.util.NaturalComparator; import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources; import com.sap.sse.gwt.client.ErrorReporter; 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.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/VideoConfigImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/VideoConfigImagesBarCell.java index ba8665c8697..b9f0cf12d39 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/VideoConfigImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/VideoConfigImagesBarCell.java @@ -2,17 +2,15 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.Arrays; -import com.google.gwt.core.client.GWT; import com.google.gwt.text.shared.SafeHtmlRenderer; 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 VideoConfigImagesBarCell extends ImagesBarCell { static final String ACTION_REMOVE = "ACTION_REMOVE"; static final String ACTION_EDIT = "ACTION_EDIT"; private final StringMessages stringMessages; - private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); public VideoConfigImagesBarCell(StringMessages stringMessages) { super(); @@ -27,7 +25,7 @@ public class VideoConfigImagesBarCell extends ImagesBarCell { @Override protected Iterable getImageSpecs() { 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())) ); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/VideosListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/VideosListComposite.java index d2942b4d43f..66288239a0a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/VideosListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/VideosListComposite.java @@ -33,6 +33,7 @@ import com.sap.sse.common.media.MediaTagConstants; import com.sap.sse.common.util.NaturalComparator; import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources; 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.media.VideoDTO; diff --git a/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsoleTableResources.java b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsoleTableResources.java index 0f933ab5477..9f1b7bc53d5 100644 --- a/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsoleTableResources.java +++ b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsoleTableResources.java @@ -1,9 +1,11 @@ package com.sap.sse.gwt.adminconsole; 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 { - interface AdminConsoleTableStyle extends CellTable.Style { +public interface AdminConsoleTableResources extends SecurityTableResources, CellTable.Resources { + interface AdminConsoleTableStyle extends SecurityTableStyle, CellTable.Style { /** * Applied to header cells of race columns */ diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/edit.png b/java/com.sap.sse.gwt/resources/com/sap/sse/gwt/client/images/edit.png old mode 100644 new mode 100755 similarity index 100% rename from java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/edit.png rename to java/com.sap.sse.gwt/resources/com/sap/sse/gwt/client/images/edit.png diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/IconResources.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/IconResources.java index dd1a3dcf9ec..ac297a96f95 100755 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/IconResources.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/IconResources.java @@ -10,4 +10,7 @@ public interface IconResources extends ClientBundle { @Source("images/remove.png") ImageResource removeIcon(); + + @Source("images/edit.png") + ImageResource editIcon(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/controls/ImagesBarCell.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/ImagesBarCell.java similarity index 96% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/controls/ImagesBarCell.java rename to java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/ImagesBarCell.java index 1484e2686db..35132823876 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/controls/ImagesBarCell.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/ImagesBarCell.java @@ -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.List; @@ -20,7 +20,6 @@ import com.google.gwt.text.shared.SafeHtmlRenderer; import com.google.gwt.text.shared.SimpleSafeHtmlRenderer; import com.google.gwt.user.cellview.client.CellTable; 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 @@ -41,9 +40,6 @@ public abstract class ImagesBarCell extends AbstractSafeHtmlCell { private final AbstractImagePrototype imagePrototype; private final String actionName; 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) { super(); this.imagePrototype = imagePrototype; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImagesBarColumn.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/ImagesBarColumn.java similarity index 72% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImagesBarColumn.java rename to java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/ImagesBarColumn.java index df0c659e8f2..5bba8a66dcb 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImagesBarColumn.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/ImagesBarColumn.java @@ -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.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell; public class ImagesBarColumn extends Column { public ImagesBarColumn(S imagesBarCell) { diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/panels/AbstractFilterablePanel.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/panels/AbstractFilterablePanel.java index e2865578afa..b98c94d3ddc 100644 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/panels/AbstractFilterablePanel.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/panels/AbstractFilterablePanel.java @@ -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 - * constructor by adjusting the cell table's {@link ListDataProvider}'s contents using the {@link applyFilter(String, - * List)} of the {@link AbstractListFilter} and then sorting the table again according the the sorting criteria - * currently active (the sorting is the only reason why the {@link CellTable} actually needs to be known to an instance - * of this class). To be initiated the method {@link #getSearchableStrings(Object)} has to be defined, which gets those - * Strings from a T that should be considered when filtering, e.g. name or boatClass. The cell table can be - * sorted independently from the text box (e.g., after adding new objects) by calling the method + * constructor by adjusting the cell table's {@link ListDataProvider}'s contents using the + * {@link AbstractListFilter#applyFilter(String, List)} and then sorting the table again according the the sorting + * criteria currently active (the sorting is the only reason why the {@link CellTable} actually needs to be known to an + * instance of this class). To be initiated the method {@link #getSearchableStrings(Object)} has to be defined, which + * gets those Strings from a T that should be considered when filtering, e.g. name or boatClass. The cell + * 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. *

* diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/panels/LabeledAbstractFilterablePanel.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/panels/LabeledAbstractFilterablePanel.java index b237ef87ae9..8c3b42bb32b 100755 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/panels/LabeledAbstractFilterablePanel.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/panels/LabeledAbstractFilterablePanel.java @@ -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 - * the constructor by adjusting the cell table's {@link ListDataProvider}'s contents using the {@link - * applyFilter(String, List)} of the {@link AbstractListFilter} and then sorting the table again according the the - * sorting criteria currently active (the sorting is the only reason why the {@link CellTable} actually needs to be - * known to an instance of this class). To be initiated the method {@link #getSearchableStrings(Object)} has to be - * defined, which gets those Strings from a T that should be considered when filtering, e.g. name or - * boatClass. The cell 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.

+ * the constructor by adjusting the cell table's {@link ListDataProvider}'s contents using the + * {@link AbstractListFilter#applyFilter(String, List)} of the {@link AbstractListFilter} and then sorting the table + * again according the the sorting criteria currently active (the sorting is the only reason why the {@link CellTable} + * actually needs to be known to an instance of this class). To be initiated the method + * {@link #getSearchableStrings(Object)} has to be defined, which gets those Strings from a T that should + * be considered when filtering, e.g. name or boatClass. The cell 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. + *

* - * Note that this panel does not contain the table that it filters. With this, this class's clients are free - * to position the table wherever they want, not necessarily related to the text box provided by this panel in any - * specific way. + * Note that this panel does not contain the table that it filters. With this, this class's clients are free to + * position the table wherever they want, not necessarily related to the text box provided by this panel in any specific + * way. * * @param * @author Nicolas Klose, Axel Uhl * */ public abstract class LabeledAbstractFilterablePanel extends AbstractFilterablePanel { - + /** * @param display * Note: when using this with a cell table obtained through {@link TableWrapper#getTable()}, obtain this @@ -32,9 +34,10 @@ public abstract class LabeledAbstractFilterablePanel extends AbstractFilterab * {@link TableWrapper#registerSelectionModelOnNewDataProvider} method so that the selection is preserved * across setting and removing the filter */ - public LabeledAbstractFilterablePanel(Label label, Iterable all, CellTable display, final ListDataProvider filtered) { + public LabeledAbstractFilterablePanel(Label label, Iterable all, CellTable display, + final ListDataProvider filtered) { super(all, display, filtered); insert(label, 0); } - + } \ No newline at end of file diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/IconResources.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/IconResources.java index 2e82d56e3bd..0af87ed34c1 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/IconResources.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/IconResources.java @@ -34,7 +34,4 @@ public interface IconResources extends ClientBundle { @Source("images/status_grey.png") ImageResource statusGrey(); - - @Source("images/delete.png") - ImageResource delete(); } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/SecurityTableResources.css b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/SecurityTableResources.css new file mode 100755 index 00000000000..ea9e6c54321 --- /dev/null +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/SecurityTableResources.css @@ -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; +} diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/SecurityTableResources.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/SecurityTableResources.java new file mode 100755 index 00000000000..011eaca31d2 --- /dev/null +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/SecurityTableResources.java @@ -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(); +} diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/SecurityTableStyle.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/SecurityTableStyle.java new file mode 100755 index 00000000000..0470bb933ee --- /dev/null +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/SecurityTableStyle.java @@ -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(); +} diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/RoleImagesBarCell.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/RoleImagesBarCell.java new file mode 100755 index 00000000000..d549b03f0f1 --- /dev/null +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/RoleImagesBarCell.java @@ -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 renderer, StringMessages stringMessages) { + this(stringMessages); + } + + @Override + protected Iterable getImageSpecs() { + return Arrays.asList(new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(IconResources.INSTANCE.editIcon())), + new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon()))); + } +} \ No newline at end of file diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/RolesPanel.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/RolesPanel.java index c6991b9c599..bf5f3c17d7a 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/RolesPanel.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/RolesPanel.java @@ -1,10 +1,39 @@ 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.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.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.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.WildcardPermission; +import com.sap.sse.security.ui.client.SecurityTableResources; import com.sap.sse.security.ui.client.UserManagementServiceAsync; 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) * */ -public class RolesPanel extends FlowPanel { +public class RolesPanel extends VerticalPanel { private final Button addButton; private final Button removeButton; private final Button refreshButton; private final FlushableSortedCellTableWithStylableHeaders rolesTable; + private final ErrorReporter errorReporter; + private final UserManagementServiceAsync userManagementService; + private final ListDataProvider rolesListDataProvider; + private final List allRoles; + private final StringMessages stringMessages; + private final LabeledAbstractFilterablePanel filterablePanelRoles; + private RefreshableMultiSelectionModel 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.removeButton = new Button(stringMessages.remove()); this.refreshButton = new Button(stringMessages.refresh()); - this.rolesTable = new FlushableSortedCellTableWithStylableHeaders<>(/* pageSize */ 50, tableResources); + this.allRoles = new ArrayList<>(); + rolesListDataProvider = new ListDataProvider(); + filterablePanelRoles = new LabeledAbstractFilterablePanel(new Label(stringMessages.filterRoles()), allRoles, + new CellTable(), rolesListDataProvider) { + @Override + public Iterable 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) rolesTable.getSelectionModel(); + removeButton.addClickHandler(e->{ + final Set selectedRoles = new HashSet(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 getSelectedRoles() { + @SuppressWarnings("unchecked") + final Set result = (Set) refreshableRoleMultiSelectionModel.getSelectedSet(); + return result; + } + + private FlushableSortedCellTableWithStylableHeaders createRolesTable(SecurityTableResources tableResources) { + final FlushableSortedCellTableWithStylableHeaders table = new FlushableSortedCellTableWithStylableHeaders<>(/* pageSize */ 50, tableResources); + rolesListDataProvider.addDataDisplay(table); + table.setWidth("100%"); + SelectionCheckboxColumn roleSelectionCheckboxColumn = new SelectionCheckboxColumn( + tableResources.cellTableStyle().cellTableCheckboxSelected(), + tableResources.cellTableStyle().cellTableCheckboxDeselected(), + tableResources.cellTableStyle().cellTableCheckboxColumnCell(), new EntityIdentityComparator() { + @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 columnSortHandler = new ListHandler<>(rolesListDataProvider.getList()); + table.addColumnSortHandler(columnSortHandler); + columnSortHandler.setComparator(roleSelectionCheckboxColumn, roleSelectionCheckboxColumn.getComparator()); + + TextColumn roleNameColumn = new TextColumn() { + @Override + public String getValue(Role role) { + return role.getName(); + } + }; + roleNameColumn.setSortable(true); + columnSortHandler.setComparator(roleNameColumn, new Comparator() { + @Override + public int compare(Role r1, Role r2) { + return new NaturalComparator().compare(r1.getName(), r2.getName()); + } + }); + + Column permissionsColumn = new Column(new SafeHtmlCell()) { + @Override + public SafeHtml getValue(Role role) { + SafeHtmlBuilder builder = new SafeHtmlBuilder(); + for (Iterator permissionIter=role.getPermissions().iterator(); permissionIter.hasNext(); ) { + final WildcardPermission permission = permissionIter.next(); + builder.appendEscaped(permission.toString()); + if (permissionIter.hasNext()) { + builder.appendHtmlConstant("
"); + } + } + return builder.toSafeHtml(); + } + }; + permissionsColumn.setSortable(true); + columnSortHandler.setComparator(permissionsColumn, new Comparator() { + @Override + public int compare(Role r1, Role r2) { + return new NaturalComparator().compare(r1.getPermissions().toString(), r2.getPermissions().toString()); + } + }); + ImagesBarColumn regattaActionColumn = new ImagesBarColumn( + new RoleImagesBarCell(stringMessages)); + regattaActionColumn.setFieldUpdater(new FieldUpdater() { + @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>() { + @Override + public void onSuccess(ArrayList allRoles) { + filterablePanelRoles.updateAll(allRoles); + } + + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError(stringMessages.errorTryingToLoadRoles(caught.getMessage())); + } + }); } } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/SettingsPanel.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/SettingsPanel.java index ca05964b91d..aaea386b9f9 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/SettingsPanel.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/SettingsPanel.java @@ -173,7 +173,7 @@ public class SettingsPanel extends LayoutPanel { 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)); delete.addClickHandler(new ClickHandler() { @@ -283,7 +283,7 @@ public class SettingsPanel extends LayoutPanel { 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)); delete.addClickHandler(new ClickHandler() { diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserManagementPanel.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserManagementPanel.java index 260c3e9e4d3..7bb31c3b38a 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserManagementPanel.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserManagementPanel.java @@ -29,6 +29,7 @@ import com.google.gwt.view.client.SingleSelectionModel; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.security.shared.AccessControlList; 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.UserManagementServiceAsync; 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 { - private List userCreatedHandlers = new ArrayList<>(); + private final List userCreatedHandlers = new ArrayList<>(); - private List userDeletedHandlers = new ArrayList<>(); + private final List userDeletedHandlers = new ArrayList<>(); - private SingleSelectionModel aclSingleSelectionModel; - private AccessControlListListDataProvider aclListDataProvider; + private final SingleSelectionModel aclSingleSelectionModel; + private final AccessControlListListDataProvider aclListDataProvider; - private SingleSelectionModel singleSelectionModel; + private final SingleSelectionModel singleSelectionModel; - private UserListDataProvider userListDataProvider; + private final UserListDataProvider userListDataProvider; - public UserManagementPanel(final UserService userService, final StringMessages stringMessages, ErrorReporter errorReporter) { - this(userService, stringMessages, Collections.emptySet(), errorReporter); + private final RolesPanel rolesPanel; + + public UserManagementPanel(final UserService userService, final StringMessages stringMessages, + ErrorReporter errorReporter, SecurityTableResources tableResources) { + this(userService, stringMessages, Collections.emptySet(), errorReporter, tableResources); } public UserManagementPanel(final UserService userService, final StringMessages stringMessages, - Iterable additionalPermissions, ErrorReporter errorReporter) { + Iterable additionalPermissions, ErrorReporter errorReporter, SecurityTableResources tableResources) { final UserManagementServiceAsync userManagementService = userService.getUserManagementService(); VerticalPanel west = new VerticalPanel(); HorizontalPanel buttonPanel = new HorizontalPanel(); @@ -133,13 +137,16 @@ public class UserManagementPanel extends DockPanel { west.add(aclPager); west.add(aclPanel); + rolesPanel = new RolesPanel(stringMessages, userManagementService, tableResources, errorReporter); + add(rolesPanel, DockPanel.CENTER); + final UserList userList = new UserList(); userList.setSelectionModel(singleSelectionModel); TextBox filterBox = new TextBox(); userListDataProvider = new UserListDataProvider(userManagementService, filterBox); final UserDetailsView userDetailsView = new UserDetailsView(userService, singleSelectionModel.getSelectedObject(), stringMessages, userListDataProvider, additionalPermissions, errorReporter); - add(userDetailsView, DockPanel.CENTER); + add(userDetailsView, DockPanel.EAST); userDetailsView.addUserChangeEventHandler(new UserChangeEventHandler() { @Override public void onUserChange(UserDTO user) { @@ -199,6 +206,7 @@ public class UserManagementPanel extends DockPanel { public void updateUsersAndACLs() { userListDataProvider.updateDisplays(); aclListDataProvider.updateDisplays(); + rolesPanel.updateRoles(); } public void addUserCreatedEventHandler(UserCreatedEventHandler handler){ diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java index 4cba42c4a2e..6190a8f3b78 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java @@ -115,4 +115,10 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages { String id(); String displayName(); String tenants(); + String errorTryingToLoadRoles(String message); + String filterRoles(); + String actions(); + String actionEdit(); + String actionRemove(); + String doYouReallyWantToRemoveRole(String name); } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties index be0d2975a3b..135576205d6 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties @@ -119,4 +119,10 @@ couldNotDeleteTenant=Could not delete tenant. filterTenants=Filter tenants... id=ID displayName=Display Name -tenants=Tenants \ No newline at end of file +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}"? \ No newline at end of file diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties index ab5653491ba..1bb21f4293b 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties @@ -119,4 +119,10 @@ couldNotDeleteTenant=Mandant konnte nicht entfernt werden. filterTenants=Mandanten filtern... id=ID displayName=Anzeigename -tenants=Mandanten \ No newline at end of file +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? \ No newline at end of file diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/usermanagement/UserManagementEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/usermanagement/UserManagementEntryPoint.java index 937a4fb35b1..c726ecd0ee5 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/usermanagement/UserManagementEntryPoint.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/usermanagement/UserManagementEntryPoint.java @@ -1,5 +1,6 @@ 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.user.client.Window; 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.sap.sse.security.ui.client.AbstractSecurityEntryPoint; 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.component.SettingsPanel; 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; public class UserManagementEntryPoint extends AbstractSecurityEntryPoint { + private final SecurityTableResources tableResources = GWT.create(SecurityTableResources.class); + private TabLayoutPanel center; @Override @@ -26,7 +30,7 @@ public class UserManagementEntryPoint extends AbstractSecurityEntryPoint { 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()); final SettingsPanel settingsPanel = new SettingsPanel(getUserManagementService(), getStringMessages()); center.add(new ScrollPanel(settingsPanel), getStringMessages().settings()); diff --git a/java/com.sap.sse.security.ui/src/main/resources/com/sap/sse/security/ui/client/images/delete.png b/java/com.sap.sse.security.ui/src/main/resources/com/sap/sse/security/ui/client/images/delete.png deleted file mode 100644 index a999aa37557..00000000000 Binary files a/java/com.sap.sse.security.ui/src/main/resources/com/sap/sse/security/ui/client/images/delete.png and /dev/null differ