- out.println("<div>");
- out.print("<h3>+ ");
- out.print(l.getTranslation(menuName));
- out.print("</h3>");
- out.print("<ul class=\"menu\" id=\"");
- out.print(id);
- out.print("\">");
- for (MenuItem 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("<div>");
+ out.print("<h3 class='pointer'>+ ");
+ out.print(l.getTranslation(menuName));
+ out.println("</h3>");
+ out.print("<ul class=\"menu\">");
+ }
+ mi.output(out, l, vars);
+ }
+ }
+ if (visible) {
+ out.println("</ul></div>");
+ }
+ }
+
+ 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());