1 package club.wpia.gigi.output;
3 import java.io.PrintWriter;
4 import java.util.LinkedList;
7 import club.wpia.gigi.localisation.Language;
8 import club.wpia.gigi.output.template.Outputable;
9 import club.wpia.gigi.util.AuthorizationContext;
11 public class Menu implements IMenuItem {
13 public static final String AUTH_VALUE = "ac";
15 private Outputable menuName;
17 private IMenuItem[] content;
19 private LinkedList<IMenuItem> prepare = new LinkedList<IMenuItem>();
21 public Menu(Outputable menuName) {
22 this.menuName = menuName;
26 public void output(PrintWriter out, Language l, Map<String, Object> vars) {
27 boolean visible = false;
28 AuthorizationContext u = (AuthorizationContext) vars.get(AUTH_VALUE);
29 for (IMenuItem mi : getContent()) {
30 if (mi.isPermitted(u)) {
33 out.print("<li class=\"dropdown\"><a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">");
34 menuName.output(out, l, vars);
35 out.print("<span class=\"caret\"></span></a><ul class=\"dropdown-menu\">");
37 mi.output(out, l, vars);
41 out.println("</ul></li>");
45 public void addItem(IMenuItem item) {
49 public void prepare() {
50 content = new IMenuItem[prepare.size()];
51 content = prepare.toArray(content);
55 public Outputable getMenuName() {
60 public boolean isPermitted(AuthorizationContext ac) {
64 public IMenuItem[] getContent() {