mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-03 02:43:53 +00:00
Configured LeaderboardConfigPanel and RaceDialog. The dialog does appear
not.
This commit is contained in:
1 parent
27762bee79
commit
875f14ec4a
3 files changed
+277
-370
No files matched your search
+247
-236
@@ -24,7 +24,6 @@ import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.view.client.ListDataProvider;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent;
|
||||
import com.google.gwt.view.client.SingleSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.client.DataEntryDialog.Validator;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDAO;
|
||||
import com.sap.sailing.gwt.ui.shared.EventNameAndRaceName;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardDAO;
|
||||
@@ -35,15 +34,15 @@ import com.sap.sailing.gwt.ui.shared.Triple;
|
||||
|
||||
public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer, RaceSelectionChangeListener {
|
||||
|
||||
// AXEL: DON'T DELETE!!!
|
||||
// private static final int MAX_NUMBER_OF_DISCARDED_RESULTS = 4;
|
||||
// AXEL: DON'T DELETE!!!
|
||||
// private static final int MAX_NUMBER_OF_DISCARDED_RESULTS = 4;
|
||||
|
||||
private final TrackedEventsComposite trackedEventsComposite;
|
||||
|
||||
|
||||
private final StringConstants stringConstants;
|
||||
|
||||
|
||||
private final SailingServiceAsync sailingService;
|
||||
|
||||
|
||||
private final ListDataProvider<LeaderboardDAO> leaderboardList;
|
||||
|
||||
private final ListDataProvider<String> raceColumnList;
|
||||
@@ -59,16 +58,16 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
private final Button addColumnButton;
|
||||
|
||||
private final Button columnMoveUpButton;
|
||||
|
||||
|
||||
private final Button columnMoveDownButton;
|
||||
|
||||
private final Anchor editLeaderboardScoresLink;
|
||||
|
||||
private final CaptionPanel selectedLeaderBoardPanel;
|
||||
private final CaptionPanel trackedRacesCaptionPanel;
|
||||
|
||||
|
||||
final SingleSelectionModel<String> raceTableSelectionModel;
|
||||
|
||||
|
||||
public LeaderboardConfigPanel(SailingServiceAsync sailingService, AdminConsole adminConsole,
|
||||
final ErrorReporter errorReporter, StringConstants theStringConstants) {
|
||||
this.stringConstants = theStringConstants;
|
||||
@@ -97,7 +96,7 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
@Override
|
||||
public String getValue(LeaderboardDAO leaderboard) {
|
||||
String result = "";
|
||||
if(leaderboard.discardThresholds != null) {
|
||||
if (leaderboard.discardThresholds != null) {
|
||||
for (int discardThreshold : leaderboard.discardThresholds) {
|
||||
result += discardThreshold + " ";
|
||||
}
|
||||
@@ -106,25 +105,28 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
};
|
||||
|
||||
ImagesBarColumn<LeaderboardDAO, LeaderboardConfigImagesBarCell> leaderboardActionColumn = new ImagesBarColumn<LeaderboardDAO, LeaderboardConfigImagesBarCell>(new LeaderboardConfigImagesBarCell());
|
||||
ImagesBarColumn<LeaderboardDAO, LeaderboardConfigImagesBarCell> leaderboardActionColumn = new ImagesBarColumn<LeaderboardDAO, LeaderboardConfigImagesBarCell>(
|
||||
new LeaderboardConfigImagesBarCell());
|
||||
|
||||
leaderboardActionColumn.setFieldUpdater(new FieldUpdater<LeaderboardDAO, String>() {
|
||||
@Override
|
||||
public void update(int index, LeaderboardDAO object, String value) {
|
||||
if("ACTION_REMOVE".equals(value)) {
|
||||
if(Window.confirm("Do you really want to remove the leaderboard: '" + object.name + "' ?")) {
|
||||
if ("ACTION_REMOVE".equals(value)) {
|
||||
if (Window.confirm("Do you really want to remove the leaderboard: '" + object.name + "' ?")) {
|
||||
removeLeaderboard(object);
|
||||
}
|
||||
} else if("ACTION_OPEN_BROWSER".equals(value)) {
|
||||
Window.open("/Leaderboard.html?name="+object.name, "Leaderboard", null);
|
||||
} else if("ACTION_EDIT".equals(value)) {
|
||||
} else if ("ACTION_OPEN_BROWSER".equals(value)) {
|
||||
Window.open("/Leaderboard.html?name=" + object.name, "Leaderboard", null);
|
||||
} else if ("ACTION_EDIT".equals(value)) {
|
||||
|
||||
final String oldLeaderboardName = object.name;
|
||||
|
||||
LeaderboardEditDialog dialog = new LeaderboardEditDialog(object, stringConstants,
|
||||
errorReporter, new AsyncCallback<LeaderboardDAO>() {
|
||||
|
||||
LeaderboardEditDialog dialog = new LeaderboardEditDialog(object, stringConstants, errorReporter,
|
||||
new AsyncCallback<LeaderboardDAO>() {
|
||||
@Override
|
||||
public void onFailure(Throwable arg0) {}
|
||||
public void onFailure(Throwable arg0) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(LeaderboardDAO result) {
|
||||
updateLeaderboard(oldLeaderboardName, result);
|
||||
@@ -134,9 +136,9 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
|
||||
leaderboardTable = new CellTable<LeaderboardDAO>(/* pageSize */ 200, tableRes);
|
||||
leaderboardTable = new CellTable<LeaderboardDAO>(/* pageSize */200, tableRes);
|
||||
leaderboardTable.addColumn(leaderboardNameColumn, "Name");
|
||||
leaderboardTable.addColumn(discardingOptionsColumn, "Discarding");
|
||||
leaderboardTable.addColumn(leaderboardActionColumn, "Actions");
|
||||
@@ -149,16 +151,16 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
selectedLeaderboard = tableSelectionModel.getSelectedObject();
|
||||
leaderboardSelectionChanged();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
leaderboardList.addDataDisplay(leaderboardTable);
|
||||
|
||||
|
||||
mainPanel.add(leaderboardTable);
|
||||
|
||||
HorizontalPanel leaderboardButtonPanel = new HorizontalPanel();
|
||||
leaderboardButtonPanel.setSpacing(5);
|
||||
mainPanel.add(leaderboardButtonPanel);
|
||||
|
||||
|
||||
Button btnNew = new Button("Create Leaderboard..");
|
||||
leaderboardButtonPanel.add(btnNew);
|
||||
btnNew.addClickHandler(new ClickHandler() {
|
||||
@@ -168,8 +170,8 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
});
|
||||
|
||||
mainPanel.add(new Grid(1,1));
|
||||
|
||||
mainPanel.add(new Grid(1, 1));
|
||||
|
||||
// caption panels for the selected leaderboard and tracked races
|
||||
HorizontalPanel splitPanel = new HorizontalPanel();
|
||||
mainPanel.add(splitPanel);
|
||||
@@ -191,31 +193,27 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
trackedRacesCaptionPanel.setContentWidget(trackedRacesPanel);
|
||||
trackedRacesCaptionPanel.setStyleName("bold");
|
||||
|
||||
|
||||
trackedEventsComposite = new TrackedEventsComposite(sailingService, errorReporter, adminConsole,
|
||||
stringConstants, /* multiselection */ false);
|
||||
stringConstants, /* multiselection */false);
|
||||
trackedRacesPanel.add(trackedEventsComposite);
|
||||
trackedEventsComposite.addRaceSelectionChangeListener(this);
|
||||
|
||||
/*
|
||||
discardThresholdLabelsForSelectedLeaderboard = new Label[MAX_NUMBER_OF_DISCARDED_RESULTS];
|
||||
discardThresholdsGrid.setWidget(0, 0, new Label(stringConstants.discarding() + ":"));
|
||||
discardThresholdsGrid.setWidget(1, 0, new Label(stringConstants.startingFromNumberOfRaces() + ":"));
|
||||
for (int i=0; i<MAX_NUMBER_OF_DISCARDED_RESULTS; i++) {
|
||||
discardThresholdsGrid.setWidget(0, i+1, new Label(""+(i+1)));
|
||||
discardThresholdLabelsForSelectedLeaderboard[i] = new Label();
|
||||
discardThresholdsGrid.setWidget(1, i+1, discardThresholdLabelsForSelectedLeaderboard[i]);
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
* discardThresholdLabelsForSelectedLeaderboard = new Label[MAX_NUMBER_OF_DISCARDED_RESULTS];
|
||||
* discardThresholdsGrid.setWidget(0, 0, new Label(stringConstants.discarding() + ":"));
|
||||
* discardThresholdsGrid.setWidget(1, 0, new Label(stringConstants.startingFromNumberOfRaces() + ":")); for (int
|
||||
* i=0; i<MAX_NUMBER_OF_DISCARDED_RESULTS; i++) { discardThresholdsGrid.setWidget(0, i+1, new Label(""+(i+1)));
|
||||
* discardThresholdLabelsForSelectedLeaderboard[i] = new Label(); discardThresholdsGrid.setWidget(1, i+1,
|
||||
* discardThresholdLabelsForSelectedLeaderboard[i]); }
|
||||
*/
|
||||
editLeaderboardScoresLink = new Anchor(stringConstants.editScores());
|
||||
editLeaderboardScoresLink.setEnabled(false);
|
||||
vPanel.add(editLeaderboardScoresLink);
|
||||
|
||||
|
||||
|
||||
HorizontalPanel hPanel = new HorizontalPanel();
|
||||
hPanel.setSpacing(5);
|
||||
vPanel.add(hPanel);
|
||||
|
||||
|
||||
Button stressTestButton = new Button(stringConstants.stressTest());
|
||||
hPanel.add(stressTestButton);
|
||||
stressTestButton.addClickHandler(new ClickHandler() {
|
||||
@@ -224,7 +222,7 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
performStressTestForSelectedLeaderboard();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// ------------ races of the selected leaderboard ----------------
|
||||
TextColumn<String> raceNameColumn = new TextColumn<String>() {
|
||||
@Override
|
||||
@@ -236,7 +234,7 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
TextColumn<String> isMedalRaceColumn = new TextColumn<String>() {
|
||||
@Override
|
||||
public String getValue(String race) {
|
||||
|
||||
|
||||
boolean isMedalRace = selectedLeaderboard.raceIsMedalRace(race);
|
||||
return isMedalRace ? "Yes" : "No";
|
||||
}
|
||||
@@ -245,32 +243,34 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
TextColumn<String> isTrackedRaceColumn = new TextColumn<String>() {
|
||||
@Override
|
||||
public String getValue(String race) {
|
||||
|
||||
|
||||
boolean isTrackedRace = selectedLeaderboard.raceIsTracked(race);
|
||||
return isTrackedRace ? "Yes" : "No";
|
||||
}
|
||||
};
|
||||
|
||||
ImagesBarColumn<String, LeaderboardRaceConfigImagesBarCell> raceActionColumn = new ImagesBarColumn<String, LeaderboardRaceConfigImagesBarCell>(new LeaderboardRaceConfigImagesBarCell());
|
||||
ImagesBarColumn<String, LeaderboardRaceConfigImagesBarCell> raceActionColumn = new ImagesBarColumn<String, LeaderboardRaceConfigImagesBarCell>(
|
||||
new LeaderboardRaceConfigImagesBarCell());
|
||||
|
||||
raceActionColumn.setFieldUpdater(new FieldUpdater<String, String>() {
|
||||
@Override
|
||||
public void update(int index, String object, String value) {
|
||||
if("ACTION_REMOVE".equals(value)) {
|
||||
if(Window.confirm("Do you really want to remove the race: '" + object + "' ?")) {
|
||||
if ("ACTION_REMOVE".equals(value)) {
|
||||
if (Window.confirm("Do you really want to remove the race: '" + object + "' ?")) {
|
||||
removeRaceColumn(object);
|
||||
}
|
||||
} else if("ACTION_EDIT".equals(value)) {
|
||||
} else if ("ACTION_EDIT".equals(value)) {
|
||||
Window.alert("Edit clicked");
|
||||
} else if("ACTION_UNLINK".equals(value)) {
|
||||
unlinkRaceColumnFromTrackedRace(object); }
|
||||
} else if ("ACTION_UNLINK".equals(value)) {
|
||||
unlinkRaceColumnFromTrackedRace(object);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Label lblRaceNamesIn = new Label(stringConstants.races());
|
||||
vPanel.add(lblRaceNamesIn);
|
||||
|
||||
raceColumnTable = new CellTable<String>(/* pageSize */ 200, tableRes);
|
||||
raceColumnTable = new CellTable<String>(/* pageSize */200, tableRes);
|
||||
raceColumnTable.addColumn(raceNameColumn, "Name");
|
||||
raceColumnTable.addColumn(isMedalRaceColumn, "Medal race");
|
||||
raceColumnTable.addColumn(isTrackedRaceColumn, "Tracked");
|
||||
@@ -283,25 +283,25 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
public void onSelectionChange(SelectionChangeEvent event) {
|
||||
leaderboardRaceColumnSelectionChanged();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
raceColumnList.addDataDisplay(raceColumnTable);
|
||||
|
||||
vPanel.add(raceColumnTable);
|
||||
|
||||
|
||||
HorizontalPanel selectedLeaderboardRaceButtonPanel = new HorizontalPanel();
|
||||
selectedLeaderboardRaceButtonPanel.setSpacing(5);
|
||||
vPanel.add(selectedLeaderboardRaceButtonPanel);
|
||||
|
||||
|
||||
addColumnButton = new Button("Add race...");
|
||||
selectedLeaderboardRaceButtonPanel.add(addColumnButton);
|
||||
addColumnButton.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
addColumnToSelectedLeaderboard();
|
||||
addRaceColumnToLeaderboard();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
columnMoveUpButton = new Button(stringConstants.columnMoveUp());
|
||||
selectedLeaderboardRaceButtonPanel.add(columnMoveUpButton);
|
||||
columnMoveUpButton.addClickHandler(new ClickHandler() {
|
||||
@@ -318,7 +318,7 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
moveSelectedRaceColumnDown();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
leaderboardSelectionChanged();
|
||||
leaderboardRaceColumnSelectionChanged();
|
||||
}
|
||||
@@ -330,16 +330,18 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
leaderboardList.getList().clear();
|
||||
leaderboardList.getList().addAll(leaderboards);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
LeaderboardConfigPanel.this.errorReporter.reportError("Error trying to obtain list of leaderboards: "+t.getMessage());
|
||||
LeaderboardConfigPanel.this.errorReporter.reportError("Error trying to obtain list of leaderboards: "
|
||||
+ t.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void performStressTestForSelectedLeaderboard() {
|
||||
if(selectedLeaderboard != null) {
|
||||
final String leaderboardName = selectedLeaderboard.name;
|
||||
if (selectedLeaderboard != null) {
|
||||
final String leaderboardName = selectedLeaderboard.name;
|
||||
sailingService.stressTestLeaderboardByName(leaderboardName, 100, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
@@ -357,73 +359,70 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
|
||||
private void unlinkRaceColumnFromTrackedRace(final String raceColumn) {
|
||||
final String selectedLeaderboardName = getSelectedLeaderboardName();
|
||||
sailingService.disconnectLeaderboardColumnFromTrackedRace(selectedLeaderboardName, raceColumn, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError("Error trying to unlink tracked race from column "+raceColumn+
|
||||
" from leaderboard "+selectedLeaderboardName+": "+t.getMessage());
|
||||
}
|
||||
sailingService.disconnectLeaderboardColumnFromTrackedRace(selectedLeaderboardName, raceColumn,
|
||||
new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError("Error trying to unlink tracked race from column " + raceColumn
|
||||
+ " from leaderboard " + selectedLeaderboardName + ": " + t.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void arg0) {
|
||||
trackedEventsComposite.clearSelection();
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onSuccess(Void arg0) {
|
||||
trackedEventsComposite.clearSelection();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void removeRaceColumn(final String raceColumn) {
|
||||
sailingService.removeLeaderboardColumn(getSelectedLeaderboardName(), raceColumn, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter
|
||||
.reportError("Error trying to remove leaderboard race column "
|
||||
+ raceColumn + " in leaderboard "
|
||||
+ getSelectedLeaderboardName()+": "+
|
||||
t.getMessage());
|
||||
errorReporter.reportError("Error trying to remove leaderboard race column " + raceColumn
|
||||
+ " in leaderboard " + getSelectedLeaderboardName() + ": " + t.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void arg0) {
|
||||
raceColumnList.getList().remove(raceColumn);
|
||||
//selectedLeaderboard.raceNamesAndMedalRaceAndTracked.remove(raceColumn);
|
||||
// selectedLeaderboard.raceNamesAndMedalRaceAndTracked.remove(raceColumn);
|
||||
selectedLeaderboard.removeRace(raceColumn);
|
||||
selectedLeaderboard.invalidateCompetitorOrdering();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void moveSelectedRaceColumnDown(){
|
||||
final String selectedRaceColumnName = raceTableSelectionModel.getSelectedObject();
|
||||
|
||||
sailingService.moveLeaderboardColumnDown(getSelectedLeaderboardName(), selectedRaceColumnName, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to move leaderboard race column "
|
||||
+ selectedRaceColumnName + " in leaderboard "
|
||||
+ getSelectedLeaderboardName() + " down: "+
|
||||
caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
int rowIndex = getRowIndexOfSelectedRaceColumn();
|
||||
if(rowIndex < raceColumnList.getList().size()-1) {
|
||||
Collections.swap(raceColumnList.getList(), rowIndex, rowIndex+1);
|
||||
selectedLeaderboard.moveRaceDown(selectedRaceColumnName);
|
||||
}
|
||||
}
|
||||
});
|
||||
private void moveSelectedRaceColumnDown() {
|
||||
final String selectedRaceColumnName = raceTableSelectionModel.getSelectedObject();
|
||||
|
||||
sailingService.moveLeaderboardColumnDown(getSelectedLeaderboardName(), selectedRaceColumnName,
|
||||
new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to move leaderboard race column "
|
||||
+ selectedRaceColumnName + " in leaderboard " + getSelectedLeaderboardName()
|
||||
+ " down: " + caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
int rowIndex = getRowIndexOfSelectedRaceColumn();
|
||||
if (rowIndex < raceColumnList.getList().size() - 1) {
|
||||
Collections.swap(raceColumnList.getList(), rowIndex, rowIndex + 1);
|
||||
selectedLeaderboard.moveRaceDown(selectedRaceColumnName);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private int getRowIndexOfSelectedRaceColumn()
|
||||
{
|
||||
private int getRowIndexOfSelectedRaceColumn() {
|
||||
final String selectedRaceColumnName = raceTableSelectionModel.getSelectedObject();
|
||||
int rowIndex = -1;
|
||||
|
||||
if(selectedRaceColumnName != null) {
|
||||
|
||||
if (selectedRaceColumnName != null) {
|
||||
int listSize = raceColumnList.getList().size();
|
||||
for(int i = 0; i < listSize; i++) {
|
||||
if(selectedRaceColumnName.equals(raceColumnList.getList().get(i))) {
|
||||
for (int i = 0; i < listSize; i++) {
|
||||
if (selectedRaceColumnName.equals(raceColumnList.getList().get(i))) {
|
||||
rowIndex = i;
|
||||
break;
|
||||
}
|
||||
@@ -431,29 +430,30 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
return rowIndex;
|
||||
}
|
||||
|
||||
private void moveSelectedRaceColumnUp(){
|
||||
final String selectedRaceColumnName = raceTableSelectionModel.getSelectedObject();
|
||||
|
||||
sailingService.moveLeaderboardColumnUp(getSelectedLeaderboardName(), selectedRaceColumnName, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to move leaderboard race column "
|
||||
+ selectedRaceColumnName + " in leaderboard "
|
||||
+ getSelectedLeaderboardName() + " up: "+
|
||||
caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
int rowIndex = getRowIndexOfSelectedRaceColumn();
|
||||
if(rowIndex > 0) {
|
||||
Collections.swap(raceColumnList.getList(), rowIndex, rowIndex-1);
|
||||
selectedLeaderboard.moveRaceUp(selectedRaceColumnName);
|
||||
}
|
||||
}
|
||||
});
|
||||
private void moveSelectedRaceColumnUp() {
|
||||
final String selectedRaceColumnName = raceTableSelectionModel.getSelectedObject();
|
||||
|
||||
sailingService.moveLeaderboardColumnUp(getSelectedLeaderboardName(), selectedRaceColumnName,
|
||||
new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to move leaderboard race column "
|
||||
+ selectedRaceColumnName + " in leaderboard " + getSelectedLeaderboardName() + " up: "
|
||||
+ caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
int rowIndex = getRowIndexOfSelectedRaceColumn();
|
||||
if (rowIndex > 0) {
|
||||
Collections.swap(raceColumnList.getList(), rowIndex, rowIndex - 1);
|
||||
selectedLeaderboard.moveRaceUp(selectedRaceColumnName);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void leaderboardRaceColumnSelectionChanged() {
|
||||
String selectedRaceColumnName = getSelectedRaceColumnName();
|
||||
if (selectedRaceColumnName != null) {
|
||||
@@ -466,17 +466,17 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
trackedEventsComposite.clearSelection();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void selectTrackedRaceInRaceTree() {
|
||||
final String selectedLeaderboardName = getSelectedLeaderboardName();
|
||||
final String selectedRaceColumnName = getSelectedRaceColumnName();
|
||||
sailingService.getEventAndRaceNameOfTrackedRaceConnectedToLeaderboardColumn(
|
||||
selectedLeaderboardName, selectedRaceColumnName, new AsyncCallback<Pair<String,String>>() {
|
||||
sailingService.getEventAndRaceNameOfTrackedRaceConnectedToLeaderboardColumn(selectedLeaderboardName,
|
||||
selectedRaceColumnName, new AsyncCallback<Pair<String, String>>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError("Error trying to determine tracked race linked to race column "+
|
||||
selectedRaceColumnName+" in leaderboard "+selectedLeaderboardName+": "+
|
||||
t.getMessage());
|
||||
errorReporter.reportError("Error trying to determine tracked race linked to race column "
|
||||
+ selectedRaceColumnName + " in leaderboard " + selectedLeaderboardName + ": "
|
||||
+ t.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -495,51 +495,51 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
|
||||
private String getSelectedRaceColumnName() {
|
||||
return raceTableSelectionModel.getSelectedObject();
|
||||
return raceTableSelectionModel.getSelectedObject();
|
||||
}
|
||||
|
||||
private void addColumnToSelectedLeaderboard() {
|
||||
private void addRaceColumnToLeaderboard() {
|
||||
final String leaderboardName = getSelectedLeaderboardName();
|
||||
final TextfieldEntryDialogWithCheckbox box = new TextfieldEntryDialogWithCheckbox(
|
||||
stringConstants.addColumnToLeaderboard(), stringConstants.pleaseEnterNameForNewRaceColumn(),
|
||||
stringConstants.ok(), stringConstants.cancel(), stringConstants.medalRace(), /* initialValue */"",
|
||||
new Validator<Pair<String, Boolean>>() {
|
||||
String raceName = getSelectedLeaderboardName();
|
||||
boolean raceIsMedalRace = false;
|
||||
if(selectedLeaderboard.getRaceList().contains(raceName)){
|
||||
raceIsMedalRace = selectedLeaderboard.raceIsMedalRace(raceName);
|
||||
}
|
||||
Pair<String, Boolean> raceDaoAndIsMedalRace = new Pair<String, Boolean>(raceName,
|
||||
raceIsMedalRace);
|
||||
final RaceDialog raceDialog = new RaceDialog(raceDaoAndIsMedalRace, stringConstants,
|
||||
new AsyncCallback<Pair<String, Boolean>>() {
|
||||
|
||||
@Override
|
||||
public String getErrorMessage(Pair<String, Boolean> valueToValidate) {
|
||||
if (valueToValidate.getA() == null || valueToValidate.getA().trim().length() == 0) {
|
||||
return stringConstants.pleaseEnterNonEmptyName();
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
public void onFailure(Throwable caught) {
|
||||
}
|
||||
}, new AsyncCallback<Pair<String, Boolean>>() {
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable t) {}
|
||||
@Override
|
||||
public void onSuccess(final Pair<String, Boolean> columnNameAndMedalRace) {
|
||||
sailingService.addColumnToLeaderboard(columnNameAndMedalRace.getA(), leaderboardName, /* medalRace */ columnNameAndMedalRace.getB(),
|
||||
public void onSuccess(final Pair<String, Boolean> result) {
|
||||
sailingService.addColumnToLeaderboard(result.getA(), leaderboardName, result.getB(),
|
||||
new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError("Error trying to add column "
|
||||
+ columnNameAndMedalRace.getA() + " to leaderboard " + leaderboardName
|
||||
+ ": " + t.getMessage());
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to add column " + result.getA()
|
||||
+ " to leaderboard " + leaderboardName + ": " + caught.getMessage());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void v) {
|
||||
//columnNamesInSelectedLeaderboardListBox.addItem(columnNameAndMedalRace.getA());
|
||||
raceColumnList.getList().add(columnNameAndMedalRace.getA());
|
||||
//selectedLeaderboard.raceNamesAndMedalRaceAndTracked.put(columnNameAndMedalRace.getA(),
|
||||
// new Pair<Boolean, Boolean>(/* medal race */ columnNameAndMedalRace.getB(),
|
||||
// /* tracked */ false));
|
||||
selectedLeaderboard.addRace(columnNameAndMedalRace.getA(), columnNameAndMedalRace.getB(), false);
|
||||
selectedLeaderboard.invalidateCompetitorOrdering();
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onSuccess(Void v) {
|
||||
// columnNamesInSelectedLeaderboardListBox.addItem(columnNameAndMedalRace.getA());
|
||||
raceColumnList.getList().add(result.getA());
|
||||
// selectedLeaderboard.raceNamesAndMedalRaceAndTracked.put(columnNameAndMedalRace.getA(),
|
||||
// new Pair<Boolean, Boolean>(/* medal race */ columnNameAndMedalRace.getB(),
|
||||
// /* tracked */ false));
|
||||
selectedLeaderboard.addRace(result.getA(), result.getB(), false);
|
||||
selectedLeaderboard.invalidateCompetitorOrdering();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
box.show();
|
||||
raceDialog.show();
|
||||
}
|
||||
|
||||
private String getSelectedLeaderboardName() {
|
||||
@@ -550,7 +550,7 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
final String leaderboardName = getSelectedLeaderboardName();
|
||||
if (leaderboardName != null) {
|
||||
sailingService.getLeaderboardByName(leaderboardName, new Date(),
|
||||
/* namesOfRacesForWhichToLoadLegDetails */ null, new AsyncCallback<LeaderboardDAO>() {
|
||||
/* namesOfRacesForWhichToLoadLegDetails */null, new AsyncCallback<LeaderboardDAO>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to fetch leaderboard " + leaderboardName
|
||||
@@ -562,9 +562,9 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
selectedLeaderboard = result;
|
||||
|
||||
raceColumnList.getList().clear();
|
||||
for(String race: result.getRaceList())
|
||||
raceColumnList.getList().add(race);
|
||||
|
||||
for (String race : result.getRaceList())
|
||||
raceColumnList.getList().add(race);
|
||||
|
||||
selectedLeaderBoardPanel.setVisible(true);
|
||||
trackedRacesCaptionPanel.setVisible(true);
|
||||
selectedLeaderBoardPanel.setCaptionText("Details of leaderboard '" + result.name + "'");
|
||||
@@ -588,15 +588,18 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
|
||||
private void addNewLeaderboard() {
|
||||
|
||||
|
||||
List<String> leaderboardNames = new ArrayList<String>();
|
||||
for(LeaderboardDAO dao: leaderboardList.getList())
|
||||
for (LeaderboardDAO dao : leaderboardList.getList())
|
||||
leaderboardNames.add(dao.name);
|
||||
|
||||
LeaderboardCreateDialog dialog = new LeaderboardCreateDialog(Collections.unmodifiableCollection(leaderboardNames),
|
||||
stringConstants, errorReporter, new AsyncCallback<LeaderboardDAO>() {
|
||||
|
||||
LeaderboardCreateDialog dialog = new LeaderboardCreateDialog(
|
||||
Collections.unmodifiableCollection(leaderboardNames), stringConstants, errorReporter,
|
||||
new AsyncCallback<LeaderboardDAO>() {
|
||||
@Override
|
||||
public void onFailure(Throwable arg0) {}
|
||||
public void onFailure(Throwable arg0) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(LeaderboardDAO result) {
|
||||
createNewLeaderboard(result);
|
||||
@@ -606,75 +609,82 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
|
||||
private void createNewLeaderboard(final LeaderboardDAO newLeaderboard) {
|
||||
sailingService.createLeaderboard(newLeaderboard.name, newLeaderboard.discardThresholds, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError("Error trying to create new leaderboard "+newLeaderboard.name+": "+t.getMessage());
|
||||
}
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
|
||||
sailingService.getLeaderboardByName(newLeaderboard.name, new Date(),
|
||||
/* namesOfRacesForWhichToLoadLegDetails */ null, new AsyncCallback<LeaderboardDAO>() {
|
||||
sailingService.createLeaderboard(newLeaderboard.name, newLeaderboard.discardThresholds,
|
||||
new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to fetch the new leaderboard " + newLeaderboard.name
|
||||
+ " from the server: " + caught.getMessage());
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError("Error trying to create new leaderboard " + newLeaderboard.name
|
||||
+ ": " + t.getMessage());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onSuccess(LeaderboardDAO result) {
|
||||
|
||||
leaderboardList.getList().add(result);
|
||||
selectedLeaderboard = result;
|
||||
leaderboardSelectionChanged();
|
||||
public void onSuccess(Void result) {
|
||||
|
||||
sailingService.getLeaderboardByName(newLeaderboard.name, new Date(),
|
||||
/* namesOfRacesForWhichToLoadLegDetails */null, new AsyncCallback<LeaderboardDAO>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to fetch the new leaderboard "
|
||||
+ newLeaderboard.name + " from the server: " + caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(LeaderboardDAO result) {
|
||||
|
||||
leaderboardList.getList().add(result);
|
||||
selectedLeaderboard = result;
|
||||
leaderboardSelectionChanged();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void updateLeaderboard(final String oldLeaderboardName, final LeaderboardDAO leaderboardToUdate) {
|
||||
sailingService.updateLeaderboard(oldLeaderboardName, leaderboardToUdate.name, leaderboardToUdate.discardThresholds, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError("Error trying to update leaderboard "+oldLeaderboardName+": "+t.getMessage());
|
||||
}
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
|
||||
final int[] index = new int[1];
|
||||
index[0] = 0;
|
||||
|
||||
for(LeaderboardDAO dao: leaderboardList.getList()) {
|
||||
if(dao.name.equals(oldLeaderboardName)) {
|
||||
|
||||
sailingService.getLeaderboardByName(leaderboardToUdate.name, new Date(),
|
||||
/* namesOfRacesForWhichToLoadLegDetails */ null, new AsyncCallback<LeaderboardDAO>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to fetch the new leaderboard " + leaderboardToUdate.name
|
||||
+ " from the server: " + caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(LeaderboardDAO result) {
|
||||
leaderboardList.getList().set(index[0], result);
|
||||
}
|
||||
});
|
||||
sailingService.updateLeaderboard(oldLeaderboardName, leaderboardToUdate.name,
|
||||
leaderboardToUdate.discardThresholds, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError("Error trying to update leaderboard " + oldLeaderboardName + ": "
|
||||
+ t.getMessage());
|
||||
}
|
||||
index[0] = index[0]+1;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
|
||||
final int[] index = new int[1];
|
||||
index[0] = 0;
|
||||
|
||||
for (LeaderboardDAO dao : leaderboardList.getList()) {
|
||||
if (dao.name.equals(oldLeaderboardName)) {
|
||||
|
||||
sailingService.getLeaderboardByName(leaderboardToUdate.name, new Date(),
|
||||
/* namesOfRacesForWhichToLoadLegDetails */null, new AsyncCallback<LeaderboardDAO>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to fetch the new leaderboard "
|
||||
+ leaderboardToUdate.name + " from the server: " + caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(LeaderboardDAO result) {
|
||||
leaderboardList.getList().set(index[0], result);
|
||||
}
|
||||
});
|
||||
}
|
||||
index[0] = index[0] + 1;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void removeLeaderboard(final LeaderboardDAO leaderBoard) {
|
||||
sailingService.removeLeaderboard(leaderBoard.name, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to remove leaderboard "+leaderBoard.name+": "+caught.getMessage());
|
||||
errorReporter.reportError("Error trying to remove leaderboard " + leaderBoard.name + ": "
|
||||
+ caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -682,7 +692,7 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
// check if the removed leaderboard was the selected one
|
||||
leaderboardList.getList().remove(leaderBoard);
|
||||
|
||||
if(selectedLeaderboard != null && selectedLeaderboard.name.equals(leaderBoard.name)) {
|
||||
if (selectedLeaderboard != null && selectedLeaderboard.name.equals(leaderBoard.name)) {
|
||||
selectedLeaderboard = null;
|
||||
leaderboardSelectionChanged();
|
||||
}
|
||||
@@ -693,19 +703,20 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
@Override
|
||||
public void onRaceSelectionChange(List<Triple<EventDAO, RegattaDAO, RaceDAO>> selectedRaces) {
|
||||
if (selectedRaces.isEmpty()) {
|
||||
// unlinkRaceColumnFromTrackedRaceButton.setEnabled(false);
|
||||
// unlinkRaceColumnFromTrackedRaceButton.setEnabled(false);
|
||||
} else {
|
||||
if (getSelectedRaceColumnName() != null) {
|
||||
linkTrackedRaceForRaceColumn(selectedRaces.iterator().next());
|
||||
} else {
|
||||
// unlinkRaceColumnFromTrackedRaceButton.setEnabled(false);
|
||||
// unlinkRaceColumnFromTrackedRaceButton.setEnabled(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void linkTrackedRaceForRaceColumn(final Triple<EventDAO, RegattaDAO, RaceDAO> selectedRace) {
|
||||
sailingService.connectTrackedRaceToLeaderboardColumn(getSelectedLeaderboardName(), getSelectedRaceColumnName(),
|
||||
new EventNameAndRaceName(selectedRace.getA().name, selectedRace.getC().name), new AsyncCallback<Void>() {
|
||||
new EventNameAndRaceName(selectedRace.getA().name, selectedRace.getC().name),
|
||||
new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError("Error trying to link tracked race " + selectedRace.getC().name
|
||||
@@ -717,7 +728,7 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void arg0) {
|
||||
// unlinkRaceColumnFromTrackedRaceButton.setEnabled(true);
|
||||
// unlinkRaceColumnFromTrackedRaceButton.setEnabled(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
-122
@@ -1,122 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.HorizontalPanel;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.shared.Pair;
|
||||
|
||||
public class LeaderboardCreationDialog extends DataEntryDialog<Pair<String, String[]>> {
|
||||
private static final int MAX_NUMBER_OF_DISCARDED_RESULTS = 4;
|
||||
private final TextBox entryField;
|
||||
private final TextBox[] discardThresholdBoxes;
|
||||
private final ErrorReporter errorReporter;
|
||||
private final StringConstants stringConstants;
|
||||
|
||||
private static class LeaderboardParameterValidator implements Validator<Pair<String, String[]>> {
|
||||
private final StringConstants stringConstants;
|
||||
private final Collection<String> existingLeaderboardNames;
|
||||
|
||||
public LeaderboardParameterValidator(Collection<String> existingLeaderboardNames, StringConstants stringConstants) {
|
||||
super();
|
||||
this.existingLeaderboardNames = existingLeaderboardNames;
|
||||
this.stringConstants = stringConstants;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getErrorMessage(Pair<String, String[]> valueToValidate) {
|
||||
String errorMessage;
|
||||
boolean nonEmpty = valueToValidate.getA() != null && valueToValidate.getA().trim().length() > 0;
|
||||
boolean unique = !existingLeaderboardNames.contains(valueToValidate.getA());
|
||||
boolean discardThresholdsAscending = true;
|
||||
boolean discardThresholdsAreNumeric = valueToValidate.getB().length == 0 || valueToValidate.getB()[0] == null ||
|
||||
valueToValidate.getB()[0].matches("[0-9]*");
|
||||
for (int i=1; i<valueToValidate.getB().length; i++) {
|
||||
if (valueToValidate.getB()[i] != null && valueToValidate.getB()[i].trim().length() > 0) {
|
||||
try {
|
||||
discardThresholdsAscending = discardThresholdsAscending &&
|
||||
valueToValidate.getB()[i-1] != null && valueToValidate.getB()[i-1].trim().length() > 0 &&
|
||||
Integer.valueOf(valueToValidate.getB()[i-1].trim()) < Integer.valueOf(valueToValidate.getB()[i].trim());
|
||||
} catch (NumberFormatException e) {
|
||||
discardThresholdsAreNumeric = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!nonEmpty) {
|
||||
errorMessage = stringConstants.pleaseEnterNonEmptyName();
|
||||
} else if (!unique) {
|
||||
errorMessage = stringConstants.leaderboardWithThisNameAlreadyExists();
|
||||
} else if (!discardThresholdsAreNumeric) {
|
||||
errorMessage = stringConstants.discardThresholdsMustBeNumeric();
|
||||
} else if (!discardThresholdsAscending) {
|
||||
errorMessage = stringConstants.discardThresholdsMustBeAscending();
|
||||
} else {
|
||||
errorMessage = null;
|
||||
}
|
||||
return errorMessage;
|
||||
}
|
||||
}
|
||||
|
||||
public LeaderboardCreationDialog(Collection<String> existingLeaderboardNames, StringConstants stringConstants,
|
||||
ErrorReporter errorReporter, AsyncCallback<Pair<String, String[]>> callback) {
|
||||
super(stringConstants.leaderboardName(), stringConstants.leaderboardName(), stringConstants.ok(),
|
||||
stringConstants.cancel(), new LeaderboardParameterValidator(existingLeaderboardNames, stringConstants), callback);
|
||||
this.errorReporter = errorReporter;
|
||||
this.stringConstants = stringConstants;
|
||||
entryField = createTextBox(/* initial value */null);
|
||||
discardThresholdBoxes = new TextBox[MAX_NUMBER_OF_DISCARDED_RESULTS];
|
||||
for (int i=0; i<discardThresholdBoxes.length; i++) {
|
||||
discardThresholdBoxes[i] = createTextBox(/* initialValue */ null);
|
||||
discardThresholdBoxes[i].setVisibleLength(2);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Pair<String, String[]> getResult() {
|
||||
List<String> discardThresholds = new ArrayList<String>();
|
||||
for (int i=0; i<discardThresholdBoxes.length; i++) {
|
||||
if (discardThresholdBoxes[i].getValue() != null && discardThresholdBoxes[i].getValue().trim().length() > 0) {
|
||||
try {
|
||||
Integer.valueOf(discardThresholdBoxes[i].getValue().trim()); // ensure there is no exception
|
||||
discardThresholds.add(discardThresholdBoxes[i].getValue().trim());
|
||||
} catch (NumberFormatException e) {
|
||||
errorReporter.reportError("Internal error; NumberFormatException for "+discardThresholdBoxes[i].getValue()+
|
||||
" which should have been caught by validation before");
|
||||
}
|
||||
}
|
||||
}
|
||||
String[] discardThresholdBoxesContents = discardThresholds.toArray(new String[discardThresholds.size()]);
|
||||
return new Pair<String, String[]>(entryField.getValue(), discardThresholdBoxesContents);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Widget getAdditionalWidget() {
|
||||
VerticalPanel panel = new VerticalPanel();
|
||||
Widget additionalWidget = super.getAdditionalWidget();
|
||||
if (additionalWidget != null) {
|
||||
panel.add(additionalWidget);
|
||||
}
|
||||
panel.add(entryField);
|
||||
panel.add(new Label(stringConstants.discardRacesFromHowManyStartedRacesOn()));
|
||||
HorizontalPanel hp = new HorizontalPanel();
|
||||
for (int i=0; i<discardThresholdBoxes.length; i++) {
|
||||
hp.add(new Label(""+(i+1)+"."));
|
||||
hp.add(discardThresholdBoxes[i]);
|
||||
}
|
||||
panel.add(hp);
|
||||
return panel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
super.show();
|
||||
entryField.setFocus(true);
|
||||
}
|
||||
|
||||
}
|
||||
+30
-12
@@ -3,17 +3,20 @@ package com.sap.sailing.gwt.ui.client;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.CheckBox;
|
||||
import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.shared.Pair;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDAO;
|
||||
|
||||
public class RaceDialog extends DataEntryDialog<Pair<RaceDAO, Boolean>>{
|
||||
public class RaceDialog extends DataEntryDialog<Pair<String, Boolean>>{
|
||||
|
||||
private final TextBox raceNameBox;
|
||||
private final CheckBox isMedalRace;
|
||||
|
||||
private Pair<RaceDAO, Boolean> raceDaoAndIsMedalRace;
|
||||
private final StringConstants stringConstants;
|
||||
|
||||
private static class RaceDialogValidator implements Validator<Pair<RaceDAO, Boolean>>{
|
||||
private Pair<String, Boolean> raceDaoAndIsMedalRace;
|
||||
|
||||
private static class RaceDialogValidator implements Validator<Pair<String, Boolean>>{
|
||||
|
||||
private StringConstants stringConstants;
|
||||
|
||||
@@ -22,11 +25,11 @@ public class RaceDialog extends DataEntryDialog<Pair<RaceDAO, Boolean>>{
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getErrorMessage(Pair<RaceDAO, Boolean> valueToValidate) {
|
||||
public String getErrorMessage(Pair<String, Boolean> valueToValidate) {
|
||||
String errorMessage;
|
||||
RaceDAO race = valueToValidate.getA();
|
||||
String racename = valueToValidate.getA();
|
||||
Boolean isMedalRace = valueToValidate.getB();
|
||||
boolean isNameNotEmpty = race!=null & race.name!=null & race.name!="";
|
||||
boolean isNameNotEmpty =racename!=null & racename!="";
|
||||
boolean medalRaceNotNull = isMedalRace!=null;
|
||||
|
||||
if(!isNameNotEmpty){
|
||||
@@ -42,21 +45,36 @@ public class RaceDialog extends DataEntryDialog<Pair<RaceDAO, Boolean>>{
|
||||
}
|
||||
|
||||
|
||||
public RaceDialog(Pair<RaceDAO, Boolean> raceDaoAndIsMedalRace, StringConstants stringConstants,
|
||||
AsyncCallback<Pair<RaceDAO, Boolean>> callback) {
|
||||
public RaceDialog(Pair<String, Boolean> raceDaoAndIsMedalRace, StringConstants stringConstants,
|
||||
AsyncCallback<Pair<String, Boolean>> callback) {
|
||||
super(stringConstants.name(), stringConstants.name(), stringConstants.ok(), stringConstants.cancel(), new RaceDialogValidator(stringConstants), callback);
|
||||
this.raceDaoAndIsMedalRace = raceDaoAndIsMedalRace;
|
||||
raceNameBox = createTextBox(raceDaoAndIsMedalRace.getA().name);
|
||||
raceNameBox = createTextBox(raceDaoAndIsMedalRace.getA());
|
||||
isMedalRace = createCheckbox(stringConstants.medalRace());
|
||||
isMedalRace.setValue(raceDaoAndIsMedalRace.getB().booleanValue());
|
||||
this.stringConstants = stringConstants;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Pair<RaceDAO, Boolean> getResult() {
|
||||
raceDaoAndIsMedalRace.getA().name = raceNameBox.getValue();
|
||||
protected Pair<String, Boolean> getResult() {
|
||||
raceDaoAndIsMedalRace.setA(raceNameBox.getValue());
|
||||
raceDaoAndIsMedalRace.setB(isMedalRace.getValue());
|
||||
return raceDaoAndIsMedalRace;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
protected Widget getAdditionalWidget() {
|
||||
VerticalPanel panel = new VerticalPanel();
|
||||
Widget additionalWidget = super.getAdditionalWidget();
|
||||
if (additionalWidget != null) {
|
||||
panel.add(additionalWidget);
|
||||
}
|
||||
panel.add(raceNameBox);
|
||||
panel.add(isMedalRace);
|
||||
return panel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
|
||||
Reference in new issue
Block a user