mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-16 09:11:02 +00:00
first untested version of a competitor edit dialog
This commit is contained in:
1 parent
aa7f11d257
commit
82ce1980a9
9 files changed
+87
-21
No files matched your search
+42
-10
@@ -1,37 +1,63 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import com.google.gwt.user.client.ui.Grid;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.ListBox;
|
||||
import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.CountryCode;
|
||||
import com.sap.sailing.domain.common.CountryCodeFactory;
|
||||
import com.sap.sailing.domain.common.dto.CompetitorDTO;
|
||||
import com.sap.sailing.domain.common.dto.CompetitorDTOImpl;
|
||||
import com.sap.sailing.gwt.ui.client.DataEntryDialog;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
|
||||
/**
|
||||
* The competitors produced by this dialog will have a <code>null</code>
|
||||
* {@link CompetitorDTO#getTwoLetterIsoCountryCode() twoLetterIsoCountryCode} and a <code>null</code>
|
||||
* {@link CompetitorDTO#getCountryName() countryName} because all of these can be derived from a valid
|
||||
* {@link CompetitorDTO#getThreeLetterIocCountryCode() threeLetterIocCountryCode}.
|
||||
*
|
||||
* @author Axel Uhl (d043530)
|
||||
*
|
||||
*/
|
||||
public class CompetitorEditDialog extends DataEntryDialog<CompetitorDTO> {
|
||||
private final CompetitorDTO competitorToEdit;
|
||||
private final TextBox name;
|
||||
private final ListBox twoLetterIsoCountryCode;
|
||||
private final ListBox threeLetterIocCountryCode;
|
||||
private final TextBox sailId;
|
||||
private final StringMessages stringMessages;
|
||||
|
||||
public CompetitorEditDialog(StringMessages stringMessages, CompetitorDTO competitorToEdit,
|
||||
public CompetitorEditDialog(final StringMessages stringMessages, CompetitorDTO competitorToEdit,
|
||||
DialogCallback<CompetitorDTO> callback) {
|
||||
super(stringMessages.editCompetitor(), stringMessages.editCompetitor(), stringMessages.ok(), stringMessages
|
||||
.cancel(), new Validator<CompetitorDTO>() {
|
||||
@Override
|
||||
public String getErrorMessage(CompetitorDTO valueToValidate) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
final String result;
|
||||
if (valueToValidate.getName() == null || valueToValidate.getName().isEmpty()) {
|
||||
result = stringMessages.pleaseEnterAName();
|
||||
} else if (valueToValidate.getSailID() == null || valueToValidate.getSailID().isEmpty()) {
|
||||
result = stringMessages.pleaseEnterASailNumber();
|
||||
} else {
|
||||
result = null;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}, /* animationEnabled */true, callback);
|
||||
this.stringMessages = stringMessages;
|
||||
this.competitorToEdit = competitorToEdit;
|
||||
this.name = new TextBox();
|
||||
this.name.setText(competitorToEdit.getName());
|
||||
this.twoLetterIsoCountryCode = new ListBox();
|
||||
this.twoLetterIsoCountryCode.addItem(competitorToEdit.getTwoLetterIsoCountryCode());
|
||||
this.threeLetterIocCountryCode = new ListBox();
|
||||
this.threeLetterIocCountryCode.addItem(competitorToEdit.getThreeLetterIocCountryCode());
|
||||
CountryCodeFactory ccf = CountryCodeFactory.INSTANCE;
|
||||
int i=0;
|
||||
for (CountryCode cc : ccf.getAll()) {
|
||||
this.threeLetterIocCountryCode.addItem(cc.getThreeLetterIOCCode()+" "+cc.getName(), cc.getThreeLetterIOCCode());
|
||||
if (cc.getThreeLetterIOCCode().equals(competitorToEdit.getThreeLetterIocCountryCode())) {
|
||||
this.threeLetterIocCountryCode.setSelectedIndex(i);
|
||||
}
|
||||
}
|
||||
this.sailId = new TextBox();
|
||||
this.sailId.setText(competitorToEdit.getSailID());
|
||||
}
|
||||
@@ -39,7 +65,7 @@ public class CompetitorEditDialog extends DataEntryDialog<CompetitorDTO> {
|
||||
@Override
|
||||
protected CompetitorDTO getResult() {
|
||||
CompetitorDTO result = new CompetitorDTOImpl(name.getText(),
|
||||
twoLetterIsoCountryCode.getValue(twoLetterIsoCountryCode.getSelectedIndex()),
|
||||
/* twoLetterIsoCountryCode */ null,
|
||||
threeLetterIocCountryCode.getValue(threeLetterIocCountryCode.getSelectedIndex()),
|
||||
/* countryName */null, sailId.getText(), competitorToEdit.getIdAsString(),
|
||||
competitorToEdit.getBoatClass());
|
||||
@@ -48,8 +74,14 @@ public class CompetitorEditDialog extends DataEntryDialog<CompetitorDTO> {
|
||||
|
||||
@Override
|
||||
protected Widget getAdditionalWidget() {
|
||||
// TODO Auto-generated method stub
|
||||
return super.getAdditionalWidget();
|
||||
Grid result = new Grid(3, 2);
|
||||
result.setWidget(0, 0, new Label(stringMessages.name()));
|
||||
result.setWidget(0, 1, name);
|
||||
result.setWidget(1, 0, new Label(stringMessages.sailNumber()));
|
||||
result.setWidget(1, 1, sailId);
|
||||
result.setWidget(2, 0, new Label(stringMessages.nationality()));
|
||||
result.setWidget(2, 1, threeLetterIocCountryCode);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+23
-4
@@ -51,7 +51,7 @@ public class CompetitorPanel extends SimplePanel {
|
||||
private CellTable<CompetitorDTO> competitorTable;
|
||||
private MultiSelectionModel<CompetitorDTO> competitorSelectionModel;
|
||||
private ListDataProvider<CompetitorDTO> competitorProvider;
|
||||
private Iterable<CompetitorDTO> allCompetitors;
|
||||
private List<CompetitorDTO> allCompetitors;
|
||||
private Button removeCompetitorsButton;
|
||||
private TextBox filterField;
|
||||
private final AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
|
||||
@@ -202,12 +202,28 @@ public class CompetitorPanel extends SimplePanel {
|
||||
new CompetitorEditDialog(stringMessages, competitor, new DialogCallback<CompetitorDTO>() {
|
||||
@Override
|
||||
public void ok(CompetitorDTO competitor) {
|
||||
// sailingService.updateCompetitor(competitor);
|
||||
sailingService.updateCompetitor(competitor, new AsyncCallback<CompetitorDTO>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to update competitor: "+caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(CompetitorDTO updatedCompetitor) {
|
||||
// replace updated competitor in competitor list
|
||||
for (int i=0; i<allCompetitors.size(); i++) {
|
||||
if (allCompetitors.get(i).getIdAsString().equals(updatedCompetitor.getIdAsString())) {
|
||||
allCompetitors.set(i, updatedCompetitor);
|
||||
applyFilter();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel() {
|
||||
// TODO Auto-generated method stub
|
||||
}
|
||||
}).show();
|
||||
}
|
||||
@@ -236,7 +252,10 @@ public class CompetitorPanel extends SimplePanel {
|
||||
|
||||
@Override
|
||||
public void onSuccess(Iterable<CompetitorDTO> result) {
|
||||
allCompetitors = result;
|
||||
allCompetitors = new ArrayList<CompetitorDTO>();
|
||||
for (CompetitorDTO c : result) {
|
||||
allCompetitors.add(c);
|
||||
}
|
||||
applyFilter();
|
||||
}
|
||||
});
|
||||
|
||||
+2
@@ -328,4 +328,6 @@ public interface SailingService extends RemoteService {
|
||||
Iterable<CompetitorDTO> getCompetitors();
|
||||
|
||||
void removeCompetitors(Iterable<CompetitorDTO> competitorsToRemove);
|
||||
|
||||
CompetitorDTO updateCompetitor(CompetitorDTO competitor);
|
||||
}
|
||||
+3
-1
@@ -450,6 +450,8 @@ public interface SailingServiceAsync {
|
||||
void getCompetitors(AsyncCallback<Iterable<CompetitorDTO>> asyncCallback);
|
||||
|
||||
void removeCompetitors(Iterable<CompetitorDTO> competitorsToRemove, AsyncCallback<Void> callback);
|
||||
|
||||
|
||||
void updateCompetitor(CompetitorDTO competitor, AsyncCallback<CompetitorDTO> asyncCallback);
|
||||
|
||||
}
|
||||
|
||||
+1
@@ -825,4 +825,5 @@ public interface StringMessages extends Messages {
|
||||
String doYouReallyWantToRemoveCompetitor(String name);
|
||||
String filterCompetitors();
|
||||
String editCompetitor();
|
||||
String pleaseEnterASailNumber();
|
||||
}
|
||||
+2
-1
@@ -817,4 +817,5 @@ doYouReallyWantToRemoveEvent=Do you really want to remove event {0}?
|
||||
doYouReallyWantToRemoveCompetitors=Do you really want to remove the selected competitors?
|
||||
doYouReallyWantToRemoveCompetitor=Do you really want to remove competitor {0}?
|
||||
filterCompetitors=Filter competitors by name, boat class or sail number
|
||||
editCompetitor=Edit Competitor
|
||||
editCompetitor=Edit Competitor
|
||||
pleaseEnterASailNumber=Please enter a sail number
|
||||
+2
-1
@@ -813,4 +813,5 @@ doYouReallyWantToRemoveEvent=Möchten Sie wirklich die Veranstaltung {0} entfern
|
||||
doYouReallyWantToRemoveCompetitors=Möchten Sie wirlich die ausgewählten Teilnehmer entfernen?
|
||||
doYouReallyWantToRemoveCompetitor=Möchten Sie wirklicn den Teilnehmer {0} entfernen?
|
||||
filterCompetitors=Filtere Teilnehmer nach Name, Bootsklasse oder Segelnummer
|
||||
editCompetitor=Teilnehmer bearbeiten
|
||||
editCompetitor=Teilnehmer bearbeiten
|
||||
pleaseEnterASailNumber=Bitte Segelnummer eingeben
|
||||
+8
@@ -273,6 +273,7 @@ import com.sap.sailing.server.operationaltransformation.SetSuppressedFlagForComp
|
||||
import com.sap.sailing.server.operationaltransformation.SetWindSourcesToExclude;
|
||||
import com.sap.sailing.server.operationaltransformation.StopTrackingRace;
|
||||
import com.sap.sailing.server.operationaltransformation.StopTrackingRegatta;
|
||||
import com.sap.sailing.server.operationaltransformation.UpdateCompetitor;
|
||||
import com.sap.sailing.server.operationaltransformation.UpdateCompetitorDisplayNameInLeaderboard;
|
||||
import com.sap.sailing.server.operationaltransformation.UpdateEvent;
|
||||
import com.sap.sailing.server.operationaltransformation.UpdateIsMedalRace;
|
||||
@@ -3273,4 +3274,11 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
}
|
||||
getService().apply(new RemoveCompetitors(competitorsToRemove));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompetitorDTO updateCompetitor(CompetitorDTO competitor) {
|
||||
return getBaseDomainFactory().convertToCompetitorDTO(
|
||||
getService().apply(new UpdateCompetitor(competitor.getIdAsString(), competitor.getName(),
|
||||
competitor.getSailID(), getBaseDomainFactory().getOrCreateNationality(competitor.getThreeLetterIocCountryCode()))));
|
||||
}
|
||||
}
|
||||
+4
-4
@@ -2,11 +2,12 @@ package com.sap.sailing.server.operationaltransformation;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Nationality;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
import com.sap.sailing.server.RacingEventServiceOperation;
|
||||
|
||||
public class UpdateCompetitor extends AbstractRacingEventServiceOperation<Void> {
|
||||
public class UpdateCompetitor extends AbstractRacingEventServiceOperation<Competitor> {
|
||||
private static final long serialVersionUID = 1172181354320184263L;
|
||||
private final Serializable id;
|
||||
private final String newName;
|
||||
@@ -22,9 +23,8 @@ public class UpdateCompetitor extends AbstractRacingEventServiceOperation<Void>
|
||||
}
|
||||
|
||||
@Override
|
||||
public Void internalApplyTo(RacingEventService toState) throws Exception {
|
||||
toState.getBaseDomainFactory().getCompetitorStore().updateCompetitor(id, newName, newSailId, newNationality);
|
||||
return null;
|
||||
public Competitor internalApplyTo(RacingEventService toState) throws Exception {
|
||||
return toState.getBaseDomainFactory().getCompetitorStore().updateCompetitor(id, newName, newSailId, newNationality);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in new issue
Block a user