mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-28 08:26:44 +00:00
Merge remote-tracking branch 'server/master'
This commit is contained in:
@@ -88,6 +88,8 @@
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.breadcrumbPanel-ActiveBreadcrumb {
|
||||
font-size: 18px;
|
||||
font-family: 'UbuntuLight',Arial,Verdana,sans-serif;
|
||||
|
||||
@@ -182,32 +182,6 @@ input.magnifier {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.collapsablePanel {
|
||||
background: #b6b6b6;
|
||||
margin: 0 0 12px 0;
|
||||
border-radius: 7px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.collapsablePanel-content {
|
||||
background: #fff;
|
||||
margin: 12px;
|
||||
border-radius: 10px;
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
.collapsablePanel-header {
|
||||
background: url(images/titlebar-background.png) 0 0 repeat-x;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
height: 42px;
|
||||
}
|
||||
|
||||
.collapsablePanel-open {
|
||||
}
|
||||
|
||||
.collapsablePanel-closed {
|
||||
}
|
||||
|
||||
.raceBoardPanelHeader {
|
||||
|
||||
@@ -361,4 +335,16 @@ input.magnifier {
|
||||
display: block;
|
||||
height: 127px;
|
||||
width: 29px;
|
||||
}
|
||||
|
||||
.groupOverviewPanel-groupDescription {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.groupOverviewPanel-searchLabel {
|
||||
margin: 3px 5px 0 5px;
|
||||
}
|
||||
|
||||
.groupOverviewPanel-searchInputField {
|
||||
margin: 0 5px 0 0;
|
||||
}
|
||||
+2
@@ -282,4 +282,6 @@ public interface StringMessages extends Messages {
|
||||
String speedPlaySpeedUp();
|
||||
String showHideComponent(String localizedShortName);
|
||||
String degreesBoatToTheWind();
|
||||
String racesInLeaderboard();
|
||||
String leaderboardsInGroup();
|
||||
}
|
||||
+3
-1
@@ -276,4 +276,6 @@ backToLive=Jump back to live time point
|
||||
slowPlaySpeedDown=Slow play speed down
|
||||
speedPlaySpeedUp=Speed play speed up
|
||||
showHideComponent=Show/Hide {0}
|
||||
degreesBoatToTheWind=Angle to wind
|
||||
degreesBoatToTheWind=Angle to wind
|
||||
racesInLeaderboard=Races in leaderboard
|
||||
leaderboardsInGroup=Leaderboards in group
|
||||
+3
-1
@@ -277,4 +277,6 @@ backToLive=Zum Live-Zeitpunkte springen
|
||||
slowPlaySpeedDown=Abspielgeschwindigkeit verlangsamen
|
||||
speedPlaySpeedUp=Abspielgeschwindigkeit erhöhen
|
||||
showHideComponent={0} anzeigen/verstecken
|
||||
degreesBoatToTheWind=Winkel zum Wind
|
||||
degreesBoatToTheWind=Winkel zum Wind
|
||||
racesInLeaderboard=Rennen im Leaderboard
|
||||
leaderboardsInGroup=Leaderboards in der Gruppe
|
||||
+12
@@ -399,6 +399,18 @@ public class LeaderboardDTO implements IsSerializable {
|
||||
}
|
||||
return leaderboardPlaces;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return <code>true</code> if the leaderboard contains a race which is live
|
||||
*/
|
||||
public boolean containsLiveRace() {
|
||||
for (RaceInLeaderboardDTO race : getRaceList()) {
|
||||
if (race.isLive()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
|
||||
+12
@@ -80,6 +80,18 @@ public class LeaderboardGroupDTO extends NamedDTO implements IsSerializable {
|
||||
return places;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return <code>true</code> if the group contains a race which is live.
|
||||
*/
|
||||
public boolean containsLiveRace() {
|
||||
for (LeaderboardDTO leaderboard : leaderboards) {
|
||||
if (leaderboard.containsLiveRace()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
|
||||
+11
@@ -80,6 +80,17 @@ public class RaceInLeaderboardDTO implements IsSerializable {
|
||||
}
|
||||
return places;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return <code>true</code> if the startOfTracking is after the current date and there's no end of the race
|
||||
*/
|
||||
public boolean isLive() {
|
||||
if (trackedRaceIdentifier != null && race != null) {
|
||||
return race.endOfRace == null && (race.startOfTracking != null ? new Date().after(race.startOfTracking) : false);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
|
||||
+121
-30
@@ -7,6 +7,7 @@ import java.util.List;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.Style;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.event.dom.client.KeyUpEvent;
|
||||
import com.google.gwt.event.dom.client.KeyUpHandler;
|
||||
import com.google.gwt.event.logical.shared.ValueChangeEvent;
|
||||
@@ -30,6 +31,8 @@ import com.google.gwt.user.client.ui.HTML;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.google.gwt.view.client.ListDataProvider;
|
||||
import com.google.gwt.view.client.NoSelectionModel;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent;
|
||||
import com.google.gwt.view.client.SingleSelectionModel;
|
||||
import com.sap.sailing.domain.common.EventNameAndRaceName;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.LeaderboardConfigPanel.AnchorCell;
|
||||
@@ -72,18 +75,19 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
private ListDataProvider<LeaderboardGroupDTO> groupsDataProvider;
|
||||
private SingleSelectionModel<LeaderboardGroupDTO> groupsSelectionModel;
|
||||
|
||||
private CollapsablePanel collapsableDetailsPanel;
|
||||
private Label noGroupSelectedLabel;
|
||||
|
||||
private FlowPanel groupDetailsPanel;
|
||||
private HTML groupDescription;
|
||||
private HTML groupDescriptionHTML;
|
||||
private CellTable<LeaderboardDTO> leaderboardsTable;
|
||||
private ListDataProvider<LeaderboardDTO> leaderboardsDataProvider;
|
||||
private SingleSelectionModel<LeaderboardDTO> leaderboardsSelectionModel;
|
||||
|
||||
private FlowPanel leaderboardDetailsPanel;
|
||||
private CellTable<RaceInLeaderboardDTO> racesTable;
|
||||
private SingleSelectionModel<RaceInLeaderboardDTO> racesSelectionModel;
|
||||
|
||||
|
||||
private NoSelectionModel<RaceInLeaderboardDTO> racesSelectionModel;
|
||||
private ListDataProvider<RaceInLeaderboardDTO> racesDataProvider;
|
||||
|
||||
private List<LeaderboardGroupDTO> availableGroups;
|
||||
|
||||
@@ -92,12 +96,21 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
this.errorReporter = errorReporter;
|
||||
this.stringMessages = stringMessages;
|
||||
availableGroups = new ArrayList<LeaderboardGroupDTO>();
|
||||
|
||||
LeaderboardGroupOverviewTableResources tableResources = GWT.create(LeaderboardGroupOverviewTableResources.class);
|
||||
|
||||
FlowPanel mainPanel = new FlowPanel();
|
||||
this.setWidget(mainPanel);
|
||||
mainPanel.setSize("100%", "100%");
|
||||
|
||||
// Build search GUI
|
||||
mainPanel.add(createSearchGUI());
|
||||
mainPanel.add(createGroupsGUI(tableResources));
|
||||
mainPanel.add(createDetailsGUI(tableResources));
|
||||
|
||||
loadGroups();
|
||||
}
|
||||
|
||||
private CollapsablePanel createSearchGUI() {
|
||||
FlowPanel searchPanel = new FlowPanel();
|
||||
searchPanel.setWidth("100%");
|
||||
|
||||
@@ -106,7 +119,6 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
collapsableSearchPanel.setCollapsingEnabled(false);
|
||||
collapsableSearchPanel.setOpen(true);
|
||||
collapsableSearchPanel.setWidth("100%");
|
||||
mainPanel.add(collapsableSearchPanel);
|
||||
|
||||
Label locationLabel = new Label(this.stringMessages.location() + ":");
|
||||
locationLabel.setStyleName(STYLE_NAME_PREFIX + "searchLabel");
|
||||
@@ -179,7 +191,10 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
});
|
||||
searchPanel.add(untilTextBox);
|
||||
|
||||
//Build group GUI
|
||||
return collapsableSearchPanel;
|
||||
}
|
||||
|
||||
private CollapsablePanel createGroupsGUI(LeaderboardGroupOverviewTableResources tableResources) {
|
||||
FlowPanel groupPanel = new FlowPanel();
|
||||
groupPanel.setStyleName(STYLE_NAME_PREFIX + "groupPanel");
|
||||
|
||||
@@ -187,7 +202,6 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
collapsableGroupPanel.setContent(groupPanel);
|
||||
collapsableGroupPanel.setOpen(true);
|
||||
collapsableGroupPanel.setWidth("100%");
|
||||
mainPanel.add(collapsableGroupPanel);
|
||||
|
||||
TextColumn<LeaderboardGroupDTO> groupsLocationColumn = new TextColumn<LeaderboardGroupDTO>() {
|
||||
@Override
|
||||
@@ -238,9 +252,15 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
};
|
||||
groupsStartDateColumn.setSortable(true);
|
||||
|
||||
groupsTable = new CellTable<LeaderboardGroupDTO>();
|
||||
groupsTable = new CellTable<LeaderboardGroupDTO>(200, tableResources);
|
||||
groupsTable.setWidth("100%");
|
||||
groupsSelectionModel = new SingleSelectionModel<LeaderboardGroupDTO>();
|
||||
groupsSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
|
||||
@Override
|
||||
public void onSelectionChange(SelectionChangeEvent event) {
|
||||
onGroupSelectionChanged();
|
||||
}
|
||||
});
|
||||
groupsTable.setSelectionModel(groupsSelectionModel);
|
||||
|
||||
groupsTable.addColumn(groupsLocationColumn, this.stringMessages.location());
|
||||
@@ -281,14 +301,16 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
});
|
||||
groupsTable.addColumnSortHandler(groupsListHandler);
|
||||
|
||||
//Build details GUI
|
||||
return collapsableGroupPanel;
|
||||
}
|
||||
|
||||
private CollapsablePanel createDetailsGUI(LeaderboardGroupOverviewTableResources tableResources) {
|
||||
FlowPanel detailsPanel = new FlowPanel();
|
||||
detailsPanel.setStyleName(STYLE_NAME_PREFIX + "detailsPanel");
|
||||
|
||||
CollapsablePanel collapsableDetailsPanel = new CollapsablePanel(this.stringMessages.details(), false);
|
||||
collapsableDetailsPanel = new CollapsablePanel(this.stringMessages.details(), false);
|
||||
collapsableDetailsPanel.setContent(detailsPanel);
|
||||
collapsableDetailsPanel.setWidth("100%");
|
||||
mainPanel.add(collapsableDetailsPanel);
|
||||
|
||||
noGroupSelectedLabel = new Label(this.stringMessages.noGroupSelected());
|
||||
detailsPanel.add(noGroupSelectedLabel);
|
||||
@@ -296,21 +318,24 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
//Build group details GUI
|
||||
groupDetailsPanel = new FlowPanel();
|
||||
groupDetailsPanel.setVisible(false);
|
||||
groupDetailsPanel.setSize("100%", "100%");
|
||||
groupDetailsPanel.setStyleName(STYLE_NAME_PREFIX + "groupDetailsPanel");
|
||||
groupDetailsPanel.getElement().getStyle().setFloat(Style.Float.LEFT);
|
||||
detailsPanel.add(groupDetailsPanel);
|
||||
|
||||
groupDescription = new HTML();
|
||||
groupDescription.setStyleName(STYLE_NAME_PREFIX + "groupDescription");
|
||||
groupDescription.setVisible(false);
|
||||
groupDetailsPanel.add(groupDescription);
|
||||
groupDescriptionHTML = new HTML();
|
||||
groupDescriptionHTML.setStyleName(STYLE_NAME_PREFIX + "groupDescription");
|
||||
groupDetailsPanel.add(groupDescriptionHTML);
|
||||
|
||||
Label groupDetailsLabel = new Label(stringMessages.leaderboardsInGroup()+ ": ");
|
||||
groupDetailsLabel.getElement().getStyle().setPadding(5, Unit.PX);
|
||||
groupDetailsPanel.add(groupDetailsLabel);
|
||||
|
||||
TextColumn<LeaderboardDTO> leaderboardsLocationColumn = new TextColumn<LeaderboardDTO>() {
|
||||
@Override
|
||||
public String getValue(LeaderboardDTO leaderboard) {
|
||||
PlacemarkOrderDTO leaderboardPlaces = leaderboard.getPlaces();
|
||||
return leaderboardPlaces == null ? LeaderboardGroupOverviewPanel.this.stringMessages
|
||||
.locationNotAvailable() : leaderboardPlaces.placemarksAsString();
|
||||
.notAvailable() : leaderboardPlaces.placemarksAsString();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -352,9 +377,16 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
}
|
||||
};
|
||||
|
||||
leaderboardsTable = new CellTable<LeaderboardDTO>();
|
||||
leaderboardsTable = new CellTable<LeaderboardDTO>(200, tableResources);
|
||||
leaderboardsTable.setWidth("100%");
|
||||
leaderboardsSelectionModel = new SingleSelectionModel<LeaderboardDTO>();
|
||||
leaderboardsSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
|
||||
|
||||
@Override
|
||||
public void onSelectionChange(SelectionChangeEvent event) {
|
||||
onLeaderboardSelectionChanged();
|
||||
}
|
||||
});
|
||||
leaderboardsTable.setSelectionModel(leaderboardsSelectionModel);
|
||||
|
||||
leaderboardsTable.addColumn(leaderboardsLocationColumn, this.stringMessages.location());
|
||||
@@ -366,7 +398,17 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
leaderboardsDataProvider = new ListDataProvider<LeaderboardDTO>();
|
||||
leaderboardsDataProvider.addDataDisplay(leaderboardsTable);
|
||||
|
||||
//Build leaderboard details GUI TODO
|
||||
//Build leaderboard details GUI
|
||||
leaderboardDetailsPanel = new FlowPanel();
|
||||
leaderboardDetailsPanel.setSize("100%", "100%");
|
||||
leaderboardDetailsPanel.setStyleName(STYLE_NAME_PREFIX + "leaderboardDetailsPanel");
|
||||
leaderboardDetailsPanel.setVisible(false);
|
||||
leaderboardDetailsPanel.getElement().setPropertyString("clear", "right");
|
||||
detailsPanel.add(leaderboardDetailsPanel);
|
||||
|
||||
Label leaderboardDetailsLabel = new Label(stringMessages.racesInLeaderboard() + ":");
|
||||
leaderboardDetailsLabel.getElement().getStyle().setPadding(5, Unit.PX);
|
||||
leaderboardDetailsPanel.add(leaderboardDetailsLabel);
|
||||
|
||||
TextColumn<RaceInLeaderboardDTO> racesLocationColumn = new TextColumn<RaceInLeaderboardDTO>() {
|
||||
@Override
|
||||
@@ -406,23 +448,23 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
}
|
||||
};
|
||||
|
||||
racesTable = new CellTable<RaceInLeaderboardDTO>();
|
||||
racesTable = new CellTable<RaceInLeaderboardDTO>(200, tableResources);
|
||||
racesTable.setWidth("100%");
|
||||
racesTable.setVisible(false);
|
||||
racesTable.getElement().setPropertyString("clear", "right");
|
||||
racesSelectionModel = new SingleSelectionModel<RaceInLeaderboardDTO>();
|
||||
racesSelectionModel = new NoSelectionModel<RaceInLeaderboardDTO>();
|
||||
racesTable.setSelectionModel(racesSelectionModel);
|
||||
|
||||
racesTable.addColumn(racesLocationColumn, this.stringMessages.location());
|
||||
racesTable.addColumn(racesNameColumn, this.stringMessages.name());
|
||||
racesTable.addColumn(racesStartDateColumn, this.stringMessages.startDate());
|
||||
detailsPanel.add(racesTable);
|
||||
leaderboardDetailsPanel.add(racesTable);
|
||||
|
||||
//Loading the data
|
||||
loadData();
|
||||
racesDataProvider = new ListDataProvider<RaceInLeaderboardDTO>();
|
||||
racesDataProvider.addDataDisplay(racesTable);
|
||||
|
||||
return collapsableDetailsPanel;
|
||||
}
|
||||
|
||||
private void loadData() {
|
||||
private void loadGroups() {
|
||||
sailingService.getLeaderboardGroups(new AsyncCallback<List<LeaderboardGroupDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(List<LeaderboardGroupDTO> result) {
|
||||
@@ -437,13 +479,60 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
});
|
||||
}
|
||||
|
||||
private void onGroupSelectionChanged() {
|
||||
LeaderboardGroupDTO selectedGroup = groupsSelectionModel.getSelectedObject();
|
||||
LeaderboardDTO selectedLeaderboard = leaderboardsSelectionModel.getSelectedObject();
|
||||
|
||||
if (selectedGroup != null) {
|
||||
setGroupDetailsVisible(true);
|
||||
if (selectedLeaderboard != null) {
|
||||
setLeaderboardDetailsVisible(selectedGroup.leaderboards.contains(selectedLeaderboard));
|
||||
}
|
||||
fillGroupDetails(selectedGroup);
|
||||
} else {
|
||||
setGroupDetailsVisible(false);
|
||||
setLeaderboardDetailsVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
private void setGroupDetailsVisible(boolean visible) {
|
||||
noGroupSelectedLabel.setVisible(!visible);
|
||||
groupDetailsPanel.setVisible(visible);
|
||||
if (visible) {
|
||||
collapsableDetailsPanel.setOpen(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void fillGroupDetails(LeaderboardGroupDTO group) {
|
||||
groupDescriptionHTML.setHTML(new SafeHtmlBuilder().appendEscapedLines(group.description).toSafeHtml());
|
||||
leaderboardsDataProvider.getList().clear();
|
||||
leaderboardsDataProvider.getList().addAll(group.leaderboards);
|
||||
}
|
||||
|
||||
private void onLeaderboardSelectionChanged() {
|
||||
LeaderboardDTO selectedLeaderboard = leaderboardsSelectionModel.getSelectedObject();
|
||||
setLeaderboardDetailsVisible(selectedLeaderboard != null);
|
||||
if (selectedLeaderboard != null) {
|
||||
fillLeaderboardDetails(selectedLeaderboard);
|
||||
}
|
||||
}
|
||||
|
||||
private void setLeaderboardDetailsVisible(boolean visible) {
|
||||
leaderboardDetailsPanel.setVisible(visible);
|
||||
}
|
||||
|
||||
private void fillLeaderboardDetails(LeaderboardDTO leaderboard) {
|
||||
racesDataProvider.getList().clear();
|
||||
racesDataProvider.getList().addAll(leaderboard.getRaceList());
|
||||
}
|
||||
|
||||
private void onCheckBoxLiveChange() {
|
||||
if (onlyLiveCheckBox.getValue()) {
|
||||
String today = DateTimeFormat.getFormat("dd.MM.yyyy").format(new Date()).toString();
|
||||
|
||||
fromTextBox.setText(today);
|
||||
fromTextBox.setEnabled(false);
|
||||
untilTextBox.setText(today);
|
||||
untilTextBox.setText("");
|
||||
untilTextBox.setEnabled(false);
|
||||
} else {
|
||||
fromTextBox.setText("");
|
||||
@@ -491,7 +580,9 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
if (result && name != null && !name.equals("")) {
|
||||
result = textContainsStringsToCheck(forGroup.name, name.split("\\s"));
|
||||
}
|
||||
if (result) {
|
||||
if (result && onlyLiveCheckBox.getValue()) {
|
||||
result = forGroup.containsLiveRace();
|
||||
}else if (result) {
|
||||
Date startDate = forGroup.getGroupStartDate();
|
||||
if (startDate != null) {
|
||||
if (from != null && until != null) {
|
||||
|
||||
+146
@@ -0,0 +1,146 @@
|
||||
.cellTableWidget {
|
||||
border-left: 1px solid #c9caca;
|
||||
border-top: 1px solid #c9caca;
|
||||
}
|
||||
|
||||
/** v-align images in the table header
|
||||
* grey background for table header
|
||||
*/
|
||||
.cellTableHeader {
|
||||
position: relative;
|
||||
vertical-align: bottom;
|
||||
background-color: #e5e5e5;
|
||||
border-right: 1px solid #ffffff !important;
|
||||
border-top: none !important;
|
||||
border-bottom: 1px solid #c9caca !important;
|
||||
padding: 3px 12px;
|
||||
padding-bottom: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cellTableFirstColumnHeader {
|
||||
position: relative;
|
||||
vertical-align: bottom;
|
||||
background-color: #e5e5e5;
|
||||
border-left: none !important;
|
||||
border-right: 1px solid #ffffff !important;
|
||||
border-top: none !important;
|
||||
border-bottom: 1px solid #c9caca !important;
|
||||
padding: 3px 12px;
|
||||
padding-bottom: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cellTableLastColumnHeader {
|
||||
position: relative;
|
||||
vertical-align: bottom;
|
||||
background-color: #e5e5e5;
|
||||
border-right: 1px solid #c9caca !important;
|
||||
border-top: none !important;
|
||||
border-bottom: 1px solid #c9caca !important;
|
||||
padding: 3px 12px;
|
||||
padding-bottom: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cellTableHeader > span > img:first-child {
|
||||
position: relative;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.cellTableEvenRow {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
background-color: rgba(255,255,255,0.5);
|
||||
}
|
||||
|
||||
.cellTableEvenRowCell {
|
||||
border-right: 1px solid #c9caca !important;
|
||||
border-left: none;
|
||||
border-top: none !important;
|
||||
border-bottom: 1px solid #c9caca !important;
|
||||
padding: 5px 17px 5px !important;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.cellTableOddRow {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
background-color: rgba(242,242,242,0.5);
|
||||
}
|
||||
|
||||
.cellTableOddRowCell {
|
||||
border-left: none !important;
|
||||
border-right: 1px solid #c9caca !important;
|
||||
border-top: none !important;
|
||||
border-bottom: 1px solid #c9caca !important;
|
||||
padding: 5px 17px 5px !important;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.cellTableHoveredRow {
|
||||
background-color: rgba(229,242,249,0.5);
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.cellTableSelectedRow {
|
||||
color: #000000;
|
||||
background-color: rgba(229,242,249,0.5);
|
||||
border-right: 2px solid #21a0e4 !important;
|
||||
border-left: 2px solid #21a0e4 !important;
|
||||
border: 2px solid #21a0e4;
|
||||
}
|
||||
|
||||
.cellTableSelectedRow > td:FIRST-CHILD {
|
||||
border-left: 2px solid rgba(33,160,228,0.5) !important;
|
||||
}
|
||||
|
||||
.cellTableSelectedRow > td:LAST-CHILD {
|
||||
border-right: 2px solid rgba(33,160,228,0.5) !important;
|
||||
}
|
||||
|
||||
.cellTableSelectedRowCell {
|
||||
border-left: none;
|
||||
border-right: 1px solid #e5e5e5;
|
||||
border-top: 2px solid #21a0e4 !important;
|
||||
border-bottom: 2px solid #21a0e4 !important;
|
||||
}
|
||||
|
||||
.cellTableRaceColumnHeader {
|
||||
background-color: #e0e0e0;
|
||||
}
|
||||
|
||||
.cellTableRaceColumnHeader span:first-child{
|
||||
display: block;
|
||||
}
|
||||
|
||||
.cellTableRaceColumnHeader span input, .cellTableRaceColumnHeader span img{
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.cellTableRaceColumnHeader span img {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.cellTableLegColumnHeader {
|
||||
background-color: #efefef;
|
||||
|
||||
}
|
||||
|
||||
.cellTableLegDetailColumnHeader {
|
||||
background-color: #f4f5f6;
|
||||
}
|
||||
|
||||
.cellTableRaceColumn {
|
||||
background-color: #e0e0e0 !important;
|
||||
}
|
||||
|
||||
.cellTableLegColumn {
|
||||
background-color: #efefef !important;
|
||||
}
|
||||
|
||||
.cellTableLegDetailColumn {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
|
||||
.cellTableTotalColumn {
|
||||
background-color: #e0e0e0 !important;
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package com.sap.sailing.gwt.ui.spectator;
|
||||
|
||||
import com.google.gwt.user.cellview.client.CellTable;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.AdminConsoleTableResources.AdminConsoleTableStyle;
|
||||
|
||||
public interface LeaderboardGroupOverviewTableResources extends CellTable.Resources {
|
||||
@Source({ CellTable.Style.DEFAULT_CSS, "LeaderboardGroupOverviewTable.css" })
|
||||
AdminConsoleTableStyle cellTableStyle();
|
||||
|
||||
interface LeaderboardGroupTableStyle extends CellTable.Style {
|
||||
}
|
||||
}
|
||||
+5
-4
@@ -55,9 +55,10 @@ public class SpectatorEntryPoint extends AbstractEntryPoint implements EventRefr
|
||||
rootPanel.add(logoAndTitlePanel);
|
||||
|
||||
if (groupName == null) {
|
||||
//TODO Enable code below, when the LeaderboardGroupOverviewPanel was styled
|
||||
// panelToDisplay = new LeaderboardGroupOverviewPanel(sailingService, this, stringMessages);
|
||||
Window.alert("No leaderboard group name was given.");
|
||||
FlowPanel groupOverviewPanel = new FlowPanel();
|
||||
groupOverviewPanel.addStyleName("contentOuterPanel");
|
||||
groupOverviewPanel.add(new LeaderboardGroupOverviewPanel(sailingService, this, stringMessages));
|
||||
rootPanel.add(groupOverviewPanel);
|
||||
} else {
|
||||
LeaderboardGroupPanel groupPanel = new LeaderboardGroupPanel(sailingService, stringMessages, this, groupName, root, viewModeParamValue);
|
||||
groupPanel.getElement().getStyle().setFloat(Style.Float.LEFT);
|
||||
@@ -74,7 +75,7 @@ public class SpectatorEntryPoint extends AbstractEntryPoint implements EventRefr
|
||||
feedbackPanel.addStyleName("feedbackPanel");
|
||||
Anchor feedbackLink = new Anchor(new SafeHtmlBuilder().appendHtmlConstant(
|
||||
"<img class=\"linkNoBorder\" src=\"/gwt/images/feedbackPanel-bg.png\"/>").toSafeHtml());//TODO set image
|
||||
feedbackLink.setHref("mailto:axel.uhl%40sap.com?subject=[SAP Sailing] Feedback");
|
||||
feedbackLink.setHref("mailto:sailing_analytics%40sap.com?subject=[SAP Sailing] Feedback");
|
||||
feedbackLink.addStyleName("feedbackLink");
|
||||
feedbackPanel.add(feedbackLink);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user