package br.com.caelum.calopsita.model; import java.util.ArrayList; import java.util.List; import java.util.ResourceBundle; public class Menu { private final List<MenuItem> items = new ArrayList<MenuItem>(); private final String contextPath; private final ResourceBundle bundle; public Menu(String contextPath) { this.contextPath = contextPath; bundle = ResourceBundle.getBundle("messages"); } public MenuItem getOrCreate(String label) { for (MenuItem item : items) { if (item.getLabel().equals(label)) { return item; } } MenuItem menuItem = new MenuItem(label, contextPath); items.add(menuItem); return menuItem; } @Override public String toString() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("<ul id=\"menu\">"); for (MenuItem item : items) { stringBuilder.append("<li onmouseover=\"$('.submenu').removeClass('selected');$($('a', this).attr('href')).addClass('selected');\">"); stringBuilder.append("<a onclick=\"return false\" href=\"#menu_").append(item.getLabel().replace('.', '_')).append("\">"); stringBuilder.append(bundle.getString(item.getLabel())); stringBuilder.append("</a>"); stringBuilder.append("</li>"); } stringBuilder.append("</ul>"); for (MenuItem item : items) { stringBuilder.append(item.toString()); } return stringBuilder.toString(); } }