Author: thomas.heute(a)jboss.com
Date: 2009-12-09 03:59:26 -0500 (Wed, 09 Dec 2009)
New Revision: 977
Modified:
portal/trunk/docs/reference-guide/en/modules/portlets/AJAX_in_GateIn_Framework.xml
portal/trunk/docs/reference-guide/en/modules/portlets/Create_a_WebUI_Portlet.xml
portal/trunk/docs/reference-guide/en/modules/portlets/WebUI.xml
Log:
More doc cleanup/fixes
Modified:
portal/trunk/docs/reference-guide/en/modules/portlets/AJAX_in_GateIn_Framework.xml
===================================================================
---
portal/trunk/docs/reference-guide/en/modules/portlets/AJAX_in_GateIn_Framework.xml 2009-12-09
08:43:21 UTC (rev 976)
+++
portal/trunk/docs/reference-guide/en/modules/portlets/AJAX_in_GateIn_Framework.xml 2009-12-09
08:59:26 UTC (rev 977)
@@ -2,324 +2,401 @@
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
]>
<section id="sect-Reference_Guide-AJAX_in_GateIn_Framework">
- <!--
+ <title>AJAX in GateIn Framework</title>
+ <section id="sect-Reference_Guide-AJAX_in_GateIn_Framework-Overview">
+ <title>Overview</title>
+ <para>
+ It is very easy to create and manage Ajax calls in our
+ framework. Just
+ a few lines to write in your template file and
+ your java class.
+ For simple Ajax update of a component, you
+ don't even have to
+ write any line of JavaScript.
+ </para>
+ </section>
- Copyright (C) 2009 eXo Platform SAS.
-
- This is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of
- the License, or (at your option) any later version.
-
- This software is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this software; if not, write to the Free
- Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ <section
+
id="sect-Reference_Guide-AJAX_in_GateIn_Framework-Portlet_Preparation">
+ <title>Portlet Preparation</title>
+ <para>
+ Our portlets can use specific
+ <literal>ActionListener</literal>
+ s to receive and process Ajax calls. To do that, you must
+ create an inner static class named following this convention :
+ action name followed by ActionListener
+ </para>
+ <para>
+ Example :
+ <literal>ParentClass</literal>
+ is the class in which you are writing.
+ </para>
- --><title>AJAX in GateIn Framework</title>
- <section id="sect-Reference_Guide-AJAX_in_GateIn_Framework-Overview">
- <title>Overview</title>
- <para>
- It is very easy to create and manage Ajax calls in our framework. Just a few lines to
write in your template file and your java class. For simple Ajax update of a component,
you don't even have to write any line of JavaScript.
+ <programlisting><![CDATA[static public class SaveActionListener extends
EventListener<ParentClass>]]></programlisting>
+ <para>
+ Don't forget to declare this listener in the configuration
+ of your
+ portlet, like this :
</para>
- </section>
-
- <section
id="sect-Reference_Guide-AJAX_in_GateIn_Framework-Portlet_Preparation">
- <title>Portlet Preparation</title>
- <para>
- Our portlets can use specific <code>ActionListener</code>s
to receive and process Ajax calls. To do that, you must create an inner static class named
following this convention : action name followed by ActionListener
- </para>
- <para>
- Example : <code>ParentClass</code> is the class in which
you are writing.
- </para>
-
-<programlisting>static public class SaveActionListener extends
EventListener<ParentClass>
-</programlisting>
- <para>
- Don't forget to declare this listener in the configuration of your portlet, with
this :
- </para>
-
-<programlisting>listeners = ParentClass.SaveActionListener.class{code}
-</programlisting>
- <para>
- in the correct annotation <code>ComponentConfig</code>,
<code>EventConfig</code>, etc.,
- </para>
- <para>
- For example, the configuration of
<code><strong>UIAccountForm</strong></code>:
- </para>
-
-<programlisting>...
+
+ <programlisting>listeners =
ParentClass.SaveActionListener.class</programlisting>
+ <para>
+ along with the correct annotation
+ <literal>ComponentConfig</literal>
+ ,
+ <literal>EventConfig</literal>
+ , etc.,
+ </para>
+ <para>
+ For example, the configuration for
+ <literal>UIAccountForm</literal>
+ :
+ </para>
+
+ <programlisting role="JAVA"><![CDATA[...
@ComponentConfig(
- lifecycle = UIFormLifecycle.class,
- template = "system:/groovy/webui/form/UIFormTabPane.gtmpl",
- initParams = {
- @ParamConfig(
- name = "AccountTemplateConfigOption",
- value =
"app:/WEB-INF/conf/uiconf/account/webui/component/model/AccountTemplateConfigOption.groovy"
- ),
- @ParamConfig(
- name = "help.UIAccountFormQuickHelp",
- value =
"app:/WEB-INF/conf/uiconf/account/webui/component/model/UIAccountFormQuickHelp.xhtml"
- )
- },
- events = {
- @EventConfig(listeners = UIAccountForm.SaveActionListener.class ),
- @EventConfig(listeners = UIAccountForm.ResetActionListener.class, phase =
Phase.DECODE),
- @EventConfig(listeners = UIAccountForm.SearchUserActionListener.class, phase =
Phase.DECODE)
- }
+ lifecycle = UIFormLifecycle.class,
+ template = "system:/groovy/webui/form/UIFormTabPane.gtmpl",
+ initParams = {
+ @ParamConfig(
+ name = "AccountTemplateConfigOption",
+ value =
"app:/WEB-INF/conf/uiconf/account/webui/component/model/AccountTemplateConfigOption.groovy"
+ ),
+ @ParamConfig(
+ name = "help.UIAccountFormQuickHelp",
+ value =
"app:/WEB-INF/conf/uiconf/account/webui/component/model/UIAccountFormQuickHelp.xhtml"
)
-...
-</programlisting>
- <para>
- Inside this class, you will have to create an
<code>execute</code> method like this :
+ },
+ events = {
+ @EventConfig(listeners = UIAccountForm.SaveActionListener.class ),
+ @EventConfig(listeners = UIAccountForm.ResetActionListener.class, phase =
Phase.DECODE),
+ @EventConfig(listeners = UIAccountForm.SearchUserActionListener.class, phase =
Phase.DECODE)
+ }
+)
+...]]></programlisting>
+ <para>
+ Inside this class, you will have to create an
+ <literal>execute</literal>
+ method like this :
+ </para>
+
+ <programlisting><![CDATA[public void execute(Event<ParentClass>
event) throws Exception]]></programlisting>
+ <para>
+ This method is called every time the listener gets an event
+ from the
+ client, hence you can process this event in it, using
+ the
+ even attribute. Use it to get parameters from a form in your
+ client, to modify the status of your portlet, etc.,
</para>
-
-<programlisting>public void execute(Event<ParentClass> event) throws
Exception
-</programlisting>
- <para>
- This method is called every time the listener gets an event from the client, hence you
can process this event in it, using the {style:type=span|font-family=courier
new,courier}event {style}attibute. Use it to get parameters from a form in your client, to
modify the status of your portlet, etc.,
+ <para>
+ Possible ways to use the event attribute :
</para>
- <para>
- Possible ways to use the event attribute : {code}
+ <itemizedlist>
+ <listitem>
+ <programlisting role="XML">String value =
event.getRequestContext().getRequestParameter("name"); // to get a value from a
form</programlisting>
+ </listitem>
+ <listitem>
+ <programlisting role="XML">ParentClass parent =
event.getSource(); // to get the parent object (the portlet that threw and caugth the
event)</programlisting>
+ </listitem>
+ <listitem>
+ <programlisting role="XML">UIMyComponent portal =
parent.getAncestorOfType(UIMyComponent.class); // to get any node in the hierarchy of
UIComponents</programlisting>
+ </listitem>
+ </itemizedlist>
+ <para>
+ If your action has to update an element on your client's
+ interface, you must call
+ <emphasis role="bold">addUIComponentToUpdateByAjax()
+ </emphasis>
+ at the end of the
+ <literal>execute</literal>
+ method:
+ </para>
+
+
<programlisting>event.getRequestContext().addUIComponentToUpdateByAjax(uicomponent);</programlisting>
+ <para>
+ The target component must be provided as parameter (the
+ component that
+ will be updated). We will come back on this
+ later.
</para>
- <itemizedlist>
- <listitem>
- <para>
- String value = event.getRequestContext().getRequestParameter("name"); //
to get a value from a form
- </para>
- </listitem>
- <listitem>
- <para>
- ParentClass parent = event.getSource(); // to get the parent object (the portlet
that threw and caugth the event)
- </para>
- </listitem>
- <listitem>
- <para>
- UIMyComponent portal = parent.getAncestorOfType(UIMyComponent.class); // to get any
node in the hierarchy of UIComponents {code}
- </para>
- </listitem>
- </itemizedlist>
- <para>
- If your action has to update an element on your client's interface, you must call
<emphasis role="bold">addUIComponentToUpdateByAjax()</emphasis> at
the end of the <code>execute</code> method:
+ <para>
+ You must create one inner action listener class for each
+ Ajax call you
+ want to handle on this portlet. All these classes
+ must be
+ declared in the configuration annotations of the main
+ class,
+ otherwise you will get an error.
</para>
-
-<programlisting>event.getRequestContext().addUIComponentToUpdateByAjax(uicomponent)
;
-</programlisting>
- <para>
- The target component must be provided as parameter (the component that will be
updated). We will come back on this later.
+ <para>
+ Done. Your portlet is ready to accept Ajax calls from
+ your client.
+ </para>
+ </section>
+
+ <section
+
id="sect-Reference_Guide-AJAX_in_GateIn_Framework-AJAX_in_the_Groovy_template">
+ <title>AJAX in the Groovy template</title>
+ <para>
+ Your server being configured to receive Ajax calls, you must
+ configure
+ the client interface to make these calls.
</para>
- <para>
- You must create one inner action listener class for each Ajax call you want to handle
on this portlet. All these classes must be declared in the configuration annotations of
the main class, otherwise you will get an error.
- </para>
- <para>
- It's done, your portlet is ready to accept Ajax calls from your client.
- </para>
- </section>
-
- <section
id="sect-Reference_Guide-AJAX_in_GateIn_Framework-AJAX_in_the_Groovy_template">
- <title>AJAX in the Groovy template</title>
- <para>
- Your server being configured to receive Ajax calls, you must configure the client
interface to make these calls.
- </para>
- <para>
- In the groovy template file associated with your portlet class
(<code>ParentClass</code> here), you just have to add :
- </para>
-
-<programlisting>uicomponent.event("YourOperation"); // YourOperation is
the same as in the ActionListener class (Save in our example above)
+ <para>
+ In the groovy template file associated with your portlet class
+ (
+ <literal>ParentClass</literal>
+ here), you just have to add :
+ </para>
+
+ <programlisting>uicomponent.event("YourOperation"); //
YourOperation is the same as in the ActionListener class (Save in our example above)
</programlisting>
- <para>
- in a groovy code block. The event function will create an url starting with
{style:type=span|font-family=courier new,courier}javascript:{style} so you have to make
sure this code can be executed in your environment.
+ <para>
+ in a groovy code block. The event function will create an
+ url starting
+ with <literal>javascript:</literal> so you have to make sure this
+ code can be executed in your environment.
</para>
- <para>
- If your operation must update the content of a component, you have to make sure that
the target component is well rendered. Basically, just type this :
+ <para>
+ If your operation must update the content of a component,
+ you have to
+ make sure that the target component is well
+ rendered.
+ Basically, just type this :
</para>
-
-<programlisting>uicomponent.renderChild(UITargetComponent.class) ;
-</programlisting>
- <para>
- in a groovy code block. <code>UITargetComponent</code> is
the class of the component that will be updated when
+
+ <programlisting>uicomponent.renderChild(UITargetComponent.class)
;</programlisting>
+ <para>
+ in a groovy code block.
+ <literal>UITargetComponent</literal>
+ is the class of the component that will be updated when
+ </para>
+
+
<programlisting>event.getRequestContext().addUIComponentToUpdateByAjax(uicomponent)
;</programlisting>
+ <para>
+ is called. Hence,
+ <literal>uicomponent</literal>
+ must be of type
+ <literal>UITargetComponent</literal>
+ . If this component is not rendered by default, when the
+ portlet loads, don't forget to set its
+ <literal>rendered</literal>
+ attribute to false :
+ </para>
+
+ <programlisting>mycomponent.setRendered(false);</programlisting>
+ <para>
+ in the constructor of your portlet.
</para>
-
-<programlisting>event.getRequestContext().addUIComponentToUpdateByAjax(uicomponent)
;
-</programlisting>
- <para>
- is called. Hence, <code>uicomponent</code> must be of type
<code>UITargetComponent</code>. If this component is not
rendered by default, when the portlet loads, don't forget to set its
<code>rendered</code> attribute to false :
+ </section>
+
+ <section
+
id="sect-Reference_Guide-AJAX_in_GateIn_Framework-How_JavaScript_works">
+ <title>How JavaScript works</title>
+ <para>
+ All the javascript is managed by the file
+ 02eXoresources:javascript/eXo/portal/PortalHttpRequest.js in the portal
project.
+ </para>
+ <para>
+ In this class, you will find 4 functions/classes (detailed
+ below):
+ <itemizedlist>
+ <listitem><para>PortletResponse</para></listitem>
+ <listitem><para>PortalResponse</para></listitem>
+ <listitem><para>AjaxRequest</para></listitem>
+
<listitem><para>HttpResponseHandler</para></listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ and 6 functions : {code}
</para>
-
-<programlisting>mycomponent.setRendered(false);
-</programlisting>
- <para>
- in the constructor of your portlet.
- </para>
- </section>
-
- <section
id="sect-Reference_Guide-AJAX_in_GateIn_Framework-How_JavaScript_works">
- <title>How JavaScript works</title>
- <para>
- All the javascript is managed by the file GateIn.portal.PortalHttpRequest.js in the
portal project.
- </para>
- <para>
- In this class, you will find 4 functions/classes (detailed below):
- </para>
-
-<programlisting>* PortletResponse
-* PortalResponse
-* AjaxRequest
-* HttpResponseHandler
-</programlisting>
- <para>
- and 6 functions : {code}
- </para>
- <itemizedlist>
- <listitem>
- <para>
- ajaxGet // Calls doRequest with an url in GET mode
+ <itemizedlist>
+ <listitem>
+ <para>
+ ajaxGet // Calls doRequest with an url in GET mode
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ajaxPost // Calls doRequest with an url in POST mode
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ doRequest // Creates the AjaxRequest and
+ HttpResponseHandler objects, and
+ lauches the request
+ process
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ajaxAbort // Cancels the current request
</para>
- </listitem>
- <listitem>
- <para>
- ajaxPost // Calls doRequest with an url in POST mode
+ </listitem>
+ <listitem>
+ <para>
+ ajaxAsyncGetRequest // Allows to create and execute a
+ sync or async GET request
</para>
- </listitem>
- <listitem>
- <para>
- doRequest // Creates the AjaxRequest and HttpResponseHandler objects, and lauches
the request process
+ </listitem>
+ <listitem>
+ <para>
+ ajaxRedirect // A simple javascript redirection with
+ window.location.href
+ {code} that are the entry points of
+ these classes. You
+ shouldn't have to call explicitly these
+ functions, since
+ the template file and the portlet class
+ manage
+ everything.
</para>
- </listitem>
- <listitem>
- <para>
- ajaxAbort // Cancels the current request
- </para>
- </listitem>
- <listitem>
- <para>
- ajaxAsyncGetRequest // Allows to create and execute a sync or async GET request
- </para>
- </listitem>
- <listitem>
- <para>
- ajaxRedirect // A simple javascript redirection with window.location.href {code}
that are the entry points of these classes. You shouldn't have to call explicitly
these functions, since the template file and the portlet class manage everything.
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section
id="sect-Reference_Guide-AJAX_in_GateIn_Framework-PortletResponse">
- <title>PortletResponse</title>
- <para>
- This class doesn't contain any method. On creation, it just gets the response
elements from the xml returned by Ajax, and store them in the corresponding attributes :
{code}
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section
+ id="sect-Reference_Guide-AJAX_in_GateIn_Framework-PortletResponse">
+ <title>PortletResponse</title>
+ <para>
+ This class doesn't contain any method. On creation, it just
+ gets the
+ response elements from the xml returned by Ajax, and
+ store them
+ in the corresponding attributes : {code}
</para>
- <itemizedlist>
- <listitem>
- <para>
- portletId
+ <itemizedlist>
+ <listitem>
+ <para>
+ portletId
</para>
- </listitem>
- <listitem>
- <para>
- portletTitle
+ </listitem>
+ <listitem>
+ <para>
+ portletTitle
</para>
- </listitem>
- <listitem>
- <para>
- portletMode // View, Edit, Help or Config
+ </listitem>
+ <listitem>
+ <para>
+ portletMode // View, Edit, Help or Config
</para>
- </listitem>
- <listitem>
- <para>
- portletState // Decode, Render
+ </listitem>
+ <listitem>
+ <para>
+ portletState // Decode, Render
</para>
- </listitem>
- <listitem>
- <para>
- portletData // The updated data to put in the component
+ </listitem>
+ <listitem>
+ <para>
+ portletData // The updated data to put in the
+ component
</para>
- </listitem>
- <listitem>
- <para>
- script //The javascript code to update the component
+ </listitem>
+ <listitem>
+ <para>
+ script //The javascript code to update the component
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ blocksToUpdate // An array containing the containers
+ to update with this script
+ {code}
</para>
- </listitem>
- <listitem>
- <para>
- blocksToUpdate // An array containing the containers to update with this script
{code}
+ </listitem>
+ </itemizedlist>
+ <para>
+ You can access these attributes just by calling them from your
+ <literal>PortletResponse</literal>
+ instance.
+ </para>
+ </section>
+
+ <section
+ id="sect-Reference_Guide-AJAX_in_GateIn_Framework-PortalResponse">
+ <title>PortalResponse</title>
+ <para>
+ Contains an array of
+ <literal>PortletResponse</literal>
+ s (
+ <literal>portletResponses</literal>
+ ) and two other attributes : {code}
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ data // Data to update
</para>
- </listitem>
- </itemizedlist>
- <para>
- You can access these attributes just by calling them from your
<code>PortletResponse</code> instance.
- </para>
- </section>
-
- <section
id="sect-Reference_Guide-AJAX_in_GateIn_Framework-PortalResponse">
- <title>PortalResponse</title>
- <para>
- Contains an array of <code>PortletResponse</code>s
(<code>portletResponses</code>) and two other attributes :
{code}
- </para>
- <itemizedlist>
- <listitem>
- <para>
- data // Data to update
+ </listitem>
+ <listitem>
+ <para>
+ script // Javascript code to update {code}
</para>
- </listitem>
- <listitem>
- <para>
- script // Javascript code to update {code}
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section
id="sect-Reference_Guide-AJAX_in_GateIn_Framework-AjaxRequest">
- <title>AjaxRequest</title>
- <para>
- By far the most important class of this file. Wraps the XMLHttpRequest object with
some functions and attributes, to make it easier to use. You can find the complete
documentation here :
http://www.ajaxtoolbox.com/request/documentation.php
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section
id="sect-Reference_Guide-AJAX_in_GateIn_Framework-AjaxRequest">
+ <title>AjaxRequest</title>
+ <para>
+ By far the most important class of this file. Wraps the
+ XMLHttpRequest
+ object with some functions and attributes, to
+ make it easier to
+ use. You can find the complete documentation
+ here :
+
http://www.ajaxtoolbox.com/request/documentation.php
+ </para>
+ </section>
+
+ <section
+
id="sect-Reference_Guide-AJAX_in_GateIn_Framework-HttpResponseHandler">
+ <title>HttpResponseHandler</title>
+ <para>
+ This class provides methods to handle the Ajax response.
+ {code}
</para>
- </section>
-
- <section
id="sect-Reference_Guide-AJAX_in_GateIn_Framework-HttpResponseHandler">
- <title>HttpResponseHandler</title>
- <para>
- This class provides methods to handle the Ajax response. {code}
- </para>
- <itemizedlist>
- <listitem>
- <para>
- executeScript // execute some javascript
+ <itemizedlist>
+ <listitem>
+ <para>
+ executeScript // execute some javascript
</para>
- </listitem>
- <listitem>
- <para>
- updateBlocks // update some html components
+ </listitem>
+ <listitem>
+ <para>
+ updateBlocks // update some html components
</para>
- </listitem>
- <listitem>
- <para>
- ajaxTimeout // a function called when the timeout of the ajax call exceeds. Just
cancel the request
+ </listitem>
+ <listitem>
+ <para>
+ ajaxTimeout // a function called when the timeout of
+ the ajax call exceeds.
+ Just cancel the request
</para>
- </listitem>
- <listitem>
- <para>
- ajaxResponse // creates a PortalResponse object from the data from the Ajax request
+ </listitem>
+ <listitem>
+ <para>
+ ajaxResponse // creates a PortalResponse object from
+ the data from the Ajax
+ request
</para>
- </listitem>
- <listitem>
- <para>
- ajaxLoading // shows the loading popup and mask layer {code}
+ </listitem>
+ <listitem>
+ <para>
+ ajaxLoading // shows the loading popup and mask layer
+ {code}
</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section
id="sect-Reference_Guide-AJAX_in_GateIn_Framework-Portal_Ajax_Response_Data_Structure">
- <title>Portal Ajax Response Data Structure</title>
-
-<programlisting>{PortalResponse}
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section
+
id="sect-Reference_Guide-AJAX_in_GateIn_Framework-Portal_Ajax_Response_Data_Structure">
+ <title>Portal Ajax Response Data Structure</title>
+
+ <programlisting>{PortalResponse}
|
|--->{PortletResponse}
|
@@ -355,7 +432,7 @@
If you have several actions that need to appear in a popup, you can use this technique
to manage the different popup windows easily:
</para>
<para>
- Create a <code>UIPopupAction</code> in your main portlet
class:
+ Create a <literal>UIPopupAction</literal> in your main portlet class:
</para>
<programlisting>addChild(UIPopupAction.class, null, null);
Modified:
portal/trunk/docs/reference-guide/en/modules/portlets/Create_a_WebUI_Portlet.xml
===================================================================
---
portal/trunk/docs/reference-guide/en/modules/portlets/Create_a_WebUI_Portlet.xml 2009-12-09
08:43:21 UTC (rev 976)
+++
portal/trunk/docs/reference-guide/en/modules/portlets/Create_a_WebUI_Portlet.xml 2009-12-09
08:59:26 UTC (rev 977)
@@ -2,26 +2,7 @@
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
]>
<section id="sect-Reference_Guide-Create_a_WebUI_Portlet">
- <!--
-
- Copyright (C) 2009 eXo Platform SAS.
-
- This is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of
- the License, or (at your option) any later version.
-
- This software is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this software; if not, write to the Free
- Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
-
- --><title>Create a WebUI Portlet</title>
+ <title>Create a WebUI Portlet</title>
<section id="sect-Reference_Guide-Create_a_WebUI_Portlet-Overview">
<title>Overview</title>
<para>
Modified: portal/trunk/docs/reference-guide/en/modules/portlets/WebUI.xml
===================================================================
--- portal/trunk/docs/reference-guide/en/modules/portlets/WebUI.xml 2009-12-09 08:43:21
UTC (rev 976)
+++ portal/trunk/docs/reference-guide/en/modules/portlets/WebUI.xml 2009-12-09 08:59:26
UTC (rev 977)
@@ -2,76 +2,74 @@
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
]>
<section id="sect-Reference_Guide-Web_User_Interface_WebUI">
- <!--
-
- Copyright (C) 2009 eXo Platform SAS.
-
- This is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of
- the License, or (at your option) any later version.
-
- This software is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this software; if not, write to the Free
- Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
-
- --><title>Web User Interface - WebUI</title>
- <para>
- WebUI is the name of GateIn's own webframework. GateIn Portal is built with it and
also many applications available in the GateIn platform suites. In its concepts, the WebUI
framework is similar to JSF as it is a component tree based framework. The key aspects of
WebUI are :
+ <title>Web User Interface - WebUI</title>
+ <para>
+ WebUI is the name of GateIn's own webframework. GateIn Portal is built with
+ it and also many applications available in the GateIn platform
+ suites.
+ Using its own framework means that the way the portal is build will not interfere
+ with any web technology used by the portlet deployed. Using a particular
technology
+ would have make it more difficult for a user to use a different version (newer or
older)
+ of the same technology. If one choose to create WebUI portlets, here is some
documentation.
+ </para>
+ <para>
+ In its concepts, the WebUI framework is similar to JSF as
+ it is a component tree based framework. The key aspects of WebUI
+ are :
</para>
- <itemizedlist>
- <listitem>
- <para>
- Events based flow
+ <itemizedlist>
+ <listitem>
+ <para>
+ Events based flow
</para>
- </listitem>
- <listitem>
- <para>
- Components configuration by annotation
+ </listitem>
+ <listitem>
+ <para>
+ Components configuration by annotation
</para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-Groovy_Templates" /> for
rendering
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide-Groovy_Templates" />
+ for rendering
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide-AJAX_in_GateIn_Framework"
/>
+ support
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Portlet API friendly
</para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-AJAX_in_GateIn_Framework" />
support
- </para>
- </listitem>
- <listitem>
- <para>
- Portlet API friendly
- </para>
- </listitem>
- </itemizedlist>
- <section id="sect-Reference_Guide-Web_User_Interface_WebUI-Resources">
- <title>Resources</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-Portlet_Lifecycle" /> : GateIn
portlets are built with WebUI
- </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-Portlet_Lifecycle" />: GateIn
portal itmself is a WebUI application
- </para>
- </listitem>
- <listitem>
- <para>
- How-to <xref linkend="sect-Reference_Guide-Create_a_WebUI_Portlet"
/>: Learn how to write your own app with WebUI
- </para>
- </listitem>
- </itemizedlist>
- </section>
+ </listitem>
+ </itemizedlist>
+ <section
id="sect-Reference_Guide-Web_User_Interface_WebUI-Resources">
+ <title>Resources</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide-Portlet_Lifecycle" />
+ : GateIn portlets are built with WebUI
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide-Portlet_Lifecycle" />
+ : GateIn portal itself is a WebUI application
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ How-to:
+ <xref linkend="sect-Reference_Guide-Create_a_WebUI_Portlet"
/>
+ : Learn how to write your own app with WebUI
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
</section>