mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-02 17:19:37 +00:00
fixing bug 2245 by adding an Edit button for the Accumulated column
This commit is contained in:
1 parent
733e7ea470
commit
f2aee4f47d
6 files changed
+99
-29
No files matched your search
+1
@@ -1086,4 +1086,5 @@ public interface StringMessages extends Messages {
|
||||
String manageMediaTooltip();
|
||||
String showAll();
|
||||
String raceVisibilityColumn();
|
||||
String enterCarryValueFor(String competitorName);
|
||||
}
|
||||
+1
@@ -1067,3 +1067,4 @@ manageMedia=Manage Media
|
||||
manageMediaTooltip=Configure audio and video clips, synchronize times
|
||||
showAll=Show all
|
||||
raceVisibilityColumn=Visibility
|
||||
enterCarryValueFor=Enter carried points for competitor {0}
|
||||
+1
@@ -1062,3 +1062,4 @@ manageMedia=Audio/Video verwalten
|
||||
manageMediaTooltip=Audio- und Video-Clips verwalten, Zeiten synchronisieren
|
||||
showAll=Alle zeigen
|
||||
raceVisibilityColumn=Sichtbarkeit
|
||||
enterCarryValueFor=Punkteübertrag für Teilnehmer {0} erfassen
|
||||
+1
@@ -1017,3 +1017,4 @@ manageMedia=Manage Media
|
||||
manageMediaTooltip=Configure audio and video clips, synchronize times
|
||||
showAll=Show all
|
||||
raceVisibilityColumn=Visibility
|
||||
enterCarryValueFor=Enter carried points for competitor {0}
|
||||
+18
-7
@@ -15,8 +15,8 @@ import java.util.Set;
|
||||
|
||||
import com.google.gwt.cell.client.Cell;
|
||||
import com.google.gwt.cell.client.Cell.Context;
|
||||
import com.google.gwt.cell.client.AbstractSafeHtmlCell;
|
||||
import com.google.gwt.cell.client.CompositeCell;
|
||||
import com.google.gwt.cell.client.EditTextCell;
|
||||
import com.google.gwt.cell.client.TextCell;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.core.client.Scheduler;
|
||||
@@ -34,6 +34,7 @@ import com.google.gwt.safehtml.client.SafeHtmlTemplates;
|
||||
import com.google.gwt.safehtml.shared.SafeHtml;
|
||||
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
||||
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
|
||||
import com.google.gwt.text.shared.AbstractSafeHtmlRenderer;
|
||||
import com.google.gwt.user.cellview.client.Column;
|
||||
import com.google.gwt.user.cellview.client.Header;
|
||||
import com.google.gwt.user.cellview.client.SafeHtmlHeader;
|
||||
@@ -1437,20 +1438,30 @@ public class LeaderboardPanel extends SimplePanel implements TimeListener, PlayS
|
||||
}
|
||||
}
|
||||
|
||||
protected class CarryColumn extends LeaderboardSortableColumnWithMinMax<LeaderboardRowDTO, String> {
|
||||
protected class CarryColumn extends LeaderboardSortableColumnWithMinMax<LeaderboardRowDTO, LeaderboardRowDTO> {
|
||||
public CarryColumn() {
|
||||
super(new TextCell(), SortingOrder.ASCENDING, LeaderboardPanel.this);
|
||||
super(new AbstractSafeHtmlCell<LeaderboardRowDTO>(new AbstractSafeHtmlRenderer<LeaderboardRowDTO>() {
|
||||
@Override
|
||||
public SafeHtml render(LeaderboardRowDTO object) {
|
||||
return new SafeHtmlBuilder().appendEscaped(object.carriedPoints == null ? "" : scoreFormat.format(object.carriedPoints)).toSafeHtml();
|
||||
}
|
||||
}) {
|
||||
@Override
|
||||
protected void render(com.google.gwt.cell.client.Cell.Context context, SafeHtml data, SafeHtmlBuilder sb) {
|
||||
sb.append(data);
|
||||
}
|
||||
}, SortingOrder.ASCENDING, LeaderboardPanel.this);
|
||||
setSortable(true);
|
||||
}
|
||||
|
||||
protected CarryColumn(EditTextCell editTextCell) {
|
||||
super(editTextCell, SortingOrder.ASCENDING, LeaderboardPanel.this);
|
||||
protected CarryColumn(Cell<LeaderboardRowDTO> cell) {
|
||||
super(cell, SortingOrder.ASCENDING, LeaderboardPanel.this);
|
||||
setSortable(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(LeaderboardRowDTO object) {
|
||||
return object.carriedPoints == null ? "" : scoreFormat.format(object.carriedPoints);
|
||||
public LeaderboardRowDTO getValue(LeaderboardRowDTO object) {
|
||||
return object;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+77
-22
@@ -104,28 +104,7 @@ public class EditableLeaderboardPanel extends LeaderboardPanel {
|
||||
|
||||
private class EditableCarryColumn extends CarryColumn {
|
||||
public EditableCarryColumn() {
|
||||
super(new EditTextCell());
|
||||
setFieldUpdater(new FieldUpdater<LeaderboardRowDTO, String>() {
|
||||
@Override
|
||||
public void update(final int rowIndex, final LeaderboardRowDTO row, final String value) {
|
||||
getSailingService().updateLeaderboardCarryValue(getLeaderboardName(), row.competitor.getIdAsString(),
|
||||
value == null || value.length() == 0 ? null : Double.valueOf(value.trim()),
|
||||
new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
EditableLeaderboardPanel.this.getErrorReporter().reportError("Error trying to update carry value for competitor "+
|
||||
row.competitor.getName()+" in leaderboard "+getLeaderboardName()+": "+t.getMessage()+
|
||||
"\nYou may have to refresh your view.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void v) {
|
||||
row.carriedPoints = value==null||value.length()==0 ? null : Double.valueOf(value.trim());
|
||||
EditableLeaderboardPanel.this.getData().getList().set(rowIndex, row);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
super(new CompositeCell<LeaderboardRowDTO>(getCellListForEditableCarryColumn()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -927,6 +906,82 @@ public class EditableLeaderboardPanel extends LeaderboardPanel {
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<HasCell<LeaderboardRowDTO, ?>> getCellListForEditableCarryColumn() {
|
||||
List<HasCell<LeaderboardRowDTO, ?>> result = new ArrayList<HasCell<LeaderboardRowDTO, ?>>();
|
||||
result.add(new HasCell<LeaderboardRowDTO, String>() {
|
||||
private final ButtonCell cell = new ButtonCell();
|
||||
@Override
|
||||
public Cell<String> getCell() {
|
||||
return cell;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FieldUpdater<LeaderboardRowDTO, String> getFieldUpdater() {
|
||||
return new FieldUpdater<LeaderboardRowDTO, String>() {
|
||||
@Override
|
||||
public void update(int index, final LeaderboardRowDTO row, String value) {
|
||||
new EditCarryValueDialog(getStringMessages(), row.competitor.getName(), row.carriedPoints, new DialogCallback<Double>() {
|
||||
@Override
|
||||
public void ok(final Double value) {
|
||||
updateCarriedPoints(EditableLeaderboardPanel.this.getData().getList().indexOf(row), row, value);
|
||||
}
|
||||
@Override
|
||||
public void cancel() {
|
||||
}
|
||||
}).show();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(LeaderboardRowDTO object) {
|
||||
return getStringMessages().edit();
|
||||
}
|
||||
});
|
||||
final EditTextCell carryTextCell = new EditTextCell();
|
||||
final FieldUpdater<LeaderboardRowDTO, String> fieldUpdater = new FieldUpdater<LeaderboardRowDTO, String>() {
|
||||
@Override
|
||||
public void update(final int rowIndex, final LeaderboardRowDTO row, final String value) {
|
||||
updateCarriedPoints(rowIndex, row, value==null||value.length()==0 ? null : Double.valueOf(value.trim()));
|
||||
}
|
||||
};
|
||||
result.add(new HasCell<LeaderboardRowDTO, String>() {
|
||||
@Override
|
||||
public Cell<String> getCell() {
|
||||
return carryTextCell;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FieldUpdater<LeaderboardRowDTO, String> getFieldUpdater() {
|
||||
return fieldUpdater;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(LeaderboardRowDTO object) {
|
||||
return object.carriedPoints == null ? "" : scoreFormat.format(object.carriedPoints);
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
private void updateCarriedPoints(final int rowIndex, final LeaderboardRowDTO row, final Double value) {
|
||||
getSailingService().updateLeaderboardCarryValue(getLeaderboardName(), row.competitor.getIdAsString(), value,
|
||||
new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
EditableLeaderboardPanel.this.getErrorReporter().reportError("Error trying to update carry value for competitor "+
|
||||
row.competitor.getName()+" in leaderboard "+getLeaderboardName()+": "+t.getMessage()+
|
||||
"\nYou may have to refresh your view.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void v) {
|
||||
row.carriedPoints = value;
|
||||
EditableLeaderboardPanel.this.getData().getList().set(rowIndex, row);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected RaceColumn<?> createRaceColumn(RaceColumnDTO race) {
|
||||
|
||||
Reference in new issue
Block a user