Sun Java System Portal Server 7 Enterprise Sample Guide

Adding New Layouts

The Enterprise Sample relies on the CSS file for positioning of channels on the page. When creating new layouts or modifying existing layouts, review the Enterprise Sample CSS files under /var/opt/SUNWportal/portals/portal-ID/web-src/enterprise/css.

The various CSS file are available and are selected based on client browser type and client operating system. The CSS file selection logic can be found in writeCSS function in /var/opt/SUNWportal/portals/portal-ID/web-src/enterprise/js/util.js.

ProcedureTo Add New Layouts

The Enterprise Sample supports layout=3 (THIN-WIDE-THIN) layout.

You can extend the code to support multiple layouts by modifying the file /var/opt/SUNWportal/portals/portal-ID/desktop/enterprise_sample/JSPTableContainerProvider/table.jsp.

Step

    Replace the code in the table.jsp Listing 1 with the code in Listing 2.

    Listing 1


    <!-- Begin Left Column of Channels -->
    <div class="tableContainerColumnLeft">
    <dttable:getColumns id="channels" column="left" scope="request"/>
    <jsp:include page="column.jsp" flush="true">
    <jsp:param name="columnName" value="center"/>
    </jsp:include>
    </div>
    <!-- End Left Column of Channels -->
    
    <!-- Begin Middle Column of Channels -->
    <div class="tableContainerColumnCenter"">
    <dttable:getColumns id="channels" column="center" scope="request"/>
    <jsp:include page="column.jsp" flush="true">
    <jsp:param name="columnName" value="center"/>
    </jsp:include>
    </div>
    <!-- End Middle Column of Channels -->
    
    <!-- Begin Right Column of Channels -->
    <div class="tableContainerColumnRight">
    <dttable:getColumns id="channels" column="right" scope="request"/>
    <jsp:include page="column.jsp" flush="true">
    <jsp:param name="columnName" value="center"/>
    </jsp:include>
    </div>
    <!-- End Right Column of Channels -->

    Listing 2

    You can find the original code in /var/opt/SUNWportal/portals/portal-ID/desktop/enterprise_sample/JSPTableContainerProvider/table.jsp starting at Line # 78


    <dtpc:getIntegerProperty key="layout" id="layout"/>
    <jx:declare id="layout" type="Integer"/>
    
    <!-- start table-container -->
    <% if (layout == 1) { %>
    <!-- THIN-WIDE layout -->
    <!-- Begin Left Column of Channels -->
    <div class="tableContainerColumnLeft">
    <dttable:getColumns id="channels" column="left" scope="request"/>
    <jsp:include page="column.jsp" flush="true">
    <jsp:param name="columnName" value="left"/>
    </jsp:include>
    </div>
    <!-- End Left Column of Channels -->
    
    <!-- Begin Right Column of Channels -->
    <div class="tableContainerColumnCenter">
    <dttable:getColumns id="channels" column="right" scope="request"/>
    <jsp:include page="column.jsp" flush="true">
    <jsp:param name="columnName" value="center"/>
    </jsp:include>
    </div>
    <!-- End Right Column of Channels -->
    
    <% } else if (layout == 3) { %>
    <!-- THIN-WIDE-THIN layout -->
    <!-- Begin Left Column of Channels -->
    <div class="tableContainerColumnLeft">
    <dttable:getColumns id="channels" column="left" scope="request"/>
    <jsp:include page="column.jsp" flush="true">
    <jsp:param name="columnName" value="left"/>
    </jsp:include>
    </div>
    <!-- End Left Column of Channels -->
    
    <!-- Begin Middle Column of Channels -->
    <div class="tableContainerColumnCenter">
    <dttable:getColumns id="channels" column="center" scope="request"/>
    <jsp:include page="column.jsp" flush="true">
    <jsp:param name="columnName" value="center"/>
    </jsp:include>
    </div>
    
    <!-- Begin Right Column of Channels -->
    <div class="tableContainerColumnRight">
    <dttable:getColumns id="channels" column="right" scope="request"/>
    <jsp:include page="column.jsp" flush="true">
    <jsp:param name="columnName" value="right"/>
    </jsp:include>
    </div>
    <!-- Begin Right Column of Channels -->
    
    <% } else if (layout == 4) { %>
    <!-- Add custom layout here -->
    <% } %>
    </div><!-- end table-container -->

    Redeploy the portal web application using the utility: /opt/SUNWportal/bin/psadmin redeploy adminuser amAdmin -passwordfile password-filename -portal portal-ID.