[Yanel-commits] rev 38027 - in
public/yanel/trunk/src/realms/yanel-website/content: .
d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep
d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/revisions
d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/revisions/1218659975567
simon at wyona.com
simon at wyona.com
Thu Aug 14 22:23:26 CEST 2008
Author: simon
Date: 2008-08-14 22:23:25 +0200 (Thu, 14 Aug 2008)
New Revision: 38027
Added:
public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66
public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/
public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/meta
public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/revisions/
public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/revisions/1218659975567/
public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/revisions/1218659975567/content
public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/revisions/1218659975567/meta
Log:
documentation of ExecutableUsecaseResource started.
Added: public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66
===================================================================
--- public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66 (rev 0)
+++ public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66 2008-08-14 20:23:25 UTC (rev 38027)
@@ -0,0 +1,242 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>ExecutableUsecaseResource</title>
+ <link rel="neutron-introspection" type="application/neutron+xml" href="?yanel.resource.usecase=introspection"/>
+ </head>
+ <body>
+ <h1>ExecutableUsecaseResource</h1>ExecutableUsecaseResource is a base class for resources
+ providing a stateless usecase. you can extend this class if you want to develop a resource-type
+ which will display several views for a usecase.<br/>It already has implemented a bunch of nice
+ thing which you could like. e.g. Jelly (<a href="http://commons.apache.org/jelly/">Executable
+ XML</a>), a standard executable usecase (default, done, cancel), custom usecases, Info and Error Messages. <br/>At
+ the moment folowing resource-types extending ExecutableUsecaseResource: user-mgmt.
+ <h3>ExecutableUsecaseResource extends BasicXMLResource</h3>
+ <p> Since ExecutableUsecaseResource extends BasicXMLResource you can use all the things provided
+ by <a href="basic-xml-resource-type.html">BasicXMLResource</a>. </p>
+ <h2> Custom Resource Configuration (ConfigurableViewDescriptor)</h2>
+ <br/>
+ <table>
+ <tbody>
+ <tr>
+ <th>Element Name<br/>
+ </th>
+ <th>Child-Element</th>
+ <th valign="top">Attribut</th>
+ <th valign="top">Explanation</th>
+ </tr>
+ <tr>
+ <td valign="top">views</td>
+ <td valign="top">view</td>
+ <td valign="top"/>
+ <td valign="top">Container for all views</td>
+ </tr>
+ <tr>
+ <td valign="top">view</td>
+ <td valign="top">mime-type, xslt, template, url, http-headers, serializer<br/>
+ </td>
+ <td valign="top">id, type<b/>
+ </td>
+ <td valign="top">A single view. <br/>id can be 'default' or 'source' for built in views.
+ Or any other id for a custom view. A view is accessed via id through a request parameter
+ <b>yanel.resource.viewid <br/>
+ </b>type can bye xml, jelly, redirect (implementation not finished yet), custom. Default
+ is xml. </td>
+ </tr>
+ <tr>
+ <td valign="top">mime-type</td>
+ <td valign="top">-</td>
+ <td valign="top"/>
+ <td valign="top">E.g. text/html, application/xhtml+xml ...</td>
+ </tr>
+ <tr>
+ <td valign="top">xslt</td>
+ <td valign="top">-</td>
+ <td valign="top"/>
+ <td valign="top">Path to xslt. absolute data-repo path, rthdocs path, file path. see: <a
+ href="#xsltprotocol">Protocol-Schemas used configure xslt via ConfigurableViewDescriptor</a>
+ <br/>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top">template</td>
+ <td valign="top">-</td>
+ <td valign="top"/>
+ <td valign="top">Only useful when using type="jelly"</td>
+ </tr>
+ <tr>
+ <td valign="top">url</td>
+ <td valign="top">-</td>
+ <td valign="top"/>
+ <td valign="top">Only useful when using type="redirect" (implementation
+ not finished yet)</td>
+ </tr>
+ <tr>
+ <td valign="top">http-headers</td>
+ <td valign="top">name, value</td>
+ <td valign="top"/>
+ <td valign="top">Define some http-headers for this view.</td>
+ </tr>
+ <tr>
+ <td valign="top">name</td>
+ <td valign="top">-</td>
+ <td valign="top"/>
+ <td valign="top">Name of the header-field</td>
+ </tr>
+ <tr>
+ <td valign="top">value</td>
+ <td valign="top">-</td>
+ <td valign="top"/>
+ <td valign="top">Value of the header-field</td>
+ </tr>
+ <tr>
+ <td valign="top">serializer</td>
+ <td valign="top">omit-xml-declaration, indent, doctype-public, doctype-system</td>
+ <td valign="top"> key</td>
+ <td valign="top">If no serializer is specified for a view, the serializer will be chosen
+ depending on the mime-type, whereas the default serializer is XHTML_STRICT<br/>Possible
+ Serializers (key):<br/>
+ <b>HTML_TRANSITIONAL, XHTML_STRICT, XML, TEXT</b>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top">omit-xml-declaration</td>
+ <td valign="top">-</td>
+ <td valign="top"/>
+ <td valign="top">Can be 'yes' or 'no'</td>
+ </tr>
+ <tr>
+ <td valign="top">doctype-public</td>
+ <td valign="top">-</td>
+ <td valign="top"/>
+ <td valign="top">Public Doctype e.g -//W3C//DTD XHTML 1.0 Transitional//EN</td>
+ </tr>
+ <tr>
+ <td valign="top">doctype-system</td>
+ <td valign="top">-</td>
+ <td valign="top"/>
+ <td valign="top">System Doctype e.g. http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</td>
+ </tr>
+ <tr>
+ <td valign="top">indent</td>
+ <td valign="top">-</td>
+ <td valign="top"/>
+ <td valign="top">Can be 'yes' or 'no'</td>
+ </tr>
+ </tbody>
+ </table>
+ <h2>Example</h2>
+ <views><br/> <view id="default"
+ type="jelly"><br/>
+ <template>/jelly/default.jelly</template><br/>
+ <xslt>/xslt/defaultr.xsl</xslt><br/>
+ <xslt>/xslt/global.xsl</xslt><br/>
+ </view><br/> <view id="done"
+ type="jelly"><br/>
+ <template>/jelly/done.jelly</template><br/>
+ <xslt>/xslt/done.xsl</xslt><br/>
+ <xslt>/xslt/global.xsl</xslt><br/>
+ </view><br/> <view id="cancel"
+ type="jelly"><br/>
+ <template>/jelly/cancel.jelly</template><br/>
+ <xslt>/xslt/cancel.xsl</xslt><br/>
+ <xslt>/xslt/global.xsl</xslt><br/>
+ </view><br/> <view id="tree"
+ type="custom"/><br/> </views><br/>
+ <h2>Jelly</h2>
+ <p>
+ If you extend from ExecutableUsecaseResource or UsecaseResource you can use jelly-views. see <a href="http://commons.apache.org/jelly/">http://commons.apache.org/jelly/</a> for more details on jelly.
+ </p>
+ <p>
+ <b>
+ IMPORTANT: don't program logic within your jelly-template. Just use getters and setters to send and recieve data from/to your resource java class. If you implement logic within your jelly-template you will violate the model-view-controler pattern.
+ <br/>
+ Jelly represents the view not the controler!
+ </b>
+ </p>
+ <h3>Built-in Jelly variables</h3>
+ <table>
+ <tbody>
+ <tr>
+ <th valign="top">Variable-name</th>
+ <th valign="top">Explanation:</th>
+ </tr>
+ <tr>
+ <td>
+ resource
+ </td>
+ <td>
+ the current resource object
+ </td>
+ </tr>
+ <tr>
+ <td>
+ yanel.back2context
+ </td>
+ <td>
+ Path prefix for yanel root.
+ </td>
+ </tr>
+ <tr>
+ <td>
+ yanel.back2realm
+ </td>
+ <td>
+ Path prefix for realm root.
+ </td>
+ </tr>
+ <tr>
+ <td>
+ yanel.globalHtdocsPath
+ </td>
+ <td>
+ Path prefix for accessing content from globalHtocsPath.
+ </td>
+ </tr>
+ <tr>
+ <td>
+ yanel.resourcesHtdocsPath
+ </td>
+ <td>
+ Path prefix for accessing content of this resources HtdocsPath.
+ </td>
+ </tr>
+ <tr>
+ <td>
+ yanel.reservedPrefix
+ </td>
+ <td>
+ Reserved Prefix of yanel.
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <h2>The standard executable usecase</h2>
+ <p>The standard executable usecase works as follows:</p>
+ <ul>
+ <li>
+ display the "default" view. this view has a form with a submit button and a cancel button.
+ </li>
+ <li>
+ if the user clicks submit, the checkPreconditions() method is executed.
+ <ul>
+ <li>
+ if there are any errors, the "default" view is displayed again, showing the error messages.
+ </li>
+ <li>
+ if everything is ok, the execute() method is called
+ <ul>
+ <li>
+ display the "done" view
+ </li>
+ </ul>
+ </li>
+ </ul>
+
+ </li>
+ <li>
+ if the user cancels, call the cancel() method and then show the "cancel" view.
+ </li>
+ </ul>
+ </body>
+</html>
Added: public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/meta
===================================================================
--- public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/meta (rev 0)
+++ public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/meta 2008-08-14 20:23:25 UTC (rev 38027)
@@ -0,0 +1,7 @@
+yarep_type<string>:resource
+yarep_isCheckedOut<boolean>:false
+yarep_size<long>:4370
+yarep_checkoutDate<date>:2008-08-13T23:06:01+0100
+yarep_checkoutUserID<string>:lenya
+yarep_lastModifed<long>:1218665230000
+yarep_checkinDate<date>:2008-08-13T23:07:10+0100
Added: public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/revisions/1218659975567/content
===================================================================
--- public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/revisions/1218659975567/content (rev 0)
+++ public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/revisions/1218659975567/content 2008-08-14 20:23:25 UTC (rev 38027)
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>ExecutableUsecaseResource</title>
+ <link rel="neutron-introspection" type="application/neutron+xml" href="?yanel.resource.usecase=introspection"/>
+ </head>
+ <body>
+ <h1>ExecutableUsecaseResource</h1>ExecutableUsecaseResource is a base class for resources
+ providing a stateless usecase. you can extend this class if you want to develop a resource-type
+ which will display several views for a usecase.<br/>It already has implemented a bunch of nice
+ thing which you could like. e.g. Jelly (<a href="http://commons.apache.org/jelly/">Executable
+ XML</a>), Built-in views (default, done, cancel), Custom Views, Info and Error Messages. <br/>At
+ the moment folowing resource-types extending ExecutableUsecaseResource: user-mgmt.
+
+ <h3>ExecutableUsecaseResource extends BasicXMLResource</h3>
+ <p>
+ Since ExecutableUsecaseResource extends BasicXMLResource you can use all the things provided by <a href="basic-xml-resource-type.html">BasicXMLResource</a>.
+ </p>
+ <h2>Jelly</h2>
+ <p>
+ If you extend from ExecutableUsecaseResource or UsecaseResource you can use jelly-views.
+ </p>
+
+ </body>
+</html>
Added: public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/revisions/1218659975567/meta
===================================================================
--- public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/revisions/1218659975567/meta (rev 0)
+++ public/yanel/trunk/src/realms/yanel-website/content/d516af4b-83ec-4d53-b3ed-dc8a79dcfd66.yarep/revisions/1218659975567/meta 2008-08-14 20:23:25 UTC (rev 38027)
@@ -0,0 +1,12 @@
+yarep_revisionComment<string>:updated
+yarep_type<string>:resource
+yarep_isCheckedOut<boolean>:false
+yarep_revisionCreator<string>:lenya
+workflow-date<date>:2008-08-13T21:39:35+0100
+yarep_size<long>:811
+yarep_checkoutDate<date>:2008-08-13T21:29:44+0100
+yarep_checkoutUserID<string>:lenya
+yarep_lastModifed<long>:1218659975000
+workflow-state<string>:draft
+yarep_checkinDate<date>:2008-08-13T21:29:22+0100
+yarep_revisionCreationDate<date>:2008-08-13T21:39:35+0100
More information about the Yanel-commits
mailing list