mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-09 20:41:10 +00:00
Add delete button to course layout feature of RaceLog Tracking
This commit is contained in:
1 parent
f1d31385b0
commit
3b19a22de4
5 files changed
+55
-1
No files matched your search
+1
@@ -103,6 +103,7 @@ public abstract class CourseManagementWidget implements IsWidget {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
waypoints.getTable().addColumn(waypointsActionColumn);
|
||||
|
||||
waypoints.getSelectionModel().addSelectionChangeHandler(new Handler() {
|
||||
|
||||
+25
-1
@@ -1,5 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.gwt.cell.client.FieldUpdater;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
@@ -47,7 +49,29 @@ public class RaceLogTrackingCourseDefinitionDialog extends RaceLogTrackingDialog
|
||||
});
|
||||
marksBtnsPanel.add(addMark);
|
||||
|
||||
|
||||
Button removeMark = new Button(stringMessages.remove(stringMessages.mark()));
|
||||
removeMark.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
Set<MarkDTO> marksToRemove = marks.getSelectionModel().getSelectedSet();
|
||||
|
||||
for (MarkDTO markToRemove : marksToRemove) {
|
||||
sailingService.revokeMarkDefinitionEventInRaceLog(leaderboardName, raceColumnName, fleetName, markToRemove, new AsyncCallback<Void>() {
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
refresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
marksBtnsPanel.add(removeMark);
|
||||
|
||||
Button cancel = new Button(stringMessages.cancel());
|
||||
cancel.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
|
||||
+3
@@ -616,4 +616,7 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS
|
||||
void setTrackingTimes(RaceLogSetTrackingTimesDTO dto);
|
||||
|
||||
Pair<TimePoint, TimePoint> getTrackingTimes(String leaderboardName, String raceColumnName, String fleetName);
|
||||
|
||||
void revokeMarkDefinitionEventInRaceLog(String leaderboardName, String raceColumnName, String fleetName,
|
||||
MarkDTO markDTO);
|
||||
}
|
||||
+3
@@ -719,4 +719,7 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan
|
||||
|
||||
void getTrackingTimes(String leaderboardName, String raceColumnName, String fleetName,
|
||||
AsyncCallback<Pair<TimePoint, TimePoint>> callback);
|
||||
|
||||
void revokeMarkDefinitionEventInRaceLog(String leaderboardName, String raceColumnName, String fleetName,
|
||||
MarkDTO markDTO, AsyncCallback<Void> callback);
|
||||
}
|
||||
+23
@@ -79,6 +79,7 @@ import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.FlagPoleSta
|
||||
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.gate.ReadonlyGateStartRacingProcedure;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.rrs26.ReadonlyRRS26RacingProcedure;
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDefineMarkEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.analyzing.impl.DefinedMarkFinder;
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.analyzing.impl.RaceLogOpenEndedDeviceMappingCloser;
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.analyzing.impl.RaceLogTrackingStateAnalyzer;
|
||||
@@ -4994,6 +4995,28 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
raceLog.add(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void revokeMarkDefinitionEventInRaceLog(String leaderboardName, String raceColumnName, String fleetName, MarkDTO markDTO) {
|
||||
RaceLog raceLog = getRaceLog(leaderboardName, raceColumnName, fleetName);
|
||||
|
||||
final List<RaceLogEvent> raceLogDeviceMarkMappingEvents = new AllEventsOfTypeFinder<>(raceLog, /* only unrevoked */ true, RaceLogDefineMarkEvent.class).analyze();
|
||||
|
||||
RaceLogEvent eventToRevoke = null;
|
||||
for (RaceLogEvent event : raceLogDeviceMarkMappingEvents) {
|
||||
RaceLogDefineMarkEvent defineMarkEvent = (RaceLogDefineMarkEvent) event;
|
||||
if (defineMarkEvent.getMark().getId().toString().equals(markDTO.getIdAsString())){
|
||||
eventToRevoke = event;
|
||||
}
|
||||
}
|
||||
|
||||
if (eventToRevoke != null){
|
||||
RaceLogEvent event = RaceLogEventFactory.INSTANCE.createRevokeEvent(getService().getServerAuthor(), raceLog.getCurrentPassId(), eventToRevoke, "Revoked by AdminConsole (RaceLogTracking)");
|
||||
raceLog.add(event);
|
||||
} else {
|
||||
logger.warning("Could not revoke event for mark "+markDTO.getIdAsString()+". Mark not found in RaceLog.");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<MarkDTO> getMarksInRaceLog(String leaderboardName, String raceColumnName, String fleetName) {
|
||||
RaceLog raceLog = getRaceLog(leaderboardName, raceColumnName, fleetName);
|
||||
|
||||
Reference in new issue
Block a user