You are viewing a plain text version of this content. The canonical link for it is here.
Posted to svn@forrest.apache.org by th...@apache.org on 2006/08/01 23:29:59 UTC
svn commit: r427744 [2/5] - in
/forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher:
./ how/ images/ themes/ themes/images/
Added: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-contracts.html
URL: http://svn.apache.org/viewvc/forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-contracts.html?rev=427744&view=auto
==============================================================================
--- forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-contracts.html (added)
+++ forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-contracts.html Tue Aug 1 14:29:56 2006
@@ -0,0 +1,516 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <link href="../themes/common.css" media="screen" rel="alternate stylesheet" title="common" type="text/css" />
+ <link href="../themes/leather-dev.css" media="screen" rel="alternate stylesheet" title="common" type="text/css" />
+ <link href="../themes/pelt.screen.css" media="screen" rel="stylesheet" title="Pelt" type="text/css" />
+
+ <link href="../how/howto-dispatcher-contracts.dispatcher.css" media="screen" rel="stylesheet" title="Pelt" type="text/css" />
+ <link href="../themes/pelt.print.css" media="print" rel="stylesheet" title="pelt.print.css" type="text/css" />
+ <style type="text/css">/* Extra css */
+p.quote {
+ margin-left: 2em;
+ padding: .5em;
+ background-color: #f0f0f0;
+ font-family: monospace;
+}</style>
+ <meta content="Apache Forrest" name="Generator" />
+<meta content="0.8" name="Forrest-version" />
+<meta content="pelt" name="Forrest-theme-name" />
+<meta content="text/html; charset=UTF-8" http-equiv="content-type" />
+<!--+ |start navigation links +-->
+<link href="../index.html" rel="Index" title="Index..." />
+<link href="../linkmap.html" rel="CONTENTS" title="Site map..." />
+<link href="../how/howto-dispatcher-structurer.html" rel="PREVIOUS" title="Structurer" />
+<link href="../how/howto-dispatcher-quickstart.html" rel="FIRST" title="Quickstart" />
+<!--+ |end navigation links +-->
+<!--+|start favicon +-->
+<link href="../favicon.ico" rel="shortcut icon" />
+<!--+|start favicon +-->
+<script src="../themes/getBlank.js" type="text/javascript">Â </script>
+<script src="../themes/menu.js" type="text/javascript">Â </script>
+<!--+ |start content-title +-->
+<title>How to write a forrest:contract</title>
+<!--+ |end content-title +-->
+</head>
+<body>
+<div id="container">
+<!--+
+ | start breadtrail
+ +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">MyGroup</a>
+ > <a href="http://forrest.apache.org/">MyProject</a>
+<script src="../themes/breadcrumbs.js" type="text/javascript">Â </script>
+</div>
+<!--+
+ | end breadtrail
+ +-->
+<div id="header">
+<div id="branding-tagline-name">new
+ seed</div>
+<div id="branding-tagline-tagline">powered by the
+ dispatcher</div>
+<div class="logo">
+<!--+
+ |start Logo
+ +-->
+<a href="http://mygroup.org/">
+<img alt="MyGroup" class="logoImage" src="../images/group.png" title="MyGroup Description" />
+</a>
+<!--+
+ |end group Logo
+ +-->
+</div>
+<div class="logo">
+<!--+
+ |start Logo
+ +-->
+<a href="http://myproj.mygroup.org/">
+<img alt="MyProject" class="logoImage" src="../images/project.png" title="MyProject Description" />
+</a>
+<!--+
+ |end group Logo
+ +-->
+</div>
+<!--+
+ |start Search
+ +-->
+<div class="searchbox">
+<div class="round-top-left-small">
+<div class="round-top-right-small">
+<div class="search-input">
+<form action="http://www.google.com/search" method="get">
+<div class="search-hidden">
+<input name="sitesearch" type="hidden" value="mydomain" />
+</div>
+<div class="search-field">
+<input name="q" size="25" type="text" value="Search the site with google" />
+</div>
+<div class="search-submit">
+<input name="Search" type="submit" value="Search" />
+</div>
+</form>
+</div>
+</div>
+</div>
+</div>
+<!--+ |end search +-->
+<div id="nav-main-hook">
+<!--+ |start Tabs new +-->
+<ul id="nav-main">
+<li>
+<a class="base-not-selected" href="../index.html">Home</a>
+</li>
+<li class="current">
+<a class="base-selected" href="../how/howto-dispatcher-quickstart.html">HowTo</a>
+</li>
+</ul>
+<!--+ |end Tabs +-->
+<div id="publishedStrip"> <!--+
+ |start nav-main-sub
+ +--><!--+
+ |end Endtabs
+ +--><script type="text/javascript">document.write("Last Published:Â " + document.lastModified);</script>
+</div>
+</div>
+</div>
+<div id="page">
+<div class="breadtrail"> </div>
+<div id="leftbar">
+<!--+ |start 0 menu +-->
+<!--+ |start Menu +-->
+<div id="nav-section">
+<ul>
+<li class="pagegroupselected" id="menu_selected_1.1Title">
+<span onclick="SwitchMenu('menu_selected_1.1')">How to</span>
+<ul class=" selectedmenuitemgroup" id="menu_selected_1.1">
+<li class="menuitem">
+<a href="../how/howto-dispatcher-quickstart.html" title="">Quickstart</a>
+</li>
+<li class="menuitem">
+<a href="../how/howto-dispatcher-structurer.html" title="">Structurer</a>
+</li>
+<li class="menupage">
+<div class="menupagetitle">Contracts</div>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!--+ |end menu +-->
+<!--+ |start content-motd-page +-->
+<!--+ |end content-motd-page +-->
+<div id="roundbottom">
+<div id="roundbottomLeft">
+<img alt="spacer" src="../themes/images/spacer.gif" />
+</div>
+</div>
+</div>
+<div id="export-link">
+<a class="format" href="howto-dispatcher-contracts.pdf">
+<img alt="PDF - icon" class="skin" src="../themes/images/pdfdoc.gif" />
+<span class="caption">PDF</span>
+</a>
+</div>
+<div id="content">
+<!--+ |start content-title +-->
+<h1 class="content-title">How to write a forrest:contract</h1>
+<!--+ |end content-title +-->
+<!--+ |start content-abstract +-->
+ This How-To will explain how we wrote the contracts for the dispatcher and hope afterwards you will be able to do the same.
+ <!--+ |end content-abstract +--><!--+ |start content-minitoc +--><div id="content-minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Intended Audience">Intended Audience</a>
+</li>
+<li>
+<a href="#Purpose">Purpose</a>
+</li>
+<li>
+<a href="#Prerequisites">Prerequisites</a>
+</li>
+<li>
+<a href="#Steps">Steps</a>
+<ul class="minitoc">
+<li>
+<a href="#enhanceMaintenance">Enhance the maintenance</a>
+</li>
+<li>
+<a href="#blankContract">Explaining the blank forrest:contract</a>
+</li>
+<li>
+<a href="#newContract">Create a new contract</a>
+</li>
+<li>
+<a href="#structurerContract">Activating the contract</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Further Reading">Further Reading</a>
+</li>
+<li>
+<a href="#Feedback">Feedback</a>
+</li>
+</ul>
+</div>
+<!--+ |end minitoc +-->
+<!--+ |start content-main +-->
+<a name="Intended Audience" title="Intended Audience"> </a>
+<h2 class="underlined_10">Intended Audience</h2>
+<div class="section">
+<div class="warning">
+<div class="label">Warning</div>
+<div class="content">
+The "Dispatcher" (aka "Views") is new functionality which is still in development phase. That is why it is in the
+"whiteboard" section of the Forrest distribution. This HowTo is a good start but still needs more work.
+ See <a href="http://forrest.apache.org/docs_0_80/status-themes.html">Status of Themes: Skins and Dispatcher</a>.
+</div>
+</div>
+<p>
+ Devs and skin developer that wants to get started with forrest:contract development.
+ To really understand this how-to you need basic and sometimes advanced understanding of
+ the "old fashion" skin development process.
+ </p>
+</div>
+<a name="Purpose" title="Purpose"> </a>
+<h2 class="underlined_10">Purpose</h2>
+<div class="section">
+<p>
+ This setup guide will explain how to create a forrest:contract from scratch and
+ how this forrest:contract work with the core parts of forrest.
+ </p>
+</div>
+<a name="Prerequisites" title="Prerequisites"> </a>
+<h2 class="underlined_10">Prerequisites</h2>
+<div class="section">
+<ul>
+ <li>Installing a mozilla browser and the forrestbar helps a lot in developing.</li>
+ </ul>
+</div>
+<a name="Steps" title="Steps"> </a>
+<h2 class="underlined_10">Steps</h2>
+<div class="section">
+<div class="note">
+<div class="label">Note</div>
+<div class="content">The following content is from many mails around the topic, this how-to tries to be the
+ consolidation of this thread. It is mainly based on the thread "[RT] Why using views" -
+ in comparison with "old fashion" skins - usecase i18n</div>
+</div>
+<p>
+ By working on the i18n integration for "pelt" we again encountered the reasons for using the dispatcher. ;-)
+ The maintenance problem was to change the captions of the skin features (contracts) to enable
+ support for i18n. The case is that the <span class="codefrag">site2xhtml.xsl</span> has a lot of repeating code.
+ </p>
+<p>
+ For example the "last-publish"-contract could be found 2 times in the code.
+ This is not the only contract that was (is) doubled in the code. The problem with that is that
+ we needed to search the code for each caption and senselessly repeat the following
+ maintenance step of adding the <i18n:text/>-tags.
+ </p>
+<pre class="code">
+
+- <script language="JavaScript"
+- type="text/javascript">document.write("Published: " + document.lastModified);</script>
+
++ <script type="text/javascript">document.write("<i18n:text >Last
++ Published:</i18n:text>&#160;" + document.lastModified);
+
+ </pre>
+<a name="enhanceMaintenance" title="Enhance the maintenance"> </a>
+<h3 class="underlined_5">Enhance the maintenance</h3>
+<p>Now we can enhance the maintenance for the future and we give these code snippets
+ contracts names (based on their functionality). This naming enables us to keep
+the contract separate from the position code itself. In xsl you would
+simply do:
+ </p>
+<ol>
+ <li>replace the script by <xsl:call-template name="siteinfo-last-published"/></li>
+ <li>and add:</li>
+ </ol>
+<pre class="code"><xsl:template name="siteinfo-last-published">
+ <script type="text/javascript">
+ document.write("<i18n:text >Last Published:</i18n:text>&#160;" + document.lastModified);
+ </script>
+</xsl:template>
+ </pre>
+<p>
+ This allows us in a next maintenance to just change the code of
+ <xsl:template name="siteinfo-last-published"/> and apply it in any position where
+ it is placed.
+ </p>
+<div class="note">
+<div class="label">Note</div>
+<div class="content">
+ Now this refactoring of the site2xhtml.xsl is exactly what we doing in creating contracts for the dispatcher.
+ </div>
+</div>
+<a name="blankContract" title="Explaining the blank forrest:contract"> </a>
+<h3 class="underlined_5">Explaining the blank forrest:contract</h3>
+<p>
+ To start a new forrest:contract you can copy the 'blank.ft' from
+ <span class="codefrag">org.apache.forrest.plugin.output.themer/resources/themes/common/html/blank.ft</span>.
+ </p>
+<p>
+ The 'blank.ft' is a simple xml file with the following code which you can use to base new contracts
+ on:
+ </p>
+<pre class="code">
+<forrest:contract
+ xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ name="blank" type="nugget">
+
+ <!--NOTE:
+ When using the blank template as c'n p master just search and replace 'blank' by the {contract-name}!-->
+
+ <description>
+ {contract-name} will output {contract-funtion}. This is just a blank contract, it will output *nothing*.
+ </description>
+ <usage><![CDATA[<forrest:contract name="blank"/>]]></usage>
+ <forrest:template xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ format="html" name="blank" inputFormat="xsl" body="false" head="false">
+ <xsl:stylesheet version="1.1"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <!--
+ Add here the needed templates.
+ Remember to set the forrest:template @attributes!
+ -->
+ <!--
+ <xsl:template name="blank-head">
+ </xsl:template>
+ <xsl:template name="blank-body">
+ </xsl:template>
+ -->
+ </xsl:stylesheet>
+ </forrest:template>
+</forrest:contract>
+ </pre>
+<p>
+ The most important is the name of the contract <span class="codefrag"><forrest:contract name="blank"/></span>.
+ This name is the same as the file name of the contract (without file extension) <span class="codefrag">blank.ft</span>.
+ </p>
+<div class="note">
+<div class="label">Note</div>
+<div class="content">This is a <strong>naming convention</strong> that you need
+ to always meet. All @name attributes must be the file name of the contract without file extension.
+ </div>
+</div>
+<p>
+ The <span class="codefrag"><description/></span> tag needs to be filled in with some information
+ that is explaining the contract to the webdesigner. The better explained the more efficient
+ for the webdesigner to pick the right contract.
+ </p>
+<pre class="code"><description>
+ siteinfo-last-published-howto will output the last published date of the site with the help of jscript.
+</description>
+ </pre>
+<p>
+ In the <span class="codefrag"><usage/></span> tag we have to explain how the designer can use
+ the contract in his structurer.
+ </p>
+<pre class="code"><usage><![CDATA[<forrest:contract name="siteinfo-last-published-howto"/>]]></usage>
+ </pre>
+<p>
+ <span class="codefrag"><forrest:template name="blank" body="false" head="false"> </span>
+ That leads to the template attribute @body="true" and
+ @head="false". In html a contract can add content to the <body/> or/and
+ <head/> part of <html/>. These values need to be changed when adding an actual template.
+ Besides this, a xsl-template needs to indicate this in the naming. A template that adds content to the
+ html body needs to end with "<span class="codefrag">-body</span>"!!!
+ </p>
+<div class="warning">
+<div class="label">Warning</div>
+<div class="content">
+ The last paragraph about <forrest:template name="blank" body="false" head="false"> is due to change.
+ Please be aware that this part of the dispatcher is the main moving target right now!!!
+ </div>
+</div>
+<div class="note">
+<div class="label">Note</div>
+<div class="content">
+ It is possible to use contracts in different in/output formats.
+ We are focussing for now on format="html" as output and the inputFormat="xsl".
+ </div>
+</div>
+<p>
+ A <forrest:template /> has the child <xsl:stylesheet/> where we can create
+ templates for the html-head and html-body. For adding content into the body of the final
+ document change @body="true" and add:
+ </p>
+<pre class="code">
+<xsl:stylesheet version="1.1"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <!--Add here the needed templates-->
+ <xsl:template name="blank-body"/>
+</xsl:stylesheet>
+ </pre>
+<a name="newContract" title="Create a new contract"> </a>
+<h3 class="underlined_5">Create a new contract</h3>
+<div class="note">
+<div class="label">Note</div>
+<div class="content">
+ We use basic naming convention for contracts. Like
+ "naming does not say anything about layout position, but functionality of the contract".
+ </div>
+</div>
+<p>
+ Now let us pick up the example we started with and create a "siteinfo-last-published-howto" contract.
+ Save the blank.ft to <span class="codefrag">{project.home}/src/documentation/resources/themes/common/html/siteinfo-last-published-howto.ft</span>.
+ </p>
+<p>
+ Now the maintenance-optimized code (xpath="/html/body/*") was:
+ </p>
+<pre class="code">
+<xsl:template name="siteinfo-last-published">
+ <script type="text/javascript">
+ document.write("<i18n:text >Last Published:</i18n:text>&#160;" + document.lastModified);
+ </script>
+</xsl:template></pre>
+<p>
+ In this code we have to do the following steps to use it in our contract:
+ </p>
+<ul>
+ <li>Search and replace "siteinfo-last-published" with "siteinfo-last-publish-howto-body"</li>
+ <li>Add a "debug string - " to the template</li>
+ </ul>
+<p>
+ The contract after this steps should look like:
+ </p>
+<pre class="code">
+<xsl:template name="siteinfo-last-publish-howto-body">
+debug string -
+ <script type="text/javascript">
+ document.write("<i18n:text >Last Published:</i18n:text>&#160;" + document.lastModified);
+ </script>
+</xsl:template></pre>
+<p>Now we have to do some last steps in the siteinfo-last-publish-howto.ft</p>
+<ul>
+ <li>Search and replace "blank" with "siteinfo-last-publish-howto"</li>
+ <li>Add description and usage of the contract</li>
+ <li>Set @body="true"</li>
+ <li>Copy the maintenance optimized code to the contract.</li>
+ </ul>
+<p>
+ As the result your code should look like this:
+ </p>
+<pre class="code"><forrest:contract xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ name="siteinfo-last-published-howto" type="nugget">
+ <description>
+ siteinfo-last-published-howto will output the last published date of the site with the help of jscript.
+ </description>
+ <usage><![CDATA[<forrest:contract name="siteinfo-last-published-howto"/>]]></usage>
+ <forrest:template
+ xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ format="html" name="siteinfo-last-published-howto" inputFormat="xsl" body="true" head="false">
+ <xsl:stylesheet version="1.1"
+ xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:template name="siteinfo-last-published-howto-body">
+ debug string -
+ <script type="text/javascript">document.write("<i18n:text >Last Published:</i18n:text>&#160;" + document.lastModified);</script>
+ </xsl:template>
+ </xsl:stylesheet>
+ </forrest:template>
+</forrest:contract>
+ </pre>
+<a name="structurerContract" title="Activating the contract"> </a>
+<h3 class="underlined_5">Activating the contract</h3>
+<p>
+ To see whether the new contract works we need to add it to our structurer.
+ The contract usage contains the contract-tag <span class="codefrag"><forrest:contract name="siteinfo-last-published-howto"/></span>
+ Please see <a href="../how/howto-dispatcher-structurer.html">Getting started with the "structurer"</a> for more details.
+ </p>
+<div class="note">
+<div class="label">Note</div>
+<div class="content">
+ Next to write are parameter-contracts with advanced features of the dispatcher.
+ </div>
+</div>
+</div>
+<a name="Further Reading" title="Further Reading"> </a>
+<h2 class="underlined_10">Further Reading</h2>
+<div class="section">
+<p>
+ Congratulations you are now able to work with structurer contracts.
+ From here we recommend to read the following How-To's (if not already done):
+ </p>
+<ul>
+ <li>
+<a href="../how/howto-dispatcher-structurer.html">Getting started with the "structurer"</a> </li>
+ </ul>
+</div>
+<a name="Feedback" title="Feedback"> </a>
+<h2 class="underlined_10">Feedback</h2>
+<div class="section">
+<p>
+ Please provide feedback about this document via the
+ <a href="http://forrest.apache.org/mail-lists.html">mailing lists</a>.
+ </p>
+</div>
+<!--+ |end content-main +-->
+</div>
+</div>
+<div id="footer">
+<div class="lastmodified">
+<script type="text/javascript">document.write("Last Published:Â " + document.lastModified);</script>
+</div>
+<div class="copyright">
+ Copyright ©
+ 2002-2006 <a href="http://www.acme.org/licenses/">The Acme Software Organisation.</a> </div>
+<!--+ |start compliance links +-->
+<div id="siteinfo-compliance-links">
+<a href="http://validator.w3.org/check?uri=referer">
+<img alt="Valid XHTML 1.0!" height="31" src="http://www.w3.org/Icons/valid-xhtml10" width="88" />
+</a>
+<a href="http://jigsaw.w3.org/css-validator/check/referer">
+<img alt="Valid CSS!" src="http://jigsaw.w3.org/css-validator/images/vcss" style="border:0;width:88px;height:31px" />
+</a>
+</div>
+<!--+ |end compliance links +-->
+</div>
+</div>
+</body>
+</html>
Propchange: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-contracts.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-contracts.pdf
URL: http://svn.apache.org/viewvc/forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-contracts.pdf?rev=427744&view=auto
==============================================================================
Binary file - no diff available.
Propchange: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-contracts.pdf
------------------------------------------------------------------------------
svn:mime-type = application/pdf
Added: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-quickstart.dispatcher.css
URL: http://svn.apache.org/viewvc/forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-quickstart.dispatcher.css?rev=427744&view=auto
==============================================================================
--- forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-quickstart.dispatcher.css (added)
+++ forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-quickstart.dispatcher.css Tue Aug 1 14:29:56 2006
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+/* branding-theme-profiler-theme: Pelt */
+#header .round-top-left-small {
+ background-image: url(../themes/images/roundcorner-t-l-5-bg294563-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: top left;
+}
+#header .round-top-right-small {
+ background-image: url(../themes/images/roundcorner-t-r-5-bg294563-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: top right;
+}
+#nav-main li {
+ background-image: url(../themes/images/roundcorner-t-r-5-bg294563-strokeCEDFEF-fgCEDFEF.png);
+ background-repeat: no-repeat;
+ background-position: top right;
+}
+#nav-main li a {
+ background-image: url(../themes/images/roundcorner-t-l-5-bg294563-strokeCEDFEF-fgCEDFEF.png);
+ background-repeat: no-repeat;
+ background-position: top left;
+}
+#nav-main .current {
+ background-image: url(../themes/images/roundcorner-t-r-5-bg294563-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: top right;
+}
+#nav-main .current a {
+ background-image: url(../themes/images/roundcorner-t-l-5-bg294563-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: top left;
+}
+#roundbottom {
+ background-image: url(../themes/images/roundcorner-b-r-15-bgffffff-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: bottom right;
+}
+#roundbottomLeft {
+ background-image: url(../themes/images/roundcorner-b-l-15-bgffffff-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: bottom left;
+}
+
+
+
Propchange: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-quickstart.dispatcher.css
------------------------------------------------------------------------------
svn:eol-style = native
Added: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-quickstart.html
URL: http://svn.apache.org/viewvc/forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-quickstart.html?rev=427744&view=auto
==============================================================================
--- forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-quickstart.html (added)
+++ forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-quickstart.html Tue Aug 1 14:29:56 2006
@@ -0,0 +1,448 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <link href="../themes/common.css" media="screen" rel="alternate stylesheet" title="common" type="text/css" />
+ <link href="../themes/leather-dev.css" media="screen" rel="alternate stylesheet" title="common" type="text/css" />
+ <link href="../themes/pelt.screen.css" media="screen" rel="stylesheet" title="Pelt" type="text/css" />
+
+ <link href="../how/howto-dispatcher-quickstart.dispatcher.css" media="screen" rel="stylesheet" title="Pelt" type="text/css" />
+ <link href="../themes/pelt.print.css" media="print" rel="stylesheet" title="pelt.print.css" type="text/css" />
+ <style type="text/css">/* Extra css */
+p.quote {
+ margin-left: 2em;
+ padding: .5em;
+ background-color: #f0f0f0;
+ font-family: monospace;
+}</style>
+ <meta content="Apache Forrest" name="Generator" />
+<meta content="0.8" name="Forrest-version" />
+<meta content="pelt" name="Forrest-theme-name" />
+<meta content="text/html; charset=UTF-8" http-equiv="content-type" />
+<!--+ |start navigation links +-->
+<link href="../index.html" rel="Index" title="Index..." />
+<link href="../linkmap.html" rel="CONTENTS" title="Site map..." />
+<link href="../how/howto-dispatcher-structurer.html" rel="NEXT" title="Structurer" />
+<link href="../how/howto-dispatcher-contracts.html" rel="LAST" title="Contracts" />
+<!--+ |end navigation links +-->
+<!--+|start favicon +-->
+<link href="../favicon.ico" rel="shortcut icon" />
+<!--+|start favicon +-->
+<script src="../themes/getBlank.js" type="text/javascript">Â </script>
+<script src="../themes/menu.js" type="text/javascript">Â </script>
+<!--+ |start content-title +-->
+<title>Dispatcher quickstart</title>
+<!--+ |end content-title +-->
+</head>
+<body>
+<div id="container">
+<!--+
+ | start breadtrail
+ +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">MyGroup</a>
+ > <a href="http://forrest.apache.org/">MyProject</a>
+<script src="../themes/breadcrumbs.js" type="text/javascript">Â </script>
+</div>
+<!--+
+ | end breadtrail
+ +-->
+<div id="header">
+<div id="branding-tagline-name">new
+ seed</div>
+<div id="branding-tagline-tagline">powered by the
+ dispatcher</div>
+<div class="logo">
+<!--+
+ |start Logo
+ +-->
+<a href="http://mygroup.org/">
+<img alt="MyGroup" class="logoImage" src="../images/group.png" title="MyGroup Description" />
+</a>
+<!--+
+ |end group Logo
+ +-->
+</div>
+<div class="logo">
+<!--+
+ |start Logo
+ +-->
+<a href="http://myproj.mygroup.org/">
+<img alt="MyProject" class="logoImage" src="../images/project.png" title="MyProject Description" />
+</a>
+<!--+
+ |end group Logo
+ +-->
+</div>
+<!--+
+ |start Search
+ +-->
+<div class="searchbox">
+<div class="round-top-left-small">
+<div class="round-top-right-small">
+<div class="search-input">
+<form action="http://www.google.com/search" method="get">
+<div class="search-hidden">
+<input name="sitesearch" type="hidden" value="mydomain" />
+</div>
+<div class="search-field">
+<input name="q" size="25" type="text" value="Search the site with google" />
+</div>
+<div class="search-submit">
+<input name="Search" type="submit" value="Search" />
+</div>
+</form>
+</div>
+</div>
+</div>
+</div>
+<!--+ |end search +-->
+<div id="nav-main-hook">
+<!--+ |start Tabs new +-->
+<ul id="nav-main">
+<li>
+<a class="base-not-selected" href="../index.html">Home</a>
+</li>
+<li class="current">
+<a class="base-selected" href="../how/howto-dispatcher-quickstart.html">HowTo</a>
+</li>
+</ul>
+<!--+ |end Tabs +-->
+<div id="publishedStrip"> <!--+
+ |start nav-main-sub
+ +--><!--+
+ |end Endtabs
+ +--><script type="text/javascript">document.write("Last Published:Â " + document.lastModified);</script>
+</div>
+</div>
+</div>
+<div id="page">
+<div class="breadtrail"> </div>
+<div id="leftbar">
+<!--+ |start 0 menu +-->
+<!--+ |start Menu +-->
+<div id="nav-section">
+<ul>
+<li class="pagegroupselected" id="menu_selected_1.1Title">
+<span onclick="SwitchMenu('menu_selected_1.1')">How to</span>
+<ul class=" selectedmenuitemgroup" id="menu_selected_1.1">
+<li class="menupage">
+<div class="menupagetitle">Quickstart</div>
+</li>
+<li class="menuitem">
+<a href="../how/howto-dispatcher-structurer.html" title="">Structurer</a>
+</li>
+<li class="menuitem">
+<a href="../how/howto-dispatcher-contracts.html" title="">Contracts</a>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!--+ |end menu +-->
+<!--+ |start content-motd-page +-->
+<!--+ |end content-motd-page +-->
+<div id="roundbottom">
+<div id="roundbottomLeft">
+<img alt="spacer" src="../themes/images/spacer.gif" />
+</div>
+</div>
+</div>
+<div id="export-link">
+<a class="format" href="howto-dispatcher-quickstart.pdf">
+<img alt="PDF - icon" class="skin" src="../themes/images/pdfdoc.gif" />
+<span class="caption">PDF</span>
+</a>
+</div>
+<div id="content">
+<!--+ |start content-title +-->
+<h1 class="content-title">Dispatcher quickstart</h1>
+<!--+ |end content-title +-->
+<!--+ |start content-abstract +-->
+<!--+ |end content-abstract +-->
+<!--+ |start content-minitoc +-->
+<div id="content-minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Intended Audience">Intended Audience</a>
+</li>
+<li>
+<a href="#Purpose">Purpose</a>
+</li>
+<li>
+<a href="#Prerequisites">Prerequisites</a>
+</li>
+<li>
+<a href="#Steps">Steps</a>
+<ul class="minitoc">
+<li>
+<a href="#patch">Get ready</a>
+</li>
+<li>
+<a href="#enable">Dispatcher-enable the existing site</a>
+</li>
+<li>
+<a href="#another-theme">Use another theme</a>
+</li>
+<li>
+<a href="#our-structurer">Create our own structurer by copy-and-customise</a>
+</li>
+<li>
+<a href="#remove-default-contract">Remove a default contract</a>
+</li>
+<li>
+<a href="#add-default-contract">Add a default contract</a>
+</li>
+<li>
+<a href="#add-project-contract">Add a new project contract</a>
+</li>
+<li>
+<a href="#manage">Decide how to manage your contracts</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Further Reading">Further Reading</a>
+</li>
+<li>
+<a href="#Feedback">Feedback</a>
+</li>
+</ul>
+</div>
+<!--+ |end minitoc +-->
+<!--+ |start content-main +-->
+<a name="Intended Audience" title="Intended Audience"> </a>
+<h2 class="underlined_10">Intended Audience</h2>
+<div class="section">
+<p>People who are helping to develop the Dispatcher.</p>
+<div class="warning">
+<div class="label">Warning</div>
+<div class="content"> The "Dispatcher" (previously known as "Views") is new functionality which is
+ still in development phase. That is why it is in the "whiteboard" section
+ of Forrest. This document will also need to change to keep pace.
+ We are working at the moment on moving this plugin
+ from the whiteboard into the core plugins.
+ See <a href="http://forrest.apache.org/docs_0_80/status-themes.html">Status of Themes: Skins and Dispatcher</a>.
+ </div>
+</div>
+</div>
+<a name="Purpose" title="Purpose"> </a>
+<h2 class="underlined_10">Purpose</h2>
+<div class="section">
+<p>
+ This document will get you started. We will Dispatcher-enable an
+ existing site and show how to add/remove ready-made contacts.
+ Then we will discuss how add your own new contracts.
+ </p>
+<p>
+ This document encourages developers to get involved with
+ fine-tuning and testing the dispatcher. Please help to
+ enhance the current core contracts so that people do not
+ need to re-invent the wheel.
+ </p>
+</div>
+<a name="Prerequisites" title="Prerequisites"> </a>
+<h2 class="underlined_10">Prerequisites</h2>
+<div class="section">
+<ul>
+ <li>Using Forrest trunk of SVN (i.e. forrest-0.8-dev).
+ </li>
+ <li>Followed the installation instructions below.</li>
+ <li>You have an existing forrest site and want to try the
+ new Dispatcher. Otherwise create a 'forrest seed-sample' site.</li>
+ </ul>
+</div>
+<a name="Steps" title="Steps"> </a>
+<h2 class="underlined_10">Steps</h2>
+<div class="section">
+<div class="note">
+<div class="label">Note</div>
+<div class="content"> When developing with the dispatcher we assume you are using 'forrest
+ run' and the following workflow "change files -> refresh browser".<br />
+ Installing a mozilla browser and the
+ <a href="http://forrest.apache.org/tools/forrestbar.html">Forrestbar</a> helps a lot with developing,
+ but is not necessary.
+ </div>
+</div>
+<a name="patch" title="Get ready"> </a>
+<h3 class="underlined_5">Get ready</h3>
+<ul>
+ <li>Do 'svn update' on forrest/trunk</li>
+ <li>Do the 'build clean; build' (necessary because the Dispatcher is changing rapidly and uses some Java)</li>
+ </ul>
+<a name="enable" title="Dispatcher-enable the existing site"> </a>
+<h3 class="underlined_5">Dispatcher-enable the existing site</h3>
+<ul>
+ <li>Add the new plugins to forrest.properties ...
+ ,org.apache.forrest.plugin.internal.dispatcher,org.apache.forrest.themes.core
+ </li>
+ <li>localhost:8888/index.html ... fantastic. See the default view.</li>
+ </ul>
+<a name="another-theme" title="Use another theme"> </a>
+<h3 class="underlined_5">Use another theme</h3>
+<ul>
+ <li>Add project.theme=pelt to forrest.properties</li>
+ <li>Re-start 'forrest run'</li>
+ <li>localhost:8888/index.html ... See the new view.</li>
+ </ul>
+<a name="our-structurer" title="Create our own structurer by copy-and-customise"> </a>
+<h3 class="underlined_5">Create our own structurer by copy-and-customise</h3>
+<p>
+ Copy the default structurer for the pelt theme and make local changes.
+ </p>
+<div class="note">
+<div class="label">Note</div>
+<div class="content">
+ At this stage of rapid development of the Dispatcher, be sure to keep
+ your copy synchronised. Use 'diff' against the known svn version of
+ the core pelt.fv to track your local changes.
+ Also please consider contributing new contracts and changes to the
+ default structurers to the Forrest projects. That eases your local
+ version management and everyone will benefit.
+ </div>
+</div>
+<ul>
+ <li>Copy THEMER_PLUGIN/resources/themes/pelt.fv into your project at
+ PROJECT_HOME/src/documentation/resources/themes/pelt.fv
+ (create the new directory folder first).
+ </li>
+ <li>Re-start 'forrest run'</li>
+ <li>localhost:8888/index.html ... See the same view, now structured
+ by us.
+ </li>
+ </ul>
+<p>
+ From here on there is no need to re-start 'forrest run'. Just edit
+ the structurer and see the effect.
+ </p>
+<a name="remove-default-contract" title="Remove a default contract"> </a>
+<h3 class="underlined_5">Remove a default contract</h3>
+<ul>
+ <li>Remove one of the search boxes. Edit your pelt.fv and find the
+ "search-input" contract (there are two). Comment one out.
+ </li>
+ </ul>
+<a name="add-default-contract" title="Add a default contract"> </a>
+<h3 class="underlined_5">Add a default contract</h3>
+<p>
+ Forrest provides many default contracts. If you are using the
+ Forrestbar then choose "Devs => ls.contracts". Otherwise visit
+ localhost:8888/ls.contracts.html
+ </p>
+<ul>
+ <li>
+ See the usage detail for your chosen contract via the abovementioned list.
+ e.g. "siteinfo-compliance-links"
+ </li>
+ <li>
+ Insert it at the appropriate point in your structurer. Note that it
+ will need to go inside the appropriate CSS hook, e.g.
+ <pre class="code"> ...
+ <forrest:hook name="footer">
+ <forrest:contract name="siteinfo-compliance-links"/>
+ ...
+</pre>
+ </li>
+ </ul>
+<p>
+ Notice that you did not need to copy any other code to your project space.
+ Forrest finds the default contract in its core (the theme.core plugin).
+ </p>
+<a name="add-project-contract" title="Add a new project contract"> </a>
+<h3 class="underlined_5">Add a new project contract</h3>
+<div class="warning">
+<div class="label">Warning</div>
+<div class="content">
+ Carefully consider the purpose of your contracts. If they are useful
+ in a wider context, then they belong in plugins or the core of Forrest.
+ See below for further discussion on this important topic.
+ </div>
+</div>
+<p>
+ Project-based contracts are defined in theme-specific and
+ output-format-specific directory structure, e.g.
+ PROJECT_HOME/src/documentation/resources/themes/THEME_NAME/OUTPUT_FORMAT/
+ </p>
+<p>
+ Project-based contracts common to all themes go in
+ PROJECT_HOME/src/documentation/resources/themes/common/OUTPUT_FORMAT/
+ </p>
+<p>
+ To get started quickly (it is not a project-based contract but a demo),
+ copy one of the default contracts. e.g. copy siteinfo-current-time.ft to become siteinfo-doodad.ft ...
+ </p>
+<ul>
+ <li>
+ Copy THEMER_PLUGIN/resources/themes/common/html/siteinfo-current-time.ft
+ into your project at
+ PROJECT_HOME/src/documentation/resources/themes/common/html/siteinfo-doodad.ft
+ (create the new directory folders first).
+ </li>
+ <li>
+ Edit it to suit. Replace all occurrences of "siteinfo-current-time" with
+ "siteinfo-doodad" and make your other changes (e.g. the text and the
+ javascript function).
+ </li>
+ <li>
+ Declare your new contract in your structurer as done above for adding a
+ default contract.
+ </li>
+ </ul>
+<p>
+ See a list of your project-based contracts and their usage notes via
+ Forrestbar "Devs => ls.contracts.project". Otherwise visit
+ localhost:8888/ls.contracts.project.html
+ </p>
+<a name="manage" title="Decide how to manage your contracts"> </a>
+<h3 class="underlined_5">Decide how to manage your contracts</h3>
+<div class="fixme">
+<div class="label">Fixme (open)</div>
+<div class="content">
+Glean content from Ross' discussion:
+<a href="http://marc.theaimsgroup.com/?l=forrest-dev&m=113748831226697">Re: Dispatcher quickstart</a>.
+</div>
+</div>
+</div>
+<a name="Further Reading" title="Further Reading"> </a>
+<h2 class="underlined_10">Further Reading</h2>
+<div class="section">
+<p> Congratulations you are now able to work with the Dispatcher. From here
+ we recommend to read the following How-Tos: </p>
+<ul>
+ <li>
+ <a href="../how/howto-dispatcher-structurer.html">How to use the structurer</a>
+ </li>
+ <li>
+ <a href="../how/howto-dispatcher-contracts.html">Create your own contract
+ implementation</a>
+ </li>
+ </ul>
+</div>
+<a name="Feedback" title="Feedback"> </a>
+<h2 class="underlined_10">Feedback</h2>
+<div class="section">
+<p> Please provide feedback about this document via the <a href="http://forrest.apache.org/mail-lists.html">mailing lists</a>. </p>
+</div>
+<!--+ |end content-main +-->
+</div>
+</div>
+<div id="footer">
+<div class="lastmodified">
+<script type="text/javascript">document.write("Last Published:Â " + document.lastModified);</script>
+</div>
+<div class="copyright">
+ Copyright ©
+ 2002-2006 <a href="http://www.acme.org/licenses/">The Acme Software Organisation.</a> </div>
+<!--+ |start compliance links +-->
+<div id="siteinfo-compliance-links">
+<a href="http://validator.w3.org/check?uri=referer">
+<img alt="Valid XHTML 1.0!" height="31" src="http://www.w3.org/Icons/valid-xhtml10" width="88" />
+</a>
+<a href="http://jigsaw.w3.org/css-validator/check/referer">
+<img alt="Valid CSS!" src="http://jigsaw.w3.org/css-validator/images/vcss" style="border:0;width:88px;height:31px" />
+</a>
+</div>
+<!--+ |end compliance links +-->
+</div>
+</div>
+</body>
+</html>
Propchange: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-quickstart.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-quickstart.pdf
URL: http://svn.apache.org/viewvc/forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-quickstart.pdf?rev=427744&view=auto
==============================================================================
Binary file - no diff available.
Propchange: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-quickstart.pdf
------------------------------------------------------------------------------
svn:mime-type = application/pdf
Added: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-structurer.dispatcher.css
URL: http://svn.apache.org/viewvc/forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-structurer.dispatcher.css?rev=427744&view=auto
==============================================================================
--- forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-structurer.dispatcher.css (added)
+++ forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-structurer.dispatcher.css Tue Aug 1 14:29:56 2006
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+/* branding-theme-profiler-theme: Pelt */
+#header .round-top-left-small {
+ background-image: url(../themes/images/roundcorner-t-l-5-bg294563-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: top left;
+}
+#header .round-top-right-small {
+ background-image: url(../themes/images/roundcorner-t-r-5-bg294563-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: top right;
+}
+#nav-main li {
+ background-image: url(../themes/images/roundcorner-t-r-5-bg294563-strokeCEDFEF-fgCEDFEF.png);
+ background-repeat: no-repeat;
+ background-position: top right;
+}
+#nav-main li a {
+ background-image: url(../themes/images/roundcorner-t-l-5-bg294563-strokeCEDFEF-fgCEDFEF.png);
+ background-repeat: no-repeat;
+ background-position: top left;
+}
+#nav-main .current {
+ background-image: url(../themes/images/roundcorner-t-r-5-bg294563-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: top right;
+}
+#nav-main .current a {
+ background-image: url(../themes/images/roundcorner-t-l-5-bg294563-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: top left;
+}
+#roundbottom {
+ background-image: url(../themes/images/roundcorner-b-r-15-bgffffff-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: bottom right;
+}
+#roundbottomLeft {
+ background-image: url(../themes/images/roundcorner-b-l-15-bgffffff-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: bottom left;
+}
+
+
+
Propchange: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-structurer.dispatcher.css
------------------------------------------------------------------------------
svn:eol-style = native
Added: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-structurer.html
URL: http://svn.apache.org/viewvc/forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-structurer.html?rev=427744&view=auto
==============================================================================
--- forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-structurer.html (added)
+++ forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-structurer.html Tue Aug 1 14:29:56 2006
@@ -0,0 +1,624 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <link href="../themes/common.css" media="screen" rel="alternate stylesheet" title="common" type="text/css" />
+ <link href="../themes/leather-dev.css" media="screen" rel="alternate stylesheet" title="common" type="text/css" />
+ <link href="../themes/pelt.screen.css" media="screen" rel="stylesheet" title="Pelt" type="text/css" />
+
+ <link href="../how/howto-dispatcher-structurer.dispatcher.css" media="screen" rel="stylesheet" title="Pelt" type="text/css" />
+ <link href="../themes/pelt.print.css" media="print" rel="stylesheet" title="pelt.print.css" type="text/css" />
+ <style type="text/css">/* Extra css */
+p.quote {
+ margin-left: 2em;
+ padding: .5em;
+ background-color: #f0f0f0;
+ font-family: monospace;
+}</style>
+ <meta content="Apache Forrest" name="Generator" />
+<meta content="0.8" name="Forrest-version" />
+<meta content="pelt" name="Forrest-theme-name" />
+<meta content="text/html; charset=UTF-8" http-equiv="content-type" />
+<!--+ |start navigation links +-->
+<link href="../index.html" rel="Index" title="Index..." />
+<link href="../linkmap.html" rel="CONTENTS" title="Site map..." />
+<link href="../how/howto-dispatcher-contracts.html" rel="NEXT" title="Contracts" />
+<link href="../how/howto-dispatcher-quickstart.html" rel="PREVIOUS" title="Quickstart" />
+<link href="../how/howto-dispatcher-contracts.html" rel="LAST" title="Contracts" />
+<link href="../how/howto-dispatcher-quickstart.html" rel="FIRST" title="Quickstart" />
+<!--+ |end navigation links +-->
+<!--+|start favicon +-->
+<link href="../favicon.ico" rel="shortcut icon" />
+<!--+|start favicon +-->
+<script src="../themes/getBlank.js" type="text/javascript">Â </script>
+<script src="../themes/menu.js" type="text/javascript">Â </script>
+<!--+ |start content-title +-->
+<title>How to use the structurer</title>
+<!--+ |end content-title +-->
+</head>
+<body>
+<div id="container">
+<!--+
+ | start breadtrail
+ +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">MyGroup</a>
+ > <a href="http://forrest.apache.org/">MyProject</a>
+<script src="../themes/breadcrumbs.js" type="text/javascript">Â </script>
+</div>
+<!--+
+ | end breadtrail
+ +-->
+<div id="header">
+<div id="branding-tagline-name">new
+ seed</div>
+<div id="branding-tagline-tagline">powered by the
+ dispatcher</div>
+<div class="logo">
+<!--+
+ |start Logo
+ +-->
+<a href="http://mygroup.org/">
+<img alt="MyGroup" class="logoImage" src="../images/group.png" title="MyGroup Description" />
+</a>
+<!--+
+ |end group Logo
+ +-->
+</div>
+<div class="logo">
+<!--+
+ |start Logo
+ +-->
+<a href="http://myproj.mygroup.org/">
+<img alt="MyProject" class="logoImage" src="../images/project.png" title="MyProject Description" />
+</a>
+<!--+
+ |end group Logo
+ +-->
+</div>
+<!--+
+ |start Search
+ +-->
+<div class="searchbox">
+<div class="round-top-left-small">
+<div class="round-top-right-small">
+<div class="search-input">
+<form action="http://www.google.com/search" method="get">
+<div class="search-hidden">
+<input name="sitesearch" type="hidden" value="mydomain" />
+</div>
+<div class="search-field">
+<input name="q" size="25" type="text" value="Search the site with google" />
+</div>
+<div class="search-submit">
+<input name="Search" type="submit" value="Search" />
+</div>
+</form>
+</div>
+</div>
+</div>
+</div>
+<!--+ |end search +-->
+<div id="nav-main-hook">
+<!--+ |start Tabs new +-->
+<ul id="nav-main">
+<li>
+<a class="base-not-selected" href="../index.html">Home</a>
+</li>
+<li class="current">
+<a class="base-selected" href="../how/howto-dispatcher-quickstart.html">HowTo</a>
+</li>
+</ul>
+<!--+ |end Tabs +-->
+<div id="publishedStrip"> <!--+
+ |start nav-main-sub
+ +--><!--+
+ |end Endtabs
+ +--><script type="text/javascript">document.write("Last Published:Â " + document.lastModified);</script>
+</div>
+</div>
+</div>
+<div id="page">
+<div class="breadtrail"> </div>
+<div id="leftbar">
+<!--+ |start 0 menu +-->
+<!--+ |start Menu +-->
+<div id="nav-section">
+<ul>
+<li class="pagegroupselected" id="menu_selected_1.1Title">
+<span onclick="SwitchMenu('menu_selected_1.1')">How to</span>
+<ul class=" selectedmenuitemgroup" id="menu_selected_1.1">
+<li class="menuitem">
+<a href="../how/howto-dispatcher-quickstart.html" title="">Quickstart</a>
+</li>
+<li class="menupage">
+<div class="menupagetitle">Structurer</div>
+</li>
+<li class="menuitem">
+<a href="../how/howto-dispatcher-contracts.html" title="">Contracts</a>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!--+ |end menu +-->
+<!--+ |start content-motd-page +-->
+<!--+ |end content-motd-page +-->
+<div id="roundbottom">
+<div id="roundbottomLeft">
+<img alt="spacer" src="../themes/images/spacer.gif" />
+</div>
+</div>
+</div>
+<div id="export-link">
+<a class="format" href="howto-dispatcher-structurer.pdf">
+<img alt="PDF - icon" class="skin" src="../themes/images/pdfdoc.gif" />
+<span class="caption">PDF</span>
+</a>
+</div>
+<div id="content">
+<!--+ |start content-title +-->
+<h1 class="content-title">How to use the structurer</h1>
+<!--+ |end content-title +-->
+<!--+ |start content-abstract +--> This How-To describes the usage of the structurer config domain
+ specific language to create beautiful websites in no time. <!--+ |end content-abstract +--><!--+ |start content-minitoc +--><div id="content-minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Intended Audience">Intended Audience</a>
+</li>
+<li>
+<a href="#Purpose">Purpose</a>
+</li>
+<li>
+<a href="#Prerequisites">Prerequisites</a>
+</li>
+<li>
+<a href="#Steps">Steps</a>
+<ul class="minitoc">
+<li>
+<a href="#emptystructurer">Empty structurer file</a>
+</li>
+<li>
+<a href="#firststructurer">Creating your first structurer</a>
+</li>
+<li>
+<a href="#hookstructurer">Hooks in the structurer</a>
+</li>
+<li>
+<a href="#cssstructurer">CSS in the structurer</a>
+</li>
+<li>
+<a href="#Linking+to+an+external+css+file">Linking to an external css file</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Further Reading">Further Reading</a>
+</li>
+<li>
+<a href="#Feedback">Feedback</a>
+</li>
+</ul>
+</div>
+<!--+ |end minitoc +-->
+<!--+ |start content-main +-->
+<a name="Intended Audience" title="Intended Audience"> </a>
+<h2 class="underlined_10">Intended Audience</h2>
+<div class="section">
+<div class="warning">
+<div class="label">Warning</div>
+<div class="content"> The "Dispatcher" (aka "Views") is new functionality which is
+ still in development phase. That is why it is in the "whiteboard" section
+ of the Forrest distribution. This HowTo is a good start but still needs
+ more work.
+ See <a href="http://forrest.apache.org/docs_0_80/status-themes.html">Status of Themes: Skins and Dispatcher</a>.
+ </div>
+</div>
+<p> This part of the the dispatcher is called the structurer and is
+ dedicated to webdesigner and user with some knowledge of css. </p>
+</div>
+<a name="Purpose" title="Purpose"> </a>
+<h2 class="underlined_10">Purpose</h2>
+<div class="section">
+<p> This how-to will show you how to write a <strong>structurer</strong>
+ from the ground up. We will focus on html as the output format. As well
+ it will show how to add your own css implementation to the structurer.
+ </p>
+</div>
+<a name="Prerequisites" title="Prerequisites"> </a>
+<h2 class="underlined_10">Prerequisites</h2>
+<div class="section">
+<ul>
+ <li>Installing a mozilla browser and the forrestbar helps a lot in
+ developing.</li>
+ </ul>
+</div>
+<a name="Steps" title="Steps"> </a>
+<h2 class="underlined_10">Steps</h2>
+<div class="section">
+<div class="note">
+<div class="label">Note</div>
+<div class="content"> When developing with the dispatcher we assume you are using 'forrest
+ run' and the following workflow "change files -> refresh browser"<br />
+ Installing a mozilla browser and the forrestbar helps a lot in
+ developing. Many instructions assumes that you have the forrestbar
+ installed. </div>
+</div>
+<a name="emptystructurer" title="Empty structurer file"> </a>
+<h3 class="underlined_5">Empty structurer file</h3>
+<pre class="code"><forrest:views
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
+ <forrest:view type="html">
+ </forrest:view>
+</forrest:views>
+ </pre>
+<p> <strong> The structurer</strong> is designed to be open for any
+ format that can use<strong> forrest:view</strong> as configuration
+ file. The only format we implemented is html for now. This is as well
+ true for the delivered contracts. </p>
+<a name="firststructurer" title="Creating your first structurer"> </a>
+<h3 class="underlined_5">Creating your first structurer</h3>
+<div class="warning">
+<div class="label">Warning</div>
+<div class="content"> The structurer is based on jx templates to allow simple
+ presentation logic (all code starting with "jx:"). Please refer to the
+ cocoon documentation about jx. </div>
+</div>
+<p> In this section we will create a new structurer. We will override the
+ default structurer of the core themes for the index page of a new seed.
+ For that we will create a file called <span class="codefrag">index.fv</span> and save it
+ in the directory <span class="codefrag">{project:resources}/structurer/url</span>
+ (create it if needed). This will make <strong>only</strong> the
+ index.html page look different from the rest of the project. </p>
+<div class="note">
+<div class="label">RecursiveDirectoryTraversalAction</div>
+<div class="content"> You can set a view for an individual file, a directory, or the whole site. To address multiple files in a directory call your <span class="codefrag">.fv</span> file <span class="codefrag">common.fv</span>. If Forrest doesn't find a <span class="codefrag">.fv</span> file with the same name as the current file it will use the common.fv file in that directory, or the first one it finds going upwards through the directory structure.
+ <span class="codefrag">common.fv</span> files affect all subdirectories unless they are overidden by another <span class="codefrag">common.fv</span> or a file-specific <span class="codefrag">foo.fv</span> file.
+ </div>
+</div>
+<p> Remember: pointing your browser to
+ <span class="codefrag">http://localhost:8888/ls.contracts.html</span> will show a page
+ with all contracts and themes that you can use in your project provided
+ by forrest. </p>
+<p> Let us use the blank structurer from the earlier step and add the
+ content-main contract. In ls.contracts.html we find the information for
+ how to use the contract in our structurer. Our <span class="codefrag">index.fv</span>
+ should look like: </p>
+<pre class="code"><forrest:views
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
+ <forrest:view type="html">
+ <forrest:contract name="content-main">
+ <forrest:properties contract="content-main">
+ <forrest:property name="content-main" nugget="get.body">
+ <jx:import uri="cocoon://#{$cocoon/parameters/getRequest}.body.xml"/>
+ </forrest:property>
+ <!-- Heading types can be clean|underlined|boxed -->
+ <forrest:property name="content-main-conf">
+ <headings type="underlined"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ </forrest:view>
+</forrest:views>
+ </pre>
+<p>A contract has to request the data model it want to transform. This
+ happends by defining forrest:properties which have the same name like
+ the contract. In our case we want the HTML rendered from intermediate
+ format (**.body.xml). This we are going to include via: <span class="codefrag"><jx:import uri="cocoon://#{$cocoon/parameters/getRequest}.body.xml"/>
+ </span>
+</p>
+<p>Contracts can offer some property configuration of the outcome of
+ the transformation. In our case <span class="codefrag"><forrest:property name="content-main-conf">
+ <headings type="underlined"/>
+ </forrest:property>. </span>
+</p>
+<p> Lets try our new structurer by pointing to
+ <span class="codefrag">http://localhost:8888/index.html</span>. We will see only the
+ main content. Now let us add the section navigation to our structurer.
+ The contract usage in the structurer can be looked up in
+ ls.contracts.html. Our structurer now looks like: </p>
+<pre class="code"><forrest:views
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
+ <forrest:view type="html">
+ <forrest:contract name="nav-main">
+ <forrest:properties contract="nav-main">
+ <forrest:property name="nav-main" nugget="get.navigation">
+ <jx:import
+ uri="cocoon://#{$cocoon/parameters/getRequest}.navigation.xml"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ <forrest:contract name="content-main">
+ <forrest:properties contract="content-main">
+ <forrest:property name="content-main" nugget="get.body">
+ <jx:import uri="cocoon://#{$cocoon/parameters/getRequest}.body.xml"/>
+ </forrest:property>
+ <!-- Heading types can be clean|underlined|boxed -->
+ <forrest:property name="content-main-conf">
+ <headings type="underlined"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ </forrest:view>
+</forrest:views>
+ </pre>
+<p> We now find the main content and the section navigation after each
+ other and in the order we placed them in the structurer, but we want it
+ next to each other (left: nav-section; right: content-main). </p>
+<a name="hookstructurer" title="Hooks in the structurer"> </a>
+<h3 class="underlined_5">Hooks in the structurer</h3>
+<p> We will use now the first time a <span class="codefrag"><forrest:hook name="layoutId"/>
+ </span>. Hooks are the styling side of the structurer. We can imitate
+ arbitrary html skeleton with their help. Before we explain how to use
+ your own css in the structurer, we will use the default css. You can
+ see in our example that we have css included. That is a default
+ fallback coming from the implementation. In this common.css we can find
+ </p>
+<pre class="code">/* menu */
+#leftbar {
+ width: 25%;
+ float: left;
+ background: #eae8e3;
+ border: thin dashed #565248;
+}
+ </pre>
+<p> With this information we know to use <span class="codefrag"><forrest:hook name="leftbar"/>
+ </span> and add contracts into that container. </p>
+<p> If we want to put the nav-section contract into the left-hand side
+ position of the site we need to place the contract into that hook.
+ Like: </p>
+<pre class="code"><forrest:hook name="leftbar">
+ <!-- Include contract here -->
+</forrest:hook>
+ </pre>
+<p> Our structurer will then look like: </p>
+<pre class="code"><forrest:views
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
+ <forrest:view type="html">
+ <forrest:hook name="leftbar">
+ <forrest:contract name="nav-section">
+ <forrest:properties contract="nav-section">
+ <forrest:property name="nav-section" nugget="get.navigation">
+ <jx:import
+ uri="cocoon://#{$cocoon/parameters/getRequest}.navigation.xml"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ </forrest:hook>
+ <forrest:contract name="content-main">
+ <forrest:properties contract="content-main">
+ <forrest:property name="content-main" nugget="get.body">
+ <jx:import uri="cocoon://#{$cocoon/parameters/getRequest}.body.xml"/>
+ </forrest:property>
+ <!-- Heading types can be clean|underlined|boxed -->
+ <forrest:property name="content-main-conf">
+ <headings type="underlined"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ </forrest:view>
+</forrest:views>
+ </pre>
+<a name="cssstructurer" title="CSS in the structurer"> </a>
+<h3 class="underlined_5">CSS in the structurer</h3>
+<p>We now know how to place contracts and hooks in our structurer. Until
+ this stage we only used the common.css. CSS-support of the structurer
+ is as easy as placing contracts/hooks. To override the common.css
+ stylesheet we use another tag within our structurer <span class="codefrag"><forrest:css />
+ </span>. </p>
+<p>You can add inline and linked css with the structurer. As soon as you
+ use forrest:css you will disable the fallback css support from
+ forrest. With this tag we tell the dispatcher that we want to override the common.css.
+ After adding the following to our index.fv the design will be different.</p>
+<pre class="code"><forrest:css >
+/* Extra css */
+/* menu */
+#leftbar {
+ width: 25%;
+ float: left;
+ background: #CCCCFF;
+ border: thin solid #000000;
+}
+</forrest:css> </pre>
+<p> We just changed the border-style to 'solid', the background to
+ '#CCCCFF' and the color to '#000000'. So you see a white page where the menu is surrounded by a solid
+ border with the defined background.</p>
+<div class="note">
+<div class="label">Note</div>
+<div class="content">
+ <span class="codefrag"><forrest:css /></span> needs to be the direct child of
+ <span class="codefrag"><forrest:view type="html"></span>
+ </div>
+</div>
+<pre class="code"><forrest:views
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
+ <forrest:view type="html">
+ <forrest:css >
+/* Extra css */
+/* menu */
+#leftbar {
+ width: 25%;
+ float: left;
+ background: #CCCCFF;
+ border: thin solid #000000;
+}
+ </forrest:css>
+ <forrest:hook name="leftbar">
+ <forrest:contract name="nav-section">
+ <forrest:properties contract="nav-section">
+ <forrest:property name="nav-section" nugget="get.navigation">
+ <jx:import
+ uri="cocoon://#{$cocoon/parameters/getRequest}.navigation.xml"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ </forrest:hook>
+ <forrest:contract name="content-main">
+ <forrest:properties contract="content-main">
+ <forrest:property name="content-main" nugget="get.body">
+ <jx:import uri="cocoon://#{$cocoon/parameters/getRequest}.body.xml"/>
+ </forrest:property>
+ <!-- Heading types can be clean|underlined|boxed -->
+ <forrest:property name="content-main-conf">
+ <headings type="underlined"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ </forrest:view>
+</forrest:views>
+ </pre>
+<p>As a second example, let us change
+ as well the content-main by adding another hook <span class="codefrag"><forrest:hook name="content"/>
+ </span> We need to add the new layout container to our inline css: </p>
+<pre class="code">
+/* The actual content */
+#content {
+ margin-left: 25%;
+ padding: 0 20px 0 20px;
+ background: #B9D3EE;
+}</pre>
+<p> Then we have to add the 'content-main' contract to the 'content'
+ hook. The resulting structurer looks like: </p>
+<pre class="code"><forrest:views
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
+ <forrest:view type="html">
+ <forrest:css >
+/* Extra css */
+/* menu */
+#leftbar {
+ width: 25%;
+ float: left;
+ background: #CCCCFF;
+ border: thin solid #000000;
+}
+/* The actual content */
+#content {
+ margin-left: 25%;
+ padding: 0 20px 0 20px;
+ background: #B9D3EE;
+}
+ </forrest:css>
+ <forrest:hook name="leftbar">
+ <forrest:contract name="nav-section">
+ <forrest:properties contract="nav-section">
+ <forrest:property name="nav-section" nugget="get.navigation">
+ <jx:import
+ uri="cocoon://#{$cocoon/parameters/getRequest}.navigation.xml"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ </forrest:hook>
+ <forrest:hook name="content">
+ <forrest:contract name="content-main">
+ <forrest:properties contract="content-main">
+ <forrest:property name="content-main" nugget="get.body">
+ <jx:import uri="cocoon://#{$cocoon/parameters/getRequest}.body.xml"/>
+ </forrest:property>
+ <!-- Heading types can be clean|underlined|boxed -->
+ <forrest:property name="content-main-conf">
+ <headings type="underlined"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ </forrest:hook>
+ </forrest:view>
+</forrest:views>
+ </pre>
+<p> We are now able to place contracts into the layout container and add
+ custom css to the structurer. </p>
+<a name="Linking+to+an+external+css+file" title="Linking to an external css file"> </a>
+<h3 class="underlined_5">Linking to an external css file</h3>
+<div class="note">
+<div class="label">Note</div>
+<div class="content">This will change for the next version of views (v3) where we use a
+ generic contract instead of the standalone element (forrest:css). </div>
+</div>
+<p>Make sure your project has the following directory structure. If it
+ doesn't you'll have to create it. "common" is the fallback for all
+ themes, if you want to override the css for a specific theme replace
+ "common" with "themeName". This is where Forrest will look for external
+ css stylesheets. </p>
+<pre class="code">
+ $projectHome\src\documentation\resources\themes\common\css</pre>
+<p>Where $projectHome is the directory where your project exists.</p>
+<p>Put your css stylesheets in this directory. For arguement's sake let's say
+ it's called mystyles.css</p>
+<p>Edit your common.fv structurer (or whatever structurer (theme) you are using). This
+ will probably be some where in: </p>
+<pre class="code">$projectHome\src\documentation\content\xdocs</pre>
+<p>or if you want to override it for the whole project in:</p>
+<pre class="code">$projectHome\src\documentation\resources\themes\</pre>
+<p>Add the following element to the *.fv file:</p>
+<pre class="code"><forrest:css url="styles.css" media="screen" theme="pelt"/>
+ </pre>
+<p>
+<strong>Important!</strong> This must appear straight after the "view
+ type" element (as first child): </p>
+<pre class="code"><forrest:view type="html"></pre>
+<pre class="code"><forrest:css url="mystyles.css" media="screen" theme="pelt"/>
+ </pre>
+<p>The attributes are: </p>
+<ol>
+ <li>the url where the css exist (NOTE: it will be rewritten to "../themes/mystyles.css").</li>
+ <li>the media type, you can set different styles for screen and print.
+ This is really useful if you want to hide elements such as navigation
+ in the print output (#nav-section{display:none} for example).</li>
+ <li>the theme, "pelt" is the default theme (another is the "common" theme). Change this if you
+ are using your own theme.</li>
+ </ol>
+<p>You can have as many css links as you like, and they'll appear in the
+ head of your document in same order as they are in the .fv file.</p>
+<div class="fixme">
+<div class="label">Fixme (thorsten)</div>
+<div class="content"> Add more information of recent threads around
+ css in the structurer and information how you add an @import? Use e.g.
+ <a href="http://marc.theaimsgroup.com/?t=113471292700001&r=1&w=2">http://marc.theaimsgroup.com/?t=113471292700001&r=1&w=2</a>
+ </div>
+</div>
+</div>
+<a name="Further Reading" title="Further Reading"> </a>
+<h2 class="underlined_10">Further Reading</h2>
+<div class="section">
+<p> Congratulations you are now able to work with the structurer. From here
+ we recommend to read the following How-Tos: </p>
+<ul>
+ <li>
+ <a href="../how/howto-dispatcher-contracts.html">Create your own contract
+ implementation</a>
+ </li>
+ </ul>
+</div>
+<a name="Feedback" title="Feedback"> </a>
+<h2 class="underlined_10">Feedback</h2>
+<div class="section">
+<p> Please provide feedback about this document via the <a href="http://forrest.apache.org/mail-lists.html">mailing lists</a>. </p>
+</div>
+<!--+ |end content-main +-->
+</div>
+</div>
+<div id="footer">
+<div class="lastmodified">
+<script type="text/javascript">document.write("Last Published:Â " + document.lastModified);</script>
+</div>
+<div class="copyright">
+ Copyright ©
+ 2002-2006 <a href="http://www.acme.org/licenses/">The Acme Software Organisation.</a> </div>
+<!--+ |start compliance links +-->
+<div id="siteinfo-compliance-links">
+<a href="http://validator.w3.org/check?uri=referer">
+<img alt="Valid XHTML 1.0!" height="31" src="http://www.w3.org/Icons/valid-xhtml10" width="88" />
+</a>
+<a href="http://jigsaw.w3.org/css-validator/check/referer">
+<img alt="Valid CSS!" src="http://jigsaw.w3.org/css-validator/images/vcss" style="border:0;width:88px;height:31px" />
+</a>
+</div>
+<!--+ |end compliance links +-->
+</div>
+</div>
+</body>
+</html>
Propchange: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-structurer.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-structurer.pdf
URL: http://svn.apache.org/viewvc/forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-structurer.pdf?rev=427744&view=auto
==============================================================================
Binary file - no diff available.
Propchange: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-dispatcher-structurer.pdf
------------------------------------------------------------------------------
svn:mime-type = application/pdf
Added: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-structurer-contracts.dispatcher.css
URL: http://svn.apache.org/viewvc/forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-structurer-contracts.dispatcher.css?rev=427744&view=auto
==============================================================================
--- forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-structurer-contracts.dispatcher.css (added)
+++ forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-structurer-contracts.dispatcher.css Tue Aug 1 14:29:56 2006
@@ -0,0 +1,45 @@
+
+/* branding-theme-profiler-theme: Pelt */
+#header .round-top-left-small {
+ background-image: url(../themes/images/roundcorner-t-l-5-bg294563-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: top left;
+}
+#header .round-top-right-small {
+ background-image: url(../themes/images/roundcorner-t-r-5-bg294563-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: top right;
+}
+#nav-main li {
+ background-image: url(../themes/images/roundcorner-t-r-5-bg294563-strokeCEDFEF-fgCEDFEF.png);
+ background-repeat: no-repeat;
+ background-position: top right;
+}
+#nav-main li a {
+ background-image: url(../themes/images/roundcorner-t-l-5-bg294563-strokeCEDFEF-fgCEDFEF.png);
+ background-repeat: no-repeat;
+ background-position: top left;
+}
+#nav-main .current {
+ background-image: url(../themes/images/roundcorner-t-r-5-bg294563-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: top right;
+}
+#nav-main .current a {
+ background-image: url(../themes/images/roundcorner-t-l-5-bg294563-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: top left;
+}
+#roundbottom {
+ background-image: url(../themes/images/roundcorner-b-r-15-bgffffff-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: bottom right;
+}
+#roundbottomLeft {
+ background-image: url(../themes/images/roundcorner-b-l-15-bgffffff-stroke4a6d8c-fg4a6d8c.png);
+ background-repeat: no-repeat;
+ background-position: bottom left;
+}
+
+
+
Propchange: forrest/site/pluginDocs/plugins_0_80/org.apache.forrest.plugin.internal.dispatcher/how/howto-structurer-contracts.dispatcher.css
------------------------------------------------------------------------------
svn:eol-style = native