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;
16 private IMenuItem[] content;
18 private LinkedList<IMenuItem> prepare = new LinkedList<IMenuItem>();
20 public Menu(String menuName) {
21 this.menuName = menuName;
25 public void output(PrintWriter out, Language l, Map<String, Object> vars) {
26 boolean visible = false;
27 User u = (User) vars.get(USER_VALUE);
28 for (IMenuItem mi : content) {
29 if (mi.isPermitted(u)) {
33 out.print("<h3 class='pointer'>+ ");
34 out.print(l.getTranslation(menuName));
36 out.print("<ul class=\"menu\">");
38 mi.output(out, l, vars);
42 out.println("</ul></div>");
46 public void addItem(IMenuItem item) {
50 public void prepare() {
51 content = new IMenuItem[prepare.size()];
52 content = prepare.toArray(content);
57 public boolean equals(Object obj) {
58 if (obj instanceof Menu) {
59 return menuName.equals(((Menu) obj).getMenuName());
61 return super.equals(obj);
64 public String getMenuName() {
69 public boolean isPermitted(User u) {