/** * private String getOperatorInfo(Operator operator){ * * <p>StringBuilder sb = new StringBuilder(); sb.append("<a class=\"info\" href=\"#\" * title=\""+operator.getDescription()+"\">"+operator.getName()+"</a>"); * * <p>return sb.toString(); } * * <p>private String convertGoogleTransitInfo(Leg leg){ * * <p>StringBuilder sb = new StringBuilder(); * * <p>sb.append(" * * <table cellspacing=\"0\" cellpadding=\"0\" id=\"oft\">"); * sb.append("<thead>"); * sb.append("<tr>"); * sb.append("<th class=\"dep\" width=\"10%\"><abbr title=\"Departs\">Dep.</abbr></th>"); * sb.append("<th class=\"from\">From</th>"); * sb.append("<th class=\"to\">To</th>"); * sb.append("<th class=\"arr\" width=\"10%\"><abbr title=\"Arrives\">Arr.</abbr></th>"); * sb.append("<th class=\"dur\" width=\"9%\"><abbr title=\"Duration\">Dur.</abbr></th>"); * sb.append("<th class=\"chg\" width=\"6%\"><abbr title=\"Changes\">Chg.</abbr></th>"); * sb.append("<th class=\"chg\" width=\"10%\">Fare</th>"); * sb.append("</tr>"); * sb.append("</thead>"); * sb.append("<tbody>"); * sb.append("<td class=\"dep\">"); * sb.append(leg.getDeparture_time().getText()); * sb.append("</td>"); * sb.append("<td class=\"from\">"); * sb.append(leg.getStart_address()); * sb.append("</td>"); * sb.append("<td class=\"to\">"); * sb.append(leg.getEnd_address()); * sb.append("</td>"); * sb.append("<td class=\"arr\">"); * sb.append(leg.getArrival_time().getText()); * sb.append("</td>"); * sb.append("<td class=\"dur\">"); * sb.append(leg.getDuration().getText()); * sb.append("</td>"); * sb.append("<td class=\"chg\">"); * sb.append("<a class=\"show-option\" href=\"#\" title=\"\">"); * sb.append(leg.getSteps().length -1); * sb.append("</a>"); * sb.append("</td>"); * sb.append("<td class=\"fare\">"); * sb.append("Standard bus fares"); * sb.append("</td>"); * sb.append("</tbody>"); * sb.append("</table> * * "); * * <p>return sb.toString(); } * * <p>private String convertOperatorInfo(DirectionsResponse operator_response){ * * <p>StringBuilder sb = new StringBuilder(); * * <p>Operator operator = operator_response.getRoutes()[0].getOperator(); * * <p>Leg leg = operator_response.getRoutes()[0].getLegs()[0]; * * <p>Calendar calendar = operator_response.getTravelling_time(); * * <p>Calendar copy = Calendar.getInstance(); * * <p>copy.setTime(calendar.getTime()); * * <p>copy.add(Calendar.MINUTE, 30); * * <p>SimpleDateFormat formatter; * * <p>formatter = new SimpleDateFormat("hh:mm a"); * * <p>String departure_time = formatter.format(copy.getTime()); * * <p>double mins = new Double(leg.getDuration().getValue().trim())/60; * * <p>copy.add(Calendar.MINUTE, (int)mins); * * <p>String arrival_time = formatter.format(copy.getTime()); * * <p>sb.append(" * * <table cellspacing=\"0\" cellpadding=\"0\" id=\"oft\">"); * sb.append("<thead>"); * sb.append("<tr>"); * sb.append("<th class=\"dep\" width=\"1%\"><abbr title=\"Departs\">Dep.</abbr></th>"); * sb.append("<th class=\"from\">From</th>"); * sb.append("<th class=\"to\">To</th>"); * sb.append("<th class=\"arr\" width=\"10%\"><abbr title=\"Arrives\">Arr.</abbr></th>"); * sb.append("<th class=\"dur\" width=\"9%\"><abbr title=\"Duration\">Dur.</abbr></th>"); * sb.append("<th class=\"chg\" width=\"6%\"><abbr title=\"Changes\">Chg.</abbr></th>"); * sb.append("<th class=\"chg\" width=\"10%\">Fare</th>"); * sb.append("</tr>"); * sb.append("</thead>"); * sb.append("<tbody>"); * sb.append("<td class=\"dep\">"); * sb.append(departure_time.toLowerCase().replaceFirst(" ", "") +"; subject to availability"); * sb.append("</td>"); * sb.append("<td class=\"from\">"); * sb.append(leg.getStart_address()); * sb.append("</td>"); * sb.append("<td class=\"to\">"); * sb.append(leg.getEnd_address()); * sb.append("</td>"); * sb.append("<td class=\"arr\">"); * sb.append(arrival_time.toLowerCase().replaceFirst(" ", "")); * sb.append("</td>"); * sb.append("<td class=\"dur\">"); * sb.append(leg.getDuration().getText()); * sb.append("</td>"); * sb.append("<td class=\"chg\">"); * sb.append("<a class=\"show-option\" href=\"#\" >"); * sb.append("0"); * sb.append("</a>"); * sb.append("</td>"); * sb.append("<td class=\"fare\">"); * if(operator.getFare().equals("free")){ * sb.append(operator.getFare()); * }else{ * sb.append("£"+calculateFare_hire_car(leg.getDistance().getValue()) +" in total. ("+ operator.getFare()+")"); * // sb.append("<a class=\"show-option\" href=\"#\" title=\""+operator.getFare()+"\">" + "£"+calculateFare_hire_car(leg.getDistance().getValue()) +"</a>" ); * * } * sb.append("</td>"); * sb.append("</tbody>"); * sb.append("</table> * * "); sb.append(""); sb.append(""); * * <p>return sb.toString(); } * * <p>private String convertTaxiInfo(DirectionsResponse operator_response){ * * <p>StringBuilder sb = new StringBuilder(); * * <p>Operator operator = operator_response.getRoutes()[0].getOperator(); * * <p>Leg leg = operator_response.getRoutes()[0].getLegs()[0]; * * <p>Calendar calendar = operator_response.getTravelling_time(); * * <p>Calendar copy = Calendar.getInstance(); * * <p>copy.setTime(calendar.getTime()); * * <p>SimpleDateFormat formatter; * * <p>formatter = new SimpleDateFormat("hh:mm a"); * * <p>copy.add(Calendar.MINUTE, 30); * * <p>String departure_time = formatter.format(copy.getTime()); * * <p>double mins = new Double(leg.getDuration().getValue().trim())/60; * * <p>copy.add(Calendar.MINUTE, (int)mins); * * <p>String arrival_time = formatter.format(copy.getTime()); * * <p>sb.append(" * * <table cellspacing=\"0\" cellpadding=\"0\" id=\"oft\">"); * sb.append("<thead>"); * sb.append("<tr>"); * sb.append("<th class=\"dep\" width=\"10%\"><abbr title=\"Departs\">Dep.</abbr></th>"); * sb.append("<th class=\"from\">From</th>"); * sb.append("<th class=\"to\">To</th>"); * sb.append("<th class=\"arr\" width=\"10%\"><abbr title=\"Arrives\">Arr.</abbr></th>"); * sb.append("<th class=\"dur\" width=\"9%\"><abbr title=\"Duration\">Dur.</abbr></th>"); * sb.append("<th class=\"chg\" width=\"6%\"><abbr title=\"Changes\">Chg.</abbr></th>"); * sb.append("<th class=\"chg\" width=\"10%\">Fare</th>"); * sb.append("</tr>"); * sb.append("</thead>"); * sb.append("<tbody>"); * sb.append("<td class=\"dep\">"); * sb.append(departure_time.toLowerCase().replaceFirst(" ", "") + "; flexible"); * sb.append("</td>"); * sb.append("<td class=\"from\">"); * sb.append(leg.getStart_address()); * sb.append("</td>"); * sb.append("<td class=\"to\">"); * sb.append(leg.getEnd_address()); * sb.append("</td>"); * sb.append("<td class=\"arr\">"); * sb.append(arrival_time.toLowerCase().replaceAll(" ", "")); * sb.append("</td>"); * sb.append("<td class=\"dur\">"); * sb.append(leg.getDuration().getText()); * sb.append("</td>"); * sb.append("<td class=\"chg\">"); * sb.append("<a class=\"show-option\" href=\"#\">"); * sb.append("0"); * sb.append("</a>"); * sb.append("</td>"); * sb.append("<td class=\"fare\">"); * sb.append("£"+calculateFare_taxi(leg.getDistance().getValue())); * sb.append("</td>"); * sb.append("</tbody>"); * sb.append("</table> * * "); sb.append(""); sb.append(""); * * <p>return sb.toString(); } * * <p>private String calculateFare_hire_car(String meters){ * * <p>double m = new Double(meters); m *= 0.00062137; int miles = ((int)m) +1; DecimalFormat df = * new DecimalFormat("#.00"); * * <p>return df.format(7 + 0.45*(miles - 1)); * * <p>} * * <p>private String calculateFare_taxi(String meters){ * * <p>double m = new Double(meters); m *= 0.00062137; int miles = ((int)m) +1; DecimalFormat df = * new DecimalFormat("#.00"); * * <p>return df.format(2.4 + 1.80*(miles)); * * <p>} */ private String getOriginAddr(FtsQueryFormBean queryFormBean) { StringBuilder sb = new StringBuilder(); if (queryFormBean.getStreet_number_f() != null) { sb.append(queryFormBean.getStreet_number_f()); sb.append("+"); } if (queryFormBean.getRoute_f() != null) { sb.append(queryFormBean.getRoute_f()); sb.append("+"); } if (queryFormBean.getPostal_code_f() != null) { sb.append(queryFormBean.getPostal_code_f()); sb.append("+"); } if (queryFormBean.getLocality_f() != null) { sb.append(queryFormBean.getLocality_f()); sb.append("+"); } if (queryFormBean.getCountry_f() != null) { sb.append(queryFormBean.getCountry_f()); } return sb.toString().replaceAll(",", "%2C").replaceAll(" ", "+"); }
@RequestMapping(method = RequestMethod.POST) public String processSubmit( @Valid FtsQueryFormBean queryFormBean, BindingResult result, @ModelAttribute("ajaxRequest") boolean ajaxRequest, Model model, RedirectAttributes redirectAttrs) { /* validate the query form*/ if (result.hasErrors()) { System.err.println(result.getFieldError()); return "query-fts"; } // Typically you would save to a db and clear the "form" attribute from the session // via SessionStatus.setCompleted(). For the demo we leave it in the session. // String message = "Form submitted successfully. Bound " + queryFormBean; QueryCommand query = createQuery(queryFormBean); List<TOption> options = fits_webservice_broker.query(query); Calendar travel_of_day = null; if (query.getOriginalRequest().getDepartureTime() != null) { travel_of_day = query.getOriginalRequest().getDepartureTime(); } else { travel_of_day = query.getOriginalRequest().getArriveTime(); } model.addAttribute("caption", "Transport options ranked using preferences"); DateFormat df = new SimpleDateFormat("MMM dd, yyyy"); String formattedDate = df.format(travel_of_day.getTime()); model.addAttribute("date_of_travel", formattedDate); model.addAttribute("origin_postcode", queryFormBean.getPostal_code_f()); List<TOption> relaxed_options = new ArrayList<TOption>(); List<TOption> not_relaxed = new ArrayList<TOption>(); for (TOption option : options) { if (option.isRelaxed()) { relaxed_options.add(option); continue; } not_relaxed.add(option); } model.addAttribute("options", not_relaxed); System.out.println("relaxed option size " + relaxed_options.size()); model.addAttribute("relaxed_options", relaxed_options); System.out.println("query count:" + count); count++; return "matching"; }