Component Vision draft
Overview:
Split Set - layout component which should consist of set of resizable and collapsible panels inside.
Every panel could be resizable within another panels. Every panel could have header with additional info and controls which could expand or collapse the panel.
The component should contain of container panel and set of child panels aligned horizontally or vertically.
Every child panel could have vertically or horizontally aligned header element.
SplitSets could be nested in order to provide complex markup definitions.
Component Tags
The component should be represented with next tags on the pages:
rich:splitSet
Should define the container for split panels and their general properties (sizes, styles etc..)
rich:splitPanel
Should define the child panel and its properties (resize options, header controls, sizes and etc..)
Page usage
Split component usage should be analogous to HTML frameset usage.
Cells number and positioning must be defined via "columns" or"rows" attribute of the splitSet component. The only of them can be set for the concrete panel (So panel just divides itself to vertical or horizontal aligned zones).
Cells defined inside panel must be rendered one by one in chosen direction (left to right or top to bottom) and with the width/ height defined in "columns" or "rows" attributes in order of definition of the cells in the end developer code.
Example of markup using such definition:
<splitSet rows="50%, 50%">
//Two rows inside a panel. One of them is a nested split set
<splitPanel>
//Content
</splitPanel>
<splitSet columns="35%, 65%">
///Columns inside one of the row.
<splitPanel>
//Content
</splitPanel>
<splitPanel>
//Content
</splitPanel>
</splitSet>
<splitSet>
full Requirement Specification Draft could be downloaded from SVN at
https://anonsvn.jboss.org/repos/richfaces/management/design/Split%20Panel%20component Will be placed at wiki for further discussion.