Implemented optional event message for event overview tab

This commit is contained in:
Steffen Schaefer committed 2015-05-20 14:47:03 +02:00
1 parent 04f825e498
commit 3fbe6bf6ad
9 files changed
+135 -14

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 788 B

@@ -3,14 +3,12 @@
xmlns:r="urn:import:com.sap.sailing.gwt.home.client.place.event.partials.raceListLive"
xmlns:o="urn:import:com.sap.sailing.gwt.home.client.place.event.overview">
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<g:HTMLPanel>
<g:HTMLPanel>
<o:EventOverviewStage ui:field="stage" />
<div class="{res.mediaCss.grid}">
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
<o:EventOverviewStage ui:field="stage" />
</div>
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
<r:RacesListLive ui:field="racesListLive" />
</div>
</div>
</g:HTMLPanel>
</g:HTMLPanel>
</ui:UiBinder>
@@ -1,11 +1,15 @@
package com.sap.sailing.gwt.home.client.place.event.overview;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.client.place.event.EventView;
import com.sap.sailing.gwt.home.client.place.event.partials.countdown.Countdown;
import com.sap.sailing.gwt.home.client.place.event.partials.livestream.Livestream;
import com.sap.sailing.gwt.home.client.place.event.partials.message.Message;
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.reload.RefreshableWidget;
import com.sap.sailing.gwt.ui.shared.dispatch.event.EventOverviewStageContentDTO;
import com.sap.sailing.gwt.ui.shared.dispatch.event.EventOverviewStageDTO;
@@ -14,7 +18,13 @@ import com.sap.sailing.gwt.ui.shared.dispatch.event.EventOverviewVideoStageDTO;
public class EventOverviewStage extends Composite implements RefreshableWidget<EventOverviewStageDTO> {
private final SimplePanel content = new SimplePanel();
private static StageUiBinder uiBinder = GWT.create(StageUiBinder.class);
interface StageUiBinder extends UiBinder<Widget, EventOverviewStage> {
}
@UiField SimplePanel stage;
@UiField Message message;
private Widget lastContent;
@@ -22,26 +32,28 @@ public class EventOverviewStage extends Composite implements RefreshableWidget<E
public EventOverviewStage(EventView.Presenter presenter) {
this.presenter = presenter;
initWidget(content);
initWidget(uiBinder.createAndBindUi(this));
}
@Override
public void setData(EventOverviewStageDTO stageData, long nextUpdate, int updateNo) {
message.setMessage(stageData.getEventMessage());
EventOverviewStageContentDTO data = stageData.getStageContent();
if(data instanceof EventOverviewVideoStageDTO) {
if(!(lastContent instanceof Livestream)) {
lastContent = new Livestream();
}
((Livestream)lastContent).setData((EventOverviewVideoStageDTO) data);
}
if (data instanceof EventOverviewTickerStageDTO) {
} else if (data instanceof EventOverviewTickerStageDTO) {
if (!(lastContent instanceof Countdown)) {
lastContent = new Countdown(presenter);
}
((Countdown) lastContent).setData((EventOverviewTickerStageDTO) data);
} else {
lastContent = null;
}
// TODO placeholder?
content.setWidget(lastContent);
stage.setWidget(lastContent);
}
}
@@ -0,0 +1,12 @@
<!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:m="urn:import:com.sap.sailing.gwt.home.client.place.event.partials.message">
<ui:with field="i18n" type="com.sap.sailing.gwt.ui.client.StringMessages" />
<ui:with field="i18n_ubi" type="com.sap.sailing.gwt.common.client.i18n.TextMessages"/>
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<g:HTMLPanel>
<m:Message ui:field="message" />
<div class="{res.mediaCss.grid}">
<g:SimplePanel ui:field="stage" addStyleNames="{res.mediaCss.small12} {res.mediaCss.columns}" />
</div>
</g:HTMLPanel>
</ui:UiBinder>
@@ -0,0 +1,31 @@
.message {
font-size: 1rem;
margin-top: 2em;
line-height: 1.733333333333333em;
background: #f2f2f2;
border: 1px solid #dedede;
border-radius: 0.333333333333333em;
padding: 1.066666666666667em 2.533333333333333em 1.066666666666667em 2.733333333333333em;
}
.message img {
display: inline-block;
vertical-align: top;
}
.message_icon {
width: 1.733333333333333em;
height: 1.733333333333333em;
margin-left: -1.733333333333333em;
}
.message_text {
font-size: 1.2em;
display: inline-block;
margin-left: 0.833333333333333em;
font-weight: 700;
}
.message_close {
cursor: pointer;
float: right;
width: 1.733333333333333em;
height: 1.733333333333333em;
margin-right: -1.733333333333333em;
}
@@ -0,0 +1,34 @@
package com.sap.sailing.gwt.home.client.place.event.partials.message;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.SpanElement;
import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Widget;
public class Message extends Widget {
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
interface MyUiBinder extends UiBinder<Element, Message> {
}
@UiField SpanElement text;
public Message() {
MessageResources.INSTANCE.css().ensureInjected();
setElement(uiBinder.createAndBindUi(this));
}
public void setMessage(String message) {
if(message == null || message.isEmpty()) {
getElement().getStyle().setDisplay(Display.NONE);
} else {
text.setInnerText(message);
getElement().getStyle().clearDisplay();
}
}
}
@@ -0,0 +1,17 @@
<!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">
<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.client.place.event.partials.message.MessageResources" />
<div style="display: none;" class="{res.mediaCss.grid}">
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
<div class="{local_res.css.message}">
<img src="images/home/notification.png" class="{local_res.css.message_icon}"></img>
<span ui:field="text" class="{local_res.css.message_text}">
<!-- event.notification -->
</span>
<!-- <img src="images/home/icon-close-cross.png" class="{local_res.css.message_close}"></img> -->
</div>
</div>
</div>
</ui:UiBinder>
@@ -0,0 +1,19 @@
package com.sap.sailing.gwt.home.client.place.event.partials.message;
import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;
public interface MessageResources extends ClientBundle {
public static final MessageResources INSTANCE = GWT.create(MessageResources.class);
@Source("Message.gss")
LocalCss css();
public interface LocalCss extends CssResource {
String message();
String message_icon();
String message_text();
String message_close();
}
}
@@ -4,10 +4,8 @@
xmlns:o="urn:import:com.sap.sailing.gwt.home.client.place.event.overview">
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<g:HTMLPanel>
<o:EventOverviewStage ui:field="stage" />
<div class="{res.mediaCss.grid}">
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
<o:EventOverviewStage ui:field="stage" />
</div>
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
<r:RacesListLive ui:field="racesListLive" />
</div>