Merge remote-tracking branch 'server/master'

This commit is contained in:
Axel Uhl committed 2015-05-19 12:58:28 +02:00
commit c7589e4204
45 files changed
+4333 -4260

No files matched your search

+49 -59
View File
@@ -25,7 +25,6 @@ body ::-webkit-scrollbar-button {
body ::-webkit-scrollbar-track {
border-left: 6px solid transparent;
border-right: 1px solid transparent;
background-clip: padding-box;
}
.collapsablePanel {
@@ -339,8 +338,10 @@ body ::-webkit-scrollbar-track {
}
.gwt-TabBar {
background: #ccc;
padding-top: 6px;
margin-top: 20px;
border-bottom: 1px solid #dedede;
margin-bottom: 10px;
}
.gwt-TabBar .gwt-TabBarFirst {
@@ -352,22 +353,27 @@ body ::-webkit-scrollbar-track {
.gwt-TabBar .gwt-TabBarItem {
margin-left: 4px;
padding: 4px 8px 4px 8px;
padding: 10px 12px;
cursor: pointer;
cursor: hand;
color: white;
color: black;
font-weight: normal;
text-align: center;
background: #8E8E8E;
-moz-border-radius: 3px 3px 0px 0px;
border-radius: 3px 3px 0px 0px;
background: #ebebeb;
border-radius: 4px 4px 0px 0px;
border-left: 1px solid #dedede;
border-top: 1px solid #dedede;
border-right: 1px solid #dedede;
}
.gwt-TabBarItem:FOCUS {
outline: none;
}
.gwt-TabBar .gwt-TabBarItem-selected {
cursor: default;
background: white;
color: #333;
font-weight: bold;
color: black;
}
.gwt-TabBar .gwt-TabBarItem-disabled {
@@ -696,76 +702,54 @@ body ::-webkit-scrollbar-track {
.gwt-DialogBox {
line-height: 1.4;
background-color: #cecece;
border: 1px solid #3e3e3e;
border-radius: 4px;
box-shadow: 0px 0px 10px 0px #3e3e3e;
}
.gwt-PopupPanelGlass {
background-color: rgba(140,140,140,0.5);
}
.gwt-DialogBox .Caption {
font-size: 14px;
padding: 8px 10px;
background-color: #cecece;
border: 1px solid #cecece;
-webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px;
-moz-border-radius-topleft: 5px;
-moz-border-radius-topright: 5px;
-o-border-radius-topleft: 5px;
-o-border-radius-topright: 5px;
-ms-border-radius-topleft: 5px;
-ms-border-radius-topright: 5px;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
font-family: OpenSansSemiBold, Verdana, Arial, sans-serif;
background-color: #ededed;
border-bottom: 1px solid #3e3e3e;
font-family: OpenSansSemiBold, Verdana, Arial, sans-serif;
}
.gwt-DialogBox .dialogContent {
background: #ffffff;
padding: 10px;
border: 1px solid #cecece;
-webkit-border-bottom-right-radius: 5px;
-webkit-border-bottom-left-radius: 5px;
-o-border-bottom-right-radius: 5px;
-o-border-bottom-left-radius: 5px;
-ms-border-bottom-right-radius: 5px;
-ms-border-bottom-left-radius: 5px;
-moz-border-radius-bottomright: 5px;
-moz-border-radius-bottomleft: 5px;
border-bottom-right-radius: 5px;
border-bottom-left-radius: 5px;
}
.gwt-Button, .gwt-Button:visited {
font-family: OpenSansSemiBold, Verdana, Arial, sans-serif;
font-size: 0,9rem;
display: inline-block;
color: #fff;
border: none;
background: url(images/btn-cta-orangeleft.png) center top repeat-x;
display: inline-block;
padding: 2px 10px 4px;
color: #fff;
text-decoration: none;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
-o-border-radius: 5px;
-ms-border-radius: 5px;
border-radius: 5px;
border-bottom: 1px solid rgba(0, 0, 0, 0.25);
cursor: pointer;
height: 24px;
white-space: nowrap;
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
-o-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
-ms-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25);
padding: 5px 10px;
border-radius: 4px;
background-color: #efaa00;
-webkit-transition: background-color 0.2s;
-moz-transition: background-color 0.2s;
transition: background-color 0.2s;
text-decoration: none;
cursor: pointer;
}
.gwt-Button:active {
top: 1px;
position: relative;
border: none;
}
.gwt-Button:hover {
background: url(images/btn-cta-orangeleft.png) center -30px repeat-x;
cursor: pointer;
background-color: #d79900;
outline: none;
text-decoration: none;
}
.gwt-Button[disabled] {
@@ -935,3 +919,9 @@ video {
padding: 8px 2px;
font-size: 10px;
}
label {
padding-left: 4px;
}
@@ -4,16 +4,11 @@
}
.dialogInnerHeadline {
border: 1px solid #CCCCCC;
border-bottom: 1px solid #CCCCCC;
font-family: OpenSansSemiBold,Arial,Verdana,sans-serif;
height: 21px;
padding: 2px 0 0 7px;
border-radius: 3px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
-o-border-radius: 3px;
-ms-border-radius: 3px;
margin: 0 0 10px 0;
padding: 2px 0 0 2px;
margin-bottom: 4px;
}
.dialogInnerHeadlineOther {
@@ -27,5 +22,5 @@
}
.SettingsDialogComponent .gwt-CheckBox {
padding: 0 10px 0 0;
padding: 0 10px 10px 0;
}
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10.3 22.2"><path fill="#FFF" d="M6.9 22.2H2.3V11.1H0V7.3h2.3V5c0-3.1 1.3-5 5-5h3.1v3.8h-2c-1.4 0-1.5.6-1.5 1.6v1.9h3.5l-.4 3.8H6.9v11.1z"/></svg>

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23.5 19.1"><path fill="#FFF" d="M23.48 2.293c-.9.4-1.8.6-2.8.8 1-.6 1.8-1.5 2.1-2.7-.9.6-2 1-3.1 1.2-.9-.9-2.1-1.5-3.5-1.5-2.7 0-4.8 2.2-4.8 4.8 0 .4 0 .7.1 1.1-4-.2-7.6-2.1-9.9-5-.4.7-.7 1.5-.7 2.4 0 1.7.9 3.1 2.1 4-.8 0-1.5-.2-2.2-.6v.1c0 2.3 1.7 4.3 3.9 4.7-.4.1-.8.2-1.3.2-.3 0-.6 0-.9-.1.6 1.9 2.4 3.3 4.5 3.3-1.7 1.3-3.7 2.1-6 2.1-.4 0-.8 0-1.2-.1 2.1 1.4 4.7 2.2 7.4 2.2 8.9 0 13.7-7.3 13.7-13.7v-.6c1.2-.8 2-1.7 2.6-2.6z"/></svg>

After

Width:  |  Height:  |  Size: 490 B

@@ -31,10 +31,6 @@
/* font-size: 0; */
margin-bottom: -1px;
}
.navigation a{
border-top-left-radius:4px;
border-top-right-radius:4px;
}
.tabExtension {
float: right;
margin-left: 0.5em;
@@ -1,16 +1,18 @@
<!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="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<ui:style>
.mainContent {
min-height: 400px;
height: 100%;
}
</ui:style>
<g:HTMLPanel>
<s:header.Header ui:field="headerPanel" />
<g:SimplePanel ui:field="mainContentPanel" styleName="{style.mainContent}" />
<g:HTMLPanel addStyleNames="{style.mainContent}">
<div class="{res.mainCss.wrapper}">
<s:header.Header ui:field="headerPanel" />
<g:SimplePanel ui:field="mainContentPanel" />
</div>
<s:footer.Footer ui:field="footerPanel" />
</g:HTMLPanel>
</ui:UiBinder>
@@ -41,6 +41,8 @@ public class OldLeaderboard extends Composite {
@UiField ParagraphElement lastScoringUpdateTextDiv;
@UiField ParagraphElement lastScoringCommentDiv;
@UiField ParagraphElement scoringSchemeDiv;
@UiField
EventRegattaLeaderboardResources local_res;
private LeaderboardPanel leaderboardPanel;
private Timer autoRefreshTimer;
@@ -56,14 +58,18 @@ public class OldLeaderboard extends Composite {
@UiHandler("autoRefreshAnchor")
void toogleAutoRefreshClicked(ClickEvent event) {
autoRefreshAnchor.removeStyleName(local_res.css().regattaleaderboard_meta_reload_live());
autoRefreshAnchor.removeStyleName(local_res.css().regattaleaderboard_meta_reload_playing());
if (autoRefreshTimer != null) {
if (autoRefreshTimer.getPlayState() == PlayStates.Playing) {
autoRefreshTimer.pause();
autoRefreshAnchor.getElement().getStyle().setBackgroundColor("#8ab54e");
// autoRefreshAnchor.getElement().getStyle().setBackgroundColor("#8ab54e");
// autoRefreshAnchor.addStyleName(local_res.css().regattaleaderboard_meta_reload_playing());
} else {
// playing the standalone leaderboard means putting it into live mode
autoRefreshTimer.setPlayMode(PlayModes.Live);
autoRefreshAnchor.getElement().getStyle().setBackgroundColor("red");
// autoRefreshAnchor.getElement().getStyle().setBackgroundColor("red");
autoRefreshAnchor.addStyleName(local_res.css().regattaleaderboard_meta_reload_live());
}
}
}
@@ -6,7 +6,7 @@
<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.regattaleaderboard.EventRegattaLeaderboardResources" />
<ui:with field="local_res2" type="com.sap.sailing.gwt.home.client.place.event.oldleaderboard.OldLeaderboardResources" />
<g:HTMLPanel >
<g:HTMLPanel styleName=" {local_res.css.marginFix}">
<div class="{res.mediaCss.grid}" >
<div class="{res.mediaCss.small7} {res.mediaCss.column} {local_res.css.regattaleaderboard_meta_scoring}">
<p ui:field="lastScoringCommentDiv" class="{local_res.css.regattaleaderboard_meta_scoring_comment}"></p>
@@ -22,8 +22,8 @@
</div>
</div>
<div class="{res.mediaCss.grid} {local_res.css.marginFix}" >
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
<div class="{res.mediaCss.grid}" >
<div class="{res.mediaCss.small12} {res.mediaCss.columns} {local_res.css.letItScroll}">
<table class="{local_res.css.regattaleaderboard_table}">
<tr>
<td>
@@ -1,6 +1,2 @@
.oldMultiLeaderboardPanel {
background-color:#f8f8f8;
padding: 0 10px 10px 10px;
width: 100%;
font-weight: bold;
}
@@ -40,7 +40,10 @@ public class OldMultiLeaderboard extends Composite {
@UiField ParagraphElement lastScoringUpdateTimeDiv;
@UiField ParagraphElement lastScoringUpdateTextDiv;
@UiField ParagraphElement lastScoringCommentDiv;
@UiField ParagraphElement scoringSchemeDiv;
@UiField
ParagraphElement scoringSchemeDiv;
@UiField
EventRegattaLeaderboardResources local_res;
private MultiLeaderboardPanel multiLeaderboardPanel;
private Timer autoRefreshTimer;
@@ -57,13 +60,18 @@ public class OldMultiLeaderboard extends Composite {
@UiHandler("autoRefreshAnchor")
void toogleAutoRefreshClicked(ClickEvent event) {
if(autoRefreshTimer != null) {
autoRefreshAnchor.removeStyleName(local_res.css().regattaleaderboard_meta_reload_live());
autoRefreshAnchor.removeStyleName(local_res.css().regattaleaderboard_meta_reload_playing());
if (autoRefreshTimer.getPlayState() == PlayStates.Playing) {
autoRefreshTimer.pause();
autoRefreshAnchor.getElement().getStyle().setBackgroundColor("#f0ab00");
// autoRefreshAnchor.getElement().getStyle().setBackgroundColor("#f0ab00");
// autoRefreshAnchor.addStyleName(local_res.css().regattaleaderboard_meta_reload_playing());
} else {
// playing the standalone leaderboard means putting it into live mode
autoRefreshTimer.setPlayMode(PlayModes.Live);
autoRefreshAnchor.getElement().getStyle().setBackgroundColor("red");
// autoRefreshAnchor.getElement().getStyle().setBackgroundColor(r);
autoRefreshAnchor.addStyleName(local_res.css().regattaleaderboard_meta_reload_live());
}
}
}
@@ -6,7 +6,7 @@
<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.regattaleaderboard.EventRegattaLeaderboardResources" />
<ui:with field="local_res2" type="com.sap.sailing.gwt.home.client.place.event.oldmultileaderboard.OldMultiLeaderboardResources" />
<g:HTMLPanel>
<g:HTMLPanel styleName=" {local_res.css.marginFix}">
<div class="{res.mediaCss.grid}" >
<div class="{res.mediaCss.small6} {res.mediaCss.column} {local_res.css.regattaleaderboard_meta_scoring}">
<p ui:field="lastScoringCommentDiv" class="{local_res.css.regattaleaderboard_meta_scoring_comment}"></p>
@@ -22,8 +22,8 @@
</div>
</div>
<div class="{res.mediaCss.grid} {local_res.css.marginFix}" >
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
<div class="{res.mediaCss.grid}" >
<div class="{res.mediaCss.small12} {res.mediaCss.columns} {local_res.css.letItScroll}">
<table class="{local_res.css.regattaleaderboard_table}">
<tr>
<td>
@@ -189,15 +189,15 @@
}
.eventregattarace_action {
float: right;
width: 13%;
text-align: center;
text-transform: uppercase;
cursor: pointer;
}
.eventregattarace_action_watch,
.eventregattarace_action_analyze {
width: 9.666666666666666em;
max-width: 100%;
width: 10em;
padding-left: 10px;
padding-right: 10px;
}
.eventregattarace_action_watch {
background-color: #f00;
@@ -1,13 +1,7 @@
package com.sap.sailing.gwt.home.client.place.event.regatta;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.sap.sailing.domain.common.DetailType;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
import com.sap.sailing.gwt.ui.client.DebugIdHelper;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
@@ -16,7 +10,6 @@ import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardCha
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardChartSettings;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
import com.sap.sse.common.Util;
import com.sap.sse.common.settings.AbstractSettings;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
@@ -40,7 +33,6 @@ public class RegattaAnalyticsDataManager {
private final UserAgentDetails userAgent;
private final SailingServiceAsync sailingService;
private final Timer timer;
private final int MAX_COMPETITORS_IN_CHART = 30;
public RegattaAnalyticsDataManager(final SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, Timer timer, ErrorReporter errorReporter, UserAgentDetails userAgent) {
this.competitorSelectionProvider = new CompetitorSelectionModel(/* hasMultiSelection */true);
@@ -87,21 +79,6 @@ public class RegattaAnalyticsDataManager {
}
public void showCompetitorChart(DetailType chartDetailType) {
// preselect the top N competitors in case there was no selection before and there too many competitors for a chart
int competitorsCount = Util.size(competitorSelectionProvider.getAllCompetitors());
int selectedCompetitorsCount = Util.size(competitorSelectionProvider.getSelectedCompetitors());
if(selectedCompetitorsCount == 0 && competitorsCount > MAX_COMPETITORS_IN_CHART) {
List<CompetitorDTO> selectedCompetitors = new ArrayList<CompetitorDTO>();
Iterator<CompetitorDTO> allCompetitorsIt = competitorSelectionProvider.getAllCompetitors().iterator();
int counter = 0;
while(counter < MAX_COMPETITORS_IN_CHART) {
selectedCompetitors.add(allCompetitorsIt.next());
counter++;
}
competitorSelectionProvider.setSelection(selectedCompetitors, (CompetitorSelectionChangeListener[]) null);
}
MultiCompetitorLeaderboardChart multiCompetitorChart = getMultiCompetitorChart();
MultiCompetitorLeaderboardChartSettings settings = new MultiCompetitorLeaderboardChartSettings(chartDetailType);
multiCompetitorChart.updateSettings(settings);
@@ -1,6 +1,7 @@
package com.sap.sailing.gwt.home.client.place.event.regatta.tabs;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.google.gwt.core.client.GWT;
@@ -8,25 +9,37 @@ import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.sap.sailing.domain.common.DetailType;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
import com.sap.sailing.gwt.common.client.controls.tabbar.TabView;
import com.sap.sailing.gwt.home.client.place.event.oldcompetitorcharts.OldCompetitorCharts;
import com.sap.sailing.gwt.home.client.place.event.regatta.EventRegattaView;
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaAnalyticsDataManager;
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaTabView;
import com.sap.sailing.gwt.home.client.place.event.regatta.EventRegattaView.Presenter;
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaAnalyticsDataManager;
import com.sap.sailing.gwt.home.client.shared.placeholder.Placeholder;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
import com.sap.sse.common.Util;
/**
* Created by pgtaboada on 25.11.14.
*/
public class RegattaCompetitorAnalyticsTabView extends Composite implements
RegattaTabView<RegattaCompetitorAnalyticsPlace> {
public class RegattaCompetitorAnalyticsTabView extends SharedLeaderboardRegattaTabView<RegattaCompetitorAnalyticsPlace> {
interface MyBinder extends UiBinder<HTMLPanel, RegattaCompetitorAnalyticsTabView> {
}
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
private Presenter currentPresenter;
private final int MAX_COMPETITORS_IN_CHART = 30;
public RegattaCompetitorAnalyticsTabView() {
super();
}
@UiField
@@ -44,17 +57,15 @@ public class RegattaCompetitorAnalyticsTabView extends Composite implements
@Override
public void start(RegattaCompetitorAnalyticsPlace myPlace, AcceptsOneWidget contentArea) {
contentArea.setWidget(new Placeholder());
String regattaId = myPlace.getRegattaId();
if (regattaId != null && !regattaId.isEmpty()) {
String leaderboardName = regattaId;
RegattaAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx()
.getRegattaAnalyticsManager();
RegattaAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx().getRegattaAnalyticsManager();
if(regattaAnalyticsManager.getLeaderboardPanel() == null) {
createSharedLeaderboardPanel(leaderboardName, regattaAnalyticsManager);
}
initWidget(ourUiBinder.createAndBindUi(this));
@@ -79,15 +90,8 @@ public class RegattaCompetitorAnalyticsTabView extends Composite implements
@Override
public void stop() {
}
interface MyBinder extends UiBinder<HTMLPanel, RegattaCompetitorAnalyticsTabView> {
}
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
private Presenter currentPresenter;
@Override
public RegattaCompetitorAnalyticsPlace placeToFire() {
return new RegattaCompetitorAnalyticsPlace(currentPresenter.getCtx());
@@ -96,7 +100,6 @@ public class RegattaCompetitorAnalyticsTabView extends Composite implements
@Override
public void setPresenter(EventRegattaView.Presenter currentPresenter) {
this.currentPresenter = currentPresenter;
}
public boolean isSmallWidth() {
@@ -104,4 +107,33 @@ public class RegattaCompetitorAnalyticsTabView extends Composite implements
return width <= 720;
}
@Override
public void updatedLeaderboard(LeaderboardDTO leaderboard) {
// adjust the competitor selection for the chart in case the leaderboard changed
updateCompetitorSelection();
}
private void updateCompetitorSelection() {
RegattaAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx().getRegattaAnalyticsManager();
CompetitorSelectionModel competitorSelectionProvider = regattaAnalyticsManager.getCompetitorSelectionProvider();
// preselect the top N competitors in case there was no selection before and there too many competitors for a chart
int competitorsCount = Util.size(competitorSelectionProvider.getAllCompetitors());
int selectedCompetitorsCount = Util.size(competitorSelectionProvider.getSelectedCompetitors());
if(selectedCompetitorsCount == 0 && competitorsCount > MAX_COMPETITORS_IN_CHART) {
List<CompetitorDTO> selectedCompetitors = new ArrayList<CompetitorDTO>();
Iterator<CompetitorDTO> allCompetitorsIt = competitorSelectionProvider.getAllCompetitors().iterator();
int counter = 0;
while(counter < MAX_COMPETITORS_IN_CHART) {
selectedCompetitors.add(allCompetitorsIt.next());
counter++;
}
competitorSelectionProvider.setSelection(selectedCompetitors, (CompetitorSelectionChangeListener[]) null);
}
}
@Override
public void currentRaceSelected(RaceIdentifier raceIdentifier, RaceColumnDTO raceColumn) {
}
}
@@ -3,13 +3,10 @@ package com.sap.sailing.gwt.home.client.place.event.regatta.tabs;
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.Window;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Label;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
import com.sap.sailing.gwt.common.client.controls.tabbar.TabView;
@@ -17,30 +14,26 @@ import com.sap.sailing.gwt.home.client.place.event.oldleaderboard.OldLeaderboard
import com.sap.sailing.gwt.home.client.place.event.regatta.EventRegattaView;
import com.sap.sailing.gwt.home.client.place.event.regatta.EventRegattaView.Presenter;
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaAnalyticsDataManager;
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaTabView;
import com.sap.sailing.gwt.home.client.place.event.utils.EventParamUtils;
import com.sap.sailing.gwt.home.client.shared.placeholder.Placeholder;
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardUrlSettings;
import com.sap.sailing.gwt.ui.shared.general.EventState;
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
/**
* Created by pgtaboada on 25.11.14.
*/
public class RegattaLeaderboardTabView extends Composite implements RegattaTabView<RegattaLeaderboardPlace>,
LeaderboardUpdateListener {
public class RegattaLeaderboardTabView extends SharedLeaderboardRegattaTabView<RegattaLeaderboardPlace> {
interface MyBinder extends UiBinder<HTMLPanel, RegattaLeaderboardTabView> {
}
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
private Presenter currentPresenter;
@UiField
protected OldLeaderboard leaderboard;
public RegattaLeaderboardTabView() {
super();
}
@Override
@@ -65,23 +58,12 @@ public class RegattaLeaderboardTabView extends Composite implements RegattaTabVi
if (regattaId != null && !regattaId.isEmpty()) {
String leaderboardName = regattaId;
RegattaAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx().getRegattaAnalyticsManager();
boolean autoExpandLastRaceColumn = GwtHttpRequestUtils.getBooleanParameter(
LeaderboardUrlSettings.PARAM_AUTO_EXPAND_LAST_RACE_COLUMN, false);
final LeaderboardSettings leaderboardSettings = EventParamUtils
.createLeaderboardSettingsFromURLParameters(Window.Location
.getParameterMap());
final RegattaAndRaceIdentifier preselectedRace = EventParamUtils
.getPreselectedRace(Window.Location.getParameterMap());
LeaderboardPanel leaderboardPanel = regattaAnalyticsManager.createLeaderboardPanel( //
leaderboardSettings, //
preselectedRace, //
"leaderboardGroupName", // TODO: keep using magic string? ask frank!
leaderboardName, //
true,
autoExpandLastRaceColumn);
LeaderboardPanel leaderboardPanel = regattaAnalyticsManager.getLeaderboardPanel();
if(leaderboardPanel == null) {
leaderboardPanel = createSharedLeaderboardPanel(leaderboardName, regattaAnalyticsManager);
}
initWidget(ourUiBinder.createAndBindUi(this));
leaderboard.setLeaderboard(leaderboardPanel, currentPresenter.getAutoRefreshTimer());
leaderboardPanel.addLeaderboardUpdateListener(this);
if (currentPresenter.getCtx().getEventDTO().getState() == EventState.RUNNING) {
// TODO: start autorefresh?
}
@@ -105,22 +87,14 @@ public class RegattaLeaderboardTabView extends Composite implements RegattaTabVi
@Override
public void currentRaceSelected(RaceIdentifier raceIdentifier, RaceColumnDTO raceColumn) {
}
@Override
public void stop() {
}
interface MyBinder extends UiBinder<HTMLPanel, RegattaLeaderboardTabView> {
}
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
@Override
public RegattaLeaderboardPlace placeToFire() {
return new RegattaLeaderboardPlace(currentPresenter.getCtx());
}
}
@@ -0,0 +1,41 @@
package com.sap.sailing.gwt.home.client.place.event.regatta.tabs;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Composite;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.gwt.home.client.place.event.regatta.AbstractEventRegattaPlace;
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaAnalyticsDataManager;
import com.sap.sailing.gwt.home.client.place.event.regatta.RegattaTabView;
import com.sap.sailing.gwt.home.client.place.event.utils.EventParamUtils;
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardUrlSettings;
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
/**
* An abstract regatta tabView with some shared functions between the leaderboard tab and competitors chart tab
*/
public abstract class SharedLeaderboardRegattaTabView<T extends AbstractEventRegattaPlace> extends Composite implements RegattaTabView<T>,
LeaderboardUpdateListener {
public SharedLeaderboardRegattaTabView() {
}
public LeaderboardPanel createSharedLeaderboardPanel(String leaderboardName, RegattaAnalyticsDataManager regattaAnalyticsManager) {
boolean autoExpandLastRaceColumn = GwtHttpRequestUtils.getBooleanParameter(
LeaderboardUrlSettings.PARAM_AUTO_EXPAND_LAST_RACE_COLUMN, false);
final LeaderboardSettings leaderboardSettings = EventParamUtils
.createLeaderboardSettingsFromURLParameters(Window.Location.getParameterMap());
final RegattaAndRaceIdentifier preselectedRace = EventParamUtils.getPreselectedRace(Window.Location.getParameterMap());
LeaderboardPanel leaderboardPanel = regattaAnalyticsManager.createLeaderboardPanel( //
leaderboardSettings, //
preselectedRace, //
"leaderboardGroupName", // TODO: keep using magic string? ask frank!
leaderboardName, //
true,
autoExpandLastRaceColumn);
leaderboardPanel.addLeaderboardUpdateListener(this);
return leaderboardPanel;
}
}
@@ -94,11 +94,19 @@
background-position: center center;
}
.regattaleaderboard_meta_reload {
background-color: #8ab54e;
background-color: #9f9f9f;
background-image: url("images/home/reload.png");
}
.regattaleaderboard_meta_reload_live {
background-color: red;
}
.regattaleaderboard_meta_reload_playing {
background-color: #f0ab00;
}
.regattaleaderboard_meta_reload:hover {
background-color: #7ca445;
background-color: #909090;
}
.regattaleaderboard_meta_settings {
display: inline-block;
@@ -108,12 +116,12 @@
width: 2.666666666666667em;
height: 2.666666666666667em;
margin: 0 0 0 0.666666666666667em;
background-color: #f0ab00;
background-color: #9f9f9f;
background-image: url("images/home/settings.png");
background-size: 50%;
background-size: 40%;
}
.regattaleaderboard_table {
margin-top: 0.666666666666667em;
margin-bottom: 20px;
}
.regattaleaderboard_header {
background: #f2f2f2;
@@ -209,12 +217,9 @@
table-layout: fixed;
}
.marginFix {
margin:2rem auto;
width: 100%;
margin-top:2rem;
}
@media (min-width: 84em) {
.marginFix {
margin:2rem 5rem;
width: auto;
}
.letItScroll {
overflow-x: auto;
margin: 10px 0px;
}
@@ -33,6 +33,10 @@ public interface EventRegattaLeaderboardResources extends ClientBundle {
String regattaleaderboard_meta_scoring_text();
String regattaleaderboard_meta_update_text();
String regattaleaderboard_meta_reload();
String regattaleaderboard_meta_reload_playing();
String regattaleaderboard_meta_reload_live();
String regattaleaderboard_meta_settings_button();
String regattaleaderboard_meta_settings();
String regattaleaderboard_table();
@@ -59,5 +63,6 @@ public interface EventRegattaLeaderboardResources extends ClientBundle {
String leaderboardcompetitor_itemcenter_table();
String leaderboardcompetitorshort();
String marginFix();
String letItScroll();
}
}
@@ -2,7 +2,7 @@ package com.sap.sailing.gwt.home.client.place.event.utils;
import com.google.gwt.user.client.Window;
public class WindowUtils extends EventParamUtils {
public class WindowUtils {
public static boolean isSmallWidth() {
int width = Window.getClientWidth();
@@ -8,6 +8,7 @@ import com.sap.sailing.gwt.home.client.app.HomePlacesNavigator;
import com.sap.sailing.gwt.home.client.place.error.ErrorPlace;
import com.sap.sailing.gwt.home.client.place.event.legacy.SeriesClientFactory;
import com.sap.sailing.gwt.home.client.place.fakeseries.tabs.EventSeriesOverallLeaderboardPlace;
import com.sap.sailing.gwt.home.client.place.fakeseries.tabs.SeriesEventsPlace;
import com.sap.sailing.gwt.ui.shared.fakeseries.EventSeriesViewDTO;
import com.sap.sse.gwt.client.mvp.AbstractActivityProxy;
@@ -32,24 +33,22 @@ public class SeriesActivityProxy extends AbstractActivityProxy {
afterLoad();
} else {
final UUID seriesUUID = UUID.fromString(ctx.getSeriesId());
clientFactory.getHomeService().getEventSeriesViewById(seriesUUID, new AsyncCallback<EventSeriesViewDTO>() {
@Override
public void onSuccess(final EventSeriesViewDTO event) {
ctx.updateContext(event);
afterLoad();
}
@Override
public void onFailure(Throwable caught) {
// TODO @FM: extract text?
ErrorPlace errorPlace = new ErrorPlace("Error while loading the series with service getEventSeriesViewById()");
// TODO @FM: extract text?
ErrorPlace errorPlace = new ErrorPlace(
"Error while loading the series with service getEventSeriesViewById()");
// TODO @FM: reload sinnvoll hier?
errorPlace.setComingFrom(place);
clientFactory.getPlaceController().goTo(errorPlace);
}
});
}
}
@@ -58,18 +57,22 @@ public class SeriesActivityProxy extends AbstractActivityProxy {
@Override
public void onSuccess() {
final AbstractSeriesPlace placeToStart;
if(place instanceof SeriesDefaultPlace) {
if (place instanceof SeriesDefaultPlace) {
placeToStart = getRealPlace();
} else {
placeToStart = place;
}
super.onSuccess(new SeriesActivity((AbstractSeriesTabPlace) placeToStart, clientFactory, homePlacesNavigator));
super.onSuccess(new SeriesActivity((AbstractSeriesTabPlace) placeToStart, clientFactory,
homePlacesNavigator));
}
});
}
private AbstractSeriesPlace getRealPlace() {
return new EventSeriesOverallLeaderboardPlace(ctx);
if (ctx.getSeriesDTO().isHasAnalytics()) {
return new EventSeriesOverallLeaderboardPlace(ctx);
} else {
return new SeriesEventsPlace(ctx);
}
}
}
@@ -1,35 +1,47 @@
package com.sap.sailing.gwt.home.client.place.fakeseries.tabs;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
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.AcceptsOneWidget;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.sap.sailing.domain.common.DetailType;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
import com.sap.sailing.gwt.common.client.controls.tabbar.TabView;
import com.sap.sailing.gwt.home.client.place.event.oldcompetitorcharts.OldCompetitorCharts;
import com.sap.sailing.gwt.home.client.place.fakeseries.EventSeriesAnalyticsDataManager;
import com.sap.sailing.gwt.home.client.place.fakeseries.SeriesTabView;
import com.sap.sailing.gwt.home.client.place.fakeseries.SeriesView;
import com.sap.sailing.gwt.home.client.shared.placeholder.Placeholder;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
import com.sap.sse.common.Util;
/**
* Created by pgtaboada on 25.11.14.
*/
public class EventSeriesCompetitorAnalyticsTabView extends Composite implements
SeriesTabView<EventSeriesCompetitorAnalyticsPlace> {
public EventSeriesCompetitorAnalyticsTabView() {
public class EventSeriesCompetitorAnalyticsTabView extends SharedLeaderboardEventSeriesTabView<EventSeriesCompetitorAnalyticsPlace> {
interface MyBinder extends UiBinder<HTMLPanel, EventSeriesCompetitorAnalyticsTabView> {
}
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
private SeriesView.Presenter currentPresenter;
@UiField
protected OldCompetitorCharts competitorCharts;
private final int MAX_COMPETITORS_IN_CHART = 30;
public EventSeriesCompetitorAnalyticsTabView() {
super();
}
@Override
public Class<EventSeriesCompetitorAnalyticsPlace> getPlaceClassForActivation() {
return EventSeriesCompetitorAnalyticsPlace.class;
@@ -42,27 +54,21 @@ public class EventSeriesCompetitorAnalyticsTabView extends Composite implements
@Override
public void start(EventSeriesCompetitorAnalyticsPlace myPlace, AcceptsOneWidget contentArea) {
contentArea.setWidget(new Placeholder());
String leaderboardName = myPlace.getCtx().getSeriesDTO().getLeaderboardId();
if (leaderboardName != null && !leaderboardName.isEmpty()) {
EventSeriesAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx()
.getAnalyticsManager();
EventSeriesAnalyticsDataManager eventSeriesAnalyticsManager = currentPresenter.getCtx().getAnalyticsManager();
if(eventSeriesAnalyticsManager.getLeaderboardPanel() == null) {
createSharedLeaderboardPanel(leaderboardName, eventSeriesAnalyticsManager);
}
initWidget(ourUiBinder.createAndBindUi(this));
DetailType initialDetailType = DetailType.OVERALL_RANK;
if (regattaAnalyticsManager.getMultiCompetitorChart() == null) {
regattaAnalyticsManager.createMultiCompetitorChart(leaderboardName, initialDetailType);
if (eventSeriesAnalyticsManager.getMultiCompetitorChart() == null) {
eventSeriesAnalyticsManager.createMultiCompetitorChart(leaderboardName, initialDetailType);
}
competitorCharts.setChart(regattaAnalyticsManager.getMultiCompetitorChart(), getAvailableDetailsTypes(),
initialDetailType);
regattaAnalyticsManager.showCompetitorChart(competitorCharts.getSelectedChartDetailType());
competitorCharts.setChart(eventSeriesAnalyticsManager.getMultiCompetitorChart(), getAvailableDetailsTypes(), initialDetailType);
eventSeriesAnalyticsManager.showCompetitorChart(competitorCharts.getSelectedChartDetailType());
contentArea.setWidget(this);
}
}
@@ -76,15 +82,8 @@ public class EventSeriesCompetitorAnalyticsTabView extends Composite implements
@Override
public void stop() {
}
interface MyBinder extends UiBinder<HTMLPanel, EventSeriesCompetitorAnalyticsTabView> {
}
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
private SeriesView.Presenter currentPresenter;
@Override
public EventSeriesCompetitorAnalyticsPlace placeToFire() {
return new EventSeriesCompetitorAnalyticsPlace(currentPresenter.getCtx());
@@ -93,8 +92,35 @@ public class EventSeriesCompetitorAnalyticsTabView extends Composite implements
@Override
public void setPresenter(SeriesView.Presenter currentPresenter) {
this.currentPresenter = currentPresenter;
}
@Override
public void updatedLeaderboard(LeaderboardDTO leaderboard) {
// adjust the competitor selection for the chart in case the leaderboard changed
updateCompetitorSelection();
}
private void updateCompetitorSelection() {
EventSeriesAnalyticsDataManager eventSeriesAnalyticsManager = currentPresenter.getCtx().getAnalyticsManager();
CompetitorSelectionModel competitorSelectionProvider = eventSeriesAnalyticsManager.getCompetitorSelectionProvider();
// preselect the top N competitors in case there was no selection before and there too many competitors for a chart
int competitorsCount = Util.size(competitorSelectionProvider.getAllCompetitors());
int selectedCompetitorsCount = Util.size(competitorSelectionProvider.getSelectedCompetitors());
if(selectedCompetitorsCount == 0 && competitorsCount > MAX_COMPETITORS_IN_CHART) {
List<CompetitorDTO> selectedCompetitors = new ArrayList<CompetitorDTO>();
Iterator<CompetitorDTO> allCompetitorsIt = competitorSelectionProvider.getAllCompetitors().iterator();
int counter = 0;
while(counter < MAX_COMPETITORS_IN_CHART) {
selectedCompetitors.add(allCompetitorsIt.next());
counter++;
}
competitorSelectionProvider.setSelection(selectedCompetitors, (CompetitorSelectionChangeListener[]) null);
}
}
@Override
public void currentRaceSelected(RaceIdentifier raceIdentifier, RaceColumnDTO raceColumn) {
}
}
@@ -3,43 +3,36 @@ package com.sap.sailing.gwt.home.client.place.fakeseries.tabs;
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.Window;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Label;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
import com.sap.sailing.gwt.common.client.controls.tabbar.TabView;
import com.sap.sailing.gwt.home.client.place.event.oldleaderboard.OldLeaderboard;
import com.sap.sailing.gwt.home.client.place.event.utils.EventParamUtils;
import com.sap.sailing.gwt.home.client.place.fakeseries.EventSeriesAnalyticsDataManager;
import com.sap.sailing.gwt.home.client.place.fakeseries.SeriesTabView;
import com.sap.sailing.gwt.home.client.place.fakeseries.SeriesView;
import com.sap.sailing.gwt.home.client.shared.placeholder.Placeholder;
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardUrlSettings;
import com.sap.sailing.gwt.ui.shared.fakeseries.EventSeriesViewDTO.EventSeriesState;
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
/**
* Created by pgtaboada on 25.11.14.
*/
public class EventSeriesLeaderboardTabView extends Composite implements SeriesTabView<EventSeriesOverallLeaderboardPlace>,
LeaderboardUpdateListener {
public class EventSeriesLeaderboardTabView extends SharedLeaderboardEventSeriesTabView<EventSeriesOverallLeaderboardPlace> {
interface MyBinder extends UiBinder<HTMLPanel, EventSeriesLeaderboardTabView> {
}
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
private SeriesView.Presenter currentPresenter;
@UiField
protected OldLeaderboard leaderboard;
public EventSeriesLeaderboardTabView() {
super();
}
@Override
@@ -62,30 +55,30 @@ public class EventSeriesLeaderboardTabView extends Composite implements SeriesTa
contentArea.setWidget(new Placeholder());
String leaderboardName = myPlace.getCtx().getSeriesDTO().getLeaderboardId();
if (leaderboardName != null && !leaderboardName.isEmpty()) {
EventSeriesAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx().getAnalyticsManager();
boolean autoExpandLastRaceColumn = GwtHttpRequestUtils.getBooleanParameter(
LeaderboardUrlSettings.PARAM_AUTO_EXPAND_LAST_RACE_COLUMN, false);
final LeaderboardSettings leaderboardSettings = EventParamUtils
.createLeaderboardSettingsFromURLParameters(Window.Location
.getParameterMap());
final RegattaAndRaceIdentifier preselectedRace = EventParamUtils
.getPreselectedRace(Window.Location.getParameterMap());
LeaderboardPanel leaderboardPanel = regattaAnalyticsManager.createOverallLeaderboardPanel(
leaderboardSettings,
preselectedRace,
"leaderboardGroupName", // TODO: keep using magic string? ask frank!
leaderboardName,
true, // this information came from place, now hard coded. check with frank
autoExpandLastRaceColumn);
EventSeriesAnalyticsDataManager eventSeriesAnalyticsManager = currentPresenter.getCtx().getAnalyticsManager();
LeaderboardPanel leaderboardPanel = eventSeriesAnalyticsManager.getLeaderboardPanel();
if(leaderboardPanel == null) {
leaderboardPanel = createSharedLeaderboardPanel(leaderboardName, eventSeriesAnalyticsManager);
}
//
// boolean autoExpandLastRaceColumn = GwtHttpRequestUtils.getBooleanParameter(
// LeaderboardUrlSettings.PARAM_AUTO_EXPAND_LAST_RACE_COLUMN, false);
// final LeaderboardSettings leaderboardSettings = EventParamUtils
// .createLeaderboardSettingsFromURLParameters(Window.Location
// .getParameterMap());
// final RegattaAndRaceIdentifier preselectedRace = EventParamUtils
// .getPreselectedRace(Window.Location.getParameterMap());
// LeaderboardPanel leaderboardPanel = regattaAnalyticsManager.createOverallLeaderboardPanel(
// leaderboardSettings,
// preselectedRace,
// "leaderboardGroupName", // TODO: keep using magic string? ask frank!
// leaderboardName,
// true, // this information came from place, now hard coded. check with frank
// autoExpandLastRaceColumn);
initWidget(ourUiBinder.createAndBindUi(this));
leaderboard.setLeaderboard(leaderboardPanel, currentPresenter.getAutoRefreshTimer());
leaderboardPanel.addLeaderboardUpdateListener(this);
if (currentPresenter.getCtx().getSeriesDTO().getState() != EventSeriesState.RUNNING) {
this.leaderboard.hideRefresh();
} else {
// TODO: start autorefresh?
}
regattaAnalyticsManager.hideCompetitorChart();
// leaderboardPanel.addLeaderboardUpdateListener(this);
eventSeriesAnalyticsManager.hideCompetitorChart();
contentArea.setWidget(this);
} else {
contentArea.setWidget(new Label("No leaderboard specified, cannot proceed to leaderboardpage"));
@@ -96,7 +89,6 @@ public class EventSeriesLeaderboardTabView extends Composite implements SeriesTa
}
}.schedule(3000);
}
}
@Override
@@ -106,24 +98,14 @@ public class EventSeriesLeaderboardTabView extends Composite implements SeriesTa
@Override
public void currentRaceSelected(RaceIdentifier raceIdentifier, RaceColumnDTO raceColumn) {
}
@Override
public void stop() {
}
interface MyBinder extends UiBinder<HTMLPanel, EventSeriesLeaderboardTabView> {
}
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
@Override
public EventSeriesOverallLeaderboardPlace placeToFire() {
return new EventSeriesOverallLeaderboardPlace(currentPresenter.getCtx());
}
}
@@ -3,13 +3,9 @@
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:style>
.outerBox {
padding-top: 10px;
}
</ui:style>
<g:HTMLPanel styleName="{style.outerBox}">
<g:HTMLPanel >
<s:oldleaderboard.OldLeaderboard ui:field='leaderboard'/>
</g:HTMLPanel>
</ui:UiBinder>
@@ -28,13 +28,17 @@ import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
public class EventSeriesLeaderboardsTabView extends Composite implements SeriesTabView<EventSeriesLeaderboardsPlace>,
LeaderboardUpdateListener {
interface MyBinder extends UiBinder<HTMLPanel, EventSeriesLeaderboardsTabView> {
}
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
private SeriesView.Presenter currentPresenter;
@UiField
protected OldMultiLeaderboard leaderboard;
public EventSeriesLeaderboardsTabView() {
}
@Override
@@ -54,52 +58,34 @@ public class EventSeriesLeaderboardsTabView extends Composite implements SeriesT
@Override
public void start(final EventSeriesLeaderboardsPlace myPlace, final AcceptsOneWidget contentArea) {
contentArea.setWidget(new Placeholder());
String leaderboardName = myPlace.getCtx().getSeriesDTO().getLeaderboardId();
if (leaderboardName != null && !leaderboardName.isEmpty()) {
EventSeriesAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx()
.getAnalyticsManager();
boolean autoExpandLastRaceColumn = GwtHttpRequestUtils.getBooleanParameter(
LeaderboardUrlSettings.PARAM_AUTO_EXPAND_LAST_RACE_COLUMN, false);
final LeaderboardSettings leaderboardSettings = EventParamUtils
.createLeaderboardSettingsFromURLParameters(Window.Location
.getParameterMap());
final RaceIdentifier preselectedRace = EventParamUtils
.getPreselectedRace(Window.Location.getParameterMap());
if (leaderboardName != null && !leaderboardName.isEmpty()) {
EventSeriesAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx().getAnalyticsManager();
boolean autoExpandLastRaceColumn = GwtHttpRequestUtils.getBooleanParameter(LeaderboardUrlSettings.PARAM_AUTO_EXPAND_LAST_RACE_COLUMN, false);
final LeaderboardSettings leaderboardSettings = EventParamUtils.createLeaderboardSettingsFromURLParameters(Window.Location.getParameterMap());
final RaceIdentifier preselectedRace = EventParamUtils.getPreselectedRace(Window.Location.getParameterMap());
MultiLeaderboardPanel leaderboardPanel = regattaAnalyticsManager.createMultiLeaderboardPanel(leaderboardSettings,
null, // TODO: preselectedLeaderboardName
preselectedRace,
"leaderboardGroupName",
"leaderboardGroupName",
leaderboardName,
true, // TODO @FM this information came from place, now hard coded. check with frank
autoExpandLastRaceColumn);
initWidget(ourUiBinder.createAndBindUi(this));
leaderboard.setMultiLeaderboard(leaderboardPanel,
currentPresenter.getAutoRefreshTimer());
leaderboard.setMultiLeaderboard(leaderboardPanel, currentPresenter.getAutoRefreshTimer());
leaderboardPanel.addLeaderboardUpdateListener(this);
if (currentPresenter.getCtx().getSeriesDTO().getState() != EventSeriesState.RUNNING) {
// TODO: this.leaderboard.hideRefresh();
} else {
// TODO: start autorefresh?
}
regattaAnalyticsManager.hideCompetitorChart();
leaderboardPanel.setVisible(true);
contentArea.setWidget(this);
} else {
contentArea.setWidget(new Label("No leaderboard specified, cannot proceed to leaderboardpage"));
@@ -109,36 +95,24 @@ public class EventSeriesLeaderboardsTabView extends Composite implements SeriesT
currentPresenter.getHomeNavigation().goToPlace();
}
}.schedule(3000);
}
}
@Override
public void updatedLeaderboard(LeaderboardDTO leaderboard) {
this.leaderboard.updatedMultiLeaderboard(leaderboard, true); // TODO hard coded
this.leaderboard.updatedMultiLeaderboard(leaderboard, true);
}
@Override
public void currentRaceSelected(RaceIdentifier raceIdentifier, RaceColumnDTO raceColumn) {
}
@Override
public void stop() {
}
interface MyBinder extends UiBinder<HTMLPanel, EventSeriesLeaderboardsTabView> {
}
private static MyBinder ourUiBinder = GWT.create(MyBinder.class);
@Override
public EventSeriesLeaderboardsPlace placeToFire() {
return new EventSeriesLeaderboardsPlace(currentPresenter.getCtx());
}
}
@@ -0,0 +1,44 @@
package com.sap.sailing.gwt.home.client.place.fakeseries.tabs;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Composite;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.gwt.home.client.place.event.utils.EventParamUtils;
import com.sap.sailing.gwt.home.client.place.fakeseries.AbstractSeriesTabPlace;
import com.sap.sailing.gwt.home.client.place.fakeseries.EventSeriesAnalyticsDataManager;
import com.sap.sailing.gwt.home.client.place.fakeseries.SeriesTabView;
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardUrlSettings;
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
/**
* An abstract series tabView with some shared functions between the overall leaderboard tab and competitors chart tab
*/
public abstract class SharedLeaderboardEventSeriesTabView<T extends AbstractSeriesTabPlace> extends Composite implements SeriesTabView<T>,
LeaderboardUpdateListener {
public SharedLeaderboardEventSeriesTabView() {
}
public LeaderboardPanel createSharedLeaderboardPanel(String leaderboardName, EventSeriesAnalyticsDataManager eventSeriesAnalyticsManager) {
boolean autoExpandLastRaceColumn = GwtHttpRequestUtils.getBooleanParameter(
LeaderboardUrlSettings.PARAM_AUTO_EXPAND_LAST_RACE_COLUMN, false);
final LeaderboardSettings leaderboardSettings = EventParamUtils
.createLeaderboardSettingsFromURLParameters(Window.Location
.getParameterMap());
final RegattaAndRaceIdentifier preselectedRace = EventParamUtils
.getPreselectedRace(Window.Location.getParameterMap());
LeaderboardPanel leaderboardPanel = eventSeriesAnalyticsManager.createOverallLeaderboardPanel(
leaderboardSettings,
preselectedRace,
"leaderboardGroupName",
leaderboardName,
true, // this information came from place, now hard coded. check with frank
autoExpandLastRaceColumn);
leaderboardPanel.addLeaderboardUpdateListener(this);
return leaderboardPanel;
}
}
@@ -4,10 +4,11 @@
.sitefooter {
font-size: 1rem;
background: #333;
border-top: 5px solid #fff;
border-top: 0.333333333333333em solid #fff;
color: #fff;
line-height: 5em;
width: 100%;
margin-top: -5.333333333333333em;
padding: 0 1.333333333333333em;
}
.sitefooter_copyright {
@@ -48,7 +49,7 @@
}
}
.sitefooter_language_link {
color: #f0ab00;
color: #efaa00;
display: inline-block;
cursor: pointer;
margin-left: 0.666666666666667em;
@@ -5,9 +5,8 @@
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.shared.footer.FooterResources" />
<ui:with field="releaseNotesNavigation" type="com.sap.sailing.gwt.home.client.app.PlaceNavigation" />
<g:HTMLPanel>
<g:HTMLPanel tag="footer" addStyleNames="{local_res.css.sitefooter}">
<!-- Website footer-->
<footer class="{local_res.css.sitefooter}">
<div class="{res.mediaCss.grid}">
<div class="{res.mediaCss.small12} {res.mediaCss.medium9} {res.mediaCss.columns}">
<div class="{local_res.css.sitefooter_copyright}">
@@ -36,6 +35,5 @@
<g:Anchor ui:field="changeLanguageLink" styleName="{local_res.css.sitefooter_language_link}" />
</div>
</div>
</footer>
</g:HTMLPanel>
</ui:UiBinder>
@@ -86,9 +86,9 @@
width: 13.333333333333334em;
}
.search_button {
width: 2.666666666666667em;
height: 1em;
vertical-align: middle;
width: 2.666666666666667em !important;
height: 1em !important;
vertical-align: middle !important;
}
@media (min-width: 61em) {
.search_button {
@@ -5,9 +5,8 @@
<ui:with field="i18n" type="com.sap.sailing.gwt.common.client.i18n.TextMessages" />
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.shared.header.HeaderResources" />
<g:HTMLPanel>
<g:HTMLPanel tag="header" addStyleNames="{local_res.css.siteheader}">
<!-- Website header-->
<header class="{local_res.css.siteheader}">
<div class="{res.mediaCss.grid}">
<div class="{local_res.css.siteheader_logo} {res.mediaCss.small2} {res.mediaCss.medium2} {res.mediaCss.large3} {res.mediaCss.columns}">
<a href="http://sapsponsorships.com">
@@ -36,6 +35,5 @@
<!-- IFEND siteNavigation.current -->
</nav>
</div>
</header>
</g:HTMLPanel>
</ui:UiBinder>
@@ -1,66 +0,0 @@
/**
* Events on the main page
*/
.socialfooter {
font-size: 16px;
font-size: 1rem;
background: #008fcc;
color: #fff;
}
.socialfooter .mainsection_header {
margin-bottom: 1.25em;
}
.socialfooter .mainsection_header_title {
color: #fff;
}
.socialfooter_button {
position: relative;
display: inline-block;
width: 19.0625em;
height: 3.75em;
margin: 0 0.9375em;
}
.socialfooter_button:before {
content: ' ';
position: absolute;
width: 3.125em;
height: 3.75em;
left: 0;
background: url("images/home/social-icons.png");
}
.socialfooter_buttontwitter {
background: #58aeee;
}
.socialfooter_buttontwitter:before {
background-position: 0 0;
}
.socialfooter_buttonfacebook {
background: #3b5998;
}
.socialfooter_buttonfacebook:before {
background-position: 100% 0;
}
.socialfooter_button_text {
position: absolute;
left: 3.125em;
width: 10em;
padding: 0.3125em 0.625em;
margin: 0.3125em 0;
border-left: 1px solid rgba(255,255,255,0.2);
text-align: left;
line-height: 1;
}
.socialfooter_button_text span {
font-size: 1.5em;
font-weight: 600;
}
.socialfooter_button_widget {
position: absolute;
right: 0.625em;
top: 50%;
-webkit-transform: translate(0, -40%);
-moz-transform: translate(0, -40%);
-o-transform: translate(0, -40%);
-ms-transform: translate(0, -40%);
transform: translate(0, -40%);
}
@@ -0,0 +1,58 @@
/**
* Events on the main page
*/
.socialfooter {
font-size: 1rem;
background: #008fcc;
color: #fff;
padding: 5.333333333333333em 0 7.333333333333333em;
}
.socialfooter_heading {
text-align: center;
font-size: 2.4em;
margin-bottom: 0.833333333333333em;
}
.socialfooter_item {
white-space: nowrap;
}
.socialfooter_item a {
color: #f6f9fc;
}
.socialfooter_item_contentwrapper {
padding: 1.133333333333333em 6.666666666666667em 1.4em 0.666666666666667em;
}
.socialfooter_item_contentwrappertwitter {
background: #58aeee;
padding-left: 1.133333333333333em;
}
.socialfooter_item_contentwrapperfacebook {
background: #3b5998;
padding-left: 1.333333333333333em;
}
.socialfooter_itemleft {
text-align: right;
}
.socialfooter_itemright {
text-align: left;
}
img.socialfooter_item_icon {
display: inline-block;
vertical-align: middle;
height: 1.666666666666667em;
}
.socialfooter_item_text {
line-height: 1;
text-align: left;
vertical-align: middle;
display: inline-block;
padding: 0.2em 0 0.2em 0.8em;
margin-left: 1em;
border-left: 1px solid rgba(246,249,252,0.2);
}
.socialfooter_item_text_top {
font-size: 1em;
}
.socialfooter_item_text_bottom {
font-size: 1.466666666666667em;
font-weight: 600;
}
@@ -1,30 +1,41 @@
<!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.common.client.i18n.TextMessages"/>
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.shared.socialfooter.SocialFooterResources" />
<g:HTMLPanel>
<!-- The search/social media page footer-->
<div class="{res.mainCss.mainsection} {local_res.css.socialfooter}">
<div class="{res.mediaCss.grid}">
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
<header class="{res.mainCss.mainsection_header}">
<h3 class="{local_res.css.mainsection_header_title}">Follow SAP Sports</h3>
</header>
<div class="{res.mainCss.mainsection_navigation}">
<a href="http://twitter.com/SAPSports" target="_blank" class="{local_res.css.socialfooter_button} {local_res.css.socialfooter_buttontwitter}" style="color:white;">
<div class="{local_res.css.socialfooter_button_text}">SAP Sports on <span>Twitter</span></div>
<div class="{local_res.css.socialfooter_button_widget}"></div>
</a>
<a href="http://www.facebook.com/SAPSports" target="_blank" class="{local_res.css.socialfooter_button} {local_res.css.socialfooter_buttonfacebook}" style="color:white;">
<div class="{local_res.css.socialfooter_button_text}">SAP Sports on <span>Facebook</span></div>
<div class="{local_res.css.socialfooter_button_widget}"></div>
</a>
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="i18n_ubi" type="com.sap.sailing.gwt.common.client.i18n.TextMessages"/>
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.shared.socialfooter.SocialFooterResources" />
<g:HTMLPanel>
<!-- The search/social media page footer-->
<div class="{local_res.css.socialfooter}">
<div class="{res.mediaCss.grid}">
<h3 class="{local_res.css.socialfooter_heading} {res.mediaCss.small12} {res.mediaCss.columns}">
<ui:text from="{i18n.followSapSports}" />
</h3>
<div class="{local_res.css.socialfooter_item} {local_res.css.socialfooter_itemleft} {res.mediaCss.small6} {res.mediaCss.columns}">
<a href="http://twitter.com/SAPSports" target="_blank" class="{local_res.css.socialfooter_item_contentwrapper} {local_res.css.socialfooter_item_contentwrappertwitter}">
<img src="images/home/twitter-logo.svg" class="{local_res.css.socialfooter_item_icon}"></img>
<div class="{local_res.css.socialfooter_item_text}">
<div class="{local_res.css.socialfooter_item_text_top}">
<ui:text from='{i18n.sapSportsOn}' />
</div>
<div class="{local_res.css.socialfooter_item_text_bottom}">Twitter</div>
</div>
</a>
</div>
<div class="{local_res.css.socialfooter_item} {local_res.css.socialfooter_itemright} {res.mediaCss.small6} {res.mediaCss.columns}">
<a href="http://www.facebook.com/SAPSports" target="_blank" class="{local_res.css.socialfooter_item_contentwrapper} {local_res.css.socialfooter_item_contentwrapperfacebook}">
<img src="images/home/facebook-logo.svg" class="{local_res.css.socialfooter_item_icon}"></img>
<div class="{local_res.css.socialfooter_item_text}">
<div class="{local_res.css.socialfooter_item_text_top}">
<ui:text from='{i18n.sapSportsOn}' />
</div>
<div class="{local_res.css.socialfooter_item_text_bottom}">Facebook</div>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
</g:HTMLPanel>
</ui:UiBinder>
</g:HTMLPanel>
</ui:UiBinder>
@@ -7,17 +7,21 @@ import com.google.gwt.resources.client.CssResource;
public interface SocialFooterResources extends ClientBundle {
public static final SocialFooterResources INSTANCE = GWT.create(SocialFooterResources.class);
@Source("com/sap/sailing/gwt/home/client/shared/socialfooter/SocialFooter.css")
@Source("SocialFooter.gss")
LocalCss css();
public interface LocalCss extends CssResource {
String socialfooter();
String mainsection_header();
String mainsection_header_title();
String socialfooter_button();
String socialfooter_buttontwitter();
String socialfooter_buttonfacebook();
String socialfooter_button_text();
String socialfooter_button_widget();
String socialfooter_heading();
String socialfooter_item();
String socialfooter_item_contentwrapper();
String socialfooter_item_contentwrappertwitter();
String socialfooter_item_contentwrapperfacebook();
String socialfooter_itemleft();
String socialfooter_itemright();
String socialfooter_item_icon();
String socialfooter_item_text();
String socialfooter_item_text_top();
String socialfooter_item_text_bottom();
}
}
@@ -22,7 +22,7 @@
padding: 1em 0 0.733333333333333em 0;
border-bottom: 0.266666666666667em solid transparent;
font-weight: 600;
color: #666;
color: #333;
-webkit-transition: 0.2s border ease;
-moz-transition: 0.2s border ease;
-o-transition: 0.2s border ease;
@@ -35,7 +35,7 @@
.solutions_nav_linkactive {
border-bottom-color: #f0ab00;
text-decoration: none;
color: #333;
color: #666;
}
.solutions_nav_link:last-child {
margin-right: 0;
File diff suppressed because it is too large. Load diff
@@ -1233,4 +1233,6 @@ matcher=Matcher
any=Any
urlProviders=URL-based result providers
pleaseSelectAURLProvider=Please select a URL-based result provider...
sampleURL=Sample URL: {0}
sampleURL=Sample URL: {0}
sapSportsOn=SAP Sports on
followSapSports=Follow SAP Sports
@@ -1180,4 +1180,6 @@ matcher=Matcher
any=Any
urlProviders=URL-based result providers
pleaseSelectAURLProvider=Please select a URL-based result provider...
sampleURL=Sample URL: {0}
sampleURL=Sample URL: {0}
sapSportsOn=SAP Sports on
followSapSports=Follow SAP Sports
@@ -1799,6 +1799,7 @@ public class LeaderboardPanel extends SimplePanel implements TimeListener, PlayS
}
contentPanel = new VerticalPanel();
leaderboardTable.getElement().getStyle().setMarginTop(10, Unit.PX);
contentPanel.setStyleName(STYLE_LEADERBOARD_CONTENT);
busyIndicator = new SimpleBusyIndicator(false, 0.8f);
busyIndicator.ensureDebugId("BusyIndicator");
@@ -1821,7 +1822,7 @@ public class LeaderboardPanel extends SimplePanel implements TimeListener, PlayS
this.competitorFilterPanel = competitorSearchTextBox;
}
SortedCellTable<LeaderboardRowDTO> leaderboardTable = getLeaderboardTable();
leaderboardTable.getElement().getStyle().setMarginTop(5, Unit.PX);
// leaderboardTable.getElement().getStyle().setMarginTop(5, Unit.PX);
filterControlPanel = new HorizontalPanel();
filterControlPanel.setStyleName("LeaderboardPanel-FilterControl-Panel");
contentPanel.add(leaderboardTable);
@@ -177,7 +177,7 @@ public class RaceBoardPanel extends SimplePanel implements RegattasDisplayer, Ra
leaderboardPanel = createLeaderboardPanel(leaderboardName, leaderboardGroupName, competitorSearchTextBox);
leaderboardPanel.setTitle(stringMessages.leaderboard());
leaderboardPanel.getElement().getStyle().setMarginLeft(6, Unit.PX);
leaderboardPanel.getElement().getStyle().setMarginTop(4, Unit.PX);
leaderboardPanel.getElement().getStyle().setMarginTop(10, Unit.PX);
createOneScreenView(leaderboardName, leaderboardGroupName, event, mainPanel, showMapControls, raceMap, userService); // initializes the raceMap field
leaderboardPanel.addLeaderboardUpdateListener(this);
// in case the URL configuration contains the name of a competitors filter set we try to activate it
@@ -72,12 +72,7 @@ figcaption {
font-size: 1rem;
position: relative;
min-height: 100%;
padding-bottom: 12em;
}
@media (min-width: 720px) {
.wrapper {
padding-bottom: 5em;
}
padding-bottom: 5em;
}
.navbar {
font-size: 1rem;
@@ -95,6 +90,8 @@ figcaption {
transition: background-color 0.2s, border-color 0.2s;
text-decoration: none;
margin-right: 0.555555555555556em;
border-top-left-radius: 0.277777777777778em;
border-top-right-radius: 0.277777777777778em;
}
.navbar_buttonhidden {
display: block;
@@ -139,6 +136,7 @@ figcaption {
font-size: 0.933333333333333rem;
font-weight: 700;
text-transform: uppercase;
border-radius: 0.214285714285714em;
padding: 0.714285714285714em 1.071428571428571em;
}
.buttoninactive {
@@ -24,8 +24,7 @@ a {
text-decoration: none;
color: #008fcc;
}
a:hover,
a:focus {
a:hover {
text-decoration: underline;
}
a img {
@@ -36,7 +35,7 @@ hr {
margin: 0;
height: 1px;
border: none;
border-top: 1px solid #eee;
border-top: 1px solid #ebebeb;
}
h1 {
font-size: 2.133333333333333em;
@@ -70,14 +69,10 @@ figcaption {
margin-top: 1.333333333333333em;
}
.wrapper {
font-size: 1rem;
position: relative;
min-height: 100%;
margin-bottom: -5em;
padding-bottom: 8em;
}
.wrapper > * {
padding-left: 1.333333333333333em;
padding-right: 1.333333333333333em;
padding-bottom: 5em;
}
.navbar {
font-size: 1rem;
@@ -89,18 +84,19 @@ figcaption {
color: #666;
border: 1px solid #dedede;
padding: 0.833333333333333em 0.944444444444444em;
background-color: #eee;
background-color: #ebebeb;
-webkit-transition: background-color 0.2s, border-color 0.2s;
-moz-transition: background-color 0.2s, border-color 0.2s;
transition: background-color 0.2s, border-color 0.2s;
text-decoration: none;
margin-right: 0.833333333333333em;
margin-right: 0.555555555555556em;
border-top-left-radius: 0.277777777777778em;
border-top-right-radius: 0.277777777777778em;
}
.navbar_buttonhidden {
display: block;
}
.navbar_button:hover,
.navbar_button:focus {
.navbar_button:hover {
background-color: #dedede;
outline: none;
text-decoration: none;
@@ -110,8 +106,7 @@ figcaption {
background-color: #fff;
border-bottom: 1px solid #fff;
}
.navbar_buttonactive:hover,
.navbar_buttonactive:focus {
.navbar_buttonactive:hover {
background-color: #dedede;
border-bottom: 1px solid #dedede;
}
@@ -123,15 +118,14 @@ figcaption {
border: none;
padding: 0.666666666666667em 2em;
border-radius: 0.2em;
background-color: #f0ab00;
background-color: #efaa00;
-webkit-transition: background-color 0.2s;
-moz-transition: background-color 0.2s;
transition: background-color 0.2s;
text-decoration: none;
}
.button:hover,
.button:focus {
background-color: #d89a00;
.button:hover {
background-color: #d79900;
outline: none;
text-decoration: none;
}
@@ -142,27 +136,26 @@ figcaption {
font-size: 0.933333333333333rem;
font-weight: 700;
text-transform: uppercase;
border-radius: 0.214285714285714em;
padding: 0.714285714285714em 1.071428571428571em;
}
.buttoninactive {
background-color: #eee;
background-color: #ebebeb;
pointer-events: none;
}
.buttoninactive:hover,
.buttoninactive:focus {
background-color: #eee;
.buttoninactive:hover {
background-color: #ebebeb;
}
.buttonprimary {
background-color: #008fcc;
}
.buttonprimary:hover,
.buttonprimary:focus {
.buttonprimary:hover {
background-color: #0081b8;
}
.buttonred {
background-color: #e94a1b;
}
.buttonred:hover,
.buttonred:focus {
.buttonred:hover {
background-color: #d54115;
}
.buttonrefresh {
@@ -178,6 +171,7 @@ figcaption {
padding: 2.333333333333333em 0 0 0;
border: 0;
overflow: hidden;
white-space: nowrap;
}
.buttonsearch {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NTg0MEE1MTVFN0UxMUU0QkNGMTk0Q0UzOUEwNUNFMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NTg0MEE1MjVFN0UxMUU0QkNGMTk0Q0UzOUEwNUNFMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY1ODQwQTRGNUU3RTExRTRCQ0YxOTRDRTM5QTA1Q0UzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY1ODQwQTUwNUU3RTExRTRCQ0YxOTRDRTM5QTA1Q0UzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+tERf2gAAArFJREFUeNrMmE1kXFEUx28SwjAMjxCGIQwhzCoMQysVugqlhJBVyCqLbELpqtmEUFJddZFNFhVSpd20uqgw1VIhixgSIqREYiKRSExkhNTruZzhOO5999737m3m8DdzZt6773fP/Trn9cRxLBysD/QUNAaKQEP4eQI6xc/voN/Cl0lAC1VBG6Cr2M6aoHegkmX7WpkuKIPW4/R2B1oBRSEAJ0G3BoAz0DaoZbjuGEfBG+CS5kG7oFegiua+MYxYU3Gv7OyUD0AV3CFo2qHhHGhBM2efZQGcUjT4ER+YZg7JRbLF2msljEAiYFkx515nXYXYuS+s3QNQvyvghiJywpPyoAZr/4ULYFXRw5xHQKkh3HY6dmGz/fTifv2S7d+LoLbwa39Ab4gvT6BZm5MkYj3b9Rw5qojN84ZNBB+B+gnzexHOLvGs7lgFVEy6oQNI7asIax+YP2oCLBP/BrQXGHCH+RUT4ADxZcr0NzDgEfMLJsA88dsivN0wP2cCvCZ+/j8ARsw/NwGeEr+IWXNIK7kC7hNfbje1wIA1xQaeCPiL/TYRGHCSzfkfppMkx/K2Q9tMI2X6dU+e9dPmJGmzzVNWanOBorfE5viqbVWnyjSKnqNXY9E7thkp6qywlGvLY8pVVNQpc64Ja4S9ovbJA2QJMyRqm2lrkqoi7W9kKMBrmgpvPEtVN60pGZdBBYeorRnePAxnqYufa4rxFg677MQoSdlL6MtS8xtbDJkgk/6s4J7ow+qgCcVwGyFtC/CLlGBNtlpHXCFtJ3sBQesWUPe4Smc0+5wTZI/j+0GBCa488Acx+xkk7waP8Gw15ZUjoE28lybLT1jyIkTACs4kq0g+JKAV5EMDGiHTzMEQNgyqK+bk424B1EF+7hXdY/u4immNJLopgh2TLxLe4vf5fwIMADtbDGrkqxb2AAAAAElFTkSuQmCC");
@@ -189,8 +183,7 @@ figcaption {
height: 1.333333333333333em;
padding: 0;
}
.buttonsearch:hover,
.buttonsearch:focus {
.buttonsearch:hover {
background-color: transparent;
outline: none;
text-decoration: none;
@@ -215,7 +208,7 @@ figcaption {
font-size: 0.8rem;
font-weight: 600;
color: #fff;
padding: 0.066666666666667em 0.666666666666667em;
padding: 1px 0.666666666666667em;
position: relative;
margin-left: 0.833333333333333em;
height: 1.666666666666667em;
@@ -243,65 +236,73 @@ figcaption {
border-bottom-width: 1em;
border-right-width: 1em;
}
.label[datalabeltype='live'] {
.label[data-labeltype='live'] {
background-color: #e94a1b;
vertical-align: middle;
margin-top: -0.416666666666667em;
}
.label[datalabeltype='live']:before {
.label[data-labeltype='live']:before {
border-right-color: #e94a1b;
}
.label[datalabeltype='finished'] {
.label[data-labeltype='finished'] {
background-color: #8ab54e;
vertical-align: middle;
margin-top: -0.416666666666667em;
}
.label[datalabeltype='finished']:before {
.label[data-labeltype='finished']:before {
border-right-color: #8ab54e;
}
.label[datalabeltype='progress'] {
background-color: #f0ab00;
.label[data-labeltype='next'] {
background-color: #efaa00;
vertical-align: middle;
margin-top: -0.416666666666667em;
}
.label[datalabeltype='progress']:before {
border-right-color: #f0ab00;
.label[data-labeltype='next']:before {
border-right-color: #efaa00;
}
.label[datalabeltype='upcoming'] {
color: #333;
background-color: #eee;
.label[data-labeltype='progress'] {
background-color: #efaa00;
vertical-align: middle;
margin-top: -0.416666666666667em;
}
.label[datalabeltype='upcoming']:before {
border-right-color: #eee;
.label[data-labeltype='progress']:before {
border-right-color: #efaa00;
}
.label[datalabeltype='new'],
.label[datalabeltype='updated'] {
background-color: #f0ab00;
.label[data-labeltype='upcoming'] {
color: #f6f9fc;
background-color: #666;
vertical-align: middle;
margin-top: -0.416666666666667em;
}
.label[data-labeltype='upcoming']:before {
border-right-color: #666;
}
.label[data-labeltype='new'],
.label[data-labeltype='updated'] {
background-color: #efaa00;
text-transform: uppercase;
vertical-align: middle;
}
.label[datalabeltype='new']:before,
.label[datalabeltype='updated']:before {
border-right-color: #f0ab00;
.label[data-labeltype='new']:before,
.label[data-labeltype='updated']:before {
border-right-color: #efaa00;
}
.label[datalabeltype='ess'] {
.label[data-labeltype='ess'] {
background-color: #a71724;
}
.label[datalabeltype='ess']:before {
.label[data-labeltype='ess']:before {
border-right-color: #a71724;
}
.label[datalabeltype='worldcup'] {
.label[data-labeltype='worldcup'] {
background-color: #c79242;
}
.label[datalabeltype='worldcup']:before {
.label[data-labeltype='worldcup']:before {
border-right-color: #c79242;
}
.label[datalabeltype='bundesliga'] {
.label[data-labeltype='bundesliga'] {
background-color: #005fa7;
}
.label[datalabeltype='bundesliga']:before {
.label[data-labeltype='bundesliga']:before {
border-right-color: #005fa7;
}
.morelink {
@@ -314,8 +315,7 @@ figcaption {
display: block;
text-decoration: none;
}
.morelink:hover,
.morelink:focus {
.morelink:hover {
text-decoration: underline;
}
.dummy {
@@ -332,7 +332,10 @@ figcaption {
font-size: 6em;
color: #f7f7f7;
text-shadow: 1px 1px 0 #eee, 2px 2px 0 #eee, 3px 3px 0 #eee, 4px 4px 0 #eee, 5px 5px 0 #eee, 6px 6px 0 #eee, 7px 7px 0 #eee;
margin: -100px 0 0 -350px;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.mainsection {
padding-top: 5.333333333333333em;
@@ -340,15 +343,16 @@ figcaption {
}
.mainsection_header {
text-align: center;
margin-bottom: 3.666666666666667em;
margin-bottom: 4em;
}
.mainsection_header p {
margin-top: 0;
font-size: 1.2em;
}
.mainsection_header_title {
margin: 0;
margin: 0 0 0.5em;
font-size: 2.4em;
color: #008fcc;
text-align: center;
}
.mainsection_navigation {
@@ -407,11 +411,10 @@ figcaption {
background: inherit;
}
.slidetoactive {
border-bottom-color: #f0ab00;
border-bottom-color: #efaa00;
text-decoration: none;
color: #dedede;
}
.slidetoactive:hover,
.slidetoactive:focus {
border-bottom-color: #d89a00;
.slidetoactive:hover {
border-bottom-color: #d79900;
}
@@ -88,8 +88,11 @@ public abstract class DataEntryDialog<T> {
public DataEntryDialog(String title, String message, String okButtonName, String cancelButtonName,
Validator<T> validator, boolean animationEnabled, final DialogCallback<T> callback) {
dateEntryDialog = new DialogBox();
dateEntryDialog.setText(title);
dateEntryDialog.setAnimationEnabled(animationEnabled);
// dateEntryDialog.setAnimationEnabled(animationEnabled);
dateEntryDialog.setGlassEnabled(true);
this.validator = validator;
okButton = new Button(okButtonName);
okButton.getElement().getStyle().setMargin(3, Unit.PX);