Merge branch 'design2015-mobile' of ssh://sapsailing.com/home/trac/git into design2015-mobile

# By Steffen Schaefer (4) and Benjamin Barth (2)
# Via Benjamin Barth
* 'design2015-mobile' of ssh://sapsailing.com/home/trac/git:
  Event overview mobile - Improved expandable/collapsable regattas
  Event overview mobile - Added additional StringMessages
  Added missing space for german translation
  Adjusted linking of the event teaser image in the mobile event list
  Removed unused UiBinder file
  Fixed build.properties to include the new html pages for desktop and mobile
This commit is contained in:
Papick Garcia Taboada committed 2015-06-17 14:40:57 +02:00
commit 0ce2fedb13
13 files changed
+80 -55

No files matched your search

@@ -52,5 +52,7 @@ bin.includes = META-INF/,\
AutoPlay.html,\
Home.css,\
Home.html,\
HomeDesktop.html,\
HomeMobile.html,\
SettingsDialog.css
output.. = WEB-INF/classes/
@@ -3,12 +3,12 @@ package com.sap.sailing.gwt.home.mobile.partials.recents;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.AnchorElement;
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.ImageElement;
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.Composite;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.client.shared.EventDatesFormatterUtil;
import com.sap.sailing.gwt.home.client.shared.LabelTypeUtil;
@@ -16,11 +16,11 @@ import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.ui.shared.general.EventMetadataDTO;
import com.sap.sailing.gwt.ui.shared.general.LabelType;
public class EventsOverviewRecentYearEvent extends Composite {
public class EventsOverviewRecentYearEvent extends Widget {
private static RecentEventTeaserUiBinder uiBinder = GWT.create(RecentEventTeaserUiBinder.class);
interface RecentEventTeaserUiBinder extends UiBinder<Widget, EventsOverviewRecentYearEvent> {
interface RecentEventTeaserUiBinder extends UiBinder<Element, EventsOverviewRecentYearEvent> {
}
@UiField
@@ -38,7 +38,7 @@ public class EventsOverviewRecentYearEvent extends Composite {
public EventsOverviewRecentYearEvent(final PlaceNavigation<?> placeNavigation, final EventMetadataDTO event,
LabelType labelType, boolean isTeaserEvent) {
initWidget(uiBinder.createAndBindUi(this));
setElement(uiBinder.createAndBindUi(this));
eventNameUi.setInnerText(event.getDisplayName());
if (isTeaserEvent) {
eventImageUi.getStyle().setDisplay(Display.BLOCK);
@@ -8,25 +8,23 @@
<ui:with field="local_res"
type="com.sap.sailing.gwt.home.mobile.partials.recents.EventsOverviewRecentResources" />
<g:HTMLPanel>
<a ui:field="eventLinkUi">
<img ui:field="eventImageUi" class="{local_res.css.eventsoverviewrecent_event_image}"></img>
<div class="{local_res.css.eventsoverviewrecent_event}">
<a ui:field="eventLinkUi">
<div class="{local_res.css.eventteaser_title}">
<div class="{local_res.css.eventteaser_title_name}">
<span ui:field="eventNameUi" />
<div ui:field="eventStateUi"
class="{local_res.css.eventteaser_title_name_state} {res.mainCss.label}" />
</div>
<div class="{local_res.css.eventteaser_title_location}">
<span ui:field="venueUi" />,&nbsp;<span ui:field="eventDateUi" />
</div>
<div class="{local_res.css.eventteaser_title}">
<div class="{local_res.css.eventteaser_title_name}">
<span ui:field="eventNameUi" />
<div ui:field="eventStateUi"
class="{local_res.css.eventteaser_title_name_state} {res.mainCss.label}" />
</div>
<div class="{local_res.css.eventsoverviewrecent_event_arrow}">
<img src="images/home/arrow-down-grey.png" alt="{i18n.goToEventOverview}"
class="{local_res.css.eventsoverviewrecent_event_arrow_image}"></img>
<div class="{local_res.css.eventteaser_title_location}">
<span ui:field="venueUi" />,&nbsp;<span ui:field="eventDateUi" />
</div>
</a>
</div>
<div class="{local_res.css.eventsoverviewrecent_event_arrow}">
<img src="images/home/arrow-down-grey.png" alt="{i18n.goToEventOverview}"
class="{local_res.css.eventsoverviewrecent_event_arrow_image}"></img>
</div>
</div>
</g:HTMLPanel>
</a>
</ui:UiBinder>
@@ -1,9 +0,0 @@
<!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.event">
<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.events.recent.EventsOverviewRecentResources" />
<s:EventTeaser ui:field='eventTeaser' addStyleNames="{res.mediaCss.small12} {res.mediaCss.medium6} {res.mediaCss.large4} {res.mediaCss.columns} {local_res.css.eventsoverviewrecent_year_content_floattoinlineblock_child}" />
</ui:UiBinder>
@@ -6,13 +6,13 @@ import java.util.Set;
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.Command;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.reload.RefreshableWidget;
import com.sap.sailing.gwt.home.mobile.partials.section.MobileSection;
import com.sap.sailing.gwt.home.mobile.partials.toggleButton.ToggleButton;
import com.sap.sailing.gwt.home.mobile.partials.toggleButton.ToggleButton.ToggleButtonCommand;
import com.sap.sailing.gwt.home.mobile.places.event.EventView.Presenter;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.ui.shared.dispatch.event.LiveRaceDTO;
@@ -21,6 +21,7 @@ import com.sap.sailing.gwt.ui.shared.eventview.RegattaMetadataDTO;
public class RegattaStatus extends Composite implements RefreshableWidget<RegattasAndLiveRacesDTO> {
private static final String TOGGLECONTAINERHIDDEN_STYLE = RegattaStatusResources.INSTANCE.css().togglecontainerhidden();
private static RegattaStatusUiBinder uiBinder = GWT.create(RegattaStatusUiBinder.class);
interface RegattaStatusUiBinder extends UiBinder<Widget, RegattaStatus> {
@@ -35,7 +36,12 @@ public class RegattaStatus extends Composite implements RefreshableWidget<Regatt
public RegattaStatus(Presenter presenter) {
this.presenter = presenter;
RegattaStatusResources.INSTANCE.css().ensureInjected();
toggleButtonUi = new ToggleButton(new ToggleButtonCommand());
toggleButtonUi = new ToggleButton(new ToggleButtonCommand() {
@Override
protected void execute(boolean expanded) {
collapsableContainerUi.setStyleName(TOGGLECONTAINERHIDDEN_STYLE, !expanded);
}
});
initWidget(uiBinder.createAndBindUi(this));
}
@@ -43,14 +49,22 @@ public class RegattaStatus extends Composite implements RefreshableWidget<Regatt
public void setData(RegattasAndLiveRacesDTO data, long nextUpdate, int updateNo) {
regattaContainerUi.clear();
collapsableContainerUi.clear();
for (Entry<RegattaMetadataDTO, Set<LiveRaceDTO>> pair : data.getRegattasWithRaces().entrySet()) {
RegattaStatusRegatta regattaWidget = addRegatta(regattaContainerUi, pair.getKey());
for (LiveRaceDTO race : pair.getValue()) {
regattaWidget.addRace(race);
if (data.hasRegattasWithRaces()) {
for (Entry<RegattaMetadataDTO, Set<LiveRaceDTO>> pair : data.getRegattasWithRaces().entrySet()) {
RegattaStatusRegatta regattaWidget = addRegatta(regattaContainerUi, pair.getKey());
for (LiveRaceDTO race : pair.getValue()) {
regattaWidget.addRace(race);
}
}
}
for (RegattaMetadataDTO regatta : data.getRegattasWithoutRaces()) {
addRegatta(collapsableContainerUi, regatta);
for (RegattaMetadataDTO regatta : data.getRegattasWithoutRaces()) {
addRegatta(collapsableContainerUi, regatta);
}
} else {
for (RegattaMetadataDTO regatta : data.getRegattasWithoutRaces()) {
addRegatta(regattaContainerUi, regatta);
}
collapsableContainerUi.removeFromParent();
toggleButtonUi.removeFromParent();
}
}
@@ -61,13 +75,4 @@ public class RegattaStatus extends Composite implements RefreshableWidget<Regatt
return regattaWidget;
}
private class ToggleButtonCommand implements Command {
private boolean collapsed = true;
@Override
public void execute() {
this.collapsed = !collapsed;
collapsableContainerUi.setStyleName(RegattaStatusResources.INSTANCE.css().togglecontainerhidden(), collapsed);
}
}
}
@@ -18,6 +18,6 @@
ui:field="collapsableContainerUi" />
</mp:content>
</mp:section.MobileSection>
<mp:toggleButton.ToggleButton ui:field="toggleButtonUi" buttonText="Show all Regattas"/>
<mp:toggleButton.ToggleButton ui:field="toggleButtonUi" label="{i18n.regattas}"/>
</g:FlowPanel>
</ui:UiBinder>
@@ -8,35 +8,50 @@ import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.ui.client.StringMessages;
public class ToggleButton extends Widget {
private static final StringMessages I18N = StringMessages.INSTANCE;
private static ToggleButtonUiBinder uiBinder = GWT.create(ToggleButtonUiBinder.class);
interface ToggleButtonUiBinder extends UiBinder<Element, ToggleButton> {
}
@UiField DivElement toggleButtonUi;
private final Command toggleCommand;
private final ToggleButtonCommand toggleCommand;
private String label;
public ToggleButton(Command toggleCommand) {
public ToggleButton(ToggleButtonCommand toggleCommand) {
this.toggleCommand = toggleCommand;
ToggleButtonResources.INSTANCE.css().ensureInjected();
setElement(uiBinder.createAndBindUi(this));
sinkEvents(Event.ONCLICK);
}
public void setButtonText(String text) {
toggleButtonUi.setInnerText(text);
public void setLabel(String label) {
toggleButtonUi.setInnerText(toggleCommand.expanded ? I18N.collapseX(label) : I18N.showAllX(label));
this.label = label;
}
@Override
public void onBrowserEvent(Event event) {
if (event.getTypeInt() == Event.ONCLICK) {
toggleCommand.execute();
toggleButtonUi.setInnerText(toggleCommand.expanded ? I18N.collapseX(label) : I18N.showAllX(label));
return;
}
super.onBrowserEvent(event);
}
public static abstract class ToggleButtonCommand implements Command {
private boolean expanded = false;
@Override
public final void execute() {
this.expanded = !expanded;
this.execute(expanded);
}
protected abstract void execute(boolean expanded);
}
}
@@ -1319,4 +1319,6 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, c
String goBack();
String resultsUpdate();
String competitorWonRace(String competitorName);
String showAllX(String text);
String collapseX(String text);
}
@@ -1287,3 +1287,5 @@ impressions=Impressions
notAvailableOnMobileMessage=This content is not available on mobile.\nSwitch to the desktop version?
gotoDesktop=Go to desktop version
goBack=Go back
showAllX=Show all {0}
collapseX=Collapse {0}
@@ -1274,6 +1274,8 @@ sailorInfoLongText=Offizielle Ergebnisse, Proteste,\nNotice Board, Segler-Wetter
resultsQuickfinder=Ergebnis Schnellauswahl
statistics=Statistiken
impressions=Eindrücke
notAvailableOnMobileMessage=Diese Ansicht ist noch nicht für die Mobile bzw.Smartphone Ansicht umgesetzt.\nWollen Sie die Desktop Ansicht besuchen?
notAvailableOnMobileMessage=Diese Ansicht ist noch nicht für die Mobile bzw. Smartphone Ansicht umgesetzt.\nWollen Sie die Desktop Ansicht besuchen?
gotoDesktop=Zur Desktopversion wechseln
goBack=Zurück
showAllX=Alle {0} anzeigen
collapseX={0} einklappen
@@ -1224,4 +1224,6 @@ statistics=Statistics
impressions=Impressions
notAvailableOnMobileMessage=This content is not available on mobile.\nSwitch to the desktop version?
gotoDesktop=Go to desktop version
goBack=Go back
goBack=Go back
showAllX=Show all {0}
collapseX=Collapse {0}
@@ -1276,4 +1276,6 @@ statistics=Statistics
impressions=Impressions
notAvailableOnMobileMessage=This content is not available on mobile.\nSwitch to the desktop version?
gotoDesktop=Go to desktop version
goBack=Go back
goBack=Go back
showAllX=Show all {0}
collapseX=Collapse {0}
@@ -31,4 +31,8 @@ public class RegattasAndLiveRacesDTO implements DTO {
public Set<RegattaMetadataDTO> getRegattasWithoutRaces() {
return regattasWithoutRaces;
}
public boolean hasRegattasWithRaces() {
return !regattasWithRaces.isEmpty();
}
}