X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Foutput%2FMenu.java;h=451cb47a478cc95070a849c1f7d8f9a3a9b38bd1;hb=8d98e8c550a5fc426d7efbd57436dcb61bd41243;hp=629154cc4476b783179da5380bac6fa837327b5b;hpb=d895448cb685adc4c2bfac8d92759252d2ce8c36;p=gigi.git diff --git a/src/org/cacert/gigi/output/Menu.java b/src/org/cacert/gigi/output/Menu.java index 629154cc..451cb47a 100644 --- a/src/org/cacert/gigi/output/Menu.java +++ b/src/org/cacert/gigi/output/Menu.java @@ -1,37 +1,72 @@ package org.cacert.gigi.output; import java.io.PrintWriter; +import java.util.LinkedList; import java.util.Map; +import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.localisation.Language; -public class Menu implements Outputable { +public class Menu implements IMenuItem { - private String menuName; + public static final String USER_VALUE = "user"; - private String id; + private String menuName; private IMenuItem[] content; - public Menu(String menuName, String id, IMenuItem... content) { + private LinkedList prepare = new LinkedList(); + + public Menu(String menuName) { this.menuName = menuName; - this.id = id; - this.content = content; } @Override public void output(PrintWriter out, Language l, Map vars) { - out.println("
"); - out.print("

+ "); - out.print(l.getTranslation(menuName)); - out.print("

"); - out.print("
    "); - for (Outputable mi : content) { - mi.output(out, l, vars); + boolean visible = false; + User u = (User) vars.get(USER_VALUE); + for (IMenuItem mi : content) { + if (mi.isPermitted(u)) { + if ( !visible) { + visible = true; + out.println("
    "); + out.print("

    + "); + out.print(l.getTranslation(menuName)); + out.println("

    "); + out.print("
      "); + } + mi.output(out, l, vars); + } + } + if (visible) { + out.println("
    "); + } + } + + public void addItem(IMenuItem item) { + prepare.add(item); + } + + public void prepare() { + content = new IMenuItem[prepare.size()]; + content = prepare.toArray(content); + prepare = null; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof Menu) { + return menuName.equals(((Menu) obj).getMenuName()); } + return super.equals(obj); + } + + public String getMenuName() { + return menuName; + } - out.println("
"); + @Override + public boolean isPermitted(User u) { + return true; } }