mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-14 16:20:57 +00:00
consolidated loading of leaderboards and leaderboard groups across AdminConsole
This commit is contained in:
1 parent
8f77b877e7
commit
d44529b0b7
24 files changed
+293
-160
No files matched your search
+29
-30
@@ -29,10 +29,13 @@ import com.sap.sailing.domain.common.dto.NamedDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||
import com.sap.sailing.domain.common.impl.Util;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.panels.LabeledAbstractFilterablePanel;
|
||||
@@ -41,8 +44,8 @@ import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
import com.sap.sse.common.Pair;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
|
||||
public abstract class AbstractLeaderboardConfigPanel extends FormPanel implements SelectedLeaderboardProvider, RegattaDisplayer, RaceSelectionChangeListener,
|
||||
TrackedRaceChangedListener {
|
||||
public abstract class AbstractLeaderboardConfigPanel extends FormPanel implements SelectedLeaderboardProvider,
|
||||
RegattasDisplayer, RaceSelectionChangeListener, TrackedRaceChangedListener, LeaderboardsDisplayer {
|
||||
protected final VerticalPanel mainPanel;
|
||||
|
||||
protected final TrackedRacesListComposite trackedRacesListComposite;
|
||||
@@ -74,6 +77,8 @@ TrackedRaceChangedListener {
|
||||
|
||||
protected final RaceSelectionProvider raceSelectionProvider;
|
||||
|
||||
private final LeaderboardsRefresher leaderboardsRefresher;
|
||||
|
||||
public static class RaceColumnDTOAndFleetDTOWithNameBasedEquality extends Pair<RaceColumnDTO, FleetDTO> {
|
||||
private static final long serialVersionUID = -8742476113296862662L;
|
||||
|
||||
@@ -113,14 +118,15 @@ TrackedRaceChangedListener {
|
||||
}
|
||||
}
|
||||
|
||||
public AbstractLeaderboardConfigPanel(final SailingServiceAsync sailingService, AdminConsoleEntryPoint adminConsole,
|
||||
final ErrorReporter errorReporter, StringMessages theStringConstants,
|
||||
SetSelectionModel<RaceColumnDTOAndFleetDTOWithNameBasedEquality> raceColumnTableSelectionModel) {
|
||||
public AbstractLeaderboardConfigPanel(final SailingServiceAsync sailingService, RegattaRefresher regattaRefresher,
|
||||
LeaderboardsRefresher leaderboardsRefresher, final ErrorReporter errorReporter,
|
||||
StringMessages theStringConstants, SetSelectionModel<RaceColumnDTOAndFleetDTOWithNameBasedEquality> raceColumnTableSelectionModel) {
|
||||
this.stringMessages = theStringConstants;
|
||||
this.sailingService = sailingService;
|
||||
leaderboardList = new ListDataProvider<StrippedLeaderboardDTO>();
|
||||
allRegattas = new ArrayList<RegattaDTO>();
|
||||
this.errorReporter = errorReporter;
|
||||
this.leaderboardsRefresher = leaderboardsRefresher;
|
||||
this.availableLeaderboardList = new ArrayList<StrippedLeaderboardDTO>();
|
||||
mainPanel = new VerticalPanel();
|
||||
mainPanel.setWidth("100%");
|
||||
@@ -141,7 +147,8 @@ TrackedRaceChangedListener {
|
||||
|
||||
AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
|
||||
leaderboardTable = new CellTable<StrippedLeaderboardDTO>(/* pageSize */10000, tableRes);
|
||||
filterLeaderboardPanel = new LabeledAbstractFilterablePanel<StrippedLeaderboardDTO>(lblFilterEvents, availableLeaderboardList, leaderboardTable, leaderboardList) {
|
||||
filterLeaderboardPanel = new LabeledAbstractFilterablePanel<StrippedLeaderboardDTO>(lblFilterEvents,
|
||||
availableLeaderboardList, leaderboardTable, leaderboardList) {
|
||||
@Override
|
||||
public List<String> getSearchableStrings(StrippedLeaderboardDTO t) {
|
||||
List<String> strings = new ArrayList<String>();
|
||||
@@ -202,7 +209,7 @@ TrackedRaceChangedListener {
|
||||
trackedRacesCaptionPanel.setStyleName("bold");
|
||||
|
||||
raceSelectionProvider = new RaceSelectionModel();
|
||||
trackedRacesListComposite = new TrackedRacesListComposite(sailingService, errorReporter, adminConsole,
|
||||
trackedRacesListComposite = new TrackedRacesListComposite(sailingService, errorReporter, regattaRefresher,
|
||||
raceSelectionProvider, stringMessages, /* multiselection */false);
|
||||
trackedRacesListComposite.ensureDebugId("TrackedRacesListComposite");
|
||||
trackedRacesPanel.add(trackedRacesListComposite);
|
||||
@@ -246,8 +253,6 @@ TrackedRaceChangedListener {
|
||||
vPanel.add(selectedLeaderboardRaceButtonPanel);
|
||||
|
||||
addSelectedLeaderboardRacesControls(selectedLeaderboardRaceButtonPanel);
|
||||
|
||||
loadLeaderboards();
|
||||
}
|
||||
|
||||
protected abstract void addLeaderboardConfigControls(Panel configPanel);
|
||||
@@ -257,26 +262,15 @@ TrackedRaceChangedListener {
|
||||
protected abstract void addColumnsToRacesTable(CellTable<RaceColumnDTOAndFleetDTOWithNameBasedEquality> racesTable);
|
||||
|
||||
|
||||
public void loadLeaderboards() {
|
||||
sailingService.getLeaderboards(new MarkedAsyncCallback<List<StrippedLeaderboardDTO>>(
|
||||
new AsyncCallback<List<StrippedLeaderboardDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(List<StrippedLeaderboardDTO> leaderboards) {
|
||||
leaderboardList.getList().clear();
|
||||
availableLeaderboardList.clear();
|
||||
leaderboardList.getList().addAll(leaderboards);
|
||||
availableLeaderboardList.addAll(leaderboards);
|
||||
filterLeaderboardPanel.updateAll(availableLeaderboardList);
|
||||
leaderboardSelectionChanged();
|
||||
leaderboardRaceColumnSelectionChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
AbstractLeaderboardConfigPanel.this.errorReporter.reportError("Error trying to obtain list of leaderboards: "
|
||||
+ t.getMessage());
|
||||
}
|
||||
}));
|
||||
@Override
|
||||
public void fillLeaderboards(Iterable<StrippedLeaderboardDTO> leaderboards) {
|
||||
leaderboardList.getList().clear();
|
||||
availableLeaderboardList.clear();
|
||||
Util.addAll(leaderboards, leaderboardList.getList());
|
||||
Util.addAll(leaderboards, availableLeaderboardList);
|
||||
filterLeaderboardPanel.updateAll(availableLeaderboardList);
|
||||
leaderboardSelectionChanged();
|
||||
leaderboardRaceColumnSelectionChanged();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -303,6 +297,7 @@ TrackedRaceChangedListener {
|
||||
selectRaceColumn(nameOfRaceColumnToSelect);
|
||||
}
|
||||
leaderboardSelectionChanged();
|
||||
getLeaderboardsRefresher().updateLeaderboards(leaderboardList.getList(), AbstractLeaderboardConfigPanel.this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -494,4 +489,8 @@ TrackedRaceChangedListener {
|
||||
public StrippedLeaderboardDTO getSelectedLeaderboard() {
|
||||
return leaderboardSelectionModel.getSelectedSet().isEmpty() ? null : leaderboardSelectionModel.getSelectedSet().iterator().next();
|
||||
}
|
||||
|
||||
protected LeaderboardsRefresher getLeaderboardsRefresher() {
|
||||
return leaderboardsRefresher;
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -38,7 +38,7 @@ import com.sap.sailing.domain.common.impl.NaturalComparator;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
@@ -50,7 +50,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
|
||||
public abstract class AbstractTrackedRacesListComposite extends SimplePanel implements Component<TrackedRacesSettings>,
|
||||
RegattaDisplayer, RaceSelectionChangeListener {
|
||||
RegattasDisplayer, RaceSelectionChangeListener {
|
||||
|
||||
protected final long DEFAULT_LIVE_DELAY_IN_MILLISECONDS = 5000;
|
||||
|
||||
|
||||
+97
-28
@@ -21,10 +21,14 @@ import com.google.gwt.user.client.ui.ScrollPanel;
|
||||
import com.google.gwt.user.client.ui.TabLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.client.AbstractEntryPoint;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardGroupsDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardGroupsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.MediaService;
|
||||
import com.sap.sailing.gwt.ui.client.MediaServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
@@ -35,14 +39,18 @@ import com.sap.sailing.gwt.ui.client.shared.panels.SystemInformationPanel;
|
||||
import com.sap.sailing.gwt.ui.client.shared.panels.UserStatusPanel;
|
||||
import com.sap.sailing.gwt.ui.masterdataimport.MasterDataImportPanel;
|
||||
import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.UserDTO;
|
||||
import com.sap.sailing.gwt.ui.usermanagement.UserRoles;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
|
||||
public class AdminConsoleEntryPoint extends AbstractEntryPoint implements RegattaRefresher {
|
||||
private Set<RegattaDisplayer> regattaDisplayers;
|
||||
public class AdminConsoleEntryPoint extends AbstractEntryPoint implements RegattaRefresher, LeaderboardsRefresher, LeaderboardGroupsRefresher {
|
||||
private Set<RegattasDisplayer> regattasDisplayers;
|
||||
private Set<LeaderboardsDisplayer> leaderboardsDisplayers;
|
||||
private Set<LeaderboardGroupsDisplayer> leaderboardGroupsDisplayers;
|
||||
|
||||
private final AdminConsoleResources resources = GWT.create(AdminConsoleResources.class);
|
||||
|
||||
@@ -92,39 +100,42 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
|
||||
|
||||
final TabLayoutPanel tabPanel = new ScrolledTabLayoutPanel(2.5, Unit.EM, resources.arrowLeft(), resources.arrowRight(), 200);
|
||||
tabPanel.ensureDebugId("AdministrationTabs");
|
||||
regattaDisplayers = new HashSet<RegattaDisplayer>();
|
||||
regattasDisplayers = new HashSet<>();
|
||||
leaderboardsDisplayers = new HashSet<>();
|
||||
leaderboardGroupsDisplayers = new HashSet<>();
|
||||
|
||||
EventManagementPanel sailingEventManagementPanel = new EventManagementPanel(sailingService, this,
|
||||
stringMessages);
|
||||
addToTabPanel(tabPanel, user, sailingEventManagementPanel, stringMessages.events(), AdminConsoleFeatures.MANAGE_EVENTS);
|
||||
EventManagementPanel eventManagementPanel = new EventManagementPanel(sailingService, this, stringMessages);
|
||||
addToTabPanel(tabPanel, user, eventManagementPanel, stringMessages.events(), AdminConsoleFeatures.MANAGE_EVENTS);
|
||||
leaderboardGroupsDisplayers.add(eventManagementPanel);
|
||||
|
||||
RegattaStructureManagementPanel eventStructureManagementPanel = new RegattaStructureManagementPanel(
|
||||
RegattaStructureManagementPanel regattaManagementPanel = new RegattaStructureManagementPanel(
|
||||
sailingService, this, stringMessages, this);
|
||||
eventStructureManagementPanel.ensureDebugId("RegattaStructureManagement");
|
||||
addToTabPanel(tabPanel, user, eventStructureManagementPanel, stringMessages.regattas(), AdminConsoleFeatures.MANAGE_REGATTAS);
|
||||
regattaDisplayers.add(eventStructureManagementPanel);
|
||||
regattaManagementPanel.ensureDebugId("RegattaStructureManagement");
|
||||
addToTabPanel(tabPanel, user, regattaManagementPanel, stringMessages.regattas(), AdminConsoleFeatures.MANAGE_REGATTAS);
|
||||
regattasDisplayers.add(regattaManagementPanel);
|
||||
|
||||
TracTracEventManagementPanel tractracEventManagementPanel = new TracTracEventManagementPanel(sailingService,
|
||||
this, this, stringMessages);
|
||||
tractracEventManagementPanel.ensureDebugId("TracTracEventManagement");
|
||||
addToTabPanel(tabPanel, user, tractracEventManagementPanel, stringMessages.tracTracEvents(), AdminConsoleFeatures.MANAGE_TRACKED_RACES);
|
||||
regattaDisplayers.add(tractracEventManagementPanel);
|
||||
regattasDisplayers.add(tractracEventManagementPanel);
|
||||
|
||||
SwissTimingReplayConnectorPanel swissTimingReplayConnectorPanel = new SwissTimingReplayConnectorPanel(
|
||||
sailingService, this, this, stringMessages);
|
||||
addToTabPanel(tabPanel, user, swissTimingReplayConnectorPanel, stringMessages.swissTimingArchiveConnector(), AdminConsoleFeatures.MANAGE_TRACKED_RACES);
|
||||
regattaDisplayers.add(swissTimingReplayConnectorPanel);
|
||||
regattasDisplayers.add(swissTimingReplayConnectorPanel);
|
||||
|
||||
SwissTimingEventManagementPanel swisstimingEventManagementPanel = new SwissTimingEventManagementPanel(
|
||||
sailingService, this, this, stringMessages);
|
||||
// swisstimingEventManagementPanel.ensureDebugId("SwissTimingEventManagement");
|
||||
addToTabPanel(tabPanel, user, swisstimingEventManagementPanel, stringMessages.swissTimingEvents(), AdminConsoleFeatures.MANAGE_TRACKED_RACES);
|
||||
regattaDisplayers.add(swisstimingEventManagementPanel);
|
||||
regattasDisplayers.add(swisstimingEventManagementPanel);
|
||||
|
||||
final RaceLogTrackingEventManagementPanel raceLogTrackingEventManagementPanel = new RaceLogTrackingEventManagementPanel(
|
||||
sailingService, this, this, this, stringMessages);
|
||||
addToTabPanel(tabPanel, user, raceLogTrackingEventManagementPanel, stringMessages.raceLogTracking(), AdminConsoleFeatures.MANAGE_RACELOG_TRACKING);
|
||||
regattaDisplayers.add(raceLogTrackingEventManagementPanel);
|
||||
regattasDisplayers.add(raceLogTrackingEventManagementPanel);
|
||||
leaderboardsDisplayers.add(raceLogTrackingEventManagementPanel);
|
||||
|
||||
IgtimiAccountsPanel igtimiAccountsPanel = new IgtimiAccountsPanel(sailingService, this, stringMessages);
|
||||
igtimiAccountsPanel.ensureDebugId("IgtimiAccounts");
|
||||
@@ -134,35 +145,36 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
|
||||
this, stringMessages);
|
||||
trackedRacesManagementPanel.ensureDebugId("TrackedRacesManagement");
|
||||
addToTabPanel(tabPanel, user, trackedRacesManagementPanel, stringMessages.trackedRaces(), AdminConsoleFeatures.SHOW_TRACKED_RACES);
|
||||
regattaDisplayers.add(trackedRacesManagementPanel);
|
||||
regattasDisplayers.add(trackedRacesManagementPanel);
|
||||
|
||||
final CompetitorPanel competitorPanel = new CompetitorPanel(sailingService, stringMessages, this);
|
||||
addToTabPanel(tabPanel, user, competitorPanel, stringMessages.competitors(), AdminConsoleFeatures.MANAGE_ALL_COMPETITORS);
|
||||
|
||||
RaceCourseManagementPanel raceCourseManagementPanel = new RaceCourseManagementPanel(sailingService, this, this,
|
||||
stringMessages);
|
||||
RaceCourseManagementPanel raceCourseManagementPanel = new RaceCourseManagementPanel(sailingService, this, this, stringMessages);
|
||||
// raceCourseManagementPanel.ensureDebugId("RaceCourseManagement");
|
||||
addToTabPanel(tabPanel, user, raceCourseManagementPanel, stringMessages.courseLayout(), AdminConsoleFeatures.MANAGE_COURSE_LAYOUT);
|
||||
regattaDisplayers.add(raceCourseManagementPanel);
|
||||
regattasDisplayers.add(raceCourseManagementPanel);
|
||||
|
||||
final AsyncActionsExecutor asyncActionsExecutor = new AsyncActionsExecutor();
|
||||
|
||||
WindPanel windPanel = new WindPanel(sailingService, asyncActionsExecutor, this, this, stringMessages);
|
||||
// windPanel.ensureDebugId("WindManagement");
|
||||
regattaDisplayers.add(windPanel);
|
||||
regattasDisplayers.add(windPanel);
|
||||
addToTabPanel(tabPanel, user, windPanel, stringMessages.wind(), AdminConsoleFeatures.MANAGE_WIND);
|
||||
|
||||
final LeaderboardGroupConfigPanel leaderboardGroupConfigPanel = new LeaderboardGroupConfigPanel(sailingService,
|
||||
this, this, stringMessages);
|
||||
this, this, this, this, stringMessages);
|
||||
leaderboardGroupConfigPanel.ensureDebugId("LeaderboardGroupConfiguration");
|
||||
addToTabPanel(tabPanel, user, leaderboardGroupConfigPanel, stringMessages.leaderboardGroupConfiguration(), AdminConsoleFeatures.MANAGE_LEADERBOARD_GROUPS);
|
||||
regattaDisplayers.add(leaderboardGroupConfigPanel);
|
||||
regattasDisplayers.add(leaderboardGroupConfigPanel);
|
||||
leaderboardGroupsDisplayers.add(leaderboardGroupConfigPanel);
|
||||
|
||||
final LeaderboardConfigPanel leaderboardConfigPanel = new LeaderboardConfigPanel(sailingService, this, this,
|
||||
stringMessages, /* showRaceDetails */true);
|
||||
stringMessages, /* showRaceDetails */true, this);
|
||||
leaderboardConfigPanel.ensureDebugId("LeaderboardConfiguration");
|
||||
addToTabPanel(tabPanel, user, leaderboardConfigPanel, stringMessages.leaderboardConfiguration(), AdminConsoleFeatures.MANAGE_LEADERBOARDS);
|
||||
regattaDisplayers.add(leaderboardConfigPanel);
|
||||
regattasDisplayers.add(leaderboardConfigPanel);
|
||||
leaderboardsDisplayers.add(leaderboardConfigPanel);
|
||||
|
||||
ResultImportUrlsManagementPanel resultImportUrlsManagementPanel = new ResultImportUrlsManagementPanel(sailingService, this, stringMessages);
|
||||
addToTabPanel(tabPanel, user, resultImportUrlsManagementPanel, stringMessages.resultImportUrls(), AdminConsoleFeatures.MANAGE_RESULT_IMPORT_URLS);
|
||||
@@ -178,7 +190,7 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
|
||||
addToTabPanel(tabPanel, user, mediaPanel, stringMessages.mediaPanel(), AdminConsoleFeatures.MANAGE_MEDIA);
|
||||
|
||||
final MasterDataImportPanel masterDataImportPanel = new MasterDataImportPanel(stringMessages, sailingService,
|
||||
this, sailingEventManagementPanel, leaderboardGroupConfigPanel);
|
||||
this, eventManagementPanel, this, this);
|
||||
addToTabPanel(tabPanel, user, masterDataImportPanel, stringMessages.masterDataImportPanel(), AdminConsoleFeatures.MANAGE_MASTERDATA_IMPORT);
|
||||
|
||||
/*final DeviceConfigurationPanel deviceConfigurationAdminPanel = new DeviceConfigurationPanel(sailingService,
|
||||
@@ -195,7 +207,7 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
|
||||
public void onSelection(SelectionEvent<Integer> event) {
|
||||
final Widget selectedPanel = ((ScrollPanel) tabPanel.getWidget(tabPanel.getSelectedIndex())).getWidget();
|
||||
if (selectedPanel == leaderboardConfigPanel) {
|
||||
leaderboardConfigPanel.loadLeaderboards();
|
||||
fillLeaderboards();
|
||||
}
|
||||
if (selectedPanel == mediaPanel) {
|
||||
mediaPanel.onShow();
|
||||
@@ -204,11 +216,13 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
|
||||
competitorPanel.refreshCompetitorList();
|
||||
}
|
||||
if (selectedPanel == raceLogTrackingEventManagementPanel) {
|
||||
raceLogTrackingEventManagementPanel.loadLeaderboards();
|
||||
fillLeaderboards();
|
||||
}
|
||||
}
|
||||
});
|
||||
fillRegattas();
|
||||
fillLeaderboardGroups();
|
||||
fillLeaderboards();
|
||||
|
||||
SystemInformationPanel sysinfoPanel = new SystemInformationPanel(sailingService, this);
|
||||
sysinfoPanel.ensureDebugId("SystemInformation");
|
||||
@@ -236,13 +250,68 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillLeaderboards() {
|
||||
sailingService.getLeaderboards(new MarkedAsyncCallback<List<StrippedLeaderboardDTO>>(
|
||||
new AsyncCallback<List<StrippedLeaderboardDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(List<StrippedLeaderboardDTO> leaderboards) {
|
||||
for (LeaderboardsDisplayer leaderboardsDisplayer : leaderboardsDisplayers) {
|
||||
leaderboardsDisplayer.fillLeaderboards(leaderboards);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
reportError("Error trying to obtain list of leaderboards: "+ t.getMessage());
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateLeaderboards(Iterable<StrippedLeaderboardDTO> updatedLeaderboards, LeaderboardsDisplayer origin) {
|
||||
for (LeaderboardsDisplayer leaderboardsDisplayer : leaderboardsDisplayers) {
|
||||
if (leaderboardsDisplayer != origin) {
|
||||
leaderboardsDisplayer.fillLeaderboards(updatedLeaderboards);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillLeaderboardGroups() {
|
||||
sailingService.getLeaderboardGroups(false /*withGeoLocationData*/,
|
||||
new MarkedAsyncCallback<List<LeaderboardGroupDTO>>(
|
||||
new AsyncCallback<List<LeaderboardGroupDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(List<LeaderboardGroupDTO> groups) {
|
||||
for (LeaderboardGroupsDisplayer leaderboardGroupsDisplayer : leaderboardGroupsDisplayers) {
|
||||
leaderboardGroupsDisplayer.fillLeaderboardGroups(groups);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
reportError("Error trying to obtain list of leaderboard groups: " + t.getMessage());
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateLeaderboardGroups(Iterable<LeaderboardGroupDTO> updatedLeaderboardGroups,
|
||||
LeaderboardGroupsDisplayer origin) {
|
||||
for (LeaderboardGroupsDisplayer leaderboardGroupsDisplayer : leaderboardGroupsDisplayers) {
|
||||
if (leaderboardGroupsDisplayer != origin) {
|
||||
leaderboardGroupsDisplayer.fillLeaderboardGroups(updatedLeaderboardGroups);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillRegattas() {
|
||||
sailingService.getRegattas(new MarkedAsyncCallback<List<RegattaDTO>>(
|
||||
new AsyncCallback<List<RegattaDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(List<RegattaDTO> result) {
|
||||
for (RegattaDisplayer regattaDisplayer : regattaDisplayers) {
|
||||
for (RegattasDisplayer regattaDisplayer : regattasDisplayers) {
|
||||
regattaDisplayer.fillRegattas(result);
|
||||
}
|
||||
}
|
||||
|
||||
+12
-4
@@ -34,7 +34,8 @@ import com.google.gwt.view.client.MultiSelectionModel;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent;
|
||||
import com.sap.sailing.domain.common.impl.NaturalComparator;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.EventRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.EventsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardGroupsDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.URLEncoder;
|
||||
@@ -51,9 +52,9 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
||||
* connected with any regatta and it used only to manage of basic attributes of the an event.
|
||||
*
|
||||
* @author Frank Mittag (C5163974)
|
||||
*
|
||||
* @author Axel Uhl (d043530)
|
||||
*/
|
||||
public class EventManagementPanel extends SimplePanel implements EventRefresher {
|
||||
public class EventManagementPanel extends SimplePanel implements EventsRefresher, LeaderboardGroupsDisplayer {
|
||||
private final SailingServiceAsync sailingService;
|
||||
private final ErrorReporter errorReporter;
|
||||
private final StringMessages stringMessages;
|
||||
@@ -249,7 +250,8 @@ public class EventManagementPanel extends SimplePanel implements EventRefresher
|
||||
eventSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
|
||||
@Override
|
||||
public void onSelectionChange(SelectionChangeEvent event) {
|
||||
removeEventsButton.setEnabled(!eventSelectionModel.getSelectedSet().isEmpty());
|
||||
final boolean somethingSelected = !eventSelectionModel.getSelectedSet().isEmpty();
|
||||
removeEventsButton.setEnabled(somethingSelected);
|
||||
}
|
||||
});
|
||||
eventTable.setSelectionModel(eventSelectionModel);
|
||||
@@ -512,4 +514,10 @@ public class EventManagementPanel extends SimplePanel implements EventRefresher
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillLeaderboardGroups(Iterable<LeaderboardGroupDTO> leaderboardGroups) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
||||
+13
-10
@@ -39,10 +39,13 @@ import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.DisablableCheckboxCell.IsEnabled;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.RaceColumnInLeaderboardDialog.RaceColumnDescriptor;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.ParallelExecutionCallback;
|
||||
import com.sap.sailing.gwt.ui.client.ParallelExecutionHolder;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.URLEncoder;
|
||||
@@ -55,8 +58,8 @@ import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
||||
|
||||
public class LeaderboardConfigPanel extends AbstractLeaderboardConfigPanel implements SelectedLeaderboardProvider, RegattaDisplayer, RaceSelectionChangeListener,
|
||||
TrackedRaceChangedListener {
|
||||
public class LeaderboardConfigPanel extends AbstractLeaderboardConfigPanel implements SelectedLeaderboardProvider, RegattasDisplayer, RaceSelectionChangeListener,
|
||||
TrackedRaceChangedListener, LeaderboardsDisplayer {
|
||||
private final AnchorTemplates ANCHORTEMPLATE = GWT.create(AnchorTemplates.class);
|
||||
|
||||
private final boolean showRaceDetails;
|
||||
@@ -82,11 +85,12 @@ TrackedRaceChangedListener {
|
||||
}
|
||||
|
||||
|
||||
public LeaderboardConfigPanel(final SailingServiceAsync sailingService, AdminConsoleEntryPoint adminConsole,
|
||||
final ErrorReporter errorReporter, StringMessages theStringConstants, final boolean showRaceDetails) {
|
||||
super(sailingService, adminConsole, errorReporter, theStringConstants, new SingleSelectionModel<RaceColumnDTOAndFleetDTOWithNameBasedEquality>());
|
||||
public LeaderboardConfigPanel(final SailingServiceAsync sailingService, RegattaRefresher regattaRefresher,
|
||||
final ErrorReporter errorReporter, StringMessages theStringConstants, final boolean showRaceDetails,
|
||||
LeaderboardsRefresher leaderboardsRefresher) {
|
||||
super(sailingService, regattaRefresher, leaderboardsRefresher, errorReporter, theStringConstants,
|
||||
new SingleSelectionModel<RaceColumnDTOAndFleetDTOWithNameBasedEquality>());
|
||||
this.showRaceDetails = showRaceDetails;
|
||||
|
||||
leaderboardTable.ensureDebugId("LeaderboardsCellTable");
|
||||
}
|
||||
|
||||
@@ -857,12 +861,9 @@ TrackedRaceChangedListener {
|
||||
leaderboardNames.add(leaderboard.name);
|
||||
}
|
||||
sailingService.removeLeaderboards(leaderboardNames, new AsyncCallback<Void>() {
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to remove the leaderboards:" + caught.getMessage());
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -870,6 +871,7 @@ TrackedRaceChangedListener {
|
||||
for (StrippedLeaderboardDTO leaderboard : leaderboards) {
|
||||
removeLeaderboardFromTable(leaderboard);
|
||||
}
|
||||
getLeaderboardsRefresher().updateLeaderboards(availableLeaderboardList, LeaderboardConfigPanel.this);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -887,6 +889,7 @@ TrackedRaceChangedListener {
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
removeLeaderboardFromTable(leaderBoard);
|
||||
getLeaderboardsRefresher().updateLeaderboards(availableLeaderboardList, LeaderboardConfigPanel.this);
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
+35
-42
@@ -34,11 +34,15 @@ import com.google.gwt.view.client.ProvidesKey;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent;
|
||||
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||
import com.sap.sailing.domain.common.impl.NaturalComparator;
|
||||
import com.sap.sailing.domain.common.impl.Util;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.LeaderboardConfigPanel.AnchorCell;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.LeaderboardGroupDialog.LeaderboardGroupDescriptor;
|
||||
import com.sap.sailing.gwt.ui.client.AbstractRegattaPanel;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardGroupRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardGroupsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardGroupsDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
@@ -52,7 +56,7 @@ import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
||||
|
||||
public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements LeaderboardGroupRefresher {
|
||||
public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements LeaderboardGroupsDisplayer, LeaderboardsDisplayer {
|
||||
|
||||
interface AnchorTemplates extends SafeHtmlTemplates {
|
||||
@SafeHtmlTemplates.Template("<a href=\"{0}\">{1}</a>")
|
||||
@@ -95,13 +99,18 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
||||
|
||||
private ArrayList<LeaderboardGroupDTO> availableLeaderboardGroups;
|
||||
private ArrayList<StrippedLeaderboardDTO> availableLeaderboards;
|
||||
private final LeaderboardGroupsRefresher leaderboardGroupsRefresher;
|
||||
private final LeaderboardsRefresher leaderboardsRefresher;
|
||||
|
||||
public LeaderboardGroupConfigPanel(SailingServiceAsync sailingService, RegattaRefresher regattaRefresher,
|
||||
LeaderboardGroupsRefresher leaderboardGroupsRefresher, LeaderboardsRefresher leaderboardsRefresher,
|
||||
ErrorReporter errorReporter, StringMessages stringMessages) {
|
||||
super(sailingService, regattaRefresher, errorReporter, stringMessages);
|
||||
AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
|
||||
availableLeaderboardGroups = new ArrayList<LeaderboardGroupDTO>();
|
||||
availableLeaderboards = new ArrayList<StrippedLeaderboardDTO>();
|
||||
this.leaderboardGroupsRefresher = leaderboardGroupsRefresher;
|
||||
this.leaderboardsRefresher = leaderboardsRefresher;
|
||||
|
||||
//Build GUI
|
||||
mainPanel = new VerticalPanel();
|
||||
@@ -124,8 +133,8 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
||||
splitPanel.add(createLeaderboardsGUI(tableRes));
|
||||
|
||||
//Load Data
|
||||
fillLeaderboardGroups();
|
||||
loadLeaderboards();
|
||||
leaderboardGroupsRefresher.fillLeaderboardGroups();
|
||||
leaderboardsRefresher.fillLeaderboards();
|
||||
}
|
||||
|
||||
private Widget createSwitchLeaderboardsGUI() {
|
||||
@@ -453,8 +462,8 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
||||
refreshButton.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
fillLeaderboardGroups();
|
||||
loadLeaderboards();
|
||||
leaderboardGroupsRefresher.fillLeaderboardGroups();
|
||||
leaderboardsRefresher.fillLeaderboards();
|
||||
}
|
||||
});
|
||||
leaderboardGroupsFunctionPanel.add(refreshButton);
|
||||
@@ -549,43 +558,24 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
||||
return leaderboardGroupsCaptionPanel;
|
||||
}
|
||||
|
||||
public void fillLeaderboardGroups() {
|
||||
sailingService.getLeaderboardGroups(false /*withGeoLocationData*/,
|
||||
new MarkedAsyncCallback<List<LeaderboardGroupDTO>>(
|
||||
new AsyncCallback<List<LeaderboardGroupDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(List<LeaderboardGroupDTO> groups) {
|
||||
availableLeaderboardGroups.clear();
|
||||
if (groups != null) {
|
||||
availableLeaderboardGroups.addAll(groups);
|
||||
}
|
||||
groupsProvider.getList().clear();
|
||||
groupsProvider.getList().addAll(availableLeaderboardGroups);
|
||||
}
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError("Error trying to obtain list of leaderboard groups: " + t.getMessage());
|
||||
}
|
||||
}));
|
||||
@Override
|
||||
public void fillLeaderboardGroups(Iterable<LeaderboardGroupDTO> groups) {
|
||||
availableLeaderboardGroups.clear();
|
||||
if (groups != null) {
|
||||
Util.addAll(groups, availableLeaderboardGroups);
|
||||
}
|
||||
groupsProvider.getList().clear();
|
||||
groupsProvider.getList().addAll(availableLeaderboardGroups);
|
||||
}
|
||||
|
||||
private void loadLeaderboards() {
|
||||
sailingService.getLeaderboards(new MarkedAsyncCallback<List<StrippedLeaderboardDTO>>(
|
||||
new AsyncCallback<List<StrippedLeaderboardDTO>>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError("Error trying to obtain list of leaderboards: " + t.getMessage());
|
||||
}
|
||||
@Override
|
||||
public void onSuccess(List<StrippedLeaderboardDTO> leaderboards) {
|
||||
availableLeaderboards.clear();
|
||||
if (leaderboards != null) {
|
||||
availableLeaderboards.addAll(leaderboards);
|
||||
}
|
||||
leaderboardsProvider.getList().clear();
|
||||
leaderboardsProvider.getList().addAll(availableLeaderboards);
|
||||
}
|
||||
}));
|
||||
@Override
|
||||
public void fillLeaderboards(Iterable<StrippedLeaderboardDTO> leaderboards) {
|
||||
availableLeaderboards.clear();
|
||||
if (leaderboards != null) {
|
||||
Util.addAll(leaderboards, availableLeaderboards);
|
||||
}
|
||||
leaderboardsProvider.getList().clear();
|
||||
leaderboardsProvider.getList().addAll(availableLeaderboards);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -655,6 +645,7 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
||||
groupsProvider.getList().add(newGroup);
|
||||
groupsSelectionModel.clear();
|
||||
groupsSelectionModel.setSelected(newGroup, true);
|
||||
leaderboardGroupsRefresher.updateLeaderboardGroups(availableLeaderboardGroups, LeaderboardGroupConfigPanel.this);
|
||||
}
|
||||
}));
|
||||
}
|
||||
@@ -691,6 +682,7 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
||||
}
|
||||
}
|
||||
}
|
||||
leaderboardGroupsRefresher.updateLeaderboardGroups(availableLeaderboardGroups, LeaderboardGroupConfigPanel.this);
|
||||
groupsProvider.refresh();
|
||||
}
|
||||
}));
|
||||
@@ -736,6 +728,7 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
||||
public void onSuccess(Void result) {
|
||||
for (LeaderboardGroupDTO group : groups) {
|
||||
removeGroupFromTable(group);
|
||||
leaderboardGroupsRefresher.updateLeaderboardGroups(availableLeaderboardGroups, LeaderboardGroupConfigPanel.this);
|
||||
}
|
||||
}
|
||||
}));
|
||||
@@ -755,6 +748,7 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
||||
@Override
|
||||
public void onSuccess(Void v) {
|
||||
removeGroupFromTable(group);
|
||||
leaderboardGroupsRefresher.updateLeaderboardGroups(availableLeaderboardGroups, LeaderboardGroupConfigPanel.this);
|
||||
}
|
||||
}));
|
||||
}
|
||||
@@ -900,5 +894,4 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
||||
private LeaderboardGroupDTO getSelectedGroup() {
|
||||
return groupsSelectionModel.getSelectedSet().isEmpty() ? null : groupsSelectionModel.getSelectedSet().iterator().next();
|
||||
}
|
||||
|
||||
}
|
||||
+7
-5
@@ -26,6 +26,8 @@ import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.RaceLogTrackingState;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
@@ -37,15 +39,15 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
||||
/**
|
||||
* Allows the user to start and stop tracking of races using the RaceLog-tracking connector.
|
||||
*/
|
||||
public class RaceLogTrackingEventManagementPanel extends AbstractLeaderboardConfigPanel {
|
||||
public class RaceLogTrackingEventManagementPanel extends AbstractLeaderboardConfigPanel implements LeaderboardsDisplayer {
|
||||
private Button startTrackingButton;
|
||||
private TrackFileImportDeviceIdentifierTableWrapper deviceIdentifierTable;
|
||||
|
||||
public RaceLogTrackingEventManagementPanel(SailingServiceAsync sailingService, AdminConsoleEntryPoint adminConsole,
|
||||
RegattaRefresher regattaRefresher,
|
||||
public RaceLogTrackingEventManagementPanel(SailingServiceAsync sailingService,
|
||||
RegattaRefresher regattaRefresher, LeaderboardsRefresher leaderboardsRefresher,
|
||||
ErrorReporter errorReporter, StringMessages stringMessages) {
|
||||
super(sailingService, adminConsole, errorReporter, stringMessages,
|
||||
new MultiSelectionModel<RaceColumnDTOAndFleetDTOWithNameBasedEquality>());
|
||||
super(sailingService, regattaRefresher, leaderboardsRefresher, errorReporter,
|
||||
stringMessages, new MultiSelectionModel<RaceColumnDTOAndFleetDTOWithNameBasedEquality>());
|
||||
|
||||
//add upload panel
|
||||
CaptionPanel importPanel = new CaptionPanel(stringMessages.importFixes());
|
||||
|
||||
+2
-2
@@ -20,12 +20,12 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.dto.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
|
||||
public class RacesListBoxPanel extends FormPanel implements RegattaDisplayer, RaceSelectionChangeListener {
|
||||
public class RacesListBoxPanel extends FormPanel implements RegattasDisplayer, RaceSelectionChangeListener {
|
||||
private final List<RaceDTO> raceList;
|
||||
private final ListBox raceListBox;
|
||||
private final RegattaRefresher regattaRefresher;
|
||||
|
||||
+2
-2
@@ -28,7 +28,7 @@ import com.sap.sailing.domain.common.RegattaIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.impl.NaturalComparator;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
@@ -40,7 +40,7 @@ import com.sap.sailing.gwt.ui.shared.SeriesDTO;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
||||
|
||||
public class RegattaListComposite extends Composite implements RegattaDisplayer {
|
||||
public class RegattaListComposite extends Composite implements RegattasDisplayer {
|
||||
|
||||
private final SelectionModel<RegattaDTO> regattaSelectionModel;
|
||||
private final CellTable<RegattaDTO> regattaTable;
|
||||
|
||||
+2
-2
@@ -21,11 +21,11 @@ import com.sap.sailing.domain.common.RegattaIdentifier;
|
||||
import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO;
|
||||
import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
@@ -40,7 +40,7 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
||||
* @author Frank Mittag (C5163974)
|
||||
*
|
||||
*/
|
||||
public class RegattaStructureManagementPanel extends SimplePanel implements RegattaDisplayer, RegattaSelectionChangeListener {
|
||||
public class RegattaStructureManagementPanel extends SimplePanel implements RegattasDisplayer, RegattaSelectionChangeListener {
|
||||
private final SailingServiceAsync sailingService;
|
||||
private final ErrorReporter errorReporter;
|
||||
private final StringMessages stringMessages;
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@ import com.sap.sailing.domain.common.RegattaNameAndRaceName;
|
||||
import com.sap.sailing.domain.common.dto.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
@@ -24,7 +24,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
|
||||
/**
|
||||
* Shows the currently tracked events/races in a table. Updated if subscribed as an {@link RegattaDisplayer}, e.g., with
|
||||
* Shows the currently tracked events/races in a table. Updated if subscribed as an {@link RegattasDisplayer}, e.g., with
|
||||
* the {@link AdminConsoleEntryPoint}.
|
||||
*/
|
||||
public class TrackedRacesListComposite extends AbstractTrackedRacesListComposite {
|
||||
|
||||
+2
-2
@@ -55,7 +55,7 @@ import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
@@ -76,7 +76,7 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
||||
* @author Axel Uhl (d043530)
|
||||
*
|
||||
*/
|
||||
public class WindPanel extends FormPanel implements RegattaDisplayer, WindShower, RaceSelectionChangeListener {
|
||||
public class WindPanel extends FormPanel implements RegattasDisplayer, WindShower, RaceSelectionChangeListener {
|
||||
|
||||
private static final String EXPEDITON_IMPORT_PARAMETER_RACES = "races";
|
||||
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ import com.google.gwt.user.client.ui.FormPanel;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
|
||||
//TODO: Do not inherit from FormPanel since the provided functionality is never used!
|
||||
public abstract class AbstractRegattaPanel extends FormPanel implements RegattaDisplayer {
|
||||
public abstract class AbstractRegattaPanel extends FormPanel implements RegattasDisplayer {
|
||||
protected final SailingServiceAsync sailingService;
|
||||
protected DateTimeFormatRenderer dateFormatter = new DateTimeFormatRenderer(DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT));
|
||||
protected DateTimeFormatRenderer timeFormatter = new DateTimeFormatRenderer(DateTimeFormat.getFormat(PredefinedFormat.TIME_LONG));
|
||||
|
||||
+1
-3
@@ -1,7 +1,5 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
public interface EventRefresher {
|
||||
|
||||
public interface EventsRefresher {
|
||||
void fillEvents();
|
||||
|
||||
}
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
public interface LeaderboardGroupRefresher {
|
||||
|
||||
void fillLeaderboardGroups();
|
||||
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
|
||||
public interface LeaderboardGroupsDisplayer {
|
||||
void fillLeaderboardGroups(Iterable<LeaderboardGroupDTO> leaderboardGroups);
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
|
||||
public interface LeaderboardGroupsRefresher {
|
||||
/**
|
||||
* Fetch all leaderboard groups from the server and distribute to all {@link LeaderboardGroupsDisplayer}s registered.
|
||||
*/
|
||||
void fillLeaderboardGroups();
|
||||
|
||||
/**
|
||||
* Update all {@link LeaderboardGroupsDisplayer}s registered with the updated collection of leaderboard groups.
|
||||
* Calling this method is useful for notifying all other {@link LeaderboardGroupsDisplayer}s after one area of the
|
||||
* UI has actively changed the leaderboard groups collection and has already updated its sequence of
|
||||
* {@link LeaderboardGroupDTO}s. This does not necessarily create consistency with the leaderboard groups known by
|
||||
* the server at that time, but at least all areas of the UI that have registered as
|
||||
* {@link LeaderboardGroupsDisplayer} will show an equal sequence of leaderboard groups.
|
||||
*
|
||||
* @param origin
|
||||
* will not receive a call to its {@link LeaderboardGroupsDisplayer#fillLeaderboardGroups(Iterable)}, assuming that
|
||||
* the update originated in <code>origin</code> and hence no notification is required.
|
||||
*/
|
||||
void updateLeaderboardGroups(Iterable<LeaderboardGroupDTO> updatedLeaderboardGroups, LeaderboardGroupsDisplayer origin);
|
||||
}
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
|
||||
public interface LeaderboardsDisplayer {
|
||||
void fillLeaderboards(Iterable<StrippedLeaderboardDTO> leaderboards);
|
||||
}
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
|
||||
public interface LeaderboardsRefresher {
|
||||
/**
|
||||
* Fetch all leaderboards from the server as {@link StrippedLeaderboardDTO} objects and distribute to all
|
||||
* {@link LeaderboardsDisplayer}s registered.
|
||||
*/
|
||||
void fillLeaderboards();
|
||||
|
||||
/**
|
||||
* Update all {@link LeaderboardsDisplayer}s registered with the updated collection of leaderboards. Calling this
|
||||
* method is useful for notifying all other {@link LeaderboardsDisplayer}s after one area of the UI has actively
|
||||
* changed the leaderboard collection and has already updated its sequence of {@link StrippedLeaderboardDTO}s.
|
||||
* This does not necessarily create consistency with the leaderboards known by the server at that time, but at
|
||||
* least all areas of the UI that have registered as {@link LeaderboardsDisplayer} will show an equal sequence
|
||||
* of leaderboards.
|
||||
*
|
||||
* @param origin will not receive a call to its {@link LeaderboardsDisplayer#fillLeaderboards(Iterable)}, assuming
|
||||
* that the update originated in <code>origin</code> and hence no notification is required.
|
||||
*/
|
||||
void updateLeaderboards(Iterable<StrippedLeaderboardDTO> updatedLeaderboards, LeaderboardsDisplayer origin);
|
||||
}
|
||||
+1
-1
@@ -4,6 +4,6 @@ import java.util.List;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
|
||||
public interface RegattaDisplayer {
|
||||
public interface RegattasDisplayer {
|
||||
void fillRegattas(List<RegattaDTO> result);
|
||||
}
|
||||
+15
-9
@@ -29,8 +29,9 @@ import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.sap.sailing.domain.common.DataImportProgress;
|
||||
import com.sap.sailing.domain.common.MasterDataImportObjectCreationCount;
|
||||
import com.sap.sailing.gwt.ui.client.EventRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardGroupRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.EventsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardGroupsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
@@ -49,20 +50,22 @@ public class MasterDataImportPanel extends VerticalPanel {
|
||||
private SailingServiceAsync sailingService;
|
||||
private CheckBox overrideSwitch;
|
||||
private final RegattaRefresher regattaRefresher;
|
||||
private final EventRefresher eventRefresher;
|
||||
private final LeaderboardGroupRefresher leaderboardGroupRefresher;
|
||||
private final EventsRefresher eventRefresher;
|
||||
private final LeaderboardsRefresher leaderboardsRefresher;
|
||||
private final LeaderboardGroupsRefresher leaderboardGroupsRefresher;
|
||||
private CheckBox compressSwitch;
|
||||
private CheckBox exportWindSwitch;
|
||||
private TextBox filterBox;
|
||||
|
||||
public MasterDataImportPanel(StringMessages stringMessages, SailingServiceAsync sailingService,
|
||||
RegattaRefresher regattaRefresher, EventRefresher eventRefresher,
|
||||
LeaderboardGroupRefresher leaderboardGroupRefresher) {
|
||||
RegattaRefresher regattaRefresher, EventsRefresher eventsRefresher, LeaderboardsRefresher leaderboardsRefresher,
|
||||
LeaderboardGroupsRefresher leaderboardGroupsRefresher) {
|
||||
this.sailingService = sailingService;
|
||||
this.stringMessages = stringMessages;
|
||||
this.regattaRefresher = regattaRefresher;
|
||||
this.eventRefresher = eventRefresher;
|
||||
this.leaderboardGroupRefresher = leaderboardGroupRefresher;
|
||||
this.eventRefresher = eventsRefresher;
|
||||
this.leaderboardsRefresher = leaderboardsRefresher;
|
||||
this.leaderboardGroupsRefresher = leaderboardGroupsRefresher;
|
||||
|
||||
HorizontalPanel serverAddressPanel = new HorizontalPanel();
|
||||
serverAddressPanel.add(new Label(stringMessages.importRemoteHost()));
|
||||
@@ -205,7 +208,10 @@ public class MasterDataImportPanel extends VerticalPanel {
|
||||
eventRefresher.fillEvents();
|
||||
}
|
||||
if (leaderboardGroupsCreated > 0) {
|
||||
leaderboardGroupRefresher.fillLeaderboardGroups();
|
||||
leaderboardGroupsRefresher.fillLeaderboardGroups();
|
||||
}
|
||||
if (leaderboardsCreated > 0) {
|
||||
leaderboardsRefresher.fillLeaderboards();
|
||||
}
|
||||
Set<String> overwrittenRegattas = creationCount.getOverwrittenRegattaNames();
|
||||
showSuccessAlert(leaderboardsCreated, leaderboardGroupsCreated, eventsCreated, regattasCreated,
|
||||
|
||||
+4
-4
@@ -9,7 +9,7 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.rpc.ServiceDefTarget;
|
||||
import com.google.gwt.user.client.ui.RootLayoutPanel;
|
||||
import com.sap.sailing.gwt.ui.client.AbstractEntryPoint;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||
@@ -18,7 +18,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
|
||||
public class PolarSheetsEntryPoint extends AbstractEntryPoint implements RegattaRefresher {
|
||||
|
||||
private Set<RegattaDisplayer> regattaDisplayers;
|
||||
private Set<RegattasDisplayer> regattaDisplayers;
|
||||
|
||||
private final SailingServiceAsync sailingService = GWT.create(SailingService.class);
|
||||
|
||||
@@ -28,7 +28,7 @@ public class PolarSheetsEntryPoint extends AbstractEntryPoint implements Regatta
|
||||
|
||||
registerASyncService((ServiceDefTarget) sailingService, RemoteServiceMappingConstants.sailingServiceRemotePath);
|
||||
|
||||
regattaDisplayers = new HashSet<RegattaDisplayer>();
|
||||
regattaDisplayers = new HashSet<RegattasDisplayer>();
|
||||
createUI();
|
||||
fillRegattas();
|
||||
}
|
||||
@@ -46,7 +46,7 @@ public class PolarSheetsEntryPoint extends AbstractEntryPoint implements Regatta
|
||||
sailingService.getRegattas(new AsyncCallback<List<RegattaDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(List<RegattaDTO> result) {
|
||||
for (RegattaDisplayer regattaDisplayer : regattaDisplayers) {
|
||||
for (RegattasDisplayer regattaDisplayer : regattaDisplayers) {
|
||||
regattaDisplayer.fillRegattas(result);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -30,7 +30,7 @@ import com.sap.sailing.domain.common.impl.PolarSheetGenerationSettingsImpl;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.Component;
|
||||
@@ -45,7 +45,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
* @author d054528 Frederik Petersen
|
||||
*
|
||||
*/
|
||||
public class PolarSheetsPanel extends SplitLayoutPanel implements RaceSelectionChangeListener, RegattaDisplayer, Component<PolarSheetGenerationSettings> {
|
||||
public class PolarSheetsPanel extends SplitLayoutPanel implements RaceSelectionChangeListener, RegattasDisplayer, Component<PolarSheetGenerationSettings> {
|
||||
|
||||
public static final String POLARSHEETS_STYLE = "polarSheets";
|
||||
|
||||
|
||||
+2
-2
@@ -35,7 +35,7 @@ import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RaceTimePanel;
|
||||
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.media.MediaSelector;
|
||||
@@ -81,7 +81,7 @@ import com.sap.sse.gwt.client.useragent.UserAgentDetails;
|
||||
* @author Frank Mittag, Axel Uhl (d043530)
|
||||
*
|
||||
*/
|
||||
public class RaceBoardPanel extends SimplePanel implements RegattaDisplayer, RaceSelectionChangeListener {
|
||||
public class RaceBoardPanel extends SimplePanel implements RegattasDisplayer, RaceSelectionChangeListener {
|
||||
private final SailingServiceAsync sailingService;
|
||||
private final MediaServiceAsync mediaService;
|
||||
private final UserDTO user;
|
||||
|
||||
Reference in new issue
Block a user