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
+295
-162
No files matched your search
+30
-31
@@ -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.dto.RaceColumnDTO;
|
||||||
import com.sap.sailing.domain.common.impl.Util;
|
import com.sap.sailing.domain.common.impl.Util;
|
||||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
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.RaceSelectionChangeListener;
|
||||||
import com.sap.sailing.gwt.ui.client.RaceSelectionModel;
|
import com.sap.sailing.gwt.ui.client.RaceSelectionModel;
|
||||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
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.SailingServiceAsync;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
import com.sap.sailing.gwt.ui.client.shared.panels.LabeledAbstractFilterablePanel;
|
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.common.Pair;
|
||||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||||
|
|
||||||
public abstract class AbstractLeaderboardConfigPanel extends FormPanel implements SelectedLeaderboardProvider, RegattaDisplayer, RaceSelectionChangeListener,
|
public abstract class AbstractLeaderboardConfigPanel extends FormPanel implements SelectedLeaderboardProvider,
|
||||||
TrackedRaceChangedListener {
|
RegattasDisplayer, RaceSelectionChangeListener, TrackedRaceChangedListener, LeaderboardsDisplayer {
|
||||||
protected final VerticalPanel mainPanel;
|
protected final VerticalPanel mainPanel;
|
||||||
|
|
||||||
protected final TrackedRacesListComposite trackedRacesListComposite;
|
protected final TrackedRacesListComposite trackedRacesListComposite;
|
||||||
@@ -74,6 +77,8 @@ TrackedRaceChangedListener {
|
|||||||
|
|
||||||
protected final RaceSelectionProvider raceSelectionProvider;
|
protected final RaceSelectionProvider raceSelectionProvider;
|
||||||
|
|
||||||
|
private final LeaderboardsRefresher leaderboardsRefresher;
|
||||||
|
|
||||||
public static class RaceColumnDTOAndFleetDTOWithNameBasedEquality extends Pair<RaceColumnDTO, FleetDTO> {
|
public static class RaceColumnDTOAndFleetDTOWithNameBasedEquality extends Pair<RaceColumnDTO, FleetDTO> {
|
||||||
private static final long serialVersionUID = -8742476113296862662L;
|
private static final long serialVersionUID = -8742476113296862662L;
|
||||||
|
|
||||||
@@ -113,14 +118,15 @@ TrackedRaceChangedListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public AbstractLeaderboardConfigPanel(final SailingServiceAsync sailingService, AdminConsoleEntryPoint adminConsole,
|
public AbstractLeaderboardConfigPanel(final SailingServiceAsync sailingService, RegattaRefresher regattaRefresher,
|
||||||
final ErrorReporter errorReporter, StringMessages theStringConstants,
|
LeaderboardsRefresher leaderboardsRefresher, final ErrorReporter errorReporter,
|
||||||
SetSelectionModel<RaceColumnDTOAndFleetDTOWithNameBasedEquality> raceColumnTableSelectionModel) {
|
StringMessages theStringConstants, SetSelectionModel<RaceColumnDTOAndFleetDTOWithNameBasedEquality> raceColumnTableSelectionModel) {
|
||||||
this.stringMessages = theStringConstants;
|
this.stringMessages = theStringConstants;
|
||||||
this.sailingService = sailingService;
|
this.sailingService = sailingService;
|
||||||
leaderboardList = new ListDataProvider<StrippedLeaderboardDTO>();
|
leaderboardList = new ListDataProvider<StrippedLeaderboardDTO>();
|
||||||
allRegattas = new ArrayList<RegattaDTO>();
|
allRegattas = new ArrayList<RegattaDTO>();
|
||||||
this.errorReporter = errorReporter;
|
this.errorReporter = errorReporter;
|
||||||
|
this.leaderboardsRefresher = leaderboardsRefresher;
|
||||||
this.availableLeaderboardList = new ArrayList<StrippedLeaderboardDTO>();
|
this.availableLeaderboardList = new ArrayList<StrippedLeaderboardDTO>();
|
||||||
mainPanel = new VerticalPanel();
|
mainPanel = new VerticalPanel();
|
||||||
mainPanel.setWidth("100%");
|
mainPanel.setWidth("100%");
|
||||||
@@ -141,7 +147,8 @@ TrackedRaceChangedListener {
|
|||||||
|
|
||||||
AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
|
AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
|
||||||
leaderboardTable = new CellTable<StrippedLeaderboardDTO>(/* pageSize */10000, tableRes);
|
leaderboardTable = new CellTable<StrippedLeaderboardDTO>(/* pageSize */10000, tableRes);
|
||||||
filterLeaderboardPanel = new LabeledAbstractFilterablePanel<StrippedLeaderboardDTO>(lblFilterEvents, availableLeaderboardList, leaderboardTable, leaderboardList) {
|
filterLeaderboardPanel = new LabeledAbstractFilterablePanel<StrippedLeaderboardDTO>(lblFilterEvents,
|
||||||
|
availableLeaderboardList, leaderboardTable, leaderboardList) {
|
||||||
@Override
|
@Override
|
||||||
public List<String> getSearchableStrings(StrippedLeaderboardDTO t) {
|
public List<String> getSearchableStrings(StrippedLeaderboardDTO t) {
|
||||||
List<String> strings = new ArrayList<String>();
|
List<String> strings = new ArrayList<String>();
|
||||||
@@ -202,7 +209,7 @@ TrackedRaceChangedListener {
|
|||||||
trackedRacesCaptionPanel.setStyleName("bold");
|
trackedRacesCaptionPanel.setStyleName("bold");
|
||||||
|
|
||||||
raceSelectionProvider = new RaceSelectionModel();
|
raceSelectionProvider = new RaceSelectionModel();
|
||||||
trackedRacesListComposite = new TrackedRacesListComposite(sailingService, errorReporter, adminConsole,
|
trackedRacesListComposite = new TrackedRacesListComposite(sailingService, errorReporter, regattaRefresher,
|
||||||
raceSelectionProvider, stringMessages, /* multiselection */false);
|
raceSelectionProvider, stringMessages, /* multiselection */false);
|
||||||
trackedRacesListComposite.ensureDebugId("TrackedRacesListComposite");
|
trackedRacesListComposite.ensureDebugId("TrackedRacesListComposite");
|
||||||
trackedRacesPanel.add(trackedRacesListComposite);
|
trackedRacesPanel.add(trackedRacesListComposite);
|
||||||
@@ -246,8 +253,6 @@ TrackedRaceChangedListener {
|
|||||||
vPanel.add(selectedLeaderboardRaceButtonPanel);
|
vPanel.add(selectedLeaderboardRaceButtonPanel);
|
||||||
|
|
||||||
addSelectedLeaderboardRacesControls(selectedLeaderboardRaceButtonPanel);
|
addSelectedLeaderboardRacesControls(selectedLeaderboardRaceButtonPanel);
|
||||||
|
|
||||||
loadLeaderboards();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract void addLeaderboardConfigControls(Panel configPanel);
|
protected abstract void addLeaderboardConfigControls(Panel configPanel);
|
||||||
@@ -256,27 +261,16 @@ TrackedRaceChangedListener {
|
|||||||
protected abstract void addColumnsToLeaderboardTable(CellTable<StrippedLeaderboardDTO> leaderboardTable);
|
protected abstract void addColumnsToLeaderboardTable(CellTable<StrippedLeaderboardDTO> leaderboardTable);
|
||||||
protected abstract void addColumnsToRacesTable(CellTable<RaceColumnDTOAndFleetDTOWithNameBasedEquality> racesTable);
|
protected abstract void addColumnsToRacesTable(CellTable<RaceColumnDTOAndFleetDTOWithNameBasedEquality> racesTable);
|
||||||
|
|
||||||
|
|
||||||
public void loadLeaderboards() {
|
@Override
|
||||||
sailingService.getLeaderboards(new MarkedAsyncCallback<List<StrippedLeaderboardDTO>>(
|
public void fillLeaderboards(Iterable<StrippedLeaderboardDTO> leaderboards) {
|
||||||
new AsyncCallback<List<StrippedLeaderboardDTO>>() {
|
leaderboardList.getList().clear();
|
||||||
@Override
|
availableLeaderboardList.clear();
|
||||||
public void onSuccess(List<StrippedLeaderboardDTO> leaderboards) {
|
Util.addAll(leaderboards, leaderboardList.getList());
|
||||||
leaderboardList.getList().clear();
|
Util.addAll(leaderboards, availableLeaderboardList);
|
||||||
availableLeaderboardList.clear();
|
filterLeaderboardPanel.updateAll(availableLeaderboardList);
|
||||||
leaderboardList.getList().addAll(leaderboards);
|
leaderboardSelectionChanged();
|
||||||
availableLeaderboardList.addAll(leaderboards);
|
leaderboardRaceColumnSelectionChanged();
|
||||||
filterLeaderboardPanel.updateAll(availableLeaderboardList);
|
|
||||||
leaderboardSelectionChanged();
|
|
||||||
leaderboardRaceColumnSelectionChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(Throwable t) {
|
|
||||||
AbstractLeaderboardConfigPanel.this.errorReporter.reportError("Error trying to obtain list of leaderboards: "
|
|
||||||
+ t.getMessage());
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -303,6 +297,7 @@ TrackedRaceChangedListener {
|
|||||||
selectRaceColumn(nameOfRaceColumnToSelect);
|
selectRaceColumn(nameOfRaceColumnToSelect);
|
||||||
}
|
}
|
||||||
leaderboardSelectionChanged();
|
leaderboardSelectionChanged();
|
||||||
|
getLeaderboardsRefresher().updateLeaderboards(leaderboardList.getList(), AbstractLeaderboardConfigPanel.this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -494,4 +489,8 @@ TrackedRaceChangedListener {
|
|||||||
public StrippedLeaderboardDTO getSelectedLeaderboard() {
|
public StrippedLeaderboardDTO getSelectedLeaderboard() {
|
||||||
return leaderboardSelectionModel.getSelectedSet().isEmpty() ? null : leaderboardSelectionModel.getSelectedSet().iterator().next();
|
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.ErrorReporter;
|
||||||
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
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.RegattaRefresher;
|
||||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
@@ -50,7 +50,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
|||||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||||
|
|
||||||
public abstract class AbstractTrackedRacesListComposite extends SimplePanel implements Component<TrackedRacesSettings>,
|
public abstract class AbstractTrackedRacesListComposite extends SimplePanel implements Component<TrackedRacesSettings>,
|
||||||
RegattaDisplayer, RaceSelectionChangeListener {
|
RegattasDisplayer, RaceSelectionChangeListener {
|
||||||
|
|
||||||
protected final long DEFAULT_LIVE_DELAY_IN_MILLISECONDS = 5000;
|
protected final long DEFAULT_LIVE_DELAY_IN_MILLISECONDS = 5000;
|
||||||
|
|
||||||
|
|||||||
+98
-29
@@ -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.TabLayoutPanel;
|
||||||
import com.google.gwt.user.client.ui.Widget;
|
import com.google.gwt.user.client.ui.Widget;
|
||||||
import com.sap.sailing.gwt.ui.client.AbstractEntryPoint;
|
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.MediaService;
|
||||||
import com.sap.sailing.gwt.ui.client.MediaServiceAsync;
|
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.RegattaRefresher;
|
||||||
|
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
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.client.shared.panels.UserStatusPanel;
|
||||||
import com.sap.sailing.gwt.ui.masterdataimport.MasterDataImportPanel;
|
import com.sap.sailing.gwt.ui.masterdataimport.MasterDataImportPanel;
|
||||||
import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox;
|
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.RegattaDTO;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.UserDTO;
|
import com.sap.sailing.gwt.ui.shared.UserDTO;
|
||||||
import com.sap.sailing.gwt.ui.usermanagement.UserRoles;
|
import com.sap.sailing.gwt.ui.usermanagement.UserRoles;
|
||||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||||
|
|
||||||
public class AdminConsoleEntryPoint extends AbstractEntryPoint implements RegattaRefresher {
|
public class AdminConsoleEntryPoint extends AbstractEntryPoint implements RegattaRefresher, LeaderboardsRefresher, LeaderboardGroupsRefresher {
|
||||||
private Set<RegattaDisplayer> regattaDisplayers;
|
private Set<RegattasDisplayer> regattasDisplayers;
|
||||||
|
private Set<LeaderboardsDisplayer> leaderboardsDisplayers;
|
||||||
|
private Set<LeaderboardGroupsDisplayer> leaderboardGroupsDisplayers;
|
||||||
|
|
||||||
private final AdminConsoleResources resources = GWT.create(AdminConsoleResources.class);
|
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);
|
final TabLayoutPanel tabPanel = new ScrolledTabLayoutPanel(2.5, Unit.EM, resources.arrowLeft(), resources.arrowRight(), 200);
|
||||||
tabPanel.ensureDebugId("AdministrationTabs");
|
tabPanel.ensureDebugId("AdministrationTabs");
|
||||||
regattaDisplayers = new HashSet<RegattaDisplayer>();
|
regattasDisplayers = new HashSet<>();
|
||||||
|
leaderboardsDisplayers = new HashSet<>();
|
||||||
|
leaderboardGroupsDisplayers = new HashSet<>();
|
||||||
|
|
||||||
EventManagementPanel sailingEventManagementPanel = new EventManagementPanel(sailingService, this,
|
EventManagementPanel eventManagementPanel = new EventManagementPanel(sailingService, this, stringMessages);
|
||||||
stringMessages);
|
addToTabPanel(tabPanel, user, eventManagementPanel, stringMessages.events(), AdminConsoleFeatures.MANAGE_EVENTS);
|
||||||
addToTabPanel(tabPanel, user, sailingEventManagementPanel, stringMessages.events(), AdminConsoleFeatures.MANAGE_EVENTS);
|
leaderboardGroupsDisplayers.add(eventManagementPanel);
|
||||||
|
|
||||||
RegattaStructureManagementPanel eventStructureManagementPanel = new RegattaStructureManagementPanel(
|
RegattaStructureManagementPanel regattaManagementPanel = new RegattaStructureManagementPanel(
|
||||||
sailingService, this, stringMessages, this);
|
sailingService, this, stringMessages, this);
|
||||||
eventStructureManagementPanel.ensureDebugId("RegattaStructureManagement");
|
regattaManagementPanel.ensureDebugId("RegattaStructureManagement");
|
||||||
addToTabPanel(tabPanel, user, eventStructureManagementPanel, stringMessages.regattas(), AdminConsoleFeatures.MANAGE_REGATTAS);
|
addToTabPanel(tabPanel, user, regattaManagementPanel, stringMessages.regattas(), AdminConsoleFeatures.MANAGE_REGATTAS);
|
||||||
regattaDisplayers.add(eventStructureManagementPanel);
|
regattasDisplayers.add(regattaManagementPanel);
|
||||||
|
|
||||||
TracTracEventManagementPanel tractracEventManagementPanel = new TracTracEventManagementPanel(sailingService,
|
TracTracEventManagementPanel tractracEventManagementPanel = new TracTracEventManagementPanel(sailingService,
|
||||||
this, this, stringMessages);
|
this, this, stringMessages);
|
||||||
tractracEventManagementPanel.ensureDebugId("TracTracEventManagement");
|
tractracEventManagementPanel.ensureDebugId("TracTracEventManagement");
|
||||||
addToTabPanel(tabPanel, user, tractracEventManagementPanel, stringMessages.tracTracEvents(), AdminConsoleFeatures.MANAGE_TRACKED_RACES);
|
addToTabPanel(tabPanel, user, tractracEventManagementPanel, stringMessages.tracTracEvents(), AdminConsoleFeatures.MANAGE_TRACKED_RACES);
|
||||||
regattaDisplayers.add(tractracEventManagementPanel);
|
regattasDisplayers.add(tractracEventManagementPanel);
|
||||||
|
|
||||||
SwissTimingReplayConnectorPanel swissTimingReplayConnectorPanel = new SwissTimingReplayConnectorPanel(
|
SwissTimingReplayConnectorPanel swissTimingReplayConnectorPanel = new SwissTimingReplayConnectorPanel(
|
||||||
sailingService, this, this, stringMessages);
|
sailingService, this, this, stringMessages);
|
||||||
addToTabPanel(tabPanel, user, swissTimingReplayConnectorPanel, stringMessages.swissTimingArchiveConnector(), AdminConsoleFeatures.MANAGE_TRACKED_RACES);
|
addToTabPanel(tabPanel, user, swissTimingReplayConnectorPanel, stringMessages.swissTimingArchiveConnector(), AdminConsoleFeatures.MANAGE_TRACKED_RACES);
|
||||||
regattaDisplayers.add(swissTimingReplayConnectorPanel);
|
regattasDisplayers.add(swissTimingReplayConnectorPanel);
|
||||||
|
|
||||||
SwissTimingEventManagementPanel swisstimingEventManagementPanel = new SwissTimingEventManagementPanel(
|
SwissTimingEventManagementPanel swisstimingEventManagementPanel = new SwissTimingEventManagementPanel(
|
||||||
sailingService, this, this, stringMessages);
|
sailingService, this, this, stringMessages);
|
||||||
// swisstimingEventManagementPanel.ensureDebugId("SwissTimingEventManagement");
|
// swisstimingEventManagementPanel.ensureDebugId("SwissTimingEventManagement");
|
||||||
addToTabPanel(tabPanel, user, swisstimingEventManagementPanel, stringMessages.swissTimingEvents(), AdminConsoleFeatures.MANAGE_TRACKED_RACES);
|
addToTabPanel(tabPanel, user, swisstimingEventManagementPanel, stringMessages.swissTimingEvents(), AdminConsoleFeatures.MANAGE_TRACKED_RACES);
|
||||||
regattaDisplayers.add(swisstimingEventManagementPanel);
|
regattasDisplayers.add(swisstimingEventManagementPanel);
|
||||||
|
|
||||||
final RaceLogTrackingEventManagementPanel raceLogTrackingEventManagementPanel = new RaceLogTrackingEventManagementPanel(
|
final RaceLogTrackingEventManagementPanel raceLogTrackingEventManagementPanel = new RaceLogTrackingEventManagementPanel(
|
||||||
sailingService, this, this, this, stringMessages);
|
sailingService, this, this, this, stringMessages);
|
||||||
addToTabPanel(tabPanel, user, raceLogTrackingEventManagementPanel, stringMessages.raceLogTracking(), AdminConsoleFeatures.MANAGE_RACELOG_TRACKING);
|
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 igtimiAccountsPanel = new IgtimiAccountsPanel(sailingService, this, stringMessages);
|
||||||
igtimiAccountsPanel.ensureDebugId("IgtimiAccounts");
|
igtimiAccountsPanel.ensureDebugId("IgtimiAccounts");
|
||||||
@@ -134,35 +145,36 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
|
|||||||
this, stringMessages);
|
this, stringMessages);
|
||||||
trackedRacesManagementPanel.ensureDebugId("TrackedRacesManagement");
|
trackedRacesManagementPanel.ensureDebugId("TrackedRacesManagement");
|
||||||
addToTabPanel(tabPanel, user, trackedRacesManagementPanel, stringMessages.trackedRaces(), AdminConsoleFeatures.SHOW_TRACKED_RACES);
|
addToTabPanel(tabPanel, user, trackedRacesManagementPanel, stringMessages.trackedRaces(), AdminConsoleFeatures.SHOW_TRACKED_RACES);
|
||||||
regattaDisplayers.add(trackedRacesManagementPanel);
|
regattasDisplayers.add(trackedRacesManagementPanel);
|
||||||
|
|
||||||
final CompetitorPanel competitorPanel = new CompetitorPanel(sailingService, stringMessages, this);
|
final CompetitorPanel competitorPanel = new CompetitorPanel(sailingService, stringMessages, this);
|
||||||
addToTabPanel(tabPanel, user, competitorPanel, stringMessages.competitors(), AdminConsoleFeatures.MANAGE_ALL_COMPETITORS);
|
addToTabPanel(tabPanel, user, competitorPanel, stringMessages.competitors(), AdminConsoleFeatures.MANAGE_ALL_COMPETITORS);
|
||||||
|
|
||||||
RaceCourseManagementPanel raceCourseManagementPanel = new RaceCourseManagementPanel(sailingService, this, this,
|
RaceCourseManagementPanel raceCourseManagementPanel = new RaceCourseManagementPanel(sailingService, this, this, stringMessages);
|
||||||
stringMessages);
|
|
||||||
// raceCourseManagementPanel.ensureDebugId("RaceCourseManagement");
|
// raceCourseManagementPanel.ensureDebugId("RaceCourseManagement");
|
||||||
addToTabPanel(tabPanel, user, raceCourseManagementPanel, stringMessages.courseLayout(), AdminConsoleFeatures.MANAGE_COURSE_LAYOUT);
|
addToTabPanel(tabPanel, user, raceCourseManagementPanel, stringMessages.courseLayout(), AdminConsoleFeatures.MANAGE_COURSE_LAYOUT);
|
||||||
regattaDisplayers.add(raceCourseManagementPanel);
|
regattasDisplayers.add(raceCourseManagementPanel);
|
||||||
|
|
||||||
final AsyncActionsExecutor asyncActionsExecutor = new AsyncActionsExecutor();
|
final AsyncActionsExecutor asyncActionsExecutor = new AsyncActionsExecutor();
|
||||||
|
|
||||||
WindPanel windPanel = new WindPanel(sailingService, asyncActionsExecutor, this, this, stringMessages);
|
WindPanel windPanel = new WindPanel(sailingService, asyncActionsExecutor, this, this, stringMessages);
|
||||||
// windPanel.ensureDebugId("WindManagement");
|
// windPanel.ensureDebugId("WindManagement");
|
||||||
regattaDisplayers.add(windPanel);
|
regattasDisplayers.add(windPanel);
|
||||||
addToTabPanel(tabPanel, user, windPanel, stringMessages.wind(), AdminConsoleFeatures.MANAGE_WIND);
|
addToTabPanel(tabPanel, user, windPanel, stringMessages.wind(), AdminConsoleFeatures.MANAGE_WIND);
|
||||||
|
|
||||||
final LeaderboardGroupConfigPanel leaderboardGroupConfigPanel = new LeaderboardGroupConfigPanel(sailingService,
|
final LeaderboardGroupConfigPanel leaderboardGroupConfigPanel = new LeaderboardGroupConfigPanel(sailingService,
|
||||||
this, this, stringMessages);
|
this, this, this, this, stringMessages);
|
||||||
leaderboardGroupConfigPanel.ensureDebugId("LeaderboardGroupConfiguration");
|
leaderboardGroupConfigPanel.ensureDebugId("LeaderboardGroupConfiguration");
|
||||||
addToTabPanel(tabPanel, user, leaderboardGroupConfigPanel, stringMessages.leaderboardGroupConfiguration(), AdminConsoleFeatures.MANAGE_LEADERBOARD_GROUPS);
|
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,
|
final LeaderboardConfigPanel leaderboardConfigPanel = new LeaderboardConfigPanel(sailingService, this, this,
|
||||||
stringMessages, /* showRaceDetails */true);
|
stringMessages, /* showRaceDetails */true, this);
|
||||||
leaderboardConfigPanel.ensureDebugId("LeaderboardConfiguration");
|
leaderboardConfigPanel.ensureDebugId("LeaderboardConfiguration");
|
||||||
addToTabPanel(tabPanel, user, leaderboardConfigPanel, stringMessages.leaderboardConfiguration(), AdminConsoleFeatures.MANAGE_LEADERBOARDS);
|
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);
|
ResultImportUrlsManagementPanel resultImportUrlsManagementPanel = new ResultImportUrlsManagementPanel(sailingService, this, stringMessages);
|
||||||
addToTabPanel(tabPanel, user, resultImportUrlsManagementPanel, stringMessages.resultImportUrls(), AdminConsoleFeatures.MANAGE_RESULT_IMPORT_URLS);
|
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);
|
addToTabPanel(tabPanel, user, mediaPanel, stringMessages.mediaPanel(), AdminConsoleFeatures.MANAGE_MEDIA);
|
||||||
|
|
||||||
final MasterDataImportPanel masterDataImportPanel = new MasterDataImportPanel(stringMessages, sailingService,
|
final MasterDataImportPanel masterDataImportPanel = new MasterDataImportPanel(stringMessages, sailingService,
|
||||||
this, sailingEventManagementPanel, leaderboardGroupConfigPanel);
|
this, eventManagementPanel, this, this);
|
||||||
addToTabPanel(tabPanel, user, masterDataImportPanel, stringMessages.masterDataImportPanel(), AdminConsoleFeatures.MANAGE_MASTERDATA_IMPORT);
|
addToTabPanel(tabPanel, user, masterDataImportPanel, stringMessages.masterDataImportPanel(), AdminConsoleFeatures.MANAGE_MASTERDATA_IMPORT);
|
||||||
|
|
||||||
/*final DeviceConfigurationPanel deviceConfigurationAdminPanel = new DeviceConfigurationPanel(sailingService,
|
/*final DeviceConfigurationPanel deviceConfigurationAdminPanel = new DeviceConfigurationPanel(sailingService,
|
||||||
@@ -195,7 +207,7 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
|
|||||||
public void onSelection(SelectionEvent<Integer> event) {
|
public void onSelection(SelectionEvent<Integer> event) {
|
||||||
final Widget selectedPanel = ((ScrollPanel) tabPanel.getWidget(tabPanel.getSelectedIndex())).getWidget();
|
final Widget selectedPanel = ((ScrollPanel) tabPanel.getWidget(tabPanel.getSelectedIndex())).getWidget();
|
||||||
if (selectedPanel == leaderboardConfigPanel) {
|
if (selectedPanel == leaderboardConfigPanel) {
|
||||||
leaderboardConfigPanel.loadLeaderboards();
|
fillLeaderboards();
|
||||||
}
|
}
|
||||||
if (selectedPanel == mediaPanel) {
|
if (selectedPanel == mediaPanel) {
|
||||||
mediaPanel.onShow();
|
mediaPanel.onShow();
|
||||||
@@ -203,12 +215,14 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
|
|||||||
if (selectedPanel == competitorPanel) {
|
if (selectedPanel == competitorPanel) {
|
||||||
competitorPanel.refreshCompetitorList();
|
competitorPanel.refreshCompetitorList();
|
||||||
}
|
}
|
||||||
if (selectedPanel == raceLogTrackingEventManagementPanel) {
|
if (selectedPanel == raceLogTrackingEventManagementPanel) {
|
||||||
raceLogTrackingEventManagementPanel.loadLeaderboards();
|
fillLeaderboards();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
fillRegattas();
|
fillRegattas();
|
||||||
|
fillLeaderboardGroups();
|
||||||
|
fillLeaderboards();
|
||||||
|
|
||||||
SystemInformationPanel sysinfoPanel = new SystemInformationPanel(sailingService, this);
|
SystemInformationPanel sysinfoPanel = new SystemInformationPanel(sailingService, this);
|
||||||
sysinfoPanel.ensureDebugId("SystemInformation");
|
sysinfoPanel.ensureDebugId("SystemInformation");
|
||||||
@@ -235,6 +249,61 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
|
|||||||
}
|
}
|
||||||
return result;
|
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
|
@Override
|
||||||
public void fillRegattas() {
|
public void fillRegattas() {
|
||||||
@@ -242,7 +311,7 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
|
|||||||
new AsyncCallback<List<RegattaDTO>>() {
|
new AsyncCallback<List<RegattaDTO>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<RegattaDTO> result) {
|
public void onSuccess(List<RegattaDTO> result) {
|
||||||
for (RegattaDisplayer regattaDisplayer : regattaDisplayers) {
|
for (RegattasDisplayer regattaDisplayer : regattasDisplayers) {
|
||||||
regattaDisplayer.fillRegattas(result);
|
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.google.gwt.view.client.SelectionChangeEvent;
|
||||||
import com.sap.sailing.domain.common.impl.NaturalComparator;
|
import com.sap.sailing.domain.common.impl.NaturalComparator;
|
||||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
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.SailingServiceAsync;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
import com.sap.sailing.gwt.ui.client.URLEncoder;
|
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.
|
* connected with any regatta and it used only to manage of basic attributes of the an event.
|
||||||
*
|
*
|
||||||
* @author Frank Mittag (C5163974)
|
* @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 SailingServiceAsync sailingService;
|
||||||
private final ErrorReporter errorReporter;
|
private final ErrorReporter errorReporter;
|
||||||
private final StringMessages stringMessages;
|
private final StringMessages stringMessages;
|
||||||
@@ -249,7 +250,8 @@ public class EventManagementPanel extends SimplePanel implements EventRefresher
|
|||||||
eventSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
|
eventSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
|
||||||
@Override
|
@Override
|
||||||
public void onSelectionChange(SelectionChangeEvent event) {
|
public void onSelectionChange(SelectionChangeEvent event) {
|
||||||
removeEventsButton.setEnabled(!eventSelectionModel.getSelectedSet().isEmpty());
|
final boolean somethingSelected = !eventSelectionModel.getSelectedSet().isEmpty();
|
||||||
|
removeEventsButton.setEnabled(somethingSelected);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
eventTable.setSelectionModel(eventSelectionModel);
|
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.DisablableCheckboxCell.IsEnabled;
|
||||||
import com.sap.sailing.gwt.ui.adminconsole.RaceColumnInLeaderboardDialog.RaceColumnDescriptor;
|
import com.sap.sailing.gwt.ui.adminconsole.RaceColumnInLeaderboardDialog.RaceColumnDescriptor;
|
||||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
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.ParallelExecutionCallback;
|
||||||
import com.sap.sailing.gwt.ui.client.ParallelExecutionHolder;
|
import com.sap.sailing.gwt.ui.client.ParallelExecutionHolder;
|
||||||
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
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.SailingServiceAsync;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
import com.sap.sailing.gwt.ui.client.URLEncoder;
|
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.async.MarkedAsyncCallback;
|
||||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
||||||
|
|
||||||
public class LeaderboardConfigPanel extends AbstractLeaderboardConfigPanel implements SelectedLeaderboardProvider, RegattaDisplayer, RaceSelectionChangeListener,
|
public class LeaderboardConfigPanel extends AbstractLeaderboardConfigPanel implements SelectedLeaderboardProvider, RegattasDisplayer, RaceSelectionChangeListener,
|
||||||
TrackedRaceChangedListener {
|
TrackedRaceChangedListener, LeaderboardsDisplayer {
|
||||||
private final AnchorTemplates ANCHORTEMPLATE = GWT.create(AnchorTemplates.class);
|
private final AnchorTemplates ANCHORTEMPLATE = GWT.create(AnchorTemplates.class);
|
||||||
|
|
||||||
private final boolean showRaceDetails;
|
private final boolean showRaceDetails;
|
||||||
@@ -82,11 +85,12 @@ TrackedRaceChangedListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public LeaderboardConfigPanel(final SailingServiceAsync sailingService, AdminConsoleEntryPoint adminConsole,
|
public LeaderboardConfigPanel(final SailingServiceAsync sailingService, RegattaRefresher regattaRefresher,
|
||||||
final ErrorReporter errorReporter, StringMessages theStringConstants, final boolean showRaceDetails) {
|
final ErrorReporter errorReporter, StringMessages theStringConstants, final boolean showRaceDetails,
|
||||||
super(sailingService, adminConsole, errorReporter, theStringConstants, new SingleSelectionModel<RaceColumnDTOAndFleetDTOWithNameBasedEquality>());
|
LeaderboardsRefresher leaderboardsRefresher) {
|
||||||
|
super(sailingService, regattaRefresher, leaderboardsRefresher, errorReporter, theStringConstants,
|
||||||
|
new SingleSelectionModel<RaceColumnDTOAndFleetDTOWithNameBasedEquality>());
|
||||||
this.showRaceDetails = showRaceDetails;
|
this.showRaceDetails = showRaceDetails;
|
||||||
|
|
||||||
leaderboardTable.ensureDebugId("LeaderboardsCellTable");
|
leaderboardTable.ensureDebugId("LeaderboardsCellTable");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -857,12 +861,9 @@ TrackedRaceChangedListener {
|
|||||||
leaderboardNames.add(leaderboard.name);
|
leaderboardNames.add(leaderboard.name);
|
||||||
}
|
}
|
||||||
sailingService.removeLeaderboards(leaderboardNames, new AsyncCallback<Void>() {
|
sailingService.removeLeaderboards(leaderboardNames, new AsyncCallback<Void>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Throwable caught) {
|
public void onFailure(Throwable caught) {
|
||||||
errorReporter.reportError("Error trying to remove the leaderboards:" + caught.getMessage());
|
errorReporter.reportError("Error trying to remove the leaderboards:" + caught.getMessage());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -870,6 +871,7 @@ TrackedRaceChangedListener {
|
|||||||
for (StrippedLeaderboardDTO leaderboard : leaderboards) {
|
for (StrippedLeaderboardDTO leaderboard : leaderboards) {
|
||||||
removeLeaderboardFromTable(leaderboard);
|
removeLeaderboardFromTable(leaderboard);
|
||||||
}
|
}
|
||||||
|
getLeaderboardsRefresher().updateLeaderboards(availableLeaderboardList, LeaderboardConfigPanel.this);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -887,6 +889,7 @@ TrackedRaceChangedListener {
|
|||||||
@Override
|
@Override
|
||||||
public void onSuccess(Void result) {
|
public void onSuccess(Void result) {
|
||||||
removeLeaderboardFromTable(leaderBoard);
|
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.google.gwt.view.client.SelectionChangeEvent;
|
||||||
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||||
import com.sap.sailing.domain.common.impl.NaturalComparator;
|
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.LeaderboardConfigPanel.AnchorCell;
|
||||||
import com.sap.sailing.gwt.ui.adminconsole.LeaderboardGroupDialog.LeaderboardGroupDescriptor;
|
import com.sap.sailing.gwt.ui.adminconsole.LeaderboardGroupDialog.LeaderboardGroupDescriptor;
|
||||||
import com.sap.sailing.gwt.ui.client.AbstractRegattaPanel;
|
import com.sap.sailing.gwt.ui.client.AbstractRegattaPanel;
|
||||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
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.RegattaRefresher;
|
||||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
@@ -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.async.MarkedAsyncCallback;
|
||||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
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 {
|
interface AnchorTemplates extends SafeHtmlTemplates {
|
||||||
@SafeHtmlTemplates.Template("<a href=\"{0}\">{1}</a>")
|
@SafeHtmlTemplates.Template("<a href=\"{0}\">{1}</a>")
|
||||||
@@ -95,13 +99,18 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
|||||||
|
|
||||||
private ArrayList<LeaderboardGroupDTO> availableLeaderboardGroups;
|
private ArrayList<LeaderboardGroupDTO> availableLeaderboardGroups;
|
||||||
private ArrayList<StrippedLeaderboardDTO> availableLeaderboards;
|
private ArrayList<StrippedLeaderboardDTO> availableLeaderboards;
|
||||||
|
private final LeaderboardGroupsRefresher leaderboardGroupsRefresher;
|
||||||
|
private final LeaderboardsRefresher leaderboardsRefresher;
|
||||||
|
|
||||||
public LeaderboardGroupConfigPanel(SailingServiceAsync sailingService, RegattaRefresher regattaRefresher,
|
public LeaderboardGroupConfigPanel(SailingServiceAsync sailingService, RegattaRefresher regattaRefresher,
|
||||||
|
LeaderboardGroupsRefresher leaderboardGroupsRefresher, LeaderboardsRefresher leaderboardsRefresher,
|
||||||
ErrorReporter errorReporter, StringMessages stringMessages) {
|
ErrorReporter errorReporter, StringMessages stringMessages) {
|
||||||
super(sailingService, regattaRefresher, errorReporter, stringMessages);
|
super(sailingService, regattaRefresher, errorReporter, stringMessages);
|
||||||
AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
|
AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
|
||||||
availableLeaderboardGroups = new ArrayList<LeaderboardGroupDTO>();
|
availableLeaderboardGroups = new ArrayList<LeaderboardGroupDTO>();
|
||||||
availableLeaderboards = new ArrayList<StrippedLeaderboardDTO>();
|
availableLeaderboards = new ArrayList<StrippedLeaderboardDTO>();
|
||||||
|
this.leaderboardGroupsRefresher = leaderboardGroupsRefresher;
|
||||||
|
this.leaderboardsRefresher = leaderboardsRefresher;
|
||||||
|
|
||||||
//Build GUI
|
//Build GUI
|
||||||
mainPanel = new VerticalPanel();
|
mainPanel = new VerticalPanel();
|
||||||
@@ -124,8 +133,8 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
|||||||
splitPanel.add(createLeaderboardsGUI(tableRes));
|
splitPanel.add(createLeaderboardsGUI(tableRes));
|
||||||
|
|
||||||
//Load Data
|
//Load Data
|
||||||
fillLeaderboardGroups();
|
leaderboardGroupsRefresher.fillLeaderboardGroups();
|
||||||
loadLeaderboards();
|
leaderboardsRefresher.fillLeaderboards();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Widget createSwitchLeaderboardsGUI() {
|
private Widget createSwitchLeaderboardsGUI() {
|
||||||
@@ -453,8 +462,8 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
|||||||
refreshButton.addClickHandler(new ClickHandler() {
|
refreshButton.addClickHandler(new ClickHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(ClickEvent event) {
|
public void onClick(ClickEvent event) {
|
||||||
fillLeaderboardGroups();
|
leaderboardGroupsRefresher.fillLeaderboardGroups();
|
||||||
loadLeaderboards();
|
leaderboardsRefresher.fillLeaderboards();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
leaderboardGroupsFunctionPanel.add(refreshButton);
|
leaderboardGroupsFunctionPanel.add(refreshButton);
|
||||||
@@ -549,43 +558,24 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
|||||||
return leaderboardGroupsCaptionPanel;
|
return leaderboardGroupsCaptionPanel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void fillLeaderboardGroups() {
|
@Override
|
||||||
sailingService.getLeaderboardGroups(false /*withGeoLocationData*/,
|
public void fillLeaderboardGroups(Iterable<LeaderboardGroupDTO> groups) {
|
||||||
new MarkedAsyncCallback<List<LeaderboardGroupDTO>>(
|
availableLeaderboardGroups.clear();
|
||||||
new AsyncCallback<List<LeaderboardGroupDTO>>() {
|
if (groups != null) {
|
||||||
@Override
|
Util.addAll(groups, availableLeaderboardGroups);
|
||||||
public void onSuccess(List<LeaderboardGroupDTO> groups) {
|
}
|
||||||
availableLeaderboardGroups.clear();
|
groupsProvider.getList().clear();
|
||||||
if (groups != null) {
|
groupsProvider.getList().addAll(availableLeaderboardGroups);
|
||||||
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());
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadLeaderboards() {
|
@Override
|
||||||
sailingService.getLeaderboards(new MarkedAsyncCallback<List<StrippedLeaderboardDTO>>(
|
public void fillLeaderboards(Iterable<StrippedLeaderboardDTO> leaderboards) {
|
||||||
new AsyncCallback<List<StrippedLeaderboardDTO>>() {
|
availableLeaderboards.clear();
|
||||||
@Override
|
if (leaderboards != null) {
|
||||||
public void onFailure(Throwable t) {
|
Util.addAll(leaderboards, availableLeaderboards);
|
||||||
errorReporter.reportError("Error trying to obtain list of leaderboards: " + t.getMessage());
|
}
|
||||||
}
|
leaderboardsProvider.getList().clear();
|
||||||
@Override
|
leaderboardsProvider.getList().addAll(availableLeaderboards);
|
||||||
public void onSuccess(List<StrippedLeaderboardDTO> leaderboards) {
|
|
||||||
availableLeaderboards.clear();
|
|
||||||
if (leaderboards != null) {
|
|
||||||
availableLeaderboards.addAll(leaderboards);
|
|
||||||
}
|
|
||||||
leaderboardsProvider.getList().clear();
|
|
||||||
leaderboardsProvider.getList().addAll(availableLeaderboards);
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -655,6 +645,7 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
|||||||
groupsProvider.getList().add(newGroup);
|
groupsProvider.getList().add(newGroup);
|
||||||
groupsSelectionModel.clear();
|
groupsSelectionModel.clear();
|
||||||
groupsSelectionModel.setSelected(newGroup, true);
|
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();
|
groupsProvider.refresh();
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
@@ -736,6 +728,7 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
|||||||
public void onSuccess(Void result) {
|
public void onSuccess(Void result) {
|
||||||
for (LeaderboardGroupDTO group : groups) {
|
for (LeaderboardGroupDTO group : groups) {
|
||||||
removeGroupFromTable(group);
|
removeGroupFromTable(group);
|
||||||
|
leaderboardGroupsRefresher.updateLeaderboardGroups(availableLeaderboardGroups, LeaderboardGroupConfigPanel.this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
@@ -755,6 +748,7 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
|||||||
@Override
|
@Override
|
||||||
public void onSuccess(Void v) {
|
public void onSuccess(Void v) {
|
||||||
removeGroupFromTable(group);
|
removeGroupFromTable(group);
|
||||||
|
leaderboardGroupsRefresher.updateLeaderboardGroups(availableLeaderboardGroups, LeaderboardGroupConfigPanel.this);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
@@ -900,5 +894,4 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
|||||||
private LeaderboardGroupDTO getSelectedGroup() {
|
private LeaderboardGroupDTO getSelectedGroup() {
|
||||||
return groupsSelectionModel.getSelectedSet().isEmpty() ? null : groupsSelectionModel.getSelectedSet().iterator().next();
|
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.impl.Util.Triple;
|
||||||
import com.sap.sailing.domain.common.racelog.tracking.RaceLogTrackingState;
|
import com.sap.sailing.domain.common.racelog.tracking.RaceLogTrackingState;
|
||||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
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.RegattaRefresher;
|
||||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
@@ -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.
|
* 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 Button startTrackingButton;
|
||||||
private TrackFileImportDeviceIdentifierTableWrapper deviceIdentifierTable;
|
private TrackFileImportDeviceIdentifierTableWrapper deviceIdentifierTable;
|
||||||
|
|
||||||
public RaceLogTrackingEventManagementPanel(SailingServiceAsync sailingService, AdminConsoleEntryPoint adminConsole,
|
public RaceLogTrackingEventManagementPanel(SailingServiceAsync sailingService,
|
||||||
RegattaRefresher regattaRefresher,
|
RegattaRefresher regattaRefresher, LeaderboardsRefresher leaderboardsRefresher,
|
||||||
ErrorReporter errorReporter, StringMessages stringMessages) {
|
ErrorReporter errorReporter, StringMessages stringMessages) {
|
||||||
super(sailingService, adminConsole, errorReporter, stringMessages,
|
super(sailingService, regattaRefresher, leaderboardsRefresher, errorReporter,
|
||||||
new MultiSelectionModel<RaceColumnDTOAndFleetDTOWithNameBasedEquality>());
|
stringMessages, new MultiSelectionModel<RaceColumnDTOAndFleetDTOWithNameBasedEquality>());
|
||||||
|
|
||||||
//add upload panel
|
//add upload panel
|
||||||
CaptionPanel importPanel = new CaptionPanel(stringMessages.importFixes());
|
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.domain.common.dto.RaceDTO;
|
||||||
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
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.RegattaRefresher;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
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 List<RaceDTO> raceList;
|
||||||
private final ListBox raceListBox;
|
private final ListBox raceListBox;
|
||||||
private final RegattaRefresher regattaRefresher;
|
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.RegattaName;
|
||||||
import com.sap.sailing.domain.common.impl.NaturalComparator;
|
import com.sap.sailing.domain.common.impl.NaturalComparator;
|
||||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
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.RegattaRefresher;
|
||||||
import com.sap.sailing.gwt.ui.client.RegattaSelectionProvider;
|
import com.sap.sailing.gwt.ui.client.RegattaSelectionProvider;
|
||||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
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.async.MarkedAsyncCallback;
|
||||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
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 SelectionModel<RegattaDTO> regattaSelectionModel;
|
||||||
private final CellTable<RegattaDTO> regattaTable;
|
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.RegattaCreationParametersDTO;
|
||||||
import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO;
|
import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO;
|
||||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
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.RegattaRefresher;
|
||||||
import com.sap.sailing.gwt.ui.client.RegattaSelectionChangeListener;
|
import com.sap.sailing.gwt.ui.client.RegattaSelectionChangeListener;
|
||||||
import com.sap.sailing.gwt.ui.client.RegattaSelectionModel;
|
import com.sap.sailing.gwt.ui.client.RegattaSelectionModel;
|
||||||
import com.sap.sailing.gwt.ui.client.RegattaSelectionProvider;
|
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.SailingServiceAsync;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
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)
|
* @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 SailingServiceAsync sailingService;
|
||||||
private final ErrorReporter errorReporter;
|
private final ErrorReporter errorReporter;
|
||||||
private final StringMessages stringMessages;
|
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.domain.common.dto.RaceDTO;
|
||||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
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.RegattaRefresher;
|
||||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
@@ -24,7 +24,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
|||||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
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}.
|
* the {@link AdminConsoleEntryPoint}.
|
||||||
*/
|
*/
|
||||||
public class TrackedRacesListComposite extends AbstractTrackedRacesListComposite {
|
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.RaceSelectionChangeListener;
|
||||||
import com.sap.sailing.gwt.ui.client.RaceSelectionModel;
|
import com.sap.sailing.gwt.ui.client.RaceSelectionModel;
|
||||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
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.RegattaRefresher;
|
||||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
@@ -76,7 +76,7 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
|||||||
* @author Axel Uhl (d043530)
|
* @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";
|
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;
|
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||||
|
|
||||||
//TODO: Do not inherit from FormPanel since the provided functionality is never used!
|
//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 final SailingServiceAsync sailingService;
|
||||||
protected DateTimeFormatRenderer dateFormatter = new DateTimeFormatRenderer(DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT));
|
protected DateTimeFormatRenderer dateFormatter = new DateTimeFormatRenderer(DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT));
|
||||||
protected DateTimeFormatRenderer timeFormatter = new DateTimeFormatRenderer(DateTimeFormat.getFormat(PredefinedFormat.TIME_LONG));
|
protected DateTimeFormatRenderer timeFormatter = new DateTimeFormatRenderer(DateTimeFormat.getFormat(PredefinedFormat.TIME_LONG));
|
||||||
|
|||||||
+1
-3
@@ -1,7 +1,5 @@
|
|||||||
package com.sap.sailing.gwt.ui.client;
|
package com.sap.sailing.gwt.ui.client;
|
||||||
|
|
||||||
public interface EventRefresher {
|
public interface EventsRefresher {
|
||||||
|
|
||||||
void fillEvents();
|
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;
|
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||||
|
|
||||||
public interface RegattaDisplayer {
|
public interface RegattasDisplayer {
|
||||||
void fillRegattas(List<RegattaDTO> result);
|
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.google.gwt.user.client.ui.VerticalPanel;
|
||||||
import com.sap.sailing.domain.common.DataImportProgress;
|
import com.sap.sailing.domain.common.DataImportProgress;
|
||||||
import com.sap.sailing.domain.common.MasterDataImportObjectCreationCount;
|
import com.sap.sailing.domain.common.MasterDataImportObjectCreationCount;
|
||||||
import com.sap.sailing.gwt.ui.client.EventRefresher;
|
import com.sap.sailing.gwt.ui.client.EventsRefresher;
|
||||||
import com.sap.sailing.gwt.ui.client.LeaderboardGroupRefresher;
|
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.RegattaRefresher;
|
||||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
@@ -49,20 +50,22 @@ public class MasterDataImportPanel extends VerticalPanel {
|
|||||||
private SailingServiceAsync sailingService;
|
private SailingServiceAsync sailingService;
|
||||||
private CheckBox overrideSwitch;
|
private CheckBox overrideSwitch;
|
||||||
private final RegattaRefresher regattaRefresher;
|
private final RegattaRefresher regattaRefresher;
|
||||||
private final EventRefresher eventRefresher;
|
private final EventsRefresher eventRefresher;
|
||||||
private final LeaderboardGroupRefresher leaderboardGroupRefresher;
|
private final LeaderboardsRefresher leaderboardsRefresher;
|
||||||
|
private final LeaderboardGroupsRefresher leaderboardGroupsRefresher;
|
||||||
private CheckBox compressSwitch;
|
private CheckBox compressSwitch;
|
||||||
private CheckBox exportWindSwitch;
|
private CheckBox exportWindSwitch;
|
||||||
private TextBox filterBox;
|
private TextBox filterBox;
|
||||||
|
|
||||||
public MasterDataImportPanel(StringMessages stringMessages, SailingServiceAsync sailingService,
|
public MasterDataImportPanel(StringMessages stringMessages, SailingServiceAsync sailingService,
|
||||||
RegattaRefresher regattaRefresher, EventRefresher eventRefresher,
|
RegattaRefresher regattaRefresher, EventsRefresher eventsRefresher, LeaderboardsRefresher leaderboardsRefresher,
|
||||||
LeaderboardGroupRefresher leaderboardGroupRefresher) {
|
LeaderboardGroupsRefresher leaderboardGroupsRefresher) {
|
||||||
this.sailingService = sailingService;
|
this.sailingService = sailingService;
|
||||||
this.stringMessages = stringMessages;
|
this.stringMessages = stringMessages;
|
||||||
this.regattaRefresher = regattaRefresher;
|
this.regattaRefresher = regattaRefresher;
|
||||||
this.eventRefresher = eventRefresher;
|
this.eventRefresher = eventsRefresher;
|
||||||
this.leaderboardGroupRefresher = leaderboardGroupRefresher;
|
this.leaderboardsRefresher = leaderboardsRefresher;
|
||||||
|
this.leaderboardGroupsRefresher = leaderboardGroupsRefresher;
|
||||||
|
|
||||||
HorizontalPanel serverAddressPanel = new HorizontalPanel();
|
HorizontalPanel serverAddressPanel = new HorizontalPanel();
|
||||||
serverAddressPanel.add(new Label(stringMessages.importRemoteHost()));
|
serverAddressPanel.add(new Label(stringMessages.importRemoteHost()));
|
||||||
@@ -205,7 +208,10 @@ public class MasterDataImportPanel extends VerticalPanel {
|
|||||||
eventRefresher.fillEvents();
|
eventRefresher.fillEvents();
|
||||||
}
|
}
|
||||||
if (leaderboardGroupsCreated > 0) {
|
if (leaderboardGroupsCreated > 0) {
|
||||||
leaderboardGroupRefresher.fillLeaderboardGroups();
|
leaderboardGroupsRefresher.fillLeaderboardGroups();
|
||||||
|
}
|
||||||
|
if (leaderboardsCreated > 0) {
|
||||||
|
leaderboardsRefresher.fillLeaderboards();
|
||||||
}
|
}
|
||||||
Set<String> overwrittenRegattas = creationCount.getOverwrittenRegattaNames();
|
Set<String> overwrittenRegattas = creationCount.getOverwrittenRegattaNames();
|
||||||
showSuccessAlert(leaderboardsCreated, leaderboardGroupsCreated, eventsCreated, regattasCreated,
|
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.rpc.ServiceDefTarget;
|
||||||
import com.google.gwt.user.client.ui.RootLayoutPanel;
|
import com.google.gwt.user.client.ui.RootLayoutPanel;
|
||||||
import com.sap.sailing.gwt.ui.client.AbstractEntryPoint;
|
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.RegattaRefresher;
|
||||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
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 {
|
public class PolarSheetsEntryPoint extends AbstractEntryPoint implements RegattaRefresher {
|
||||||
|
|
||||||
private Set<RegattaDisplayer> regattaDisplayers;
|
private Set<RegattasDisplayer> regattaDisplayers;
|
||||||
|
|
||||||
private final SailingServiceAsync sailingService = GWT.create(SailingService.class);
|
private final SailingServiceAsync sailingService = GWT.create(SailingService.class);
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ public class PolarSheetsEntryPoint extends AbstractEntryPoint implements Regatta
|
|||||||
|
|
||||||
registerASyncService((ServiceDefTarget) sailingService, RemoteServiceMappingConstants.sailingServiceRemotePath);
|
registerASyncService((ServiceDefTarget) sailingService, RemoteServiceMappingConstants.sailingServiceRemotePath);
|
||||||
|
|
||||||
regattaDisplayers = new HashSet<RegattaDisplayer>();
|
regattaDisplayers = new HashSet<RegattasDisplayer>();
|
||||||
createUI();
|
createUI();
|
||||||
fillRegattas();
|
fillRegattas();
|
||||||
}
|
}
|
||||||
@@ -46,7 +46,7 @@ public class PolarSheetsEntryPoint extends AbstractEntryPoint implements Regatta
|
|||||||
sailingService.getRegattas(new AsyncCallback<List<RegattaDTO>>() {
|
sailingService.getRegattas(new AsyncCallback<List<RegattaDTO>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<RegattaDTO> result) {
|
public void onSuccess(List<RegattaDTO> result) {
|
||||||
for (RegattaDisplayer regattaDisplayer : regattaDisplayers) {
|
for (RegattasDisplayer regattaDisplayer : regattaDisplayers) {
|
||||||
regattaDisplayer.fillRegattas(result);
|
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.ErrorReporter;
|
||||||
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||||
import com.sap.sailing.gwt.ui.client.RaceSelectionModel;
|
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.SailingServiceAsync;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
import com.sap.sailing.gwt.ui.client.shared.components.Component;
|
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
|
* @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";
|
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.RaceSelectionProvider;
|
||||||
import com.sap.sailing.gwt.ui.client.RaceTimePanel;
|
import com.sap.sailing.gwt.ui.client.RaceTimePanel;
|
||||||
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider;
|
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.SailingServiceAsync;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
import com.sap.sailing.gwt.ui.client.media.MediaSelector;
|
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)
|
* @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 SailingServiceAsync sailingService;
|
||||||
private final MediaServiceAsync mediaService;
|
private final MediaServiceAsync mediaService;
|
||||||
private final UserDTO user;
|
private final UserDTO user;
|
||||||
|
|||||||
Reference in new issue
Block a user