Sun Java System Portal Server 7.1 Developer Sample Guide

ProcedureTo Add a Tab to JSPTabContainer

  1. Create the necessary display profile.

    1. 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> ...
    2. Add entries to the <Available> and <Selected> tags. For example:


      ...
      <Available>
      	<Reference value=”NewTabPanelContainer”/>
      	...
      </Available>
      ...
      <Selected>
      	<Reference value=”NewTabPanelContainer"/>
      	...
      </Selected>
      ...
    3. 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>
    4. 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>
    5. 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>
  2. Load the display profile into LDAP by using the psadmin subcommand.

  3. Bring up the Desktop and verify that the tab was added.