Added an indicator in the swisstiming management console for trackable races if there is a course or a starlist available

This commit is contained in:
fmittag committed 2013-09-11 20:58:43 +02:00
1 parent b098280f03
commit ac1cfd6c97
5 files changed
+40 -15

No files matched your search

@@ -7,11 +7,15 @@ public class RaceRecord {
private String raceID;
private String description;
private Date startTime;
private boolean hasCourse;
private boolean hasStartlist;
public RaceRecord(String raceID, String description, Date startTime) {
public RaceRecord(String raceID, String description, Date startTime, boolean hasCourse, boolean hasStartlist) {
this.raceID = raceID;
this.description = description;
this.startTime = startTime;
this.hasCourse = hasCourse;
this.hasStartlist = hasStartlist;
}
public String getRaceID() {
@@ -26,4 +30,11 @@ public class RaceRecord {
return startTime;
}
public boolean hasCourse() {
return hasCourse;
}
public boolean hasStartlist() {
return hasStartlist;
}
}
@@ -46,14 +46,9 @@ import com.sap.sailing.gwt.ui.shared.SwissTimingConfigurationDTO;
import com.sap.sailing.gwt.ui.shared.SwissTimingRaceRecordDTO;
/**
* Allows the user to start and stop tracking of events, regattas and races using the TracTrac connector. In particular,
* Allows the user to start and stop tracking of races using the SwissTiming connector. In particular,
* previously configured connections can be retrieved from a drop-down list which then pre-populates all connection
* parameters. The user can also choose to enter connection information manually. Using a "hierarchical" entry system
* comparable to that of, e.g., the Eclipse CVS connection setup wizard, components entered will be used to
* automatically assemble the full URL which can still be overwritten manually. There is a propagation order across the
* fields. Hostname propagates to JSON URL, Live URI and Stored URI. Port Live Data propagates to Port Stored Data,
* incremented by one. The ports propagate to Live URI and Stored URI, respectively. The event name propagates to the
* JSON URL.
* parameters. The user can also choose to enter connection information manually.
*
* @author Axel Uhl (D043530)
*
@@ -166,7 +161,16 @@ public class SwissTimingEventManagementPanel extends AbstractEventManagementPane
}
};
TextColumn<SwissTimingRaceRecordDTO> raceStartTrackingColumn = new TextColumn<SwissTimingRaceRecordDTO>() {
TextColumn<SwissTimingRaceRecordDTO> raceStateColumn = new TextColumn<SwissTimingRaceRecordDTO>() {
@Override
public String getValue(SwissTimingRaceRecordDTO object) {
String result = object.hasCourse ? "C" : "";
result += object.hasStartlist ? "S" : "";
return result;
}
};
TextColumn<SwissTimingRaceRecordDTO> raceStartTimeColumn = new TextColumn<SwissTimingRaceRecordDTO>() {
@Override
public String getValue(SwissTimingRaceRecordDTO object) {
return object.raceStartTime==null?"":dateFormatter.render(object.raceStartTime) + " " + timeFormatter.render(object.raceStartTime);
@@ -228,14 +232,15 @@ public class SwissTimingEventManagementPanel extends AbstractEventManagementPane
trackPanel.setStyleName("paddedPanel");
raceNameColumn.setSortable(true);
raceStartTrackingColumn.setSortable(true);
raceStartTimeColumn.setSortable(true);
AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
raceTable = new CellTable<SwissTimingRaceRecordDTO>(/* pageSize */ 10000, tableRes);
raceTable.addColumn(raceNameColumn, stringConstants.name());
raceTable.addColumn(raceDescriptionColumn, stringConstants.description());
raceTable.addColumn(boatClassColumn, stringConstants.boatClass());
raceTable.addColumn(raceStartTrackingColumn, stringConstants.raceStartTimeColumn());
raceTable.addColumn(raceStateColumn, stringConstants.status());
raceTable.addColumn(raceStartTimeColumn, stringConstants.startTime());
raceTable.setWidth("300px");
raceTable.setSelectionModel(new MultiSelectionModel<SwissTimingRaceRecordDTO>() {});
@@ -244,7 +249,7 @@ public class SwissTimingEventManagementPanel extends AbstractEventManagementPane
raceList = new ListDataProvider<SwissTimingRaceRecordDTO>();
raceList.addDataDisplay(raceTable);
Handler columnSortHandler = getRaceTableColumnSortHandler(raceList.getList(), raceNameColumn, raceStartTrackingColumn);
Handler columnSortHandler = getRaceTableColumnSortHandler(raceList.getList(), raceNameColumn, raceStartTimeColumn);
raceTable.addColumnSortHandler(columnSortHandler);
Label lblTrackSettings = new Label(stringConstants.trackSettings());
@@ -2028,6 +2028,8 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
BoatClass boatClass = com.sap.sailing.domain.swisstimingadapter.DomainFactory.INSTANCE.getRaceTypeFromRaceID(rr.getRaceID()).getBoatClass();
swissTimingRaceRecordDTO.boatClass = boatClass != null ? boatClass.getName() : null;
swissTimingRaceRecordDTO.discipline = rr.getRaceID().length() >= 3 ? rr.getRaceID().substring(2, 3) : null;
swissTimingRaceRecordDTO.hasCourse = rr.hasCourse();
swissTimingRaceRecordDTO.hasStartlist = rr.hasStartlist();
result.add(swissTimingRaceRecordDTO);
}
return result;
@@ -13,6 +13,9 @@ public class SwissTimingRaceRecordDTO implements IsSerializable {
public String boatClass;
public String discipline;
public boolean hasCourse;
public boolean hasStartlist;
public SwissTimingRaceRecordDTO() {}
public SwissTimingRaceRecordDTO(String id, String description, Date raceStartTime) {
@@ -773,9 +773,13 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen
SailMasterConnector swissTimingConnector = swissTimingFactory.getOrCreateSailMasterConnector(hostname, port,
swissTimingAdapterPersistence, canSendRequests);
for (Race race : swissTimingConnector.getRaces()) {
TimePoint startTime = swissTimingConnector.getStartTime(race.getRaceID());
result.add(new com.sap.sailing.domain.swisstimingadapter.RaceRecord(race.getRaceID(),
race.getDescription(), startTime == null ? null : startTime.asDate()));
String raceID = race.getRaceID();
TimePoint startTime = swissTimingConnector.getStartTime(raceID);
boolean hasCourse = swissTimingConnector.getCourse(raceID) != null;
boolean hasStartlist = swissTimingConnector.getStartList(raceID) != null;
result.add(new com.sap.sailing.domain.swisstimingadapter.RaceRecord(raceID,
race.getDescription(), startTime == null ? null : startTime.asDate(),
hasCourse, hasStartlist));
}
return result;
}