We saw how menus and panes define the navigational layout of a site. Here we will look at how to layout portlets on a particular pane. A pane is the container for portlets. Inside this container we have the choice of laying out portlets in a number of designs. This is accomplished using portlet controllers. In Tutorial 3, we only define portlets in the third pane Jetspeed Portlets.
There are a fair number of controllers available for portlets:
1. One Column - All portlets flow down a single column on the pane 2. Single Row - All portlets flow across the pane in a single row 3. Three Column - The portlets flow down 3 columns, given column width percentages: a. 25/50/25 b. 33/33/33 4. Two Column - The portlets flow down 2 columns, given column width percentages: a. 50/50 b. 25/75 c. 75/25
Lets look at the pane definition for the Turbine default resource. Here we define four portlets to occupy this pane using a TwoColumns controller:
<portlets id="103"> <metainfo> <title>Jetspeed Portlets</title> </metainfo> <controller name="TwoColumns"/> <entry parent="BBCFrontPage"> <layout> <property name="column" value="0"/> <property name="row" value="0"/> </layout> </entry> <entry parent="WeatherPortlet"> <layout> <property name="column" value="0"/> <property name="row" value="1"/> </layout> <parameter name="weather_city_info" value="US/AZ/Phoenix"/> <parameter name="weather_style" value="infobox"/> </entry> <entry parent="StockQuote"> <layout> <property name="column" value="1"/> <property name="row" value="0"/> </layout> </entry> <entry parent="DatabaseBrowserTest"> <layout> <property name="column" value="1"/> <property name="row" value="1"/> </layout> <parameter name="sql" value="select * from coffees"/> <parameter name="windowSize" value="10"/> </entry> </portlets>
Notice that you can specify the location of the portlet using the layout element and the column and row properties. This is a task that is normally better handled by the customizer:
<layout> <property name="column" value="1"/> <property name="row" value="0"/> </layout>
If its not already obvious, the entry element is used to reference a portlet. We will have a closer look at the entry tag in tutorial 5.
There are controls that can be applied to portlet entries as decorators. When applied to a portlet entry, controls define the window around the portlet. Here are some typical controls:
1. Boxed Title Control draws a box around the portlet, adds a title bar and action icons. 2. Clear Portlet Control draws no decorators 3. Simple Titled Control adds a title bar and action icons, but no box
Finally there are default settings for controls, controllers and skins which are defined in JetspeedResources.properties.merge.
services.PortalToolkit.default.control = TitlePortletControl services.PortalToolkit.default.controller = OneColumn services.PortalToolkit.default.skin = orangegrey
Portlet entries which do not have a control specified will use the default control. In the default Jetspeed deployment, this is the control described as '3.' above, the Simple Title Control.