mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-22 21:55:39 +00:00
first simple version of leaderboard export as HTML
This commit is contained in:
@@ -22,7 +22,10 @@ Require-Bundle: com.sap.sailing.domain,
|
||||
javax.servlet;bundle-version="2.5.0",
|
||||
com.sap.sailing.domain.common,
|
||||
com.sap.sailing.udpconnector,
|
||||
org.jdom;bundle-version="1.0.0"
|
||||
org.jdom;bundle-version="1.0.0",
|
||||
javax.servlet.jsp.jstl;bundle-version="1.2.0",
|
||||
javax.servlet.jsp;bundle-version="2.1.0",
|
||||
javax.el;bundle-version="2.1.0"
|
||||
Bundle-ClassPath: .,
|
||||
lib/rome-1.0.jar
|
||||
Web-ContextPath: /sailingserver
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
<%@ page import="java.util.*" %>
|
||||
<%@ page import="com.sap.sailing.domain.leaderboard.Leaderboard" %>
|
||||
<%@ page import="com.sap.sailing.domain.base.*" %>
|
||||
<%@ page import="com.sap.sailing.domain.base.impl.*" %>
|
||||
<%@ page import="com.sap.sailing.domain.common.*" %>
|
||||
<%@ page import="com.sap.sailing.domain.tracking.*" %>
|
||||
<%@ page pageEncoding="UTF-8" %>
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
<%
|
||||
TimePoint timePoint = MillisecondsTimePoint.now();
|
||||
Leaderboard leaderboard = (Leaderboard) request.getAttribute("leaderboard");
|
||||
|
||||
// competitors are ordered according to total rank
|
||||
List<Competitor> competitorsFromBestToWorst = leaderboard.getCompetitorsFromBestToWorst(timePoint);
|
||||
Map<RaceColumn, List<Competitor>> rankedCompetitorsPerColumn = new HashMap<RaceColumn, List<Competitor>>();
|
||||
Iterable<RaceColumn> raceColumns = leaderboard.getRaceColumns();
|
||||
%>
|
||||
<h3>Leaderboard: <%= leaderboard.getName() %></h3>
|
||||
<table cellpadding="2" cellspacing="2" border="1">
|
||||
<tr>
|
||||
<td>Rank</td>
|
||||
<td>Name</td>
|
||||
<td>Country</td>
|
||||
<% for (RaceColumn raceColumn : raceColumns) { %>
|
||||
<td><%= raceColumn.getName() %></td>
|
||||
<% } %>
|
||||
</tr>
|
||||
<% for (Competitor competitor : competitorsFromBestToWorst) {
|
||||
int totalRank = competitorsFromBestToWorst.indexOf(competitor) + 1;
|
||||
Nationality nationality = competitor.getTeam().getNationality();
|
||||
%>
|
||||
<tr>
|
||||
<td><%= totalRank %></td>
|
||||
<td><%= competitor.getName() %></td>
|
||||
<td><%= nationality.getCountryCode().getTwoLetterISOCode() %></td>
|
||||
<% for (RaceColumn raceColumn : raceColumns) {
|
||||
List<Competitor> rankedCompetitorsForColumn = rankedCompetitorsPerColumn.get(raceColumn);
|
||||
if (rankedCompetitorsForColumn == null) {
|
||||
rankedCompetitorsForColumn = leaderboard.getCompetitorsFromBestToWorst(raceColumn, timePoint);
|
||||
rankedCompetitorsPerColumn.put(raceColumn, rankedCompetitorsForColumn);
|
||||
}
|
||||
Fleet fleetOfCompetitor = raceColumn.getFleetOfCompetitor(competitor);
|
||||
Double netPoints = leaderboard.getNetPoints(competitor, raceColumn, timePoint);
|
||||
Double totalPoints = leaderboard.getTotalPoints(competitor, raceColumn, timePoint);
|
||||
MaxPointsReason maxPointsReason = leaderboard.getMaxPointsReason(competitor, raceColumn, timePoint);
|
||||
// jsonEntry.put("maxPointsReason", maxPointsReason != null ? maxPointsReason.toString(): null);
|
||||
int rank = rankedCompetitorsForColumn.indexOf(competitor)+1;
|
||||
TrackedRace trackedRace = raceColumn.getTrackedRace(competitor);
|
||||
if (trackedRace != null) {
|
||||
int raceRank = trackedRace.getRank(competitor, timePoint);
|
||||
}
|
||||
boolean isDiscarded = leaderboard.isDiscarded(competitor, raceColumn, timePoint);
|
||||
boolean isCorrected = leaderboard.getScoreCorrection().isScoreCorrected(competitor, raceColumn);
|
||||
|
||||
String points = totalPoints != null ? totalPoints.toString() : " ";
|
||||
%>
|
||||
<td><%= points %></td>
|
||||
<% } %>
|
||||
</tr>
|
||||
<% } %>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,19 +0,0 @@
|
||||
<%@ page import="com.sap.sailing.server.RacingEventService" %>
|
||||
<%@ page import="com.sap.sailing.domain.base.*" %>
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
<%="Hello RacingEventService... !"%>
|
||||
|
||||
<%
|
||||
RacingEventService racingEventService = (RacingEventService) request.getAttribute("racingEventService");
|
||||
for(Event event: racingEventService.getAllEvents()) {
|
||||
%>
|
||||
<h3><%= event.getName() %></h3>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -68,7 +68,7 @@
|
||||
<servlet-name>LiveRaceRankingAsRssFeedServlet</servlet-name>
|
||||
<url-pattern>/rss/liveRaceRanking</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
|
||||
<servlet id="jsp">
|
||||
<servlet-name>jspServet</servlet-name>
|
||||
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
|
||||
@@ -87,19 +87,20 @@
|
||||
|
||||
<load-on-startup>0</load-on-startup>
|
||||
</servlet>
|
||||
|
||||
<!--
|
||||
<servlet-mapping>
|
||||
<servlet-name>jspServet</servlet-name>
|
||||
<url-pattern>*.jsp</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
-->
|
||||
|
||||
<servlet>
|
||||
<servlet-name>SimpleJspForwardServlet</servlet-name>
|
||||
<servlet-class>com.sap.sailing.server.gateway.impl.SimpleJspForwardServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>SimpleJspForwardServlet</servlet-name>
|
||||
<url-pattern>/events</url-pattern>
|
||||
<url-pattern>/html/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
</web-app>
|
||||
|
||||
@@ -5,4 +5,5 @@ bin.includes = META-INF/,\
|
||||
WEB-INF/,\
|
||||
html/,\
|
||||
lib/,\
|
||||
lib/rome-1.0.jar
|
||||
lib/rome-1.0.jar,\
|
||||
lib/com.sun.el_1.0.0.v201105211818.jar
|
||||
|
||||
+15
-1
@@ -8,19 +8,33 @@ import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
import com.sap.sailing.server.gateway.SailingServerHttpServlet;
|
||||
|
||||
public class SimpleJspForwardServlet extends SailingServerHttpServlet {
|
||||
private static final long serialVersionUID = -1017961881555515288L;
|
||||
|
||||
private static final String PARAM_NAME_LEADERBOARDNAME = "leaderboardName";
|
||||
|
||||
@Override
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
RacingEventService racingEventService = getService();
|
||||
if(racingEventService != null) {
|
||||
String query = request.getPathInfo();
|
||||
String jspPath = "/WEB-INF/jsp";
|
||||
String jspFile = "error.jsp";
|
||||
if(query.equals("/leaderboard")) {
|
||||
String leaderboardName = request.getParameter(PARAM_NAME_LEADERBOARDNAME);
|
||||
if (leaderboardName != null) {
|
||||
Leaderboard leaderboard = getService().getLeaderboardByName(leaderboardName);
|
||||
request.setAttribute("leaderboard", leaderboard);
|
||||
jspFile = "leaderboard.jsp";
|
||||
}
|
||||
}
|
||||
request.setAttribute("racingEventService", racingEventService);
|
||||
ServletContext sc = getServletContext();
|
||||
RequestDispatcher requestDispatcher = sc.getRequestDispatcher("/WEB-INF/jsp/listEvents.jsp");
|
||||
RequestDispatcher requestDispatcher = sc.getRequestDispatcher(jspPath + "/" + jspFile);
|
||||
requestDispatcher.forward(request, response);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user