1 package org.cacert.gigi.output;
3 import java.io.PrintWriter;
4 import java.util.LinkedList;
7 import org.cacert.gigi.User;
8 import org.cacert.gigi.localisation.Language;
10 public class Menu implements IMenuItem {
12 public static final String USER_VALUE = "user";
14 private String menuName;
18 private IMenuItem[] content;
20 private LinkedList<IMenuItem> prepare = new LinkedList<IMenuItem>();
22 public Menu(String menuName, String id) {
23 this.menuName = menuName;
28 public void output(PrintWriter out, Language l, Map<String, Object> vars) {
29 boolean visible = false;
30 User u = (User) vars.get(USER_VALUE);
31 for (IMenuItem mi : content) {
32 if (mi.isPermitted(u)) {
37 out.print(l.getTranslation(menuName));
39 out.print("<ul class=\"menu\" id=\"");
43 mi.output(out, l, vars);
47 out.println("</ul></div>");
51 public void addItem(IMenuItem item) {
55 public void prepare() {
56 content = new IMenuItem[prepare.size()];
57 content = prepare.toArray(content);
62 public boolean equals(Object obj) {
63 if (obj instanceof Menu) {
64 return menuName.equals(((Menu) obj).getMenuName());
66 return super.equals(obj);
69 public String getMenuName() {
74 public boolean isPermitted(User u) {