On Jun 22, 2004, at 10:58 AM, Ate Douma wrote:
After the long discussion we already had in this thread, I've tried to capture all the comments to get to a Menu (and Folder) implementation design which you find below.
I also added a few enhancements (decorator/decoration inheritance and overrides) myself.
All in all it has become a quite long proposal in which I tried to pin down most issues I could think of.
I don't expect to have covered all correctly yet though, and maybe I just got it plain wrong :-)
But, this is how I now see it.
Hopefully this clear things up a bit though and I hope it provides enough food for a continued discussion.
Lets get this thing nailed down soon!
Thanks for your consideration and thoroughness in including everyones requirements in this document.
Im wondering if this feature *we* are proposing should be called "SiteMap" instead of "Menus" since it covers more than just menus.
What do you think?
Regarding the metadata on folders, that was partially necessary to meet my requirements:
- references (symlinks) to other pages - links (outside the site)
Perhaps the first implementation should not support these features.
In J1 we had menus defined on the page.
The menus were very useful in that you could display only the selected fragment (or portlet), hiding all others.
How does this menu proposal address what I will call 'Page Navigation', since the J1 menus really navigated around the fragments of a page?
If we plan to abandon this popular feature, I think we need to clearly state: "We are abandoning fragment-based menus and navigation for these reasons ..."
And state the reasons so that people porting their J1 applications will know why and redesign their applications appropriately.
Regards, Ate
----------------------------------------------------------------------- -------------------------------------------------
*Folder*
A Folder is an aggregate of Pages, Folders and Links. It is not viewable or renderable but only used to group its
elements in an ordered manner. Its elements all have a parent reference to their containing Folder.
The Folder structure and hierarchy is the basis for Page navigation, layout, decoration and Menu rendering.
There is only one root Folder without parent. That simplifies the definition of default Decorators and Decorations.
*Folder elements*Great!
A Folder element (Page, Folder, Link) is defined within it or may be a reference to a element defined in another Folder
(like Unix symbolic links), which may be a reference in itself.
Im glad you remembered our discussion from Friday when I suggested using (sym) links (references) to solve the external page requirement.
BTW - 'references' is exactly what I called them in J1, not sure if you were aware of the term and making the transition easier for my closed J1 perspective ;-)...
Also consider another element type, Scott mentioned that he would like to see 'documents' of none-portlet content including in the navigational space
For example, an HTML or WML page
I want to point out that none of the folder metadata below is required
Meaning you can have a folder with a default menu without defining any of the definitions below
What that menu contains is not entirely clear thus far
It could contain, by a configurable default, all the level 1 elements (folders, pages)
<folder id="subfolder16" description="Sub folder 16" skip="false">
<!-- The value attribute in the decorator definitions below reference a parent variable to which
the decorator must be assigned.
As an example the below page definition can be programmed as:
folder.setPageDecorator("default", pageDecorator);
-->
<decorator id="jetspeed" type="page" value="default" decoration="jetspeed-blue">
<!-- specify as default topmenu menu decorator a pulldownmenu with an marine menu decoration -->
<decorator id="pulldownmenu" type="menu" value="topmenu" decoration="marine"/>
<!-- override the default decoration on the leftmenu menu decorator for this folder -->
<decorator type="menu" value="leftmenu" decoration="yellow"/>
<!-- default disable the rightmenu decorator for this folder -->
<decorator type="menu" value="rightmenu" disabled="true"/>
<!-- specify as default portlet decorator the jetspeed portlet decorator with jetspeed-blue decoration-->
<decorator id="jetspeed" type="portlet" value="default" decoration="jetspeed-blue"/>
</decorator>
<!-- menu parameters --> <menu id="tabmenu" level="1" depth="2"/> <menu id="treemenu" level="3" depth="0"/>
<!-- Folder elements displayed in the menu (in the current example in tabmenu if level < 3 or in treemenu otherwise)
in the order as defined
-->
<elements>
<page id="page1" description="Page 1"/> <page ref="../../subfolder2/page8"/> <page ref="/subfolder1/subfolder2/page9" description="Page 9" />
<folder id="subfolder1"/> <folder ref="/subfolder1/subfolder3"/>
<link url="http://www.apache.org" description="Home Apache" target="_self"/>
<link url="http://portals.apache.org" description="Home Apache Portals" target="outside"/>
<!-- hidden elements --> <page id="page2" hidden="true"/> <folder id="subfolder2" hidden="true"/>
</elements>
</folder>
----------------------------------------------------------------------- --------------------------------------------------
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
