private void printInputParameters( final PrintWriter w, BulkParameterFactory f, ExperimentRunSettings s, boolean allParams) { w.println("<form action=\"#\">"); w.println("<h2>Input parameters</h2>"); w.println("<table>"); for (final ParameterType t : ParameterType.values()) { if (!allParams && t.getDescription().isEmpty()) { continue; } w.println("<tr><td style=\"vertical-align:top;text-align:right\">"); w.println(t.toString()); w.println("</td><td style=\"vertical-align:top\">"); w.println(this.getInputFor(t, f)); w.println("</td><td style=\"vertical-align:top\">"); w.println(t.getDescription()); w.println("</td></tr>"); } w.println("</table>"); w.println("<h2>Experiment settings</h2>"); w.println("<table>"); for (final ExperimentRunParameters t : ExperimentRunParameters.values()) { w.println("<tr><td style=\"vertical-align:top;text-align:right\">"); w.println(t.toString()); w.println("</td><td style=\"vertical-align:top\">"); w.println(this.getInputFor(t, s)); w.println("</td><td style=\"vertical-align:top\">"); w.println(t.getDescription()); w.println("</td></tr>"); } w.println("</table>"); w.println("<button type=\"submit\">Start simulation</button>"); w.println("</form>"); }
private Properties parametersToProperties(BulkParameterFactory f) { final Properties ret = new Properties(); for (final ParameterType type : ParameterType.values()) { ret.setProperty(type.name(), f.getParam(type).toString()); } return ret; }
private String getInputFor(ParameterType t, BulkParameterFactory f) { if (t.getType().isEnum()) { final StringBuilder ret = new StringBuilder(); ret.append("<select name=\"").append(t.name()).append("\">"); for (final Object o : t.getType().getEnumConstants()) { if (o.equals(f.getParam(t))) { ret.append("<option selected=\"selected\">"); } else { ret.append("<option>"); } ret.append(o.toString()).append("</option>"); } ret.append("</select>"); return ret.toString(); } else if (t.getType().equals(Double.class)) { return "<input name=\"" + t.name() + "\" value=\"" + f.getParam(t) + "\" type=\"number\" step=\"any\" />"; } else if (t.getType().equals(Integer.class)) { return "<input name=\"" + t.name() + "\" value=\"" + f.getParam(t) + "\" type=\"number\" step=\"1\" />"; } else { return "Invalid type: " + t.getType(); } }
private BulkParameterFactory getParameters(PrintWriter w, HttpServletRequest request) { BulkParameterFactory f = BulkParameterFactory.forCommercial(); for (final ParameterType t : ParameterType.values()) { final String param = request.getParameter(t.name()); if (param != null && !param.isEmpty()) { try { f = f.copyWithChangedParam(t, t.parse(param)); } catch (final RuntimeException e) { this.printParseError(w, t.toString(), e); } } } return f; }
private BulkParameterFactory loadParameters(int requestId) throws IOException { final File requestDir = this.getRequestDir(requestId); final File paramsFile = new File(requestDir, PARAMS_PROPERTIES); try (FileInputStream in = new FileInputStream(paramsFile)) { final Properties properties = new Properties(); properties.load(in); BulkParameterFactory ret = BulkParameterFactory.forCommercial(); for (final String name : properties.stringPropertyNames()) { final ParameterType type = ParameterType.valueOf(name); ret = ret.copyWithChangedParam(type, type.parse(properties.getProperty(name))); } return ret; } }
private void handleDetailsPage( HttpServletRequest request, HttpServletResponse response, int requestId, int runNbr) throws IOException { final BulkParameterFactory f = this.createRunDirectoryIfMissing(requestId, runNbr); response.setContentType("text/html;charset=utf-8"); response.setStatus(HttpServletResponse.SC_OK); final PrintWriter w = response.getWriter(); w.println("<h2>Details for run " + runNbr + "</h2>"); w.println("<h3>Parameters</h3>"); for (final ParameterType type : ParameterType.values()) { w.println(type + ": " + f.getParam(type) + "<br/>"); } w.println("Seed: " + f.getSeed()); w.println("<h3>Pre commit review</h3>"); w.println( "<img src=\"ExperimentPRE_COMMIT_runplotBoard.png\" /><img src=\"ExperimentPRE_COMMIT_runplotResults.png\" /><br/>"); w.println( "<iframe width=\"800\" height=\"400\" src=\"ExperimentPRE_COMMIT_run_report.html\">Report</iframe><br/>"); w.println("<a href=\"ExperimentPRE_COMMIT_run_trace.html\">Trace</a><br/>"); w.println("<a href=\"ExperimentPRE_COMMIT_run_error.html\">Error log</a><br/>"); w.println("<a href=\"ExperimentPRE_COMMIT_run_debug.html\">Debug</a><br/>"); w.println("<h3>Post commit review</h3>"); w.println( "<img src=\"ExperimentPOST_COMMIT_runplotBoard.png\" /><img src=\"ExperimentPOST_COMMIT_runplotResults.png\" /><br/>"); w.println( "<iframe width=\"800\" height=\"400\" src=\"ExperimentPOST_COMMIT_run_report.html\">Report</iframe><br/>"); w.println("<a href=\"ExperimentPOST_COMMIT_run_trace.html\">Trace</a><br/>"); w.println("<a href=\"ExperimentPOST_COMMIT_run_error.html\">Error log</a><br/>"); w.println("<a href=\"ExperimentPOST_COMMIT_run_debug.html\">Debug</a><br/>"); w.println("<h3>No review</h3>"); w.println( "<img src=\"ExperimentNO_REVIEW_runplotBoard.png\" /><img src=\"ExperimentNO_REVIEW_runplotResults.png\" /><br/>"); w.println( "<iframe width=\"800\" height=\"400\" src=\"ExperimentNO_REVIEW_run_report.html\">Report</iframe><br/>"); w.println("<a href=\"ExperimentNO_REVIEW_run_trace.html\">Trace</a><br/>"); w.println("<a href=\"ExperimentNO_REVIEW_run_error.html\">Error log</a><br/>"); w.println("<a href=\"ExperimentNO_REVIEW_run_debug.html\">Debug</a><br/>"); }