fixed rendering problem in regattalist partial

This commit is contained in:
fmittag committed 2014-07-25 15:46:42 +02:00
1 parent 83d75ce64f
commit 3a94cc09bc
5 files changed
+94 -61

No files matched your search

@@ -1,20 +1,18 @@
package com.sap.sailing.gwt.home.client.place.event.regatta;
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.HeadingElement;
import com.google.gwt.dom.client.SpanElement;
import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.dom.client.Style.Visibility;
import com.google.gwt.dom.client.TableElement;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.EventListener;
import com.google.gwt.user.client.ui.UIObject;
import com.sap.sailing.gwt.home.client.place.event.EventPageNavigator;
import com.sap.sailing.gwt.ui.shared.EventDTO;
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
@@ -23,10 +21,10 @@ import com.sap.sailing.gwt.ui.shared.RaceGroupSeriesDTO;
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
import com.sap.sse.gwt.client.player.Timer;
public class Regatta extends Composite {
public class Regatta extends UIObject {
private static RegattaUiBinder uiBinder = GWT.create(RegattaUiBinder.class);
interface RegattaUiBinder extends UiBinder<Widget, Regatta> {
interface RegattaUiBinder extends UiBinder<DivElement, Regatta> {
}
@SuppressWarnings("unused")
@@ -39,6 +37,7 @@ public class Regatta extends Composite {
@SuppressWarnings("unused")
private LeaderboardGroupDTO leaderboardGroup;
@UiField DivElement regattaDiv;
@UiField HeadingElement regattaName1;
@UiField HeadingElement regattaName2;
@UiField DivElement leaderboardGroupName;
@@ -54,37 +53,41 @@ public class Regatta extends Composite {
@UiField DivElement isFinishedDiv;
@UiField DivElement isFinishedDiv2;
@UiField DivElement isScheduledDiv;
@UiField Anchor leaderboardLink;
@UiField HTMLPanel liveRaceInfosPerFleetPanel;
@UiField(provided=true) RegattaCompetitor competitorWithRank1;
@UiField(provided=true) RegattaCompetitor competitorWithRank2;
@UiField(provided=true) RegattaCompetitor competitorWithRank3;
@UiField AnchorElement leaderboardLink;
@UiField DivElement liveRaceInfosPerFleetPanel;
// @UiField(provided=true) RegattaCompetitor competitorWithRank1;
// @UiField(provided=true) RegattaCompetitor competitorWithRank2;
// @UiField(provided=true) RegattaCompetitor competitorWithRank3;
@UiField HTMLPanel regattaImage;
@UiField Anchor regattaImageWithLink;
@UiField DivElement regattaImageWithoutLink;
@UiField AnchorElement regattaImageWithLink;
@UiField HTMLPanel regattaNameDiv;
@UiField Anchor regattaNameWithLink;
@UiField DivElement regattaNameWithoutLink;
@UiField AnchorElement regattaNameWithLink;
public Regatta(EventDTO event, boolean isNavigatable, Timer timerForClientServerOffset, EventPageNavigator pageNavigator) {
this.event = event;
this.timerForClientServerOffset = timerForClientServerOffset;
this.pageNavigator = pageNavigator;
competitorWithRank1 = new RegattaCompetitor(1, null);
competitorWithRank2 = new RegattaCompetitor(2, null);
competitorWithRank3 = new RegattaCompetitor(3, null);
// competitorWithRank1 = new RegattaCompetitor(1, null);
// competitorWithRank2 = new RegattaCompetitor(2, null);
// competitorWithRank3 = new RegattaCompetitor(3, null);
RegattaResources.INSTANCE.css().ensureInjected();
initWidget(uiBinder.createAndBindUi(this));
regattaImageWithLink.getElement().setAttribute("data-rendermode", "link");
regattaImageWithLink.setVisible(isNavigatable);
regattaImage.setVisible(!isNavigatable);
setElement(uiBinder.createAndBindUi(this));
regattaNameWithLink.getElement().setAttribute("data-rendermode", "link");
regattaNameWithLink.setVisible(isNavigatable);
regattaNameDiv.setVisible(!isNavigatable);
if(isNavigatable) {
regattaDiv.setAttribute("data-rendermode", "link");
regattaImageWithoutLink.getStyle().setDisplay(Display.NONE);
regattaNameWithoutLink.getStyle().setDisplay(Display.NONE);
} else {
regattaImageWithLink.getStyle().setDisplay(Display.NONE);
regattaNameWithLink.getStyle().setDisplay(Display.NONE);
}
registerEvents();
}
public void setData(RaceGroupDTO raceGroup, StrippedLeaderboardDTO leaderboard, LeaderboardGroupDTO leaderboardGroup) {
@@ -93,7 +96,9 @@ public class Regatta extends Composite {
this.leaderboardGroup = leaderboardGroup;
boolean hasLiveRace = leaderboard.hasLiveRace(timerForClientServerOffset.getLiveTimePointInMillis());
isLiveDiv.setAttribute("data-labeltype", hasLiveRace ? "live" : "");
if(!hasLiveRace) {
isLiveDiv.getStyle().setDisplay(Display.NONE);
}
boolean isFinished = !hasLiveRace;
if(!isFinished) {
@@ -133,18 +138,41 @@ public class Regatta extends Composite {
}
}
@UiHandler("leaderboardLink")
public void goToLeaderboard(ClickEvent e) {
pageNavigator.openLeaderboardViewer(null, leaderboard);
private void registerEvents() {
Event.sinkEvents(leaderboardLink, Event.ONCLICK);
Event.setEventListener(leaderboardLink, new EventListener() {
@Override
public void onBrowserEvent(Event event) {
pageNavigator.openLeaderboardViewer(null, leaderboard);
}
});
Event.sinkEvents(regattaImageWithLink, Event.ONCLICK);
Event.setEventListener(regattaImageWithLink, new EventListener() {
@Override
public void onBrowserEvent(Event event) {
pageNavigator.goToRegattaRaces(raceGroup, leaderboard);
}
});
Event.sinkEvents(regattaNameWithLink, Event.ONCLICK);
Event.setEventListener(regattaNameWithLink, new EventListener() {
@Override
public void onBrowserEvent(Event event) {
pageNavigator.goToRegattaRaces(raceGroup, leaderboard);
}
});
}
@UiHandler("regattaImageWithLink")
public void goToRegattaRaces(ClickEvent e) {
pageNavigator.goToRegattaRaces(raceGroup, leaderboard);
}
@UiHandler("regattaNameWithLink")
public void goToRegattaRaces2(ClickEvent e) {
pageNavigator.goToRegattaRaces(raceGroup, leaderboard);
}
//
// @UiHandler("regattaImageWithLink")
// public void goToRegattaRaces(ClickEvent e) {
// pageNavigator.goToRegattaRaces(raceGroup, leaderboard);
// }
//
// @UiHandler("regattaNameWithLink")
// public void goToRegattaRaces2(ClickEvent e) {
// }
}
@@ -5,28 +5,26 @@
<ui:with field="i18n" type="com.sap.sailing.gwt.home.client.i18n.TextMessages"/>
<ui:with field="res" type="com.sap.sailing.gwt.home.client.HomeResources" />
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.place.event.regatta.RegattaResources" />
<g:HTMLPanel>
<!-- A view, introducing a regatta-->
<div class="{local_res.css.regatta}">
<div ui:field="regattaDiv" class="{local_res.css.regatta}" data-labeltype="">
<div class="{res.mainCss.grid}">
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
<div class="{local_res.css.regatta_intro}">
<g:Anchor ui:field="regattaImageWithLink">
<a ui:field="regattaImageWithLink">
<img src="images/home/regatta-boatclass_sample.png" alt="" height="140" width="140" class="{local_res.css.regatta_intro_image}"></img>
</g:Anchor>
<g:HTMLPanel ui:field="regattaImage">
</a>
<div ui:field="regattaImageWithoutLink">
<img src="images/home/regatta-boatclass_sample.png" alt="" height="140" width="140" class="{local_res.css.regatta_intro_image}"></img>
</g:HTMLPanel>
</div>
<div class="{local_res.css.regatta_intro_header}">
<div class="{res.mainCss.grid}">
<div class="{res.mediaCss.small4} {res.mediaCss.columns}">
<g:Anchor ui:field="regattaNameWithLink">
<a ui:field="regattaNameWithLink">
<h3 ui:field="regattaName1" class="{local_res.css.regatta_intro_header_name} {local_res.css.regatta_intro_header_namelink}" />
</g:Anchor>
<g:HTMLPanel ui:field="regattaNameDiv">
</a>
<div ui:field="regattaNameWithoutLink">
<h3 ui:field="regattaName2" class="{local_res.css.regatta_intro_header_name}"></h3>
</g:HTMLPanel>
</div>
<div ui:field="isLiveDiv" data-labeltype="live" class="{res.mainCss.label}"><ui:text from='{i18n.live}'/></div>
<div ui:field="isFinishedDiv" data-labeltype="finished" class="{res.mainCss.label}"><ui:text from='{i18n.finished}'/></div>
</div>
@@ -45,23 +43,24 @@
<div ui:field="regattaPhasesInfoDiv" class="{local_res.css.regatta_intro_phases}">
<div ui:field="regattaPhasesPanel" />
<div class="{local_res.css.regatta_intro_phases_leaderboardlink}">
<g:Anchor ui:field="leaderboardLink"><ui:text from='{i18n.leaderBoard}'/></g:Anchor>
<a ui:field="leaderboardLink"><ui:text from='{i18n.leaderBoard}'/></a>
</div>
</div>
<div ui:field="isScheduledDiv" class="{local_res.css.regatta_intro_scheduled}">
<ui:text from='{i18n.regattaRegattaStarts}'/>:&nbsp;<span ui:field="scheduledStart" />
</div>
<div ui:field="isFinishedDiv2" class="{local_res.css.regatta_intro_results}">
<!--
<s:regatta.RegattaCompetitor ui:field="competitorWithRank1" />
<s:regatta.RegattaCompetitor ui:field="competitorWithRank2" />
<s:regatta.RegattaCompetitor ui:field="competitorWithRank3" />
-->
</div>
<table ui:field="isLiveDiv2" class="{local_res.css.regatta_intro_fleets}">
<g:HTMLPanel ui:field="liveRaceInfosPerFleetPanel" />
<div ui:field="liveRaceInfosPerFleetPanel" />
</table>
</div>
</div>
</div>
</div>
</g:HTMLPanel>
</ui:UiBinder>
@@ -20,13 +20,15 @@ public class EventRegattaRaces extends Composite {
interface EventRegattaRacesUiBinder extends UiBinder<Widget, EventRegattaRaces> {
}
@UiField(provided=true) Regatta regatta;
// @UiField(provided=true) Regatta regatta;
@UiField HTMLPanel regattaPhasesNavigationPanel;
@UiField HTMLPanel regattaPhasesPanel;
@UiField HTMLPanel regattaPhasesPanel;
@UiField HTMLPanel rootPanel;
@SuppressWarnings("unused")
private final EventDTO event;
private final Regatta regatta;
private final Timer timerForClientServerOffset;
private final EventPageNavigator pageNavigator;
@@ -39,6 +41,8 @@ public class EventRegattaRaces extends Composite {
EventRegattaRacesResources.INSTANCE.css().ensureInjected();
initWidget(uiBinder.createAndBindUi(this));
rootPanel.getElement().appendChild(regatta.getElement());
}
public void setRacesFromRaceGroup(RaceGroupDTO raceGroup, StrippedLeaderboardDTO leaderboard) {
@@ -5,10 +5,12 @@
<ui:with field="i18n" type="com.sap.sailing.gwt.home.client.i18n.TextMessages"/>
<ui:with field="res" type="com.sap.sailing.gwt.home.client.HomeResources" />
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.place.event.regattaraces.EventRegattaRacesResources" />
<g:HTMLPanel>
<g:HTMLPanel ui:field="rootPanel">
<!-- The races of races for a day-->
<!--
<s:regatta.Regatta ui:field="regatta" />
-->
<div class="{local_res.css.regattanavigation}">
<div class="{res.mainCss.grid}">
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
@@ -103,8 +103,8 @@ figcaption {
.stackenblochen .stackenblochen {
width: auto;
max-width: none;
margin-left: -1rem;
margin-right: -1rem;
margin-left: literal("-1rem");
margin-right: literal("-1rem");
}
.navbar {