Programming__WebObjects-Web Applications-Development-Examples-Page Layout

Version 2.1 by smmccraw on 2007/07/08 09:45

Here is a trivial example of a page layout WOComponentContent:


{panel}
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
   <head>
        <title>
       <webobject name = "Title"></webobject>
     </title>
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
     <webobject name = "Stylesheet"></webobject>
   </head>
 
   <webobject name = "Body">
     <webobject name = "Form">
       <webobject name = "Table">
         <tr>
           <td align = "left" valign = "top" colspan = "3">
             <webobject name = "Header"></webobject>
           </td>
         </tr>
         <tr>
           <td align = "left" valign = "top" colspan = "3">
             &nbsp;
           </td>
         </tr>
         <tr>
           <td align = "left" valign = "top" class = "Margin">
             &nbsp;
           </td>
           <td align = "left" valign = "top">
             <webobject name = "Content"></webobject>
           </td>
           <td align = "left" valign = "top" class = "Margin">
             &nbsp;
           </td>
         </tr>
         <tr>
           <td align = "left" valign = "top" colspan = "3">
             &nbsp;
           </td>
         </tr>
         <tr>
           <td align = "left" valign = "top" colspan = "3">
             <webobject name = "Footer"></webobject>
           </td>
         </tr>
       </webobject>
     </webobject>
   </webobject>
 </html>
{panel}

  

And the wod:

  
  Title: WOString
  {
    value = title;
  };
 
  Stylesheet: Stylesheet
  {
  };
 
  Body: WOBody
  {
  };
 
  Table: WOGenericContainer
  {
    elementName = "table";
    border = "0";
    cellSpacing = "0";
    cellPadding = "0";
    class = "FullWidth";
  };
 
  Form: WOForm
  {
    multipleSubmit = true;
  };
 
  Header: Header
  {
    title = ^title;
    page = ^page;
    pathComponents = ^pathComponents;
  };
 
  Footer: Footer
  {
  };
 
  Content: WOComponentContent
  {
  };
  

To use this layout, you could do the following in one of your pages:

  


{panel}
 <webobject name = "PageLayout">
   <webobject name = "Table">
     <tr>
       <td align = "left" valign = "top">
         <webobject name = "Envelopes"></webobject>&nbsp;
       </td>
       <td align = "left" valign = "top" class = "Margin">
         &nbsp;
       </td>
       <td align = "left" valign = "top" class = "FixColumn">
         <webobject name = "Table">
           <tr>
             <td align = "left" valign = "top">
               <webobject name = "ThreadList"></webobject>
             </td>
           </tr>
           <tr>
             <td align = "left" valign = "top">
               <webobject name = "DocumentList"></webobject>
             </td>
           </tr>
           <tr>
             <td align = "left" valign = "top">
               <webobject name = "LinkList"></webobject>
             </td>
           </tr>
           <tr>
             <td align = "left" valign = "top">
               <webobject name = "RelatedList"></webobject>
             </td>
           </tr>
         </webobject>
       </td>
     </tr>
   </webobject>
 </webobject>
{panel}

wod file:

  
  PageLayout: PageLayout
  {
    title = title;
    page = name;
    pathComponents = pathComponents;
  };
 
  Name: SpanString
  {
    value = value;
    isBig = true;
    isBold = true;
  };
 
  Table: WOGenericContainer
  {
    elementName = "table";
    border = "0";
    cellSpacing = "0";
    cellPadding = "0";
    class = "FullWidth";
  };
 
  Envelopes: Table
  {
    list = envelopes;
    keysDescription = "self|recipientNames.iterator.next|sentDate";
    headersDescription = "Subject|Recipient|Date";
  };
 
  ThreadList: List
  {
    title = "Thread";
    list = threads;
    minimumSize = 0;
   maximumSize = 20;
  };
 
  DocumentList: List
  {
    title = "Attachment";
    list = documents;
    minimumSize = 0;
    
maximumSize = 20;
  };
 
  LinkList: List
  {
    title = "Link";
    list = links;
    minimumSize = 0;
   maximumSize = 20;
  };
 
  ListList: List
  {
    title = "List";
    list = lists;
    minimumSize = 0;
  };
 
  RelatedList: List
  {
    title = "Other";
    list = value.relatedNames;
    minimumSize = 0;
  };

Category:WebObjects