Derek, I'd love to test the changes you made to Menu, but my build fails when I run mvn install on the pom in the lift directory of the download from
http://github.com/dpp/liftweb/tree/wip-dcb-menu-addons Here's what maven reports: [WARNING] Warning in manifest for net.liftweb:lift-webkit:jar:1.1- SNAPSHOT : Did not find matching r eferal for org.slf4j.* [ERROR] Error in manifest for net.liftweb:lift-webkit:jar:1.1- SNAPSHOT : The default package '.' is not permitted by the Import-Package syntax. This can be caused by compile errors in Eclipse because Eclipse creates valid class files regardless of compile errors. The following package(s) import from the default package [net.liftweb.http, net.liftweb.http.auth, n et.liftweb.http.js, net.liftweb.http.js.jquery, net.liftweb.sitemap] [ERROR] Error(s) found in manifest configuration [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Error(s) found in manifest configuration It seems like a problem with the construction of the following plugin in the pom. <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <configuration> <instructions> <Export-Package>! net.liftweb.util.*,net.liftweb.*;version="${pom.version}"</Export- Package> <Import-Package>org.slf4j.*;resolution:="optional",*</ Import-Package> <DynamicImport-Package>*</DynamicImport-Package> </instructions> </configuration> </plugin> Either that, or there's something else going on. Any ideas? Glenn... On Jun 11, 11:54 am, Derek Chen-Becker <dchenbec...@gmail.com> wrote: > I'm building some code right now that I think should handle all of your > cases. Since Menu.builder is already concerned with building a menu tree, I > decided that it would be better to allow you to specify a specific item or > group to Menu.builder instead of conflating tree building with the current > Menu.item and Menu.group snippets. Given a SiteMap like: > > val menus = > Menu(Loc("Home", List("index"), "Home Page")) :: > Menu(Loc("Viewtest", List("ViewTest", "test"), "View test")) :: > Menu(Loc("InsecureViewtest", List("Insecure", "test"), "Insecure View > test")) :: > Menu(Loc("SelectTest", List("select"), "asm select test")) :: > Menu(Loc("Help", List("help", "index"), "Help", LocGroup("help")), > Menu(Loc("About", List("help", "about"), "About", LocGroup("help"))), > Menu(Loc("Version", List("help", "version"), "Version", > LocGroup("help")))) :: Nil > > You can render just the Help tree with: > > <lift:Menu.builder item="Help" expandAll="true" /> > > Which will render something like: > > <ul><li><a href="/testthis/help/ > <view-source:http://localhost:9090/testthis/help/>">Help</a><ul><li><a > href="/testthis/help/about > <view-source:http://localhost:9090/testthis/help/about>">About</a></li><li><a > href="/testthis/help/version > <view-source:http://localhost:9090/testthis/help/version>">Version</a></li></ul></li></ul> > > Similarly, you can use a group attribute: > > <lift:Menu.builder group="help" expandAll="true" /> > > But notice that this won't deduplicate entries, so we would render something > like: > > <ul><li><a href="/testthis/help/ > <view-source:http://localhost:9090/testthis/help/>">Help</a><ul><li><a > href="/testthis/help/about > <view-source:http://localhost:9090/testthis/help/about>">About</a></li><li><a > href="/testthis/help/version > <view-source:http://localhost:9090/testthis/help/version>">Version</a></li></ul></li><li><a > href="/testthis/help/about > <view-source:http://localhost:9090/testthis/help/about>">About</a></li><li><a > href="/testthis/help/version > <view-source:http://localhost:9090/testthis/help/version>">Version</a></li></ul> > > This is currently checked in on the wip-dcb-menu-addons branch: > > http://github.com/dpp/liftweb/tree/wip-dcb-menu-addons > > Thoughts? > > Derek > > On Mon, Jun 8, 2009 at 5:49 PM, glenn <gl...@exmbly.com> wrote: > > > Yes, > > > I would like the expandAll behavior to work for groups and for non- > > root siteMaps. > > Here's a specific use-case. The MenuWidget in the lift-widgets package > > just passes everything > > through as > > > def render : NodeSeq = { > > head ++ <lift:Menu.builder expandAll="true" top:class= > > {style.toString} /> > > } > > > So, even though the MenuWidget object has factory methods > > for using a non-root siteMap, only the root siteMap is ever used. > > That's > > because Menu.builder calls a private function renderWhat, like so: > > > val toRender = renderWhat(expandAll) > > > which iterates through the root siteMap. There is no way, really, to > > subclass that > > to use a different siteMap. > > > The problem with the Menu.group snippet is that it just works off the > > named group in > > the root siteMap, creating a parent node, but not the kids. > > > It would be nice to use MenuWidget, or some subclass, to create a > > superfish-style > > nav-bar or horizontal menu for groups or non-root siteMaps just as > > easily as for the > > entire root siteMap. > > > Glenn... > > > On Jun 8, 3:51 pm, Joe Wass <j...@folktunefinder.com> wrote: > > > What I really wanted was a menu group. Doing things in groups has > > > solved my particular question. > > > > Glenn, can you not just use groups? Do you need the hierarchal > > > behaviour of nested menus? > > > > Joe > > > > On Jun 8, 10:24 pm, glenn <gl...@exmbly.com> wrote: > > > > > I have a similar request: namely, being able to apply expandAll="true" > > > > attribute > > > > not just to <lift:Menu.builder.../> > > > > > but to <lift:Menu.group name="mygroup"/> and <lift:Menu.item > > > > name="myMenu"/>, or, as Joe requests below, > > > > > to any siteMap that is not the root siteMap. > > > > > Glenn... > > > > > On Jun 8, 2:06 pm, Joe Wass <j...@folktunefinder.com> wrote: > > > > > > Sorry for yet another menu question. I have scoured this list first, > > I > > > > > promise! > > > > > > I'm trying to do something I think is quite simple: > > > > > > Two [or any nuumber of] menus (with children). Two different > > > > > templates. One menu and children shows up on one template, one shows > > > > > up on another. They are each nested menus (i.e. I have two Menus, > > each > > > > > with child menu items). You can directly go to any page you want, but > > > > > only certain Menu items show up on certain templates. > > > > > > I had thought I could put a guard (the last argument of the Loc) to > > > > > only show a menu when the request string contains part of the path, > > > > > but of course, that prevents you from navigating there in the first > > > > > place so that's out. > > > > > > I've seen this post : > >http://groups.google.com/group/liftweb/browse_thread/thread/dbdf6a17b... > > > > > > but it doesn't quite do what I want: I want to be able to show a > > whole > > > > > Menu at a time, not have to list each individual item in the > > template. > > > > > I'd like to do something like this: > > > > > > <lift:Menu.builder menuName="menu_name"/> > > > > > > Any ideas? I'll accept a hack, I'm short on time! > > > > > > Bonus marks: how do you set a menu to be expanded by default (without > > > > > having to be on the root node's page)? I saw `expandAll="true"` > > > > > somewhere, but that doesn't do anything... > > > > > > Thanks! > > > > > > Joe --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---