From c85060108cfbe168c91081b15b58158841847fa3 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 11 Jun 2012 10:17:08 +0200 Subject: [PATCH 1/5] fixing bug 746: deadlock during scheduling wind estimation cache invalidation --- .../impl/TrackBasedEstimationWindTrackImpl.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackBasedEstimationWindTrackImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackBasedEstimationWindTrackImpl.java index 8aa32ca79e2..bc095cf0850 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackBasedEstimationWindTrackImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackBasedEstimationWindTrackImpl.java @@ -284,9 +284,13 @@ public class TrackBasedEstimationWindTrackImpl extends VirtualWindTrackImpl impl cacheInvalidationTimer.schedule(new TimerTask() { @Override public void run() { - synchronized (scheduledInvalidationInterval) { - cacheInvalidationTimer.cancel(); // terminates the timer thread - invalidateCache(); + // to avoid deadlock with another invalidateCache() and with scheduleCacheInvalidation we need + // to obtain the TrackBasedEstimationWindTrackImpl.this monitor first (see bug 746). + synchronized (TrackBasedEstimationWindTrackImpl.this) { + synchronized (scheduledInvalidationInterval) { + cacheInvalidationTimer.cancel(); // terminates the timer thread + invalidateCache(); + } } } }, delayForCacheInvalidationInMilliseconds); From 7a4f530134c9e0d18b30be3323cee4fd572b2869 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 11 Jun 2012 10:17:45 +0200 Subject: [PATCH 2/5] enhanced series creation dialog behavior --- .../EventStructureManagementPanel.java | 7 +- .../RegattaConfigImagesBarCell.java | 19 ++-- .../ui/adminconsole/RegattaCreateDialog.java | 22 ---- .../gwt/ui/adminconsole/RegattaDialog.java | 102 ------------------ ...egattaWithSeriesAndFleetsCreateDialog.java | 12 +-- .../SeriesWithFleetsCreateDialog.java | 93 ++++++---------- .../sailing/gwt/ui/client/StringMessages.java | 2 + .../gwt/ui/client/StringMessages.properties | 2 + .../ui/client/StringMessages_de.properties | 2 + 9 files changed, 52 insertions(+), 209 deletions(-) delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaCreateDialog.java delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDialog.java diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventStructureManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventStructureManagementPanel.java index 0012ca0b239..99faec8397e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventStructureManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventStructureManagementPanel.java @@ -252,12 +252,11 @@ public class EventStructureManagementPanel extends SimplePanel implements Regatt regattaActionColumn.setFieldUpdater(new FieldUpdater() { @Override public void update(int index, RegattaDTO regatta, String value) { - if ("ACTION_REMOVE".equals(value)) { - if (Window.confirm("Do you really want to remove the regatta: '" + regatta.name + "' ?")) { + if (RegattaConfigImagesBarCell.ACTION_REMOVE.equals(value)) { + if (Window.confirm(stringMessages.doYouReallyWantToRemoveRegatta(regatta.name))) { removeRegatta(regatta); } - } else if ("ACTION_EDIT".equals(value)) { - } else if ("ACTION_EDIT_RACES".equals(value)) { + } else if (RegattaConfigImagesBarCell.ACTION_EDIT.equals(value)) { addRaceToRegattaSeries(regatta); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigImagesBarCell.java index af920aad108..1b5a60af15c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigImagesBarCell.java @@ -10,14 +10,18 @@ import com.sap.sailing.gwt.ui.client.StringMessages; public class RegattaConfigImagesBarCell extends ImagesBarCell { + static final String ACTION_REMOVE = "ACTION_REMOVE"; + + static final String ACTION_EDIT = "ACTION_EDIT"; + public RegattaConfigImagesBarCell(StringMessages stringConstants) { super(); - this.stringConstants = stringConstants; + this.stringMessages = stringConstants; } public RegattaConfigImagesBarCell(SafeHtmlRenderer renderer, StringMessages stringConstants) { super(); - this.stringConstants = stringConstants; + this.stringMessages = stringConstants; } private static ImagesBarTemplates templates = GWT.create(ImagesBarTemplates.class); @@ -28,9 +32,7 @@ public class RegattaConfigImagesBarCell extends ImagesBarCell { private static final SafeHtml ICON_REMOVE = makeImage(resources.removeIcon()); - private static final SafeHtml ICON_EDIT_RACES = makeImage(resources.linkIcon()); - - private StringMessages stringConstants; + private StringMessages stringMessages; @Override protected void render(com.google.gwt.cell.client.Cell.Context context, SafeHtml data, SafeHtmlBuilder sb) { @@ -45,13 +47,10 @@ public class RegattaConfigImagesBarCell extends ImagesBarCell { SafeStyles imgStyle = SafeStylesUtils.fromTrustedString("float:left;cursor:hand;cursor:pointer;padding-right:5px;"); - SafeHtml rendered = templates.cell("ACTION_EDIT", imgStyle, stringConstants.actionEdit(), ICON_EDIT); + SafeHtml rendered = templates.cell(ACTION_EDIT, imgStyle, stringMessages.actionEdit(), ICON_EDIT); sb.append(rendered); - rendered = templates.cell("ACTION_EDIT_RACES", imgStyle, stringConstants.actionEditRaces(), ICON_EDIT_RACES); - sb.append(rendered); - - rendered = templates.cell("ACTION_REMOVE", imgStyle, stringConstants.actionRemove(), ICON_REMOVE); + rendered = templates.cell(ACTION_REMOVE, imgStyle, stringMessages.actionRemove(), ICON_REMOVE); sb.append(rendered); } } \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaCreateDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaCreateDialog.java deleted file mode 100644 index c4f29318fd7..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaCreateDialog.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.sap.sailing.gwt.ui.adminconsole; - -import java.util.Collection; - -import com.google.gwt.user.client.rpc.AsyncCallback; -import com.sap.sailing.gwt.ui.client.StringMessages; -import com.sap.sailing.gwt.ui.shared.RegattaDTO; - -public class RegattaCreateDialog extends RegattaDialog { - - public RegattaCreateDialog(Collection existingRegattas, - StringMessages stringConstants, AsyncCallback callback) { - super(new RegattaDTO(), new RegattaParameterValidator(stringConstants, existingRegattas), - stringConstants, callback); - - nameEntryField = createTextBox(null); - nameEntryField.setWidth("200px"); - boatClassEntryField = createTextBox(null); - boatClassEntryField.setWidth("200px"); - } - -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDialog.java deleted file mode 100644 index 3b4b638ef46..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDialog.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.sap.sailing.gwt.ui.adminconsole; - -import java.util.ArrayList; -import java.util.Collection; - -import com.google.gwt.user.client.rpc.AsyncCallback; -import com.google.gwt.user.client.ui.Grid; -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.client.DataEntryDialog; -import com.sap.sailing.gwt.ui.client.StringMessages; -import com.sap.sailing.gwt.ui.shared.BoatClassDTO; -import com.sap.sailing.gwt.ui.shared.RegattaDTO; - -public class RegattaDialog extends DataEntryDialog { - - protected StringMessages stringConstants; - protected RegattaDTO regatta; - - protected TextBox nameEntryField; - protected TextBox boatClassEntryField; - - protected static class RegattaParameterValidator implements Validator { - - private StringMessages stringConstants; - private ArrayList existingRegattas; - - public RegattaParameterValidator(StringMessages stringConstants, Collection existingRegattas) { - this.stringConstants = stringConstants; - this.existingRegattas = new ArrayList(existingRegattas); - } - - @Override - public String getErrorMessage(RegattaDTO regattaToValidate) { - String errorMessage = null; - boolean nameNotEmpty = regattaToValidate.name != null && regattaToValidate.name.length() > 0; - boolean boatClassNotEmpty = regattaToValidate.boatClass != null && regattaToValidate.boatClass.name.length() > 0; - - boolean unique = true; - for (RegattaDTO regatta : existingRegattas) { - if (regatta.name.equals(regattaToValidate.name)) { - unique = false; - break; - } - } - - if (!nameNotEmpty) { - errorMessage = stringConstants.pleaseEnterNonEmptyName(); - } else if (!boatClassNotEmpty) { - errorMessage = stringConstants.pleaseEnterNonEmptyName(); - } else if (!unique) { - errorMessage = stringConstants.regattaWithThisNameAlreadyExists(); - } - - return errorMessage; - } - - } - - public RegattaDialog(RegattaDTO regatta, RegattaParameterValidator validator, StringMessages stringConstants, - AsyncCallback callback) { - super(stringConstants.regatta(), null, stringConstants.ok(), stringConstants.cancel(), validator, - callback); - this.stringConstants = stringConstants; - this.regatta = regatta; - } - - @Override - protected RegattaDTO getResult() { - regatta.name = nameEntryField.getText(); - regatta.boatClass = new BoatClassDTO(boatClassEntryField.getText(), 0.0); - - return regatta; - } - - @Override - protected Widget getAdditionalWidget() { - VerticalPanel panel = new VerticalPanel(); - Widget additionalWidget = super.getAdditionalWidget(); - if (additionalWidget != null) { - panel.add(additionalWidget); - } - - Grid formGrid = new Grid(2, 2); - panel.add(formGrid); - - formGrid.setWidget(0, 0, new Label(stringConstants.name() + ":")); - formGrid.setWidget(0, 1, nameEntryField); - formGrid.setWidget(1, 0, new Label(stringConstants.boatClass() + ":")); - formGrid.setWidget(1, 1, boatClassEntryField); - return panel; - } - - @Override - public void show() { - super.show(); - nameEntryField.setFocus(true); - } - -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsCreateDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsCreateDialog.java index 9659b754441..3208a036db5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsCreateDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsCreateDialog.java @@ -115,9 +115,9 @@ public class RegattaWithSeriesAndFleetsCreateDialog extends DataEntryDialog(); seriesGrid = new Grid(0, 0); @@ -127,10 +127,8 @@ public class RegattaWithSeriesAndFleetsCreateDialog extends DataEntryDialog(); regatta.series.addAll(createdSeries); - return regatta; } @@ -143,22 +141,17 @@ public class RegattaWithSeriesAndFleetsCreateDialog extends DataEntryDialog() { @Override @@ -175,7 +168,6 @@ public class RegattaWithSeriesAndFleetsCreateDialog extends DataEntryDialog { public String getErrorMessage(SeriesDTO seriesToValidate) { String errorMessage = null; boolean nameNotEmpty = seriesToValidate.name != null && seriesToValidate.name.length() > 0; - boolean unique = true; for (SeriesDTO series : existingSeries) { if (series.name.equals(seriesToValidate.name)) { @@ -61,29 +60,24 @@ public class SeriesWithFleetsCreateDialog extends DataEntryDialog { break; } } - if (!nameNotEmpty) { errorMessage = stringConstants.pleaseEnterNonEmptyName(); } else if (!unique) { errorMessage = stringConstants.seriesWithThisNameAlreadyExists(); } - - if(errorMessage == null) { + if (errorMessage == null) { List fleetsToValidate = seriesToValidate.getFleets(); int index = 0; boolean fleetNameNotEmpty = true; - for (FleetDTO fleet : fleetsToValidate) { fleetNameNotEmpty = fleet.name != null && fleet.name.length() > 0; - if(!fleetNameNotEmpty) { + if (!fleetNameNotEmpty) { break; } index++; } - int index2 = 0; boolean fleetUnique = true; - HashSet setToFindDuplicates = new HashSet(); for (FleetDTO fleet: fleetsToValidate) { if(!setToFindDuplicates.add(fleet.name)) { @@ -92,18 +86,14 @@ public class SeriesWithFleetsCreateDialog extends DataEntryDialog { } index2++; } - if (!fleetNameNotEmpty) { errorMessage = stringConstants.fleet() + " " + (index + 1) + ": " + stringConstants.pleaseEnterNonEmptyName(); } else if (!fleetUnique) { errorMessage = stringConstants.fleet() + " " + (index2 + 1) + ": " + stringConstants.fleetWithThisNameAlreadyExists(); } - } - return errorMessage; } - } public SeriesWithFleetsCreateDialog(Collection existingSeries, StringMessages stringConstants, @@ -112,64 +102,55 @@ public class SeriesWithFleetsCreateDialog extends DataEntryDialog { new SeriesParameterValidator(stringConstants, existingSeries), callback); this.stringConstants = stringConstants; this.series = new SeriesDTO(); - nameEntryField = createTextBox(null); - nameEntryField.setWidth("200px"); - + nameEntryField.setVisibleLength(40); isMedalSeriesCheckbox = createCheckbox(stringConstants.medalSeries()); - fleetNameEntryFields = new ArrayList(); fleetColorEntryFields = new ArrayList(); fleetOrderNoEntryFields = new ArrayList(); - fleetsGrid = new Grid(0, 0); - // create at least one fleet - createFleetNameWidget("Default"); - createFleetOrderNoWidget(0); - createFleetColorWidget(null); + addFleetWidget("Default", 0, null); } private Widget createFleetNameWidget(String defaultName) { TextBox textBox = createTextBox(defaultName); - textBox.setWidth("175px"); + textBox.setVisibleLength(40); fleetNameEntryFields.add(textBox); return textBox; } private Widget createFleetColorWidget(Color defaultColor) { final ListBox listBox = createListBox(false); - final int fleetIndex = fleetNameEntryFields.size(); + final int fleetIndex = fleetNameEntryFields.size()-1; listBox.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { // set default order no of the selected color int selIndex = listBox.getSelectedIndex(); - IntegerBox orderNoBox = fleetOrderNoEntryFields.get(fleetIndex-1); - if(selIndex == 0) { + IntegerBox orderNoBox = fleetOrderNoEntryFields.get(fleetIndex); + TextBox nameBox = fleetNameEntryFields.get(fleetIndex); + if (selIndex == 0) { orderNoBox.setValue(0); } else { String value = listBox.getValue(selIndex); - for(FleetColors color: FleetColors.values()) { - if(color.name().equals(value)) { - orderNoBox.setValue(color.getDefaultOrderNo()); - break; - } + final FleetColors color = FleetColors.valueOf(value); + if (color != null) { + orderNoBox.setValue(color.getDefaultOrderNo()); + nameBox.setValue(""+color.name().charAt(0)+color.name().toLowerCase().substring(1)); } } + validate(); } }); - listBox.addItem(stringConstants.noColor()); - for(FleetColors value: FleetColors.values()) + for(FleetColors value: FleetColors.values()) { listBox.addItem(value.name()); - + } if(defaultColor == null) { listBox.setSelectedIndex(0); } - fleetColorEntryFields.add(listBox); - return listBox; } @@ -183,7 +164,6 @@ public class SeriesWithFleetsCreateDialog extends DataEntryDialog { protected SeriesDTO getResult() { series.name = nameEntryField.getText(); series.setMedal(isMedalSeriesCheckbox.getValue()); - List fleets = new ArrayList(); int groupsCount = fleetNameEntryFields.size(); for(int i = 0; i < groupsCount; i++) { @@ -197,9 +177,7 @@ public class SeriesWithFleetsCreateDialog extends DataEntryDialog { fleetDTO.setOrderNo(orderNo); fleets.add(fleetDTO); } - series.setFleets(fleets); - return series; } @@ -216,7 +194,6 @@ public class SeriesWithFleetsCreateDialog extends DataEntryDialog { } } } - return result; } @@ -229,50 +206,44 @@ public class SeriesWithFleetsCreateDialog extends DataEntryDialog { } Grid formGrid = new Grid(2, 2); panel.add(formGrid); - formGrid.setWidget(0, 0, new Label(stringConstants.name() + ":")); formGrid.setWidget(0, 1, nameEntryField); formGrid.setWidget(1, 1, isMedalSeriesCheckbox); - panel.add(createHeadlineLabel(stringConstants.fleets())); panel.add(fleetsGrid); - - Button addGroupButton = new Button("Add fleet"); - addGroupButton.addClickHandler(new ClickHandler() { - + Button addFleetButton = new Button(stringConstants.addFleet()); + addFleetButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { - createFleetNameWidget(null); - createFleetOrderNoWidget(0); - createFleetColorWidget(null); + addFleetWidget(null, 0, null); updateFleetsGrid(panel); } }); - panel.add(addGroupButton); - + panel.add(addFleetButton); updateFleetsGrid(panel); - return panel; } + + private void addFleetWidget(String fleetName, int ordering, Color color) { + createFleetNameWidget(fleetName); + createFleetOrderNoWidget(ordering); + createFleetColorWidget(color); + } private void updateFleetsGrid(VerticalPanel parentPanel) { int widgetIndex = parentPanel.getWidgetIndex(fleetsGrid); parentPanel.remove(fleetsGrid); - int fleetCount = fleetNameEntryFields.size(); fleetsGrid = new Grid(fleetCount + 1, 3); fleetsGrid.setCellSpacing(4); - - fleetsGrid.setHTML(0, 0, stringConstants.name()); - fleetsGrid.setHTML(0, 1, stringConstants.rank()); - fleetsGrid.setHTML(0, 2, stringConstants.color()); - + fleetsGrid.setHTML(0, 0, stringConstants.color()); + fleetsGrid.setHTML(0, 1, stringConstants.name()); + fleetsGrid.setHTML(0, 2, stringConstants.rank()); for(int i = 0; i < fleetCount; i++) { - fleetsGrid.setWidget(i+1, 0, fleetNameEntryFields.get(i)); - fleetsGrid.setWidget(i+1, 1, fleetOrderNoEntryFields.get(i)); - fleetsGrid.setWidget(i+1, 2, fleetColorEntryFields.get(i)); + fleetsGrid.setWidget(i+1, 0, fleetColorEntryFields.get(i)); + fleetsGrid.setWidget(i+1, 1, fleetNameEntryFields.get(i)); + fleetsGrid.setWidget(i+1, 2, fleetOrderNoEntryFields.get(i)); } - parentPanel.insert(fleetsGrid, widgetIndex); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index d21772f3fe9..edd1fbcb1f1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -320,4 +320,6 @@ public interface StringMessages extends Messages { String medalSeries(); String noColor(); String noRegatta(); + String addFleet(); + String doYouReallyWantToRemoveRegatta(String name); } \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index ec96665d46b..2bc61ce4719 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -318,3 +318,5 @@ color=Color medalSeries=Medal Series noColor=No color noRegatta=No regatta +addFleet=Add fleet +doYouReallyWantToRemoveRegatta=Do you really want to remove the regatta: '{0}'? \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index 67ac19aa39d..a7ef7774811 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -319,3 +319,5 @@ color=Farbe medalSeries=Medal Series noColor=Keine Farbe noRegatta=Keine Regatta +addFleet=Gruppe hinzufügen +doYouReallyWantToRemoveRegatta=Möchten Sie wirklich Regatta '{0}' löschen? \ No newline at end of file From 407ce5921e6e56d3810027cc40107d3bc24bdfb6 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 11 Jun 2012 10:22:21 +0200 Subject: [PATCH 3/5] fixed StringMessages --- .../com/sap/sailing/gwt/ui/client/StringMessages.properties | 2 +- .../com/sap/sailing/gwt/ui/client/StringMessages_de.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index 2bc61ce4719..afad680bf23 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -319,4 +319,4 @@ medalSeries=Medal Series noColor=No color noRegatta=No regatta addFleet=Add fleet -doYouReallyWantToRemoveRegatta=Do you really want to remove the regatta: '{0}'? \ No newline at end of file +doYouReallyWantToRemoveRegatta=Do you really want to remove the regatta "{0}"? \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index a7ef7774811..f3fb5e96094 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -320,4 +320,4 @@ medalSeries=Medal Series noColor=Keine Farbe noRegatta=Keine Regatta addFleet=Gruppe hinzufügen -doYouReallyWantToRemoveRegatta=Möchten Sie wirklich Regatta '{0}' löschen? \ No newline at end of file +doYouReallyWantToRemoveRegatta=Möchten Sie wirklich Regatta "{0}" löschen? \ No newline at end of file From ba0c1254bf74a538c9fc8189d0bdd53c02c96d5e Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 11 Jun 2012 10:23:22 +0200 Subject: [PATCH 4/5] renamed EventStructureManagementPanel to RegattaStructureManagementPanel --- .../sailing/gwt/ui/adminconsole/AdminConsoleEntryPoint.java | 2 +- ...agementPanel.java => RegattaStructureManagementPanel.java} | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/{EventStructureManagementPanel.java => RegattaStructureManagementPanel.java} (98%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleEntryPoint.java index 3080310bd1b..0efd616098a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleEntryPoint.java @@ -38,7 +38,7 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt regattaDisplayers = new HashSet(); - EventStructureManagementPanel eventStructureManagementPanel = new EventStructureManagementPanel(sailingService, this, stringMessages, this); + RegattaStructureManagementPanel eventStructureManagementPanel = new RegattaStructureManagementPanel(sailingService, this, stringMessages, this); tabPanel.add(eventStructureManagementPanel, stringMessages.regattas()); regattaDisplayers.add(eventStructureManagementPanel); TracTracEventManagementPanel tractracEventManagementPanel = new TracTracEventManagementPanel(sailingService, this, this, stringMessages); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventStructureManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaStructureManagementPanel.java similarity index 98% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventStructureManagementPanel.java rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaStructureManagementPanel.java index 99faec8397e..8ee6dd57fd1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventStructureManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaStructureManagementPanel.java @@ -55,7 +55,7 @@ import com.sap.sailing.gwt.ui.shared.SeriesDTO; * @author Frank Mittag (C5163974) * */ -public class EventStructureManagementPanel extends SimplePanel implements RegattaDisplayer { +public class RegattaStructureManagementPanel extends SimplePanel implements RegattaDisplayer { private final SailingServiceAsync sailingService; private final ErrorReporter errorReporter; private final StringMessages stringMessages; @@ -75,7 +75,7 @@ public class EventStructureManagementPanel extends SimplePanel implements Regatt private final AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class); private boolean supportEvents = false; - public EventStructureManagementPanel(SailingServiceAsync sailingService, ErrorReporter errorReporter, + public RegattaStructureManagementPanel(SailingServiceAsync sailingService, ErrorReporter errorReporter, StringMessages stringMessages, RegattaRefresher regattaRefresher) { this.sailingService = sailingService; this.stringMessages = stringMessages; From cc7ec98b707f4306c36ac7e3064e5c2657a2caea Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 11 Jun 2012 10:47:54 +0200 Subject: [PATCH 5/5] added a
element in Leaderboard panel to create bottom style --- .../sailing/gwt/ui/leaderboard/LeaderboardPanel.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java index 6520d39d5bb..1fdd7659079 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java @@ -453,21 +453,22 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta if (entry != null) { String fleetColorBarStyle = ""; if (entry.fleet != null && entry.fleet.getColor() != null) { - fleetColorBarStyle = " border-bottom: 3px solid "+entry.fleet.getColor().getAsHtml()+";"; + fleetColorBarStyle = " style=\"border-bottom: 3px solid "+entry.fleet.getColor().getAsHtml()+";\""; } + html.appendHtmlConstant(""); // don't show points if max points / penalty if (entry.reasonForMaxPoints == null || entry.reasonForMaxPoints == MaxPointsReason.NONE) { if (!entry.discarded) { - html.appendHtmlConstant(""); + html.appendHtmlConstant(""); html.appendHtmlConstant(entry.totalPoints == 0 ? "" : ""+entry.totalPoints); html.appendHtmlConstant(""); } else { - html.appendHtmlConstant(" "); + html.appendHtmlConstant(" "); html.appendHtmlConstant(entry.netPoints == 0 ? "" : ""+entry.netPoints); html.appendHtmlConstant(""); } } else { - html.appendHtmlConstant(" "); + html.appendHtmlConstant(" "); if (entry.discarded) { html.appendHtmlConstant(""); } @@ -477,6 +478,7 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta } html.appendHtmlConstant(""); } + html.appendHtmlConstant("
"); } }