A tab can be any container type, but, by default, the sample portal uses table container. To add a new tab, you must first define the container, then register that container in JSPTabContainer, which “houses” the tabs.
Create the necessary display profile.
Define the new collection within <Collection name="TabProperties"> in JSPTabContainer. For example:
... <Collection name=" NewTabPanelContainer" > <Boolean name=“removable” value=“false”/> <Boolean name=“renamable” value=“true”/> <Boolean name=“predefined” value=“true”/> </Collection> ... </Collection> ... |
Add entries to the <Available> and <Selected> tags. For example:
... <Available> <Reference value=”NewTabPanelContainer”/> ... </Available> ... <Selected> <Reference value=”NewTabPanelContainer"/> ... </Selected> ... |
Define a container for NewTabPanelContainer. For example:
<Container name="NewTabPanelContainer" provider="JSPTableContainerProvider"> <Properties> <String name="title" value="New Container Channel"/> <String name="contentPage" value="tabtable.jsp"/> <String name="description" value="This is a test for front table containers"/> <String name="Desktop-fontFace1" value="Sans-serif"/> <Collection name="categories"> <String value="Personal Channels"/> <String value="Sample Channels"/> </Collection> <Collection name="Personal Channels"> <String value="UserInfo"/> <String value="MailCheck"/> </Collection> <Collection name="Sample Channels"> <String value="SampleJSP"/> <String value="SampleXML"/> </Collection> </Properties> <Available> <Reference value="UserInfo"/> <Reference value="MailCheck"/> <Reference value="SampleJSP"/> <Reference value="SampleXML"/> </Available> <Selected> <Reference value="UserInfo"/> <Reference value="MailCheck"/> <Reference value="SampleJSP"/> <Reference value="SampleXML"/> </Selected> <Channels> ... </Channels> </Container> |
If predefined property value is true in the TabProperties collection ( Adding a Tab to JSPTabContainer), then it is recommended to define a Provider for the container channel which is meant to be used as a predefined tab.
For example, see below for the PredefinedNewTabPanelContainerProvider Display Profile Definition
<Provider name="PredefinedNewTabPanelContainerProvider" class="com.sun.portal.providers.containers.jsp.table.JSPTableContainerProvider" version="2">
<Properties>
<ConditionalProperties condition="locale" value="en" >
<ConditionalProperties condition="locale" value="US" >
<String name="title" value="New Sample"/>
<String name="description" value="New Tab"/>
</ConditionalProperties>
</ConditionalProperties>
<String name="title" value="New Sample"/>
<String name="description" value="New Tab"/>
<String name="contentPage" value="tabtable.jsp"/>
<String name="presetThemeChannel" value="JSPPresetThemeContainer" advanced="true"/>
<String name="customThemeChannel" value="JSPCustomThemeContainer" advanced="true"/>
<String name="parentTabContainer" value="JSPTabContainer" advanced="true"/>
<String name="Desktop-fontFace1" value="Sans-serif"/>
<String name="refreshTime" value="" advanced="true"/>
<String name="width" value="thin" advanced="true"/>
<String name="fontFace1" value="Sans-serif"/>
<String name="productName" value="Sun Java System Portal Server"/>
<String name="maximizedChannel" value=""/>
<Integer name="timeout" value ="240"/>
<Integer name="layout" value="1"/>
<Boolean name="showExceptions" value="false"/>
<Boolean name="parallelChannelsInit" value="false"/>
<Boolean name="refreshParentContainerOnly" value="false" advanced="true"/>
<Boolean name="isEditable" value="true" advanced="true"/>
<String name="editType" value="edit_complete" advanced="true"/>
<String name="editContainerName" value="JSPEditContainer" advanced="true"/>
<Integer name="thin_popup_height" value="200"/>
<Integer name="thin_popup_width" value="500"/>
<Integer name="thick_popup_height" value="300"/>
<Integer name="thick_popup_width" value="600"/>
<Integer name="fullwidth_popup_height" value="500"/>
<Integer name="fullwidth_popup_width" value="600"/>
<Boolean name="defaultChannelIsMinimizable" value="true"/>
<Boolean name="defaultChannelIsMaximizable" value="true"/>
<Boolean name="defaultChannelIsMinimized" value="false" advanced="true"/>
<Boolean name="defaultChannelIsDetached" value="false" advanced="true"/>
<Boolean name="defaultChannelIsDetachable" value="true"/>
<Boolean name="defaultChannelIsRemovable" value="true"/>
<Boolean name="defaultChannelHasFrame" value="true" advanced="true"/>
<Boolean name="defaultChannelIsMovable" value="true"/>
<Boolean name="defaultBorderlessChannel" value="false" advanced="true"/>
<String name="defaultChannelColumn" value="1" advanced="true"/>
<String name="defaultChannelRow" value="1" advanced="true"/>
<Collection name="categories">
<String value="Sample Channels"/>
</Collection>
<Collection name="Sample Channels">
<String value="SampleRSS"/>
<String value="SampleURLScraper"/>
<String value="Notes"/>
<String value="SampleSimpleWebService"/>
</Collection>
<Collection name="channelsColumn" advanced="true">
<String name="SampleURLScraper" value="2"/>
<String name="Notes" value="2"/>
<String name="SampleSimpleWebService" value="2"/>
</Collection>
<Collection name="channelsRow" advanced="true">
<String name="SampleURLScraper" value="2"/>
<String name="Notes" value="3"/>
<String name="SampleSimpleWebService" value="4"/>
</Collection>
<Collection name="channelsIsMinimized" advanced="true"/>
<Collection name="channelsIsDetached" advanced="true"/>
<Collection name="channelsHasFrame" advanced="true"/>
<Collection name="channelsIsMinimizable"/>
<Collection name="channelsIsMaximizable"/>
<Collection name="channelsIsMovable"/>
<Collection name="channelsIsRemovable"/>
<Collection name="channelsIsDetachable"/>
<Collection name="borderlessChannels"/>
</Properties>
</Provider>
|
Define the container channel based on the PredefinedNewTabPanelContainerProvider.
When the user creates a new tab based on the predefined tab, all the properties for this tab are picked up from the Provider definition. For example, see below for PredefinedNewTabPanelContainer Channel Properties.
<Container name="PredefinedNewTabPanelContainer" provider="PredefinedNewTabPanelContainerProvider">
<Properties/>
<Available>
<Reference value="SampleRSS"/>
<Reference value="SampleURLScraper"/>
<Reference value="Notes"/>
<Reference value="SampleSimpleWebService"/>
</Available>
<Selected>
<Reference value="SampleRSS"/>
<Reference value="SampleURLScraper"/>
<Reference value="Notes"/>
<Reference value="SampleSimpleWebService"/>
</Selected>
<Channels>
</Channels>
</Container>
|
Load the display profile into LDAP by using the psadmin subcommand.