mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-06 04:13:51 +00:00
RegattaOverview: unified upper flag, lower flag and direction arrow to one column
This commit is contained in:
1 parent
30b851b4aa
commit
8fbfde3eb5
6 files changed
+86
-62
No files matched your search
+1
@@ -689,4 +689,5 @@ public interface StringMessages extends Messages {
|
||||
String competitorFilterExplanation();
|
||||
String protestTimeFinishesAt();
|
||||
String protestTimeFinishedAt();
|
||||
String flags();
|
||||
}
|
||||
+2
-1
@@ -681,4 +681,5 @@ dropReplicaConnection=Drop connection
|
||||
timePanelName=Time Control
|
||||
competitorFilterExplanation=The filter will show all competitors matching the criterias:dropReplicaConnection=Drop connection
|
||||
protestTimeFinishesAt=Protest time finishes at
|
||||
protestTimeFinishedAt=Protest time finished at
|
||||
protestTimeFinishedAt=Protest time finished at
|
||||
flags=Flags
|
||||
+2
-1
@@ -668,4 +668,5 @@ timePanelName=Zeitregler
|
||||
competitorFilterExplanation=Der Filter zeigt alle Teilnehmer, welche folgende Bedingungen erfüllen:
|
||||
The filter will show all competitors matching the criterias:dropReplicaConnection=Verbindung abbrechen
|
||||
protestTimeFinishesAt=Protestzeit endet um
|
||||
protestTimeFinishedAt=Protestzeit beendet um
|
||||
protestTimeFinishedAt=Protestzeit beendet um
|
||||
flags=Flaggen
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.regattaoverview;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
|
||||
public class FlagImageCell extends ImagesBarCell {
|
||||
static final String ACTION_EDIT = "ACTION_EDIT";
|
||||
private final StringMessages stringMessages;
|
||||
private static RegattaRaceStatesFlagsResources resources = GWT.create(RegattaRaceStatesFlagsResources.class);
|
||||
|
||||
public FlagImageCell(StringMessages stringConstants) {
|
||||
super();
|
||||
this.stringMessages = stringConstants;
|
||||
}
|
||||
|
||||
public FlagImageCell(SafeHtmlRenderer<String> renderer, StringMessages stringMessages) {
|
||||
super();
|
||||
this.stringMessages = stringMessages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<ImageSpec> getImageSpecs() {
|
||||
return Arrays.asList(
|
||||
new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.flagAP())),
|
||||
new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.arrowUp())));
|
||||
}
|
||||
}
|
||||
+20
-29
@@ -10,7 +10,6 @@ import java.util.Map;
|
||||
|
||||
import com.google.gwt.cell.client.ClickableTextCell;
|
||||
import com.google.gwt.cell.client.FieldUpdater;
|
||||
import com.google.gwt.cell.client.ImageResourceCell;
|
||||
import com.google.gwt.cell.client.SafeHtmlCell;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
@@ -19,7 +18,6 @@ import com.google.gwt.i18n.client.DateTimeFormat;
|
||||
import com.google.gwt.json.client.JSONObject;
|
||||
import com.google.gwt.json.client.JSONParser;
|
||||
import com.google.gwt.json.client.JSONValue;
|
||||
import com.google.gwt.resources.client.ImageResource;
|
||||
import com.google.gwt.safehtml.shared.SafeHtml;
|
||||
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
||||
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
|
||||
@@ -34,6 +32,7 @@ import com.google.gwt.user.client.ui.Button;
|
||||
import com.google.gwt.user.client.ui.DialogBox;
|
||||
import com.google.gwt.user.client.ui.Grid;
|
||||
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
|
||||
import com.google.gwt.user.client.ui.HasVerticalAlignment;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.SimplePanel;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
@@ -78,7 +77,6 @@ public class RegattaRaceStatesComponent extends SimplePanel implements Component
|
||||
private final SailingServiceAsync sailingService;
|
||||
private final StringMessages stringMessages;
|
||||
private final String eventIdAsString;
|
||||
private final FlagImageResolver flagImageResolver;
|
||||
|
||||
private EventDTO eventDTO;
|
||||
private List<RaceGroupDTO> raceGroupDTOs;
|
||||
@@ -113,7 +111,6 @@ public class RegattaRaceStatesComponent extends SimplePanel implements Component
|
||||
this.sailingService = sailingService;
|
||||
this.stringMessages = stringMessages;
|
||||
this.eventIdAsString = eventIdAsString;
|
||||
this.flagImageResolver = new FlagImageResolver();
|
||||
this.allEntries = new ArrayList<RegattaOverviewEntryDTO>();
|
||||
this.timerToSynchronize = timerToSynchronize;
|
||||
|
||||
@@ -378,32 +375,28 @@ public class RegattaRaceStatesComponent extends SimplePanel implements Component
|
||||
});
|
||||
raceCourseColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
|
||||
|
||||
Column<RegattaOverviewEntryDTO, ImageResource> lastUpperFlagColumn = new Column<RegattaOverviewEntryDTO, ImageResource>(
|
||||
new ImageResourceCell()) {
|
||||
@Override
|
||||
public ImageResource getValue(RegattaOverviewEntryDTO entryDTO) {
|
||||
return flagImageResolver.resolveFlagToImage(entryDTO.raceInfo.lastUpperFlag);
|
||||
}
|
||||
};
|
||||
SafeHtmlCell flagsCell = new SafeHtmlCell();
|
||||
Column<RegattaOverviewEntryDTO, SafeHtml> flagColumn = new Column<RegattaOverviewEntryDTO, SafeHtml>(flagsCell) {
|
||||
|
||||
Column<RegattaOverviewEntryDTO, ImageResource> lastLowerFlagColumn = new Column<RegattaOverviewEntryDTO, ImageResource>(
|
||||
new ImageResourceCell()) {
|
||||
@Override
|
||||
public ImageResource getValue(RegattaOverviewEntryDTO entryDTO) {
|
||||
return flagImageResolver.resolveFlagToImage(entryDTO.raceInfo.lastLowerFlag);
|
||||
}
|
||||
};
|
||||
|
||||
Column<RegattaOverviewEntryDTO, ImageResource> lastFlagDirectionColumn = new Column<RegattaOverviewEntryDTO, ImageResource>(
|
||||
new ImageResourceCell()) {
|
||||
@Override
|
||||
public ImageResource getValue(RegattaOverviewEntryDTO entryDTO) {
|
||||
if (entryDTO.raceInfo.lastUpperFlag != null)
|
||||
return flagImageResolver.resolveFlagDirectionToImage(entryDTO.raceInfo.isLastFlagDisplayed);
|
||||
else
|
||||
return null;
|
||||
public SafeHtml getValue(RegattaOverviewEntryDTO entryDTO) {
|
||||
String tooltip = "";
|
||||
if (entryDTO.raceInfo.lastUpperFlag != null) {
|
||||
tooltip = entryDTO.raceInfo.lastUpperFlag.name();
|
||||
if (entryDTO.raceInfo.lastLowerFlag != null) {
|
||||
tooltip += " over " + entryDTO.raceInfo.lastLowerFlag.name();
|
||||
}
|
||||
}
|
||||
return SailingFlagsBuilder.render(
|
||||
entryDTO.raceInfo.lastUpperFlag,
|
||||
entryDTO.raceInfo.lastLowerFlag,
|
||||
entryDTO.raceInfo.isLastFlagDisplayed,
|
||||
tooltip);
|
||||
}
|
||||
|
||||
};
|
||||
flagColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
|
||||
flagColumn.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
|
||||
|
||||
TextColumn<RegattaOverviewEntryDTO> raceAdditionalInformationColumn = new TextColumn<RegattaOverviewEntryDTO>() {
|
||||
@Override
|
||||
@@ -456,9 +449,7 @@ public class RegattaRaceStatesComponent extends SimplePanel implements Component
|
||||
table.addColumn(raceStartTimeColumn, stringMessages.startTime());
|
||||
table.addColumn(raceStatusColumn, stringMessages.status());
|
||||
table.addColumn(raceCourseColumn, stringMessages.course());
|
||||
table.addColumn(lastUpperFlagColumn, stringMessages.lastUpperFlag());
|
||||
table.addColumn(lastLowerFlagColumn, stringMessages.lastLowerFlag());
|
||||
table.addColumn(lastFlagDirectionColumn, stringMessages.flagStatus());
|
||||
table.addColumn(flagColumn, stringMessages.flags());
|
||||
table.addColumn(raceAdditionalInformationColumn, stringMessages.additionalInformation());
|
||||
|
||||
table.addColumnSortHandler(regattaOverviewListHandler);
|
||||
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
package com.sap.sailing.gwt.ui.regattaoverview;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.resources.client.ImageResource;
|
||||
import com.google.gwt.safecss.shared.SafeStyles;
|
||||
import com.google.gwt.safecss.shared.SafeStylesUtils;
|
||||
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.user.client.ui.AbstractImagePrototype;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
|
||||
public class SailingFlagsBuilder {
|
||||
|
||||
private final static SailingFlagsTemplates imageTemplate = GWT.create(SailingFlagsTemplates.class);
|
||||
|
||||
interface SailingFlagsTemplates extends SafeHtmlTemplates {
|
||||
/**
|
||||
* @param title
|
||||
* the tool-tip to display for the image on mouse-over
|
||||
* @param upperFlag
|
||||
* how to render the image; this needs to be an <img> tag, not enclosed by any other element,
|
||||
* as returned by {@link ImagesBarCell#makeImagePrototype(ImageResource)}
|
||||
*/
|
||||
@SafeHtmlTemplates.Template("<div title=\"{0}\"><div style=\"{1}\"><div>{2}</div><div>{3}</div></div><div>{4}</div></div>")
|
||||
SafeHtml cell(String title, SafeStyles styles, SafeHtml upperFlag, SafeHtml lowerFlag, SafeHtml directionArrow);
|
||||
}
|
||||
|
||||
protected static SailingFlagsTemplates getImageTemplate() {
|
||||
return imageTemplate;
|
||||
}
|
||||
|
||||
protected static AbstractImagePrototype makeImagePrototype(ImageResource resource) {
|
||||
return AbstractImagePrototype.create(resource);
|
||||
}
|
||||
|
||||
protected static SafeStyles getImageStyle() {
|
||||
return SafeStylesUtils.fromTrustedString("float:left;padding-right:10px;");
|
||||
}
|
||||
|
||||
public static SafeHtml render(Flags upperFlag, Flags lowerFlag, boolean isDisplayed, String tooltip) {
|
||||
FlagImageResolver flagImageResolver = new FlagImageResolver();
|
||||
ImageResource upperFlagImage = flagImageResolver.resolveFlagToImage(upperFlag);
|
||||
ImageResource lowerFlagImage = flagImageResolver.resolveFlagToImage(lowerFlag);
|
||||
ImageResource directionImage = flagImageResolver.resolveFlagDirectionToImage(isDisplayed);
|
||||
|
||||
SafeHtml upperFlagHtml = (upperFlagImage != null) ? makeImagePrototype(upperFlagImage).getSafeHtml() : SafeHtmlUtils.EMPTY_SAFE_HTML;
|
||||
SafeHtml lowerFlagHtml = (lowerFlagImage != null) ? makeImagePrototype(lowerFlagImage).getSafeHtml() : SafeHtmlUtils.EMPTY_SAFE_HTML;
|
||||
SafeHtml directionHtml = (upperFlagImage != null) ? makeImagePrototype(directionImage).getSafeHtml() : SafeHtmlUtils.EMPTY_SAFE_HTML;
|
||||
|
||||
SafeHtmlBuilder builder = new SafeHtmlBuilder();
|
||||
SafeStyles imgStyle = getImageStyle();
|
||||
SafeHtml rendered = getImageTemplate().cell(tooltip, imgStyle,
|
||||
upperFlagHtml, lowerFlagHtml, directionHtml);
|
||||
builder.append(rendered);
|
||||
return builder.toSafeHtml();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user