mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-08 05:11:04 +00:00
enable renaming of leaderboard
This commit is contained in:
1 parent
0878f3f45d
commit
c47a349b79
7 files changed
+100
-12
No files matched your search
+88
-10
@@ -97,6 +97,14 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer
|
||||
addNewLeaderboard();
|
||||
}
|
||||
});
|
||||
Button renameButton = new Button(stringConstants.renameDotDotDot());
|
||||
verticalPanel.add(renameButton);
|
||||
renameButton.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent arg0) {
|
||||
renameSelectedLeaderboard();
|
||||
}
|
||||
});
|
||||
Button btnEditScores = new Button(stringConstants.editScores());
|
||||
verticalPanel.add(btnEditScores);
|
||||
btnEditScores.addClickHandler(new ClickHandler() {
|
||||
@@ -139,7 +147,7 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer
|
||||
btnRename.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
// TODO Auto-generated method stub
|
||||
// TODO implement rename column
|
||||
}
|
||||
});
|
||||
|
||||
@@ -180,8 +188,78 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer
|
||||
});
|
||||
}
|
||||
|
||||
protected void renameSelectedLeaderboard() {
|
||||
final int selectedIndex = leaderboardsListBox.getSelectedIndex();
|
||||
final String leaderboardName = leaderboardsListBox.getItemText(selectedIndex);
|
||||
final DialogBox leaderboardRenameDialogBox = new DialogBox();
|
||||
leaderboardRenameDialogBox.setText(stringConstants.renameLeaderboard());
|
||||
leaderboardRenameDialogBox.setAnimationEnabled(true);
|
||||
final Button okButton = new Button("OK");
|
||||
okButton.setEnabled(leaderboardName.trim().length()>0);
|
||||
VerticalPanel dialogVPanel = new VerticalPanel();
|
||||
final Label statusLabel = new Label();
|
||||
dialogVPanel.add(statusLabel);
|
||||
dialogVPanel.add(new Label(stringConstants.leaderboardName()));
|
||||
final TextBox leaderboardNameField = new TextBox();
|
||||
leaderboardNameField.setText(leaderboardName);
|
||||
AbstractEntryPoint.addFocusUponKeyUpToggler(leaderboardNameField);
|
||||
leaderboardNameField.addChangeHandler(new ChangeHandler() {
|
||||
@Override
|
||||
public void onChange(ChangeEvent event) {
|
||||
if (leaderboardNameField.getValue() != null && leaderboardNameField.getValue().trim().length() > 0) {
|
||||
statusLabel.setText("");
|
||||
okButton.setEnabled(true);
|
||||
} else {
|
||||
statusLabel.setText(stringConstants.pleaseEnterNonEmptyName());
|
||||
okButton.setEnabled(false);
|
||||
}
|
||||
}
|
||||
});
|
||||
dialogVPanel.add(leaderboardNameField);
|
||||
dialogVPanel.setHorizontalAlignment(VerticalPanel.ALIGN_RIGHT);
|
||||
HorizontalPanel buttonPanel = new HorizontalPanel();
|
||||
dialogVPanel.add(buttonPanel);
|
||||
buttonPanel.add(okButton);
|
||||
Button cancelButton = new Button(stringConstants.cancel());
|
||||
buttonPanel.add(cancelButton);
|
||||
cancelButton.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
leaderboardRenameDialogBox.hide();
|
||||
}
|
||||
});
|
||||
leaderboardRenameDialogBox.setWidget(dialogVPanel);
|
||||
okButton.addClickHandler(new ClickHandler() {
|
||||
public void onClick(ClickEvent event) {
|
||||
leaderboardRenameDialogBox.hide();
|
||||
final String newLeaderboardName = leaderboardNameField.getText().trim();
|
||||
sailingService.renameLeaderboard(leaderboardName, newLeaderboardName,
|
||||
new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to rename leaderboard "+leaderboardName+" to "+
|
||||
newLeaderboardName+": "+caught.getMessage());
|
||||
}
|
||||
@Override
|
||||
public void onSuccess(Void v) {
|
||||
leaderboardsListBox.setItemText(selectedIndex, newLeaderboardName);
|
||||
leaderboardNames.set(selectedIndex, newLeaderboardName);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
AbstractEntryPoint.linkEnterToButton(okButton, leaderboardNameField);
|
||||
AbstractEntryPoint.linkEscapeToButton(cancelButton, leaderboardNameField);
|
||||
leaderboardRenameDialogBox.center();
|
||||
leaderboardNameField.setFocus(true);
|
||||
}
|
||||
|
||||
private String getSelectedLeaderboardName() {
|
||||
return leaderboardsListBox.getItemText(leaderboardsListBox.getSelectedIndex());
|
||||
}
|
||||
|
||||
protected void leaderboardSelectionChanged() {
|
||||
final String leaderboardName = leaderboardsListBox.getItemText(leaderboardsListBox.getSelectedIndex());
|
||||
final String leaderboardName = getSelectedLeaderboardName();
|
||||
sailingService.getLeaderboardByName(leaderboardName,
|
||||
new Date(), new AsyncCallback<LeaderboardDAO>() {
|
||||
@Override
|
||||
@@ -222,9 +300,9 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer
|
||||
}
|
||||
|
||||
private void addNewLeaderboard() {
|
||||
final DialogBox myErrorDialogBox = new DialogBox();
|
||||
myErrorDialogBox.setText(stringConstants.createNewLeaderboard());
|
||||
myErrorDialogBox.setAnimationEnabled(true);
|
||||
final DialogBox leaderboardCreationDialogBox = new DialogBox();
|
||||
leaderboardCreationDialogBox.setText(stringConstants.createNewLeaderboard());
|
||||
leaderboardCreationDialogBox.setAnimationEnabled(true);
|
||||
final Button okButton = new Button("OK");
|
||||
okButton.setEnabled(false);
|
||||
VerticalPanel dialogVPanel = new VerticalPanel();
|
||||
@@ -267,13 +345,13 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer
|
||||
cancelButton.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
myErrorDialogBox.hide();
|
||||
leaderboardCreationDialogBox.hide();
|
||||
}
|
||||
});
|
||||
myErrorDialogBox.setWidget(dialogVPanel);
|
||||
leaderboardCreationDialogBox.setWidget(dialogVPanel);
|
||||
okButton.addClickHandler(new ClickHandler() {
|
||||
public void onClick(ClickEvent event) {
|
||||
myErrorDialogBox.hide();
|
||||
leaderboardCreationDialogBox.hide();
|
||||
List<Integer> discardThresholds = new ArrayList<Integer>();
|
||||
for (int i=0; i<discardThresholdBoxes.length; i++) {
|
||||
if (discardThresholdBoxes[i].getValue() != null && discardThresholdBoxes[i].getValue().trim().length() > 0) {
|
||||
@@ -297,12 +375,12 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer
|
||||
AbstractEntryPoint.linkEnterToButton(okButton, discardThresholdBoxes);
|
||||
AbstractEntryPoint.linkEscapeToButton(cancelButton, leaderboardNameField);
|
||||
AbstractEntryPoint.linkEscapeToButton(cancelButton, discardThresholdBoxes);
|
||||
myErrorDialogBox.center();
|
||||
leaderboardCreationDialogBox.center();
|
||||
leaderboardNameField.setFocus(true);
|
||||
}
|
||||
|
||||
private void enableOkButtonIfValid(final Button okButton, final TextBox leaderboardNameField, TextBox[] discardThresholdBoxes, Label statusLabel) {
|
||||
boolean nonEmpty = leaderboardNameField.getValue() != null && leaderboardNameField.getValue().length() > 0;
|
||||
boolean nonEmpty = leaderboardNameField.getValue() != null && leaderboardNameField.getValue().trim().length() > 0;
|
||||
boolean unique = !leaderboardNames.contains(leaderboardNameField.getValue());
|
||||
boolean discardThresholdsAscending = true;
|
||||
boolean discardThresholdsAreNumeric = discardThresholdBoxes[0].getValue() == null ||
|
||||
|
||||
+2
@@ -62,4 +62,6 @@ public interface SailingService extends RemoteService {
|
||||
void createLeaderboard(String leaderboardName, int[] discardThresholds);
|
||||
|
||||
void removeLeaderboard(String leaderboardName);
|
||||
|
||||
void renameLeaderboard(String leaderboardName, String newLeaderboardName);
|
||||
}
|
||||
+2
@@ -75,4 +75,6 @@ public interface SailingServiceAsync {
|
||||
|
||||
void removeLeaderboard(String leaderboardName, AsyncCallback<Void> asyncCallback);
|
||||
|
||||
void renameLeaderboard(String leaderboardName, String newLeaderboardName, AsyncCallback<Void> asyncCallback);
|
||||
|
||||
}
|
||||
+1
@@ -51,4 +51,5 @@ public interface StringConstants extends Constants {
|
||||
String discardThresholdsMustBeAscending();
|
||||
String discarding();
|
||||
String startingFromNumberOfRaces();
|
||||
String renameLeaderboard();
|
||||
}
|
||||
+2
-1
@@ -45,4 +45,5 @@ leaderboardWithThisNameAlreadyExists=Leaderboard with this name already exists
|
||||
discardThresholdsMustBeNumeric=Discard thresholds must be numeric
|
||||
discardThresholdsMustBeAscending=Discard thresholds must be ascending
|
||||
discarding=Discarding
|
||||
startingFromNumberOfRaces=Starting from how many races
|
||||
startingFromNumberOfRaces=Starting from how many races
|
||||
renameLeaderboard=Rename Leaderboard
|
||||
+5
@@ -574,4 +574,9 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
public void removeLeaderboard(String leaderboardName) {
|
||||
getService().removeLeaderboard(leaderboardName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renameLeaderboard(String leaderboardName, String newLeaderboardName) {
|
||||
getService().renameLeaderboard(leaderboardName, newLeaderboardName);
|
||||
}
|
||||
}
|
||||
-1
@@ -1,3 +1,2 @@
|
||||
# Module com.sap.sailing.gwt.ui.AdminConsole
|
||||
# RPC service class, partial path of RPC policy file
|
||||
com.sap.sailing.gwt.ui.client.SailingService, E83833CD31C3F5CEF2CB3935040487CB.gwt.rpc
|
||||
Reference in new issue
Block a user