portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Sean Taylor <da...@bluesunrise.com>
Subject Re: [J2] Menu implementation
Date Wed, 23 Jun 2004 14:44:54 GMT

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*
> 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.
>
Great!
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: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Mime
View raw message