mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-30 15:57:11 +00:00
Merge remote-tracking branch 'server/master'
This commit is contained in:
commit
c7589e4204
45 files changed
+4333
-4260
No files matched your search
@@ -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 |
-4
@@ -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;
|
||||
|
||||
+7
-5
@@ -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>
|
||||
+8
-2
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -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>
|
||||
|
||||
-4
@@ -1,6 +1,2 @@
|
||||
.oldMultiLeaderboardPanel {
|
||||
background-color:#f8f8f8;
|
||||
padding: 0 10px 10px 10px;
|
||||
width: 100%;
|
||||
font-weight: bold;
|
||||
}
|
||||
+11
-3
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -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>
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
-23
@@ -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);
|
||||
|
||||
+52
-20
@@ -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) {
|
||||
}
|
||||
}
|
||||
+10
-36
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
+41
@@ -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;
|
||||
}
|
||||
}
|
||||
+17
-12
@@ -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;
|
||||
}
|
||||
+5
@@ -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();
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -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();
|
||||
|
||||
+13
-10
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
+55
-29
@@ -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) {
|
||||
}
|
||||
}
|
||||
+29
-47
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
+1
-5
@@ -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>
|
||||
+14
-40
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
+44
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
+3
-2
@@ -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;
|
||||
|
||||
+1
-3
@@ -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>
|
||||
+3
-3
@@ -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 {
|
||||
|
||||
+1
-3
@@ -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>
|
||||
-66
@@ -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%);
|
||||
}
|
||||
+58
@@ -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;
|
||||
}
|
||||
+36
-25
@@ -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>
|
||||
+12
-8
@@ -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();
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -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;
|
||||
|
||||
+1279
-1277
File diff suppressed because it is too large.
Load diff
+1246
-1244
File diff suppressed because it is too large.
Load diff
+3
-1
@@ -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
|
||||
+1236
-1234
File diff suppressed because it is too large.
Load diff
+3
-1
@@ -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
|
||||
+2
-1
@@ -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);
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
+67
-64
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user