mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-30 17:36:40 +00:00
Introduction of the details
This commit is contained in:
1 parent
447c6ce783
commit
180d8ef613
4 files changed
+103
-4
No files matched your search
+2
@@ -263,4 +263,6 @@ public interface StringMessages extends Messages {
|
||||
String untracked();
|
||||
String delayForLiveMode();
|
||||
String notAvailable();
|
||||
String details();
|
||||
String noGroupSelected();
|
||||
}
|
||||
+3
-1
@@ -257,4 +257,6 @@ speedChange=Speed change
|
||||
degreesShort=deg
|
||||
untracked=Untracked
|
||||
delayForLiveMode=Delay for live mode:
|
||||
notAvailable=Not available
|
||||
notAvailable=Not available
|
||||
details=Details
|
||||
noGroupSelected=No group selected
|
||||
+3
-1
@@ -258,4 +258,6 @@ speedChange=Geschwindigkeitsänderung
|
||||
degreesShort=deg
|
||||
untracked=Nicht verfolgt
|
||||
delayForLiveMode=Verzögerung im Live-Modus:
|
||||
notAvailable=Nicht verfügbar
|
||||
notAvailable=Nicht verfügbar
|
||||
details=Details
|
||||
noGroupSelected=Keine Gruppe ausgewählt
|
||||
+95
-2
@@ -25,6 +25,7 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.CheckBox;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
import com.google.gwt.user.client.ui.FormPanel;
|
||||
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;
|
||||
@@ -37,6 +38,7 @@ import com.sap.sailing.gwt.ui.client.URLFactory;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.PlacemarkOrderDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceInLeaderboardDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.components.CollapsablePanel;
|
||||
|
||||
/**
|
||||
@@ -48,7 +50,7 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
|
||||
interface AnchorTemplates extends SafeHtmlTemplates {
|
||||
@SafeHtmlTemplates.Template("<a href=\"{0}\">{1}</a>")
|
||||
SafeHtml cell(String url, String displayName);
|
||||
SafeHtml anchor(String url, String displayName);
|
||||
}
|
||||
|
||||
public static final String STYLE_NAME_PREFIX = "groupOverviewPanel-";
|
||||
@@ -68,6 +70,20 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
private ListDataProvider<LeaderboardGroupDTO> groupsDataProvider;
|
||||
private SingleSelectionModel<LeaderboardGroupDTO> groupsSelectionModel;
|
||||
|
||||
private Label noGroupSelectedLabel;
|
||||
|
||||
private FlowPanel groupDetailsPanel;
|
||||
private HTML groupDescription;
|
||||
private CellTable<LeaderboardDTO> leaderboardsTable;
|
||||
private ListDataProvider<LeaderboardDTO> leaderboardsDataProvider;
|
||||
private SingleSelectionModel<LeaderboardDTO> leaderboardsSelectionModel;
|
||||
|
||||
private CellTable<RaceInLeaderboardDTO> racesTable;
|
||||
private ListDataProvider<RaceInLeaderboardDTO> racesDataProvider;
|
||||
private SingleSelectionModel<RaceInLeaderboardDTO> racesSelectionModel;
|
||||
|
||||
|
||||
|
||||
private List<LeaderboardGroupDTO> availableGroups;
|
||||
|
||||
public LeaderboardGroupOverviewPanel(SailingServiceAsync sailingService, ErrorReporter errorReporter, StringMessages stringMessages) {
|
||||
@@ -189,7 +205,7 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
String debugParam = Window.Location.getParameter("gwt.codesvr");
|
||||
String link = URLFactory.INSTANCE.encode("/gwt/Spectator.html?leaderboardGroupName=" + group.name + "&root=overview"
|
||||
+ (debugParam != null && !debugParam.isEmpty() ? "&gwt.codesvr=" + debugParam : ""));
|
||||
return ANCHORTEMPLATE.cell(link, group.name);
|
||||
return ANCHORTEMPLATE.anchor(link, group.name);
|
||||
}
|
||||
};
|
||||
groupsNameColumn.setSortable(true);
|
||||
@@ -264,7 +280,84 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
});
|
||||
groupsTable.addColumnSortHandler(groupsListHandler);
|
||||
|
||||
//Build details GUI
|
||||
FlowPanel detailsPanel = new FlowPanel();
|
||||
detailsPanel.setStyleName(STYLE_NAME_PREFIX + "detailsPanel");
|
||||
|
||||
CollapsablePanel 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);
|
||||
|
||||
//Build group details GUI TODO
|
||||
groupDetailsPanel = new FlowPanel();
|
||||
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);
|
||||
|
||||
TextColumn<LeaderboardDTO> leaderboardsLocationColumn = new TextColumn<LeaderboardDTO>() {
|
||||
@Override
|
||||
public String getValue(LeaderboardDTO leaderboard) {
|
||||
LeaderboardGroupDTO selectedGroup = groupsSelectionModel.getSelectedObject();
|
||||
PlacemarkOrderDTO leaderboardPlaces = selectedGroup == null ? null : selectedGroup.getLeaderboardPlaces(leaderboard);
|
||||
return leaderboardPlaces == null ? LeaderboardGroupOverviewPanel.this.stringMessages
|
||||
.locationNotAvailable() : leaderboardPlaces.placemarksAsString();
|
||||
}
|
||||
};
|
||||
|
||||
AnchorCell leaderboardsNameAnchorCell = new AnchorCell();
|
||||
Column<LeaderboardDTO, SafeHtml> leaderboardsNameColumn = new Column<LeaderboardDTO, SafeHtml>(leaderboardsNameAnchorCell) {
|
||||
@Override
|
||||
public SafeHtml getValue(LeaderboardDTO leaderboard) {
|
||||
LeaderboardGroupDTO selectedGroup = groupsSelectionModel.getSelectedObject();
|
||||
String debugParam = Window.Location.getParameter("gwt.codesvr");
|
||||
String link = URLFactory.INSTANCE.encode("/gwt/Leaderboard.html?name=" + leaderboard.name
|
||||
+ "&leaderboardGroupName=" + selectedGroup.name + "&root=overview"
|
||||
+ (debugParam != null && !debugParam.isEmpty() ? "&gwt.codesvr=" + debugParam : ""));
|
||||
return ANCHORTEMPLATE.anchor(link, leaderboard.name);
|
||||
}
|
||||
};
|
||||
|
||||
TextColumn<LeaderboardDTO> leaderboardsRacesColumn = new TextColumn<LeaderboardDTO>() {
|
||||
@Override
|
||||
public String getValue(LeaderboardDTO leaderboard) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
TextColumn<LeaderboardDTO> leaderboardsStartDateColumn = new TextColumn<LeaderboardDTO>() {
|
||||
@Override
|
||||
public String getValue(LeaderboardDTO leaderboard) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
leaderboardsTable = new CellTable<LeaderboardDTO>();
|
||||
leaderboardsTable.setWidth("100%");
|
||||
leaderboardsTable.setVisible(false);
|
||||
leaderboardsSelectionModel = new SingleSelectionModel<LeaderboardDTO>();
|
||||
leaderboardsTable.setSelectionModel(leaderboardsSelectionModel);
|
||||
|
||||
leaderboardsTable.addColumn(leaderboardsLocationColumn, this.stringMessages.location());
|
||||
leaderboardsTable.addColumn(leaderboardsNameColumn, this.stringMessages.name());
|
||||
leaderboardsTable.addColumn(leaderboardsRacesColumn, this.stringMessages.races());
|
||||
leaderboardsTable.addColumn(leaderboardsStartDateColumn, this.stringMessages.startDate());
|
||||
groupDetailsPanel.add(leaderboardsTable);
|
||||
|
||||
leaderboardsDataProvider = new ListDataProvider<LeaderboardDTO>();
|
||||
leaderboardsDataProvider.addDataDisplay(leaderboardsTable);
|
||||
|
||||
//Build leaderboard details GUI TODO
|
||||
|
||||
//Loading the data
|
||||
loadData();
|
||||
|
||||
Reference in new issue
Block a user