JBoss Ajax4JSF SVN: r132 - in trunk/docs: userguide/en and 1 other directory.
by ajax4jsf-svn-commits@lists.jboss.org
Author: smukhina
Date: 2007-04-27 09:31:25 -0400 (Fri, 27 Apr 2007)
New Revision: 132
Modified:
trunk/docs/resources/support.xml
trunk/docs/userguide/en/master.xml
Log:
Modified: trunk/docs/resources/support.xml
===================================================================
--- trunk/docs/resources/support.xml 2007-04-26 16:08:51 UTC (rev 131)
+++ trunk/docs/resources/support.xml 2007-04-27 13:31:25 UTC (rev 132)
@@ -1,9 +1,11 @@
<project name="DocSupport" default="all.doc" basedir=".">
- <dirname property="support.basedir" file="${ant.file.DocSupport}"/>
+ <dirname property="support.startdir" file="${ant.file.DocSupport}"/>
- <property file="${support.basedir}/support.properties" />
+ <property name="support.basedir" value="${support.startdir}/../../../../resources"/>
+ <property file="${support.startdir}/support.properties" />
+
<!-- Set build directories for all formats. -->
<property name="build.dir" value="${basedir}/build"/>
Modified: trunk/docs/userguide/en/master.xml
===================================================================
--- trunk/docs/userguide/en/master.xml 2007-04-26 16:08:51 UTC (rev 131)
+++ trunk/docs/userguide/en/master.xml 2007-04-27 13:31:25 UTC (rev 132)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN"
-"../../resources/support/docbook-dtd/docbookx.dtd"
+"../../../../../resources/support/docbook-dtd/docbookx.dtd"
[ <!ENTITY introduction SYSTEM "modules/a4jUGintro.xml">
<!ENTITY technicalRequirements SYSTEM "modules/a4jUGtechreqs.xml">
<!ENTITY getttingStarted SYSTEM "modules/a4jUGstart.xml">
17 years
JBoss Ajax4JSF SVN: r131 - trunk/framework/src/main/java/org/ajax4jsf/ajax.
by ajax4jsf-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2007-04-26 12:08:51 -0400 (Thu, 26 Apr 2007)
New Revision: 131
Modified:
trunk/framework/src/main/java/org/ajax4jsf/ajax/UIPortlet.java
Log:
remove unnessesary warnings
Modified: trunk/framework/src/main/java/org/ajax4jsf/ajax/UIPortlet.java
===================================================================
--- trunk/framework/src/main/java/org/ajax4jsf/ajax/UIPortlet.java 2007-04-26 15:48:59 UTC (rev 130)
+++ trunk/framework/src/main/java/org/ajax4jsf/ajax/UIPortlet.java 2007-04-26 16:08:51 UTC (rev 131)
@@ -52,7 +52,9 @@
Method method = portletResponseClass.getMethod("getNamespace", new Class[]{});
portletId = (String) method.invoke(response, new Object[]{});
} catch (Exception e) {
- _log.warn("Response is not a portlet RenderResponse");
+ if(_log.isDebugEnabled()){
+ _log.debug("Response is not a portlet RenderResponse");
+ }
}
if(null == portletId){
return super.getClientId(context);
17 years
JBoss Ajax4JSF SVN: r130 - trunk/cdk/generator/src/main/resources/META-INF/schema/entities.
by ajax4jsf-svn-commits@lists.jboss.org
Author: vkukharchuk
Date: 2007-04-26 11:48:59 -0400 (Thu, 26 Apr 2007)
New Revision: 130
Modified:
trunk/cdk/generator/src/main/resources/META-INF/schema/entities/ajax_component_attributes.ent
Log:
Modified: trunk/cdk/generator/src/main/resources/META-INF/schema/entities/ajax_component_attributes.ent
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/schema/entities/ajax_component_attributes.ent 2007-04-26 01:45:24 UTC (rev 129)
+++ trunk/cdk/generator/src/main/resources/META-INF/schema/entities/ajax_component_attributes.ent 2007-04-26 15:48:59 UTC (rev 130)
@@ -33,13 +33,13 @@
<property >
<name>reRender</name>
<classname>java.lang.Object</classname>
- <description>Id['s] (in format of call UIComopnent.findComponent()) of components, rendered in case of AjaxRequest caused by this component. Can be single id, comma-separated list of Id's, or EL Expression with array or Collection</description>
+ <description>Id['s] (in format of call UIComponent.findComponent()) of components, rendered in case of AjaxRequest caused by this component. Can be single id, comma-separated list of Id's, or EL Expression with array or Collection</description>
</property>
<property >
<name>status</name>
<classname>java.lang.String</classname>
- <description>ID (in format of call UIComopnent.findComponent()) of Request status component.</description>
+ <description>ID (in format of call UIComponent.findComponent()) of Request status component.</description>
</property>
<property >
@@ -79,7 +79,7 @@
<property>
<name>timeout</name>
<classname>int</classname>
- <description>response waiting time on a particular request. If a response is not received during this time, the request is aborted</description>
+ <description>Response waiting time on a particular request. If a response is not received during this time, the request is aborted</description>
</property>
<!--
<property >
17 years
JBoss Ajax4JSF SVN: r129 - in trunk/samples/portal-echo: resources and 11 other directories.
by ajax4jsf-svn-commits@lists.jboss.org
Author: SergeySmirnov
Date: 2007-04-25 21:45:24 -0400 (Wed, 25 Apr 2007)
New Revision: 129
Added:
trunk/samples/portal-echo/resources/
trunk/samples/portal-echo/resources/WEB-INF/
trunk/samples/portal-echo/resources/WEB-INF/lib/
trunk/samples/portal-echo/src/
trunk/samples/portal-echo/src/main/
trunk/samples/portal-echo/src/main/java/
trunk/samples/portal-echo/src/main/java/portal/
trunk/samples/portal-echo/src/main/java/portal/Bean.java
trunk/samples/portal-echo/src/main/webapp/
trunk/samples/portal-echo/src/main/webapp/META-INF/
trunk/samples/portal-echo/src/main/webapp/META-INF/MANIFEST.MF
trunk/samples/portal-echo/src/main/webapp/WEB-INF/
trunk/samples/portal-echo/src/main/webapp/WEB-INF/ajaxportlet-object.xml
trunk/samples/portal-echo/src/main/webapp/WEB-INF/faces-config.xml
trunk/samples/portal-echo/src/main/webapp/WEB-INF/lib/
trunk/samples/portal-echo/src/main/webapp/WEB-INF/lib/jsf-facelets.jar
trunk/samples/portal-echo/src/main/webapp/WEB-INF/portlet-instances.xml
trunk/samples/portal-echo/src/main/webapp/WEB-INF/portlet.xml
trunk/samples/portal-echo/src/main/webapp/WEB-INF/web.xml
trunk/samples/portal-echo/src/main/webapp/jsf/
trunk/samples/portal-echo/src/main/webapp/jsf/common/
trunk/samples/portal-echo/src/main/webapp/jsf/common/editPreferences.xhtml
trunk/samples/portal-echo/src/main/webapp/jsf/common/editSecurity.xhtml
trunk/samples/portal-echo/src/main/webapp/jsf/common/editTheme.xhtml
trunk/samples/portal-echo/src/main/webapp/jsf/common/showPortletDetails.xhtml
trunk/samples/portal-echo/src/main/webapp/jsf/repeater.xhtml
trunk/samples/portal-echo/src/main/webapp/jsf/start.xhtml
trunk/samples/portal-echo/src/main/webapp/jsf/tabTemplate.xhtml
trunk/samples/portal-echo/src/main/webapp/objects.xhtml.html
Log:
Portal Project. Echo
Added: trunk/samples/portal-echo/src/main/java/portal/Bean.java
===================================================================
--- trunk/samples/portal-echo/src/main/java/portal/Bean.java (rev 0)
+++ trunk/samples/portal-echo/src/main/java/portal/Bean.java 2007-04-26 01:45:24 UTC (rev 129)
@@ -0,0 +1,53 @@
+/**
+ *
+ */
+package portal;
+
+import javax.faces.context.FacesContext;
+
+/**
+ * @author asmirnov
+ *
+ */
+public class Bean {
+ private int counter=0;
+
+ private String text ="";
+
+ /**
+ * @return the counter
+ */
+ public int getCounter() {
+ return counter;
+ }
+
+ /**
+ * @param counter the counter to set
+ */
+ public void setCounter(int counter) {
+ this.counter = counter;
+ }
+
+ /**
+ * @return the text
+ */
+ public String getText() {
+ return text;
+ }
+
+ /**
+ * @param text the text to set
+ */
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public String click(){
+ counter++;
+ return null;
+ }
+
+ public String getNamespace(){
+ return FacesContext.getCurrentInstance().getExternalContext().encodeNamespace("");
+ }
+}
Added: trunk/samples/portal-echo/src/main/webapp/META-INF/MANIFEST.MF
===================================================================
--- trunk/samples/portal-echo/src/main/webapp/META-INF/MANIFEST.MF (rev 0)
+++ trunk/samples/portal-echo/src/main/webapp/META-INF/MANIFEST.MF 2007-04-26 01:45:24 UTC (rev 129)
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
Added: trunk/samples/portal-echo/src/main/webapp/WEB-INF/ajaxportlet-object.xml
===================================================================
--- trunk/samples/portal-echo/src/main/webapp/WEB-INF/ajaxportlet-object.xml (rev 0)
+++ trunk/samples/portal-echo/src/main/webapp/WEB-INF/ajaxportlet-object.xml 2007-04-26 01:45:24 UTC (rev 129)
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployments>
+ <deployment>
+ <parent-ref>default</parent-ref>
+ <if-exists>overwrite</if-exists>
+ <instance>
+ <instance-name>AjaxPortletInstance</instance-name>
+ <component-ref>portal-echo</component-ref>
+ </instance>
+ </deployment>
+ <deployment>
+ <parent-ref>default</parent-ref>
+ <if-exists>overwrite</if-exists>
+ <page>
+ <page-name>Two-Portal-Echo</page-name>
+ <window>
+ <window-name>ajaxPortletWindow</window-name>
+ <instance-ref>AjaxPortletInstance</instance-ref>
+ <default>true</default>
+ <region>center</region>
+ <height>0</height>
+ </window>
+ <window>
+ <window-name>ajaxPortletSecondWindow</window-name>
+ <instance-ref>AjaxPortletSecondInstance</instance-ref>
+ <default>true</default>
+ <region>center</region>
+ <height>0</height>
+ </window>
+ </page>
+ </deployment>
+ <deployment>
+ <parent-ref>default</parent-ref>
+ <if-exists>overwrite</if-exists>
+ <page>
+ <page-name>Portal-echo</page-name>
+ <window>
+ <window-name>otherAjaxportletWindow</window-name>
+ <instance-ref>AjaxPortletInstance</instance-ref>
+ <default>true</default>
+ <region>center</region>
+ <height>0</height>
+ </window>
+ </page>
+ </deployment>
+ <deployment>
+ <parent-ref>default</parent-ref>
+ <if-exists>overwrite</if-exists>
+ <instance>
+ <instance-name>AjaxPortletSecondInstance</instance-name>
+ <component-ref>portal-echo</component-ref>
+ </instance>
+ </deployment>
+</deployments>
Added: trunk/samples/portal-echo/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/samples/portal-echo/src/main/webapp/WEB-INF/faces-config.xml (rev 0)
+++ trunk/samples/portal-echo/src/main/webapp/WEB-INF/faces-config.xml 2007-04-26 01:45:24 UTC (rev 129)
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
+ "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
+<faces-config>
+ <managed-bean>
+ <managed-bean-name>ajaxContext</managed-bean-name>
+ <managed-bean-class>org.ajax4jsf.portlet.PortletAjaxContext</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>bean</managed-bean-name>
+ <managed-bean-class>portal.Bean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+ <navigation-rule>
+ <from-view-id>/jsf/start.xhtml</from-view-id>
+ <navigation-case>
+ <from-outcome>repeater</from-outcome>
+ <to-view-id>/jsf/repeater.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+ <navigation-rule>
+ <from-view-id>/jsf/repeater.xhtml</from-view-id>
+ <navigation-case>
+ <from-outcome>start</from-outcome>
+ <to-view-id>/jsf/start.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+ <application>
+ <view-handler>org.ajax4jsf.portlet.application.PortletViewHandler</view-handler>
+ <!--
+ <view-handler>com.sun.facelets.FaceletPortletViewHandler</view-handler>
+ -->
+ </application>
+ <render-kit>
+ <renderer>
+ <description>
+ override the viewroot
+ </description>
+ <component-family>javax.faces.ViewRoot</component-family>
+ <renderer-type>javax.faces.ViewRoot</renderer-type>
+ <renderer-class>org.ajax4jsf.portlet.renderkit.portlet.PortletAjaxViewRootRenderer</renderer-class>
+ </renderer>
+ </render-kit>
+</faces-config>
Added: trunk/samples/portal-echo/src/main/webapp/WEB-INF/lib/jsf-facelets.jar
===================================================================
(Binary files differ)
Property changes on: trunk/samples/portal-echo/src/main/webapp/WEB-INF/lib/jsf-facelets.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/samples/portal-echo/src/main/webapp/WEB-INF/portlet-instances.xml
===================================================================
--- trunk/samples/portal-echo/src/main/webapp/WEB-INF/portlet-instances.xml (rev 0)
+++ trunk/samples/portal-echo/src/main/webapp/WEB-INF/portlet-instances.xml 2007-04-26 01:45:24 UTC (rev 129)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<deployments>
+ <deployment>
+ <instance>
+ <instance-id>AjaxPortletInstance</instance-id>
+ <portlet-ref>portal-echo</portlet-ref>
+ </instance>
+ </deployment>
+ <deployment>
+ <instance>
+ <instance-id>AjaxPortletSecondInstance</instance-id>
+ <portlet-ref>portal-echo</portlet-ref>
+ </instance>
+ </deployment>
+</deployments>
Added: trunk/samples/portal-echo/src/main/webapp/WEB-INF/portlet.xml
===================================================================
--- trunk/samples/portal-echo/src/main/webapp/WEB-INF/portlet.xml (rev 0)
+++ trunk/samples/portal-echo/src/main/webapp/WEB-INF/portlet.xml 2007-04-26 01:45:24 UTC (rev 129)
@@ -0,0 +1,34 @@
+<portlet-app version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/portlet"
+ xmlns="http://java.sun.com/xml/ns/portlet">
+ <portlet>
+ <portlet-name>portal-echo</portlet-name>
+ <portlet-class>org.ajax4jsf.portlet.AjaxFacesPortlet</portlet-class>
+ <init-param>
+ <name>default-view</name>
+ <value>/jsf/start.xhtml</value>
+ </init-param>
+ <!--
+ <init-param>
+ <name>default-edit</name>
+ <value>/jsf/start-edit.xhtml</value>
+ </init-param>
+ <init-param>
+ <name>default-help</name>
+ <value>/jsf/start-help.xhtml</value>
+ </init-param>
+ -->
+ <expiration-cache>0</expiration-cache>
+ <portlet-info>
+ <title>Portal Echo</title>
+ </portlet-info>
+ <supports>
+ <mime-type>text/html</mime-type>
+ <portlet-mode>VIEW</portlet-mode>
+ <!--
+ <portlet-mode>EDIT</portlet-mode>
+ <portlet-mode>HELP</portlet-mode>
+ -->
+ </supports>
+ </portlet>
+</portlet-app>
Added: trunk/samples/portal-echo/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/samples/portal-echo/src/main/webapp/WEB-INF/web.xml (rev 0)
+++ trunk/samples/portal-echo/src/main/webapp/WEB-INF/web.xml 2007-04-26 01:45:24 UTC (rev 129)
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ JBoss, a division of Red Hat ~
+ ~ Copyright 2006, Red Hat Middleware, LLC, and individual ~
+ ~ contributors as indicated by the @authors tag. See the ~
+ ~ copyright.txt in the distribution for a full listing of ~
+ ~ individual contributors. ~
+ ~ ~
+ ~ 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. ~
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+ <context-param>
+ <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
+ <param-value>true</param-value>
+ </context-param>
+ <context-param>
+ <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
+ <param-value>false</param-value>
+ </context-param>
+ <context-param>
+ <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
+ <param-value>false</param-value>
+ </context-param>
+ <context-param>
+ <param-name>org.apache.myfaces.CHECK_EXTENSIONS_FILTER</param-name>
+ <param-value>false</param-value>
+ </context-param>
+ <context-param>
+ <param-name>org.apache.myfaces.PRETTY_HTML</param-name>
+ <param-value>true</param-value>
+ </context-param>
+ <context-param>
+ <param-name>facelets.DEVELOPMENT</param-name>
+ <param-value>false</param-value>
+ </context-param>
+ <context-param>
+ <param-name>facelets.SKIP_COMMENTS</param-name>
+ <param-value>true</param-value>
+ </context-param>
+ <context-param>
+ <param-name>facelets.VIEW_MAPPINGS</param-name>
+ <param-value>*.xhtml</param-value>
+ </context-param>
+ <context-param>
+ <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
+ <param-value>org.ajax4jsf.portlet.application.FaceletPortletViewHandler</param-value>
+ </context-param>
+ <!--
+ <context-param>
+ <param-name>facelets.LIBRARIES</param-name>
+ <param-value>/WEB-INF/portal.taglib.xml</param-value>
+ </context-param>
+ -->
+ <context-param>
+ <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
+ <param-value>.xhtml</param-value>
+ </context-param>
+ <context-param>
+ <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
+ <param-value>server</param-value>
+ </context-param>
+ <filter>
+ <display-name>Ajax4jsf Filter</display-name>
+ <filter-name>ajax4jsf</filter-name>
+ <filter-class>org.ajax4jsf.Filter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>ajax4jsf</filter-name>
+ <servlet-name>FacesServlet</servlet-name>
+ <dispatcher>FORWARD</dispatcher>
+ <dispatcher>REQUEST</dispatcher>
+ <dispatcher>INCLUDE</dispatcher>
+ </filter-mapping>
+ <listener>
+ <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
+ </listener>
+ <servlet>
+ <servlet-name>FacesServlet</servlet-name>
+ <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>FacesServlet</servlet-name>
+ <url-pattern>/faces/*</url-pattern>
+ </servlet-mapping>
+ <mime-mapping>
+ <extension>svg</extension>
+ <mime-type>image/svg+xml</mime-type>
+ </mime-mapping>
+ <login-config>
+ <auth-method>BASIC</auth-method>
+ </login-config>
+</web-app>
Added: trunk/samples/portal-echo/src/main/webapp/jsf/common/editPreferences.xhtml
===================================================================
--- trunk/samples/portal-echo/src/main/webapp/jsf/common/editPreferences.xhtml (rev 0)
+++ trunk/samples/portal-echo/src/main/webapp/jsf/common/editPreferences.xhtml 2007-04-26 01:45:24 UTC (rev 129)
@@ -0,0 +1,98 @@
+<div
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:c="http://java.sun.com/jstl/core">
+
+ <h:form>
+ <table width="100%">
+ <thead class="portlet-section-header" style="text-align:left;">
+ <tr>
+ <th>Key</th>
+ <th>Name</th>
+ <th>ReadOnly</th>
+ <c:if test="#{prefs.mutable}">
+ <th>Value</th>
+ </c:if>
+ </tr>
+ </thead>
+ <tbody>
+ <c:forEach items="#{prefs.entries}" var="pref" varStatus="status">
+ <tr class="#{status.index % 2 == 0 ? 'portlet-section-body' : 'portlet-section-alternate'}">
+ <td>
+ <c:choose>
+ <c:when test="#{prefs.mutable and pref.readOnly == false}">
+ <h:commandLink
+ rendered="#{pref.readOnly == false}"
+ action="#{pref.select}">#{pref.name}</h:commandLink>
+ </c:when>
+ <c:otherwise>#{pref.name}</c:otherwise>
+ </c:choose>
+ </td>
+ <td>
+ <h:outputText value="#{pref.displayName}"/>
+ </td>
+ <td>
+ <h:selectBooleanCheckbox disabled="true" value="#{pref.readOnly}"/>
+ </td>
+ <c:if test="#{prefs.mutable}">
+ <td>
+ <h:outputText value="#{pref.value}"/>
+ </td>
+ </c:if>
+ </tr>
+ </c:forEach>
+ </tbody>
+ </table>
+ </h:form>
+
+ <c:if test="#{prefs.selectedEntry != null}">
+ <h:form style="padding: 1em 0 1em 0">
+ <fieldset style="border: 1px solid;">
+ <legend>Edit existing values</legend>
+ <table>
+ <tbody>
+ <c:forEach items="#{prefs.selectedEntry.indices}" var="index" varStatus="status">
+ <tr>
+ <td>
+ <h:outputLabel for="row_#{status.index}">
+ <h:outputText value="Value #{status.index}: " styleClass="portlet-form-field-label"/>
+ </h:outputLabel>
+ </td>
+ <td>
+ <h:inputText value="#{prefs.selectedEntry[index]}" styleClass="portlet-form-input-field"/>
+ </td>
+ <td>
+ <h:commandButton
+ id="row_#{status.index}"
+ actionListener="#{prefs.selectedEntry.deleteLine}"
+ value="Delete"
+ styleClass="portlet-form-button"/>
+ </td>
+ </tr>
+ </c:forEach>
+ <tr>
+ <td colspan="3">
+ <h:commandButton value="Update" styleClass="portlet-form-button"/>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </fieldset>
+ </h:form>
+
+ <h:form>
+ <fieldset style="border: 1px solid;">
+ <legend>Append a value</legend>
+ <h:outputLabel for="new_value">
+ <h:outputText value="New value: " styleClass="portlet-form-field-label"/>
+ </h:outputLabel>
+ <h:inputText id="new_value" value="#{prefs.selectedEntry.line}" styleClass="portlet-form-input-field"/>
+ <h:commandButton action="#{prefs.selectedEntry.appendLine}" value="Append" styleClass="portlet-form-button"/>
+ </fieldset>
+ </h:form>
+
+ </c:if>
+
+</div>
Added: trunk/samples/portal-echo/src/main/webapp/jsf/common/editSecurity.xhtml
===================================================================
--- trunk/samples/portal-echo/src/main/webapp/jsf/common/editSecurity.xhtml (rev 0)
+++ trunk/samples/portal-echo/src/main/webapp/jsf/common/editSecurity.xhtml 2007-04-26 01:45:24 UTC (rev 129)
@@ -0,0 +1,36 @@
+<div
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:c="http://java.sun.com/jstl/core">
+
+ <h:form>
+ <table>
+ <tbody>
+ <c:forEach items="#{auth.roles}" var="role" varStatus="status">
+ <tr>
+ <td>
+ <h:outputLabel for="cars_#{status.index}">
+ <span class="portlet-form-field-label">Role <span>#{role == '__unchecked__' ? 'Unchecked' : (auth.roleDisplayNameMap[role] != null ? auth.roleDisplayNameMap[role] : role)}</span></span>:
+ </h:outputLabel>
+ </td>
+ <td>
+ <h:selectManyCheckbox
+ id="cars_#{status.index}"
+ styleClass="portlet-form-field"
+ value="#{auth.forRole[role]}"
+ layout="lineDirection">
+ <f:selectItems value="#{auth.availableActions}"/>
+ </h:selectManyCheckbox>
+ </td>
+ </tr>
+ </c:forEach>
+ </tbody>
+ </table>
+ <div style="text-align:center;padding: 1em 0 1em 0">
+ <ui:insert name="form_submit"/>
+ </div>
+ </h:form>
+
+</div>
\ No newline at end of file
Added: trunk/samples/portal-echo/src/main/webapp/jsf/common/editTheme.xhtml
===================================================================
--- trunk/samples/portal-echo/src/main/webapp/jsf/common/editTheme.xhtml (rev 0)
+++ trunk/samples/portal-echo/src/main/webapp/jsf/common/editTheme.xhtml 2007-04-26 01:45:24 UTC (rev 129)
@@ -0,0 +1,51 @@
+<div
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core">
+
+ <h:panelGroup styleClass="portlet-section-body" id="themepg">
+ <h:form id="themeform">
+ <fieldset style="border: 1px solid;">
+ <legend>Theme properties</legend>
+ <table>
+ <tbody>
+ <tr>
+ <td class="portlet-form-field-label">
+ <h:outputLabel for="layout">Layout:</h:outputLabel>
+ </td>
+ <td>
+ <h:selectOneMenu id="layout" styleClass="portlet-form-field" value="#{themePropertyAction.layoutName}">
+ <f:selectItems value="#{portalobjectmgr.themes.layoutNames}"/>
+ </h:selectOneMenu>
+ </td>
+ </tr>
+ <tr>
+ <td class="portlet-form-field-label">
+ <h:outputLabel for="theme">Theme:</h:outputLabel>
+ </td>
+ <td>
+ <h:selectOneMenu id="theme" styleClass="portlet-form-field" value="#{themePropertyAction.themeName}">
+ <f:selectItems value="#{portalobjectmgr.themes.themeNames}"/>
+ </h:selectOneMenu>
+ </td>
+ </tr>
+ <tr>
+ <td class="portlet-form-field-label">
+ <h:outputLabel for="renderSet">RenderSet:</h:outputLabel>
+ </td>
+ <td>
+ <h:selectOneMenu id="renderSet" styleClass="portlet-form-field" value="#{themePropertyAction.renderSetName}">
+ <f:selectItems value="#{portalobjectmgr.themes.renderSetNames}"/>
+ </h:selectOneMenu>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </fieldset>
+ <div style="text-align:center;padding: 1em 0 1em 0">
+ <ui:insert name="form_submit"/>
+ </div>
+ </h:form>
+</h:panelGroup>
+</div>
\ No newline at end of file
Added: trunk/samples/portal-echo/src/main/webapp/jsf/common/showPortletDetails.xhtml
===================================================================
--- trunk/samples/portal-echo/src/main/webapp/jsf/common/showPortletDetails.xhtml (rev 0)
+++ trunk/samples/portal-echo/src/main/webapp/jsf/common/showPortletDetails.xhtml 2007-04-26 01:45:24 UTC (rev 129)
@@ -0,0 +1,18 @@
+<div
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:c="http://java.sun.com/jstl/core">
+
+ <div><span class="portlet-form-field-label">Portlet name:</span> #{portlet.name.value}</div>
+ <div><span class="portlet-form-field-label">Portlet description:</span> #{portlet.description.value}</div>
+ <div><span class="portlet-form-field-label">Portlet title:</span> #{portlet.title.value}</div>
+ <div><span class="portlet-form-field-label">Portlet keywords:</span> #{portlet.keywords.value}</div>
+ <c:if test="#{not empty portlet.locales}">
+ <div><span class="portlet-form-field-label">Portlet locales:</span>
+ <c:forEach items="#{portlet.locales}" var="locale"> #{locale} </c:forEach>
+ </div>
+ </c:if>
+
+</div>
\ No newline at end of file
Added: trunk/samples/portal-echo/src/main/webapp/jsf/repeater.xhtml
===================================================================
--- trunk/samples/portal-echo/src/main/webapp/jsf/repeater.xhtml (rev 0)
+++ trunk/samples/portal-echo/src/main/webapp/jsf/repeater.xhtml 2007-04-26 01:45:24 UTC (rev 129)
@@ -0,0 +1,18 @@
+<a4j:portlet
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:a4j="https://ajax4jsf.dev.java.net/ajax">
+
+ <h:form id="portlet_form">
+ <h:panelGrid columns="2">
+
+ <h:outputText id="text" value="Entered Text: #{bean.text}"/>
+ <h:outputText id="counter" value="Result Counter: #{bean.counter}"/>
+ <h:commandButton action="start" value="Return Back. Non-Ajax" />
+ <a4j:commandButton action="start" value="Return Back. Ajax" />
+ </h:panelGrid>
+ </h:form>
+
+</a4j:portlet>
\ No newline at end of file
Added: trunk/samples/portal-echo/src/main/webapp/jsf/start.xhtml
===================================================================
--- trunk/samples/portal-echo/src/main/webapp/jsf/start.xhtml (rev 0)
+++ trunk/samples/portal-echo/src/main/webapp/jsf/start.xhtml 2007-04-26 01:45:24 UTC (rev 129)
@@ -0,0 +1,29 @@
+<a4j:portlet
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:a4j="https://ajax4jsf.dev.java.net/ajax">
+
+ <h:form id="portlet_form">
+ <a4j:outputPanel ajaxRendered="true">
+ <h:message for="repeaterText"/>
+ </a4j:outputPanel>
+ <h:panelGrid columns="2">
+ <h:inputText value="#{bean.text}" id="repeaterText">
+ <f:validateLength maximum="15" />
+ <a4j:support event="onkeyup" reRender="text"/>
+ </h:inputText>
+ <a4j:outputPanel ajaxRendered="true">
+ <h:outputText id="text" value="#{bean.text}"/>
+ </a4j:outputPanel>
+ <a4j:commandLink value="Increment Counter" action="#{bean.click}" reRender="counter"/>
+ <h:outputText id="counter" value="#{bean.counter}"/>
+ <h:outputText value="Portlet namespace:"/>
+ <h:outputText value="#{bean.namespace}"/>
+ <h:commandButton action="repeater" value="Non-ajax Submit" />
+ <a4j:commandButton action="repeater" value="Ajax Submit" />
+ </h:panelGrid>
+ </h:form>
+
+</a4j:portlet>
Added: trunk/samples/portal-echo/src/main/webapp/jsf/tabTemplate.xhtml
===================================================================
--- trunk/samples/portal-echo/src/main/webapp/jsf/tabTemplate.xhtml (rev 0)
+++ trunk/samples/portal-echo/src/main/webapp/jsf/tabTemplate.xhtml 2007-04-26 01:45:24 UTC (rev 129)
@@ -0,0 +1,19 @@
+<div xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:ui="http://java.sun.com/jsf/facelets">
+
+ <h:form>
+ <ul class="topnav">
+ <li>
+ <h:commandLink value="Portal Objects" action="objects" actionListener="#{portalobjectmgr.selectRootObject}"/>
+ </li>
+ <li>
+ <h:commandLink value="Portlet Instances" action="instances"/>
+ </li>
+ <li>
+ <h:commandLink value="Portlet Definitions" action="portlets"/>
+ </li>
+ </ul>
+ </h:form>
+
+</div>
Added: trunk/samples/portal-echo/src/main/webapp/objects.xhtml.html
===================================================================
17 years
JBoss Ajax4JSF SVN: r128 - in trunk/samples: portal-echo and 1 other directory.
by ajax4jsf-svn-commits@lists.jboss.org
Author: SergeySmirnov
Date: 2007-04-25 20:53:04 -0400 (Wed, 25 Apr 2007)
New Revision: 128
Added:
trunk/samples/portal-echo/
trunk/samples/portal-echo/pom.xml
Log:
Portal Project. Echo
Property changes on: trunk/samples/portal-echo
___________________________________________________________________
Name: svn:ignore
+ .project
.classpath
.settings
target
Added: trunk/samples/portal-echo/pom.xml
===================================================================
--- trunk/samples/portal-echo/pom.xml (rev 0)
+++ trunk/samples/portal-echo/pom.xml 2007-04-26 00:53:04 UTC (rev 128)
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>portal-echo</groupId>
+ <artifactId>portal-echo</artifactId>
+ <packaging>war</packaging>
+ <version>0.0.1</version>
+ <description>Ajax JSF sample portlet</description>
+ <build>
+ <defaultGoal>package</defaultGoal>
+ <finalName>portal-echo</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jboss-maven-plugin</artifactId>
+ <configuration>
+ <jbossHome>${env.JBOSS_HOME}</jbossHome>
+ <hostName>${jboss_host}</hostName>
+ <port>8080</port>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>javax.portlet</groupId>
+ <artifactId>portlet-api</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <version>1.2_04</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ <version>1.2_04</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.ajax4jsf</groupId>
+ <artifactId>a4j-portlet</artifactId>
+ <version>1.1.1-SNAPSHOT</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <version>1.2_04</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ <version>1.2_04</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
+
17 years
JBoss Ajax4JSF SVN: r127 - in trunk: samples/ajaxPortlet and 1 other directories.
by ajax4jsf-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2007-04-25 17:16:12 -0400 (Wed, 25 Apr 2007)
New Revision: 127
Modified:
trunk/a4j-portlet/pom.xml
trunk/samples/ajaxPortlet/pom.xml
trunk/samples/ajaxPortlet/src/main/webapp/jsf/repeater.xhtml
trunk/samples/ajaxPortlet/src/main/webapp/jsf/start.xhtml
Log:
fix JSF version for a portlet library.
Modified: trunk/a4j-portlet/pom.xml
===================================================================
--- trunk/a4j-portlet/pom.xml 2007-04-25 19:59:59 UTC (rev 126)
+++ trunk/a4j-portlet/pom.xml 2007-04-25 21:16:12 UTC (rev 127)
@@ -28,13 +28,13 @@
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
- <version>1.2_04-b10-p01</version>
+ <version>1.2_04</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-impl</artifactId>
- <version>1.2_04-b10-p01</version>
+ <version>1.2_04</version>
<scope>provided</scope>
</dependency>
<dependency>
Modified: trunk/samples/ajaxPortlet/pom.xml
===================================================================
--- trunk/samples/ajaxPortlet/pom.xml 2007-04-25 19:59:59 UTC (rev 126)
+++ trunk/samples/ajaxPortlet/pom.xml 2007-04-25 21:16:12 UTC (rev 127)
@@ -7,7 +7,21 @@
<artifactId>ajaxPortlet</artifactId>
<packaging>war</packaging>
<version>0.0.1</version>
- <description>Ajax JSF sample portlet</description>
+ <description>Ajax JSF sample portlet</description>
+ <build>
+ <defaultGoal>package</defaultGoal>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jboss-maven-plugin</artifactId>
+ <configuration>
+ <jbossHome>${env.JBOSS_HOME}</jbossHome>
+ <hostName>${jboss_host}</hostName>
+ <port>8080</port>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
<dependencies>
<dependency>
<groupId>javax.portlet</groupId>
@@ -30,6 +44,18 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <version>1.2_04</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ <version>1.2_04</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
</project>
Modified: trunk/samples/ajaxPortlet/src/main/webapp/jsf/repeater.xhtml
===================================================================
--- trunk/samples/ajaxPortlet/src/main/webapp/jsf/repeater.xhtml 2007-04-25 19:59:59 UTC (rev 126)
+++ trunk/samples/ajaxPortlet/src/main/webapp/jsf/repeater.xhtml 2007-04-25 21:16:12 UTC (rev 127)
@@ -17,5 +17,5 @@
<a4j:commandButton action="start" value="Ajax Switch to start page" />
</h:panelGrid>
</h:form>
- <a4j:log hotkey="M" />
+
</a4j:portlet>
\ No newline at end of file
Modified: trunk/samples/ajaxPortlet/src/main/webapp/jsf/start.xhtml
===================================================================
--- trunk/samples/ajaxPortlet/src/main/webapp/jsf/start.xhtml 2007-04-25 19:59:59 UTC (rev 126)
+++ trunk/samples/ajaxPortlet/src/main/webapp/jsf/start.xhtml 2007-04-25 21:16:12 UTC (rev 127)
@@ -23,5 +23,5 @@
<a4j:commandButton action="repeater" value="Ajax Switch to repeater page" />
</h:panelGrid>
</h:form>
- <a4j:log hotkey="M" />
+
</a4j:portlet>
17 years
JBoss Ajax4JSF SVN: r126 - trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo.
by ajax4jsf-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-04-25 15:59:59 -0400 (Wed, 25 Apr 2007)
New Revision: 126
Modified:
trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/GenerateMojo.java
Log:
Enable resource-config generation by default
Modified: trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/GenerateMojo.java
===================================================================
--- trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/GenerateMojo.java 2007-04-25 19:52:08 UTC (rev 125)
+++ trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/GenerateMojo.java 2007-04-25 19:59:59 UTC (rev 126)
@@ -197,16 +197,13 @@
faceletsTaglibGenerator.createFiles(config);
}
- if (Boolean.getBoolean("generateResourcesConfig")) {
-
- // Generate resources configuration file resources-config.xml
- // for all images/scripts/css...
- ResourcesConfigGenerator resourcesConfigGenerator = new ResourcesConfigGenerator(resourcesConfiguration, mavenLogger);
- resourcesConfigGenerator.setTemplates(templatesDirectory);
- resourcesConfigGenerator.setResourcesConfig(new File(
- outputResourcesDirectory, "META-INF/resources-config.xml"));
- resourcesConfigGenerator.createFiles(config);
- }
+ // Generate resources configuration file resources-config.xml
+ // for all images/scripts/css...
+ ResourcesConfigGenerator resourcesConfigGenerator = new ResourcesConfigGenerator(resourcesConfiguration, mavenLogger);
+ resourcesConfigGenerator.setTemplates(templatesDirectory);
+ resourcesConfigGenerator.setResourcesConfig(new File(
+ outputResourcesDirectory, "META-INF/resources-config.xml"));
+ resourcesConfigGenerator.createFiles(config);
// Add generated sources and resources to project
project.addCompileSourceRoot(outputJavaDirectory.getPath());
17 years
JBoss Ajax4JSF SVN: r125 - trunk/framework/src/main/config/component.
by ajax4jsf-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-04-25 15:52:08 -0400 (Wed, 25 Apr 2007)
New Revision: 125
Modified:
trunk/framework/src/main/config/component/repeat.xml
Log:
http://jira.jboss.com/jira/browse/AJSF-20 fixed
Modified: trunk/framework/src/main/config/component/repeat.xml
===================================================================
--- trunk/framework/src/main/config/component/repeat.xml 2007-04-25 19:47:32 UTC (rev 124)
+++ trunk/framework/src/main/config/component/repeat.xml 2007-04-25 19:52:08 UTC (rev 125)
@@ -64,7 +64,7 @@
<classname>java.lang.String</classname>
<description>This attribute defines strings that are updated after an AJAX request.</description>
</property>
- <property>
+ <property hidden="true">
<name>rowKey</name>
<classname>java.lang.String</classname>
<description>RowKey is a representation of an identifier for a specific data row.</description>
17 years
JBoss Ajax4JSF SVN: r124 - trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator.
by ajax4jsf-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-04-25 15:47:32 -0400 (Wed, 25 Apr 2007)
New Revision: 124
Modified:
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/ResourcesConfigGenerator.java
Log:
Extra class loading removed
Modified: trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/ResourcesConfigGenerator.java
===================================================================
--- trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/ResourcesConfigGenerator.java 2007-04-25 19:12:35 UTC (rev 123)
+++ trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/ResourcesConfigGenerator.java 2007-04-25 19:47:32 UTC (rev 124)
@@ -86,8 +86,6 @@
}
ClassLoader loader = builderConfig.getLoader();
- Class rClass = loader.loadClass("javax.faces.render.Renderer");
-
Class cl = null;
try {
17 years
JBoss Ajax4JSF SVN: r123 - in trunk: a4j-portlet/src/main/java/org/ajax4jsf/portlet and 11 other directories.
by ajax4jsf-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2007-04-25 15:12:35 -0400 (Wed, 25 Apr 2007)
New Revision: 123
Added:
trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/renderkit/portlet/
trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/renderkit/portlet/PortletAjaxViewRootRenderer.java
Modified:
trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/AjaxFacesPortlet.java
trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/PortletAjaxContext.java
trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/PortletViewState.java
trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/application/PortletViewHandler.java
trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/context/AbstractExternalContext.java
trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/context/ServletContextImpl.java
trunk/a4j-portlet/src/main/resources/META-INF/faces-config.xml
trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/AbstractCDKMojo.java
trunk/framework/src/main/java/org/ajax4jsf/framework/resource/FacesResourceContext.java
trunk/framework/src/main/javascript/ajaxjsf/JSFAJAX.js
trunk/pom.xml
trunk/samples/ajaxPortlet/src/main/java/portal/Bean.java
trunk/samples/ajaxPortlet/src/main/webapp/WEB-INF/ajaxportlet-object.xml
trunk/samples/ajaxPortlet/src/main/webapp/WEB-INF/faces-config.xml
trunk/samples/ajaxPortlet/src/main/webapp/WEB-INF/portlet.xml
trunk/samples/ajaxPortlet/src/main/webapp/jsf/repeater.xhtml
trunk/samples/ajaxPortlet/src/main/webapp/jsf/start.xhtml
Log:
Ajax Portlet is worked !
Fix AJSF-42
Fix illegal permissions in IE-7 on non-AJAX responses.
Modified: trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/AjaxFacesPortlet.java
===================================================================
--- trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/AjaxFacesPortlet.java 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/AjaxFacesPortlet.java 2007-04-25 19:12:35 UTC (rev 123)
@@ -27,6 +27,7 @@
import javax.portlet.PortletSession;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
+import org.ajax4jsf.framework.ajax.AjaxContext;
import org.ajax4jsf.portlet.context.AbstractExternalContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -39,9 +40,8 @@
private static final Log log = LogFactory.getLog(AjaxFacesPortlet.class);
/**
- * Stored portlet config.
- */
-
+ * Stored portlet config.
+ */
private Lifecycle lifecycle;
private FacesContextFactory facesContextFactory;
@@ -106,36 +106,30 @@
public void processAction(ActionRequest request, ActionResponse response)
throws PortletException, IOException {
if (log.isDebugEnabled()) {
- log.debug("Process action in portlet " + getPortletConfig().getPortletName()+" for mode "+request.getPortletMode());
+ log.debug("Process action in portlet "
+ + getPortletConfig().getPortletName() + " for mode "
+ + request.getPortletMode());
}
FacesContext facesContext = getFacesContext(request, response);
try {
setViewId(facesContext);
execute(facesContext);
- saveView(facesContext,response);
+ saveView(facesContext, response);
} catch (Exception e) {
log.error("Error processing execute lifecycle", e);
- throw new PortletException("Error processing execute lifecycle ",e);
+ throw new PortletException("Error processing execute lifecycle ", e);
} finally {
facesContext.release();
}
}
- protected void saveView(FacesContext facesContext,ActionResponse response) {
+ protected void saveView(FacesContext facesContext, ActionResponse response) {
PortletViewState state = new PortletViewState();
- UIViewRoot viewRoot = facesContext.getViewRoot();
- state.setViewRoot(viewRoot);
- Iterator idsWithMessages = facesContext.getClientIdsWithMessages();
- while (idsWithMessages.hasNext()) {
- String id = (String) idsWithMessages.next();
- Iterator messages = facesContext.getMessages(id);
- while (messages.hasNext()) {
- FacesMessage message = (FacesMessage) messages.next();
- state.addMessage(id, message);
- }
- }
- facesContext.getExternalContext().getSessionMap().put(PortletViewState.SAVED_VIEW_ATTRIBUTE, state);
- response.setRenderParameter(AbstractExternalContext.VIEW_ID_PARAMETER, viewRoot.getViewId());
+ state.save(facesContext);
+ facesContext.getExternalContext().getSessionMap().put(
+ PortletViewState.SAVED_VIEW_ATTRIBUTE, state);
+ // response.setRenderParameter(AbstractExternalContext.VIEW_ID_PARAMETER,
+ // viewRoot.getViewId());
}
/*
@@ -147,7 +141,8 @@
protected void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException {
if (log.isDebugEnabled()) {
- log.debug("Process do view in portlet " + getPortletConfig().getPortletName());
+ log.debug("Process do view in portlet "
+ + getPortletConfig().getPortletName());
}
FacesContext facesContext = getFacesContext(request, response);
try {
@@ -161,22 +156,32 @@
}
response.setContentType(contenttype);
PrintWriter writer = response.getWriter();
+ String namespace = response
+ .getNamespace();
// Write anchor for update portlet pages by ajax.
// TODO - configure html element and style/class.
- writer.println("<div id='"+response.getNamespace()+"'>");
-// writer.flush();
+ writer.println("<div id='" + namespace + "'>");
+ // writer.flush();
restoreView(facesContext);
+ AjaxContext ajaxContext = AjaxContext.getCurrentInstance(facesContext);
+ ajaxContext.getCommonAjaxParameters().put(AbstractExternalContext.ACTION__PARAMETER, facesContext.getApplication().getViewHandler().getActionURL(facesContext, facesContext.getViewRoot().getViewId()));
render(facesContext);
writer.println("</div>");
- PortletSession portletSession = request.getPortletSession(false);
- // Store namespace value in portlet scope session. ServletContext, in case of ajax requests,
+ PortletSession portletSession = request.getPortletSession(true);
+ // Store namespace value in portlet scope session.
+ // ServletContext, in case of ajax requests,
// will restore session prefiv by it's value.
- if(null!=portletSession){
- portletSession.setAttribute(AbstractExternalContext.NAMESPACE_PARAMETER, response.getNamespace());
- }
+ portletSession.setAttribute(
+ AbstractExternalContext.NAMESPACE_PARAMETER, namespace);
+ if (log.isDebugEnabled()) {
+ log.debug("Finish rendering portlet for namespace "+namespace);
+ }
+ // Disable portlet caching.
+ // TODO - detect ajax components on page, static views can be cached.
+ response.setProperty(RenderResponse.EXPIRATION_CACHE, "0");
} catch (Exception e) {
log.error("Error processing execute lifecycle", e);
- throw new PortletException("Error processing execute lifecycle ",e);
+ throw new PortletException("Error processing execute lifecycle ", e);
} finally {
facesContext.release();
}
@@ -184,20 +189,12 @@
protected void restoreView(FacesContext facesContext) {
Map sessionMap = facesContext.getExternalContext().getSessionMap();
- PortletViewState state = (PortletViewState) sessionMap.get(PortletViewState.SAVED_VIEW_ATTRIBUTE);
+ PortletViewState state = (PortletViewState) sessionMap
+ .get(PortletViewState.SAVED_VIEW_ATTRIBUTE);
if (null != state) {
- facesContext.setViewRoot(state.getViewRoot());
- Iterator idsWithMessages = state.getClientIdsWithMessages();
- while (idsWithMessages.hasNext()) {
- String id = (String) idsWithMessages.next();
- Iterator messages = state.getMessages(id);
- while (messages.hasNext()) {
- FacesMessage message = (FacesMessage) messages.next();
- facesContext.addMessage(id, message);
- }
- }
- sessionMap.remove(PortletViewState.SAVED_VIEW_ATTRIBUTE);
- }else {
+ state.restore(facesContext);
+ // sessionMap.remove(PortletViewState.SAVED_VIEW_ATTRIBUTE);
+ } else {
setViewId(facesContext);
}
}
@@ -211,7 +208,8 @@
protected void doEdit(RenderRequest arg0, RenderResponse arg1)
throws PortletException, IOException {
if (log.isDebugEnabled()) {
- log.debug("Process do edit in portlet " + getPortletConfig().getPortletName());
+ log.debug("Process do edit in portlet "
+ + getPortletConfig().getPortletName());
}
}
@@ -224,11 +222,11 @@
protected void doHelp(RenderRequest arg0, RenderResponse arg1)
throws PortletException, IOException {
if (log.isDebugEnabled()) {
- log.debug("Process do help in portlet " + getPortletConfig().getPortletName());
+ log.debug("Process do help in portlet "
+ + getPortletConfig().getPortletName());
}
}
-
/**
* Get currenf JSF lifecycle instance.
*
@@ -258,38 +256,54 @@
protected void render(FacesContext context) throws FacesException {
getLifecycle().render(context);
}
-
+
protected void setViewId(FacesContext context) {
- Map requestParameterMap = context.getExternalContext().getRequestParameterMap();
- String viewId = (String) requestParameterMap.get(AbstractExternalContext.VIEW_ID_PARAMETER);
- if(null == viewId){
+ String viewId = null;
+ Map sessionMap = context.getExternalContext().getSessionMap();
+ PortletViewState state = (PortletViewState) sessionMap
+ .get(PortletViewState.SAVED_VIEW_ATTRIBUTE);
+ if (null != state) {
+ viewId = state.getViewRoot().getViewId();
+ }
+ if (null == viewId) {
+ Map requestParameterMap = context.getExternalContext()
+ .getRequestParameterMap();
+ viewId = (String) requestParameterMap
+ .get(AbstractExternalContext.VIEW_ID_PARAMETER);
+ } else if (log.isDebugEnabled()) {
+ log.debug("Detect viewId from saved view state as " + viewId);
+ }
+ if (null == viewId) {
viewId = getInitParameter("default-view");
if (log.isDebugEnabled()) {
- log.debug("Set viewId to default value from portlet parameter "+viewId);
+ log.debug("Set viewId to default value from portlet parameter "
+ + viewId);
}
} else if (log.isDebugEnabled()) {
- log.debug("Detect viewId from request parameter as "+viewId);
+ log.debug("Detect viewId from request parameter as " + viewId);
}
- if(null == viewId){
- throw new IllegalArgumentException("Initial view id must be set as portlet parameter");
+ if (null == viewId) {
+ throw new IllegalArgumentException(
+ "Initial view id must be set as portlet parameter");
}
// Store for simulate servlet environment compability.
- context.getExternalContext().getRequestMap().put(AbstractExternalContext.VIEW_ID_PARAMETER, viewId);
+ context.getExternalContext().getRequestMap().put(
+ AbstractExternalContext.VIEW_ID_PARAMETER, viewId);
UIViewRoot viewRoot = context.getViewRoot();
- if(null == viewRoot){
- viewRoot = context.getApplication().getViewHandler().createView(context, viewId);
+ if (null == viewRoot) {
+ viewRoot = context.getApplication().getViewHandler().createView(
+ context, viewId);
context.setViewRoot(viewRoot);
}
viewRoot.setViewId(viewId);
}
-
+
/**
- * @param facesContext
- * @return
- */
+ * @param facesContext
+ * @return
+ */
public static String getPortletID(FacesContext facesContext) {
- ExternalContext externalContext = facesContext
- .getExternalContext();
+ ExternalContext externalContext = facesContext.getExternalContext();
Object response = externalContext.getResponse();
String namespace = null;
if (response instanceof RenderResponse) {
@@ -301,6 +315,4 @@
}
return namespace;
}
-
-
}
Modified: trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/PortletAjaxContext.java
===================================================================
--- trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/PortletAjaxContext.java 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/PortletAjaxContext.java 2007-04-25 19:12:35 UTC (rev 123)
@@ -80,6 +80,10 @@
if (null != namespace) {
map.put(AbstractExternalContext.NAMESPACE_PARAMETER, namespace);
}
+ String actionUrl = (String) facesContext.getExternalContext().getRequestParameterMap().get(AbstractExternalContext.ACTION__PARAMETER);
+ if(null != actionUrl){
+ map.put(AbstractExternalContext.ACTION__PARAMETER, actionUrl);
+ }
return map;
}
}
Modified: trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/PortletViewState.java
===================================================================
--- trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/PortletViewState.java 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/PortletViewState.java 2007-04-25 19:12:35 UTC (rev 123)
@@ -11,6 +11,7 @@
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIViewRoot;
+import javax.faces.context.FacesContext;
/**
* @author asmirnov
@@ -22,6 +23,36 @@
private Map messages = new HashMap();
private UIViewRoot viewRoot;
+
+ public void save(FacesContext facesContext){
+ UIViewRoot viewRoot = facesContext.getViewRoot();
+ setViewRoot(viewRoot);
+ Iterator idsWithMessages = facesContext.getClientIdsWithMessages();
+ while (idsWithMessages.hasNext()) {
+ String id = (String) idsWithMessages.next();
+ Iterator messages = facesContext.getMessages(id);
+ while (messages.hasNext()) {
+ FacesMessage message = (FacesMessage) messages.next();
+ addMessage(id, message);
+ }
+ }
+// facesContext.getExternalContext().getSessionMap().put(PortletViewState.SAVED_VIEW_ATTRIBUTE, this);
+ }
+
+ public void restore(FacesContext facesContext) {
+ facesContext.setViewRoot(getViewRoot());
+ Iterator idsWithMessages = getClientIdsWithMessages();
+ while (idsWithMessages.hasNext()) {
+ String id = (String) idsWithMessages.next();
+ Iterator messages = getMessages(id);
+ while (messages.hasNext()) {
+ FacesMessage message = (FacesMessage) messages.next();
+ facesContext.addMessage(id, message);
+ }
+ }
+
+ }
+
/**
* @return the _messages
*/
Modified: trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/application/PortletViewHandler.java
===================================================================
--- trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/application/PortletViewHandler.java 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/application/PortletViewHandler.java 2007-04-25 19:12:35 UTC (rev 123)
@@ -3,11 +3,17 @@
*/
package org.ajax4jsf.portlet.application;
+import java.io.IOException;
+import javax.faces.FacesException;
import javax.faces.application.ViewHandler;
+import javax.faces.component.UIViewRoot;
+import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.portlet.PortletURL;
import javax.portlet.RenderResponse;
+import org.ajax4jsf.framework.ajax.AjaxContext;
import org.ajax4jsf.framework.ajax.AjaxViewHandler;
+import org.ajax4jsf.portlet.PortletViewState;
import org.ajax4jsf.portlet.context.AbstractExternalContext;
/**
@@ -22,14 +28,38 @@
super(parent);
}
+ public UIViewRoot createView(FacesContext facesContext, String viewId) {
+ AjaxContext ajaxContext = AjaxContext.getCurrentInstance(facesContext);
+ boolean ajaxRequest = ajaxContext.isAjaxRequest(facesContext);
+ UIViewRoot root = super.createView(facesContext, viewId);
+ if(ajaxRequest && null != ajaxContext.getViewIdHolder()){
+ // Store new viewId for a portlet.
+ }
+ return root;
+ }
+
+ public void renderView(FacesContext context, UIViewRoot root) throws IOException, FacesException {
+ super.renderView(context, root);
+ // Save view to use in portlet rendering phases
+ PortletViewState state = new PortletViewState();
+ state.save(context);
+ context.getExternalContext().getSessionMap().put(
+ PortletViewState.SAVED_VIEW_ATTRIBUTE, state);
+
+ }
+
public String getActionURL(FacesContext context, String url) {
- Object response = context.getExternalContext().getResponse();
+ ExternalContext externalContext = context.getExternalContext();
+ String portalActionURL = (String) externalContext.getRequestParameterMap().get(AbstractExternalContext.ACTION__PARAMETER);
+ Object response = externalContext.getResponse();
if (response instanceof RenderResponse) {
RenderResponse renderResponse = (RenderResponse) response;
PortletURL portletURL = renderResponse.createActionURL();
portletURL.setParameter(AbstractExternalContext.VIEW_ID_PARAMETER, context.getViewRoot().getViewId());
portletURL.setParameter(AbstractExternalContext.NAMESPACE_PARAMETER, renderResponse.getNamespace());
return portletURL.toString();
+ } else if(null!=portalActionURL){
+ return portalActionURL;
} else {
return super.getActionURL(context, url);
}
Modified: trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/context/AbstractExternalContext.java
===================================================================
--- trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/context/AbstractExternalContext.java 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/context/AbstractExternalContext.java 2007-04-25 19:12:35 UTC (rev 123)
@@ -103,6 +103,7 @@
* Name of request parameter to store namsepace of the current portlet instance.
*/
public static final String NAMESPACE_PARAMETER ="org.ajax4jsf.portlet.NAMESPACE";
+ public static final String ACTION__PARAMETER = "org.ajax4jsf.portlet.ACTION_URL";
// TODO - optimization.
private Map applicationMap;
Modified: trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/context/ServletContextImpl.java
===================================================================
--- trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/context/ServletContextImpl.java 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/context/ServletContextImpl.java 2007-04-25 19:12:35 UTC (rev 123)
@@ -27,12 +27,17 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* @author asmirnov
*
*/
public class ServletContextImpl extends AbstractExternalContext {
+
+ private static final Log _log = LogFactory.getLog(ServletContextImpl.class);
+
private String namespace;
/**
@@ -61,7 +66,12 @@
Object requestParameter = getRequestParameter(NAMESPACE_PARAMETER);
if (null != requestParameter) {
namespace = (String) requestParameter;
- }
+ if (_log.isDebugEnabled()) {
+ _log.debug("Namespace for a portlet instance is "+namespace);
+ }
+ } else {
+ throw new FacesException("AJAX call to portlet without namespace parameter");
+ }
}
return namespace;
}
@@ -187,11 +197,15 @@
Enumeration attributeNames = session.getAttributeNames();
while (attributeNames.hasMoreElements() && null == sessionPrefix) {
String name = (String) attributeNames.nextElement();
+ Object attribute = session.getAttribute(name);
if (PortletSessionUtil.decodeScope(name) == PortletSession.PORTLET_SCOPE
&& PortletSessionUtil.decodeAttributeName(name).equals(
NAMESPACE_PARAMETER)
- && namespase.equals(session.getAttribute(name))) {
+ && namespase.equals(attribute)) {
sessionPrefix = name.substring(0, name.length()-NAMESPACE_PARAMETER.length());
+ if (_log.isDebugEnabled()) {
+ _log.debug("Prefix for a PORTLET_SCOPE session attributes: "+sessionPrefix);
+ }
}
}
if(null == sessionPrefix){
Added: trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/renderkit/portlet/PortletAjaxViewRootRenderer.java
===================================================================
--- trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/renderkit/portlet/PortletAjaxViewRootRenderer.java (rev 0)
+++ trunk/a4j-portlet/src/main/java/org/ajax4jsf/portlet/renderkit/portlet/PortletAjaxViewRootRenderer.java 2007-04-25 19:12:35 UTC (rev 123)
@@ -0,0 +1,46 @@
+/**
+ *
+ */
+package org.ajax4jsf.portlet.renderkit.portlet;
+
+import java.io.IOException;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import org.ajax4jsf.framework.ajax.AjaxContext;
+import org.ajax4jsf.framework.renderer.AjaxRendererUtils;
+import org.ajax4jsf.framework.renderer.AjaxViewRootRenderer;
+import org.ajax4jsf.framework.renderer.RendererUtils.HTML;
+import org.ajax4jsf.portlet.context.AbstractExternalContext;
+
+/**
+ * @author asmirnov
+ *
+ */
+public class PortletAjaxViewRootRenderer extends AjaxViewRootRenderer {
+ protected void doEncodeBegin(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {
+ AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
+ Object namespace = context.getExternalContext().getRequestParameterMap().get(AbstractExternalContext.NAMESPACE_PARAMETER);
+ Object ajaxRequestParameter = context.getExternalContext().getRequestParameterMap().get(AbstractExternalContext.NAMESPACE_PARAMETER);
+ if(!ajaxContext.isAjaxRequest() && null !=namespace && null != ajaxRequestParameter){
+ // Navigation case, encode portlet window marker
+ writer.startElement(HTML.DIV_ELEM, component);
+ writer.writeAttribute(HTML.id_ATTRIBUTE, namespace, HTML.id_ATTRIBUTE);
+ }
+ super.doEncodeBegin(writer, context, component);
+ }
+
+ protected void doEncodeEnd(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {
+ super.doEncodeEnd(writer, context, component);
+ AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
+ Object namespace = context.getExternalContext().getRequestParameterMap().get(AbstractExternalContext.NAMESPACE_PARAMETER);
+ Object ajaxRequestParameter = context.getExternalContext().getRequestParameterMap().get(AbstractExternalContext.NAMESPACE_PARAMETER);
+ if(!ajaxContext.isAjaxRequest() && null !=namespace && null != ajaxRequestParameter){
+ // Navigation case, encode portlet window marker
+ writer.endElement(HTML.DIV_ELEM);
+ ajaxContext.setAjaxRequest(true);
+ ajaxContext.addRenderedArea(namespace.toString());
+ AjaxRendererUtils.encodeAreas(context, component);
+ }
+ }
+}
Modified: trunk/a4j-portlet/src/main/resources/META-INF/faces-config.xml
===================================================================
--- trunk/a4j-portlet/src/main/resources/META-INF/faces-config.xml 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/a4j-portlet/src/main/resources/META-INF/faces-config.xml 2007-04-25 19:12:35 UTC (rev 123)
@@ -9,4 +9,16 @@
<factory>
<faces-context-factory>org.ajax4jsf.portlet.context.FacesContextFactoryImpl</faces-context-factory>
</factory>
+ <render-kit>
+
+ <renderer>
+ <description>
+ override the viewroot
+ </description>
+ <component-family>javax.faces.ViewRoot</component-family>
+ <renderer-type>javax.faces.ViewRoot</renderer-type>
+ <renderer-class>org.ajax4jsf.portlet.renderkit.portlet.PortletAjaxViewRootRenderer</renderer-class>
+ </renderer>
+ </render-kit>
+
</faces-config>
Modified: trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/AbstractCDKMojo.java
===================================================================
--- trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/AbstractCDKMojo.java 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/AbstractCDKMojo.java 2007-04-25 19:12:35 UTC (rev 123)
@@ -204,7 +204,7 @@
}
if( null == taglib.getJspVersion()){
// Jsf 1.2 can use JSP 2.1 only, other - 2.0
- taglib.setJspVersion(library.getJsfVersion().equals(Library.JSF12)?"2.1":"2.0");
+ taglib.setJspVersion(library.getJsfVersion().equals(Library.JSF12)?"2.1":"1.2");
}
if (null == taglib.getUri()) {
String url = project.getUrl();
Modified: trunk/framework/src/main/java/org/ajax4jsf/framework/resource/FacesResourceContext.java
===================================================================
--- trunk/framework/src/main/java/org/ajax4jsf/framework/resource/FacesResourceContext.java 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/framework/src/main/java/org/ajax4jsf/framework/resource/FacesResourceContext.java 2007-04-25 19:12:35 UTC (rev 123)
@@ -25,135 +25,197 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
+import java.lang.reflect.Method;
+import javax.faces.FacesException;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
/**
* @author asmirnov(a)exadel.com (latest modification by $Author: nick_belaevski $)
* @version $Revision: 1.1.2.2 $ $Date: 2007/01/11 16:52:14 $
- *
+ *
*/
public class FacesResourceContext extends ResourceContext {
- FacesContext facesContext;
-
- ExternalContext externalContext;
-
- HttpServletResponse response;
- /**
- * @param facesContext
- */
- public FacesResourceContext(FacesContext facesContext) {
-
- this.facesContext = facesContext;
- this.externalContext = facesContext.getExternalContext();
- this.response = (HttpServletResponse) externalContext.getResponse();
- }
+ FacesContext facesContext;
- /* (non-Javadoc)
- * @see org.ajax4jsf.framework.resource.ResourceContext#setHeader(java.lang.String, java.lang.String)
- */
- public void setHeader(String name, String value) {
- response.setHeader(name,value);
+ ExternalContext externalContext;
- }
+ HttpServletResponse response;
- /* (non-Javadoc)
- * @see org.ajax4jsf.framework.resource.ResourceContext#setIntHeader(java.lang.String, int)
- */
- public void setIntHeader(String name, int value) {
- response.setIntHeader(name,value);
+ /**
+ * @param facesContext
+ */
+ public FacesResourceContext(FacesContext facesContext) {
+ this.facesContext = facesContext;
+ this.externalContext = facesContext.getExternalContext();
+ Object facesResponse = externalContext.getResponse();
+ if (facesResponse instanceof HttpServletResponse) {
+ this.response = (HttpServletResponse) facesResponse;
}
+ }
- /* (non-Javadoc)
- * @see org.ajax4jsf.framework.resource.ResourceContext#setDateHeader(java.lang.String, long)
- */
- public void setDateHeader(String name, long value) {
- response.setDateHeader(name,value);
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.ajax4jsf.framework.resource.ResourceContext#setHeader(java.lang.String,
+ * java.lang.String)
+ */
+ public void setHeader(String name, String value) {
+ if (null != response) {
+ response.setHeader(name, value);
}
+ }
- /* (non-Javadoc)
- * @see org.ajax4jsf.framework.resource.ResourceContext#getOutputStream()
- */
- public OutputStream getOutputStream() throws IOException {
- return response.getOutputStream();
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.ajax4jsf.framework.resource.ResourceContext#setIntHeader(java.lang.String,
+ * int)
+ */
+ public void setIntHeader(String name, int value) {
+ if (null != response) {
+ response.setIntHeader(name, value);
-
- /* (non-Javadoc)
- * @see org.ajax4jsf.framework.resource.ResourceContext#getWriter()
- */
- public PrintWriter getWriter() throws IOException {
- // TODO Auto-generated method stub
- return response.getWriter();
}
+ }
- /* (non-Javadoc)
- * @see org.ajax4jsf.framework.resource.ResourceContext#getQueryString()
- */
- public String getQueryString() {
- return ((HttpServletRequest) externalContext.getRequest()).getQueryString();
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.ajax4jsf.framework.resource.ResourceContext#setDateHeader(java.lang.String,
+ * long)
+ */
+ public void setDateHeader(String name, long value) {
+ if (null != response) {
+ response.setDateHeader(name, value);
- /* (non-Javadoc)
- * @see org.ajax4jsf.framework.resource.ResourceContext#getPathInfo()
- */
- public String getPathInfo() {
- return externalContext.getRequestPathInfo();
}
+ }
- /* (non-Javadoc)
- * @see org.ajax4jsf.framework.resource.ResourceContext#getSessionAttribute(java.lang.String)
- */
- public Object getSessionAttribute(String name) {
- return externalContext.getSessionMap().get(name);
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.ajax4jsf.framework.resource.ResourceContext#getOutputStream()
+ */
+ public OutputStream getOutputStream() throws IOException {
+ if (null != response) {
+ return response.getOutputStream();
- public InputStream getResourceAsStream(String path) {
-
- return externalContext.getResourceAsStream(path);
+ } else {
+ // May be non-servlet (Portlet?) environment. Try to use reflection
+ OutputStream stream = null;
+ Object response = externalContext.getResponse();
+ try {
+ Method gW = response.getClass()
+ .getMethod("getOutputStream", new Class[0]);
+ stream = (OutputStream) gW.invoke(response, new Object[0]);
+ } catch (Exception e) {
+ throw new FacesException(e);
+ }
+ return stream;
+
}
+ }
- public String getRequestParameter(String data_parameter) {
-
- return (String) externalContext.getRequestParameterMap().get(data_parameter);
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.ajax4jsf.framework.resource.ResourceContext#getWriter()
+ */
+ public PrintWriter getWriter() throws IOException {
+ if (null != response) {
+ return response.getWriter();
- public void setContentType(String contentType) {
- response.setContentType(contentType);
-
+ } else {
+ // May be non-servlet (Portlet?) environment. Try to use reflection
+ PrintWriter writer = null;
+ Object response = externalContext.getResponse();
+ try {
+ Method gW = response.getClass()
+ .getMethod("getWriter", new Class[0]);
+ writer = (PrintWriter) gW.invoke(response, new Object[0]);
+ } catch (Exception e) {
+ throw new FacesException(e);
+ }
+ return writer;
+
}
+ }
- public String getInitParameter(String name) {
- // TODO Auto-generated method stub
- return externalContext.getInitParameter(name);
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.ajax4jsf.framework.resource.ResourceContext#getQueryString()
+ */
+ public String getQueryString() {
+ return ((HttpServletRequest) externalContext.getRequest())
+ .getQueryString();
+ }
- public String getServletPath() {
- // TODO Auto-generated method stub
- return externalContext.getRequestServletPath();
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.ajax4jsf.framework.resource.ResourceContext#getPathInfo()
+ */
+ public String getPathInfo() {
+ return externalContext.getRequestPathInfo();
+ }
- public void release() {
- super.release();
- externalContext = null;
- response = null;
- facesContext.release();
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.ajax4jsf.framework.resource.ResourceContext#getSessionAttribute(java.lang.String)
+ */
+ public Object getSessionAttribute(String name) {
+ return externalContext.getSessionMap().get(name);
+ }
- // added by nick 11.01.2007 - getters for contexts added
- public FacesContext getFacesContext() {
- return facesContext;
- }
-
- public ExternalContext getExternalContext() {
- return externalContext;
- }
- // by nick
+ public InputStream getResourceAsStream(String path) {
+
+ return externalContext.getResourceAsStream(path);
+ }
+
+ public String getRequestParameter(String data_parameter) {
+
+ return (String) externalContext.getRequestParameterMap().get(
+ data_parameter);
+ }
+
+ public void setContentType(String contentType) {
+ response.setContentType(contentType);
+
+ }
+
+ public String getInitParameter(String name) {
+ // TODO Auto-generated method stub
+ return externalContext.getInitParameter(name);
+ }
+
+ public String getServletPath() {
+ // TODO Auto-generated method stub
+ return externalContext.getRequestServletPath();
+ }
+
+ public void release() {
+ super.release();
+ externalContext = null;
+ response = null;
+ facesContext.release();
+ }
+
+ // added by nick 11.01.2007 - getters for contexts added
+ public FacesContext getFacesContext() {
+ return facesContext;
+ }
+
+ public ExternalContext getExternalContext() {
+ return externalContext;
+ }
+ // by nick
}
Modified: trunk/framework/src/main/javascript/ajaxjsf/JSFAJAX.js
===================================================================
--- trunk/framework/src/main/javascript/ajaxjsf/JSFAJAX.js 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/framework/src/main/javascript/ajaxjsf/JSFAJAX.js 2007-04-25 19:12:35 UTC (rev 123)
@@ -579,6 +579,16 @@
window.location.reload(true);
} else {
var isIE = _SARISSA_IS_IE;
+ // maksimkaszynski
+ //Prevent "Permission denied in IE7"
+ //Reset calling principal
+ if (isIE) {
+ var oldDocOpen = window.document.open;
+ window.document.open = function() {
+ oldDocOpen.apply(this, arguments);
+ }
+ }
+ // /maksimkaszynski
window.setTimeout(function() {
var isDocOpen=false;
try {
@@ -645,7 +655,8 @@
LOG.debug("Hidden JSF state fields: "+idsSpan);
if(idsSpan != null){
// For a portal case, replace content in the current window only.
- var namespace = options['org.ajax4jsf.portlet.NAMESPACE'];
+ var namespace = options.parameters['org.ajax4jsf.portlet.NAMESPACE'];
+ LOG.debug("Namespace for hidden view-state input fields is "+namespace);
var anchor = namespace?window.document.getElementById(namespace):window.document;
var inputs = anchor.getElementsByTagName("input");
var newinputs = req.getElementsByTagName("input",idsSpan);
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/pom.xml 2007-04-25 19:12:35 UTC (rev 123)
@@ -174,6 +174,7 @@
<module>framework</module>
<module>test</module>
<module>cdk</module>
+ <module>a4j-portlet</module>
</modules>
<profiles>
<profile>
@@ -195,12 +196,6 @@
</modules>
</profile>
<profile>
- <id>portlet</id>
- <modules>
- <module>a4j-portlet</module>
- </modules>
- </profile>
- <profile>
<id>assembly</id>
<build>
<plugins>
Modified: trunk/samples/ajaxPortlet/src/main/java/portal/Bean.java
===================================================================
--- trunk/samples/ajaxPortlet/src/main/java/portal/Bean.java 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/samples/ajaxPortlet/src/main/java/portal/Bean.java 2007-04-25 19:12:35 UTC (rev 123)
@@ -3,6 +3,8 @@
*/
package portal;
+import javax.faces.context.FacesContext;
+
/**
* @author asmirnov
*
@@ -45,4 +47,7 @@
return null;
}
+ public String getNamespace(){
+ return FacesContext.getCurrentInstance().getExternalContext().encodeNamespace("");
+ }
}
Modified: trunk/samples/ajaxPortlet/src/main/webapp/WEB-INF/ajaxportlet-object.xml
===================================================================
--- trunk/samples/ajaxPortlet/src/main/webapp/WEB-INF/ajaxportlet-object.xml 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/samples/ajaxPortlet/src/main/webapp/WEB-INF/ajaxportlet-object.xml 2007-04-25 19:12:35 UTC (rev 123)
@@ -32,6 +32,20 @@
<deployment>
<parent-ref>default</parent-ref>
<if-exists>overwrite</if-exists>
+ <page>
+ <page-name>otherAjaxPortlet</page-name>
+ <window>
+ <window-name>otherAjaxportletWindow</window-name>
+ <instance-ref>AjaxPortletInstance</instance-ref>
+ <default>true</default>
+ <region>center</region>
+ <height>0</height>
+ </window>
+ </page>
+ </deployment>
+ <deployment>
+ <parent-ref>default</parent-ref>
+ <if-exists>overwrite</if-exists>
<instance>
<instance-name>AjaxPortletSecondInstance</instance-name>
<component-ref>ajaxPortletApp.ajaxPortlet</component-ref>
Modified: trunk/samples/ajaxPortlet/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/samples/ajaxPortlet/src/main/webapp/WEB-INF/faces-config.xml 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/samples/ajaxPortlet/src/main/webapp/WEB-INF/faces-config.xml 2007-04-25 19:12:35 UTC (rev 123)
@@ -32,4 +32,14 @@
<view-handler>com.sun.facelets.FaceletPortletViewHandler</view-handler>
-->
</application>
+ <render-kit>
+ <renderer>
+ <description>
+ override the viewroot
+ </description>
+ <component-family>javax.faces.ViewRoot</component-family>
+ <renderer-type>javax.faces.ViewRoot</renderer-type>
+ <renderer-class>org.ajax4jsf.portlet.renderkit.portlet.PortletAjaxViewRootRenderer</renderer-class>
+ </renderer>
+ </render-kit>
</faces-config>
Modified: trunk/samples/ajaxPortlet/src/main/webapp/WEB-INF/portlet.xml
===================================================================
--- trunk/samples/ajaxPortlet/src/main/webapp/WEB-INF/portlet.xml 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/samples/ajaxPortlet/src/main/webapp/WEB-INF/portlet.xml 2007-04-25 19:12:35 UTC (rev 123)
@@ -16,7 +16,7 @@
<name>default-help</name>
<value>/jsf/start-help.xhtml</value>
</init-param>
- <expiration-cache>-1</expiration-cache>
+ <expiration-cache>-0</expiration-cache>
<portlet-info>
<title>Ajax Portlet</title>
</portlet-info>
Modified: trunk/samples/ajaxPortlet/src/main/webapp/jsf/repeater.xhtml
===================================================================
--- trunk/samples/ajaxPortlet/src/main/webapp/jsf/repeater.xhtml 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/samples/ajaxPortlet/src/main/webapp/jsf/repeater.xhtml 2007-04-25 19:12:35 UTC (rev 123)
@@ -1,4 +1,4 @@
-<div
+<a4j:portlet
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
@@ -17,5 +17,5 @@
<a4j:commandButton action="start" value="Ajax Switch to start page" />
</h:panelGrid>
</h:form>
-
-</div>
+ <a4j:log hotkey="M" />
+</a4j:portlet>
\ No newline at end of file
Modified: trunk/samples/ajaxPortlet/src/main/webapp/jsf/start.xhtml
===================================================================
--- trunk/samples/ajaxPortlet/src/main/webapp/jsf/start.xhtml 2007-04-25 00:24:54 UTC (rev 122)
+++ trunk/samples/ajaxPortlet/src/main/webapp/jsf/start.xhtml 2007-04-25 19:12:35 UTC (rev 123)
@@ -12,14 +12,16 @@
<a4j:support event="onkeyup" reRender="text"/>
</h:inputText>
<a4j:outputPanel ajaxRendered="true">
+ <h:outputText id="text" value="#{bean.text}"/>
<h:message for="repeaterText"/>
</a4j:outputPanel>
- <h:outputText id="text" value="#{bean.text}"/>
<a4j:commandLink value="Increment counter" action="#{bean.click}" reRender="counter"/>
<h:outputText id="counter" value="#{bean.counter}"/>
+ <h:outputText value="Portlet namespace:"/>
+ <h:outputText value="#{bean.namespace}"/>
<h:commandButton action="repeater" value="Switch to repeater page" />
<a4j:commandButton action="repeater" value="Ajax Switch to repeater page" />
</h:panelGrid>
</h:form>
-
+ <a4j:log hotkey="M" />
</a4j:portlet>
17 years