diff --git a/rapidoid-gui/src/main/java/org/rapidoid/gui/BtnMenu.java b/rapidoid-gui/src/main/java/org/rapidoid/gui/BtnMenu.java index b7ea8ecbfe..1659f4ae53 100644 --- a/rapidoid-gui/src/main/java/org/rapidoid/gui/BtnMenu.java +++ b/rapidoid-gui/src/main/java/org/rapidoid/gui/BtnMenu.java @@ -1,98 +1,101 @@ package org.rapidoid.gui; +import org.rapidoid.annotation.Authors; +import org.rapidoid.annotation.Since; import org.rapidoid.html.Tag; import org.rapidoid.u.U; import java.util.*; -/** - * Created by milievski on 12/14/2015. - */ +@Authors({"Marjan Ilievski", "Nikolche Mihajlovski"}) +@Since("5.0.11") public class BtnMenu { - private String title; - private List> menuItems; - - public BtnMenu() { - menuItems = U.list(); - menuItems.add(new LinkedHashMap()); - } - - public void addMenuItem(String text,String url){ - menuItems.get(menuItems.size()-1).put(text,url); - } - - public void addSeparator(){ - menuItems.add(new LinkedHashMap()); - } - - private Tag generateButtonHtmlContent() { - Tag span = GUI.span().class_("caret"); - return GUI.button().type("button").class_("btn btn-default dropdown-toggle") - .attr("data-toggle","dropdown") - .attr("aria-haspopup","true") - .attr("aria-expanded","false").contents(title+" ",span); - } - - - private Optional generateMenuHtmlContent(){ - - if(!menuItems.get(0).isEmpty()) { - List content = U.list(); - - for (Iterator> iterator = menuItems.iterator(); iterator.hasNext(); ) { - - generateMenuItems(content, iterator); - - if (iterator.hasNext()) { - content.add(GUI.li().role("separator").class_("divider")); - } - } - - return Optional.of(GUI.ul().class_("dropdown-menu").contents(content)); - } - return Optional.empty(); - } - - private void generateMenuItems(List content, Iterator> subMenuIterator) { - for (Map.Entry menuItem : subMenuIterator.next().entrySet()) { - Tag a = GUI.a().href(menuItem.getValue()).contents(menuItem.getKey()); - Tag li = GUI.li().contents(a); - content.add(li); - } - } - - @Override - public String toString() { - return render(); - } - - public String render(){ - List content = U.list(); - content.add(generateButtonHtmlContent()); - Optional menuContent = generateMenuHtmlContent(); - if(menuContent.isPresent()) { - content.add(menuContent.get()); - } - return GUI.div().class_("btn-group").contents(content).toString(); - } - - public String title() { - return title; - } - - public BtnMenu title(String title) { - this.title = title; - return this; - } - - public List> items() { - return menuItems; - } - - public BtnMenu items(Map items) { - this.menuItems.add(items); - return this; - } + + private String title; + + private List> menuItems; + + public BtnMenu() { + menuItems = U.list(); + menuItems.add(new LinkedHashMap()); + } + + public void addMenuItem(String text, String url) { + menuItems.get(menuItems.size() - 1).put(text, url); + } + + public void addSeparator() { + menuItems.add(new LinkedHashMap()); + } + + private Tag generateButtonHtmlContent() { + Tag span = GUI.span().class_("caret"); + return GUI.button().type("button").class_("btn btn-default dropdown-toggle") + .attr("data-toggle", "dropdown") + .attr("aria-haspopup", "true") + .attr("aria-expanded", "false").contents(title + " ", span); + } + + + private Optional generateMenuHtmlContent() { + + if (!menuItems.get(0).isEmpty()) { + List content = U.list(); + + for (Iterator> iterator = menuItems.iterator(); iterator.hasNext(); ) { + + generateMenuItems(content, iterator); + + if (iterator.hasNext()) { + content.add(GUI.li().role("separator").class_("divider")); + } + } + + return Optional.of(GUI.ul().class_("dropdown-menu").contents(content)); + } + return Optional.empty(); + } + + private void generateMenuItems(List content, Iterator> subMenuIterator) { + for (Map.Entry menuItem : subMenuIterator.next().entrySet()) { + Tag a = GUI.a().href(menuItem.getValue()).contents(menuItem.getKey()); + Tag li = GUI.li().contents(a); + content.add(li); + } + } + + @Override + public String toString() { + return render(); + } + + public String render() { + List content = U.list(); + content.add(generateButtonHtmlContent()); + Optional menuContent = generateMenuHtmlContent(); + if (menuContent.isPresent()) { + content.add(menuContent.get()); + } + return GUI.div().class_("btn-group").contents(content).toString(); + } + + public String title() { + return title; + } + + public BtnMenu title(String title) { + this.title = title; + return this; + } + + public List> items() { + return menuItems; + } + + public BtnMenu items(Map items) { + this.menuItems.add(items); + return this; + } } diff --git a/rapidoid-gui/src/main/java/org/rapidoid/gui/base/BootstrapWidgets.java b/rapidoid-gui/src/main/java/org/rapidoid/gui/base/BootstrapWidgets.java index d394ce9c6b..95fb1ee319 100644 --- a/rapidoid-gui/src/main/java/org/rapidoid/gui/base/BootstrapWidgets.java +++ b/rapidoid-gui/src/main/java/org/rapidoid/gui/base/BootstrapWidgets.java @@ -1,11 +1,5 @@ package org.rapidoid.gui.base; -import java.io.Serializable; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - import org.rapidoid.annotation.Authors; import org.rapidoid.annotation.Since; import org.rapidoid.beany.Beany; @@ -15,42 +9,12 @@ import org.rapidoid.commons.Arr; import org.rapidoid.commons.Rnd; import org.rapidoid.config.Conf; -import org.rapidoid.gui.Btn; -import org.rapidoid.gui.Card; -import org.rapidoid.gui.Debug; -import org.rapidoid.gui.Field; -import org.rapidoid.gui.Form; -import org.rapidoid.gui.FormMode; -import org.rapidoid.gui.Grid; -import org.rapidoid.gui.Highlight; -import org.rapidoid.gui.HtmlPage; -import org.rapidoid.gui.I18N; -import org.rapidoid.gui.KVGrid; -import org.rapidoid.gui.Layout; -import org.rapidoid.gui.Pager; -import org.rapidoid.gui.Panel; -import org.rapidoid.gui.Snippet; -import org.rapidoid.gui.VStream; +import org.rapidoid.gui.*; import org.rapidoid.gui.reqinfo.ReqInfo; -import org.rapidoid.gui.var.ArrayContainerVar; -import org.rapidoid.gui.var.CollectionContainerVar; -import org.rapidoid.gui.var.EqualityVar; -import org.rapidoid.gui.var.LocalVar; -import org.rapidoid.gui.var.SessionVar; -import org.rapidoid.html.FieldType; -import org.rapidoid.html.FormLayout; -import org.rapidoid.html.HTML; -import org.rapidoid.html.Tag; -import org.rapidoid.html.TagWidget; +import org.rapidoid.gui.var.*; +import org.rapidoid.html.*; import org.rapidoid.html.customtag.ColspanTag; -import org.rapidoid.html.tag.ATag; -import org.rapidoid.html.tag.ButtonTag; -import org.rapidoid.html.tag.FormTag; -import org.rapidoid.html.tag.InputTag; -import org.rapidoid.html.tag.OptionTag; -import org.rapidoid.html.tag.SelectTag; -import org.rapidoid.html.tag.TableTag; -import org.rapidoid.html.tag.TextareaTag; +import org.rapidoid.html.tag.*; import org.rapidoid.lambda.Calc; import org.rapidoid.model.Item; import org.rapidoid.model.Items; @@ -60,6 +24,12 @@ import org.rapidoid.u.U; import org.rapidoid.var.Var; +import java.io.Serializable; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + /* * #%L * rapidoid-gui diff --git a/rapidoid-gui/src/test/java/org/rapidoid/gui/BtnMenuTest.java b/rapidoid-gui/src/test/java/org/rapidoid/gui/BtnMenuTest.java index 067c91111b..0ca3fed885 100644 --- a/rapidoid-gui/src/test/java/org/rapidoid/gui/BtnMenuTest.java +++ b/rapidoid-gui/src/test/java/org/rapidoid/gui/BtnMenuTest.java @@ -1,30 +1,16 @@ package org.rapidoid.gui; -import org.junit.Assert; -import org.junit.Before; import org.junit.Test; -import org.rapidoid.html.tag.ObjectTag; -import org.rapidoid.u.U; +import org.rapidoid.annotation.Authors; +import org.rapidoid.annotation.Since; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -import static org.junit.Assert.*; - -/** - * Created by milievski on 12/23/2015. - */ +@Authors({"Marjan Ilievski", "Nikolche Mihajlovski"}) +@Since("5.0.11") public class BtnMenuTest { - - @Test - public void shouldGenerateBtnMenuHtmlContent(){ - - - - - } + @Test + public void shouldGenerateBtnMenuHtmlContent() { + // FIXME add test + } } \ No newline at end of file