bug4456 put flag renderer into own class, cleaned up templates, use

safestyle
This commit is contained in:
Kai Börnert committed 2018-05-09 11:15:28 +02:00
1 parent ab5b8e5b5f
commit 5050bf1b3e
7 files changed
+56 -28

No files matched your search

@@ -18,7 +18,7 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Label;
import com.sap.sailing.domain.common.dto.BoatDTO;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.gwt.ui.client.FlagImageResolver;
import com.sap.sailing.gwt.ui.client.FlagImageRenderer;
import com.sap.sailing.gwt.ui.client.FlagImageResolverImpl;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
@@ -93,7 +93,7 @@ public class CompactCompetitorTableWrapper<S extends RefreshableSelectionModel<C
final String twoLetterIsoCountryCode = competitor.getTwoLetterIsoCountryCode();
final String flagImageURL = competitor.getFlagImageURL();
if (flagImageURL != null && !flagImageURL.isEmpty()) {
sb.append(FlagImageResolver.FLAG_RENDERER_TEMPLATE.imageWithTitle(flagImageURL, competitor.getName()));
sb.append(FlagImageRenderer.imageWithTitle(flagImageURL, competitor.getName()));
sb.appendHtmlConstant("&nbsp;");
} else {
final ImageResource flagImageResource;
@@ -103,7 +103,7 @@ public class CompactCompetitorTableWrapper<S extends RefreshableSelectionModel<C
flagImageResource = FlagImageResolverImpl.get().getFlagImageResource(twoLetterIsoCountryCode);
}
if (flagImageResource != null) {
sb.append(FlagImageResolver.FLAG_RENDERER_TEMPLATE.image(flagImageResource.getSafeUri().asString()));
sb.append(FlagImageRenderer.image(flagImageResource.getSafeUri().asString()));
sb.appendHtmlConstant("&nbsp;");
}
}
@@ -17,7 +17,7 @@ import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.user.client.ui.Label;
import com.sap.sailing.domain.common.CompetitorDescriptor;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.gwt.ui.client.FlagImageResolver;
import com.sap.sailing.gwt.ui.client.FlagImageRenderer;
import com.sap.sailing.gwt.ui.client.FlagImageResolverImpl;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
@@ -136,7 +136,7 @@ public class CompetitorDescriptorTableWrapper<S extends RefreshableSelectionMode
flagImageResource = FlagImageResolverImpl.get().getFlagImageResource(twoLetterIsoCountryCode);
}
if (flagImageResource != null) {
sb.append(FlagImageResolver.FLAG_RENDERER_TEMPLATE.image(flagImageResource.getSafeUri().asString()));
sb.append(FlagImageRenderer.image(flagImageResource.getSafeUri().asString()));
sb.appendHtmlConstant("&nbsp;");
}
@@ -24,7 +24,7 @@ import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.dto.CompetitorWithBoatDTO;
import com.sap.sailing.domain.common.dto.CompetitorWithToolTipDTO;
import com.sap.sailing.gwt.ui.adminconsole.ColorColumn.ColorRetriever;
import com.sap.sailing.gwt.ui.client.FlagImageResolver;
import com.sap.sailing.gwt.ui.client.FlagImageRenderer;
import com.sap.sailing.gwt.ui.client.FlagImageResolverImpl;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
@@ -135,7 +135,7 @@ public class CompetitorTableWrapper<S extends RefreshableSelectionModel<Competit
final String twoLetterIsoCountryCode = competitor.getTwoLetterIsoCountryCode();
final String flagImageURL = competitor.getFlagImageURL();
if (flagImageURL != null && !flagImageURL.isEmpty()) {
sb.append(FlagImageResolver.FLAG_RENDERER_TEMPLATE.imageWithTitle(flagImageURL, competitor.getName()));
sb.append(FlagImageRenderer.imageWithTitle(flagImageURL, competitor.getName()));
sb.appendHtmlConstant("&nbsp;");
} else {
final ImageResource flagImageResource;
@@ -145,7 +145,7 @@ public class CompetitorTableWrapper<S extends RefreshableSelectionModel<Competit
flagImageResource = FlagImageResolverImpl.get().getFlagImageResource(twoLetterIsoCountryCode);
}
if (flagImageResource != null) {
sb.append(FlagImageResolver.FLAG_RENDERER_TEMPLATE.imageWithTitle(flagImageResource.getSafeUri().asString() ,competitor.getName()));
sb.append(FlagImageRenderer.imageWithTitle(flagImageResource.getSafeUri().asString() ,competitor.getName()));
sb.appendHtmlConstant("&nbsp;");
}
}
@@ -0,0 +1,43 @@
package com.sap.sailing.gwt.ui.client;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.dom.client.Style.VerticalAlign;
import com.google.gwt.safecss.shared.SafeStyles;
import com.google.gwt.safecss.shared.SafeStylesBuilder;
import com.google.gwt.safehtml.client.SafeHtmlTemplates;
import com.google.gwt.safehtml.shared.SafeHtml;
public class FlagImageRenderer {
private static final int DEFAULT_FLAG_HEIGHT = 12;
private static final int DEFAULT_FLAG_WIDTH = 18;
private static final Template FLAG_RENDERER_TEMPLATE = GWT.create(Template.class);
interface Template extends SafeHtmlTemplates {
@SafeHtmlTemplates.Template("<div style='{0}'></div>")
SafeHtml image(SafeStyles style);
@SafeHtmlTemplates.Template("<div title='{1}' style='{0}'></div>")
SafeHtml imageWithTitle(SafeStyles style, String title);
}
private FlagImageRenderer() {
}
public static SafeHtml image(String url) {
return FLAG_RENDERER_TEMPLATE.image(getStyle(DEFAULT_FLAG_WIDTH, DEFAULT_FLAG_HEIGHT, url));
}
private static SafeStyles getStyle(int width, int height, String backgroundImage) {
return new SafeStylesBuilder().verticalAlign(VerticalAlign.MIDDLE)
.appendTrustedString("background-repeat:no-repeat;").appendTrustedString("background-size:contain;")
.display(Display.INLINE_BLOCK).width(width, Unit.PX).height(height, Unit.PX)
.trustedBackgroundImage("url(" + backgroundImage + ")").toSafeStyles();
}
public static SafeHtml imageWithTitle(String flagImageURL, String name) {
return FLAG_RENDERER_TEMPLATE.imageWithTitle(getStyle(DEFAULT_FLAG_WIDTH, DEFAULT_FLAG_HEIGHT, flagImageURL),
name);
}
}
@@ -3,25 +3,10 @@ package com.sap.sailing.gwt.ui.client;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.RunAsyncCallback;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.safehtml.client.SafeHtmlTemplates;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeUri;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface FlagImageResolver {
static final Template FLAG_RENDERER_TEMPLATE = GWT.create(Template.class);
interface Template extends SafeHtmlTemplates {
@SafeHtmlTemplates.Template("<div style='vertical-align:middle;background-repeat:no-repeat;background-size:contain;display:inline-block;width:18px;height:12px;background-image:url({0})'></div>")
SafeHtml image(String imageUri);
@SafeHtmlTemplates.Template("<div style='vertical-align:middle;background-repeat:no-repeat;background-size:contain;display:inline-block;width:{1}px;height:{2}px;background-image:url({0})'></div>")
SafeHtml image(String imageUri, int width, int height);
@SafeHtmlTemplates.Template("<div title='{1}' style='vertical-align:middle;background-repeat:no-repeat;background-size:contain;display:inline-block;width:18px;height:12px;background-image:url({0})'></div>")
SafeHtml imageWithTitle(String imageUri, String title);
}
public static void get(AsyncCallback<FlagImageResolver> callback) {
GWT.runAsync(new RunAsyncCallback() {
@Override
@@ -8,7 +8,7 @@ import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.user.client.ui.FlowPanel;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
import com.sap.sailing.gwt.ui.client.FlagImageResolver;
import com.sap.sailing.gwt.ui.client.FlagImageRenderer;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel.LeaderBoardStyle;
import com.sap.sse.gwt.client.shared.components.ComponentResources;
@@ -31,12 +31,12 @@ public class ClassicLeaderboardStyle implements LeaderBoardStyle {
@Override
public void renderNationalityFlag(ImageResource nationalityFlagImageResource, SafeHtmlBuilder sb) {
sb.append(FlagImageResolver.FLAG_RENDERER_TEMPLATE.image(nationalityFlagImageResource.getSafeUri().asString()));
sb.append(FlagImageRenderer.image(nationalityFlagImageResource.getSafeUri().asString()));
}
@Override
public void renderFlagImage(String flagImageURL, SafeHtmlBuilder sb, CompetitorDTO competitor) {
sb.append(FlagImageResolver.FLAG_RENDERER_TEMPLATE.imageWithTitle(flagImageURL, competitor.getName()));
sb.append(FlagImageRenderer.imageWithTitle(flagImageURL, competitor.getName()));
}
@Override
@@ -56,7 +56,7 @@ import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSetti
import com.sap.sailing.gwt.ui.adminconsole.AdminConsoleTableResources;
import com.sap.sailing.gwt.ui.client.Collator;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
import com.sap.sailing.gwt.ui.client.FlagImageResolver;
import com.sap.sailing.gwt.ui.client.FlagImageRenderer;
import com.sap.sailing.gwt.ui.client.FlagImageResolverImpl;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
@@ -157,7 +157,7 @@ public class EditableLeaderboardPanel extends MultiRaceLeaderboardPanel {
flagImageResource = FlagImageResolverImpl.get().getFlagImageResource(twoLetterIsoCountryCode);
}
if (flagImageResource != null) {
sb.append(FlagImageResolver.FLAG_RENDERER_TEMPLATE.image(flagImageResource.getSafeUri().asString(), 18, 12));
sb.append(FlagImageRenderer.image(flagImageResource.getSafeUri().asString()));
sb.appendHtmlConstant("&nbsp;");
}
sb.appendEscaped(object.getShortInfo());