/** * Show event table. * * @param writer * @param city * @param category */ private void showEventTable( PrintWriter writer, List<String[]> events, String city, String category) { writer.append("<h2>Monthly "); if (!category.equalsIgnoreCase(OPTION_ALL)) { writer.append(category + " "); } writer.append("events"); if (!city.equalsIgnoreCase(OPTION_ALL)) { writer.append(" in " + city); } writer.append(":\n"); writer.append("<table border='1' cellpadding='5'>\n"); writer.append("<tr>\n"); writer.append("<th>ID</th>\n"); for (EVENT_FIELD field : EVENT_FIELD.values()) { writer.append("<th>" + field.name() + "</th>\n"); } writer.append("</tr>\n"); // Filter event list to match conditions. List<String[]> filteredEvents = new ArrayList<String[]>(), outputEvents = new ArrayList<String[]>(); if (city.equalsIgnoreCase(OPTION_ALL)) { filteredEvents.addAll(events); } else { for (String[] event : events) { if (event[EVENT_FIELD.City.ordinal()].equalsIgnoreCase(city)) { filteredEvents.add(event); } } } if (category.equalsIgnoreCase(OPTION_ALL)) { outputEvents.addAll(filteredEvents); } else { for (String[] event : filteredEvents) { if (event[EVENT_FIELD.Category.ordinal()].equalsIgnoreCase(category)) { outputEvents.add(event); } } } // Display filtered event list. for (int i = 0; i < outputEvents.size(); i++) { String[] event = outputEvents.get(i); writer.append("<tr>\n"); writer.append("<td>" + (i + 1) + "</td>\n"); for (EVENT_FIELD field : EVENT_FIELD.values()) { writer.append("<td>" + event[field.ordinal()] + "</td>\n"); } writer.append("</tr>\n"); } writer.append("</table>\n"); }
/** * Get all cities from event list. * * @param events * @return */ private List<String> parseCities(List<String[]> events) { List<String> cities = new ArrayList<String>(); for (String[] event : events) { String city = event[EVENT_FIELD.City.ordinal()]; if (!cities.contains(city)) { cities.add(city); } } return cities; }