All,
We're getting ready to release 1.0.0.Alpha01 of the public API which
aims to support all that is required for portal navigation. Whether that
be creating a custom navigation menu or writing an application to
administer navigation nodes of the portal. Pull request for
implementation to merge to upstream can be found here
https://github.com/gatein/gatein-portal/pull/324
Some quick highlights:
Simple access to navigation structure of portal
Navigation navigation = PortalRequest.getInstance().getNavigation();
Node rootNode = navigation.getRootNode(Nodes.visitChildren()); //
Retrieves root node and loads it's children
Complete control on what is loaded
Node rootNode = navigation.getNode(NodePath.path("foo", "bar"),
Nodes.visitChildren()); // Retrieves the /foo/bar node and loads it's
children
Refresh current node with backend
navigation.refresh(rootNode)
Easy iteration
for (Node child : rootNode)
Build in filtering
Node filter = rootNode.filter().showDefault(); // Filters like the
current navigation menu (based on if the current user has access to the
page the node is pointing to)
Node filter = rootNode.filter().showHasEdit(user).showVisibile();
// Same as above but instead of access permission, it checks edit permission
These are just some examples and I encourage anyone to check out the
java docs
http://gatein.github.com/gatein-api-java/ and the project on
github
https://github.com/gatein/gatein-api-java
- Nick