disable medal checkbox in race column edit table for regatta leaderboards

This commit is contained in:
Axel Uhl committed 2013-03-04 12:58:21 +01:00
1 parent ba949292b1
commit af4580d431
3 files changed
+37 -3

No files matched your search

@@ -0,0 +1,26 @@
package com.sap.sailing.gwt.ui.adminconsole;
import com.google.gwt.cell.client.CheckboxCell;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
public class DisablableCheckboxCell extends CheckboxCell {
public static interface IsEnabled {
boolean isEnabled();
}
private final IsEnabled isEnabled;
public DisablableCheckboxCell(IsEnabled isEnabled) {
this.isEnabled = isEnabled;
}
@Override
public void render(com.google.gwt.cell.client.Cell.Context context, Boolean value, SafeHtmlBuilder sb) {
if (isEnabled.isEnabled()) {
super.render(context, value, sb);
} else {
sb.appendEscaped(value ? "x" : "");
}
}
}
@@ -47,6 +47,7 @@ import com.sap.sailing.domain.common.RegattaIdentifier;
import com.sap.sailing.domain.common.RegattaName;
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
import com.sap.sailing.domain.common.impl.Util.Pair;
import com.sap.sailing.gwt.ui.adminconsole.DisablableCheckboxCell.IsEnabled;
import com.sap.sailing.gwt.ui.adminconsole.RaceColumnInLeaderboardDialog.RaceColumnDescriptor;
import com.sap.sailing.gwt.ui.client.DataEntryDialog.DialogCallback;
import com.sap.sailing.gwt.ui.client.ErrorReporter;
@@ -393,7 +394,12 @@ public class LeaderboardConfigPanel extends FormPanel implements SelectedLeaderb
};
Column<Pair<RaceColumnDTO, FleetDTO>, Boolean> isMedalRaceCheckboxColumn = new Column<Pair<RaceColumnDTO, FleetDTO>, Boolean>(
new CheckboxCell()) {
new DisablableCheckboxCell(new IsEnabled() {
@Override
public boolean isEnabled() {
return !getSelectedLeaderboard().isRegattaLeaderboard;
}
})) {
@Override
public Boolean getValue(Pair<RaceColumnDTO, FleetDTO> race) {
return race.getA().isMedalRace();
@@ -746,7 +752,7 @@ public class LeaderboardConfigPanel extends FormPanel implements SelectedLeaderb
}
existingRacesWithoutThisRace.remove(raceColumnWithFleet.getA());
final RaceColumnInLeaderboardDialog raceDialog = new RaceColumnInLeaderboardDialog(existingRacesWithoutThisRace,
raceColumnWithFleet.getA(), stringMessages, new DialogCallback<RaceColumnDescriptor>() {
raceColumnWithFleet.getA(), getSelectedLeaderboard().isRegattaLeaderboard, stringMessages, new DialogCallback<RaceColumnDescriptor>() {
@Override
public void cancel() {
}
@@ -96,15 +96,17 @@ public class RaceColumnInLeaderboardDialog extends DataEntryDialog<RaceColumnInL
}
public RaceColumnInLeaderboardDialog(List<RaceColumnDTO> existingRaces, RaceColumnDTO raceColumnToEdit,
StringMessages stringMessages, DialogCallback<RaceColumnDescriptor> callback) {
boolean isRegattaLeaderboard, StringMessages stringMessages, DialogCallback<RaceColumnDescriptor> callback) {
super(stringMessages.actionRaceEdit(), null, stringMessages.ok(), stringMessages.cancel(),
new RaceDialogValidator(stringMessages, existingRaces), callback);
this.stringMessages = stringMessages;
raceNameBox = createTextBox(raceColumnToEdit.getRaceColumnName());
raceNameBox.setEnabled(!isRegattaLeaderboard);
explicitFactorBox = raceColumnToEdit.getExplicitFactor() == null ?
createDoubleBox(/* visibleLength */ 4) : createDoubleBox(raceColumnToEdit.getExplicitFactor(), /* visibleLength */ 4);
isMedalRace = createCheckbox(stringMessages.medalRace());
isMedalRace.setValue(raceColumnToEdit.isMedalRace());
isMedalRace.setEnabled(!isRegattaLeaderboard);
}
@Override