mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-16 17:21:00 +00:00
Show message when selection of a trackedrace is changed that is already linked to a leaderboard.
This commit is contained in:
1 parent
32dfb22474
commit
126b53235f
3 files changed
+71
-5
No files matched your search
+34
-5
@@ -33,6 +33,7 @@ import com.sap.sailing.domain.common.dto.FleetDTO;
|
||||
import com.sap.sailing.domain.common.dto.NamedDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.AbstractLeaderboardConfigPanel.RaceColumnDTOAndFleetDTOWithNameBasedEquality;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.RaceColumnInLeaderboardDialog.RaceColumnDescriptor;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher;
|
||||
@@ -235,20 +236,48 @@ public abstract class AbstractLeaderboardConfigPanel extends FormPanel implement
|
||||
// if no leaderboard column is selected, ignore the race selection change
|
||||
RaceColumnDTOAndFleetDTOWithNameBasedEquality selectedRaceColumnAndFleetName = getSelectedRaceColumnWithFleet();
|
||||
if (selectedRaceColumnAndFleetName != null) {
|
||||
RaceDTO oldRace = selectedRaceColumnAndFleetName.getA().getRace(selectedRaceColumnAndFleetName.getB());
|
||||
if (selectedRaces.isEmpty()) {
|
||||
if (selectedRaceColumnAndFleetName.getA()
|
||||
.getRaceIdentifier(selectedRaceColumnAndFleetName.getB()) != null) {
|
||||
if (isRaceColumnAlreadyLinkedToAnotherTrackedRace(selectedRaceColumnAndFleetName)) {
|
||||
unlinkRaceColumnFromTrackedRace(selectedRaceColumnAndFleetName.getA().getRaceColumnName(),
|
||||
selectedRaceColumnAndFleetName.getB());
|
||||
}
|
||||
} else {
|
||||
linkTrackedRaceToSelectedRaceColumn(selectedRaceColumnAndFleetName.getA(),
|
||||
selectedRaceColumnAndFleetName.getB(),
|
||||
selectedRaces.iterator().next().getRaceIdentifier());
|
||||
if(isRaceColumnAlreadyLinkedToAnotherTrackedRace(selectedRaceColumnAndFleetName)){
|
||||
if(Window.confirm("Do you really want to change the link?")){
|
||||
linkTrackedRaceToSelectedRaceColumn(selectedRaceColumnAndFleetName.getA(),
|
||||
selectedRaceColumnAndFleetName.getB(),
|
||||
selectedRaces.iterator().next().getRaceIdentifier());
|
||||
}
|
||||
else{
|
||||
trackedRacesListComposite.removeTrackedRaceChangeListener(AbstractLeaderboardConfigPanel.this);
|
||||
refreshableTrackedRaceSelectionModel.setSelected(selectedRaceColumnAndFleetName.getA().getRace(selectedRaceColumnAndFleetName.getB()),true);
|
||||
trackedRacesListComposite.addTrackedRaceChangeListener(AbstractLeaderboardConfigPanel.this);
|
||||
}
|
||||
}
|
||||
else{
|
||||
linkTrackedRaceToSelectedRaceColumn(selectedRaceColumnAndFleetName.getA(),
|
||||
selectedRaceColumnAndFleetName.getB(),
|
||||
selectedRaces.iterator().next().getRaceIdentifier());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isRaceColumnAlreadyLinkedToAnotherTrackedRace(
|
||||
RaceColumnDTOAndFleetDTOWithNameBasedEquality selectedRaceColumnAndFleetName) {
|
||||
if(selectedRaceColumnAndFleetName.getA()
|
||||
.getRaceIdentifier(selectedRaceColumnAndFleetName.getB()) != null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
trackedRaceListHandlerRegistration = refreshableTrackedRaceSelectionModel.addSelectionChangeHandler(trackedRaceListHandler);
|
||||
|
||||
Button reloadAllRaceLogs = new Button(stringMessages.reloadAllRaceLogs());
|
||||
|
||||
+29
@@ -29,6 +29,7 @@ import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.ListBox;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.google.gwt.view.client.CellPreviewEvent;
|
||||
import com.google.gwt.view.client.ListDataProvider;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
|
||||
@@ -58,6 +59,10 @@ import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.shared.perspective.ComponentContext;
|
||||
|
||||
/**
|
||||
* @author D069485
|
||||
*
|
||||
*/
|
||||
public abstract class AbstractTrackedRacesListComposite extends AbstractCompositeComponent<TrackedRacesSettings> implements
|
||||
RegattasDisplayer {
|
||||
|
||||
@@ -76,6 +81,8 @@ public abstract class AbstractTrackedRacesListComposite extends AbstractComposit
|
||||
private Iterable<RaceDTO> allRaces;
|
||||
|
||||
private Label noTrackedRacesLabel;
|
||||
|
||||
private RaceDTO oldSelectedRace;
|
||||
|
||||
protected final SailingServiceAsync sailingService;
|
||||
protected final ErrorReporter errorReporter;
|
||||
@@ -127,6 +134,7 @@ public abstract class AbstractTrackedRacesListComposite extends AbstractComposit
|
||||
}
|
||||
|
||||
protected void createUI() {
|
||||
|
||||
AdminConsoleTableResources tableResources = GWT.create(AdminConsoleTableResources.class);
|
||||
raceList = new ListDataProvider<>();
|
||||
settings = new TrackedRacesSettings();
|
||||
@@ -241,6 +249,16 @@ public abstract class AbstractTrackedRacesListComposite extends AbstractComposit
|
||||
}
|
||||
});
|
||||
trackedRacesButtonPanel.add(btnRefresh);
|
||||
|
||||
raceTable.addCellPreviewHandler(new CellPreviewEvent.Handler<RaceDTO>(){
|
||||
@Override
|
||||
public void onCellPreview(CellPreviewEvent<RaceDTO> event){
|
||||
if ("click".equals(event.getNativeEvent().getType())) {
|
||||
oldSelectedRace = getSelectionModel().getSelectedSet().iterator().next();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
addControlButtons(trackedRacesButtonPanel);
|
||||
}
|
||||
|
||||
@@ -482,6 +500,7 @@ public abstract class AbstractTrackedRacesListComposite extends AbstractComposit
|
||||
public void addRaceSelectionChangeHandler(Handler handler) {
|
||||
refreshableSelectionModel.addSelectionChangeHandler(handler);
|
||||
}
|
||||
|
||||
|
||||
public RaceDTO getRaceByIdentifier(RaceIdentifier raceIdentifier) {
|
||||
RaceDTO result = null;
|
||||
@@ -588,4 +607,14 @@ public abstract class AbstractTrackedRacesListComposite extends AbstractComposit
|
||||
return refreshableSelectionModel;
|
||||
}
|
||||
|
||||
public RaceDTO getOldSelectedRace() {
|
||||
return oldSelectedRace;
|
||||
}
|
||||
|
||||
public void setOldSelectedRace(RaceDTO oldSelectedRace) {
|
||||
this.oldSelectedRace = oldSelectedRace;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
+8
@@ -31,6 +31,7 @@ import com.sap.sse.gwt.client.shared.perspective.ComponentContext;
|
||||
*/
|
||||
public class TrackedRacesListComposite extends AbstractTrackedRacesListComposite {
|
||||
final Set<TrackedRaceChangedListener> raceIsTrackedRaceChangeListener;
|
||||
|
||||
private Button btnUntrack;
|
||||
private Button btnRemoveRace;
|
||||
private Button btnSetDelayToLive;
|
||||
@@ -45,6 +46,7 @@ public class TrackedRacesListComposite extends AbstractTrackedRacesListComposite
|
||||
super(parent, context, sailingService, errorReporter, regattaRefresher, stringMessages, hasMultiSelection);
|
||||
this.raceIsTrackedRaceChangeListener = new HashSet<TrackedRaceChangedListener>();
|
||||
this.actionButtonsEnabled = actionButtonsEnabled;
|
||||
|
||||
createUI();
|
||||
}
|
||||
|
||||
@@ -59,6 +61,12 @@ public class TrackedRacesListComposite extends AbstractTrackedRacesListComposite
|
||||
public void addTrackedRaceChangeListener(TrackedRaceChangedListener listener) {
|
||||
this.raceIsTrackedRaceChangeListener.add(listener);
|
||||
}
|
||||
|
||||
public void removeTrackedRaceChangeListener(TrackedRaceChangedListener listener){
|
||||
this.raceIsTrackedRaceChangeListener.remove(listener);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void stopTrackingRaces(final Iterable<RaceDTO> races) {
|
||||
final List<RegattaAndRaceIdentifier> racesToStopTracking = new ArrayList<RegattaAndRaceIdentifier>();
|
||||
|
||||
Reference in new issue
Block a user