mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-14 22:43:57 +00:00
Add toggle button to Start/StopTracking Dialog
This commit is contained in:
1 parent
6e21007474
commit
fab845dd89
3 files changed
+76
-7
No files matched your search
+3
@@ -69,6 +69,9 @@ interface AdminConsoleResources extends ClientBundle {
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/start_racelog_tracking.png")
|
||||
ImageResource startRaceLogTracking();
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/stop_racelog_tracking.png")
|
||||
ImageResource stopRaceLogTracking();
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/competitor_registrations.png")
|
||||
ImageResource competitorRegistrations();
|
||||
|
||||
+73
-7
@@ -1,11 +1,15 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.github.gwtbootstrap.datepicker.client.ui.DateBox;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.i18n.client.DateTimeFormat;
|
||||
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.Button;
|
||||
import com.google.gwt.user.client.ui.CaptionPanel;
|
||||
import com.google.gwt.user.client.ui.Grid;
|
||||
import com.google.gwt.user.client.ui.HasVerticalAlignment;
|
||||
@@ -14,6 +18,7 @@ import com.google.gwt.user.client.ui.Image;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.PushButton;
|
||||
import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.google.gwt.user.client.ui.ToggleButton;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.client.DataEntryDialogWithBootstrap;
|
||||
@@ -46,6 +51,7 @@ public class SetTrackingTimesDialog extends DataEntryDialogWithBootstrap<RaceLog
|
||||
|
||||
private BetterDateTimeBox startTimeBox;
|
||||
private BetterDateTimeBox endTimeBox;
|
||||
private ToggleButton startStopButton;
|
||||
private TextBox authorNameBox;
|
||||
private com.sap.sse.gwt.client.controls.IntegerBox authorPriorityBox;
|
||||
|
||||
@@ -92,24 +98,51 @@ public class SetTrackingTimesDialog extends DataEntryDialogWithBootstrap<RaceLog
|
||||
private void updateDateTimeLabelAndTimeBoxFromDate(final TimePoint timePoint, final Label label, final BetterDateTimeBox dateTimeBox) {
|
||||
if (timePoint == null) {
|
||||
label.setText(stringMessages.notAvailable());
|
||||
dateTimeBox.setValue(null);
|
||||
setupStartStopButton(/*startTimeSet*/ false);
|
||||
} else {
|
||||
label.setText(dateTimeFormat.format(timePoint == null ? null : timePoint.asDate()));
|
||||
dateTimeBox.setValue(timePoint==null ? null : timePoint.asDate());
|
||||
label.setText(dateTimeFormat.format(timePoint.asDate()));
|
||||
dateTimeBox.setValue(timePoint.asDate());
|
||||
setupStartStopButton(/*startTimeSet*/ true);
|
||||
}
|
||||
}
|
||||
|
||||
private void setupStartStopButton(boolean startTimeSet) {
|
||||
startStopButton.setDown(!startTimeSet);
|
||||
}
|
||||
|
||||
private Widget createInputPanel() {
|
||||
Grid content = new Grid(4, 2);
|
||||
Grid content = new Grid(4, 3);
|
||||
|
||||
Button startNow = new Button(stringMessages.now());
|
||||
startNow.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
startTimeBox.setValue(new Date());
|
||||
}
|
||||
});
|
||||
Button endNow = new Button(stringMessages.now());
|
||||
endNow.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
endTimeBox.setValue(new Date());
|
||||
}
|
||||
});
|
||||
|
||||
startTimeBox = createDateTimeBox(null);
|
||||
startTimeBox.setFormat("dd/mm/yyyy hh:ii:ss");
|
||||
content.setWidget(0, 0, createLabel(stringMessages.startOfTracking()));
|
||||
content.setWidget(0, 1, startTimeBox);
|
||||
|
||||
content.setWidget(0, 2, startNow);
|
||||
|
||||
endTimeBox = createDateTimeBox(null);
|
||||
endTimeBox.setFormat("dd/mm/yyyy hh:ii:ss");
|
||||
content.setWidget(1, 0, createLabel(stringMessages.endOfTracking()));
|
||||
content.setWidget(1, 1, endTimeBox);
|
||||
|
||||
content.setWidget(1, 2, endNow);
|
||||
|
||||
authorNameBox = createTextBox("Shore");
|
||||
content.setWidget(2, 0, createLabel(stringMessages.authorName()));
|
||||
content.setWidget(2, 1, authorNameBox);
|
||||
@@ -142,6 +175,35 @@ public class SetTrackingTimesDialog extends DataEntryDialogWithBootstrap<RaceLog
|
||||
}
|
||||
});
|
||||
currentPanel.add(refreshButton);
|
||||
|
||||
Image startImage = new Image(resources.startRaceLogTracking());
|
||||
Image stopImage = new Image(resources.stopRaceLogTracking());
|
||||
|
||||
startStopButton = new ToggleButton(startImage, stopImage, new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
RaceLogSetTrackingTimesDTO trackingTimesDTO;
|
||||
if (startStopButton.isDown()){
|
||||
trackingTimesDTO = generateRaceLogSetTrackingTimesDTOWith(new Date(), null);
|
||||
} else {
|
||||
trackingTimesDTO = generateRaceLogSetTrackingTimesDTOWith(startTimeBox.getValue(), new Date());
|
||||
}
|
||||
|
||||
service.setTrackingTimes(trackingTimesDTO, new AsyncCallback<Void>(){
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error while setting tracking times: " + caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
refreshTimes();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
currentPanel.add(startStopButton);
|
||||
|
||||
current.add(currentPanel);
|
||||
return current;
|
||||
@@ -149,6 +211,10 @@ public class SetTrackingTimesDialog extends DataEntryDialogWithBootstrap<RaceLog
|
||||
|
||||
@Override
|
||||
protected RaceLogSetTrackingTimesDTO getResult() {
|
||||
return generateRaceLogSetTrackingTimesDTOWith(startTimeBox.getValue(), endTimeBox.getValue());
|
||||
}
|
||||
|
||||
private RaceLogSetTrackingTimesDTO generateRaceLogSetTrackingTimesDTOWith(Date startTime, Date endTime) {
|
||||
RaceLogSetTrackingTimesDTO dto = new RaceLogSetTrackingTimesDTO();
|
||||
dto.leaderboardName = leaderboardName;
|
||||
dto.raceColumnName = raceColumnName;
|
||||
@@ -156,8 +222,8 @@ public class SetTrackingTimesDialog extends DataEntryDialogWithBootstrap<RaceLog
|
||||
dto.authorName = authorNameBox.getValue();
|
||||
dto.authorPriority = authorPriorityBox.getValue();
|
||||
dto.logicalTimePoint = MillisecondsTimePoint.now();
|
||||
dto.newStartOfTracking = startTimeBox.getValue() == null ? null : new MillisecondsTimePoint(startTimeBox.getValue());
|
||||
dto.newEndOfTracking = endTimeBox.getValue() == null ? null : new MillisecondsTimePoint(endTimeBox.getValue());
|
||||
dto.newStartOfTracking = startTime == null ? null : new MillisecondsTimePoint(startTime);
|
||||
dto.newEndOfTracking = endTime == null ? null : new MillisecondsTimePoint(endTime);
|
||||
dto.currentStartOfTracking = currentStart;
|
||||
dto.currentEndOfTracking = currentEnd;
|
||||
return dto;
|
||||
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 488 B |
Reference in new issue
Block a user