[pal-cvs 2405] [137] added portlet developer's guide

svnno****@sourc***** svnno****@sourc*****
2007年 5月 14日 (月) 15:03:45 JST


Revision: 137
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=137
Author:   shinsuke
Date:     2007-05-14 15:03:45 +0900 (Mon, 14 May 2007)

Log Message:
-----------
added portlet developer's guide

Added Paths:
-----------
    pal-portal/trunk/docs/ja/portlet-developers-guide/
    pal-portal/trunk/docs/ja/portlet-developers-guide/project.properties
    pal-portal/trunk/docs/ja/portlet-developers-guide/project.xml
    pal-portal/trunk/docs/ja/portlet-developers-guide/src/
    pal-portal/trunk/docs/ja/portlet-developers-guide/src/resources/
    pal-portal/trunk/docs/ja/portlet-developers-guide/src/resources/site.jsl
    pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/
    pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/guide-teeda-based-portlet.xml
    pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/images/
    pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/images/pal-logo.png
    pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/index.xml
    pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/navigation.xml


-------------- next part --------------
Added: pal-portal/trunk/docs/ja/portlet-developers-guide/project.properties
===================================================================
--- pal-portal/trunk/docs/ja/portlet-developers-guide/project.properties	2007-05-14 05:25:07 UTC (rev 136)
+++ pal-portal/trunk/docs/ja/portlet-developers-guide/project.properties	2007-05-14 06:03:45 UTC (rev 137)
@@ -0,0 +1,33 @@
+# Repo
+maven.repo.remote = http://jetplume.sourceforge.jp/maven/, http://www.bluesunrise.com/maven/, http://www.ibiblio.org/maven/, http://dist.codehaus.org/, http://cvs.apache.org/repository
+
+#
+# DATE Preferences
+#
+# The place of the date on the pages : choices are 'bottom', 'left', 'right', 'navigation-top', 'navigation-bottom'
+maven.xdoc.date = left
+#maven.xdoc.date.format = yyyy/MM/dd HH:mm z
+maven.xdoc.date.format = yyyy/MM/dd HH:mm
+# The date locale
+maven.xdoc.date.locale = ja
+
+#
+# Doc Setting
+#
+maven.xdoc.version=${pom.currentVersion}
+maven.xdoc.includeProjectDocumentation = no
+maven.docs.outputencoding = EUC-JP
+maven.javadoc.source = 1.4
+maven.xdoc.jsl=file:${maven.src.dir}/resources/site.jsl
+
+# Multiproject settings
+maven.multiproject.includes=*/project.xml
+maven.multiproject.excludes=project.xml
+# following are default values but needed here because our allSite goal doesn't know them from the plugin
+maven.multiproject.aggregateDir=multiproject/
+maven.multiproject.ignoreFailures=true
+
+maven.pdf.cover.type=Portlet Developer's Guide
+maven.pdf.companyLogo=http://pal.sourceforge.jp/images/pal_banner.gif
+#maven.pdf.projectLogo=http://pal.sourceforge.jp/pal-portal/docs/ja/portlet-developers-guide/images/sflogo.gif
+maven.pdf.projectLogo=


Property changes on: pal-portal/trunk/docs/ja/portlet-developers-guide/project.properties
___________________________________________________________________
Name: svn:eol-style
   + native

Added: pal-portal/trunk/docs/ja/portlet-developers-guide/project.xml
===================================================================
--- pal-portal/trunk/docs/ja/portlet-developers-guide/project.xml	2007-05-14 05:25:07 UTC (rev 136)
+++ pal-portal/trunk/docs/ja/portlet-developers-guide/project.xml	2007-05-14 06:03:45 UTC (rev 137)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright 2004 The Apache Software Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<project>
+  <name>PALポータル ポートレット開発者ガイド</name>
+  <groupId>jp.sf.pal.pal-portal.docs.ja</groupId>
+  <artifactId>portlet-developers-guide</artifactId>
+  <currentVersion>0.1-SNAPSHOT</currentVersion>
+  <organization>
+    <name>Portal Application Laboratory</name>
+    <url>http://sourceforge.jp/projects/pal/</url>
+    <logo>/images/pal-logo.png</logo>
+  </organization>
+  <inceptionYear>2005</inceptionYear>
+  <package/>
+  <logo>http://pal.sourceforge.jp/images/sflogo.png</logo>
+  <description/>
+  <siteAddress>shell.sourceforge.jp</siteAddress>
+  <siteDirectory>/home/groups/p/pa/pal/htdocs/pal-portal/docs/ja/portlet-developers-guide/</siteDirectory>
+  <reports>
+    <report>maven-license-plugin</report>
+  </reports>
+</project>


Property changes on: pal-portal/trunk/docs/ja/portlet-developers-guide/project.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: pal-portal/trunk/docs/ja/portlet-developers-guide/src/resources/site.jsl
===================================================================
--- pal-portal/trunk/docs/ja/portlet-developers-guide/src/resources/site.jsl	2007-05-14 05:25:07 UTC (rev 136)
+++ pal-portal/trunk/docs/ja/portlet-developers-guide/src/resources/site.jsl	2007-05-14 06:03:45 UTC (rev 137)
@@ -0,0 +1,513 @@
+<?xml version="1.0"?>
+
+<!--
+ * ========================================================================
+ * 
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ * ========================================================================
+-->
+<!-- stylesheet to be used -->
+<jsl:stylesheet select="$doc"
+  xmlns:define="jelly:define"
+  xmlns:j="jelly:core"
+  xmlns:jsl="jelly:jsl"
+  xmlns:log="jelly:log"
+  xmlns:util="jelly:util"
+  xmlns:x="jelly:xml"
+  xmlns:doc="doc"
+  xmlns:maven="jelly:maven"
+  xmlns="dummy"
+  trim="true">
+  <jsl:template match="document" trim="true">
+    <j:useBean var="navbean" class="org.apache.maven.NavBean"/>
+	<j:set var="location" value="${outFile.substring(destdir.length())}"/>
+	<util:replace var="location" oldChar="\" newChar="/" value="${location}"/>
+    <!-- Stores location for publish date / version -->
+    <j:set var="date">${maven.xdoc.date}</j:set>
+	<j:setProperties object="${navbean}" document="${doc}" location="${location}"/>
+	
+    <x:doctype name="html" publicId="-//W3C//DTD XHTML 1.0 Transitional//EN" systemId="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+    <html>
+      <head>
+        <j:set var="docTitle"><x:expr select="./properties/title"/></j:set>
+        <x:if select="$nav/title">
+          <title><x:expr select="$nav/title"/> - ${docTitle}</title>
+        </x:if>
+        <x:if select="not($nav/title)">
+          <title>${pom.name} - ${docTitle}</title>
+        </x:if>
+        
+        <j:set var="themeUrl" value="${maven.xdoc.theme.url}"/>
+        <util:file var="projectCssFile" name="${maven.docs.src}/style/project.css"/>
+        
+        <style type="text/css" media="all"><![CDATA[
+          @import url("${relativePath}/style/maven-base.css");
+          ]]>
+			    <j:if test="${!empty(themeUrl)}"><![CDATA[
+				    @import url("${maven.xdoc.theme.url}");
+			    ]]></j:if>
+			    <j:if test="${empty(themeUrl)}"><![CDATA[
+				    @import url("${relativePath}/style/maven-${maven.xdoc.theme}.css");
+			    ]]></j:if>
+			    <j:if test="${projectCssFile.exists()}"><![CDATA[
+				    @import url("${relativePath}/style/project.css");
+			    ]]></j:if>
+        </style>
+        
+        <link rel="stylesheet" type="text/css" href="${relativePath}/style/print.css" media="print"/>
+        <meta http-equiv="Content-Type" content="text/html; charset=${outputencoding}"/>
+        <x:forEach var="author" select="./properties/author">
+          <meta name="author" content="${author.text}"/>
+          <meta name="email" content="${author.attribute('email').value}"/>
+        </x:forEach>
+        
+        <jsl:applyTemplates select="$doc/document/head/*"/>
+        
+      </head>
+
+      <x:element name="body"><j:whitespace trim="true">
+        <x:attribute name="class">composite</x:attribute>
+        <x:forEach var="attr" select="$doc/document/body/@*">
+          <x:attribute name="${attr.name}">${attr.value}</x:attribute>
+        </x:forEach>
+        </j:whitespace>
+
+        <div id="banner">
+              <!-- organization logo -->
+                <j:set var="logo" value="${pom.organization.logo}"/>
+                <j:if test="${!empty(logo)}">
+                  <!-- set url to org or project url -->
+                  <j:set var="url" value="${pom.organization.url}"/>
+                  <j:if test="${!empty(url)}">
+                    <j:set var="home" value="${pom.organization.url}"/>
+                  </j:if>
+                  <j:if test="${empty(url)}">
+                    <j:set var="home" value="${pom.url}"/>
+                  </j:if>
+                  <!-- set image to relative or complete -->
+                  <j:set var="image" value="${pom.organization.logo}"/>
+                  <j:if test="${!image.startsWith('http://') and !image.startsWith('https://')}">
+                    <j:set var="image" value="${relativePath}${image}"/>
+                  </j:if>
+                  <a href="${home}" id="organizationLogo">
+                    <img src="${image}" alt="${pom.organization.name}" />
+                  </a>
+                </j:if>
+
+              <!-- project logo and link -->
+                  <j:set var="logo" value="${pom.logo}"/>
+                  <j:if test="${logo != null and logo != ''}">
+                    <!-- set image to relative or complete -->
+                    <j:set var="image" value="${pom.logo}"/>
+                    <j:if test="${!image.startsWith('http://') and !image.startsWith('https://')}">
+                      <j:set var="image" value="${relativePath}${image}"/>
+                    </j:if>
+
+                    <a href="${pom.url}" id="projectLogo">
+                      <img src="${image}" alt="${pom.name}"/>
+                    </a>
+                  </j:if>
+                  <j:if test="${logo == null or logo == ''}">
+                      <a href="${pom.url}" id="projectLogo">
+                        <span>${pom.name}</span>
+                      </a>
+                  </j:if>
+                <div class="clear"><hr /></div>
+        </div>
+
+        <div id="breadcrumbs">
+              <j:if test="${date == 'left'}">
+                <maven:property var="version" name="maven.xdoc.version" defaultValue="${pom.currentVersion}"/>
+                <div class="xleft">
+                	Last published: ${build.date}
+                  <j:if test="${!empty(version)}">| Doc for ${version}</j:if>
+                </div>
+              </j:if>
+                <div class="xright">
+                  <j:if test="${date == 'right'}">
+                    Last published: ${build.date}
+                    <x:if select="$nav/body/links">|</x:if>
+                  </j:if>
+                  <!-- render links -->
+                  <x:if select="$nav/body/links">
+                    <jsl:applyTemplates select="$nav/body/links"/>
+                  </x:if>
+                </div>
+                <div class="clear"><hr /></div>
+        </div>
+        
+        <!-- left column start -->
+        <div id="leftColumn">
+          <div id="navcolumn">
+            <j:if test="${date == 'navigation-top'}">
+              <div id="lastPublished">Last published: ${build.date}</div>
+            </j:if>
+            <x:if select="$nav">
+              <jsl:applyTemplates select="$nav/body/menu[not(@type) | @type='header'] | $nav/body/search"/>
+            </x:if>
+            <jsl:applyTemplates select="$projectNav/body/menu"/>
+            <!-- allows user to put menu items after standard reports -->
+            <x:if select="$nav">
+              <jsl:applyTemplates select="$nav/body/menu[@type='footer']"/>
+            </x:if>
+            <!-- Standard Maven Navigation -->
+            <j:set var="fileName">${file}</j:set>
+            <j:set var="poweredbyimage">${maven.xdoc.poweredby.image}</j:set>
+            <j:set var="poweredbytitle">${maven.xdoc.poweredby.title}</j:set>
+            <j:set var="poweredbyurl" value="${maven.xdoc.poweredby.url}" />
+            <j:if test="${!empty(poweredbyimage)}">
+              <a id="poweredBy" href="${poweredbyurl}" title="${poweredbytitle}">
+                <img alt="${maven.xdoc.poweredby.title}" src="${relativePath}/images/logos/${poweredbyimage}" />
+              </a>
+            </j:if>
+            <div style="width:100%;text-align:center;padding:0px 0px 10px 0px">
+              <a href="http://www.java.net/" title="java.net">
+                <img alt="java.net" src="/images/javanet_button_90.gif"/>
+              </a>
+            </div>
+            <j:if test="${date == 'navigation-bottom'}">
+              <div id="lastPublished">Last published: ${build.date}</div>
+            </j:if>
+          </div>
+       </div>
+       <!-- left column end -->
+              
+       <!-- body start -->
+       <div id="bodyColumn">
+         <div class="contentBox">
+           <!-- FIXME really shouldn't use $doc, but jelly loses it's context again -->
+           <jsl:applyTemplates select="$doc/document/body/section"/>
+           <jsl:applyTemplates select="$doc/document/body/release" />
+           <jsl:applyTemplates select="$doc/document/body/goals" />
+         </div>
+       </div>
+       <div class="clear"><hr /></div>
+       <!-- body end -->
+        
+              
+       <!-- footer start -->    
+       <div id="footer">  
+          <jsl:applyTemplates select="$nav/body/footer"/>
+          <div class="xright">
+            <j:if test="${!empty(pom.organization.name)}">
+              <j:if test="${!empty(pom.inceptionYear)}">
+                <j:if test="${pom.inceptionYear == mavenCurrentYear}">
+                  &#169; ${mavenCurrentYear}, ${pom.organization.name}
+                </j:if>
+                <j:if test="${pom.inceptionYear != mavenCurrentYear}">
+                  &#169; ${pom.inceptionYear}-${mavenCurrentYear}, ${pom.organization.name}
+                </j:if>
+              </j:if>
+              <j:if test="${empty(pom.inceptionYear)}">
+                &#169; ${mavenCurrentYear}, ${pom.organization.name}
+              </j:if>
+            </j:if>
+            <j:if test="${date == 'bottom'}">
+              - Last published: ${build.date}
+            </j:if>
+          </div>
+          <div class="clear"><hr /></div>
+        </div>
+        <!-- footer end --> 
+              
+<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
+<script type="text/javascript">
+_uacct = "UA-1799703-1";
+urchinTracker();
+</script>
+      </x:element>
+    </html>
+  </jsl:template>
+
+  <!-- process the properties of the doc -->
+  <jsl:template match="properties" trim="true">
+    <!-- stick head block here later -->
+  </jsl:template>
+
+  <!-- Process a menu for the navigation bar -->
+  <jsl:template match="menu" trim="true">
+    <j:set var="_menuName"><x:expr select="@name"/></j:set>
+    <j:set var="_menuName"><doc:escapeNameToken value="${_menuName}"/></j:set>
+    <j:choose>
+      <j:when test="${!empty(_menuName)}">
+        <div id="menu${_menuName}">
+          <h5><x:expr select="@name"/></h5>
+          <ul><jsl:applyTemplates select="item"/></ul>
+        </div>
+      </j:when>
+      <j:otherwise>
+        <div>
+          <ul><jsl:applyTemplates select="item"/></ul>
+        </div>
+      </j:otherwise>
+    </j:choose>
+    
+  </jsl:template>
+
+  <jsl:template match="item" trim="true">
+    <x:set var="item" select="."/>
+    <x:set var="_name" select="string(@name)"/>
+    <x:set var="_link" select="string(@href)"/>
+    <x:set var="_img" select="string(@img)"/>
+    <x:set var="_target" select="string(@target)"/>
+    <x:set var="_childCount" select="count(./item)"/>
+    <j:set var="_isCollapsed" value="${navbean.isCollapsed(item.get(0))}"/>
+    <j:set var="_state" value="none"/>
+    <j:if test="${_childCount.intValue() gt 0}">
+      <j:if test="${!_isCollapsed}"><j:set var="_state" value="expanded"/></j:if>
+      <j:if test="${_isCollapsed}"><j:set var="_state" value="collapsed"/></j:if>
+    </j:if>
+    <li class="${_state}">
+      <j:if test="${navbean.isSelected(item.get(0))}">
+        <strong><doc:itemLink name="${_name}" link="${_link}" img="${_img}" state="${_state}" target="${_target}"/></strong>
+      </j:if>
+      <j:if test="${!navbean.isSelected(item.get(0))}">
+        <doc:itemLink name="${_name}" link="${_link}" img="${_img}" state="${_state}" target="${_target}"/>
+      </j:if>
+      <j:if test="${_state == 'expanded'}">
+        <ul>
+          <jsl:applyTemplates select="item"/>
+        </ul>
+      </j:if>
+    </li>
+  </jsl:template>
+
+  <!-- Process the breadcrumb navbar -->
+  <jsl:template match="links" trim="true">
+    <j:set var="linkCount" value="1"/>
+    <x:forEach var="link" select="item">
+      <j:set var="_img"><x:expr select="@img"/></j:set>
+      <j:set var="_name"><x:expr select="@name"/></j:set>
+      <j:set var="_link"><x:expr select="@href"/></j:set>
+      <j:set var="_target"><x:expr select="@target"/></j:set>
+      <j:whitespace trim="false">
+        <j:if test="${linkCount != 1}">
+          <j:if test="${!(maven.xdoc.crumb.separator == '')}">
+            <span class="separator">${maven.xdoc.crumb.separator}</span>
+          </j:if>
+        </j:if>
+        <doc:itemLink name="${_name}" link="${_link}" img="${_img}" target="${_target}"/>
+      </j:whitespace>
+      <j:set var="linkCount" value="${1+linkCount}"/>
+    </x:forEach>
+  </jsl:template>
+
+  <!-- Google site search -->
+  <jsl:template match="search" trim="true">
+    <!-- Search code: http://www.google.com/searchcode.html -->
+    <!-- Google logos: http://www.google.com/stickers.html -->
+    <!-- Terms: http://www.google.com./services/terms_free.html -->
+    <div id="search">
+      <h5>Search ${pom.name}</h5>
+      <form method="get" action="http://www.google.com/search">
+        <a class="navlink" href="http://www.google.com">
+          <img src="http://www.google.com/logos/Logo_25wht.gif" width="75" height="32" alt="Google" />
+        </a>
+        <j:set var="siteURL" value="${pom.url}"/>
+        <!-- google fails on urls that end with / -->
+        <j:if test="${siteURL.endsWith('/')}">
+          <j:set var="URLLength" value="${siteURL.length() - 1}"/>
+          <j:set var="siteURL" value="${siteURL.substring(0, URLLength.intValue())}"/>
+        </j:if>
+        <input type="text" id="q" size="15" name="q" maxlength="255" value=""/>
+        <input type="submit" id="btnG" value="Go" name="btnG"/>
+        <input type="hidden" name="domains" value="${siteURL}"/>
+        <input type="hidden" id="search" name="sitesearch" value="${siteURL}"/>
+      </form>
+    </div>
+  </jsl:template>
+
+  <!-- process a documentation section -->
+  <jsl:template match="section" trim="true">
+    <div class="section">
+      <j:set var="_sectionName"><x:expr select="@name"/></j:set>
+      <!-- named anchors can't contain whitespaces -->
+      <j:set var="_anchorName"><doc:escapeNameToken value="${_sectionName}"/></j:set>
+      <j:if test="${!empty(_sectionName)}">
+          <a name="${_anchorName}"/><h2>${_sectionName}</h2>
+      </j:if>
+      <jsl:applyTemplates select="*"/>
+    </div>
+  </jsl:template>
+
+  <jsl:template match="subsection" trim="true">
+    <div class="subsection">
+      <j:set var="_sectionName"><x:expr select="@name"/></j:set>
+      <!-- named anchors can't contain whitespaces -->
+      <j:set var="_anchorName"><doc:escapeNameToken value="${_sectionName}"/></j:set>
+      <j:if test="${!empty(_sectionName)}">
+          <a name="${_anchorName}"/><h3>${_sectionName}</h3>
+      </j:if>
+      <jsl:applyTemplates select="*"/>
+    </div>
+  </jsl:template>
+
+  <jsl:template match="source" trim="false">
+    <div class="source"><pre><jsl:applyTemplates /></pre></div>
+  </jsl:template>
+  
+  <!-- preserve whitespace in the following elements -->
+  <jsl:template match="pre | script | style" trim="true">
+    <x:set var="nodename" select="name()"/>
+    <x:element name="${nodename}">
+      <x:forEach var="attr" select="@*">
+        <x:attribute name="${attr.name}">${attr.value}</x:attribute>
+      </x:forEach>
+      <j:whitespace trim="false"><jsl:applyTemplates /></j:whitespace>
+    </x:element>
+  </jsl:template>
+  
+  <!-- xhtml fixup: add missing alt attribute for images -->
+  <jsl:template match="img" trim="true">
+    <x:element name="img">
+      <x:forEach var="attr" select="@*">
+        <x:attribute name="${attr.name}">${attr.value}</x:attribute>
+      </x:forEach>
+      <x:set var="noalt" select="count(./@alt) = 0" />
+      <j:if test="${noalt}" >
+        <x:attribute name="alt"></x:attribute>
+      </j:if>
+    </x:element>
+  </jsl:template>
+
+  <jsl:template match="footer" trim="true">
+    <div class="xleft">
+      <jsl:applyTemplates select="*"/>
+    </div>
+  </jsl:template>
+
+  <jsl:template match="table" trim="true">
+    <j:set var="rowcount" value="0"/>
+    <table class="bodyTable">
+      <jsl:applyTemplates select="*"/>
+    </table>
+  </jsl:template>
+
+  <jsl:template match="tr" trim="true">
+    <j:choose>
+      <j:when test="${rowMode == 'a'}">
+        <j:set var="rowMode" value="b"/>
+      </j:when>
+      <j:otherwise>
+        <j:set var="rowMode" value="a"/>
+      </j:otherwise>
+    </j:choose>
+    <x:element name="tr"><j:whitespace trim="true">
+      <x:attribute name="class">${rowMode}</x:attribute>
+      <x:forEach var="attr" select="@*">
+        <x:attribute name="${attr.name}">${attr.value}</x:attribute>
+      </x:forEach>
+      <jsl:applyTemplates select="*"/>
+</j:whitespace></x:element>
+  </jsl:template>
+
+      <!--************************-->
+      <!-- goals documentation    -->
+      <!--************************-->
+      <jsl:template match="goals" trim="true">
+        <!-- reset row alternation -->
+        <j:set var="rowMode" value="" />
+        <div class="h3">
+          <a name="Goals"/><h3>Goals</h3>
+          <table class="bodyTable">
+            <thead>
+              <tr><th>Goal</th><th>Description</th></tr>
+            </thead>
+            <tbody>
+              <jsl:applyTemplates select="goal"/>
+            </tbody>
+          </table>
+        </div>
+      </jsl:template>
+      
+      <!-- a goal -->
+      <jsl:template match="goal" trim="true">
+        <j:choose>
+          <j:when test="${rowMode == 'a'}">
+            <j:set var="rowMode" value="b"/>
+          </j:when>
+          <j:otherwise>
+            <j:set var="rowMode" value="a"/>
+          </j:otherwise>
+        </j:choose>
+        
+        <x:element name="tr"><j:whitespace trim="true">
+          <x:attribute name="class">${rowMode}</x:attribute>
+          <j:set var="_goalName"><x:expr select="./name" /></j:set>
+          <td style="width:20%"><a name="${_goalName}"/>${_goalName}</td>
+          <td ><jsl:applyTemplates select="description" /></td>
+</j:whitespace></x:element>
+      </jsl:template>   
+      
+      <jsl:template match="description">
+        <jsl:applyTemplates trim="false"/>
+      </jsl:template>
+
+  <!-- remove the space at the end of parsed "a" anchors and fix local hrefs -->
+  <jsl:template match="a" trim="true">
+    <x:element name="a" trim="true">
+      <x:forEach var="attr" select="@*">
+        <j:choose>
+          <j:when test="${attr.name == 'href'}">
+            <j:set var="href" value="${attr.value}" />
+            <j:choose>                 
+              <j:when test="${href.startsWith('#')}">
+              	<x:attribute name="href">
+              	  <doc:escapeNameToken value="${href}"/>
+              	</x:attribute>
+              </j:when>
+              <j:when test="${href.startsWith('http://')}">
+                <x:attribute name="href">${href}</x:attribute>
+              	<x:attribute name="class">externalLink</x:attribute>
+              	<x:attribute name="title">External Link</x:attribute>
+              </j:when>                  
+              <j:otherwise>
+                <x:attribute name="href">${href}</x:attribute>
+              </j:otherwise>
+            </j:choose>
+          </j:when>
+          <j:when test="${attr.name == 'target'}">
+            <j:set var="target">${attr.value}</j:set>
+            <j:if test="${!empty(target) and target.equals('_blank')}">
+              <x:attribute name="class">newWindow</x:attribute>
+              <x:attribute name="title">New Window</x:attribute>
+            </j:if>              
+            <x:attribute name="target">${target}</x:attribute>
+          </j:when>
+          <j:when test="${attr.name == 'name'}">
+            <x:attribute name="name">
+              <doc:escapeNameToken value="${attr.value}"/>
+            </x:attribute>
+          </j:when>
+          <j:otherwise>
+            <x:attribute name="${attr.name}">${attr.value}</x:attribute>
+          </j:otherwise>
+        </j:choose>
+      </x:forEach>
+      <jsl:applyTemplates/>
+    </x:element>
+  </jsl:template>
+   
+  <!-- copy any other elements through -->
+  <jsl:template match="*" trim="false"><jsl:copy trim="false"><jsl:applyTemplates trim="false"/></jsl:copy></jsl:template>
+   
+  <!-- element values don't pass through as text -->
+  <jsl:template match="@*"/>
+
+  <!-- CDATA and text nodes pass-thru -->
+  <jsl:template match="text()"><x:expr select="."/></jsl:template>
+
+</jsl:stylesheet>

Added: pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/guide-teeda-based-portlet.xml
===================================================================
--- pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/guide-teeda-based-portlet.xml	2007-05-14 05:25:07 UTC (rev 136)
+++ pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/guide-teeda-based-portlet.xml	2007-05-14 06:03:45 UTC (rev 137)
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+	Copyright 2004 The Apache Software Foundation
+	
+	Licensed under the Apache License, Version 2.0 (the "License");
+	you may not use this file except in compliance with the License.
+	You may obtain a copy of the License at
+	
+	http://www.apache.org/licenses/LICENSE-2.0
+	
+	Unless required by applicable law or agreed to in writing, software
+	distributed under the License is distributed on an "AS IS" BASIS,
+	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	See the License for the specific language governing permissions and
+	limitations under the License.
+-->
+<document>
+  <properties>
+    <title>PALポータル ポートレット開発者ガイド</title>
+    <subtitle>Teeda を用いたポートレット開発方法</subtitle>
+    <authors>
+      <person name="菅谷信介" email="shins****@yahoo*****"/>
+    </authors>
+  </properties>
+  <body>
+    <section name="はじめに">
+      <p>
+        <i>ここでは、Teeda を用いたポートレットの開発方法についてまとめます(TODO: PALポータル用に編集予定)。</i>
+      </p>
+      <p>
+Teeda は、サーブレット以外にもポートレットして動作することをサポートしています。 これは、JSF がポートレットをサポートしているためです(しかし、現状、ポートレットをきちんとサポートしている JSF 実装は数少ないです。Teeda はきちんとサポートする実装の一つといえます!)。 ですので、Teeda Core がポートレットをサポートしているのはもちろんですが、さらに、Teeda の拡張である Teeda Extension についてもポートレットをサポートしているので、サーブレット環境での開発と変わることがなく、ポートレットアプリケーションの開発が行えます。
+</p>
+    </section>
+    <section name="ポートレットについて">
+      <p>
+まず、ポートレットについて、簡単に説明します。 Java ベースのポートレットは、JSR 168 Portlet Specification にて、ポートレット API が定義されています。そこでは、ポートレットとは、リクエストを処理して、動的にコンテンツを生成するポートレットコンテナによって管理される、Java ベースのウェブコンポーネントで、プレゼンテーション層を情報システムに提供する交換可能なユーザーインターフェースコンポーネントとして、ポータルによって使用される(PLT.2.2)と定義されています。また、ポータルとはウェブベースアプリケーションで、表示、シングルサインオン、異なる発信元からのコンテンツ集約を提供して、情報システムのプレゼンテーション層を提供する(PLT.2.1)と定義されています。仕様的な定義は以上のような感じですが、簡単にまとめると、ポートレットはポータル(サーバー)上の小窓(フラグメント)で、リクエストを処理して、コンテンツをその小窓の中に表示するものです。 JSR 168 では、そのための仕様を定義しています。
+</p>
+    </section>
+    <section name="ポートレットとJSF">
+      <p>
+ポートレットで JSF を使うメリットは何でしょうか? JSF をプレゼンテーション層のフレームワークとして利用しない場合、ポートレット API を習得する必要があります。 しかし、JSF をポートレットで利用した場合、JSF にラップされるので、ポートレット API を意識する必要はありません(PortletPreferencesなどポートレット固有の API を使う場合は別ですが)。 ですので、JSF を利用することでウェブアプリケーションを作成する感覚で、ポートレットを作成できてしまうわけです。
+</p>
+    </section>
+    <section name="ウェブアプリケーションからポートレットへの拡張">
+      <p>
+前置きが長くなりましたが、今まではポートレットの開発するために、学習などのコストがあったかもしれませんが、Teeda での開発を知っていれば、その知識をそのまま利用して、ポートレットの開発も行えます(ポータル固有の機能を利用する場合以外は、別途、ポートレットの開発方法を学習する必要はありません!)。Teeda で作成されたウェブアプリケーションをポートレットにするためには、以下のことを行うだけでポートレットになります。
+<ul><li>web.xmlを変更</li><li>portlet.xmlを追加</li><li>ポートレットフィルタとS2Portletのjarを追加</li><li>jspやhtmlからhtml,head,bodyタグを削除する</li></ul>
+</p>
+    </section>
+    <section name="web.xml の編集">
+      <p>
+まず、web.xml については、Teeda をサーブレットで初期化しているのであれば TeedaServlet、リスナーで初期化しているのであればTeedaConfigureListener を利用していると思います。ポートレット環境で利用するためには、TeedaServlet であれば TeedaPortletExtendedServlet に、TeedaConfigureListener であれば TeedaPortletExtendedConfigureListener に書き換えてください。 それらに置き換えることで、S2 および Teeda でポートレットがサポートされます。 web.xml の変更はこれだけで OK です。
+</p>
+    </section>
+    <section name="portlet.xml の追加">
+      <p>
+次に、portlet.xml ですが、これは JSR 168 で定義されているポートレット配備子です。 ポータルサーバー上に表示するポートレットの情報を記述します。 たとえば、以下のような内容をこのファイルに記述します。
+<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<portlet-app version="1.0">
+   <portlet>
+       <portlet-name>TeedaHtmlExample</portlet-name>
+       <display-name>Teeda HTML Example</display-name>
+       <description>This is an example portlet for Teeda.</description>
+       <portlet-class>
+         org.apache.portals.bridges.portletfilter.FilterPortlet
+       </portlet-class>
+       <init-param>
+           <name>portlet-class</name>
+           <value>org.seasar.teeda.core.portlet.FacesPortlet</value>
+       </init-param>
+       <init-param>
+           <name>portlet-filters</name>
+           <value>org.seasar.portlet.filter.S2PortletFilter,
+org.seasar.portlet.filter.HotdeployPortletFilter</value>
+       </init-param>
+       <init-param>
+           <name>view-page</name>
+           <value>/view/start/index.html</value>
+       </init-param>
+<!--    <init-param>
+           <name>edit-page</name>
+           <value></value>
+       </init-param> -->
+       <supports>
+           <mime-type>text/html</mime-type>
+           <portlet-mode>VIEW</portlet-mode>
+<!--        <portlet-mode>EDIT</portlet-mode> -->
+       </supports>
+       <supported-locale>en</supported-locale>
+       <supported-locale>ja</supported-locale>
+       <!-- resource-bundle></resource-bundle -->
+       <portlet-info>
+           <title>Teeda HTML Example</title>
+           <short-title>Example</short-title>
+           <keywords>Teeda HTML Example</keywords>
+       </portlet-info>
+   </portlet>
+</portlet-app>
+]]></source>
+まず、portlet-name 要素の値には、ポータルにより利用される一意なポートレット名が入ります。 display-name 要素の値はポータルにより表示される(たとえば、ユーザーがポートレット一覧からポートレットを選択するときなど)ポートレットの名前で、次の description 要素の値がその説明になります。 portlet-class 要素と init-param 要素にある portlet-class および portlet-filters は変更する必要はありません。 init-param 要素の view-page の値は、表示モードでアクセスされたときにデフォルトで表示されるページのパスを記述します(編集モードで表示するページは、edit-page で指定します)。ポートレットで表示されるポートレットには、表示モードや編集モードなどいくつかのモードがあり、たとえば、ポートレットの小窓の右上にある編集ボタンを押すと、編集モードが呼ばれます。 サポートされるポートレットモードは、supports 要素の portlet-mode 要素としてサポートするモードを指定できます。あとは、potlet-info 要素の title、short-title、keywords 要素を変更してください。 title 要素はポートレットの小窓のバーなどに表示されるタイトルで、short-title はその短いタイトルで、ポータルがモバイル環境で表示されるときに短いタイトルが必要なときに表示されます。 keywords 要素は、そのポートレットのキーワードで , 区切りで複数指定できます。 ポータルのポートレット一覧で検索するときなどに利用されます。必要な場所を変更して、portlet.xml として、WEB-INF の下に保存してください(他にもいろいろな要素がありますが、必要に応じて、追加してください)。
+</p>
+    </section>
+    <section name="必要な jar ファイルの追加">
+      <p>
+web.xml と portlet.xml を編集したら、必要な jar ファイルを追加します。 追加するものは、Apache Portals Bridges より提供されるポートレットフィルタと、Seasar Project より提供される S2Portlet です。それぞれ以下のところから入手できます。
+<ul><li>S2Portlet: http://s2portlet.sandbox.seasar.org/</li><li>Portlet Filter: http://portals.apache.org/bridges/</li></ul>
+</p>
+    </section>
+    <section name="不要なタグの削除">
+      <p>
+最後に、サーブレット環境用に作ると出力される HTML ページは、html、head、body タグなどが含まれます。しかし、ポートレット環境においては、それらのタグはポータルが出力するため、ポートレットは、body タグより下の部分しか表示する必要はありません。それらのタグがあったも、無視してくれるブラウザもあるかと思いますが、きちんとしたポートレットを作成したい場合には、削除してください(html タグや head タグなどを削除したい場合は、ポートレット出力オプティマイザーをご利用ください)。
+</p>
+    </section>
+  </body>
+</document>


Property changes on: pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/guide-teeda-based-portlet.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/images/pal-logo.png
===================================================================
(Binary files differ)


Property changes on: pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/images/pal-logo.png
___________________________________________________________________
Name: svn:mime-type
   + image/png

Added: pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/index.xml
===================================================================
--- pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/index.xml	2007-05-14 05:25:07 UTC (rev 136)
+++ pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/index.xml	2007-05-14 06:03:45 UTC (rev 137)
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+	Copyright 2004 The Apache Software Foundation
+	
+	Licensed under the Apache License, Version 2.0 (the "License");
+	you may not use this file except in compliance with the License.
+	You may obtain a copy of the License at
+	
+	http://www.apache.org/licenses/LICENSE-2.0
+	
+	Unless required by applicable law or agreed to in writing, software
+	distributed under the License is distributed on an "AS IS" BASIS,
+	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	See the License for the specific language governing permissions and
+	limitations under the License.
+-->
+<document>
+  <properties>
+    <title>PALポータル ポートレット開発者ガイド</title>
+    <subtitle>PALポータル ポートレット開発者ガイド</subtitle>
+    <authors>
+      <person name="菅谷信介" email="shins****@yahoo*****"/>
+    </authors>
+  </properties>
+  <body>
+    <section name="対象読者">
+      <p>
+        このドキュメントは、PALポータルでポートレットを開発するユーザーを対象にしています。
+      </p>
+    </section>
+    <section name="お読みになる前に">
+      <p>
+        このドキュメントでは、PALポータルを利用したポートレットの開発方法について示しています。
+        Java での開発についての基礎的な知識が必要になります。
+      </p>
+    </section>
+    <section name="オンラインでのアクセス">
+      <p>
+        ダウンロード、専門的サービス、サポート、その他の開発者情報については、次にアクセスしてください。
+        <ul>
+          <li>プロジェクトサイト: <a href="http://pal.sourceforge.jp/">http://pal.sourceforge.jp/</a></li>
+        </ul>
+      </p>
+    </section>
+    <section name="技術的なサポートの連絡先">
+      <p>
+        本製品に関する技術的質問で、ドキュメント内に解決策が得られない場合は、次にアクセスしてください。
+        <ul>
+          <li>公開フォーラム: <a href="http://sourceforge.jp/forum/?group_id=1972">http://sourceforge.jp/forum/?group_id=1972</a></li>
+          <li>メーリングリスト: <a href="http://sourceforge.jp/mail/?group_id=1972">http://sourceforge.jp/mail/?group_id=1972</a></li>
+        </ul>
+      </p>
+    </section>
+    <section name="関連サードパーティー Web サイトの参照">
+      <p>
+        Portal Application Laboratoryプロジェクトでは、このドキュメントに記載されているサードパーティーの Web サイトの有効性については責任を持ちません。
+        Portal Application Laboratoryプロジェクトはそのようなサイトやリソースを通じて、利用可能なコンテンツ、広告、製品、サービス、その他のドキュメントなどについて、保証、責任、義務を負いません。
+        Portal Application Laboratoryプロジェクトはそのようなサイトやリソースと通じて、利用可能なコンテンツ、広告、製品、サービス、その他のドキュメントなどを、使用または信用したり、それに関連して発生または申し立てられた、一切の損傷や損害に対しては責任または義務を負いません。
+      </p>
+    </section>
+    <section name="コメントおよび提案の送付方法">
+      <p>
+        Portal Application Laboratoryプロジェクトは、このドキュメントの改善に努めており、読者からのコメントおよび提案などを歓迎しています。
+        <ul>
+          <li>メーリングリスト: <a href="http://sourceforge.jp/mail/?group_id=1972">http://sourceforge.jp/mail/?group_id=1972</a></li>
+        </ul>
+      </p>
+    </section>
+  </body>
+</document>


Property changes on: pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/index.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/navigation.xml
===================================================================
--- pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/navigation.xml	2007-05-14 05:25:07 UTC (rev 136)
+++ pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/navigation.xml	2007-05-14 06:03:45 UTC (rev 137)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright 2004 The Apache Software Foundation
+    
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+    
+    http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<project>
+  <body>
+    <links>
+      <item name="Portal Application Laboratory" href="http://pal.sourceforge.jp/"/>
+      <item name="PDF" href="portlet-developers-guide.pdf"/>
+    </links>
+    <menu name="はじめに">
+      <item name="はじめに" href="index.html"/>
+    </menu>
+    <menu name="ポートレットの開発">
+      <item name="Teeda を用いたポートレット開発方法" href="guide-teeda-based-portlet.html"/>
+    </menu>
+<!--
+    <menu name="インストールについて">
+      <item name="インストール手順" href="guide-install.html"/>
+    </menu>
+    <menu name="アンインストールについて">
+      <item name="アンインストール手順" href="guide-uninstall.html"/>
+    </menu>
+    <menu name="アップグレードについて">
+      <item name="アップグレード手順" href="guide-upgrade.html"/>
+    </menu>
+-->
+  </body>
+</project>


Property changes on: pal-portal/trunk/docs/ja/portlet-developers-guide/xdocs/navigation.xml
___________________________________________________________________
Name: svn:eol-style
   + native


pal-cvs メーリングリストの案内