bug6105: added MediaMenuIcon to event/series logos for phone/desktop

This commit is contained in:
Axel Uhl
2025-05-05 17:10:21 +02:00
parent 3f62b48345
commit edbcffaa57
21 changed files with 96 additions and 33 deletions
@@ -36,6 +36,7 @@ import com.sap.sse.gwt.client.LinkUtil;
import com.sap.sse.gwt.client.controls.dropdown.DropdownHandler;
import com.sap.sse.gwt.client.controls.dropdown.DropdownItem;
import com.sap.sse.gwt.client.controls.dropdown.DropdownResources;
import com.sap.sse.gwt.client.media.MediaMenuIcon;
public class EventHeader extends Composite {
private static EventHeaderUiBinder uiBinder = GWT.create(EventHeaderUiBinder.class);
@@ -46,6 +47,7 @@ public class EventHeader extends Composite {
@UiField StringMessages i18n;
@UiField DivElement eventLogo;
@UiField(provided=true) MediaMenuIcon eventLogoMenuButton;
@UiField AnchorElement eventLogoAnchorUi;
@UiField HeadingElement staticTitle;
@UiField SpanElement eventName;
@@ -74,6 +76,7 @@ public class EventHeader extends Composite {
public EventHeader(EventView.Presenter presenter) {
this.event = presenter.getEventDTO();
this.presenter = presenter;
eventLogoMenuButton = new MediaMenuIcon(presenter.getUserService(), "takedownRequestForLogoImage");
initWidget(uiBinder.createAndBindUi(this));
local_res.css().ensureInjected();
dropdownitem_res.css().ensureInjected();
@@ -98,7 +101,7 @@ public class EventHeader extends Composite {
}
private void initFields() {
LogoUtil.setEventLogo(eventLogo, event);
LogoUtil.setEventLogo(eventLogo, event, eventLogoMenuButton);
if (presenter.showRegattaMetadata()) {
presenter.getCurrentEventNavigation().configureAnchorElement(eventLogoAnchorUi);
}
@@ -1,7 +1,8 @@
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:dp="urn:import:com.sap.sailing.gwt.home.desktop.partials"
xmlns:s="urn:import:com.sap.sailing.gwt.ui.shared">
xmlns:s="urn:import:com.sap.sailing.gwt.ui.shared"
xmlns:m="urn:import:com.sap.sse.gwt.client.media">
<ui:with field="i18n" type="com.sap.sailing.gwt.ui.client.StringMessages" />
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<ui:with field="local_res" type="com.sap.sailing.gwt.home.desktop.partials.eventheader.EventHeaderResources" />
@@ -10,7 +11,11 @@
<div class="{res.mediaCss.small12} {res.mediaCss.large9} {res.mediaCss.columns}">
<div class="{local_res.css.eventheader_intro}">
<div class="{local_res.css.eventheader_intro_logo}">
<a ui:field="eventLogoAnchorUi"><div ui:field="eventLogo" class="{local_res.css.eventheader_intro_logo_image}" /></a>
<a ui:field="eventLogoAnchorUi">
<div ui:field="eventLogo" class="{local_res.css.eventheader_intro_logo_image}">
<m:MediaMenuIcon ui:field="eventLogoMenuButton"/>
</div>
</a>
</div>
<!-- IF header.dropdown === 'regattas' -->
<div ui:field="dropdownTitle" class="{dropdownitem_res.css.dropdown} {dropdownitem_res.css.jsdropdown}">
@@ -18,13 +18,14 @@ import com.sap.sailing.gwt.home.desktop.partials.sharing.EventHeaderSharingButto
import com.sap.sailing.gwt.home.desktop.places.event.regatta.overviewtab.RegattaOverviewPlace;
import com.sap.sailing.gwt.home.desktop.places.fakeseries.SeriesView;
import com.sap.sailing.gwt.home.desktop.places.fakeseries.SeriesView.Presenter;
import com.sap.sailing.gwt.home.shared.SharedHomeResources;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.home.shared.partials.shared.SharingMetadataProvider;
import com.sap.sailing.gwt.home.shared.places.ShareablePlaceContext;
import com.sap.sailing.gwt.home.shared.utils.LabelTypeUtil;
import com.sap.sailing.gwt.home.shared.utils.LogoUtil;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sse.gwt.client.LinkUtil;
import com.sap.sse.gwt.client.media.MediaMenuIcon;
public class SeriesHeader extends Composite {
private static SeriesHeaderUiBinder uiBinder = GWT.create(SeriesHeaderUiBinder.class);
@@ -35,6 +36,7 @@ public class SeriesHeader extends Composite {
@UiField StringMessages i18n;
@UiField DivElement eventLogo;
@UiField(provided=true) MediaMenuIcon seriesLogoMenuButton;
@UiField SpanElement eventName;
@UiField DivElement eventState;
@UiField FlowPanel venues;
@@ -48,6 +50,7 @@ public class SeriesHeader extends Composite {
this.series = presenter.getSeriesDTO();
this.presenter = presenter;
SeriesHeaderResources.INSTANCE.css().ensureInjected();
seriesLogoMenuButton = new MediaMenuIcon(presenter.getUserService(), "takedownRequestForLogoImage");
initWidget(uiBinder.createAndBindUi(this));
initFields();
initSharing();
@@ -68,10 +71,7 @@ public class SeriesHeader extends Composite {
}
private void initFields() {
String logoUrl = series.getLogoImage() != null ? series.getLogoImage().getSourceRef() :
SharedHomeResources.INSTANCE.defaultEventLogoImage().getSafeUri().asString();
eventLogo.getStyle().setBackgroundImage("url(" + logoUrl + ")");
eventLogo.setTitle(series.getDisplayName());
LogoUtil.setEventLogo(eventLogo, series, seriesLogoMenuButton);
eventName.setInnerText(series.getDisplayName());
LabelTypeUtil.renderLabelType(eventState, series.getState().getStateMarker());
@@ -1,6 +1,7 @@
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:dp="urn:import:com.sap.sailing.gwt.home.desktop.partials">
xmlns:dp="urn:import:com.sap.sailing.gwt.home.desktop.partials"
xmlns:m="urn:import:com.sap.sse.gwt.client.media">
<ui:with field="i18n" type="com.sap.sailing.gwt.ui.client.StringMessages" />
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<ui:with field="local_res" type="com.sap.sailing.gwt.home.desktop.partials.seriesheader.SeriesHeaderResources" />
@@ -8,7 +9,9 @@
<div class="{res.mediaCss.small12} {res.mediaCss.large9} {res.mediaCss.columns}">
<div class="{local_res.css.eventheader_intro}">
<div class="{local_res.css.eventheader_intro_logo}">
<div ui:field="eventLogo" class="{local_res.css.eventheader_intro_logo_image}" />
<div ui:field="eventLogo" class="{local_res.css.eventheader_intro_logo_image} {res.mainCss.media_wrapper}">
<m:MediaMenuIcon ui:field="seriesLogoMenuButton"/>
</div>
</div>
<h2 class="{local_res.css.eventheader_intro_name}">
<span ui:field="eventName"></span>
@@ -20,6 +20,8 @@ import com.sap.sailing.gwt.home.shared.utils.LabelTypeUtil;
import com.sap.sailing.gwt.home.shared.utils.LogoUtil;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.databylogo.DataByLogo;
import com.sap.sse.gwt.client.media.MediaMenuIcon;
import com.sap.sse.gwt.client.media.TakedownNoticeService;
public class EventHeader extends Composite {
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
@@ -32,14 +34,16 @@ public class EventHeader extends Composite {
@UiField SpanElement eventRegattaUi;
@UiField DivElement eventStateUi;
@UiField AnchorElement eventLogoUi;
@UiField(provided=true) MediaMenuIcon eventLogoMenuButton;
@UiField DivElement eventDateUi;
@UiField DivElement eventLocationUi;
@UiField DivElement eventHeader;
@UiField DataByLogo dataByLogo;
@UiField SharingButtons sharingButtons;
public EventHeader(EventContext eventContext, EventViewDTO event, String optionalRegattaDisplayName, PlaceNavigation<?> logoNavigation) {
public EventHeader(EventContext eventContext, EventViewDTO event, String optionalRegattaDisplayName, PlaceNavigation<?> logoNavigation, TakedownNoticeService takedownNoticeService) {
EventHeaderResources.INSTANCE.css().ensureInjected();
this.eventLogoMenuButton = new MediaMenuIcon(takedownNoticeService, "takedownRequestForLogoImage");
initWidget(uiBinder.createAndBindUi(this));
setUiFieldValues(event, optionalRegattaDisplayName, logoNavigation);
setupSharing(eventContext, event);
@@ -53,7 +57,7 @@ public class EventHeader extends Composite {
nameSeparatorUi.removeFromParent();
}
LabelTypeUtil.renderLabelType(eventStateUi, event.getState().getStateMarker());
LogoUtil.setEventLogo(eventLogoUi, event);
LogoUtil.setEventLogo(eventLogoUi, event, eventLogoMenuButton);
if (logoNavigation != null) {
logoNavigation.configureAnchorElement(eventLogoUi);
}
@@ -2,7 +2,8 @@
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:dp="urn:import:com.sap.sailing.gwt.home.mobile.partials"
xmlns:s="urn:import:com.sap.sailing.gwt.ui.shared">
xmlns:s="urn:import:com.sap.sailing.gwt.ui.shared"
xmlns:m="urn:import:com.sap.sse.gwt.client.media">
<ui:with field="i18n" type="com.sap.sailing.gwt.ui.client.StringMessages" />
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
@@ -28,7 +29,9 @@
</div>
<div class="{local_res.css.eventheader_info_subtitle}">
<!-- IF event.logo -->
<a ui:field="eventLogoUi" class="{local_res.css.eventheader_info_subtitle_logo}"></a>
<a ui:field="eventLogoUi" class="{local_res.css.eventheader_info_subtitle_logo} {res.mainCss.media_wrapper}">
<m:MediaMenuIcon ui:field="eventLogoMenuButton"/>
</a>
<!-- IF END -->
<div class="{local_res.css.eventheader_info_subtitle_info}">
<!-- IF (event.name || event.date) -->
@@ -18,6 +18,8 @@ import com.sap.sailing.gwt.home.shared.places.fakeseries.SeriesContext;
import com.sap.sailing.gwt.home.shared.utils.LabelTypeUtil;
import com.sap.sailing.gwt.home.shared.utils.LogoUtil;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sse.gwt.client.media.MediaMenuIcon;
import com.sap.sse.gwt.client.media.TakedownNoticeService;
public class SeriesHeader extends Composite {
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
@@ -28,22 +30,24 @@ public class SeriesHeader extends Composite {
@UiField SpanElement eventNameUi;
@UiField DivElement eventStateUi;
@UiField AnchorElement eventLogoUi;
@UiField(provided=true) MediaMenuIcon seriesLogoMenuButton;
@UiField DivElement locationsUi;
@UiField SharingButtons sharingButtons;
public SeriesHeader(SeriesContext seriesContext, EventSeriesViewDTO series) {
this(seriesContext, series, null);
public SeriesHeader(SeriesContext seriesContext, EventSeriesViewDTO series, TakedownNoticeService takedownNoticeService) {
this(seriesContext, series, null, takedownNoticeService);
}
public SeriesHeader(SeriesContext seriesContext, EventSeriesViewDTO series, PlaceNavigation<?> logoNavigation) {
public SeriesHeader(SeriesContext seriesContext, EventSeriesViewDTO series, PlaceNavigation<?> logoNavigation, TakedownNoticeService takedownNoticeService) {
SeriesHeaderResources.INSTANCE.css().ensureInjected();
this.seriesLogoMenuButton = new MediaMenuIcon(takedownNoticeService, "takedownRequestForLogoImage");
initWidget(uiBinder.createAndBindUi(this));
setUiFieldValues(series, logoNavigation);
setupSharing(seriesContext, series);
}
private void setUiFieldValues(EventSeriesViewDTO series, PlaceNavigation<?> logoNavigation) {
LogoUtil.setEventLogo(eventLogoUi, series);
LogoUtil.setEventLogo(eventLogoUi, series, seriesLogoMenuButton);
if (logoNavigation != null) {
logoNavigation.configureAnchorElement(eventLogoUi);
}
@@ -1,7 +1,8 @@
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared"
xmlns:dp="urn:import:com.sap.sailing.gwt.home.mobile.partials">
xmlns:dp="urn:import:com.sap.sailing.gwt.home.mobile.partials"
xmlns:m="urn:import:com.sap.sse.gwt.client.media">
<ui:with field="i18n" type="com.sap.sailing.gwt.ui.client.StringMessages" />
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
@@ -22,7 +23,9 @@
</div>
<div class="{local_res.css.eventheader_info_subtitle}">
<!-- IF event.logo -->
<a ui:field="eventLogoUi" class="{local_res.css.eventheader_info_subtitle_logo}"></a>
<a ui:field="eventLogoUi" class="{local_res.css.eventheader_info_subtitle_logo} {res.mainCss.media_wrapper}">
<m:MediaMenuIcon ui:field="seriesLogoMenuButton"/>
</a>
<!-- IF END -->
<div class="{local_res.css.eventheader_info_subtitle_info}">
<div ui:field="locationsUi" class="{local_res.css.eventheader_info_subtitle_info_location}">
@@ -30,6 +30,7 @@ import com.sap.sailing.gwt.home.shared.places.event.EventContext;
import com.sap.sailing.gwt.home.shared.refresh.RefreshManager;
import com.sap.sailing.gwt.home.shared.refresh.RefreshManagerWithErrorAndBusy;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sse.gwt.client.media.TakedownNoticeService;
public abstract class AbstractEventView<P extends EventViewBase.Presenter> extends Composite implements EventViewBase {
@@ -47,8 +48,8 @@ public abstract class AbstractEventView<P extends EventViewBase.Presenter> exten
@UiField(provided = true) WindfinderControl windfinderUi;
@UiField SimplePanel viewContentUi;
private AbstractEventViewLayout(EventContext eventContext, EventViewDTO event, String regattaName, PlaceNavigation<?> logoNavigation) {
this.eventHeaderUi = new EventHeader(eventContext, event, regattaName, logoNavigation);
private AbstractEventViewLayout(EventContext eventContext, EventViewDTO event, String regattaName, PlaceNavigation<?> logoNavigation, TakedownNoticeService takedownNoticeService) {
this.eventHeaderUi = new EventHeader(eventContext, event, regattaName, logoNavigation, takedownNoticeService);
this.windfinderUi = new WindfinderControl(SpotDTO::getCurrentlyMostAppropriateUrl);
}
}
@@ -68,7 +69,7 @@ public abstract class AbstractEventView<P extends EventViewBase.Presenter> exten
this.currentPresenter = presenter;
String regattaName = showRegattaName ? currentPresenter.getRegatta().getDisplayName() : null;
PlaceNavigation<?> logoNavigation = enableLogoNavigation ? currentPresenter.getEventNavigation() : null;
this.layout = new AbstractEventViewLayout(currentPresenter.getCtx(), currentPresenter.getEventDTO(), regattaName, logoNavigation);
this.layout = new AbstractEventViewLayout(currentPresenter.getCtx(), currentPresenter.getEventDTO(), regattaName, logoNavigation, currentPresenter.getUserService());
initWidget(uiBinder.createAndBindUi(this.layout));
if (supportsRefresh) {
this.refreshManager = new RefreshManagerWithErrorAndBusy(contentRoot, layout.viewContentUi,
@@ -20,6 +20,7 @@ import com.sap.sailing.gwt.home.shared.places.error.ErrorPlace;
import com.sap.sailing.gwt.home.shared.places.fakeseries.AbstractSeriesPlace;
import com.sap.sailing.gwt.home.shared.places.fakeseries.SeriesContext;
import com.sap.sailing.gwt.ui.client.FlagImageResolver;
import com.sap.sse.security.ui.client.UserService;
public class SeriesActivity extends AbstractActivity implements SeriesView.Presenter {
private final MobileApplicationClientFactory clientFactory;
@@ -101,4 +102,9 @@ public class SeriesActivity extends AbstractActivity implements SeriesView.Prese
public EventSeriesViewDTO getSeriesDTO() {
return series;
}
@Override
public UserService getUserService() {
return clientFactory.getUserService();
}
}
@@ -9,6 +9,7 @@ import com.sap.sailing.gwt.home.communication.fakeseries.EventSeriesViewDTO;
import com.sap.sailing.gwt.home.mobile.places.SeriesLeaderboardNavigationProvider;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.home.shared.places.fakeseries.SeriesContext;
import com.sap.sse.security.ui.client.UserService;
public interface SeriesView extends IsWidget {
@@ -22,6 +23,8 @@ public interface SeriesView extends IsWidget {
PlaceNavigation<?> getEventNavigation(String eventId);
EventSeriesViewDTO getSeriesDTO();
UserService getUserService();
}
}
@@ -46,7 +46,7 @@ public class SeriesViewImpl extends Composite implements SeriesView {
this.currentPresenter = presenter;
this.refreshManager = new LifecycleRefreshManager(this, currentPresenter.getDispatch());
EventSeriesViewDTO series = currentPresenter.getSeriesDTO();
eventHeaderUi = new SeriesHeader(currentPresenter.getCtx(), series);
eventHeaderUi = new SeriesHeader(currentPresenter.getCtx(), series, currentPresenter.getUserService());
this.setupStatisticsBox(series);
leaderboardUi = new MinileaderboardBox(true, flagImageResolver);
initWidget(uiBinder.createAndBindUi(this));
@@ -19,6 +19,7 @@ import com.sap.sailing.gwt.home.shared.places.fakeseries.SeriesContext;
import com.sap.sailing.gwt.home.shared.places.fakeseries.SeriesDefaultPlace;
import com.sap.sailing.gwt.ui.client.FlagImageResolver;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sse.security.ui.client.UserService;
public class SeriesMiniOverallLeaderboardActivity extends AbstractActivity implements SeriesMiniOverallLeaderboardView.Presenter {
private final MobileApplicationClientFactory clientFactory;
@@ -97,4 +98,9 @@ public class SeriesMiniOverallLeaderboardActivity extends AbstractActivity imple
public EventSeriesViewDTO getSeriesDTO() {
return series;
}
@Override
public UserService getUserService() {
return clientFactory.getUserService();
}
}
@@ -10,6 +10,7 @@ import com.sap.sailing.gwt.home.mobile.places.SeriesLeaderboardNavigationProvide
import com.sap.sailing.gwt.home.mobile.places.series.OverallLeaderboardNavigationProvider;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.home.shared.places.fakeseries.SeriesContext;
import com.sap.sse.security.ui.client.UserService;
public interface SeriesMiniOverallLeaderboardView {
@@ -21,6 +22,8 @@ public interface SeriesMiniOverallLeaderboardView {
PlaceNavigation<?> getSeriesNavigation();
EventSeriesViewDTO getSeriesDTO();
UserService getUserService();
}
Widget asWidget();
@@ -35,7 +35,7 @@ public class SeriesMiniOverallLeaderboardViewImpl extends Composite implements S
public SeriesMiniOverallLeaderboardViewImpl(Presenter presenter, FlagImageResolver flagImageResolver) {
this.currentPresenter = presenter;
minileaderboardUi = new MinileaderboardBox(true, flagImageResolver);
eventHeaderUi = new SeriesHeader(presenter.getCtx(), presenter.getSeriesDTO(), presenter.getSeriesNavigation());
eventHeaderUi = new SeriesHeader(presenter.getCtx(), presenter.getSeriesDTO(), presenter.getSeriesNavigation(), presenter.getUserService());
initWidget(uiBinder.createAndBindUi(this));
RefreshManager refreshManager = new LifecycleRefreshManager(this, currentPresenter.getDispatch());
refreshManager.add(minileaderboardUi, new GetMiniOverallLeaderbordAction(presenter.getCtx().getLeaderboardGroupId(),
@@ -7,6 +7,7 @@
<ui:with field="local_res" type="com.sap.sailing.gwt.home.shared.partials.countdown.CountdownResources" />
<g:HTMLPanel addStyleNames="{local_res.css.countdown}">
<div ui:field="image" class="{local_res.css.countdown_image} {res.mainCss.media_wrapper}">
<!-- take-down notice/request button: -->
<m:MediaMenuIcon ui:field="imageMenuButton"/>
</div>
<div class="{local_res.css.countdown_content}">
@@ -10,7 +10,7 @@ import com.sap.sailing.gwt.home.shared.places.ShareablePlaceContext;
* Common context used by the different tabs in the series place.
*
*/
public class SeriesContext implements ShareablePlaceContext{
public class SeriesContext implements ShareablePlaceContext {
private final UUID seriesId;
private UUID leaderboardGroupId;
@@ -5,6 +5,7 @@ import com.google.gwt.safehtml.shared.SafeUri;
import com.sap.sailing.gwt.home.communication.event.HasLogo;
import com.sap.sailing.gwt.home.communication.eventview.EventViewDTO;
import com.sap.sailing.gwt.home.shared.SharedHomeResources;
import com.sap.sse.gwt.client.media.MediaMenuIcon;
/**
* Utility class to set logo url on UI elements using a default logo as fallback if no logo is provided.
@@ -19,15 +20,16 @@ public abstract class LogoUtil {
*
* @param eventLogoUi {@link Element} where the logo is set
* @param event {@link EventViewDTO} providing data
* @param logoMenuIcon take-down request menu button to update
*/
public static void setEventLogo(Element eventLogoUi, HasLogo event) {
public static void setEventLogo(Element eventLogoUi, HasLogo event, MediaMenuIcon logoMenuIcon) {
String logoUrl = event.getLogoImage() != null ? event.getLogoImage().getSourceRef() : DEFAULT_EVENT_LOGO.asString();
setLogoAndTitle(eventLogoUi, logoUrl, event.getDisplayName());
setLogoAndTitle(eventLogoUi, logoUrl, event.getDisplayName(), logoMenuIcon);
}
private static void setLogoAndTitle(Element logoUi, String logoUrl, String logoTitle) {
private static void setLogoAndTitle(Element logoUi, String logoUrl, String logoTitle, MediaMenuIcon logoMenuIcon) {
logoUi.getStyle().setBackgroundImage("url(" + logoUrl + ")");
logoUi.setTitle(logoTitle);
logoMenuIcon.setData(logoTitle, logoUrl);
}
}
@@ -20,9 +20,17 @@ import com.sap.sse.gwt.common.CommonSharedResources.CommonMainCss;
* When using in a UI Binder {@code .ui.xml} file, use like this:
*
* <pre>
* &lt;ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
* xmlns:g="urn:import:com.google.gwt.user.client.ui"
* ...
* xmlns:m="urn:import:com.sap.sse.gwt.client.media"&gt;
* &ltui:with field="res" type="com.sap.sse.gwt.CommonSharedResources" /&gt;
* ...
* &lt;div ui:field="image" class="{local_res.css.countdown_image} {res.mainCss.media_wrapper}"&gt;
* &lt;m:MediaMenuIcon ui:field="imageMenuButton"/&gt;
* &lt;/div&gt;
* ...
* &lt;/ui:UiBinder&gt;
* </pre>
* and in the UI Binder Java class declare the field for the {@code imageMenuButton} like this:
* <pre>
@@ -35,7 +43,13 @@ import com.sap.sse.gwt.common.CommonSharedResources.CommonMainCss;
* where the {@code takedownNotiveService} will typically be the {@code UserService} that may be available
* from a {@code Presenter} field, and {@code "takedownRequestForImageOnEventStage"} as the message key
* that resolves in the string messages of bundle {@code com.sap.sse.security} (see the {@code resources/stringmessages}
* folder there).
* folder there).<p>
*
* When you know the details of the media file to be displayed in the surrounding &lt;div&gt;, call
* {@link #setData(String, String)} with the {@code contextDescriptionMessageParameter} and the {@code contentUrl}
* parameters. The {@code contextDescriptionMessageParameter} will be used as a parameter for a single placeholder
* expected in the message string identified by the {@code contextDescriptionMessageKey} parameter of the
* constructor ({@code "takedownRequestForImageOnEventStage"} in the example above).
*
* @author Axel Uhl (d043530)
*
@@ -2,4 +2,5 @@ emailValidationSubject=Mail Validation
emailValidationMessage=Please click on the link below to validate your e-mail address for user {0}.
takedownRequestConfirmation=Dear {0},\n\nan e-mail with your media take-down request has been sent to {1}. The message we sent on your behalf was:\n\n{2}
takedownRequestForImageInTagColumn=Tag column in race board, {0}
takedownRequestForImageOnEventStage=Event stage for event {0}
takedownRequestForImageOnEventStage=Event stage for event {0}
takedownRequestForLogoImage=Logo image for {0}
@@ -2,4 +2,5 @@ emailValidationSubject=Mail-Validierung
emailValidationMessage=Bitte den folgenden Link benutzen, um die e-Mail Adresse für den Benutzer {0} zu validieren.
takedownRequestConfirmation=Lieber {0},\neine e-Mail mit dem Antrag zur Löschung von Medieninhalten wurde an die Adresse {1} gesendet. Die Nachricht lautet:\n\n{2}
takedownRequestForImageInTagColumn=Kommentarspalte im "Race Board", {0}
takedownRequestForImageOnEventStage=Veranstaltungs-Seite für Veranstaltung {0}
takedownRequestForImageOnEventStage=Veranstaltungs-Seite für Veranstaltung {0}
takedownRequestForLogoImage=Logo-Bild für {0}