JBoss Rich Faces SVN: r22320 - in branches/4.0.X: archetypes and 75 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: jbalunas(a)redhat.com
Date: 2011-03-27 10:42:19 -0400 (Sun, 27 Mar 2011)
New Revision: 22320
Modified:
branches/4.0.X/archetypes/pom.xml
branches/4.0.X/archetypes/rf-gae-sample/pom.xml
branches/4.0.X/archetypes/richfaces-archetype-simpleapp/pom.xml
branches/4.0.X/archetypes/richfaces-component-short/pom.xml
branches/4.0.X/archetypes/richfaces-component-short/readme.txt
branches/4.0.X/archetypes/richfaces-component-short/src/main/resources/META-INF/maven/archetype-metadata.xml
branches/4.0.X/archetypes/richfaces-component/pom.xml
branches/4.0.X/archetypes/richfaces-component/readme.txt
branches/4.0.X/archetypes/richfaces-component/src/main/resources/META-INF/maven/archetype-metadata.xml
branches/4.0.X/archetypes/richfaces-components-aggregator/pom.xml
branches/4.0.X/archetypes/richfaces-components-aggregator/readme.txt
branches/4.0.X/archetypes/richfaces-components-aggregator/src/main/resources/META-INF/maven/archetype-metadata.xml
branches/4.0.X/bom/pom.xml
branches/4.0.X/cdk/annotations/pom.xml
branches/4.0.X/cdk/attributes/pom.xml
branches/4.0.X/cdk/commons/pom.xml
branches/4.0.X/cdk/dist/pom.xml
branches/4.0.X/cdk/generator/pom.xml
branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedBehavior.java
branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedComponent.java
branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedConverter.java
branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedValidator.java
branches/4.0.X/cdk/maven-cdk-plugin/pom.xml
branches/4.0.X/cdk/maven-cdk-plugin/src/it/annotated-component/pom.xml
branches/4.0.X/cdk/maven-cdk-plugin/src/it/renderer-template-test/pom.xml
branches/4.0.X/cdk/maven-cdk-plugin/src/it/xml-configured-component/pom.xml
branches/4.0.X/cdk/maven-javascript-plugin/pom.xml
branches/4.0.X/cdk/maven-resources-plugin/pom.xml
branches/4.0.X/cdk/maven-resources-plugin/src/it/richfaces-application/pom.xml
branches/4.0.X/cdk/parent/pom.xml
branches/4.0.X/cdk/pom.xml
branches/4.0.X/cdk/xinclude/pom.xml
branches/4.0.X/core/api/pom.xml
branches/4.0.X/core/impl/pom.xml
branches/4.0.X/core/impl/src/main/java/org/richfaces/VersionBean.java
branches/4.0.X/core/legacy-tests/pom.xml
branches/4.0.X/core/parent/pom.xml
branches/4.0.X/core/pom.xml
branches/4.0.X/dist/pom.xml
branches/4.0.X/examples/core-demo/pom.xml
branches/4.0.X/examples/dnd-demo/pom.xml
branches/4.0.X/examples/input-demo/pom.xml
branches/4.0.X/examples/irc-client/pom.xml
branches/4.0.X/examples/iteration-demo/pom.xml
branches/4.0.X/examples/misc-demo/pom.xml
branches/4.0.X/examples/output-demo/pom.xml
branches/4.0.X/examples/parent/pom.xml
branches/4.0.X/examples/pom.xml
branches/4.0.X/examples/push-demo/pom.xml
branches/4.0.X/examples/repeater-demo/pom.xml
branches/4.0.X/examples/richfaces-showcase/pom.xml
branches/4.0.X/examples/template/pom.xml
branches/4.0.X/examples/validator-demo/pom.xml
branches/4.0.X/parent/pom.xml
branches/4.0.X/pom.xml
branches/4.0.X/ui/common/api/pom.xml
branches/4.0.X/ui/common/pom.xml
branches/4.0.X/ui/common/ui/pom.xml
branches/4.0.X/ui/core/api/pom.xml
branches/4.0.X/ui/core/pom.xml
branches/4.0.X/ui/core/ui/pom.xml
branches/4.0.X/ui/dist/pom.xml
branches/4.0.X/ui/dist/richfaces-components-api/pom.xml
branches/4.0.X/ui/dist/richfaces-components-ui/pom.xml
branches/4.0.X/ui/dnd/api/pom.xml
branches/4.0.X/ui/dnd/pom.xml
branches/4.0.X/ui/dnd/ui/pom.xml
branches/4.0.X/ui/input/api/pom.xml
branches/4.0.X/ui/input/pom.xml
branches/4.0.X/ui/input/ui/pom.xml
branches/4.0.X/ui/iteration/api/pom.xml
branches/4.0.X/ui/iteration/pom-tables.xml
branches/4.0.X/ui/iteration/pom.xml
branches/4.0.X/ui/iteration/ui/pom-list.xml
branches/4.0.X/ui/iteration/ui/pom.xml
branches/4.0.X/ui/misc/pom.xml
branches/4.0.X/ui/misc/ui/pom.xml
branches/4.0.X/ui/output/api/pom.xml
branches/4.0.X/ui/output/pom.xml
branches/4.0.X/ui/output/ui/pom.xml
branches/4.0.X/ui/parent/pom.xml
branches/4.0.X/ui/pom.xml
branches/4.0.X/ui/validator/api/pom.xml
branches/4.0.X/ui/validator/pom.xml
branches/4.0.X/ui/validator/ui/pom.xml
Log:
RF-10812 updated development version of 4.0.X to 4.0.1-SNAPSHOT
Modified: branches/4.0.X/archetypes/pom.xml
===================================================================
--- branches/4.0.X/archetypes/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/archetypes/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -30,7 +30,7 @@
<groupId>org.richfaces.archetypes</groupId>
<artifactId>archetypes-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RichFaces Archetypes: Aggregator</name>
Modified: branches/4.0.X/archetypes/rf-gae-sample/pom.xml
===================================================================
--- branches/4.0.X/archetypes/rf-gae-sample/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/archetypes/rf-gae-sample/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -12,7 +12,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.archetypes</groupId>
<artifactId>richfaces-archetype-gae</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>maven-archetype</packaging>
<name>RichFaces Archetypes: GAE Application</name>
Modified: branches/4.0.X/archetypes/richfaces-archetype-simpleapp/pom.xml
===================================================================
--- branches/4.0.X/archetypes/richfaces-archetype-simpleapp/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/archetypes/richfaces-archetype-simpleapp/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -11,7 +11,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.archetypes</groupId>
<artifactId>richfaces-archetype-simpleapp</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>maven-archetype</packaging>
<name>RichFaces Archetypes: Simple Application</name>
Modified: branches/4.0.X/archetypes/richfaces-component/pom.xml
===================================================================
--- branches/4.0.X/archetypes/richfaces-component/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/archetypes/richfaces-component/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -29,7 +29,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.archetypes</groupId>
<artifactId>richfaces-component</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>maven-archetype</packaging>
<name>RichFaces Archetypes: Component</name>
Modified: branches/4.0.X/archetypes/richfaces-component/readme.txt
===================================================================
--- branches/4.0.X/archetypes/richfaces-component/readme.txt 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/archetypes/richfaces-component/readme.txt 2011-03-27 14:42:19 UTC (rev 22320)
@@ -25,7 +25,7 @@
name : <name>
groupId : org.richfaces.ui.<category>
artifact : <category>-<name>
- version : 4.0.0-SNAPSHOT
+ version : 4.0.1-SNAPSHOT
TODO link to wiki page
TODO example with panels
\ No newline at end of file
Modified: branches/4.0.X/archetypes/richfaces-component/src/main/resources/META-INF/maven/archetype-metadata.xml
===================================================================
--- branches/4.0.X/archetypes/richfaces-component/src/main/resources/META-INF/maven/archetype-metadata.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/archetypes/richfaces-component/src/main/resources/META-INF/maven/archetype-metadata.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -36,7 +36,7 @@
<defaultValue>${category}-${name}</defaultValue>
</requiredProperty>
<requiredProperty key="version">
- <defaultValue>4.0.0-SNAPSHOT</defaultValue>
+ <defaultValue>4.0.1-SNAPSHOT</defaultValue>
</requiredProperty>
</requiredProperties>
Modified: branches/4.0.X/archetypes/richfaces-component-short/pom.xml
===================================================================
--- branches/4.0.X/archetypes/richfaces-component-short/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/archetypes/richfaces-component-short/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -29,7 +29,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.archetypes</groupId>
<artifactId>richfaces-component-short</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>maven-archetype</packaging>
<name>RichFaces Archetypes: Component Short</name>
Modified: branches/4.0.X/archetypes/richfaces-component-short/readme.txt
===================================================================
--- branches/4.0.X/archetypes/richfaces-component-short/readme.txt 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/archetypes/richfaces-component-short/readme.txt 2011-03-27 14:42:19 UTC (rev 22320)
@@ -16,7 +16,7 @@
name : <name>
groupId : org.richfaces.ui.<category>
artifact : <category>-<name>
- version : 4.0.0-SNAPSHOT
+ version : 4.0.1-SNAPSHOT
TODO link to wiki page
TODO example with panels
\ No newline at end of file
Modified: branches/4.0.X/archetypes/richfaces-component-short/src/main/resources/META-INF/maven/archetype-metadata.xml
===================================================================
--- branches/4.0.X/archetypes/richfaces-component-short/src/main/resources/META-INF/maven/archetype-metadata.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/archetypes/richfaces-component-short/src/main/resources/META-INF/maven/archetype-metadata.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -36,7 +36,7 @@
<defaultValue>${name}-ui</defaultValue>
</requiredProperty>
<requiredProperty key="version">
- <defaultValue>4.0.0-SNAPSHOT</defaultValue>
+ <defaultValue>4.0.1-SNAPSHOT</defaultValue>
</requiredProperty>
</requiredProperties>
Modified: branches/4.0.X/archetypes/richfaces-components-aggregator/pom.xml
===================================================================
--- branches/4.0.X/archetypes/richfaces-components-aggregator/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/archetypes/richfaces-components-aggregator/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -29,7 +29,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.archetypes</groupId>
<artifactId>richfaces-components-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>maven-archetype</packaging>
<name>RichFaces Archetypes: Components Aggregator</name>
Modified: branches/4.0.X/archetypes/richfaces-components-aggregator/readme.txt
===================================================================
--- branches/4.0.X/archetypes/richfaces-components-aggregator/readme.txt 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/archetypes/richfaces-components-aggregator/readme.txt 2011-03-27 14:42:19 UTC (rev 22320)
@@ -27,7 +27,7 @@
category : <category>
groupId : org.richfaces.ui.<category>
artifact : <category>-<name>
- version : 4.0.0-SNAPSHOT
+ version : 4.0.1-SNAPSHOT
TODO link to wiki page
TODO example with panels
\ No newline at end of file
Modified: branches/4.0.X/archetypes/richfaces-components-aggregator/src/main/resources/META-INF/maven/archetype-metadata.xml
===================================================================
--- branches/4.0.X/archetypes/richfaces-components-aggregator/src/main/resources/META-INF/maven/archetype-metadata.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/archetypes/richfaces-components-aggregator/src/main/resources/META-INF/maven/archetype-metadata.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -33,7 +33,7 @@
<defaultValue>${category}</defaultValue>
</requiredProperty>
<requiredProperty key="version">
- <defaultValue>4.0.0-SNAPSHOT</defaultValue>
+ <defaultValue>4.0.1-SNAPSHOT</defaultValue>
</requiredProperty>
</requiredProperties>
Modified: branches/4.0.X/bom/pom.xml
===================================================================
--- branches/4.0.X/bom/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/bom/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -18,7 +18,7 @@
<groupId>org.richfaces</groupId>
<artifactId>richfaces-bom</artifactId>
<packaging>pom</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>RichFaces BOM</name>
<parent>
Modified: branches/4.0.X/cdk/annotations/pom.xml
===================================================================
--- branches/4.0.X/cdk/annotations/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/annotations/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -4,12 +4,12 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.richfaces.cdk</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.cdk</groupId>
<artifactId>annotations</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<description>That project contains annotations for JSF classes</description>
<name>annotations</name>
<dependencies>
Modified: branches/4.0.X/cdk/attributes/pom.xml
===================================================================
--- branches/4.0.X/cdk/attributes/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/attributes/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -4,12 +4,12 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.richfaces.cdk</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.cdk</groupId>
<artifactId>attributes</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<description>That project contains JAXB bindings for model classes representing schema attributes data</description>
<name>attributes</name>
Modified: branches/4.0.X/cdk/commons/pom.xml
===================================================================
--- branches/4.0.X/cdk/commons/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/commons/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -4,12 +4,12 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.richfaces.cdk</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.cdk</groupId>
<artifactId>commons</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>commons</name>
<build>
<plugins>
Modified: branches/4.0.X/cdk/dist/pom.xml
===================================================================
--- branches/4.0.X/cdk/dist/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/dist/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -4,13 +4,13 @@
<parent>
<groupId>org.richfaces.cdk</groupId>
<artifactId>parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.cdk</groupId>
<artifactId>dist</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>JSF Components Development Kit (CDK) distribution assembly</name>
<!-- SCM and distribution management -->
Modified: branches/4.0.X/cdk/generator/pom.xml
===================================================================
--- branches/4.0.X/cdk/generator/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/generator/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -3,13 +3,13 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.richfaces.cdk</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.cdk</groupId>
<artifactId>generator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>Java Server Faces component generator</name>
Modified: branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedBehavior.java
===================================================================
--- branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedBehavior.java 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedBehavior.java 2011-03-27 14:42:19 UTC (rev 22320)
@@ -31,7 +31,7 @@
/**
*
**/
-@Generated({"RichFaces CDK", "4.0.0-SNAPSHOT"})
+@Generated({"RichFaces CDK", "4.0.1-SNAPSHOT"})
public class GeneratedBehavior extends Object implements Behavior, PartialStateHolder {
@Override
Modified: branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedComponent.java
===================================================================
--- branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedComponent.java 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedComponent.java 2011-03-27 14:42:19 UTC (rev 22320)
@@ -43,7 +43,7 @@
/**
*
**/
-@Generated({"RichFaces CDK", "4.0.0-SNAPSHOT"})
+@Generated({"RichFaces CDK", "4.0.1-SNAPSHOT"})
public class GeneratedComponent extends UIOutput
implements ClientBehaviorHolder
{
Modified: branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedConverter.java
===================================================================
--- branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedConverter.java 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedConverter.java 2011-03-27 14:42:19 UTC (rev 22320)
@@ -33,7 +33,7 @@
/**
*
**/
-@Generated({"RichFaces CDK", "4.0.0-SNAPSHOT"})
+@Generated({"RichFaces CDK", "4.0.1-SNAPSHOT"})
public class GeneratedConverter extends Object implements Converter, PartialStateHolder {
@Override
Modified: branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedValidator.java
===================================================================
--- branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedValidator.java 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/generator/src/test/resources/org/richfaces/cdk/generate/java/GeneratedValidator.java 2011-03-27 14:42:19 UTC (rev 22320)
@@ -32,7 +32,7 @@
/**
*
**/
-@Generated({"RichFaces CDK", "4.0.0-SNAPSHOT"})
+@Generated({"RichFaces CDK", "4.0.1-SNAPSHOT"})
public class GeneratedValidator extends Object implements Validator, PartialStateHolder {
@Override
Modified: branches/4.0.X/cdk/maven-cdk-plugin/pom.xml
===================================================================
--- branches/4.0.X/cdk/maven-cdk-plugin/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/maven-cdk-plugin/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -2,13 +2,13 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.richfaces.cdk</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.cdk</groupId>
<artifactId>maven-cdk-plugin</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<name>Maven plugin for JSF components code generation</name>
<dependencies>
Modified: branches/4.0.X/cdk/maven-cdk-plugin/src/it/annotated-component/pom.xml
===================================================================
--- branches/4.0.X/cdk/maven-cdk-plugin/src/it/annotated-component/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/maven-cdk-plugin/src/it/annotated-component/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -9,7 +9,7 @@
<plugin>
<groupId>org.richfaces.cdk</groupId>
<artifactId>maven-cdk-plugin</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<configuration>
</configuration>
<executions>
@@ -50,7 +50,7 @@
<dependency>
<groupId>org.richfaces.cdk</groupId>
<artifactId>annotations</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
Modified: branches/4.0.X/cdk/maven-cdk-plugin/src/it/renderer-template-test/pom.xml
===================================================================
--- branches/4.0.X/cdk/maven-cdk-plugin/src/it/renderer-template-test/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/maven-cdk-plugin/src/it/renderer-template-test/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -9,7 +9,7 @@
<plugin>
<groupId>org.richfaces.cdk</groupId>
<artifactId>maven-cdk-plugin</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<configuration>
</configuration>
<executions>
@@ -72,12 +72,12 @@
<dependency>
<groupId>org.richfaces.cdk</groupId>
<artifactId>annotations</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-commons</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
Modified: branches/4.0.X/cdk/maven-cdk-plugin/src/it/xml-configured-component/pom.xml
===================================================================
--- branches/4.0.X/cdk/maven-cdk-plugin/src/it/xml-configured-component/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/maven-cdk-plugin/src/it/xml-configured-component/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -10,7 +10,7 @@
<plugin>
<groupId>org.richfaces.cdk</groupId>
<artifactId>maven-cdk-plugin</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<configuration>
</configuration>
<executions>
@@ -47,7 +47,7 @@
<dependency>
<groupId>org.richfaces.cdk</groupId>
<artifactId>annotations</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
Modified: branches/4.0.X/cdk/maven-javascript-plugin/pom.xml
===================================================================
--- branches/4.0.X/cdk/maven-javascript-plugin/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/maven-javascript-plugin/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.richfaces.cdk</groupId>
<artifactId>maven-plugins</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<groupId>org.richfaces.cdk</groupId>
Modified: branches/4.0.X/cdk/maven-resources-plugin/pom.xml
===================================================================
--- branches/4.0.X/cdk/maven-resources-plugin/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/maven-resources-plugin/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -4,13 +4,13 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.richfaces.cdk</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.cdk</groupId>
<artifactId>maven-resources-plugin</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<name>maven-resources-plugin</name>
<description>Maven plugin for packaging resources with web application</description>
Modified: branches/4.0.X/cdk/maven-resources-plugin/src/it/richfaces-application/pom.xml
===================================================================
--- branches/4.0.X/cdk/maven-resources-plugin/src/it/richfaces-application/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/maven-resources-plugin/src/it/richfaces-application/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -11,7 +11,7 @@
<plugin>
<groupId>org.richfaces.cdk</groupId>
<artifactId>maven-resources-plugin</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<configuration>
</configuration>
<executions>
@@ -75,7 +75,7 @@
<dependency>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-components-ui</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
Modified: branches/4.0.X/cdk/parent/pom.xml
===================================================================
--- branches/4.0.X/cdk/parent/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/parent/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -5,7 +5,7 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
@@ -13,7 +13,7 @@
<groupId>org.richfaces.cdk</groupId>
<artifactId>parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>JSF Components Development Kit (CDK)</name>
Modified: branches/4.0.X/cdk/pom.xml
===================================================================
--- branches/4.0.X/cdk/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -11,7 +11,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.cdk</groupId>
<artifactId>aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>JSF Components Development Kit (CDK)</name>
<properties>
Modified: branches/4.0.X/cdk/xinclude/pom.xml
===================================================================
--- branches/4.0.X/cdk/xinclude/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/cdk/xinclude/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -22,13 +22,13 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.richfaces.cdk</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.cdk</groupId>
<artifactId>xinclude</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>Cocoon 3: xinclude transformer</name>
<description>Cocoon 3 xinclude transformer with Xpointer scheme support.</description>
Modified: branches/4.0.X/core/api/pom.xml
===================================================================
--- branches/4.0.X/core/api/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/core/api/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/core/impl/pom.xml
===================================================================
--- branches/4.0.X/core/impl/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/core/impl/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -20,7 +20,7 @@
<parent>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/core/impl/src/main/java/org/richfaces/VersionBean.java
===================================================================
--- branches/4.0.X/core/impl/src/main/java/org/richfaces/VersionBean.java 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/core/impl/src/main/java/org/richfaces/VersionBean.java 2011-03-27 14:42:19 UTC (rev 22320)
@@ -64,7 +64,7 @@
private String implementationVendor = UNKNOWN;
//TODO nick - default value for manifest file absense - review
- private String implementationVersion = "4.0.0-SNAPSHOT";
+ private String implementationVersion = "4.0.1-SNAPSHOT";
private String implementationTitle = UNKNOWN;
Modified: branches/4.0.X/core/legacy-tests/pom.xml
===================================================================
--- branches/4.0.X/core/legacy-tests/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/core/legacy-tests/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -2,12 +2,12 @@
<parent>
<artifactId>framework</artifactId>
<groupId>org.richfaces</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-test</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>Ajax4Jsf test framework</name>
<url>https://ajax4jsf.dev.java.net</url>
<dependencies>
@@ -42,7 +42,7 @@
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-impl</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
Modified: branches/4.0.X/core/parent/pom.xml
===================================================================
--- branches/4.0.X/core/parent/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/core/parent/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -23,13 +23,13 @@
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-parent</artifactId>
<packaging>pom</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>RichFaces Core Parent</name>
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/core/pom.xml
===================================================================
--- branches/4.0.X/core/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/core/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -29,7 +29,7 @@
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RichFaces Core Aggregator</name>
Modified: branches/4.0.X/dist/pom.xml
===================================================================
--- branches/4.0.X/dist/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/dist/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -24,13 +24,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-distribution</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Richfaces Distribution Assembler</name>
Modified: branches/4.0.X/examples/core-demo/pom.xml
===================================================================
--- branches/4.0.X/examples/core-demo/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/examples/core-demo/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -24,14 +24,14 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>core-demo</artifactId>
<packaging>war</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>RichFaces Examples: Core</name>
<properties>
Modified: branches/4.0.X/examples/dnd-demo/pom.xml
===================================================================
--- branches/4.0.X/examples/dnd-demo/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/examples/dnd-demo/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
@@ -12,7 +12,7 @@
<groupId>org.richfaces.examples</groupId>
<artifactId>dnd-demo</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>Richfaces Examples: DND</name>
<packaging>war</packaging>
Modified: branches/4.0.X/examples/input-demo/pom.xml
===================================================================
--- branches/4.0.X/examples/input-demo/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/examples/input-demo/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
@@ -12,7 +12,7 @@
<groupId>org.richfaces.examples</groupId>
<artifactId>input-demo</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>Richfaces Examples: Inputs</name>
<packaging>war</packaging>
Modified: branches/4.0.X/examples/irc-client/pom.xml
===================================================================
--- branches/4.0.X/examples/irc-client/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/examples/irc-client/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -6,14 +6,14 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>irc-client</artifactId>
<name>Richfaces Examples: Richfaces IRC Client Application</name>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<url>http://jboss.org/richfaces</url>
Modified: branches/4.0.X/examples/iteration-demo/pom.xml
===================================================================
--- branches/4.0.X/examples/iteration-demo/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/examples/iteration-demo/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -24,14 +24,14 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>iteration-demo</artifactId>
<packaging>war</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>RichFaces Examples: Iteration</name>
<properties>
Modified: branches/4.0.X/examples/misc-demo/pom.xml
===================================================================
--- branches/4.0.X/examples/misc-demo/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/examples/misc-demo/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -24,13 +24,13 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>misc-demo</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>RichFaces Examples: Miscellanous</name>
Modified: branches/4.0.X/examples/output-demo/pom.xml
===================================================================
--- branches/4.0.X/examples/output-demo/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/examples/output-demo/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
@@ -12,7 +12,7 @@
<groupId>org.richfaces.examples</groupId>
<artifactId>output-demo</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>Richfaces Examples: Outputs</name>
<packaging>war</packaging>
Modified: branches/4.0.X/examples/parent/pom.xml
===================================================================
--- branches/4.0.X/examples/parent/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/examples/parent/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -29,7 +29,7 @@
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RichFaces Examples Parent</name>
Modified: branches/4.0.X/examples/pom.xml
===================================================================
--- branches/4.0.X/examples/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/examples/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -34,7 +34,7 @@
<groupId>org.richfaces.examples</groupId>
<artifactId>examples-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RichFaces Examples: Aggregator</name>
Modified: branches/4.0.X/examples/push-demo/pom.xml
===================================================================
--- branches/4.0.X/examples/push-demo/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/examples/push-demo/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -24,14 +24,14 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>push-demo</artifactId>
<packaging>war</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>RichFaces Examples: Push</name>
<properties>
Modified: branches/4.0.X/examples/repeater-demo/pom.xml
===================================================================
--- branches/4.0.X/examples/repeater-demo/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/examples/repeater-demo/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -25,14 +25,14 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>repeater-demo</artifactId>
<packaging>war</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>Richfaces Examples: Repeater</name>
<properties>
Modified: branches/4.0.X/examples/richfaces-showcase/pom.xml
===================================================================
--- branches/4.0.X/examples/richfaces-showcase/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/examples/richfaces-showcase/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -7,13 +7,13 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-showcase</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>Richfaces Examples: Richfaces Showcase Application</name>
Modified: branches/4.0.X/examples/template/pom.xml
===================================================================
--- branches/4.0.X/examples/template/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/examples/template/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -3,14 +3,14 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.examples</groupId>
<artifactId>template</artifactId>
<packaging>war</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>examples template</name>
<dependencies>
<dependency>
Modified: branches/4.0.X/examples/validator-demo/pom.xml
===================================================================
--- branches/4.0.X/examples/validator-demo/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/examples/validator-demo/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
@@ -12,7 +12,7 @@
<groupId>org.richfaces.examples</groupId>
<artifactId>validator-demo</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>Richfaces Examples: Validators</name>
<packaging>war</packaging>
@@ -45,7 +45,7 @@
<dependency>
<groupId>org.richfaces.examples</groupId>
<artifactId>template</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
Modified: branches/4.0.X/parent/pom.xml
===================================================================
--- branches/4.0.X/parent/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/parent/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -18,13 +18,13 @@
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
<packaging>pom</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>RichFaces Root Parent</name>
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-bom</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../bom/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/pom.xml
===================================================================
--- branches/4.0.X/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -12,7 +12,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Richfaces Aggregator</name>
Modified: branches/4.0.X/ui/common/api/pom.xml
===================================================================
--- branches/4.0.X/ui/common/api/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/common/api/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/common/pom.xml
===================================================================
--- branches/4.0.X/ui/common/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/common/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.common</groupId>
<artifactId>richfaces-ui-common-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Richfaces UI Components: Common Aggregator</name>
Modified: branches/4.0.X/ui/common/ui/pom.xml
===================================================================
--- branches/4.0.X/ui/common/ui/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/common/ui/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -26,7 +26,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/core/api/pom.xml
===================================================================
--- branches/4.0.X/ui/core/api/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/core/api/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -20,7 +20,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/core/pom.xml
===================================================================
--- branches/4.0.X/ui/core/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/core/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.core</groupId>
<artifactId>richfaces-ui-core-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Richfaces UI Components: Core Aggregator</name>
Modified: branches/4.0.X/ui/core/ui/pom.xml
===================================================================
--- branches/4.0.X/ui/core/ui/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/core/ui/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -23,7 +23,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/dist/pom.xml
===================================================================
--- branches/4.0.X/ui/dist/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/dist/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -22,13 +22,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-assembler</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Richfaces UI Assembler</name>
Modified: branches/4.0.X/ui/dist/richfaces-components-api/pom.xml
===================================================================
--- branches/4.0.X/ui/dist/richfaces-components-api/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/dist/richfaces-components-api/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -24,13 +24,13 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-components-api</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Richfaces UI Components API</name>
Modified: branches/4.0.X/ui/dist/richfaces-components-ui/pom.xml
===================================================================
--- branches/4.0.X/ui/dist/richfaces-components-ui/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/dist/richfaces-components-ui/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -24,13 +24,13 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-components-ui</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Richfaces UI Components UI</name>
Modified: branches/4.0.X/ui/dnd/api/pom.xml
===================================================================
--- branches/4.0.X/ui/dnd/api/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/dnd/api/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -26,7 +26,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/dnd/pom.xml
===================================================================
--- branches/4.0.X/ui/dnd/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/dnd/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.dnd</groupId>
<artifactId>richfaces-ui-dnd-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Richfaces UI Components: Drag-n-Drop Aggregator</name>
Modified: branches/4.0.X/ui/dnd/ui/pom.xml
===================================================================
--- branches/4.0.X/ui/dnd/ui/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/dnd/ui/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -26,7 +26,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/input/api/pom.xml
===================================================================
--- branches/4.0.X/ui/input/api/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/input/api/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/input/pom.xml
===================================================================
--- branches/4.0.X/ui/input/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/input/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.input</groupId>
<artifactId>richfaces-ui-input-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Richfaces UI Components: Input Aggregator</name>
Modified: branches/4.0.X/ui/input/ui/pom.xml
===================================================================
--- branches/4.0.X/ui/input/ui/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/input/ui/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -26,7 +26,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/iteration/api/pom.xml
===================================================================
--- branches/4.0.X/ui/iteration/api/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/iteration/api/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/iteration/pom-tables.xml
===================================================================
--- branches/4.0.X/ui/iteration/pom-tables.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/iteration/pom-tables.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -26,7 +26,7 @@
<parent>
<groupId>org.richfaces.ui.iteration</groupId>
<artifactId>richfaces-ui-iteration-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/iteration/pom.xml
===================================================================
--- branches/4.0.X/ui/iteration/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/iteration/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.iteration</groupId>
<artifactId>richfaces-ui-iteration-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Richfaces UI Components: Iteration Aggregator</name>
Modified: branches/4.0.X/ui/iteration/ui/pom-list.xml
===================================================================
--- branches/4.0.X/ui/iteration/ui/pom-list.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/iteration/ui/pom-list.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.richfaces.ui.iteration</groupId>
<artifactId>lists-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/iteration/ui/pom.xml
===================================================================
--- branches/4.0.X/ui/iteration/ui/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/iteration/ui/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -26,7 +26,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/misc/pom.xml
===================================================================
--- branches/4.0.X/ui/misc/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/misc/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.misc</groupId>
<artifactId>richfaces-ui-misc-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Richfaces UI Components: Miscellanous Aggregator</name>
Modified: branches/4.0.X/ui/misc/ui/pom.xml
===================================================================
--- branches/4.0.X/ui/misc/ui/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/misc/ui/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -24,13 +24,13 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.misc</groupId>
<artifactId>richfaces-ui-misc-ui</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Richfaces UI Misc UI</name>
Modified: branches/4.0.X/ui/output/api/pom.xml
===================================================================
--- branches/4.0.X/ui/output/api/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/output/api/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/output/pom.xml
===================================================================
--- branches/4.0.X/ui/output/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/output/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.output</groupId>
<artifactId>richfaces-ui-output-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Richfaces UI Components: Output Aggregator</name>
Modified: branches/4.0.X/ui/output/ui/pom.xml
===================================================================
--- branches/4.0.X/ui/output/ui/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/output/ui/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -26,7 +26,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/parent/pom.xml
===================================================================
--- branches/4.0.X/ui/parent/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/parent/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>Richfaces UI Components Parent</name>
<packaging>pom</packaging>
Modified: branches/4.0.X/ui/pom.xml
===================================================================
--- branches/4.0.X/ui/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -31,7 +31,7 @@
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RichFaces UI: Aggregator</name>
Modified: branches/4.0.X/ui/validator/api/pom.xml
===================================================================
--- branches/4.0.X/ui/validator/api/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/validator/api/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: branches/4.0.X/ui/validator/pom.xml
===================================================================
--- branches/4.0.X/ui/validator/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/validator/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.validator</groupId>
Modified: branches/4.0.X/ui/validator/ui/pom.xml
===================================================================
--- branches/4.0.X/ui/validator/ui/pom.xml 2011-03-27 13:54:37 UTC (rev 22319)
+++ branches/4.0.X/ui/validator/ui/pom.xml 2011-03-27 14:42:19 UTC (rev 22320)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
13 years, 9 months
JBoss Rich Faces SVN: r22319 - in branches/4.0.X: core/api/src/main and 17 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: jbalunas(a)redhat.com
Date: 2011-03-27 09:54:37 -0400 (Sun, 27 Mar 2011)
New Revision: 22319
Added:
branches/4.0.X/core/api/src/main/java/org/richfaces/application/Initializable.java
branches/4.0.X/core/api/src/main/javadoc/
branches/4.0.X/core/api/src/main/javadoc/org/
branches/4.0.X/core/api/src/main/javadoc/org/richfaces/
branches/4.0.X/core/api/src/main/javadoc/org/richfaces/application/
branches/4.0.X/core/api/src/main/javadoc/org/richfaces/application/services.png
branches/4.0.X/core/api/src/main/javadoc/org/richfaces/application/services.uxf
Removed:
branches/4.0.X/core/api/src/main/java/org/ajax4jsf/javascript/AjaxSubmitFunction.java
branches/4.0.X/core/api/src/main/java/org/ajax4jsf/javascript/JSBind.java
branches/4.0.X/core/api/src/main/java/org/richfaces/component/TemplateComponent.java
branches/4.0.X/core/api/src/main/java/org/richfaces/event/
branches/4.0.X/core/api/src/main/java/org/richfaces/skin/SkinConfiguration.java
branches/4.0.X/core/impl/src/main/java/org/ajax4jsf/context/
branches/4.0.X/core/impl/src/main/java/org/ajax4jsf/package-info.java
branches/4.0.X/core/impl/src/main/java/org/richfaces/application/Initializable.java
branches/4.0.X/core/impl/src/main/java/org/richfaces/component/util/
branches/4.0.X/core/impl/src/main/java/org/richfaces/context/AttributesContext.java
branches/4.0.X/core/impl/src/main/java/org/richfaces/event/
branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/AttributeParametersEncoder.java
branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/Expression.java
branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/ScriptOptions.java
branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/ScriptOptionsContributor.java
branches/4.0.X/core/impl/src/main/java/org/richfaces/skin/DummySkinConfiguration.java
Modified:
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Alias.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Attribute.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Description.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Event.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/EventName.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Facet.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Function.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfBehavior.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfBehaviorRenderer.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfComponent.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfConverter.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfRenderer.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfValidator.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/RendererSpecificComponent.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Tag.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/TagLibrary.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/TagType.java
branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/package-info.java
branches/4.0.X/core/api/src/main/java/org/richfaces/application/Module.java
branches/4.0.X/core/api/src/main/java/org/richfaces/application/ServiceException.java
branches/4.0.X/core/api/src/main/java/org/richfaces/application/ServiceTracker.java
branches/4.0.X/core/api/src/main/java/org/richfaces/application/ServicesFactory.java
branches/4.0.X/core/api/src/main/java/org/richfaces/cache/CacheFactory.java
Log:
RF-10785 merge from /trunk --> 4.0.X
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Alias.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Alias.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Alias.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -28,7 +28,7 @@
/**
* <p class="changed_added_4_0">
- * Attribute aliases. CDK will generate getters/setters for these aliases which delegate calls to the original attribute
+ * Attribute aliases. CDK will generate getter and setter methods for these aliases which delegate calls to the original attribute
* methods.
* </p>
*
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Attribute.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Attribute.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Attribute.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -29,8 +29,12 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.el.MethodBinding;
+
/**
- * <p class="changed_added_4_0">
+ * <p class="changed_added_4_0">Used to define Java class field or bean property getter method as JSF attribute.
+ * It used on the abstract method, all necessary code for attribute, including state save/restore code, will be generated by CDK.
* </p>
*
* @author asmirnov(a)exadel.com
@@ -42,7 +46,7 @@
public @interface Attribute {
/**
- * <p class="changed_added_4_0">
+ * <p class="changed_added_4_0">Restricts attribute to literal values only ( no EL expressions ).
* </p>
*
* @return
@@ -50,7 +54,7 @@
boolean literal() default false;
/**
- * <p class="changed_added_4_0">
+ * <p class="changed_added_4_0">Tells CDK to not include attribute in the VDL tag.
* </p>
*
* @return
@@ -58,7 +62,7 @@
boolean hidden() default false;
/**
- * <p class="changed_added_4_0">
+ * <p class="changed_added_4_0">Marks attribute as read-only ( no setter method ).
* </p>
*
* @return
@@ -68,26 +72,59 @@
// boolean transient() default false;
/**
- * <p class="changed_added_4_0">
+ * <p class="changed_added_4_0">If true, attribute used as pass through html attribue, eg. rendered directly into html
+ * without any transformations.
* </p>
*
* @return
*/
boolean passThrough() default false;
+ /**
+ * <p class="changed_added_4_0">Marks attribute as required. Generated tag handler should check its presence.</p>
+ * @return
+ */
boolean required() default false;
+ /**
+ * <p class="changed_added_4_0">Tells CDK to generate getter and setter for attribute.</p>
+ * @return
+ */
boolean generate() default true;
+ /**
+ * <p class="changed_added_4_0">Attribute default value. Should be valid Java code that can be used in field initialiser of function call.</p>
+ * @return
+ */
String defaultValue() default "";
+ /**
+ * <p class="changed_added_4_0">Used by IDE to suggest attribute value.</p>
+ * @return
+ */
String suggestedValue() default "";
+ /**
+ * <p class="changed_added_4_0">Attribute description to include in generated faces-config.xml and taglibs.</p>
+ * @return
+ */
Description description() default @Description();
+ /**
+ * <p class="changed_added_4_0">Method signature for attributes with EL method reference type, either {@link MethodBinding} or {@link MethodExpression}.</p>
+ * @return
+ */
Signature signature() default @Signature(returnType=Signature.NONE.class);
+ /**
+ * <p class="changed_added_4_0">Event descriptions for {@link ClientBehavior} binding.</p>
+ * @return
+ */
EventName[] events() default {};
+ /**
+ * <p class="changed_added_4_0">Attribute aliases.</p>
+ * @return
+ */
Alias[] aliases() default {};
}
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Description.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Description.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Description.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -25,7 +25,7 @@
/**
* <p class="changed_added_4_0">
- * Description used that would be used in IDE to display.
+ * Object or attribute description. Included into generated faces-config.xml or tag library, so it can be used by IDE.
* </p>
*
* @author asmirnov(a)exadel.com
@@ -35,7 +35,7 @@
public static final String NAME = "org.richfaces.cdk.annotations.Description";
/**
- * <p class="changed_added_4_0">Long description of the object.</p>
+ * <p class="changed_added_4_0">Long description of the object. If omited, javadoc comment for associated Java element.</p>
* @return
*/
public String value() default "";
@@ -50,7 +50,7 @@
/**
* <p class="changed_added_4_0">
- * URL that defines IDE icon.
+ * URL that defines small IDE icon.
* </p>
*
* @return Description url.
@@ -58,7 +58,9 @@
public String smallIcon() default "";
/**
- * <p class="changed_added_4_0"></p>
+ * <p class="changed_added_4_0">
+ * URL that defines large IDE icon.
+ * </p>
* @return
*/
public String largeIcon() default "";
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Event.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Event.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Event.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -38,7 +38,7 @@
* <ul>
* <li>Event listener interface</li>
* <li>Event source interface</li>
- * <li>Event tag handler and binding wrapper.</li>
+ * <li>Listener tag handler and wrapper to bind listener to the EL-expression.</li>
* </ul>
* </p>
*
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/EventName.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/EventName.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/EventName.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -29,8 +29,10 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import javax.faces.component.behavior.ClientBehavior;
+
/**
- * <p class="changed_added_4_0">
+ * <p class="changed_added_4_0">Description of client-side event that can be associated with {@link ClientBehavior}.
* </p>
*
* @author asmirnov(a)exadel.com
@@ -42,7 +44,7 @@
public @interface EventName {
/**
- * <p class="changed_added_4_0">
+ * <p class="changed_added_4_0">Event name ( click,change,mouseover ... ).
* </p>
*
* @return
@@ -50,7 +52,7 @@
public String value() default "";
/**
- * <p class="changed_added_4_0">
+ * <p class="changed_added_4_0">Defines default event. There should be only one default event per component.
* </p>
*
* @return
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Facet.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Facet.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Facet.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -29,8 +29,10 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import javax.faces.component.UIComponent;
+
/**
- * <p class="changed_added_4_0">
+ * <p class="changed_added_4_0">Describes facet of {@link UIComponent}.
* </p>
*
* @author asmirnov(a)exadel.com
@@ -50,19 +52,19 @@
* @return
*/
/**
- * <p class="changed_added_4_0"></p>
+ * <p class="changed_added_4_0">Facet name</p>
* @return
*/
String name() default "";
/**
- * <p class="changed_added_4_0"></p>
+ * <p class="changed_added_4_0">If true, getter and setter methods for this facet will be generated.</p>
* @return
*/
boolean generate() default true;
/**
- * <p class="changed_added_4_0"></p>
+ * <p class="changed_added_4_0">Facet description.</p>
* @return
*/
Description description() default @Description;
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Function.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Function.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Function.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -40,13 +40,13 @@
public Description description() default @Description();
/**
- * <p class="changed_added_4_0">Function n</p>
+ * <p class="changed_added_4_0">EL-function name</p>
* @return
*/
public String name() default "";
/**
- * <p class="changed_added_4_0">Tag library for include given function</p>
+ * <p class="changed_added_4_0">Tag library for which given function will be included.</p>
* @return
*/
public TagType type() default TagType.Facelets;
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfBehavior.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfBehavior.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfBehavior.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -28,8 +28,13 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.convert.Converter;
+
/**
* <p class="changed_added_4_0">
+ * This annotation defines concrete class as JSF {@link ClientBehavior}, or abstract class as the base for generated
+ * Behavior implementation.
* </p>
*
* @author asmirnov(a)exadel.com
@@ -50,10 +55,28 @@
*/
public String id() default "";
+ /**
+ * <p class="changed_added_4_0">
+ * fully qualified class name of the generated Behavior implementation. Default value means nothing to genrate from concrete class,
+ * or infer name by convention for abstract class.</p>
+ * </p>
+ * @return
+ */
public String generate() default "";
+ /**
+ * <p class="changed_added_4_0">
+ * Tag description. If generated tags require special handlers, provide separate description for every type of tag, JSP and Facelets.
+ * Otherwise, the only one tag tag description with name and type {@link TagType#All}.
+ * </p>
+ * @return
+ */
public Tag[] tag() default {};
+ /**
+ * <p class="changed_added_4_0">Renderer associated with generated {@link ClientBehavior}</p>
+ * @return
+ */
public JsfBehaviorRenderer renderer() default @JsfBehaviorRenderer();
/**
* <p class="changed_added_4_0">
@@ -67,11 +90,10 @@
/**
* <p class="changed_added_4_0">
- * defines fragments of faces-config.xml that contain standard attribute definitions. CDK also tries to read
- * META-INF/cdk/attributes/[classname].xml file for all component superclasses and interfaces, therefore it is not
- * necessary to explicit include definitions for UIComponent and any other standard JSF classes. CDK defines couple
- * of its own "urn" namespaces: "urn:resource:" for classpath resources, "urn:config:" for for project configuration
- * folder and "urn:attributes:" for META-INF/cdk/attributes/ in the annotations library.
+ * Defines file names for fragment of faces-config.xml that contain standard attribute definitions. All names relative to the
+ * META-INF/cdk/attributes/ folder in classpath. CDK also tries to read
+ * META-INF/cdk/attributes/[classname].xml file for all component superclasses and interfaces. Therefore, it is not
+ * necessary to explicitly include definitions for Converter and any other standard JSF classes.
* </p>
*
* @return
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfBehaviorRenderer.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfBehaviorRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfBehaviorRenderer.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -28,10 +28,14 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.render.ClientBehaviorRenderer;
+import javax.faces.render.RenderKit;
import javax.faces.render.RenderKitFactory;
/**
- * <p class="changed_added_4_0"></p>
+ * <p class="changed_added_4_0">Defines annotated class as JSF {@link ClientBehaviorRenderer}, or, if used in the {@link JsfBehavior} annotation,
+ * defines renderer type for {@link ClientBehavior}.</p>
* @author asmirnov(a)exadel.com
*
*/
@@ -39,12 +43,28 @@
@Target(ElementType.TYPE)
public @interface JsfBehaviorRenderer {
+ /**
+ * <p class="changed_added_4_0">ClientBehavior renderer type.</p>
+ * @return
+ */
public String type() default "";
+ /**
+ * <p class="changed_added_4_0">Defines {@link RenderKit} for which generated renderer is belong to.</p>
+ * @return
+ */
public String renderKitId() default RenderKitFactory.HTML_BASIC_RENDER_KIT;
+ /**
+ * <p class="changed_added_4_0">Fully qualified class name of the generated renderer class.</p>
+ * @return
+ */
public String generate() default "";
+ /**
+ * <p class="changed_added_4_0">Renderer description to include into generated faces-config.xml</p>
+ * @return
+ */
public Description description() default @Description();
}
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfComponent.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfComponent.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfComponent.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -28,15 +28,12 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-import javax.faces.event.FacesEvent;
/**
* <p class="changed_added_4_0">
* That annotation marks class as JSF component. The difference with JSF 2.0 @
- * {@link javax.faces.component.FacesComponent} annotation is what this one could marks abstaract class from which a
- * real UI-component implementation will be generated. The value of default {@link #type()} attribute is taken to be
- * <em>component type</em>. The fully qualified class name becomes a component class unless that class is abstract or
- * final component class is defined by the {@link #generate()} attribute value.
+ * {@link javax.faces.component.FacesComponent} annotation is what this one could marks abstract class from which a
+ * real UI-component implementation will be generated.
* </p>
*
* @author asmirnov(a)exadel.com
@@ -47,25 +44,18 @@
/**
* <p class="changed_added_4_0">
- * Annotation class name to use as key for annotation processor class.
+ * Annotation class name to use as key in the annotation processor.
* </p>
*/
public static final String NAME = "org.richfaces.cdk.annotations.JsfComponent";
- /**
- * <p class="changed_added_4_0">
- * Excplicitly disable component generation
- * </p>
- */
- public static final String DISABLED = "##DISABLED";
/**
* <p class="changed_added_4_0">
- * Type of the component. This is mandatory parameter because CDK uses <em>component-type</em> as primary key for
- * components library model.
+ * Type of the JSF component.
* </p>
- * <p class="todo">
- * TODO if this value is an empty, component type will be inferred from class name.
+ * <p class="naming">
+ * if this value is an empty, component type would be inferred from class name.
* </p>
*
* @return component type.
@@ -74,7 +64,7 @@
/**
* <p class="changed_added_4_0">
- * Component famili. If this attribute was empty, it is inferred from the COMPONENT_FAMILY constant or by naming
+ * Component family. For default value, it could be got from the COMPONENT_FAMILY constant or by inferred naming
* conventions.
* </p>
*
@@ -84,7 +74,8 @@
/**
* <p class="changed_added_4_0">
- * Name of the generated component implementation class.
+ * Name of the generated component implementation class. Default value means nothing to genrate from concrete class,
+ * or infer name by convention for abstract class.
* </p>
*
* @return
@@ -93,7 +84,7 @@
/**
* <p class="changed_added_4_0">
- * Description used by IDE.
+ * Component description to include into generated faces-config and taglib.
* </p>
*
* @return
@@ -102,7 +93,7 @@
/**
* <p class="changed_added_4_0">
- * Cenerated Junit test.
+ * Junit test description. Isn't used in RichFaces 4.0, reserved for future releases.
* </p>
*
* @return
@@ -120,7 +111,8 @@
/**
* <p class="changed_added_4_0">
- * View Description Language, JSP or Facelets, tags.
+ * Tag description. If generated tags require special handlers, provide separate description for every type of tag, JSP and Facelets.
+ * Otherwise, the only one tag tag description with name and type {@link TagType#All}.
* </p>
*
* @return
@@ -129,7 +121,7 @@
/**
* <p class="changed_added_4_0">
- * Events fired by the component.
+ * @{link FacesEvent}s fired by the component.
* </p>
*
* @return
@@ -147,11 +139,10 @@
/**
* <p class="changed_added_4_0">
- * defines fragments of faces-config.xml that contain standard attribute definitions. CDK also tries to read
- * META-INF/cdk/attributes/[classname].xml file for all component superclasses and interfaces, therefore it is not
- * necessary to explicit include definitions for UIComponent and any other standard JSF classes. CDK defines couple
- * of its own "urn" namespaces: "urn:resource:" for classpath resources, "urn:config:" for for project configuration
- * folder and "urn:attributes:" for META-INF/cdk/attributes/ in the annotations library.
+ * Defines file names for fragment of faces-config.xml that contain standard attribute definitions. All names relative to the
+ * META-INF/cdk/attributes/ folder in classpath. CDK also tries to read
+ * META-INF/cdk/attributes/[classname].xml file for all component superclasses and interfaces. Therefore, it is not
+ * necessary to explicitly include definitions for UIComponent and any other standard JSF classes.
* </p>
*
* @return
@@ -160,7 +151,7 @@
/**
* <p class="changed_added_4_0">
- * Interfaces that should be implemented in the generated component class. CDK processes all {@link Attribute} and
+ * Interfaces that should be implemented by the generated component class. CDK processes all {@link Attribute} and
* {@link Facet} annotations in these interfaces
* </p>
*
@@ -169,7 +160,9 @@
public Class<?>[] interfaces() default {};
/**
- * <p class="changed_added_4_0"></p>
+ * <p class="changed_added_4_0">Defines third-level renderer specific components. Used to generate a whole family of similar components.
+ * For example, {@link javax.faces.component.UIComponentBase} provides {@link javax.faces.component.UICommand} subclass for all command components, and {@link javax.faces.component.html.HtmlCommandLink} with {@link javax.faces.component.HtmlCommandButton} are
+ * renderer-specific components for links and buttons.</p>
* @return
*/
public RendererSpecificComponent[] components() default {};
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfConverter.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfConverter.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfConverter.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -28,8 +28,12 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import javax.faces.convert.Converter;
+
/**
* <p class="changed_added_4_0">
+ * This annotation defines concrete class as JSF {@link Converter}, or abstract class as the base for generated
+ * Converter implementation.
* </p>
*
* @author asmirnov(a)exadel.com
@@ -38,47 +42,83 @@
@Target(ElementType.TYPE)
public @interface JsfConverter {
+ /**
+ * <p class="changed_added_4_0">Default value for {@link #forClass} attribute.</p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+ public static final class NONE {
+ }
+
public static final String NAME = "org.richfaces.cdk.annotations.JsfConverter";
+ /**
+ * <p class="changed_added_4_0">
+ * The "converter-id" element represents the identifier under which the corresponding Converter class should be
+ * registered.
+ * </p>
+ *
+ * @return converter-id
+ */
public String id() default "";
+ /**
+ * <p class="changed_added_4_0">
+ * represents the class for which a Converter class will be registered.
+ * </p>
+ *
+ * @return
+ */
public Class<?> forClass() default NONE.class;
-
+ /**
+ * <p class="changed_added_4_0">
+ * fully qualified class name of the generated Converter implementation. Default value means nothing to genrate from concrete class,
+ * or infer name by convention for abstract class.</p>
+ * @return
+ */
public String generate() default "";
/**
* <p class="changed_added_4_0">
- * Description used by IDE.
+ * Converter description to include into generated faces-config and taglib.
* </p>
*
* @return
*/
public Description description() default @Description();
+ /**
+ * <p class="changed_added_4_0">
+ * Tag description. If generated tags require special handlers, provide separate description for every type of tag, JSP and Facelets.
+ * Otherwise, the only one tag tag description with name and type {@link TagType#All}.
+ * </p>
+ *
+ * @return
+ */
public Tag[] tag() default {};
-
- public static final class NONE {}
+
/**
* <p class="changed_added_4_0">
- * defines fragments of faces-config.xml that contain standard attribute definitions. CDK also tries to read
- * META-INF/cdk/attributes/[classname].xml file for all component superclasses and interfaces, therefore it is not
- * necessary to explicit include definitions for UIComponent and any other standard JSF classes. CDK defines couple
- * of its own "urn" namespaces: "urn:resource:" for classpath resources, "urn:config:" for for project configuration
- * folder and "urn:attributes:" for META-INF/cdk/attributes/ in the annotations library.
+ * Defines file names for fragment of faces-config.xml that contain standard attribute definitions. All names relative to the
+ * META-INF/cdk/attributes/ folder in classpath. CDK also tries to read
+ * META-INF/cdk/attributes/[classname].xml file for all component superclasses and interfaces. Therefore, it is not
+ * necessary to explicitly include definitions for Converter and any other standard JSF classes.
* </p>
*
* @return
*/
public String[] attributes() default {};
+
/**
* <p class="changed_added_4_0">
- * Interfaces that should be implemented in the generated class. CDK processes all {@link Attribute} annotations in these interfaces
+ * Interfaces that should be implemented in the generated class. CDK processes all {@link Attribute} annotations in
+ * these interfaces
* </p>
*
* @return
*/
public Class<?>[] interfaces() default {};
-
+
}
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfRenderer.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfRenderer.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -32,7 +32,8 @@
/**
* <p class="changed_added_4_0">
- * The presence of this annotation in the JSF component class associated particular renderer with component.
+ * This annotation defines concrete class as JSF {@link Renderer}, or abstract class as the base for generated
+ * Renderer implementation.
* </p>
*
* @author asmirnov(a)exadel.com
@@ -46,7 +47,7 @@
/**
* <p class="changed_added_4_0">
* The value of this annotation attribute is taken to be JSF <em>renderer-type</em>. If this value was empty,
- * component type will be inferred from by the CDK.
+ * type will be inferred by the CDK.
* </p>
*
* @return JSF <em>renderer-type</em>.
@@ -54,26 +55,37 @@
public String type() default "";
/**
- * <p class="changed_added_4_0">Renderer Family</p>
+ * <p class="changed_added_4_0">Component Family for which renderer from annotated class will be used.</p>
* @return
*/
public String family() default "";
/**
- * <p class="changed_added_4_0">Name of generated renderer class.</p>
+ * <p class="changed_added_4_0">Name of the generated renderer class. Default value means nothing to genrate from concrete class,
+ * or infer name by convention for abstract class.</p>
* @return
*/
public String generate() default "";
/**
- * <p class="changed_added_4_0">RenderKit for which this renderer is belong to</p>
+ * <p class="changed_added_4_0">RenderKit ID for which this renderer is belong to</p>
* @return
*/
public String renderKitId() default RenderKitFactory.HTML_BASIC_RENDER_KIT;
+ /**
+ * <p class="changed_added_4_0">Path to renderer template, relative to templates folder defined by build ( Maven plugin or ant task ).</p>
+ * @return
+ */
public String template() default "";
+ /**
+ * <p class="changed_added_4_0">
+ * Description to include into generated faces-config and taglib.
+ * </p>
+ * @return
+ */
public Description description() default @Description();
}
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfValidator.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfValidator.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/JsfValidator.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -5,7 +5,13 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import javax.faces.convert.Converter;
+import javax.faces.validator.Validator;
+
/**
+ * This annotation defines concrete class as JSF {@link Validator}, or abstract class as the base for generated
+ * Validator implementation.
+ *
* @author akolonitsky
* @since Jan 13, 2010
*/
@@ -15,14 +21,36 @@
public static final String NAME = "org.richfaces.cdk.annotations.JsfValidator";
+ /**
+ * <p class="changed_added_4_0">
+ * The "validator-id" element represents the identifier under which the corresponding Validator class should be
+ * registered.
+ * </p>
+ *
+ * @return
+ */
public String id();
+ /**
+ * <p class="changed_added_4_0">
+ * fully qualified class name of the generated Converter implementation. Default value means nothing to genrate from concrete class,
+ * or infer name by convention for abstract class.</p>
+ * @return
+ */
public String generate() default "";
+ /**
+ * <p class="changed_added_4_0">
+ * Tag description. If generated tags require special handlers, provide separate description for every type of tag, JSP and Facelets.
+ * Otherwise, the only one tag tag description with name and type {@link TagType#All}.
+ * </p>
+ * @return
+ */
public Tag[] tag() default {};
+
/**
* <p class="changed_added_4_0">
- * Description used by IDE.
+ * Description to include into generated faces-config and taglib.
* </p>
*
* @return
@@ -31,19 +59,20 @@
/**
* <p class="changed_added_4_0">
- * defines fragments of faces-config.xml that contain standard attribute definitions. CDK also tries to read
- * META-INF/cdk/attributes/[classname].xml file for all component superclasses and interfaces, therefore it is not
- * necessary to explicit include definitions for UIComponent and any other standard JSF classes. CDK defines couple
- * of its own "urn" namespaces: "urn:resource:" for classpath resources, "urn:config:" for for project configuration
- * folder and "urn:attributes:" for META-INF/cdk/attributes/ in the annotations library.
+ * Defines file names for fragment of faces-config.xml that contain standard attribute definitions. All names relative to the
+ * META-INF/cdk/attributes/ folder in classpath. CDK also tries to read
+ * META-INF/cdk/attributes/[classname].xml file for all component superclasses and interfaces. Therefore, it is not
+ * necessary to explicitly include definitions for Converter and any other standard JSF classes.
* </p>
*
* @return
*/
public String[] attributes() default {};
+
/**
* <p class="changed_added_4_0">
- * Interfaces that should be implemented in the generated class. CDK processes all {@link Attribute} annotations in these interfaces
+ * Interfaces that should be implemented in the generated class. CDK processes all {@link Attribute} annotations in
+ * these interfaces
* </p>
*
* @return
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/RendererSpecificComponent.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/RendererSpecificComponent.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/RendererSpecificComponent.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -28,7 +28,7 @@
/**
* <p class="changed_added_4_0">
- * That annotation defines class that is generated from the concrete class defined in the {@link JsfComponent}
+ * That annotation defines third lvel component, specific for the concrete renderer, that is generated from the concrete class defined in the {@link JsfComponent}
* </p>
*
* @author asmirnov(a)exadel.com
@@ -40,11 +40,10 @@
/**
* <p class="changed_added_4_0">
- * Type of the component. This is mandatory parameter because CDK uses <em>component-type</em> as primary key for
- * components library model.
+ * Type of the JSF component.
* </p>
- * <p class="todo">
- * TODO if this value is an empty, component type will be inferred from class name.
+ * <p class="naming">
+ * if this value is an empty, component type would be inferred from class name.
* </p>
*
* @return component type.
@@ -63,7 +62,7 @@
/**
* <p class="changed_added_4_0">
- * Description used by IDE.
+ * Component description to include into generated faces-config and taglib.
* </p>
*
* @return
@@ -72,7 +71,7 @@
/**
* <p class="changed_added_4_0">
- * Cenerated Junit test.
+ * Junit test description. Isn't used in RichFaces 4.0, reserved for future releases.
* </p>
*
* @return
@@ -90,7 +89,8 @@
/**
* <p class="changed_added_4_0">
- * View Description Language, JSP or Facelets, tags.
+ * Tag description. If generated tags require special handlers, provide separate description for every type of tag, JSP and Facelets.
+ * Otherwise, the only one tag tag description with name and type {@link TagType#All}.
* </p>
*
* @return
@@ -109,11 +109,10 @@
/**
* <p class="changed_added_4_0">
- * defines fragments of faces-config.xml that contain standard attribute definitions. CDK also tries to read
- * META-INF/cdk/attributes/[classname].xml file for all component superclasses and interfaces, therefore it is not
- * necessary to explicit include definitions for UIComponent and any other standard JSF classes. CDK defines couple
- * of its own "urn" namespaces: "urn:resource:" for classpath resources, "urn:config:" for for project configuration
- * folder and "urn:attributes:" for META-INF/cdk/attributes/ in the annotations library.
+ * Defines file names for fragment of faces-config.xml that contain standard attribute definitions. All names relative to the
+ * META-INF/cdk/attributes/ folder in classpath. CDK also tries to read
+ * META-INF/cdk/attributes/[classname].xml file for all component superclasses and interfaces. Therefore, it is not
+ * necessary to explicitly include definitions for UIComponent and any other standard JSF classes.
* </p>
*
* @return
@@ -122,7 +121,7 @@
/**
* <p class="changed_added_4_0">
- * Interfaces that should be implemented in the generated component class. CDK processes all {@link Attribute} and
+ * Interfaces that should be implemented by the generated component class. CDK processes all {@link Attribute} and
* {@link Facet} annotations in these interfaces
* </p>
*
@@ -131,7 +130,7 @@
public Class<?>[] interfaces() default {};
/**
* <p class="changed_added_4_0">
- * Events fired by the component.
+ * @{link FacesEvent}s fired by the component.
* </p>
*
* @return
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Tag.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Tag.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/Tag.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -26,8 +26,12 @@
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import javax.faces.view.facelets.TagHandler;
+import javax.faces.webapp.UIComponentTagBase;
+
/**
* <p class="changed_added_4_0">
+ * Defines Faces VDL ( Facelets,JSP )tag.
* </p>
*
* @author asmirnov(a)exadel.com
@@ -46,12 +50,30 @@
*/
public String name() default "";
+ /**
+ * <p class="changed_added_4_0">Defines target View Description Language: JSP, Facelets, or both.</p>
+ * @return
+ */
public TagType type() default TagType.Facelets;
+ /**
+ * <p class="changed_added_4_0">Tag handler class. Fully qualified class name of the generated or
+ * existing tag handler. For {@link TagType#Jsp} it's {@link JspTag} or, more likely, {@link UIComponentTagBase} instance.
+ * For facelets, it's {@link TagHandler} instance.</p>
+ * @return
+ */
public String handler() default "";
+ /**
+ * <p class="changed_added_4_0">Base class for generated tag handler. Default value depends from {@link #type()} attribute value.</p>
+ * @return
+ */
public String baseClass() default "";
+ /**
+ * <p class="changed_added_4_0">Flag indicates that special tag handler should be generated.</p>
+ * @return
+ */
public boolean generate() default false;
}
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/TagLibrary.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/TagLibrary.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/TagLibrary.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -28,7 +28,9 @@
import java.lang.annotation.Target;
/**
- * This annotation defines taglib for which all tags for JSF components from that packages belong to
+ * This annotation defines taglib for which all tags for JSF components from that packages belong to.
+ * Current limitation - there sould be only one taglib package in the project, otherwise the last processed package will
+ * override others.
*
* @author asmirnov
* @version $Id$
@@ -45,7 +47,7 @@
public String uri();
/**
- * <p class="changed_added_4_0">Library short name ( default prefix )</p>
+ * <p class="changed_added_4_0">Library short name ( default prefix ). The same same also used for faces-config <name> element.</p>
* @return
*/
public String shortName();
@@ -76,13 +78,13 @@
public Class<?> listenerClass() default NONE.class;
/**
- * <p class="changed_added_4_0">Library description to use by IDE</p>
+ * <p class="changed_added_4_0">Library description, included into generated taglib and faces-config.E</p>
* @return
*/
public String displayName() default "";
/**
- * <p class="changed_added_4_0">Java Server Pages version for generated tld.</p>
+ * <p class="changed_added_4_0">Java Server Pages version for generated tld, for JSP taglib only.</p>
* @return
*/
public String jspVersion() default "2.0";
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/TagType.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/TagType.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/TagType.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -23,6 +23,7 @@
package org.richfaces.cdk.annotations;
/**
+ * VDL type for {@link Tag} annotation.
* @author akolonitsky
* @since Feb 11, 2010
*/
Modified: branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/package-info.java
===================================================================
--- branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/package-info.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/cdk/annotations/src/main/java/org/richfaces/cdk/annotations/package-info.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -1,32 +1,41 @@
/**
* <h1>Java annotations used by the CDK.</h1>
+ * <h2>Package-level annotations</h2>
+ * <p> {@link org.richfaces.cdk.annotations.TagLibrary} defines library-wide parameters</p>
* <h2>Class-level annotations:</h2>
- * <p>Mandatory:</p>
- * <p>@{@link JsfComponent}("component.Type") or @{@link javax.faces.component.FacesComponent}("component.Type").</p>
- * <p>Optional:</p>
* <ul>
- * <li>@{@link Family}("component.Family") defines component family used in the generated class.<br /></li>
- * <li>@{@link Generate}("component.UIClass") tells CDK to generate concrete component class ( base UI... or renderer-specific ).</li>
- * <li>@{@link Test}(testClass="component.Test",testMethod="testFoo",testType={@link TestType}.DECODE) tells CDK to generate unit test for that component.</li>
- * <li>@{@link JsfRenderer}("retnderer.Type") , @{@link RendererTemplate}("/renderer/template.xml") associate renderer with that component. The first one defines independently created renderer, while @{@link RendererTemplate tells CDK to generate renderer class from that template. It is possible to define more than one template with component class using @{@link RendererTemplates}({@{@link RendererTemplate}("one.xml"),@{@link RendererTemplate}("two.xml").<br /></li>
- * <li>@{@link Attributes}({"base.xml","command.xml"}) defines fragments of faces-config.xml which contain standart attributes definitions. CDK also tries to read META-INF/cdk/attributes/[classname].xml file for all component superclasses and interfaces, therefore it is not necessary to explicit include definitions for UIComponent and any other standard JSF classes. CDK defines couple of its own "urn" namespaces: "urn:resource:" for classpath resources, "urn:config:" for for project configuration folder and "urn:attributes:" for META-INF/cdk/attributes/ in the annotations library.<br /></li>
- * <li>@{@link Fires}({MyEvent.class}) defines event classes that this component could fire.</li>
- * <li>@{@link Description} , @{@link DisplayName} - optional IDE-related parameters.<br /></li>
+ * <li>@{@link org.richfaces.cdk.annotations.JsfComponent}("component.Type") or @{@link javax.faces.component.FacesComponent}("component.Type").</li>
+ * <li>@{@link org.richfaces.cdk.annotations.JsfRenderer} Defines JSF {@link javax.faces.render.Renderer} or link renderer with component.</li>
+ * <li>@{@link org.richfaces.cdk.annotations.JsfConverter} Defines JSF {@link javax.faces.convert.Converter}.</li>
+ * <li>@{@link org.richfaces.cdk.annotations.JsfValidator} Defines JSF {@link javax.faces.validator.Validator}.</li>
+ * <li>@{@link org.richfaces.cdk.annotations.JsfBehavior} Defines JSF {@link javax.faces.component.behavior.ClientBehavior}.</li>
+ * <li>@{@link org.richfaces.cdk.annotations.JsfBehaviorRenderer} Defines JSF {@link javax.faces.render.ClientBehaviorRenderer} or links renderer with behavior.</li>
+ * <li>@{@link org.richfaces.cdk.annotations.Event} Defines JSF {@link javax.faces.event.FacesEvent} or links event with component that fires it.</li>
* </ul>
+ * <h2>Annotations used to refine class top level definitions</h2>
+ * <li>@{@link org.richfaces.cdk.annotations.Test} tells CDK to generate unit test for component.</li>
+ * <li>@{@link org.richfaces.cdk.annotations.Description} optional IDE-related parameters.</li>
+ * <li>@{@link org.richfaces.cdk.annotations.Tag} VDL tag description.</li>
+ * <li>@{@link org.richfaces.cdk.annotations.RendererSpecificComponent} defines renderer specific component for the family created from one base component</li>
+ * <li>@{@link org.richfaces.cdk.annotations.Description} optional IDE-related parameters.<br /></li>
+ * </ul>
* <p> </p>
- * <h2>Attribute level annotations ( for getter or setter level ):</h2>
+ * <h2>Attribute level annotations ( for getter or field level ):</h2>
* <ul>
- * <li>@{@link Attribute}(literal="false",hidden="false",readOnly="false",passTrough="true") markes attribute getter/setter.</li>
- * <li>@{@link Signature}(returnType=boolean.class,parameters={Object.class,String.class}) defines Java method signature for attributes that holds MethodExpression objects.</li>
- * <li>@{@link Generate} forces CDK to generate attribute getter/setter. Without that annotation CDK will generate implementation for abstract methods only.</li>
- * <li>@{@link Alias}({"foo","bar"})</li>
- * <li>@{@link EventName}(value="click",defaultEvent=true) defines behavior event name for that attribute. To define more than one event name they could be grouped as @{@link EventNames}({@{@link EventName}("foo),@{@link EventName}("bar")})</li>
- * <li>@{@link DefaultValue}("12"), @{@link SuggestedValue}("12") ...</li>
- * <li>@{@link Description} , @{@link DisplayName} - optional IDE-related parameters.</li>
+ * <li>@{@link org.richfaces.cdk.annotations.Attribute} Defines Faces attribute, used on for attribute getter method or field.</li>
+ * <li>@{@link org.richfaces.cdk.annotations.Facet} for facet getter. Also, used in {@link org.richfaces.cdk.annotations.JsfComponent} facets property.</li>
+ * <li>@{@link org.richfaces.cdk.annotations.Function}, Used for public static methods to define them as EL-functions.</li>
* </ul>
+ * <h2>Annotations used to refine method-level properties</h2>
+ * <ul>
+ * <li>@{@link Signature} defines Java method signature for attributes that holds MethodExpression objects.</li>
+ * <li>@{@link Alias} defines alias for attribute.</li>
+ * <li>@{@link EventName}(value="click",defaultEvent=true) defines behavior event name for that attribute.</li>
+ * <li>@{@link Description} optional IDE-related description.</li>
+ * </ul>
* <p> </p>
* <h3>Facet annotations.</h3>
- * <p>There are two methods to define component facet. At the class level, developer could use @{@link Facets annotations. It is also possible to define facet getter/setter methods for facet and mark one of them with @{@link Facet} annotation.</p>
+ * <p>There are two methods to define component facet. At the class level, developer could use @{@link org.richfaces.cdk.annotations.JsfComponent#facets()} property. It is also possible to define facet getter/setter methods for facet and mark one of them with @{@link Facet} annotation.</p>
*
*
*/
Deleted: branches/4.0.X/core/api/src/main/java/org/ajax4jsf/javascript/AjaxSubmitFunction.java
===================================================================
--- branches/4.0.X/core/api/src/main/java/org/ajax4jsf/javascript/AjaxSubmitFunction.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/api/src/main/java/org/ajax4jsf/javascript/AjaxSubmitFunction.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -1,100 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-
-package org.ajax4jsf.javascript;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.faces.component.UIComponent;
-
-/**
- * @author shura
- *
- */
-public class AjaxSubmitFunction extends JSFunction {
-
- /**
- * Name Javasript function for submit AJAX request
- */
- public static final String AJAX_FUNCTION_NAME = "A4J.AJAX.Submit";
-
- // private static Log log = LogFactory.getLog(AjaxSubmitFunction.class);
- public static final String AJAX_REGIONS_ATTRIBUTE = "reRender";
-
- /**
- * Attribute to keep
- */
- public static final String LIMITRENDER_ATTR_NAME = "limitRender";
-
- /**
- * Attribute for keep JavaScript funtion name for call after complete
- * request.
- */
- public static final String ONCOMPLETE_ATTR_NAME = "oncomplete";
-
- /**
- * Attribute for keep clientId of status component
- */
- public static final String STATUS_ATTR_NAME = "status";
- private Map<String, Object> options = new HashMap<String, Object>();
- private Map<String, String> requestParameters = new HashMap<String, String>();
-
- // private static final Class<?> OBJECT_ARRAY_CLASS = (new Object[0]).getClass();
- private UIComponent component;
-
- /**
- *
- */
- public AjaxSubmitFunction(UIComponent component) {
- this(component, AJAX_FUNCTION_NAME);
- }
-
- /**
- * @param name
- */
- public AjaxSubmitFunction(UIComponent component, String name) {
- super(name);
- this.component = component;
-
- // Fill parameters and options values.
- }
-
- /**
- * @return the options
- */
- public Map<String, Object> getOptions() {
- return this.options;
- }
-
- /**
- * @return the requestParameters
- */
- public Map<String, String> getRequestParameters() {
- return this.requestParameters;
- }
-
- public UIComponent getComponent() {
- return component;
- }
-}
Deleted: branches/4.0.X/core/api/src/main/java/org/ajax4jsf/javascript/JSBind.java
===================================================================
--- branches/4.0.X/core/api/src/main/java/org/ajax4jsf/javascript/JSBind.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/api/src/main/java/org/ajax4jsf/javascript/JSBind.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -1,67 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces - Ajax4jsf Component Library
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-
-package org.ajax4jsf.javascript;
-
-import java.io.IOException;
-
-/**
- * Created 04.08.2008
- * @author Nick Belaevski
- * @since 3.2.2
- */
-public class JSBind extends ScriptStringBase {
- private JSFunction function;
- private String[] vars;
-
- public JSBind(JSFunction function, String... vars) {
- super();
- this.function = function;
- this.vars = vars;
- }
-
- public void appendScript(Appendable target) throws IOException {
- target.append("function () {");
- target.append("var vars = {");
-
- boolean isFirst = true;
-
- for (String var : vars) {
- if (isFirst) {
- isFirst = false;
- } else {
- target.append(',');
- }
-
- target.append(var);
- target.append(':');
- target.append(var);
- }
-
- target.append("};");
- target.append("return function() { with (vars) {");
- target.append(function.toScript());
- target.append("}}}()");
- }
-
-}
Added: branches/4.0.X/core/api/src/main/java/org/richfaces/application/Initializable.java
===================================================================
--- branches/4.0.X/core/api/src/main/java/org/richfaces/application/Initializable.java (rev 0)
+++ branches/4.0.X/core/api/src/main/java/org/richfaces/application/Initializable.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -0,0 +1,15 @@
+package org.richfaces.application;
+
+
+/**
+ * <p class="changed_added_4_0">Classes that require initialization and release methods should implement this interface</p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public interface Initializable {
+
+ public void init();
+
+ public void release();
+
+}
\ No newline at end of file
Modified: branches/4.0.X/core/api/src/main/java/org/richfaces/application/Module.java
===================================================================
--- branches/4.0.X/core/api/src/main/java/org/richfaces/application/Module.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/api/src/main/java/org/richfaces/application/Module.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -2,12 +2,16 @@
/**
- * <p class="changed_added_4_0">User-provided configuration module.</p>
+ * <p class="changed_added_4_0">{@link ServicesFactory} configuration module.</p>
* @author asmirnov(a)exadel.com
*
*/
public interface Module {
+ /**
+ * <p class="changed_added_4_0">This method called from Initialization event listener. User can register their services there to override/extend base functionality.</p>
+ * @param factory
+ */
public void configure(ServicesFactory factory);
}
Modified: branches/4.0.X/core/api/src/main/java/org/richfaces/application/ServiceException.java
===================================================================
--- branches/4.0.X/core/api/src/main/java/org/richfaces/application/ServiceException.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/api/src/main/java/org/richfaces/application/ServiceException.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -26,7 +26,7 @@
import javax.faces.FacesException;
/**
- * <p class="changed_added_4_0"></p>
+ * <p class="changed_added_4_0">Exception fired by service tracker if it cannot create requested service.</p>
* @author asmirnov(a)exadel.com
*
*/
Modified: branches/4.0.X/core/api/src/main/java/org/richfaces/application/ServiceTracker.java
===================================================================
--- branches/4.0.X/core/api/src/main/java/org/richfaces/application/ServiceTracker.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/api/src/main/java/org/richfaces/application/ServiceTracker.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -31,10 +31,11 @@
* <p>Tracker class to provide access to various framework implementation services.
* Examples of such services are: {@link org.richfaces.skin.SkinFactory}, TBD.</p>
*
- * <p>Supports JSR-330 dependency injection.</p>
*
- * <p>This class represents application-scoped object that is stored in the map with {@link Thread#currentThread()} Context classloader. Therefore, there is
- * only one instance perr JEE application in the current JVM.</p>
+ * <p>This class managess application-scoped service factories that are stored in the map with {@link Thread#currentThread()} Context classloader as the key. Therefore, there is
+ * only one instance per JEE application in the current JVM.</p>
+ * <p> actuall cal for the service instance delegated to the current factory</p>
+ * <img src="services.png" alt="services tracking class diagramm"/>
*
*
* <p><b>Note:</b> in initial state this class is not synchronized and presumes that all
@@ -54,14 +55,31 @@
private static final Map<ClassLoader, ServicesFactory> INSTANCES =
new ConcurrentHashMap<ClassLoader, ServicesFactory>();
+ /**
+ * <p class="changed_added_4_0">This class supposed to use with static methods only and cannot be instantiated.</p>
+ */
private ServiceTracker() {
}
+ /**
+ * <p class="changed_added_4_0">Get service instance for given type. This is a wrapper method for {@link #getService(FacesContext, Class)} that
+ * gets faces context by {@link FacesContext#getCurrentInstance()} call, if needed.</p>
+ * @param <T> The service type, usually interface.
+ * @param target Service type class.
+ * @return service implementation instance.
+ */
public static <T> T getService(Class<T> target) {
return getServicesFactory().getInstance(target);
}
+ /**
+ * <p class="changed_added_4_0">Get service instance for given type.</p>
+ * @param <T> The service type, usually interface.
+ * @param context current {@link FacesContext}.
+ * @param target Service type class.
+ * @return service instance.
+ */
public static <T> T getService(FacesContext context, Class<T> target) {
return getServicesFactory().getInstance(target);
}
@@ -85,7 +103,7 @@
}
/**
- * <p class="changed_added_4_0">Set dependency injection service implementation.</p>
+ * <p class="changed_added_4_0">Set service factory implementation for the current context.</p>
* @param factory
*/
public static void setFactory(ServicesFactory factory) {
@@ -93,7 +111,7 @@
}
/**
- * <p class="changed_added_4_0">Remove dependency injection service associated with current context.</p>
+ * <p class="changed_added_4_0">Release factory service associated with current context.</p>
*/
public static void release() {
ServicesFactory servicesFactory = INSTANCES.remove(getCurrentLoader());
Modified: branches/4.0.X/core/api/src/main/java/org/richfaces/application/ServicesFactory.java
===================================================================
--- branches/4.0.X/core/api/src/main/java/org/richfaces/application/ServicesFactory.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/api/src/main/java/org/richfaces/application/ServicesFactory.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -30,10 +30,26 @@
*/
public interface ServicesFactory {
+ /**
+ * <p class="changed_added_4_0">Get service instance associated with given type, usually service interface or base abstract class.</p>
+ * @param <T> service type.
+ * @param type Base class implemented by service.
+ * @return Current service implementation.
+ * @throws ServiceException if factory cannot create requested service.
+ */
public <T> T getInstance(Class<T> type) throws ServiceException;
+ /**
+ * <p class="changed_added_4_0">Associate concrete instance with service.</p>
+ * @param <T> service type.
+ * @param type Base class implemented by service.
+ * @param instance service instance.
+ */
public <T> void setInstance(Class<T> type, T instance);
+ /**
+ * <p class="changed_added_4_0">Release all services. </p>
+ */
public void release();
}
Modified: branches/4.0.X/core/api/src/main/java/org/richfaces/cache/CacheFactory.java
===================================================================
--- branches/4.0.X/core/api/src/main/java/org/richfaces/cache/CacheFactory.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/api/src/main/java/org/richfaces/cache/CacheFactory.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -35,11 +35,13 @@
public interface CacheFactory {
/**
- * Creates a new implementation specific Cache object using the env parameters.
- * @param facesContext
- * @param cacheName
- * @param env
+ * creates a new implementation specific Cache object using the env parameters.
+ * @param env implementation specific environment parameters passed to the
+ * CacheFactory.
+ * @param cacheLoader implementation of the {@link CacheLoader} to use
+ * @param cacheConfigurationloader TODO
* @return an implementation specific Cache object.
+ * @throws CacheException if any error occurs.
*/
public Cache createCache(FacesContext facesContext, String cacheName, Map<?, ?> env);
Deleted: branches/4.0.X/core/api/src/main/java/org/richfaces/component/TemplateComponent.java
===================================================================
--- branches/4.0.X/core/api/src/main/java/org/richfaces/component/TemplateComponent.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/api/src/main/java/org/richfaces/component/TemplateComponent.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -1,38 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-
-package org.richfaces.component;
-
-/**
- * @author Nick Belaevski
- * mailto:nbelaevski@exadel.com
- * created 10.08.2007
- *
- */
-public interface TemplateComponent {
- public static final String TEMPLATE_CLIENT_ID = "{componentId}";
-
- public void startTemplateEncode();
-
- public void endTemplateEncode();
-}
Deleted: branches/4.0.X/core/api/src/main/java/org/richfaces/skin/SkinConfiguration.java
===================================================================
--- branches/4.0.X/core/api/src/main/java/org/richfaces/skin/SkinConfiguration.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/api/src/main/java/org/richfaces/skin/SkinConfiguration.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -1,72 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-
-package org.richfaces.skin;
-
-import javax.faces.context.FacesContext;
-
-/**
- * Fine tuning parameters for components configuration.
- * For any skin, calculation of concrete component parameners done by special "configuration",
- * pointed as special skin parameter ( or by default configuration ).
- * Work like "transformation" of limited set Skin parameters to fine-grained individual component
- * parameters.
- * @author shura
- *
- */
-public interface SkinConfiguration {
-
- /**
- * Get value for configuration parameter. If parameter set as EL-expression,
- * calculate it value.
- *
- * @param context -
- * {@link FacesContext } for current request.
- * @param name
- * name of paremeter.
- * @return value of parameter in config, or null
- */
- public Object getParameter(FacesContext context, String name);
-
- /**
- * Get value for skin parameter, for build extensible ( mandatory/fine tuning ) with three-stage checks :
- * <ul>
- * <li>first, check value for parameter with given name. If value not null, return it</li>
- * <li>second, got parameter value from skin by skinName key. If not null, return it.</li>
- * <li>if both above parameters is null, return default value.</li>
- * </ul>
- * @param context - Current JSF context.
- * @param name - name of parameter.
- * @param skinName - name of according ( default ) parameter i Skin for same purpose. may be <code>null</code>.
- * @param defaultValue - default parameter value.
- * @return - value of parameter.
- */
- public Object getParameter(FacesContext context, String name, String skinName, Object defaultValue);
-
- /**
- * Test for present parameter for given name.
- * @param name of parameter to test
- * @return true if parameter present in configuration.
- */
- public boolean containsParameter(String name);
-}
Added: branches/4.0.X/core/api/src/main/javadoc/org/richfaces/application/services.png
===================================================================
(Binary files differ)
Property changes on: branches/4.0.X/core/api/src/main/javadoc/org/richfaces/application/services.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/4.0.X/core/api/src/main/javadoc/org/richfaces/application/services.uxf
===================================================================
--- branches/4.0.X/core/api/src/main/javadoc/org/richfaces/application/services.uxf (rev 0)
+++ branches/4.0.X/core/api/src/main/javadoc/org/richfaces/application/services.uxf 2011-03-27 13:54:37 UTC (rev 22319)
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<diagram program="umlet" version="11.1">
+ <zoom_level>10</zoom_level>
+ <element>
+ <type>com.umlet.element.Class</type>
+ <coordinates>
+ <x>80</x>
+ <y>50</y>
+ <w>210</w>
+ <h>190</h>
+ </coordinates>
+ <panel_attributes><<Factory>>
+ServiceTracker
+{static methods only}
+--
+-servicesFactory: ServicesFactory
+--
+#getService(t: Class<T>): T
+</panel_attributes>
+ <additional_attributes/>
+ </element>
+ <element>
+ <type>com.umlet.element.Class</type>
+ <coordinates>
+ <x>460</x>
+ <y>100</y>
+ <w>190</w>
+ <h>50</h>
+ </coordinates>
+ <panel_attributes>/ServicesFactory/
+--
+#getService(t: Class<T>): T</panel_attributes>
+ <additional_attributes/>
+ </element>
+ <element>
+ <type>com.umlet.element.Relation</type>
+ <coordinates>
+ <x>260</x>
+ <y>80</y>
+ <w>220</w>
+ <h>50</h>
+ </coordinates>
+ <panel_attributes>lt=<<<-</panel_attributes>
+ <additional_attributes>30;30;200;30</additional_attributes>
+ </element>
+ <element>
+ <type>com.umlet.element.Relation</type>
+ <coordinates>
+ <x>420</x>
+ <y>120</y>
+ <w>172</w>
+ <h>160</h>
+ </coordinates>
+ <panel_attributes>lt=<.
+<<instanceOf>></panel_attributes>
+ <additional_attributes>90;30;90;140</additional_attributes>
+ </element>
+ <element>
+ <type>com.umlet.element.Class</type>
+ <coordinates>
+ <x>410</x>
+ <y>260</y>
+ <w>340</w>
+ <h>70</h>
+ </coordinates>
+ <panel_attributes>_concreteFactory: ServicesFactoryImpl_
+--
+</panel_attributes>
+ <additional_attributes/>
+ </element>
+ <element>
+ <type>com.umlet.element.Class</type>
+ <coordinates>
+ <x>90</x>
+ <y>310</y>
+ <w>200</w>
+ <h>90</h>
+ </coordinates>
+ <panel_attributes><<InitializationListener>>
+FacesInitListener</panel_attributes>
+ <additional_attributes/>
+ </element>
+ <element>
+ <type>com.umlet.element.Class</type>
+ <coordinates>
+ <x>430</x>
+ <y>410</y>
+ <w>240</w>
+ <h>60</h>
+ </coordinates>
+ <panel_attributes>/Module/
+--
+#init(f:ServicesFactory)
+</panel_attributes>
+ <additional_attributes/>
+ </element>
+ <element>
+ <type>com.umlet.element.Class</type>
+ <coordinates>
+ <x>470</x>
+ <y>540</y>
+ <w>100</w>
+ <h>30</h>
+ </coordinates>
+ <panel_attributes>UserModule
+--</panel_attributes>
+ <additional_attributes/>
+ </element>
+ <element>
+ <type>com.umlet.element.Relation</type>
+ <coordinates>
+ <x>440</x>
+ <y>440</y>
+ <w>172</w>
+ <h>120</h>
+ </coordinates>
+ <panel_attributes>lt=<.
+<<instanceOf>></panel_attributes>
+ <additional_attributes>90;30;90;100</additional_attributes>
+ </element>
+ <element>
+ <type>com.umlet.element.Relation</type>
+ <coordinates>
+ <x>260</x>
+ <y>270</y>
+ <w>170</w>
+ <h>110</h>
+ </coordinates>
+ <panel_attributes>lt=<.
+creates</panel_attributes>
+ <additional_attributes>150;30;30;90</additional_attributes>
+ </element>
+ <element>
+ <type>com.umlet.element.Relation</type>
+ <coordinates>
+ <x>100</x>
+ <y>210</y>
+ <w>154</w>
+ <h>120</h>
+ </coordinates>
+ <panel_attributes>lt=<.
+setFactory
+releaseFacroty</panel_attributes>
+ <additional_attributes>80;30;90;100</additional_attributes>
+ </element>
+ <element>
+ <type>com.umlet.element.Relation</type>
+ <coordinates>
+ <x>260</x>
+ <y>330</y>
+ <w>190</w>
+ <h>130</h>
+ </coordinates>
+ <panel_attributes>lt=<.
+init</panel_attributes>
+ <additional_attributes>170;110;30;30</additional_attributes>
+ </element>
+</diagram>
Deleted: branches/4.0.X/core/impl/src/main/java/org/ajax4jsf/package-info.java
===================================================================
--- branches/4.0.X/core/impl/src/main/java/org/ajax4jsf/package-info.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/impl/src/main/java/org/ajax4jsf/package-info.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -1,4 +0,0 @@
-/**
- * Base package for AJAX classes
- */
-package org.ajax4jsf;
Deleted: branches/4.0.X/core/impl/src/main/java/org/richfaces/application/Initializable.java
===================================================================
--- branches/4.0.X/core/impl/src/main/java/org/richfaces/application/Initializable.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/impl/src/main/java/org/richfaces/application/Initializable.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -1,15 +0,0 @@
-package org.richfaces.application;
-
-
-/**
- * <p class="changed_added_4_0">Classes that require initialization should implement this interface</p>
- * @author asmirnov(a)exadel.com
- *
- */
-public interface Initializable {
-
- public void init();
-
- public void release();
-
-}
\ No newline at end of file
Deleted: branches/4.0.X/core/impl/src/main/java/org/richfaces/context/AttributesContext.java
===================================================================
--- branches/4.0.X/core/impl/src/main/java/org/richfaces/context/AttributesContext.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/impl/src/main/java/org/richfaces/context/AttributesContext.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -1,20 +0,0 @@
-package org.richfaces.context;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class AttributesContext {
- private Map<String, Object> attributesMap = new HashMap<String, Object>();
-
- public Object getAttribute(String name) {
- return attributesMap.get(name);
- }
-
- public Object setAttribute(String name, Object value) {
- if (value != null) {
- return attributesMap.put(name, value);
- } else {
- return attributesMap.remove(name);
- }
- }
-}
Deleted: branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/AttributeParametersEncoder.java
===================================================================
--- branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/AttributeParametersEncoder.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/AttributeParametersEncoder.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -1,34 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces - Ajax4jsf Component Library
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.renderkit;
-
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import java.io.IOException;
-
-/**
- * @author Nick Belaevski - nbelaevski(a)exadel.com
- * created 30.01.2007
- */
-public interface AttributeParametersEncoder {
- public void doEncode(FacesContext context, UIComponent component) throws IOException;
-}
Deleted: branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/Expression.java
===================================================================
--- branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/Expression.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/Expression.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -1,78 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.renderkit;
-
-/**
- * @author Nick Belaevski - mailto:nbelaevski@exadel.com
- * created 20.06.2007
- */
-public class Expression {
- private Object expression;
-
- public Expression(Object expression) {
- super();
- this.expression = expression;
- }
-
- public Object getExpression() {
- return expression;
- }
-
- public String toString() {
- return super.toString() + "[" + expression + "]";
- }
-
- public int hashCode() {
- final int prime = 31;
- int result = 1;
-
- result = prime * result + ((expression == null) ? 0 : expression.hashCode());
-
- return result;
- }
-
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
-
- if (obj == null) {
- return false;
- }
-
- if (getClass() != obj.getClass()) {
- return false;
- }
-
- final Expression other = (Expression) obj;
-
- if (expression == null) {
- if (other.expression != null) {
- return false;
- }
- } else if (!expression.equals(other.expression)) {
- return false;
- }
-
- return true;
- }
-}
Deleted: branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/ScriptOptions.java
===================================================================
--- branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/ScriptOptions.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/ScriptOptions.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -1,109 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces - Ajax4jsf Component Library
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.renderkit;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import javax.faces.component.UIComponent;
-
-import org.ajax4jsf.javascript.JSFunctionDefinition;
-import org.ajax4jsf.javascript.ScriptStringBase;
-import org.ajax4jsf.javascript.ScriptUtils;
-
-/**
- * @author Maksim Kaszynski
- */
-public class ScriptOptions extends ScriptStringBase {
- protected Map<String, Object> opts = new HashMap<String, Object>();
- private UIComponent component;
-
- public ScriptOptions(UIComponent component) {
- this.component = component;
- }
-
- public void appendScript(Appendable target) throws IOException {
- ScriptUtils.appendScript(target, opts);
- }
-
- public void addOption(String name) {
- if (name != null) {
- Object value = component.getAttributes().get(name);
-
- addOption(name, value);
- }
- }
-
- @SuppressWarnings("unchecked")
- public void addOption(String name, Object value) {
- if (value != null) {
- Object object = opts.get(name);
-
- if ((object instanceof Map) && (value instanceof Map)) {
- ((Map) object).putAll((Map) value);
- } else {
- opts.put(name, value);
- }
- }
- }
-
- public void addEventHandler(String event, String handler) {
- if ((event != null) && (handler != null)) {
- JSFunctionDefinition functionDefinition = new JSFunctionDefinition("event");
-
- functionDefinition.addToBody(handler);
- functionDefinition.addToBody(";return true;");
- addEventHandler(event, functionDefinition);
- }
- }
-
- public void addEventHandler(String event) {
- if (event != null) {
- String handler = (String) component.getAttributes().get(event);
-
- addEventHandler(event, handler);
- }
- }
-
- public void addEventHandler(String event, JSFunctionDefinition definition) {
- if ((event != null) && (definition != null)) {
- opts.put(event, definition);
- }
- }
-
- public Map<String, Object> getMap() {
- return opts;
- }
-
- public void merge(ScriptOptions anotherOptions) {
- Iterator<Entry<String, Object>> entrySetIterator = anotherOptions.opts.entrySet().iterator();
-
- while (entrySetIterator.hasNext()) {
- Entry<String, Object> entry = entrySetIterator.next();
-
- addOption(entry.getKey(), entry.getValue());
- }
- }
-}
Deleted: branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/ScriptOptionsContributor.java
===================================================================
--- branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/ScriptOptionsContributor.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/impl/src/main/java/org/richfaces/renderkit/ScriptOptionsContributor.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -1,41 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces - Ajax4jsf Component Library
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.renderkit;
-
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-
-/**
- * @author Nick Belaevski - nbelaevski(a)exadel.com
- * created 18.12.2006
- */
-public interface ScriptOptionsContributor {
-
- /**
- * Create script options if component class is known for renderer to contribute
- *
- * @param context
- * @param component
- * @return Built {@link ScriptOptions} instance or null if component is not acceptable
- */
- public ScriptOptions buildOptions(FacesContext context, UIComponent component);
-}
Deleted: branches/4.0.X/core/impl/src/main/java/org/richfaces/skin/DummySkinConfiguration.java
===================================================================
--- branches/4.0.X/core/impl/src/main/java/org/richfaces/skin/DummySkinConfiguration.java 2011-03-27 13:51:09 UTC (rev 22318)
+++ branches/4.0.X/core/impl/src/main/java/org/richfaces/skin/DummySkinConfiguration.java 2011-03-27 13:54:37 UTC (rev 22319)
@@ -1,69 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.skin;
-
-import javax.faces.context.FacesContext;
-
-/**
- * @author shura
- */
-public class DummySkinConfiguration implements SkinConfiguration {
- private Skin skin;
-
- /**
- * @param skin
- */
- public DummySkinConfiguration(Skin skin) {
- super();
- this.skin = skin;
- }
-
- /*
- * (non-Javadoc)
- * @see org.richfaces.skin.SkinConfiguration#containsParameter(java.lang.String)
- */
- public boolean containsParameter(String name) {
- return skin.containsProperty(name);
- }
-
- /*
- * (non-Javadoc)
- * @see org.richfaces.skin.SkinConfiguration#getParameter(javax.faces.context.FacesContext, java.lang.String)
- */
- public Object getParameter(FacesContext context, String name) {
- return skin.getParameter(context, name);
- }
-
- /*
- * (non-Javadoc)
- * @see org.richfaces.skin.SkinConfiguration#getParameter(javax.faces.context.FacesContext, String, String, Object)
- */
- public Object getParameter(FacesContext context, String name, String skinName, Object defaultValue) {
- Object parameter = skin.getParameter(context, name);
-
- if (null == parameter) {
- parameter = defaultValue;
- }
-
- return parameter;
- }
-}
13 years, 9 months
JBoss Rich Faces SVN: r22318 - in trunk: archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources and 179 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: jbalunas(a)redhat.com
Date: 2011-03-27 09:51:09 -0400 (Sun, 27 Mar 2011)
New Revision: 22318
Added:
trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/taglib/ListenerAttributes.java
trunk/examples/input-demo/src/main/java/org/richfaces/demo/autocomplete/
trunk/examples/input-demo/src/main/java/org/richfaces/demo/autocomplete/AutoCompleteBean.java
trunk/examples/input-demo/src/main/java/org/richfaces/demo/autocomplete/AutocompleteBeanConverter.java
trunk/examples/input-demo/src/main/webapp/examples/autocompleteConverter.xhtml
trunk/examples/irc-client/src/main/java/org/ircclient/controller/Message.java
trunk/examples/irc-client/src/main/webapp/chat.xhtml
trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/SelectionChangeActionListenerImpl.java
trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/ToggleActionListenerImpl.java
trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/model/tree/DataHolderTreeNodeImpl.java
trunk/examples/output-demo/src/main/resources/
trunk/examples/output-demo/src/main/resources/myskin.skin.properties
trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/togglepanel/
trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/togglepanel/Profile.java
trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/PasswordValidationBean.java
trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/cron.xml
trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/faces-config.xml
trunk/examples/richfaces-showcase/src/main/webapp/favicon.ico
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/passwordValidation.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/samples/passwordValidation-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/finalStep.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wizard-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wizard.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wstep1.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wstep2.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/wizard.xhtml
trunk/examples/validator-demo/src/main/webapp/bg.jpg
trunk/examples/validator-demo/src/main/webapp/examples/clientAndajaxValidator.xhtml
trunk/ui/common/api/src/main/java/org/richfaces/application/
trunk/ui/common/api/src/main/java/org/richfaces/application/FacesMessages.java
trunk/ui/common/ui/src/main/java/org/richfaces/StateHolderArray.java
trunk/ui/core/ui/src/main/java/org/richfaces/view/facelets/html/RepeatHandler.java
trunk/ui/core/ui/src/main/resources/META-INF/cdk/attributes/ajaxBehavior-prop.xml
trunk/ui/core/ui/src/main/resources/META-INF/cdk/attributes/rowKeyConverter-prop.xml
trunk/ui/dnd/ui/src/main/resources/META-INF/cdk/
trunk/ui/dnd/ui/src/main/resources/META-INF/cdk/attributes/
trunk/ui/dnd/ui/src/main/resources/META-INF/cdk/attributes/dropListener-props.xml
trunk/ui/input/ui/src/main/resources/META-INF/cdk/
trunk/ui/input/ui/src/main/resources/META-INF/cdk/attributes/
trunk/ui/input/ui/src/main/resources/META-INF/cdk/attributes/fileUploadListener-props.xml
trunk/ui/iteration/api/src/main/java/org/richfaces/event/CollapsibleSubTableToggleEvent.java
trunk/ui/iteration/api/src/main/java/org/richfaces/event/CollapsibleSubTableToggleListener.java
trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollEvent.java
trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollListener.java
trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollSource.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableDataChilderIterator.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/ExtendedDataTableHandler.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/ListHandler.java
trunk/ui/iteration/ui/src/main/resources/META-INF/cdk/attributes/tree-serverEventListeners-props.xml
trunk/ui/iteration/ui/src/main/resources/META-INF/cdk/attributes/treeNode-serverEventListeners-props.xml
Removed:
trunk/core/impl/src/test/java/org/richfaces/skin/SkinThreadsTestCase.java
trunk/examples/input-demo/src/main/java/org/richfaces/demo/AutoCompleteBean.java
trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/DayStatistics.java
trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/PassTime.java
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/graphValidator.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/samples/graphValidator-sample.xhtml
trunk/ui/common/api/src/main/java/org/richfaces/appplication/
trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/basic.xcss
trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/basic_both.xcss
trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/basic_classes.xcss
trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/extended.xcss
trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/extended_both.xcss
trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/extended_classes.xcss
trunk/ui/core/ui/src/main/resources/org/richfaces/skin-bas-both.xcss
trunk/ui/core/ui/src/main/resources/org/richfaces/skin-bas-classes.xcss
trunk/ui/core/ui/src/main/resources/org/richfaces/skin-bas-styles.xcss
trunk/ui/core/ui/src/main/resources/org/richfaces/skin-ext-both.xcss
trunk/ui/core/ui/src/main/resources/org/richfaces/skin-ext-classes.xcss
trunk/ui/core/ui/src/main/resources/org/richfaces/skin-ext-styles.xcss
trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTestEdit.xmlunit.xml
trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTestEdit.xmlunit.xml
trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollerEvent.java
trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollerListener.java
trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollerSource.java
trunk/ui/iteration/api/src/main/java/org/richfaces/event/PagingEvent.java
trunk/ui/iteration/api/src/main/java/org/richfaces/event/PagingListener.java
trunk/ui/iteration/api/src/main/java/org/richfaces/event/ToggleEvent.java
trunk/ui/iteration/api/src/main/java/org/richfaces/event/ToggleListener.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableDataIterator.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableIteratorBase.java
trunk/ui/iteration/ui/src/test/java/org/richfaces/component/IteratorBaseTest.java
trunk/ui/validator/api/src/main/java/org/richfaces/event/
Modified:
trunk/archetypes/richfaces-archetype-simpleapp/readme.txt
trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/readme.txt
trunk/cdk/attributes/src/main/resources/META-INF/cdk/attributes/input-props.xml
trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/taglib/TaglibGeneratorVisitor.java
trunk/cdk/generator/src/main/java/org/richfaces/cdk/model/AttributeModel.java
trunk/core/api/src/main/java/org/ajax4jsf/javascript/JSObject.java
trunk/core/api/src/main/java/org/ajax4jsf/javascript/JSReference.java
trunk/core/api/src/main/java/org/ajax4jsf/javascript/PropertyUtils.java
trunk/core/api/src/main/java/org/ajax4jsf/javascript/ScriptUtils.java
trunk/core/api/src/main/java/org/ajax4jsf/model/SequenceDataModel.java
trunk/core/api/src/main/java/org/richfaces/application/push/TopicsContext.java
trunk/core/api/src/main/java/org/richfaces/renderkit/AjaxConstants.java
trunk/core/api/src/main/java/org/richfaces/renderkit/util/CoreAjaxRendererUtils.java
trunk/core/api/src/main/java/org/richfaces/resource/ImageType.java
trunk/core/api/src/main/java/org/richfaces/skin/SkinFactory.java
trunk/core/api/src/main/java/org/richfaces/skin/SkinNotFoundException.java
trunk/core/api/src/test/java/org/ajax4jsf/javascript/ScriptUtilsTest.java
trunk/core/impl/src/main/java/org/richfaces/application/push/impl/AtmospherePushHandler.java
trunk/core/impl/src/main/java/org/richfaces/application/push/impl/jms/SessionImpl.java
trunk/core/impl/src/main/java/org/richfaces/cache/JBossCacheCache.java
trunk/core/impl/src/main/java/org/richfaces/cache/JBossCacheCacheFactory.java
trunk/core/impl/src/main/java/org/richfaces/cache/OSCacheCacheFactory.java
trunk/core/impl/src/main/java/org/richfaces/context/RenderComponentCallback.java
trunk/core/impl/src/main/java/org/richfaces/el/CapturingELResolver.java
trunk/core/impl/src/main/java/org/richfaces/renderkit/util/CoreRendererUtils.java
trunk/core/impl/src/main/java/org/richfaces/resource/AbstractBaseResource.java
trunk/core/impl/src/main/java/org/richfaces/resource/ExternalStaticResource.java
trunk/core/impl/src/main/java/org/richfaces/resource/ResourceFactoryImpl.java
trunk/core/impl/src/main/java/org/richfaces/skin/SkinBean.java
trunk/core/impl/src/main/java/org/richfaces/util/Util.java
trunk/core/impl/src/main/resources/META-INF/resources/jquery.js
trunk/core/impl/src/main/resources/META-INF/resources/richfaces-base-component.js
trunk/core/impl/src/main/resources/META-INF/resources/richfaces-queue.js
trunk/core/impl/src/test/java/org/richfaces/cache/BaseCacheTest.java
trunk/core/impl/src/test/java/org/richfaces/context/AjaxTableComponentImpl.java
trunk/dist/readme-examples.txt
trunk/dist/readme-ui.txt
trunk/examples/core-demo/src/main/webapp/ajax.xhtml
trunk/examples/input-demo/src/main/webapp/examples/autocomplete.xhtml
trunk/examples/input-demo/src/main/webapp/examples/inplaceInput.xhtml
trunk/examples/input-demo/src/main/webapp/examples/inplaceSelect.xhtml
trunk/examples/input-demo/src/main/webapp/examples/select.xhtml
trunk/examples/irc-client/readme.txt
trunk/examples/irc-client/src/main/java/org/ircclient/controller/ChatBean.java
trunk/examples/irc-client/src/main/webapp/welcome.xhtml
trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/TreeBean.java
trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/model/Employee.java
trunk/examples/iteration-demo/src/main/webapp/dataTable.xhtml
trunk/examples/iteration-demo/src/main/webapp/tree.xhtml
trunk/examples/misc-demo/src/main/webapp/pages/componentControl.xhtml
trunk/examples/output-demo/src/main/java/org/richfaces/SkinBean.java
trunk/examples/output-demo/src/main/webapp/examples/dropDownMenu.xhtml
trunk/examples/richfaces-showcase/pom.xml
trunk/examples/richfaces-showcase/readme.txt
trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/common/navigation/DemoDescriptor.java
trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/common/navigation/GroupDescriptor.java
trunk/examples/richfaces-showcase/src/main/resources/org/richfaces/demo/data/common/navigation.xml
trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/appengine-web.xml
trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/web.xml
trunk/examples/richfaces-showcase/src/main/webapp/resources/css/application.css
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/accordion/simple.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/ajax/ajax.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/ajax/selectsUpdates.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/attachQueue/attachQueue.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/cachedAjax.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/clientFilter.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/samples/cachedAjax-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/calendar/calendar.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/calendar/clientStylingDisablement.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/calendar/dataModel.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/clientValidation/jsfValidators.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/clientValidation/jsr303.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/collapsiblePanel/simple.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/commandButton/commandButton.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/commandLink/commandLink.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/component-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/componentControl/tableFilteringAPI.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/dataScroller/samples/dataScrollerAPI-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/dragDrop/samples/dragIndicator-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/fileUpload/imgUpload.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/functions/functions.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/hashParam/hashOptionsPopup.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/hashParam/samples/hashOptionsPopup-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inplaceInput/inplaceInput.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inplaceSelect/inplaceSelect.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inplaceSelect/samples/inplaceSelect-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inputNumberSlider/samples/sliders-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inputNumberSlider/sliders.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inputNumberSpinner/spinners.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/jquery/jquery.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/jsFunction/jsFunction.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/panel/samples/lookCustomization-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/panel/simple.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/panelMenu/samples/panelMenu-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/clientParam.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/param.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/samples/skinChange-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/skinChange.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/poll/poll.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/login.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/modalPopup.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/samples/modalPopup-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/samples/simplePopup-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/simplePopup.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/ajaxProgressBar.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/clientProgressBar.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/samples/ajaxProgressBar-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/samples/clientProgressBar-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/queue/queue.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/region/region.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/region/samples/region-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/select/samples/select-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/select/select.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/standardSkinning/standardSkinning.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/status/viewusage.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tabPanel/simple.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tabPanel/valueManagement.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/simple-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/simple.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tooltip/samples/tooltip-sample.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tooltip/tooltip.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tree/tree.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/templates/includes/navigation.xhtml
trunk/examples/richfaces-showcase/src/main/webapp/templates/main.xhtml
trunk/examples/template/src/main/webapp/layout/pagesList.xhtml
trunk/examples/validator-demo/src/main/java/org/richfaces/example/Bean.java
trunk/examples/validator-demo/src/main/webapp/examples/beanValidation.xhtml
trunk/examples/validator-demo/src/main/webapp/examples/faces-validators.xhtml
trunk/ui/common/ui/src/main/java/org/richfaces/component/UISequence.java
trunk/ui/core/pom.xml
trunk/ui/core/ui/pom.xml
trunk/ui/core/ui/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java
trunk/ui/core/ui/src/main/java/org/ajax4jsf/component/behavior/MethodExpressionAjaxBehaviorListener.java
trunk/ui/core/ui/src/main/java/org/ajax4jsf/renderkit/AjaxBehaviorRenderer.java
trunk/ui/core/ui/src/main/java/org/richfaces/component/AbstractAjaxStatus.java
trunk/ui/core/ui/src/main/java/org/richfaces/component/AbstractCommandButton.java
trunk/ui/core/ui/src/main/java/org/richfaces/component/UIRepeat.java
trunk/ui/core/ui/src/main/java/org/richfaces/renderkit/html/AjaxPollRenderer.java
trunk/ui/core/ui/src/main/java/org/richfaces/renderkit/html/AjaxStatusRenderer.java
trunk/ui/core/ui/src/main/resources/META-INF/resources/org.richfaces/status.js
trunk/ui/dnd/api/pom.xml
trunk/ui/dnd/pom.xml
trunk/ui/dnd/ui/pom.xml
trunk/ui/dnd/ui/src/main/java/org/richfaces/component/AbstractDropTarget.java
trunk/ui/input/api/src/main/java/org/richfaces/component/InplaceComponent.java
trunk/ui/input/api/src/main/java/org/richfaces/event/FileUploadEvent.java
trunk/ui/input/api/src/main/java/org/richfaces/event/FileUploadListener.java
trunk/ui/input/pom.xml
trunk/ui/input/ui/src/main/config/faces-config.xml
trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractAutocomplete.java
trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractCalendar.java
trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractFileUpload.java
trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractInplaceInput.java
trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractInplaceSelect.java
trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractSelect.java
trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractSelectComponent.java
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/CalendarRendererBase.java
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceInputRendererBase.java
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceSelectRendererBase.java
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/SelectRendererBase.java
trunk/ui/input/ui/src/main/java/org/richfaces/view/facelets/AutocompleteHandler.java
trunk/ui/input/ui/src/main/java/org/richfaces/view/facelets/FileUploadHandler.java
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/Autocomplete.ecss
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/AutocompleteBase.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/fileupload.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.ecss
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.ecss
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js
trunk/ui/input/ui/src/main/templates/autocomplete.template.xml
trunk/ui/input/ui/src/main/templates/calendar.template.xml
trunk/ui/input/ui/src/main/templates/inplaceInput.template.xml
trunk/ui/input/ui/src/main/templates/inplaceSelect.template.xml
trunk/ui/input/ui/src/main/templates/inputnumberslider.template.xml
trunk/ui/input/ui/src/main/templates/inputnumberspinner.template.xml
trunk/ui/input/ui/src/main/templates/select.template.xml
trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/InplaceInputRendererTest.java
trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/InplaceSelectRendererTest.java
trunk/ui/input/ui/src/test/resources/org/richfaces/component/calendarContent.xmlunit.xml
trunk/ui/input/ui/src/test/resources/org/richfaces/component/calendarScript.xmlunit.xml
trunk/ui/input/ui/src/test/resources/org/richfaces/component/calendarTest.xhtml
trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/autocompleteDivLayoutClientMode.xmlunit.xml
trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/autocompleteListLayoutClientMode.xmlunit.xml
trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTest.xhtml
trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTestDefault.xmlunit.xml
trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTestWithControls.xmlunit.xml
trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTest.xhtml
trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTestDefault.xmlunit.xml
trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTestWithControls.xmlunit.xml
trunk/ui/iteration/api/pom.xml
trunk/ui/iteration/api/src/main/java/org/richfaces/component/Expandable.java
trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeSelectionChangeEvent.java
trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeSelectionChangeListener.java
trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeToggleEvent.java
trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeToggleListener.java
trunk/ui/iteration/api/src/main/java/org/richfaces/model/Field.java
trunk/ui/iteration/api/src/main/java/org/richfaces/model/FilterField.java
trunk/ui/iteration/api/src/main/java/org/richfaces/model/SortField.java
trunk/ui/iteration/pom.xml
trunk/ui/iteration/ui/pom.xml
trunk/ui/iteration/ui/src/main/config/faces-config.xml
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractCollapsibleSubTable.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataGrid.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataScroller.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataTable.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractExtendedDataTable.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractList.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractTree.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractTreeModelAdaptor.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractTreeNode.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableColumnsIterator.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableFixedChildrenIterator.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UIDataTableBase.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UITreeModelAdaptor.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UITreeModelRecursiveAdaptor.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/event/MethodExpressionTreeSelectionChangeListener.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/event/MethodExpressionTreeToggleListener.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/model/ClassicTreeNodeDataModelImpl.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/model/iterators/ClassicTreeNodeTuplesIterator.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableBaseRenderer.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/CollapsibleSubTableRenderer.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/CollapsibleSubTableTogglerRendererBase.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ColumnGroupRenderer.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataGridRenderer.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataScrollerBaseRenderer.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataTableRenderer.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/CollapsibleSubTableHandler.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/DataGridHandler.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/DataScrollerHandler.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/DataTableHandler.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/MethodExpressionScrollListener.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/MethodExpressionToggleListener.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/view/facelets/TreeHandler.java
trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/collapsible-subtable.ecss
trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/datascroller.ecss
trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/datatable.ecss
trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/extendedDataTable.js
trunk/ui/iteration/ui/src/test/java/org/richfaces/component/UIDataTableTest.java
trunk/ui/misc/pom.xml
trunk/ui/misc/ui/pom.xml
trunk/ui/misc/ui/src/main/java/org/richfaces/component/behavior/ComponentControlBehavior.java
trunk/ui/output/api/pom.xml
trunk/ui/output/pom.xml
trunk/ui/output/ui/pom.xml
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractAccordion.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractCollapsiblePanel.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractDropDownMenu.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanel.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenu.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuGroup.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuItem.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTabPanel.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTooltip.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/CollapsiblePanelRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupHeaderRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuItemRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabPanelRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelRenderer.java
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/dropdownmenu.ecss
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/menu.js
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenu.ecss
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenu.js
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuGroup.js
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuItem.js
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/popupPanel.ecss
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/popupPanel.js
trunk/ui/output/ui/src/main/templates/dropdownmenu.template.xml
trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/dropDownMenu_ajaxMode.xmlunit.xml
trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/dropDownMenu_serverMode.xmlunit.xml
trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/tab.xmlunit.xml
trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/tabPanel.xmlunit.xml
trunk/ui/validator/ui/src/main/java/org/richfaces/javascript/ClientScriptServiceImpl.java
trunk/ui/validator/ui/src/main/java/org/richfaces/renderkit/MessageRendererBase.java
trunk/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java
trunk/ui/validator/ui/src/main/resources/META-INF/resources/org.richfaces/message.js
trunk/ui/validator/ui/src/main/resources/META-INF/resources/org.richfaces/msg.ecss
trunk/ui/validator/ui/src/main/resources/META-INF/resources/org.richfaces/richfaces-csv.js
trunk/ui/validator/ui/src/main/templates/messages.template.xml
trunk/ui/validator/ui/src/test/java/org/richfaces/javascript/ClientScriptServiceTest.java
Log:
RF-10785 merge from 4.0.X --> /trunk
Modified: trunk/archetypes/richfaces-archetype-simpleapp/readme.txt
===================================================================
--- trunk/archetypes/richfaces-archetype-simpleapp/readme.txt 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/archetypes/richfaces-archetype-simpleapp/readme.txt 2011-03-27 13:51:09 UTC (rev 22318)
@@ -2,68 +2,97 @@
RichFaces - Ajax enabled JSF 2.0 component library
- RichFaces 4.0.CR1 EXAMPLES
- http://richfaces.org
+ RichFaces 4.0.0.Final ARCHETYPE PROJECT
+ http://richfaces.org
March 2011
This software is distributed under the terms of the
FSF Lesser Gnu Public License (see lgpl.txt)
========================================================================
-RichFaces 4 is a component library for JSF2 and an advanced framework for
-easily integrating AJAX capabilities into business applications.
+This archetype will create a basic application generated with richfaces.
+This file explains how to build and set up the project using Maven. If you
+find any issue related to RichFaces framework, please report the issue on
+the RichFaces user forum (http://community.jboss.org/en/richfaces) or
+jira (https://issues.jboss.org/browse/RF).
-This file explains how to generate a RichFaces application as a Maven 2
-project. If you find any issue with the project, please report
-the issue on the RichFaces user forum (http://community.jboss.org/en/richfaces)
-or jira (https://issues.jboss.org/browse/RF).
+SETTING UP THE APPLICATION
+--------------------------
-USING THE ARCHETYPE:
---------------------
+1. Requirements
+In order to build the Examples applications you will need:
+ - Maven 2.1.0 or later
+ - Servers: Apache Tomcat 6.0 or any JEE6 application server
+ (e.g. Jboss AS 6)
+ - JDK 1.6
-1. Install Maven 2 (see http://maven.apache.org for details)
-
-2. Generate the project from the archetype
-
-After installing Maven 2, open a terminal inside the directory you
-want your project to be created and execute the command below:
-
- mvn archetype:generate -DarchetypeGroupId=org.richfaces.archetypes
- -DarchetypeArtifactId=richfaces-archetype-simpleapp
- -DarchetypeVersion=<version>
- -DgroupId=<yourGroupId>
- -DartifactId=<yourArtifactId>
- -Dversion=1.0-SNAPSHOT
+Also optional additional Software would make it easy for you to work
+with the sources of the application:
-After executing the command, Maven will generate your project structure.
-Make sure you replace the parameters values enclosed by < > according
-to your needs.
-
+ - Eclipse IDE + JBoss Tools (to explore and run the application
+ in IDE). You're obviously free to use any other IDE you wish, but
+ JBoss Tools is recommended.
+2. Generate the project using the archetype.
-MORE INFORMATION AND RESOURCES
-------------------------------
+Maven will automatically create a project for you using the archetype
+command below. Just provide the variables and maven will do the rest.
-For more information on RichFaces 4 features, how to migrate from
-previous versions, and answers to the most frequently asked questions (FAQ),
-please visit RichFaces website at:
+ mvn archetype:generate \
+ -DarchetypeGroupId=org.richfaces.archetypes \
+ -DarchetypeArtifactId=richfaces-archetype-simpleapp \
+ -DarchetypeVersion=4.0.0.Final \
+ -DgroupId=<yourGroupId> \
+ -DartifactId=<yourArtifactId> \
+ -Dversion=<yourSnapshotVersion>
-http://www.jboss.org/richfaces.
+3. Build/Deploy
-Or the Wiki at:
+ - Deploying on Tomcat
- - http://community.jboss.org/wiki/richfaceswikihomepage
+ To build the project for Tomcat you need to navigate to the
+ /examples/richfaces-showcase and run:
+
+ mvn clean package
+
+ When you see the BUILD SUCCESSFUL message you can deploy the
+ application on the server. To deploy it on Tomcat, copy the .war
+ file from 'target' folder to TOMCAT_HOME/webapps folder. Then,
+ launch the startup.sh or startup.bat script from TOMCAT_HOME/bin/
+ directory to start the server.
-To report or check the status of issues related to RichFaces use the
-project's Jira at:
+ - Deploying on JEE6 server (JBoss AS 6)
+
+ To build the project for a JEE6 server you need to navigate to the
+ /examples/richfaces-showcase and run
- - https://issues.jboss.org/browse/RF
+ mvn clean package -Pjee6
-Community support and help can be obtained from the RichFaces forums at:
+ When you see the BUILD SUCCESSFUL message you can deploy the
+ application on the server. To deploy it on the application server
+ copy the .war file from 'target' folder to the JBOSS_HOME/server/default/deploy
+ folder (or change "default/" to used profile folder). Then, launch
+ the run.sh or run.bat script from JBOSS_HOME/bin/ directory to start
+ the server.
- - http://community.jboss.org/en/richfaces?view=discussions
+ - If you wan to create a binaries for both Tomcat 6 and JBoss 6 run
-###
+ mvn clean package -P release
+
+
+After deploying the examples to your server open a browser and type
+http://localhost:8080/projectName to execute the application.
+
+
+MORE INFORMATION AND RESOURCES
+------------------------------
+
+For more information on this project please contact the developer.
+
+For more information on RichFaces 4, please visit RichFaces
+website at:
+
+ - http://richfaces.org
Modified: trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/readme.txt
===================================================================
--- trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/readme.txt 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/readme.txt 2011-03-27 13:51:09 UTC (rev 22318)
@@ -2,15 +2,15 @@
RichFaces - Ajax enabled JSF 2.0 component library
- RichFaces 4.0.CR1
- http://richfaces.org
+ RichFaces 4.0.0.Final ARCHETYPE PROJECT
+ http://richfaces.org
March 2011
This software is distributed under the terms of the
FSF Lesser Gnu Public License (see lgpl.txt)
========================================================================
-This project is an application generated with richfaces-achttype-simpleapp.
+This project is an application generated with richfaces-archetype-simpleapp.
This file explains how to build and set up the project using Maven. If you
find any issue related to RichFaces framework, please report the issue on
the RichFaces user forum (http://community.jboss.org/en/richfaces) or
@@ -82,4 +82,4 @@
For more information on RichFaces 4, please visit RichFaces
website at:
- - http://www.jboss.org/richfaces.
+ - http://richfaces.org
Modified: trunk/cdk/attributes/src/main/resources/META-INF/cdk/attributes/input-props.xml
===================================================================
--- trunk/cdk/attributes/src/main/resources/META-INF/cdk/attributes/input-props.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/cdk/attributes/src/main/resources/META-INF/cdk/attributes/input-props.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -46,8 +46,7 @@
<property-extension>
<cdk:pass-through>false</cdk:pass-through>
<cdk:event-name>change</cdk:event-name>
- <cdk:event-name>valueChange</cdk:event-name>
- <default-behavior>true</default-behavior>
+ <cdk:event-name default="true">valueChange</cdk:event-name>
</property-extension>
</property>
Added: trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/taglib/ListenerAttributes.java
===================================================================
--- trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/taglib/ListenerAttributes.java (rev 0)
+++ trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/taglib/ListenerAttributes.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,28 @@
+package org.richfaces.cdk.generate.taglib;
+
+import org.richfaces.cdk.model.AttributeModel;
+import org.richfaces.cdk.model.ClassName;
+import org.richfaces.cdk.model.PropertyBase;
+
+import javax.el.ValueExpression;
+
+/**
+ * User: Gleb Galkin
+ * Date: 23.02.11
+ */
+public enum ListenerAttributes {
+ FOR(new AttributeModel("for", false, ClassName.get(String.class))),
+ BINDING(new AttributeModel("binding", false, ClassName.get(ValueExpression.class))),
+ LISTENER(new AttributeModel("listener", false, ClassName.get(ValueExpression.class))),
+ TYPE(new AttributeModel("type", false, ClassName.get(ValueExpression.class)));
+
+ private PropertyBase attribute;
+
+ ListenerAttributes(PropertyBase attribute) {
+ this.attribute = attribute;
+ }
+
+ public PropertyBase getAttribute() {
+ return attribute;
+ }
+}
Modified: trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/taglib/TaglibGeneratorVisitor.java
===================================================================
--- trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/taglib/TaglibGeneratorVisitor.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/taglib/TaglibGeneratorVisitor.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -26,19 +26,7 @@
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.richfaces.cdk.annotations.TagType;
-import org.richfaces.cdk.model.BeanModelBase;
-import org.richfaces.cdk.model.BehaviorModel;
-import org.richfaces.cdk.model.ComponentLibrary;
-import org.richfaces.cdk.model.ComponentModel;
-import org.richfaces.cdk.model.ConverterModel;
-import org.richfaces.cdk.model.DescriptionGroup;
-import org.richfaces.cdk.model.EventModel;
-import org.richfaces.cdk.model.FacesId;
-import org.richfaces.cdk.model.FunctionModel;
-import org.richfaces.cdk.model.PropertyBase;
-import org.richfaces.cdk.model.SimpleVisitor;
-import org.richfaces.cdk.model.TagModel;
-import org.richfaces.cdk.model.ValidatorModel;
+import org.richfaces.cdk.model.*;
import org.richfaces.cdk.util.Strings;
/**
@@ -262,11 +250,18 @@
if (isFaceletsTag(tagModel)) {
Element tag = createTag(tagModel.getName());
addTagHandler(tag, tagModel);
+ appendAttributesForListener(tag);
}
}
return null;
}
+ private void appendAttributesForListener(Element tag) {
+ for (ListenerAttributes attribute : ListenerAttributes.values()) {
+ createAttributeElement(tag, attribute.getAttribute().getName(), attribute.getAttribute());
+ }
+ }
+
private boolean isFaceletsTag(TagType type) {
return TagType.Facelets.equals(type) || TagType.All.equals(type);
@@ -281,7 +276,7 @@
* Add common description elements.
* </p>
*
- * @param parant
+ * @param parent
* @param model
*/
private void addDescription(Element parent, DescriptionGroup model) {
Modified: trunk/cdk/generator/src/main/java/org/richfaces/cdk/model/AttributeModel.java
===================================================================
--- trunk/cdk/generator/src/main/java/org/richfaces/cdk/model/AttributeModel.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/cdk/generator/src/main/java/org/richfaces/cdk/model/AttributeModel.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -32,4 +32,15 @@
*/
public class AttributeModel extends PropertyBase {
+ public AttributeModel() {
+ super();
+ }
+
+ public AttributeModel(String name, boolean required, ClassName type) {
+ super();
+ setName(name);
+ setRequired(required);
+ setType(type);
+ }
+
}
Modified: trunk/core/api/src/main/java/org/ajax4jsf/javascript/JSObject.java
===================================================================
--- trunk/core/api/src/main/java/org/ajax4jsf/javascript/JSObject.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/api/src/main/java/org/ajax4jsf/javascript/JSObject.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -38,8 +38,6 @@
*/
public JSObject(String name, Object... parameters) {
super(name, parameters);
-
- // TODO Auto-generated constructor stub
}
public void appendScript(Appendable target) throws IOException {
Modified: trunk/core/api/src/main/java/org/ajax4jsf/javascript/JSReference.java
===================================================================
--- trunk/core/api/src/main/java/org/ajax4jsf/javascript/JSReference.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/api/src/main/java/org/ajax4jsf/javascript/JSReference.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -54,8 +54,6 @@
* @param index
*/
public JSReference(String name, Object index) {
-
- // TODO Auto-generated constructor stub
this.name = name;
this.index = index;
}
Modified: trunk/core/api/src/main/java/org/ajax4jsf/javascript/PropertyUtils.java
===================================================================
--- trunk/core/api/src/main/java/org/ajax4jsf/javascript/PropertyUtils.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/api/src/main/java/org/ajax4jsf/javascript/PropertyUtils.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -56,8 +56,6 @@
PropertyDescriptor[] descriptors = null;
try {
-
- // TODO - cache introspection info?
BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass());
descriptors = beanInfo.getPropertyDescriptors();
Modified: trunk/core/api/src/main/java/org/ajax4jsf/javascript/ScriptUtils.java
===================================================================
--- trunk/core/api/src/main/java/org/ajax4jsf/javascript/ScriptUtils.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/api/src/main/java/org/ajax4jsf/javascript/ScriptUtils.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -35,6 +35,7 @@
import java.util.Iterator;
import java.util.Map;
import java.util.MissingResourceException;
+import java.util.SimpleTimeZone;
import javax.faces.FacesException;
import javax.faces.context.ResponseWriter;
@@ -173,7 +174,7 @@
throw new FacesException("Error in conversion Java Object to JavaScript", e);
}
- boolean ignorePropertyReadException = obj.getClass().getName().startsWith("java.sql.");
+ boolean ignorePropertyReadException = obj.getClass().getName().startsWith("java.sql.") || obj.getClass().equals(SimpleTimeZone.class);
boolean first = true;
for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
Modified: trunk/core/api/src/main/java/org/ajax4jsf/model/SequenceDataModel.java
===================================================================
--- trunk/core/api/src/main/java/org/ajax4jsf/model/SequenceDataModel.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/api/src/main/java/org/ajax4jsf/model/SequenceDataModel.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -42,46 +42,6 @@
this.wrappedModel = wrapped;
}
- /*
- * (non-Javadoc)
- * @see org.ajax4jsf.ajax.repeat.ExtendedDataModel#dataIterator(org.ajax4jsf.ajax.repeat.Range)
- */
-
-/* public Iterator dataIterator(Range range) {
- final SequenceRange seqRange = (SequenceRange) range;
- int rows = seqRange.getRows();
- int rowCount = wrapped.getRowCount();
- final int firstRow = seqRange.getFirstRow();
- if(rows > 0){
- rows += firstRow;
- if(rowCount >=0){
- rows = Math.min(rows, rowCount);
- }
- } else if(rowCount >=0 ){
- rows = rowCount;
- }
- final int maxRow = rows;
- return new Iterator(){
-
- int rowIndex = firstRow;
-
- public boolean hasNext() {
- // TODO Auto-generated method stub
- return maxRow < 0 || rowIndex < maxRow;
- }
-
- public Object next() {
- // TODO Auto-generated method stub
- return new Integer(rowIndex++);
- }
-
- public void remove() {
- throw new IllegalStateException();
- }
-
- };
- }
-*/
public void walk(FacesContext context, DataVisitor visitor, Range range, Object argument) {
final SequenceRange seqRange = (SequenceRange) range;
int rows = seqRange.getRows();
@@ -152,8 +112,6 @@
* @see javax.faces.model.DataModel#getRowCount()
*/
public int getRowCount() {
-
- // TODO Auto-generated method stub
return wrappedModel.getRowCount();
}
@@ -162,8 +120,6 @@
* @see javax.faces.model.DataModel#getRowData()
*/
public E getRowData() {
-
- // TODO Auto-generated method stub
return wrappedModel.getRowData();
}
@@ -172,8 +128,6 @@
* @see javax.faces.model.DataModel#getRowIndex()
*/
public int getRowIndex() {
-
- // TODO Auto-generated method stub
return wrappedModel.getRowIndex();
}
@@ -182,8 +136,6 @@
* @see javax.faces.model.DataModel#getWrappedData()
*/
public Object getWrappedData() {
-
- // TODO Auto-generated method stub
return wrappedModel.getWrappedData();
}
@@ -192,8 +144,6 @@
* @see javax.faces.model.DataModel#isRowAvailable()
*/
public boolean isRowAvailable() {
-
- // TODO Auto-generated method stub
return wrappedModel.isRowAvailable();
}
Modified: trunk/core/api/src/main/java/org/richfaces/application/push/TopicsContext.java
===================================================================
--- trunk/core/api/src/main/java/org/richfaces/application/push/TopicsContext.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/api/src/main/java/org/richfaces/application/push/TopicsContext.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -53,13 +53,7 @@
}
public Topic getTopic(TopicKey key) {
- Topic topic = topics.get(key.getTopicName());
-
- if (topic == null) {
- //TODO
- }
-
- return topic;
+ return topics.get(key.getTopicName());
}
public void removeTopic(TopicKey key) {
Modified: trunk/core/api/src/main/java/org/richfaces/renderkit/AjaxConstants.java
===================================================================
--- trunk/core/api/src/main/java/org/richfaces/renderkit/AjaxConstants.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/api/src/main/java/org/richfaces/renderkit/AjaxConstants.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -35,7 +35,6 @@
public static final String BEHAVIOR_EVENT_PARAMETER = "javax.faces.behavior.event";
- //TODO - review
public static final String AJAX_COMPONENT_ID_PARAMETER = "org.richfaces.ajax.component";
}
Modified: trunk/core/api/src/main/java/org/richfaces/renderkit/util/CoreAjaxRendererUtils.java
===================================================================
--- trunk/core/api/src/main/java/org/richfaces/renderkit/util/CoreAjaxRendererUtils.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/api/src/main/java/org/richfaces/renderkit/util/CoreAjaxRendererUtils.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -50,25 +50,6 @@
public final class CoreAjaxRendererUtils {
/**
- * Attribute for keep JavaScript function name for call before updating
- * DOM tree.
- */
- public static final String ONBEFOREDOMUPDATE_ATTR_NAME = "onbeforedomupdate";
-
- /**
- * Attribute for keep JavaScript function name for call after complete
- * request.
- */
- public static final String ONCOMPLETE_ATTR_NAME = "oncomplete";
-
- public static final String DATA_ATTR_NAME = "data";
-
- /**
- * Attribute to keep
- */
- public static final String LIMITRENDER_ATTR_NAME = "limitRender";
-
- /**
* @since 3.3.0
*/
public static final String AJAX_PROCESS_ATTRIBUTE = "process";
@@ -238,57 +219,4 @@
return null;
}
-
- /**
- * Calculate, must be component render only given areas, or all sended from
- * server.
- *
- * @param component
- * @return <code>true</code> if client must render ONLY given areas.
- */
- public static boolean isAjaxLimitRender(UIComponent component) {
- boolean result = false;
-
- Object limitRenderObject = component.getAttributes().get(LIMITRENDER_ATTR_NAME);
- if (limitRenderObject instanceof Boolean) {
- result = ((Boolean) limitRenderObject).booleanValue();
- } else {
- result = Boolean.valueOf(String.valueOf(limitRenderObject));
- }
-
- return result;
- }
-
-
- /**
- * Get function name for call on completed ajax request.
- *
- * @param component for wich calculate function name
- * @return name of JavaScript function or <code>null</code>
- */
- //TODO nick - refactor - remove this method?
- public static String getAjaxOncomplete(UIComponent component) {
- return (String) component.getAttributes().get(ONCOMPLETE_ATTR_NAME);
- }
-
- /**
- * Get function name for call before update DOM.
- *
- * @param component for wich calculate function name
- * @return name of JavaScript function or <code>null</code>
- */
- //TODO nick - refactor - remove this method?
- public static String getAjaxOnBeforeDomUpdate(UIComponent component) {
- return (String) component.getAttributes().get(ONBEFOREDOMUPDATE_ATTR_NAME);
- }
-
- /**
- * @param component
- * @return
- * @since 4.0
- */
- public static Object getAjaxData(UIComponent component) {
- return component.getAttributes().get(DATA_ATTR_NAME);
- }
-
}
Modified: trunk/core/api/src/main/java/org/richfaces/resource/ImageType.java
===================================================================
--- trunk/core/api/src/main/java/org/richfaces/resource/ImageType.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/api/src/main/java/org/richfaces/resource/ImageType.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -50,8 +50,6 @@
return new BufferedImage(width, height, BufferedImage.TYPE_BYTE_INDEXED, SAFE_WEB_COLORS_MODEL);
}
},
-
- // TODO - add common png8
JPEG("jpeg") {
@Override
public BufferedImage createImage(int width, int height) {
Modified: trunk/core/api/src/main/java/org/richfaces/skin/SkinFactory.java
===================================================================
--- trunk/core/api/src/main/java/org/richfaces/skin/SkinFactory.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/api/src/main/java/org/richfaces/skin/SkinFactory.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -28,22 +28,13 @@
/**
* Base factory class ( implement Singleton design pattern ). Produce self
* instance to build current skin configuration. At present, realised as lazy
- * creation factory. TODO - select point to initialize.
+ * creation factory.
*
* @author asmirnov(a)exadel.com (latest modification by $Author: alexsmirnov $)
* @version $Revision: 1.1.2.1 $ $Date: 2007/01/09 18:59:43 $
*/
public abstract class SkinFactory {
- /**
- * Initialize skin factory. TODO - make call from init() method of any
- * servlet or custom faces element method ??? If exist resource
- * META-INF/services/org.richfaces.skin.SkinFactory , create
- * instance of class by name from first line of this file. If such class
- * have constructor with {@link SkinFactory} parameter, instantiate it with
- * instance of default factory ( as usual in JSF ). If any error occurs in
- * instantiate custom factory, return default.
- */
@Deprecated
public static final SkinFactory getInstance() {
return getInstance(FacesContext.getCurrentInstance());
Modified: trunk/core/api/src/main/java/org/richfaces/skin/SkinNotFoundException.java
===================================================================
--- trunk/core/api/src/main/java/org/richfaces/skin/SkinNotFoundException.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/api/src/main/java/org/richfaces/skin/SkinNotFoundException.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -34,25 +34,17 @@
public SkinNotFoundException() {
super();
-
- // TODO Auto-generated constructor stub
}
public SkinNotFoundException(String arg0) {
super(arg0);
-
- // TODO Auto-generated constructor stub
}
public SkinNotFoundException(Throwable arg0) {
super(arg0);
-
- // TODO Auto-generated constructor stub
}
public SkinNotFoundException(String arg0, Throwable arg1) {
super(arg0, arg1);
-
- // TODO Auto-generated constructor stub
}
}
Modified: trunk/core/api/src/test/java/org/ajax4jsf/javascript/ScriptUtilsTest.java
===================================================================
--- trunk/core/api/src/test/java/org/ajax4jsf/javascript/ScriptUtilsTest.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/api/src/test/java/org/ajax4jsf/javascript/ScriptUtilsTest.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -27,6 +27,7 @@
import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.isNull;
+import static org.junit.Assert.assertThat;
import java.util.ArrayList;
import java.util.Arrays;
@@ -36,6 +37,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.TimeZone;
import java.util.TreeMap;
import java.util.TreeSet;
@@ -47,6 +49,7 @@
import org.easymock.CaptureType;
import org.jboss.test.faces.mock.MockFacesEnvironment;
import org.junit.Test;
+import org.junit.internal.matchers.StringContains;
/**
* @author shura
@@ -472,4 +475,27 @@
assertEquals("test\\#", ScriptUtils.escapeCSSMetachars("test#"));
assertEquals("test\\#\\=", ScriptUtils.escapeCSSMetachars("test#="));
}
+
+ @Test
+ public void testTimezoneSerialization() throws Exception {
+ TimeZone utcPlusTwoTZ = TimeZone.getTimeZone("GMT+02:00");
+
+ String serializedUTCPlusTwoTZ = dehydrate(ScriptUtils.toScript(utcPlusTwoTZ));
+
+ assertThat(serializedUTCPlusTwoTZ, StringContains.containsString("\"DSTSavings\":0"));
+ assertThat(serializedUTCPlusTwoTZ, StringContains.containsString("\"ID\":\"GMT+02:00\""));
+ assertThat(serializedUTCPlusTwoTZ, StringContains.containsString("\"rawOffset\":7200000"));
+
+ TimeZone pstTimeZone = TimeZone.getTimeZone("PST");
+ String serializedPSTTimeZone = dehydrate(ScriptUtils.toScript(pstTimeZone));
+
+ assertThat(serializedPSTTimeZone, StringContains.containsString("\"ID\":\"PST\""));
+ assertThat(serializedPSTTimeZone, StringContains.containsString("\"rawOffset\":-28800000"));
+
+ TimeZone sfTimeZone = TimeZone.getTimeZone("America/New_York");
+ String serializedSFTimeZone = dehydrate(ScriptUtils.toScript(sfTimeZone));
+
+ assertThat(serializedSFTimeZone, StringContains.containsString("\"ID\":\"America\\/New_York\""));
+ assertThat(serializedSFTimeZone, StringContains.containsString("\"rawOffset\":-18000000"));
+ }
}
Modified: trunk/core/impl/src/main/java/org/richfaces/application/push/impl/AtmospherePushHandler.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/application/push/impl/AtmospherePushHandler.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/java/org/richfaces/application/push/impl/AtmospherePushHandler.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -22,6 +22,7 @@
package org.richfaces.application.push.impl;
import java.io.IOException;
+import java.text.MessageFormat;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
@@ -73,8 +74,6 @@
}
public void onRequest(AtmosphereResource<HttpServletRequest, HttpServletResponse> resource) throws IOException {
- // TODO Auto-generated method stub
-
HttpServletRequest req = resource.getRequest();
HttpServletResponse resp = resource.getResponse();
@@ -87,7 +86,9 @@
}
if (session == null) {
- //TODO - debug log
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug(MessageFormat.format("Session {0} was not found", pushSessionId));
+ }
resp.sendError(HttpServletResponse.SC_BAD_REQUEST);
return;
}
@@ -98,8 +99,7 @@
Request request = createRequest(resource, session);
request.suspend();
} catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ LOGGER.error(e.getMessage(), e);
}
}
Modified: trunk/core/impl/src/main/java/org/richfaces/application/push/impl/jms/SessionImpl.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/application/push/impl/jms/SessionImpl.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/java/org/richfaces/application/push/impl/jms/SessionImpl.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -21,6 +21,7 @@
*/
package org.richfaces.application.push.impl.jms;
+import java.text.MessageFormat;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
@@ -156,12 +157,26 @@
TopicKey rootTopicKey = topicKey.getRootTopicKey();
Topic pushTopic = topicsContext.getTopic(rootTopicKey);
- try {
- //TODO - publish another events
- pushTopic.publishEvent(new SessionPreSubscriptionEvent(pushTopic, topicKey, this));
- } catch (EventAbortedException e) {
+ String errorMessage = null;
+
+ if (pushTopic == null) {
+ errorMessage = MessageFormat.format("Topic ''{0}'' is not configured", topicKey.getTopicAddress());
+ } else {
+ try {
+ //TODO - publish another events
+ pushTopic.publishEvent(new SessionPreSubscriptionEvent(pushTopic, topicKey, this));
+ } catch (EventAbortedException e) {
+ if (e.getMessage() != null) {
+ errorMessage = e.getMessage();
+ } else {
+ errorMessage = MessageFormat.format("Unknown error connecting to ''{0}'' topic", topicKey.getTopicAddress());
+ }
+ }
+ }
+
+ if (errorMessage != null) {
itr.remove();
- failedSubscriptions.put(topicKey, e.getMessage());
+ failedSubscriptions.put(topicKey, errorMessage);
}
}
}
Modified: trunk/core/impl/src/main/java/org/richfaces/cache/JBossCacheCache.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/cache/JBossCacheCache.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/java/org/richfaces/cache/JBossCacheCache.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -17,12 +17,17 @@
import org.jboss.cache.Cache;
import org.jboss.cache.Fqn;
import org.jboss.cache.eviction.ExpirationAlgorithmConfig;
+import org.richfaces.log.Logger;
+import org.richfaces.log.RichfacesLogger;
/**
* @author Nick Belaevski
* @since 4.0
*/
public class JBossCacheCache implements org.richfaces.cache.Cache {
+
+ private static final Logger LOGGER = RichfacesLogger.CACHE.getLogger();
+
private static final String RESOURCE = "resource";
private Cache<String, Object> cache;
@@ -59,29 +64,17 @@
transaction.commit();
}
} catch (SystemException e) {
-
- // TODO Auto-generated catch block
- e.printStackTrace();
+ LOGGER.error(e.getMessage(), e);
} catch (SecurityException e) {
-
- // TODO Auto-generated catch block
- e.printStackTrace();
+ LOGGER.error(e.getMessage(), e);
} catch (IllegalStateException e) {
-
- // TODO Auto-generated catch block
- e.printStackTrace();
+ LOGGER.error(e.getMessage(), e);
} catch (RollbackException e) {
-
- // TODO Auto-generated catch block
- e.printStackTrace();
+ LOGGER.error(e.getMessage(), e);
} catch (HeuristicMixedException e) {
-
- // TODO Auto-generated catch block
- e.printStackTrace();
+ LOGGER.error(e.getMessage(), e);
} catch (HeuristicRollbackException e) {
-
- // TODO Auto-generated catch block
- e.printStackTrace();
+ LOGGER.error(e.getMessage(), e);
}
}
Modified: trunk/core/impl/src/main/java/org/richfaces/cache/JBossCacheCacheFactory.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/cache/JBossCacheCacheFactory.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/java/org/richfaces/cache/JBossCacheCacheFactory.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -82,9 +82,7 @@
try {
stream.close();
} catch (IOException e) {
-
- // TODO Auto-generated catch block
- e.printStackTrace();
+ LOG.debug(e.getMessage(), e);
}
}
}
Modified: trunk/core/impl/src/main/java/org/richfaces/cache/OSCacheCacheFactory.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/cache/OSCacheCacheFactory.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/java/org/richfaces/cache/OSCacheCacheFactory.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -32,6 +32,7 @@
import java.util.Map;
import java.util.Properties;
+import javax.faces.FacesException;
import javax.faces.context.FacesContext;
import org.ajax4jsf.resource.util.URLToStreamHelper;
@@ -75,8 +76,7 @@
try {
stream.close();
} catch (IOException e) {
-
- // TODO: handle exception
+ LOG.debug(e.getMessage(), e);
}
}
}
@@ -91,17 +91,13 @@
try {
cacheProperties.putAll(loadProperties());
} catch (IOException e) {
-
- // TODO Auto-generated catch block
- e.printStackTrace();
+ throw new FacesException(e.getMessage(), e);
}
try {
cacheProperties.putAll(loadProperties());
} catch (IOException e) {
-
- // TODO Auto-generated catch block
- e.printStackTrace();
+ throw new FacesException(e.getMessage(), e);
}
cacheProperties.putAll(env);
Modified: trunk/core/impl/src/main/java/org/richfaces/context/RenderComponentCallback.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/context/RenderComponentCallback.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/java/org/richfaces/context/RenderComponentCallback.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -28,7 +28,6 @@
import javax.faces.context.FacesContext;
import org.ajax4jsf.component.AjaxClientBehavior;
-import org.richfaces.renderkit.util.CoreAjaxRendererUtils;
import org.richfaces.renderkit.util.CoreRendererUtils;
/**
@@ -82,10 +81,10 @@
data = behavior.getData();
} else {
renderValue = target.getAttributes().get("render");
- limitRender = CoreAjaxRendererUtils.isAjaxLimitRender(target);
- onbeforedomupdate = CoreAjaxRendererUtils.getAjaxOnBeforeDomUpdate(target);
- oncomplete = CoreAjaxRendererUtils.getAjaxOncomplete(target);
- data = CoreAjaxRendererUtils.getAjaxData(target);
+ limitRender = isTrue(target.getAttributes().get("limitRender"));
+ onbeforedomupdate = (String) target.getAttributes().get("onbeforedomupdate");
+ oncomplete = (String) target.getAttributes().get("oncomplete");
+ data = target.getAttributes().get("data");
}
Collection<String> unresolvedRenderIds = toCollection(renderValue);
@@ -93,4 +92,16 @@
renderIds = CoreRendererUtils.INSTANCE.findComponentsFor(facesContext, target, unresolvedRenderIds);
}
+ private boolean isTrue(Object value) {
+ boolean result = false;
+
+ if (value instanceof Boolean) {
+ result = ((Boolean) value).booleanValue();
+ } else {
+ result = Boolean.valueOf(String.valueOf(value));
+ }
+
+ return result;
+ }
+
}
Modified: trunk/core/impl/src/main/java/org/richfaces/el/CapturingELResolver.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/el/CapturingELResolver.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/java/org/richfaces/el/CapturingELResolver.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -38,7 +38,7 @@
@Override
public Object getValue(ELContext context, Object base, Object property) {
- if ((base != null) && (property != null)) {
+ if (property != null) {
this.base = base;
this.property = property;
}
@@ -48,7 +48,7 @@
@Override
public Class<?> getType(ELContext context, Object base, Object property) {
- if ((base != null) && (property != null)) {
+ if (property != null) {
this.base = base;
this.property = property;
}
Modified: trunk/core/impl/src/main/java/org/richfaces/renderkit/util/CoreRendererUtils.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/renderkit/util/CoreRendererUtils.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/java/org/richfaces/renderkit/util/CoreRendererUtils.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -118,9 +118,6 @@
*/
public Collection<String> findComponentsFor(FacesContext context, UIComponent component,
Collection<String> shortIds) {
-
- // TODO - implement
- // TODO add support for @*
Set<String> result = new LinkedHashSet<String>(shortIds.size());
if (checkKeyword(shortIds, ALL)) {
Modified: trunk/core/impl/src/main/java/org/richfaces/resource/AbstractBaseResource.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/resource/AbstractBaseResource.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/java/org/richfaces/resource/AbstractBaseResource.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -56,7 +56,6 @@
super();
}
- // TODO remove FacesContext argument?
protected int getContentLength(FacesContext context) {
return -1;
}
@@ -116,9 +115,7 @@
}
}
} catch (IOException e) {
-
- // TODO Auto-generated catch block
- e.printStackTrace();
+ LOGGER.error(e.getMessage(), e);
}
} else {
if (LOGGER.isDebugEnabled()) {
@@ -140,7 +137,6 @@
return classLoader;
}
- //TODO nick - review
private String getResourceVersion() {
if (this instanceof VersionedResource) {
return ((VersionedResource) this).getVersion();
@@ -151,8 +147,6 @@
@Override
public String getRequestPath() {
-
- // TODO - cache resource request path in request scope
FacesContext context = FacesContext.getCurrentInstance();
ResourceCodec resourceCodec = ServiceTracker.getService(context, ResourceCodec.class);
String libraryName = getLibraryName();
@@ -207,8 +201,6 @@
String contentType = getContentType();
if (contentType != null) {
-
- // TODO add content-encoding?
headers.put("Content-Type", contentType);
}
Modified: trunk/core/impl/src/main/java/org/richfaces/resource/ExternalStaticResource.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/resource/ExternalStaticResource.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/java/org/richfaces/resource/ExternalStaticResource.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -98,7 +98,6 @@
@Override
public URL getURL() {
- //TODO - review
throw new UnsupportedOperationException();
}
Modified: trunk/core/impl/src/main/java/org/richfaces/resource/ResourceFactoryImpl.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/resource/ResourceFactoryImpl.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/java/org/richfaces/resource/ResourceFactoryImpl.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -303,7 +303,6 @@
* @return
*/
protected Resource createHandlerDependentResource(ResourceKey resourceKey, Map<String, String> parameters) {
- // TODO nick - libraryName as package name?
if (!Strings.isNullOrEmpty(resourceKey.getLibraryName())) {
return null;
}
@@ -357,7 +356,6 @@
private boolean checkResourceMarker(String resourceName) {
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
- // TODO resource marker extension name?
URL resourceMarkerUrl = contextClassLoader.getResource("META-INF/" + resourceName
+ ".resource.properties");
Modified: trunk/core/impl/src/main/java/org/richfaces/skin/SkinBean.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/skin/SkinBean.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/java/org/richfaces/skin/SkinBean.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -39,8 +39,6 @@
* @see org.richfaces.skin.Skin#hashCode(javax.faces.context.FacesContext)
*/
public int hashCode(FacesContext context) {
-
- // TODO Auto-generated method stub
return getSkin().hashCode(context);
}
@@ -50,8 +48,6 @@
*/
@Override
public Set entrySet() {
-
- // TODO Auto-generated method stub
return Collections.EMPTY_SET;
}
@@ -84,7 +80,7 @@
private Skin getSkin() {
FacesContext context = FacesContext.getCurrentInstance();
- return SkinFactory.getInstance().getSkin(context);
+ return SkinFactory.getInstance(context).getSkin(context);
}
/*
@@ -102,8 +98,6 @@
*/
@Override
public boolean isEmpty() {
-
- // TODO Auto-generated method stub
return false;
}
@@ -130,7 +124,7 @@
/* Static methods for manipulate skins */
public static Object skinHashCode() {
FacesContext context = FacesContext.getCurrentInstance();
- int hashCode = SkinFactory.getInstance().getSkin(context).hashCode(context);
+ int hashCode = SkinFactory.getInstance(context).getSkin(context).hashCode(context);
byte[] bs = ByteBuffer.allocate(4).putInt(hashCode).array();
return bs;
Modified: trunk/core/impl/src/main/java/org/richfaces/util/Util.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/util/Util.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/java/org/richfaces/util/Util.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -167,9 +167,7 @@
try {
result = (Date) ((Format) RFC1123_DATE_FORMATTER.clone()).parseObject(s);
} catch (ParseException e) {
-
- // TODO Auto-generated catch block
- e.printStackTrace();
+ RESOURCE_LOGGER.error(e.getMessage(), e);
}
}
Modified: trunk/core/impl/src/main/resources/META-INF/resources/jquery.js
===================================================================
--- trunk/core/impl/src/main/resources/META-INF/resources/jquery.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/resources/META-INF/resources/jquery.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,5 +1,5 @@
/*!
- * jQuery JavaScript Library v1.5
+ * jQuery JavaScript Library v1.5.1
* http://jquery.com/
*
* Copyright 2011, John Resig
@@ -11,7 +11,7 @@
* Copyright 2011, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
*
- * Date: Mon Jan 31 08:31:29 2011 -0500
+ * Date: Wed Feb 23 13:55:29 2011 -0500
*/
(function( window, undefined ) {
@@ -202,7 +202,7 @@
selector: "",
// The current version of jQuery being used
- jquery: "1.5",
+ jquery: "1.5.1",
// The default length of a jQuery object is 0
length: 0,
@@ -313,7 +313,7 @@
jQuery.fn.init.prototype = jQuery.fn;
jQuery.extend = jQuery.fn.extend = function() {
- var options, name, src, copy, copyIsArray, clone,
+ var options, name, src, copy, copyIsArray, clone,
target = arguments[0] || {},
i = 1,
length = arguments.length,
@@ -585,11 +585,9 @@
if ( data && rnotwhite.test(data) ) {
// Inspired by code by Andrea Giammarchi
// http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom...
- var head = document.getElementsByTagName("head")[0] || document.documentElement,
- script = document.createElement("script");
+ var head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement,
+ script = document.createElement( "script" );
- script.type = "text/javascript";
-
if ( jQuery.support.scriptEval() ) {
script.appendChild( document.createTextNode( data ) );
} else {
@@ -864,6 +862,12 @@
callbacks.shift().apply( context, args );
}
}
+ // We have to add a catch block for
+ // IE prior to 8 or else the finally
+ // block will never get executed
+ catch (e) {
+ throw e;
+ }
finally {
fired = [ context, args ];
firing = 0;
@@ -911,22 +915,22 @@
isRejected: failDeferred.isResolved,
// Get a promise for this deferred
// If obj is provided, the promise aspect is added to the object
- promise: function( obj , i /* internal */ ) {
+ promise: function( obj ) {
if ( obj == null ) {
if ( promise ) {
return promise;
}
promise = obj = {};
}
- i = promiseMethods.length;
+ var i = promiseMethods.length;
while( i-- ) {
- obj[ promiseMethods[ i ] ] = deferred[ promiseMethods[ i ] ];
+ obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ];
}
return obj;
}
} );
// Make sure only one callback list will be used
- deferred.then( failDeferred.cancel, deferred.cancel );
+ deferred.done( failDeferred.cancel ).fail( deferred.cancel );
// Unexpose cancel
delete deferred.cancel;
// Call given func if any
@@ -938,24 +942,34 @@
// Deferred helper
when: function( object ) {
- var args = arguments,
- length = args.length,
- deferred = length <= 1 && object && jQuery.isFunction( object.promise ) ?
+ var lastIndex = arguments.length,
+ deferred = lastIndex <= 1 && object && jQuery.isFunction( object.promise ) ?
object :
jQuery.Deferred(),
- promise = deferred.promise(),
- resolveArray;
+ promise = deferred.promise();
- if ( length > 1 ) {
- resolveArray = new Array( length );
- jQuery.each( args, function( index, element ) {
- jQuery.when( element ).then( function( value ) {
- resolveArray[ index ] = arguments.length > 1 ? slice.call( arguments, 0 ) : value;
- if( ! --length ) {
- deferred.resolveWith( promise, resolveArray );
- }
- }, deferred.reject );
- } );
+ if ( lastIndex > 1 ) {
+ var array = slice.call( arguments, 0 ),
+ count = lastIndex,
+ iCallback = function( index ) {
+ return function( value ) {
+ array[ index ] = arguments.length > 1 ? slice.call( arguments, 0 ) : value;
+ if ( !( --count ) ) {
+ deferred.resolveWith( promise, array );
+ }
+ };
+ };
+ while( ( lastIndex-- ) ) {
+ object = array[ lastIndex ];
+ if ( object && jQuery.isFunction( object.promise ) ) {
+ object.promise().then( iCallback(lastIndex), deferred.reject );
+ } else {
+ --count;
+ }
+ }
+ if ( !count ) {
+ deferred.resolveWith( promise, array );
+ }
} else if ( deferred !== object ) {
deferred.resolve( object );
}
@@ -1071,7 +1085,7 @@
}
// Expose jQuery to the global object
-return (window.jQuery = window.$ = jQuery);
+return jQuery;
})();
@@ -1088,7 +1102,8 @@
var all = div.getElementsByTagName("*"),
a = div.getElementsByTagName("a")[0],
select = document.createElement("select"),
- opt = select.appendChild( document.createElement("option") );
+ opt = select.appendChild( document.createElement("option") ),
+ input = div.getElementsByTagName("input")[0];
// Can't get basic test support
if ( !all || !all.length || !a ) {
@@ -1127,7 +1142,7 @@
// Make sure that if no value is specified for a checkbox
// that it defaults to "on".
// (WebKit defaults to "" instead)
- checkOn: div.getElementsByTagName("input")[0].value === "on",
+ checkOn: input.value === "on",
// Make sure that a selected-by-default option has a working selected property.
// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
@@ -1137,26 +1152,29 @@
deleteExpando: true,
optDisabled: false,
checkClone: false,
- _scriptEval: null,
noCloneEvent: true,
+ noCloneChecked: true,
boxModel: null,
inlineBlockNeedsLayout: false,
shrinkWrapBlocks: false,
reliableHiddenOffsets: true
};
+ input.checked = true;
+ jQuery.support.noCloneChecked = input.cloneNode( true ).checked;
+
// Make sure that the options inside disabled selects aren't marked as disabled
// (WebKit marks them as diabled)
select.disabled = true;
jQuery.support.optDisabled = !opt.disabled;
+ var _scriptEval = null;
jQuery.support.scriptEval = function() {
- if ( jQuery.support._scriptEval === null ) {
+ if ( _scriptEval === null ) {
var root = document.documentElement,
script = document.createElement("script"),
id = "script" + jQuery.now();
- script.type = "text/javascript";
try {
script.appendChild( document.createTextNode( "window." + id + "=1;" ) );
} catch(e) {}
@@ -1167,10 +1185,10 @@
// tag with appendChild/createTextNode
// (IE doesn't support this, fails, and uses .text instead)
if ( window[ id ] ) {
- jQuery.support._scriptEval = true;
+ _scriptEval = true;
delete window[ id ];
} else {
- jQuery.support._scriptEval = false;
+ _scriptEval = false;
}
root.removeChild( script );
@@ -1178,7 +1196,7 @@
root = script = id = null;
}
- return jQuery.support._scriptEval;
+ return _scriptEval;
};
// Test to see if it's possible to delete an expando from an element
@@ -1190,7 +1208,7 @@
jQuery.support.deleteExpando = false;
}
- if ( div.attachEvent && div.fireEvent ) {
+ if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
div.attachEvent("onclick", function click() {
// Cloning a node shouldn't copy over any
// bound event handlers (IE does this)
@@ -1321,7 +1339,7 @@
hasData: function( elem ) {
elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
- return !!elem && !jQuery.isEmptyObject(elem);
+ return !!elem && !isEmptyDataObject( elem );
},
data: function( elem, name, data, pvt /* Internal Use Only */ ) {
@@ -1361,11 +1379,18 @@
if ( !cache[ id ] ) {
cache[ id ] = {};
+
+ // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
+ // metadata on plain JS objects when the object is serialized using
+ // JSON.stringify
+ if ( !isNode ) {
+ cache[ id ].toJSON = jQuery.noop;
+ }
}
// An object can be passed to jQuery.data instead of a key/value pair; this gets
// shallow copied over onto the existing cache
- if ( typeof name === "object" ) {
+ if ( typeof name === "object" || typeof name === "function" ) {
if ( pvt ) {
cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name);
} else {
@@ -1427,7 +1452,7 @@
// If there is no data left in the cache, we want to continue
// and let the cache object itself get destroyed
- if ( !jQuery.isEmptyObject(thisCache) ) {
+ if ( !isEmptyDataObject(thisCache) ) {
return;
}
}
@@ -1439,7 +1464,7 @@
// Don't destroy the parent cache unless the internal data object
// had been the only thing left in it
- if ( !jQuery.isEmptyObject(cache[ id ]) ) {
+ if ( !isEmptyDataObject(cache[ id ]) ) {
return;
}
}
@@ -1460,6 +1485,13 @@
// data if it existed
if ( internalCache ) {
cache[ id ] = {};
+ // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
+ // metadata on plain JS objects when the object is serialized using
+ // JSON.stringify
+ if ( !isNode ) {
+ cache[ id ].toJSON = jQuery.noop;
+ }
+
cache[ id ][ internalKey ] = internalCache;
// Otherwise, we need to eliminate the expando on the node to avoid
@@ -1588,9 +1620,22 @@
return data;
}
+// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON
+// property to be considered empty objects; this property always exists in
+// order to make sure JSON.stringify does not expose internal metadata
+function isEmptyDataObject( obj ) {
+ for ( var name in obj ) {
+ if ( name !== "toJSON" ) {
+ return false;
+ }
+ }
+ return true;
+}
+
+
jQuery.extend({
queue: function( elem, type, data ) {
if ( !elem ) {
@@ -1888,6 +1933,11 @@
}
}
+ // Fixes Bug #2551 -- select.val() broken in IE after form.reset()
+ if ( one && !values.length && options.length ) {
+ return jQuery( options[ index ] ).val();
+ }
+
return values;
}
@@ -2081,8 +2131,7 @@
rescape = /[^\w\s.|`]/g,
fcleanup = function( nm ) {
return nm.replace(rescape, "\\$&");
- },
- eventKey = "events";
+ };
/*
* A number of helper functions used for managing events.
@@ -2098,17 +2147,22 @@
return;
}
- // For whatever reason, IE has trouble passing the window object
- // around, causing it to be cloned in the process
- if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) {
- elem = window;
+ // TODO :: Use a try/catch until it's safe to pull this out (likely 1.6)
+ // Minor release fix for bug #8018
+ try {
+ // For whatever reason, IE has trouble passing the window object
+ // around, causing it to be cloned in the process
+ if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) {
+ elem = window;
+ }
}
+ catch ( e ) {}
if ( handler === false ) {
handler = returnFalse;
} else if ( !handler ) {
// Fixes bug #7229. Fix recommended by jdalton
- return;
+ return;
}
var handleObjIn, handleObj;
@@ -2132,23 +2186,10 @@
return;
}
- var events = elemData[ eventKey ],
+ var events = elemData.events,
eventHandle = elemData.handle;
- if ( typeof events === "function" ) {
- // On plain objects events is a fn that holds the the data
- // which prevents this data from being JSON serialized
- // the function does not need to be called, it just contains the data
- eventHandle = events.handle;
- events = events.events;
-
- } else if ( !events ) {
- if ( !elem.nodeType ) {
- // On plain objects, create a fn that acts as the holder
- // of the values to avoid JSON serialization of event data
- elemData[ eventKey ] = elemData = function(){};
- }
-
+ if ( !events ) {
elemData.events = events = {};
}
@@ -2249,17 +2290,12 @@
var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType,
elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
- events = elemData && elemData[ eventKey ];
+ events = elemData && elemData.events;
if ( !elemData || !events ) {
return;
}
- if ( typeof events === "function" ) {
- elemData = events;
- events = events.events;
- }
-
// types is actually an event object here
if ( types && types.type ) {
handler = types.handler;
@@ -2359,10 +2395,7 @@
delete elemData.events;
delete elemData.handle;
- if ( typeof elemData === "function" ) {
- jQuery.removeData( elem, eventKey, true );
-
- } else if ( jQuery.isEmptyObject( elemData ) ) {
+ if ( jQuery.isEmptyObject( elemData ) ) {
jQuery.removeData( elem, undefined, true );
}
}
@@ -2403,7 +2436,7 @@
// points to jQuery.expando
var internalKey = jQuery.expando,
internalCache = this[ internalKey ];
- if ( internalCache && internalCache.events && internalCache.events[type] ) {
+ if ( internalCache && internalCache.events && internalCache.events[ type ] ) {
jQuery.event.trigger( event, data, internalCache.handle.elem );
}
});
@@ -2429,9 +2462,7 @@
event.currentTarget = elem;
// Trigger the event, it is assumed that "handle" is a function
- var handle = elem.nodeType ?
- jQuery._data( elem, "handle" ) :
- (jQuery._data( elem, eventKey ) || {}).handle;
+ var handle = jQuery._data( elem, "handle" );
if ( handle ) {
handle.apply( elem, data );
@@ -2509,12 +2540,8 @@
event.namespace = event.namespace || namespace_sort.join(".");
- events = jQuery._data(this, eventKey);
+ events = jQuery._data(this, "events");
- if ( typeof events === "function" ) {
- events = events.events;
- }
-
handlers = (events || {})[ event.type ];
if ( events && handlers ) {
@@ -2680,7 +2707,7 @@
// Events bubbling up the document may have been marked as prevented
// by a handler lower down the tree; reflect the correct value.
- this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false ||
+ this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false ||
src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse;
// Event type
@@ -2755,6 +2782,12 @@
// Firefox sometimes assigns relatedTarget a XUL element
// which we cannot access the parentNode property of
try {
+
+ // Chrome does something similar, the parentNode property
+ // can be accessed but is null.
+ if ( parent !== document && !parent.parentNode ) {
+ return;
+ }
// Traverse up the tree
while ( parent && parent !== this ) {
parent = parent.parentNode;
@@ -2805,8 +2838,7 @@
type = elem.type;
if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) {
- e.liveFired = undefined;
- return trigger( "submit", this, arguments );
+ trigger( "submit", this, arguments );
}
});
@@ -2815,8 +2847,7 @@
type = elem.type;
if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) {
- e.liveFired = undefined;
- return trigger( "submit", this, arguments );
+ trigger( "submit", this, arguments );
}
});
@@ -2879,7 +2910,7 @@
if ( data != null || val ) {
e.type = "change";
e.liveFired = undefined;
- return jQuery.event.trigger( e, arguments[1], elem );
+ jQuery.event.trigger( e, arguments[1], elem );
}
};
@@ -2893,7 +2924,7 @@
var elem = e.target, type = elem.type;
if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) {
- return testChange.call( this, e );
+ testChange.call( this, e );
}
},
@@ -2905,7 +2936,7 @@
if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") ||
(e.keyCode === 32 && (type === "checkbox" || type === "radio")) ||
type === "select-multiple" ) {
- return testChange.call( this, e );
+ testChange.call( this, e );
}
},
@@ -2944,8 +2975,18 @@
}
function trigger( type, elem, args ) {
- args[0].type = type;
- return jQuery.event.handle.apply( elem, args );
+ // Piggyback on a donor event to simulate a different one.
+ // Fake originalEvent to avoid donor's stopPropagation, but if the
+ // simulated event prevents default then we do the same on the donor.
+ // Don't pass args or remember liveFired; they apply to the donor event.
+ var event = jQuery.extend( {}, args[ 0 ] );
+ event.type = type;
+ event.originalEvent = {};
+ event.liveFired = undefined;
+ jQuery.event.handle.call( elem, event );
+ if ( event.isDefaultPrevented() ) {
+ args[ 0 ].preventDefault();
+ }
}
// Create "bubbling" focus and blur events
@@ -2954,8 +2995,8 @@
jQuery.event.special[ fix ] = {
setup: function() {
this.addEventListener( orig, handler, true );
- },
- teardown: function() {
+ },
+ teardown: function() {
this.removeEventListener( orig, handler, true );
}
};
@@ -3148,12 +3189,8 @@
var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret,
elems = [],
selectors = [],
- events = jQuery._data( this, eventKey );
+ events = jQuery._data( this, "events" );
- if ( typeof events === "function" ) {
- events = events.events;
- }
-
// Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911)
if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) {
return;
@@ -3186,7 +3223,7 @@
for ( j = 0; j < live.length; j++ ) {
handleObj = live[j];
- if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) ) {
+ if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) {
elem = close.elem;
related = null;
@@ -3269,7 +3306,9 @@
done = 0,
toString = Object.prototype.toString,
hasDuplicate = false,
- baseHasDuplicate = true;
+ baseHasDuplicate = true,
+ rBackslash = /\\/g,
+ rNonWord = /\W/;
// Here we check if the JavaScript engine is using some sort of
// optimization where it does not always call our comparision
@@ -3468,7 +3507,7 @@
match.splice( 1, 1 );
if ( left.substr( left.length - 1 ) !== "\\" ) {
- match[1] = (match[1] || "").replace(/\\/g, "");
+ match[1] = (match[1] || "").replace( rBackslash, "" );
set = Expr.find[ type ]( match, context, isXML );
if ( set != null ) {
@@ -3607,13 +3646,16 @@
attrHandle: {
href: function( elem ) {
return elem.getAttribute( "href" );
+ },
+ type: function( elem ) {
+ return elem.getAttribute( "type" );
}
},
relative: {
"+": function(checkSet, part){
var isPartStr = typeof part === "string",
- isTag = isPartStr && !/\W/.test( part ),
+ isTag = isPartStr && !rNonWord.test( part ),
isPartStrNotTag = isPartStr && !isTag;
if ( isTag ) {
@@ -3641,7 +3683,7 @@
i = 0,
l = checkSet.length;
- if ( isPartStr && !/\W/.test( part ) ) {
+ if ( isPartStr && !rNonWord.test( part ) ) {
part = part.toLowerCase();
for ( ; i < l; i++ ) {
@@ -3675,7 +3717,7 @@
doneName = done++,
checkFn = dirCheck;
- if ( typeof part === "string" && !/\W/.test(part) ) {
+ if ( typeof part === "string" && !rNonWord.test( part ) ) {
part = part.toLowerCase();
nodeCheck = part;
checkFn = dirNodeCheck;
@@ -3689,7 +3731,7 @@
doneName = done++,
checkFn = dirCheck;
- if ( typeof part === "string" && !/\W/.test( part ) ) {
+ if ( typeof part === "string" && !rNonWord.test( part ) ) {
part = part.toLowerCase();
nodeCheck = part;
checkFn = dirNodeCheck;
@@ -3732,7 +3774,7 @@
},
preFilter: {
CLASS: function( match, curLoop, inplace, result, not, isXML ) {
- match = " " + match[1].replace(/\\/g, "") + " ";
+ match = " " + match[1].replace( rBackslash, "" ) + " ";
if ( isXML ) {
return match;
@@ -3755,11 +3797,11 @@
},
ID: function( match ) {
- return match[1].replace(/\\/g, "");
+ return match[1].replace( rBackslash, "" );
},
TAG: function( match, curLoop ) {
- return match[1].toLowerCase();
+ return match[1].replace( rBackslash, "" ).toLowerCase();
},
CHILD: function( match ) {
@@ -3790,14 +3832,14 @@
},
ATTR: function( match, curLoop, inplace, result, not, isXML ) {
- var name = match[1] = match[1].replace(/\\/g, "");
+ var name = match[1] = match[1].replace( rBackslash, "" );
if ( !isXML && Expr.attrMap[name] ) {
match[1] = Expr.attrMap[name];
}
// Handle if an un-quoted value was used
- match[4] = ( match[4] || match[5] || "" ).replace(/\\/g, "");
+ match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
if ( match[2] === "~=" ) {
match[4] = " " + match[4] + " ";
@@ -3852,7 +3894,9 @@
selected: function( elem ) {
// Accessing this property makes selected-by-default
// options in Safari work properly
- elem.parentNode.selectedIndex;
+ if ( elem.parentNode ) {
+ elem.parentNode.selectedIndex;
+ }
return elem.selected === true;
},
@@ -3874,7 +3918,9 @@
},
text: function( elem ) {
- return "text" === elem.type;
+ // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
+ // use getAttribute instead to test this case
+ return "text" === elem.getAttribute( 'type' );
},
radio: function( elem ) {
return "radio" === elem.type;
@@ -4407,7 +4453,8 @@
// and working up from there (Thanks to Andrew Dupont for the technique)
// IE 8 doesn't work on object elements
} else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
- var old = context.getAttribute( "id" ),
+ var oldContext = context,
+ old = context.getAttribute( "id" ),
nid = old || id,
hasParent = context.parentNode,
relativeHierarchySelector = /^\s*[+~]/.test( query );
@@ -4429,7 +4476,7 @@
} catch(pseudoError) {
} finally {
if ( !old ) {
- context.removeAttribute( "id" );
+ oldContext.removeAttribute( "id" );
}
}
}
@@ -4845,11 +4892,11 @@
}, function( name, fn ) {
jQuery.fn[ name ] = function( until, selector ) {
var ret = jQuery.map( this, fn, until ),
- // The variable 'args' was introduced in
- // https://github.com/jquery/jquery/commit/52a0238
- // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed.
- // http://code.google.com/p/v8/issues/detail?id=1050
- args = slice.call(arguments);
+ // The variable 'args' was introduced in
+ // https://github.com/jquery/jquery/commit/52a0238
+ // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed.
+ // http://code.google.com/p/v8/issues/detail?id=1050
+ args = slice.call(arguments);
if ( !runtil.test( name ) ) {
selector = until;
@@ -4959,7 +5006,7 @@
rtbody = /<tbody/i,
rhtml = /<|&#?\w+;/,
rnocache = /<(?:script|object|embed|option|style)/i,
- // checked="checked" or checked (html5)
+ // checked="checked" or checked
rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
wrapMap = {
option: [ 1, "<select multiple='multiple'>", "</select>" ],
@@ -5111,7 +5158,7 @@
}
if ( elem.parentNode ) {
- elem.parentNode.removeChild( elem );
+ elem.parentNode.removeChild( elem );
}
}
}
@@ -5136,7 +5183,7 @@
},
clone: function( dataAndEvents, deepDataAndEvents ) {
- dataAndEvents = dataAndEvents == null ? true : dataAndEvents;
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
return this.map( function () {
@@ -5305,8 +5352,8 @@
}
var internalKey = jQuery.expando,
- oldData = jQuery.data( src ),
- curData = jQuery.data( dest, oldData );
+ oldData = jQuery.data( src ),
+ curData = jQuery.data( dest, oldData );
// Switch to use the internal data object, if it exists, for the next
// stage of data copying
@@ -5320,7 +5367,7 @@
for ( var type in events ) {
for ( var i = 0, l = events[ type ].length; i < l; i++ ) {
- jQuery.event.add( dest, type, events[ type ][ i ], events[ type ][ i ].data );
+ jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? "." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ type ][ i ].data );
}
}
}
@@ -5441,6 +5488,18 @@
};
});
+function getAll( elem ) {
+ if ( "getElementsByTagName" in elem ) {
+ return elem.getElementsByTagName( "*" );
+
+ } else if ( "querySelectorAll" in elem ) {
+ return elem.querySelectorAll( "*" );
+
+ } else {
+ return [];
+ }
+}
+
jQuery.extend({
clone: function( elem, dataAndEvents, deepDataAndEvents ) {
var clone = elem.cloneNode(true),
@@ -5448,17 +5507,20 @@
destElements,
i;
- if ( !jQuery.support.noCloneEvent && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
+ if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
+ (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
// IE copies events bound via attachEvent when using cloneNode.
// Calling detachEvent on the clone will also remove the events
// from the original. In order to get around this, we use some
// proprietary methods to clear the events. Thanks to MooTools
// guys for this hotness.
+ cloneFixAttributes( elem, clone );
+
// Using Sizzle here is crazy slow, so we use getElementsByTagName
// instead
- srcElements = elem.getElementsByTagName("*");
- destElements = clone.getElementsByTagName("*");
+ srcElements = getAll( elem );
+ destElements = getAll( clone );
// Weird iteration because IE will replace the length property
// with an element if you are cloning the body and one of the
@@ -5466,30 +5528,25 @@
for ( i = 0; srcElements[i]; ++i ) {
cloneFixAttributes( srcElements[i], destElements[i] );
}
-
- cloneFixAttributes( elem, clone );
}
// Copy the events from the original to the clone
if ( dataAndEvents ) {
-
cloneCopyEvent( elem, clone );
- if ( deepDataAndEvents && "getElementsByTagName" in elem ) {
+ if ( deepDataAndEvents ) {
+ srcElements = getAll( elem );
+ destElements = getAll( clone );
- srcElements = elem.getElementsByTagName("*");
- destElements = clone.getElementsByTagName("*");
-
- if ( srcElements.length ) {
- for ( i = 0; srcElements[i]; ++i ) {
- cloneCopyEvent( srcElements[i], destElements[i] );
- }
+ for ( i = 0; srcElements[i]; ++i ) {
+ cloneCopyEvent( srcElements[i], destElements[i] );
}
}
}
+
// Return the cloned set
return clone;
- },
+},
clean: function( elems, context, fragment, scripts ) {
context = context || document;
@@ -5910,7 +5967,7 @@
if ( document.documentElement.currentStyle ) {
currentStyle = function( elem, name ) {
- var left,
+ var left,
ret = elem.currentStyle && elem.currentStyle[ name ],
rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ],
style = elem.style;
@@ -5988,8 +6045,10 @@
rbracket = /\[\]$/,
rCRLF = /\r?\n/g,
rhash = /#.*$/,
- rheaders = /^(.*?):\s*(.*?)\r?$/mg, // IE leaves an \r character at EOL
+ rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
+ // #7653, #8125, #8152: local protocol detection
+ rlocalProtocol = /(?:^file|^widget|\-extension):$/,
rnoContent = /^(?:GET|HEAD)$/,
rprotocol = /^\/\//,
rquery = /\?/,
@@ -5997,7 +6056,11 @@
rselectTextarea = /^(?:select|textarea)/i,
rspacesAjax = /\s+/,
rts = /([?&])_=[^&]*/,
- rurl = /^(\w+:)\/\/([^\/?#:]+)(?::(\d+))?/,
+ rucHeaders = /(^|\-)([a-z])/g,
+ rucHeadersFunc = function( _, $1, $2 ) {
+ return $1 + $2.toUpperCase();
+ },
+ rurl = /^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,
// Keep a copy of the old load method
_load = jQuery.fn.load,
@@ -6018,8 +6081,29 @@
* 2) the catchall symbol "*" can be used
* 3) selection will start with transport dataType and THEN go to "*" if needed
*/
- transports = {};
+ transports = {},
+ // Document location
+ ajaxLocation,
+
+ // Document location segments
+ ajaxLocParts;
+
+// #8138, IE may throw an exception when accessing
+// a field from document.location if document.domain has been set
+try {
+ ajaxLocation = document.location.href;
+} catch( e ) {
+ // Use the href attribute of an A element
+ // since IE will modify it given document.location
+ ajaxLocation = document.createElement( "a" );
+ ajaxLocation.href = "";
+ ajaxLocation = ajaxLocation.href;
+}
+
+// Segment location into parts
+ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() );
+
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
function addToPrefiltersOrTransports( structure ) {
@@ -6057,7 +6141,7 @@
}
//Base inspection function for prefilters and transports
-function inspectPrefiltersOrTransports( structure, options, originalOptions, jXHR,
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
dataType /* internal */, inspected /* internal */ ) {
dataType = dataType || options.dataTypes[ 0 ];
@@ -6072,16 +6156,16 @@
selection;
for(; i < length && ( executeOnly || !selection ); i++ ) {
- selection = list[ i ]( options, originalOptions, jXHR );
+ selection = list[ i ]( options, originalOptions, jqXHR );
// If we got redirected to another dataType
- // we try there if not done already
+ // we try there if executing only and not done already
if ( typeof selection === "string" ) {
- if ( inspected[ selection ] ) {
+ if ( !executeOnly || inspected[ selection ] ) {
selection = undefined;
} else {
options.dataTypes.unshift( selection );
selection = inspectPrefiltersOrTransports(
- structure, options, originalOptions, jXHR, selection, inspected );
+ structure, options, originalOptions, jqXHR, selection, inspected );
}
}
}
@@ -6089,7 +6173,7 @@
// we try the catchall dataType if not done already
if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
selection = inspectPrefiltersOrTransports(
- structure, options, originalOptions, jXHR, "*", inspected );
+ structure, options, originalOptions, jqXHR, "*", inspected );
}
// unnecessary when only executing (prefilters)
// but it'll be ignored by the caller in that case
@@ -6121,7 +6205,7 @@
if ( jQuery.isFunction( params ) ) {
// We assume that it's the callback
callback = params;
- params = null;
+ params = undefined;
// Otherwise, build a param string
} else if ( typeof params === "object" ) {
@@ -6139,14 +6223,14 @@
dataType: "html",
data: params,
// Complete callback (responseText is used internally)
- complete: function( jXHR, status, responseText ) {
- // Store the response as specified by the jXHR object
- responseText = jXHR.responseText;
+ complete: function( jqXHR, status, responseText ) {
+ // Store the response as specified by the jqXHR object
+ responseText = jqXHR.responseText;
// If successful, inject the HTML into all the matched elements
- if ( jXHR.isResolved() ) {
+ if ( jqXHR.isResolved() ) {
// #4825: Get the actual response in case
// a dataFilter is present in ajaxSettings
- jXHR.done(function( r ) {
+ jqXHR.done(function( r ) {
responseText = r;
});
// See if a selector was specified
@@ -6165,7 +6249,7 @@
}
if ( callback ) {
- self.each( callback, [ responseText, status, jXHR ] );
+ self.each( callback, [ responseText, status, jqXHR ] );
}
}
});
@@ -6213,7 +6297,7 @@
if ( jQuery.isFunction( data ) ) {
type = type || callback;
callback = data;
- data = null;
+ data = undefined;
}
return jQuery.ajax({
@@ -6229,22 +6313,39 @@
jQuery.extend({
getScript: function( url, callback ) {
- return jQuery.get( url, null, callback, "script" );
+ return jQuery.get( url, undefined, callback, "script" );
},
getJSON: function( url, data, callback ) {
return jQuery.get( url, data, callback, "json" );
},
- ajaxSetup: function( settings ) {
- jQuery.extend( true, jQuery.ajaxSettings, settings );
- if ( settings.context ) {
- jQuery.ajaxSettings.context = settings.context;
+ // Creates a full fledged settings object into target
+ // with both ajaxSettings and settings fields.
+ // If target is omitted, writes into ajaxSettings.
+ ajaxSetup: function ( target, settings ) {
+ if ( !settings ) {
+ // Only one parameter, we extend ajaxSettings
+ settings = target;
+ target = jQuery.extend( true, jQuery.ajaxSettings, settings );
+ } else {
+ // target was provided, we extend into it
+ jQuery.extend( true, target, jQuery.ajaxSettings, settings );
}
+ // Flatten fields we don't want deep extended
+ for( var field in { context: 1, url: 1 } ) {
+ if ( field in settings ) {
+ target[ field ] = settings[ field ];
+ } else if( field in jQuery.ajaxSettings ) {
+ target[ field ] = jQuery.ajaxSettings[ field ];
+ }
+ }
+ return target;
},
ajaxSettings: {
- url: location.href,
+ url: ajaxLocation,
+ isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
global: true,
type: "GET",
contentType: "application/x-www-form-urlencoded",
@@ -6306,9 +6407,8 @@
// Main method
ajax: function( url, options ) {
- // If options is not an object,
- // we simulate pre-1.5 signature
- if ( typeof options !== "object" ) {
+ // If url is an object, simulate pre-1.5 signature
+ if ( typeof url === "object" ) {
options = url;
url = undefined;
}
@@ -6317,19 +6417,22 @@
options = options || {};
var // Create the final options object
- s = jQuery.extend( true, {}, jQuery.ajaxSettings, options ),
- // Callbacks contexts
- // We force the original context if it exists
- // or take it from jQuery.ajaxSettings otherwise
- // (plain objects used as context get extended)
- callbackContext =
- ( s.context = ( "context" in options ? options : jQuery.ajaxSettings ).context ) || s,
- globalEventContext = callbackContext === s ? jQuery.event : jQuery( callbackContext ),
+ s = jQuery.ajaxSetup( {}, options ),
+ // Callbacks context
+ callbackContext = s.context || s,
+ // Context for global events
+ // It's the callbackContext if one was provided in the options
+ // and if it's a DOM node or a jQuery collection
+ globalEventContext = callbackContext !== s &&
+ ( callbackContext.nodeType || callbackContext instanceof jQuery ) ?
+ jQuery( callbackContext ) : jQuery.event,
// Deferreds
deferred = jQuery.Deferred(),
completeDeferred = jQuery._Deferred(),
// Status-dependent callbacks
statusCode = s.statusCode || {},
+ // ifModified key
+ ifModifiedKey,
// Headers (they are sent all at once)
requestHeaders = {},
// Response headers
@@ -6340,22 +6443,22 @@
// timeout handle
timeoutTimer,
// Cross-domain detection vars
- loc = document.location,
- protocol = loc.protocol || "http:",
parts,
- // The jXHR state
+ // The jqXHR state
state = 0,
+ // To know if global events are to be dispatched
+ fireGlobals,
// Loop variable
i,
// Fake xhr
- jXHR = {
+ jqXHR = {
readyState: 0,
// Caches the header
setRequestHeader: function( name, value ) {
- if ( state === 0 ) {
- requestHeaders[ name.toLowerCase() ] = value;
+ if ( !state ) {
+ requestHeaders[ name.toLowerCase().replace( rucHeaders, rucHeadersFunc ) ] = value;
}
return this;
},
@@ -6377,9 +6480,17 @@
}
match = responseHeaders[ key.toLowerCase() ];
}
- return match || null;
+ return match === undefined ? null : match;
},
+ // Overrides response content-type header
+ overrideMimeType: function( type ) {
+ if ( !state ) {
+ s.mimeType = type;
+ }
+ return this;
+ },
+
// Cancel the request
abort: function( statusText ) {
statusText = statusText || "abort";
@@ -6394,7 +6505,7 @@
// Callback for when everything is done
// It is defined here because jslint complains if it is declared
// at the end of the function (which would be more logical and readable)
- function done( status, statusText, responses, headers) {
+ function done( status, statusText, responses, headers ) {
// Called once
if ( state === 2 ) {
@@ -6410,19 +6521,19 @@
}
// Dereference transport for early garbage collection
- // (no matter how long the jXHR object will be used)
+ // (no matter how long the jqXHR object will be used)
transport = undefined;
// Cache response headers
responseHeadersString = headers || "";
// Set readyState
- jXHR.readyState = status ? 4 : 0;
+ jqXHR.readyState = status ? 4 : 0;
var isSuccess,
success,
error,
- response = responses ? ajaxHandleResponses( s, jXHR, responses ) : undefined,
+ response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
lastModified,
etag;
@@ -6432,11 +6543,11 @@
// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
if ( s.ifModified ) {
- if ( ( lastModified = jXHR.getResponseHeader( "Last-Modified" ) ) ) {
- jQuery.lastModified[ s.url ] = lastModified;
+ if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {
+ jQuery.lastModified[ ifModifiedKey ] = lastModified;
}
- if ( ( etag = jXHR.getResponseHeader( "Etag" ) ) ) {
- jQuery.etag[ s.url ] = etag;
+ if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {
+ jQuery.etag[ ifModifiedKey ] = etag;
}
}
@@ -6463,7 +6574,7 @@
// We extract error from statusText
// then normalize statusText and status for non-aborts
error = statusText;
- if( status ) {
+ if( !statusText || status ) {
statusText = "error";
if ( status < 0 ) {
status = 0;
@@ -6472,30 +6583,30 @@
}
// Set data for the fake xhr object
- jXHR.status = status;
- jXHR.statusText = statusText;
+ jqXHR.status = status;
+ jqXHR.statusText = statusText;
// Success/Error
if ( isSuccess ) {
- deferred.resolveWith( callbackContext, [ success, statusText, jXHR ] );
+ deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
} else {
- deferred.rejectWith( callbackContext, [ jXHR, statusText, error ] );
+ deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
}
// Status-dependent callbacks
- jXHR.statusCode( statusCode );
+ jqXHR.statusCode( statusCode );
statusCode = undefined;
- if ( s.global ) {
+ if ( fireGlobals ) {
globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
- [ jXHR, s, isSuccess ? success : error ] );
+ [ jqXHR, s, isSuccess ? success : error ] );
}
// Complete
- completeDeferred.resolveWith( callbackContext, [ jXHR, statusText ] );
+ completeDeferred.resolveWith( callbackContext, [ jqXHR, statusText ] );
- if ( s.global ) {
- globalEventContext.trigger( "ajaxComplete", [ jXHR, s] );
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxComplete", [ jqXHR, s] );
// Handle the global AJAX counter
if ( !( --jQuery.active ) ) {
jQuery.event.trigger( "ajaxStop" );
@@ -6504,13 +6615,13 @@
}
// Attach deferreds
- deferred.promise( jXHR );
- jXHR.success = jXHR.done;
- jXHR.error = jXHR.fail;
- jXHR.complete = completeDeferred.done;
+ deferred.promise( jqXHR );
+ jqXHR.success = jqXHR.done;
+ jqXHR.error = jqXHR.fail;
+ jqXHR.complete = completeDeferred.done;
// Status-dependent callbacks
- jXHR.statusCode = function( map ) {
+ jqXHR.statusCode = function( map ) {
if ( map ) {
var tmp;
if ( state < 2 ) {
@@ -6518,8 +6629,8 @@
statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
}
} else {
- tmp = map[ jXHR.status ];
- jXHR.then( tmp, tmp );
+ tmp = map[ jqXHR.status ];
+ jqXHR.then( tmp, tmp );
}
}
return this;
@@ -6528,7 +6639,7 @@
// Remove hash character (#7531: and string promotion)
// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
// We also use the url parameter if available
- s.url = ( "" + ( url || s.url ) ).replace( rhash, "" ).replace( rprotocol, protocol + "//" );
+ s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
// Extract dataTypes list
s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
@@ -6537,9 +6648,9 @@
if ( !s.crossDomain ) {
parts = rurl.exec( s.url.toLowerCase() );
s.crossDomain = !!( parts &&
- ( parts[ 1 ] != protocol || parts[ 2 ] != loc.hostname ||
+ ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
- ( loc.port || ( protocol === "http:" ? 80 : 443 ) ) )
+ ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
);
}
@@ -6549,8 +6660,16 @@
}
// Apply prefilters
- inspectPrefiltersOrTransports( prefilters, s, options, jXHR );
+ inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+ // If request was aborted inside a prefiler, stop there
+ if ( state === 2 ) {
+ return false;
+ }
+
+ // We can fire global events as of now if asked to
+ fireGlobals = s.global;
+
// Uppercase the type
s.type = s.type.toUpperCase();
@@ -6558,7 +6677,7 @@
s.hasContent = !rnoContent.test( s.type );
// Watch for a new set of requests
- if ( s.global && jQuery.active++ === 0 ) {
+ if ( fireGlobals && jQuery.active++ === 0 ) {
jQuery.event.trigger( "ajaxStart" );
}
@@ -6570,6 +6689,9 @@
s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
}
+ // Get ifModifiedKey before adding the anti-cache parameter
+ ifModifiedKey = s.url;
+
// Add anti-cache in url if needed
if ( s.cache === false ) {
@@ -6584,77 +6706,77 @@
// Set the correct header, if data is being sent
if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
- requestHeaders[ "content-type" ] = s.contentType;
+ requestHeaders[ "Content-Type" ] = s.contentType;
}
// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
if ( s.ifModified ) {
- if ( jQuery.lastModified[ s.url ] ) {
- requestHeaders[ "if-modified-since" ] = jQuery.lastModified[ s.url ];
+ ifModifiedKey = ifModifiedKey || s.url;
+ if ( jQuery.lastModified[ ifModifiedKey ] ) {
+ requestHeaders[ "If-Modified-Since" ] = jQuery.lastModified[ ifModifiedKey ];
}
- if ( jQuery.etag[ s.url ] ) {
- requestHeaders[ "if-none-match" ] = jQuery.etag[ s.url ];
+ if ( jQuery.etag[ ifModifiedKey ] ) {
+ requestHeaders[ "If-None-Match" ] = jQuery.etag[ ifModifiedKey ];
}
}
// Set the Accepts header for the server, depending on the dataType
- requestHeaders.accept = s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
+ requestHeaders.Accept = s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) :
s.accepts[ "*" ];
// Check for headers option
for ( i in s.headers ) {
- requestHeaders[ i.toLowerCase() ] = s.headers[ i ];
+ jqXHR.setRequestHeader( i, s.headers[ i ] );
}
// Allow custom headers/mimetypes and early abort
- if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jXHR, s ) === false || state === 2 ) ) {
+ if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
// Abort if not done already
- done( 0, "abort" );
- // Return false
- jXHR = false;
+ jqXHR.abort();
+ return false;
- } else {
+ }
- // Install callbacks on deferreds
- for ( i in { success: 1, error: 1, complete: 1 } ) {
- jXHR[ i ]( s[ i ] );
- }
+ // Install callbacks on deferreds
+ for ( i in { success: 1, error: 1, complete: 1 } ) {
+ jqXHR[ i ]( s[ i ] );
+ }
- // Get transport
- transport = inspectPrefiltersOrTransports( transports, s, options, jXHR );
+ // Get transport
+ transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
- // If no transport, we auto-abort
- if ( !transport ) {
- done( -1, "No Transport" );
- } else {
- // Set state as sending
- state = jXHR.readyState = 1;
- // Send global event
- if ( s.global ) {
- globalEventContext.trigger( "ajaxSend", [ jXHR, s ] );
- }
- // Timeout
- if ( s.async && s.timeout > 0 ) {
- timeoutTimer = setTimeout( function(){
- jXHR.abort( "timeout" );
- }, s.timeout );
- }
+ // If no transport, we auto-abort
+ if ( !transport ) {
+ done( -1, "No Transport" );
+ } else {
+ jqXHR.readyState = 1;
+ // Send global event
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+ }
+ // Timeout
+ if ( s.async && s.timeout > 0 ) {
+ timeoutTimer = setTimeout( function(){
+ jqXHR.abort( "timeout" );
+ }, s.timeout );
+ }
- try {
- transport.send( requestHeaders, done );
- } catch (e) {
- // Propagate exception as error if not done
- if ( status < 2 ) {
- done( -1, e );
- // Simply rethrow otherwise
- } else {
- jQuery.error( e );
- }
+ try {
+ state = 1;
+ transport.send( requestHeaders, done );
+ } catch (e) {
+ // Propagate exception as error if not done
+ if ( status < 2 ) {
+ done( -1, e );
+ // Simply rethrow otherwise
+ } else {
+ jQuery.error( e );
}
}
}
- return jXHR;
+
+ return jqXHR;
},
// Serialize an array of form elements or a set of
@@ -6673,7 +6795,7 @@
}
// If an array was passed in, assume that it is an array of form elements.
- if ( jQuery.isArray( a ) || a.jquery ) {
+ if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
// Serialize the form elements
jQuery.each( a, function() {
add( this.name, this.value );
@@ -6720,9 +6842,9 @@
// Serialize object item.
} else {
- jQuery.each( obj, function( k, v ) {
- buildParams( prefix + "[" + k + "]", v, traditional, add );
- });
+ for ( var name in obj ) {
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+ }
}
} else {
@@ -6749,7 +6871,7 @@
* - finds the right dataType (mediates between content-type and expected dataType)
* - returns the corresponding response
*/
-function ajaxHandleResponses( s, jXHR, responses ) {
+function ajaxHandleResponses( s, jqXHR, responses ) {
var contents = s.contents,
dataTypes = s.dataTypes,
@@ -6762,7 +6884,7 @@
// Fill responseXXX fields
for( type in responseFields ) {
if ( type in responses ) {
- jXHR[ responseFields[type] ] = responses[ type ];
+ jqXHR[ responseFields[type] ] = responses[ type ];
}
}
@@ -6770,7 +6892,7 @@
while( dataTypes[ 0 ] === "*" ) {
dataTypes.shift();
if ( ct === undefined ) {
- ct = jXHR.getResponseHeader( "content-type" );
+ ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );
}
}
@@ -6822,8 +6944,9 @@
}
var dataTypes = s.dataTypes,
- converters = s.converters,
+ converters = {},
i,
+ key,
length = dataTypes.length,
tmp,
// Current and previous dataTypes
@@ -6840,6 +6963,16 @@
// For each dataType in the chain
for( i = 1; i < length; i++ ) {
+ // Create converters map
+ // with lowercased keys
+ if ( i === 1 ) {
+ for( key in s.converters ) {
+ if( typeof key === "string" ) {
+ converters[ key.toLowerCase() ] = s.converters[ key ];
+ }
+ }
+ }
+
// Get the dataTypes
prev = current;
current = dataTypes[ i ];
@@ -6902,9 +7035,9 @@
});
// Detect, normalize options and install callbacks for jsonp requests
-jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, dataIsString /* internal */ ) {
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
- dataIsString = ( typeof s.data === "string" );
+ var dataIsString = ( typeof s.data === "string" );
if ( s.dataTypes[ 0 ] === "jsonp" ||
originalSettings.jsonpCallback ||
@@ -6918,7 +7051,15 @@
previous = window[ jsonpCallback ],
url = s.url,
data = s.data,
- replace = "$1" + jsonpCallback + "$2";
+ replace = "$1" + jsonpCallback + "$2",
+ cleanUp = function() {
+ // Set callback back to previous value
+ window[ jsonpCallback ] = previous;
+ // Call if it was a function and we have a response
+ if ( responseContainer && jQuery.isFunction( previous ) ) {
+ window[ jsonpCallback ]( responseContainer[ 0 ] );
+ }
+ };
if ( s.jsonp !== false ) {
url = url.replace( jsre, replace );
@@ -6936,32 +7077,17 @@
s.url = url;
s.data = data;
+ // Install callback
window[ jsonpCallback ] = function( response ) {
responseContainer = [ response ];
};
- s.complete = [ function() {
+ // Install cleanUp function
+ jqXHR.then( cleanUp, cleanUp );
- // Set callback back to previous value
- window[ jsonpCallback ] = previous;
-
- // Call if it was a function and we have a response
- if ( previous) {
- if ( responseContainer && jQuery.isFunction( previous ) ) {
- window[ jsonpCallback ] ( responseContainer[ 0 ] );
- }
- } else {
- // else, more memory leak avoidance
- try{
- delete window[ jsonpCallback ];
- } catch( e ) {}
- }
-
- }, s.complete ];
-
// Use data converter to retrieve json after script execution
s.converters["script json"] = function() {
- if ( ! responseContainer ) {
+ if ( !responseContainer ) {
jQuery.error( jsonpCallback + " was not called" );
}
return responseContainer[ 0 ];
@@ -6981,10 +7107,10 @@
// Install script dataType
jQuery.ajaxSetup({
accepts: {
- script: "text/javascript, application/javascript"
+ script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
- script: /javascript/
+ script: /javascript|ecmascript/
},
converters: {
"text script": function( text ) {
@@ -7012,7 +7138,7 @@
if ( s.crossDomain ) {
var script,
- head = document.getElementsByTagName( "head" )[ 0 ] || document.documentElement;
+ head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
return {
@@ -7067,18 +7193,36 @@
-var // Next active xhr id
+var // #5280: next active xhr id and list of active xhrs' callbacks
xhrId = jQuery.now(),
+ xhrCallbacks,
- // active xhrs
- xhrs = {},
-
- // #5280: see below
- xhrUnloadAbortInstalled,
-
// XHR used to determine supports properties
testXHR;
+// #5280: Internet Explorer will keep connections alive if we don't abort on unload
+function xhrOnUnloadAbort() {
+ jQuery( window ).unload(function() {
+ // Abort all pending requests
+ for ( var key in xhrCallbacks ) {
+ xhrCallbacks[ key ]( 0, 1 );
+ }
+ });
+}
+
+// Functions to create xhrs
+function createStandardXHR() {
+ try {
+ return new window.XMLHttpRequest();
+ } catch( e ) {}
+}
+
+function createActiveXHR() {
+ try {
+ return new window.ActiveXObject( "Microsoft.XMLHTTP" );
+ } catch( e ) {}
+}
+
// Create the request object
// (This is still attached to ajaxSettings for backward compatibility)
jQuery.ajaxSettings.xhr = window.ActiveXObject ?
@@ -7089,27 +7233,13 @@
* we need a fallback.
*/
function() {
- if ( window.location.protocol !== "file:" ) {
- try {
- return new window.XMLHttpRequest();
- } catch( xhrError ) {}
- }
-
- try {
- return new window.ActiveXObject("Microsoft.XMLHTTP");
- } catch( activeError ) {}
+ return !this.isLocal && createStandardXHR() || createActiveXHR();
} :
// For all other browsers, use the standard XMLHttpRequest object
- function() {
- return new window.XMLHttpRequest();
- };
+ createStandardXHR;
// Test if we can create an xhr object
-try {
- testXHR = jQuery.ajaxSettings.xhr();
-} catch( xhrCreationException ) {}
-
-//Does this browser support XHR requests?
+testXHR = jQuery.ajaxSettings.xhr();
jQuery.support.ajax = !!testXHR;
// Does this browser support crossDomain XHR requests
@@ -7130,26 +7260,10 @@
return {
send: function( headers, complete ) {
- // #5280: we need to abort on unload or IE will keep connections alive
- if ( !xhrUnloadAbortInstalled ) {
-
- xhrUnloadAbortInstalled = 1;
-
- jQuery(window).bind( "unload", function() {
-
- // Abort all pending requests
- jQuery.each( xhrs, function( _, xhr ) {
- if ( xhr.onreadystatechange ) {
- xhr.onreadystatechange( 1 );
- }
- } );
-
- } );
- }
-
// Get a new xhr
var xhr = s.xhr(),
- handle;
+ handle,
+ i;
// Open the socket
// Passing null username, generates a login popup on Opera (#2865)
@@ -7159,19 +7273,31 @@
xhr.open( s.type, s.url, s.async );
}
+ // Apply custom fields if provided
+ if ( s.xhrFields ) {
+ for ( i in s.xhrFields ) {
+ xhr[ i ] = s.xhrFields[ i ];
+ }
+ }
+
+ // Override mime type if needed
+ if ( s.mimeType && xhr.overrideMimeType ) {
+ xhr.overrideMimeType( s.mimeType );
+ }
+
// Requested-With header
// Not set for crossDomain requests with no content
// (see why at http://trac.dojotoolkit.org/ticket/9486)
// Won't change header if already provided
- if ( !( s.crossDomain && !s.hasContent ) && !headers["x-requested-with"] ) {
- headers[ "x-requested-with" ] = "XMLHttpRequest";
+ if ( !( s.crossDomain && !s.hasContent ) && !headers["X-Requested-With"] ) {
+ headers[ "X-Requested-With" ] = "XMLHttpRequest";
}
// Need an extra try/catch for cross domain requests in Firefox 3
try {
- jQuery.each( headers, function( key, value ) {
- xhr.setRequestHeader( key, value );
- } );
+ for ( i in headers ) {
+ xhr.setRequestHeader( i, headers[ i ] );
+ }
} catch( _ ) {}
// Do send the request
@@ -7182,75 +7308,79 @@
// Listener
callback = function( _, isAbort ) {
- // Was never called and is aborted or complete
- if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
+ var status,
+ statusText,
+ responseHeaders,
+ responses,
+ xml;
- // Only called once
- callback = 0;
+ // Firefox throws exceptions when accessing properties
+ // of an xhr when a network error occured
+ // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:...
+ try {
- // Do not keep as active anymore
- if ( handle ) {
- xhr.onreadystatechange = jQuery.noop;
- delete xhrs[ handle ];
- }
+ // Was never called and is aborted or complete
+ if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
- // If it's an abort
- if ( isAbort ) {
- // Abort it manually if needed
- if ( xhr.readyState !== 4 ) {
- xhr.abort();
+ // Only called once
+ callback = undefined;
+
+ // Do not keep as active anymore
+ if ( handle ) {
+ xhr.onreadystatechange = jQuery.noop;
+ delete xhrCallbacks[ handle ];
}
- } else {
- // Get info
- var status = xhr.status,
- statusText,
- responseHeaders = xhr.getAllResponseHeaders(),
- responses = {},
+
+ // If it's an abort
+ if ( isAbort ) {
+ // Abort it manually if needed
+ if ( xhr.readyState !== 4 ) {
+ xhr.abort();
+ }
+ } else {
+ status = xhr.status;
+ responseHeaders = xhr.getAllResponseHeaders();
+ responses = {};
xml = xhr.responseXML;
- // Construct response list
- if ( xml && xml.documentElement /* #4958 */ ) {
- responses.xml = xml;
- }
- responses.text = xhr.responseText;
+ // Construct response list
+ if ( xml && xml.documentElement /* #4958 */ ) {
+ responses.xml = xml;
+ }
+ responses.text = xhr.responseText;
- // Firefox throws an exception when accessing
- // statusText for faulty cross-domain requests
- try {
- statusText = xhr.statusText;
- } catch( e ) {
- // We normalize with Webkit giving an empty statusText
- statusText = "";
- }
+ // Firefox throws an exception when accessing
+ // statusText for faulty cross-domain requests
+ try {
+ statusText = xhr.statusText;
+ } catch( e ) {
+ // We normalize with Webkit giving an empty statusText
+ statusText = "";
+ }
- // Filter status for non standard behaviours
- status =
- // Opera returns 0 when it should be 304
- // Webkit returns 0 for failing cross-domain no matter the real status
- status === 0 ?
- (
- // Webkit, Firefox: filter out faulty cross-domain requests
- !s.crossDomain || statusText ?
- (
- // Opera: filter out real aborts #6060
- responseHeaders ?
- 304 :
- 0
- ) :
- // We assume 302 but could be anything cross-domain related
- 302
- ) :
- (
- // IE sometimes returns 1223 when it should be 204 (see #1450)
- status == 1223 ?
- 204 :
- status
- );
+ // Filter status for non standard behaviors
- // Call complete
- complete( status, statusText, responses, responseHeaders );
+ // If the request is local and we have data: assume a success
+ // (success with no data won't get notified, that's the best we
+ // can do given current implementations)
+ if ( !status && s.isLocal && !s.crossDomain ) {
+ status = responses.text ? 200 : 404;
+ // IE - #1450: sometimes returns 1223 when it should be 204
+ } else if ( status === 1223 ) {
+ status = 204;
+ }
+ }
}
+ } catch( firefoxAccessException ) {
+ if ( !isAbort ) {
+ complete( -1, firefoxAccessException );
+ }
}
+
+ // Call complete if needed
+ if ( responses ) {
+ complete( status, statusText, responses, responseHeaders );
+ }
};
// if we're in sync mode or it's in cache
@@ -7259,10 +7389,15 @@
if ( !s.async || xhr.readyState === 4 ) {
callback();
} else {
- // Add to list of active xhrs
+ // Create the active xhrs callbacks list if needed
+ // and attach the unload handler
+ if ( !xhrCallbacks ) {
+ xhrCallbacks = {};
+ xhrOnUnloadAbort();
+ }
+ // Add to list of active xhrs callbacks
handle = xhrId++;
- xhrs[ handle ] = xhr;
- xhr.onreadystatechange = callback;
+ xhr.onreadystatechange = xhrCallbacks[ handle ] = callback;
}
},
@@ -7464,11 +7599,11 @@
} else {
var parts = rfxnum.exec(val),
- start = e.cur() || 0;
+ start = e.cur();
if ( parts ) {
var end = parseFloat( parts[2] ),
- unit = parts[3] || "px";
+ unit = parts[3] || ( jQuery.cssNumber[ name ] ? "" : "px" );
// We need to compute starting value
if ( unit !== "px" ) {
@@ -7615,8 +7750,12 @@
return this.elem[ this.prop ];
}
- var r = parseFloat( jQuery.css( this.elem, this.prop ) );
- return r || 0;
+ var parsed,
+ r = jQuery.css( this.elem, this.prop );
+ // Empty strings, null, undefined and "auto" are converted to 0,
+ // complex values such as "rotate(1rad)" are returned as is,
+ // simple values such as "10px" are parsed to Float.
+ return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
},
// Start an animation from one number to another
@@ -7627,7 +7766,7 @@
this.startTime = jQuery.now();
this.start = from;
this.end = to;
- this.unit = unit || this.unit || "px";
+ this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );
this.now = this.start;
this.pos = this.state = 0;
@@ -8078,7 +8217,7 @@
if ( win ) {
win.scrollTo(
!i ? val : jQuery(win).scrollLeft(),
- i ? val : jQuery(win).scrollTop()
+ i ? val : jQuery(win).scrollTop()
);
} else {
@@ -8173,4 +8312,5 @@
});
+window.jQuery = window.$ = jQuery;
})(window);
Modified: trunk/core/impl/src/main/resources/META-INF/resources/richfaces-base-component.js
===================================================================
--- trunk/core/impl/src/main/resources/META-INF/resources/richfaces-base-component.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/resources/META-INF/resources/richfaces-base-component.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -415,7 +415,7 @@
__bindEventHandlers: function () {
},
destroy: function () {
- rf.Event.unbind(this.id, this.namespace);
+ rf.Event.unbindById(this.id, this.namespace);
$super.destroy.call(this);
}
});
Modified: trunk/core/impl/src/main/resources/META-INF/resources/richfaces-queue.js
===================================================================
--- trunk/core/impl/src/main/resources/META-INF/resources/richfaces-queue.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/main/resources/META-INF/resources/richfaces-queue.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -409,8 +409,9 @@
},
isIgnoreResponse: function () {
- var lastEntry = getLastEntry();
- return lastEntry && lastRequestedEntry.isIgnoreDupResponses() && lastRequestedEntry.getRequestGroupId() == lastEntry.getRequestGroupId();
+ var entry = items[0];
+ return entry && lastRequestedEntry.isIgnoreDupResponses()
+ && lastRequestedEntry.queueOptions.requestGroupingId == entry.queueOptions.requestGroupingId;
},
/**
Modified: trunk/core/impl/src/test/java/org/richfaces/cache/BaseCacheTest.java
===================================================================
--- trunk/core/impl/src/test/java/org/richfaces/cache/BaseCacheTest.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/test/java/org/richfaces/cache/BaseCacheTest.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -203,8 +203,6 @@
try {
thread.join();
} catch (InterruptedException e) {
-
- // TODO Auto-generated catch block
failure.set(true);
}
}
Modified: trunk/core/impl/src/test/java/org/richfaces/context/AjaxTableComponentImpl.java
===================================================================
--- trunk/core/impl/src/test/java/org/richfaces/context/AjaxTableComponentImpl.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/test/java/org/richfaces/context/AjaxTableComponentImpl.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -65,10 +65,6 @@
assert idsToVisit != null;
- if (idsToVisit == VisitContext.ALL_IDS) {
- // TODO
- }
-
// All ids or non-empty collection means we need to visit our children.
return !idsToVisit.isEmpty();
}
@@ -124,8 +120,6 @@
try {
setRowIndex(oldRowIndex);
} catch (Exception e) {
-
- // TODO: handle exception
LOG.error(e.getMessage(), e);
}
}
Deleted: trunk/core/impl/src/test/java/org/richfaces/skin/SkinThreadsTestCase.java
===================================================================
--- trunk/core/impl/src/test/java/org/richfaces/skin/SkinThreadsTestCase.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/core/impl/src/test/java/org/richfaces/skin/SkinThreadsTestCase.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,115 +0,0 @@
-///**
-// * License Agreement.
-// *
-// * Rich Faces - Natural Ajax for Java Server Faces (JSF)
-// *
-// * Copyright (C) 2007 Exadel, Inc.
-// *
-// * This library is free software; you can redistribute it and/or
-// * modify it under the terms of the GNU Lesser General Public
-// * License version 2.1 as published by the Free Software Foundation.
-// *
-// * This library 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 library; if not, write to the Free Software
-// * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-// */
-//
-//package org.richfaces.skin;
-//
-//import javax.faces.context.FacesContext;
-//
-//import org.ajax4jsf.tests.AbstractThreadedAjax4JsfTestCase;
-//import org.richfaces.skin.Skin;
-//import org.richfaces.skin.SkinFactory;
-//
-///**
-// * @author asmirnov(a)exadel.com (latest modification by $Author: ishabalov $)
-// * @version $Revision: 1.1.2.2 $ $Date: 2007/02/20 20:58:11 $
-// *
-// */
-//public class SkinThreadsTestCase extends AbstractThreadedAjax4JsfTestCase {
-//
-// /**
-// * @param s
-// */
-// public SkinThreadsTestCase(String s) {
-// super(s);
-// // TODO Auto-generated constructor stub
-// }
-//
-// /*
-// * (non-Javadoc)
-// *
-// * @see com.exadel.vcp.tests.VcpJsfTestCase#setUp()
-// */
-//public void setUp() throws Exception {
-// // TODO Auto-generated method stub
-// super.setUp();
-// servletContext.setAttribute("skin", new Bean());
-// }
-// /*
-// * (non-Javadoc)
-// *
-// * @see com.exadel.vcp.tests.VcpJsfTestCase#tearDown()
-// */
-// public void tearDown() throws Exception {
-// // TODO Auto-generated method stub
-// super.tearDown();
-// }
-//
-//
-// public class SkinTestRunnable extends TestCaseRunnable {
-//
-//
-// /**
-// *
-// */
-// public SkinTestRunnable() {
-// // TODO Auto-generated constructor stub
-// }
-//
-// /* (non-Javadoc)
-// * @see com.exadel.vcp.tests.ThreadedVcpJsfTestCase.TestCaseRunnable#runTestCase(javax.faces.context.FacesContext)
-// */
-// public void runTestCase(FacesContext context) throws Throwable {
-// context.getExternalContext().getRequestMap().put("test", new Bean());
-// Skin skin = SkinFactory.getInstance().getSkin(context);
-// assertNotNull(skin);
-// assertEquals("TEST", skin.getRenderKitId(context));
-// assertEquals("binded.string", skin.getParameter(context, "bind.property"));
-// assertEquals("bindedstring", skin.getParameter(context, "string.property"));
-// assertEquals("10", skin.getParameter(context, "int.property"));
-// assertNull(skin.getParameter(context, "notexist"));
-// }
-//
-// }
-//
-// /**
-// * Test skin factory for thread-safe.
-// */
-// public void testThreadsafe() {
-// TestCaseRunnable[] runnables = new TestCaseRunnable[20];
-// for (int i = 0; i < runnables.length; i++) {
-// runnables[i] = new SkinTestRunnable();
-//
-// }
-// this.runTestCaseRunnables(runnables);
-// }
-// /*
-// * (non-Javadoc)
-// *
-// * @see com.exadel.vcp.tests.VcpJsfTestCase#getSkinName()
-// */
-// protected String getSkinName() {
-// // TODO Auto-generated method stub
-// return "#{skin.name}";
-// }
-//}
-
-
-
Modified: trunk/dist/readme-examples.txt
===================================================================
--- trunk/dist/readme-examples.txt 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/dist/readme-examples.txt 2011-03-27 13:51:09 UTC (rev 22318)
@@ -2,8 +2,8 @@
RichFaces - Ajax enabled JSF 2.0 component library
- RichFaces 4.0.CR1 EXAMPLES
- http://richfaces.org
+ RichFaces 4.0.0.Final EXAMPLES
+ http://richfaces.org
March 2011
This software is distributed under the terms of the
FSF Lesser Gnu Public License (see lgpl.txt)
@@ -11,7 +11,7 @@
========================================================================
RichFaces 4 is a component library for JSF2 and an advanced framework for
-easily integrating AJAX capabilities into business applications.
+easily integrating AJAX capabilities into enterprise applications.
This file explains how to set up the RichFaces examples bundled with the
distribution package. If you find any issue with the project, please report
@@ -27,7 +27,7 @@
In order to build the Examples applications you will need:
- Maven 2.1.0 or later
- Servers: Apache Tomcat 6.0 or any JEE6 application server
- (e.g. Jboss AS 6)
+ (e.g. Jboss AS 6/7)
- JDK 1.6
Also optional Additional Software would make it easy for you to work
@@ -83,10 +83,10 @@
USING AN IDE TO WORK WITH EXAMPLES
----------------------------------
-In order to explore, run and deploy the examples using Eclipse IDE you can use
+In order to explore, run and deploy the examples using Eclipse IDE you use
one of the following options:
- - You could use JBoss Tools with m2eclipse plugin and just import
+ - JBoss Tools with m2eclipse plugin and just import
the examples as maven-based projects.
* Open Eclipse and go to File > Import
* Expand the project type named Maven and select Import Maven
@@ -107,14 +107,22 @@
You are now able to work with the examples within Eclipse.
+PUSH COMPONENT EXAMPLE
+------------------------------
+We've completed the Push feature sample "irc-client" prior to release but there were not enough
+time in order to include into the distribution. So currently you could check out
+it from svn at http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/examples/irc-client .
+It contains separate readme file which describes build and additional settings required.
+We will add it to distribution in the next releases.
+
MORE INFORMATION AND RESOURCES
------------------------------
For more information on RichFaces 4, please visit RichFaces
website at:
- - http://www.jboss.org/richfaces.
+ - http://richfaces.org
Or check the Wiki for more information on build instructions for the examples at:
Modified: trunk/dist/readme-ui.txt
===================================================================
--- trunk/dist/readme-ui.txt 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/dist/readme-ui.txt 2011-03-27 13:51:09 UTC (rev 22318)
@@ -2,8 +2,8 @@
RichFaces - Ajax enabled JSF 2.0 component library
- RichFaces 4.0.CR1
- http://www.jboss.org/richfaces
+ RichFaces 4.0.0.Final
+ http://richfaces.org
March 2011
This software is distributed under the terms of the
FSF Lesser Gnu Public License (see lgpl.txt)
@@ -11,9 +11,9 @@
========================================================================
RichFaces 4 is a component library for JSF2 and an advanced framework for
-easily integrating AJAX capabilities into business applications.
+easily integrating AJAX capabilities into enterprise applications.
-This file explains how to obtain and install the RichFaces component
+This file explains how to get started and install the RichFaces component
library. If you find any issue with the project, please report the issue
on the RichFaces user forum (http://community.jboss.org/en/richfaces)
or jira (https://issues.jboss.org/browse/RF).
@@ -22,11 +22,11 @@
FEATURES
--------
- - 100+ AJAX enabled components in two libraries.
+ - Many AJAX enabled components in two libraries.
* a4j page centric AJAX controls.
* rich self contained, ready to use components.
- - Whole set of JSF2 benefits while working with AJAX.
- - Skinnability mechanism.
+ - Complete JSF2 support with advanced extentions
+ - Easily skin your entire application
- Component Development Kit (CDK).
- Dynamic resource handling.
- Testing facilities for components, actions, listeners and pages
@@ -60,7 +60,7 @@
richfaces-components-ui-4.x.jar to your application libraries
folder.
- - From 'framerok' directory: Copy richfaces-core-api-4.x.jar and
+ - From 'framework' directory: Copy richfaces-core-api-4.x.jar and
richfaces-core-impl-4.x.jar to your application libraries folder.
In addition to the RichFaces jars, a number of dependencies are
@@ -82,6 +82,8 @@
Validation. Should be added only if it's not provided by a
server (Java EE 6 servers).
+ For the latest updates, and information on this please see:
+ http://community.jboss.org/docs/DOC-16484
2. Using Maven
@@ -96,7 +98,7 @@
GETTING STARTED
---------------
-1. After setting up the project to use RichFaces component library, no
+1. Aside from the steps above to use RichFaces component library, no
special configuration steps are necessary. You don't need to modify
web.xml or faces-config.xml as with previous versions of RichFaces,
except for a4j:push component that requires additional configuration
@@ -115,7 +117,6 @@
Getting Started Guide at http://community.jboss.org/wiki/GettingStartedWithRichFaces4x
-
MORE INFORMATION AND RESOURCES
------------------------------
@@ -123,7 +124,7 @@
previous versions, and answers to the most frequently asked questions (FAQ),
please visit RichFaces website at:
-http://www.jboss.org/richfaces.
+http://www.jboss.org/richfaces
Or the Wiki at:
@@ -136,7 +137,7 @@
Community support and help can be obtained from the RichFaces forums at:
- - http://community.jboss.org/en/richfaces?view=discussions
+ - http://community.jboss.org/en/richfaces
Also you can follow us on Twitter at:
@@ -292,12 +293,36 @@
rich:graphValidator
+New in Version 4.0.Final
+----------------------
+
+ - Minor, low risk stabilizations, and clean up tasks for the Final build to minimize risk.
+ - Thorough review of all the component attributes done and corrections were made based on complexity.
+ - Bug fixing for CSV and Object Validation features.
+ - Refactored Listeners classes, methods and Event names according to standard JSF convention.
+ https://issues.jboss.org/browse/RF-10712
+ - Review and update predefined rf-* CSS classes for components to satisfy naming convention
+ https://issues.jboss.org/browse/RF-9290
+ - TreeNode and TreeDataModel model support for rich:tree added.
+ https://issues.jboss.org/browse/RF-9718
+ - jQuery updated to 1.5.1. https://issues.jboss.org/browse/RF-10686
+ - Several taglib issues found during QE and made corresponding corrections for better IDE support
+ https://issues.jboss.org/browse/RF-9936
+ - RichFaces showcase design corrections
+ - Reviewed current state of RichFaces showcase in different JSF environments support and
+ finalized pom.xml profiles for:
+ richfaces-showcase (Mojara 2.0.3 - GAE build, Mojara 2.0.4 default build)
+ richfaces-archetype-simpleapp (Mojara 2.0.4 default build)
+ rf-gae-sample archetype (MyFaces 2.0.4 both GAE and default builds)
+ - Completed Push component demo - irc-sample, with blog and documents before release
+
+
New in Version 4.0.CR1
----------------------
- - Finally completed with Taglib's corrections for better IDE support
+ - Completed nearly all taglib's corrections for better IDE support
https://issues.jboss.org/browse/RF-9936
- - Stabilized CSV feature with messages, localization and customization
+ - Stabilized the CSV feature with messages, localization and customization
improvements https://issues.jboss.org/browse/RF-10556
https://issues.jboss.org/browse/RF-10434 https://issues.jboss.org/browse/RF-10611
- Stabilized messages components https://issues.jboss.org/browse/RF-10293
@@ -310,7 +335,7 @@
- A lot of stabilization issues for MyFaces support got resolved
- Environment updates: JQuery 1.5, MyFaces 2.0.4, Mojara 2.0.4, Atmosphere 0.6.4
- RichFaces showcase has been updated with new design (https://issues.jboss.org/browse/RF-9636)
- and now runs under myFaces stable!
+ and now runs stable with MyFaces!
New in Version 4.0.M6
@@ -330,13 +355,12 @@
- All the richfaces components client side API are reviewed and stabilized.
API Tables will be documented soon in the component reference.
- Further review and corrections in components for improving IDE's support.
- - richfaces-showcase demo application is updated with new showcases for
+ - RichFaces showcase demo application is updated with new showcases for
validation components and new examples for previously released components.
- Further improvements in Component Development Kit.
- Stabilization works for migrated code. Automation tests with quint, junit.
Review of attributes and facets for consistency and stability are done
and most issues get fixed.
+
-
-
###
Modified: trunk/examples/core-demo/src/main/webapp/ajax.xhtml
===================================================================
--- trunk/examples/core-demo/src/main/webapp/ajax.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/core-demo/src/main/webapp/ajax.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -95,7 +95,25 @@
<h:commandLink value="Link">
<a:ajax bypassUpdates="#{true}" />
</h:commandLink>
+
+
</h:panelGrid>
</h:form>
+
+ <!-- https://issues.jboss.org/browse/RF-10728 -->
+ <h:form>
+ <h:panelGrid columns="2">
+ f:ajax with h:commandLink
+ <h:commandLink value="commandLink">
+ <f:ajax disabled="false"/>
+ </h:commandLink>
+ disabled f:ajax with h:commandLink
+ <h:commandLink value="commandLink">
+ <f:ajax disabled="true"/>
+ </h:commandLink>
+ </h:panelGrid>
+
+
+ </h:form>
</h:body>
</html>
\ No newline at end of file
Deleted: trunk/examples/input-demo/src/main/java/org/richfaces/demo/AutoCompleteBean.java
===================================================================
--- trunk/examples/input-demo/src/main/java/org/richfaces/demo/AutoCompleteBean.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/input-demo/src/main/java/org/richfaces/demo/AutoCompleteBean.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,110 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2010, Red Hat, Inc. and individual contributors
- * 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.
- */
-package org.richfaces.demo;
-
-import java.io.Serializable;
-import java.util.Locale;
-
-import javax.faces.bean.ManagedBean;
-import javax.faces.bean.ManagedProperty;
-import javax.faces.bean.SessionScoped;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-
-import org.richfaces.component.AutocompleteMode;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.Collections2;
-
-/**
- * @author Nick Belaevski
- *
- */
-@ManagedBean
-@SessionScoped
-public class AutoCompleteBean implements Serializable {
-
- private static final long serialVersionUID = 3072125097847582809L;
-
- private class CountryNamePredicate implements Predicate<Country> {
-
- private String countryNamePrefix;
-
- public CountryNamePredicate(String countryNamePrefix) {
- super();
- this.countryNamePrefix = countryNamePrefix;
- }
-
- public boolean apply(Country input) {
- if (countryNamePrefix == null || countryNamePrefix.length() == 0) {
- return true;
- }
-
- return input.getName().toLowerCase(Locale.US).startsWith(countryNamePrefix);
- }
- }
-
- private String value;
-
-
- public void setValue(String value) {
- this.value = value;
- }
-
- public String getValue() {
- return value;
- }
-
- private AutocompleteMode mode = AutocompleteMode.lazyClient;
-
- public AutocompleteMode getMode() {
- return mode;
- }
-
- public void setMode(AutocompleteMode mode) {
- this.mode = mode;
- }
-
- @ManagedProperty(value = "#{countriesBean}")
- private CountriesBean countriesBean;
-
- public void setCountriesBean(CountriesBean countriesBean) {
- this.countriesBean = countriesBean;
- }
-
- public Object autocomplete(FacesContext facesContext, UIComponent component, String value) {
- // for tests when value does not starts with prefix
- /*String str = value;
- if (str.charAt(0)=='i') {
- str = str.substring(1);
- }*/
-
- AutocompleteMode mode = (AutocompleteMode) component.getAttributes().get("mode");
- boolean isClient = mode == AutocompleteMode.client || mode == AutocompleteMode.lazyClient;
- String v = isClient ? "" : value;
- return Collections2.filter(countriesBean.getCountries(), new CountryNamePredicate(v.toLowerCase(Locale.US)));
- }
-
- public Object getModes() {
- return AutocompleteMode.values();
- }
-}
Added: trunk/examples/input-demo/src/main/java/org/richfaces/demo/autocomplete/AutoCompleteBean.java
===================================================================
--- trunk/examples/input-demo/src/main/java/org/richfaces/demo/autocomplete/AutoCompleteBean.java (rev 0)
+++ trunk/examples/input-demo/src/main/java/org/richfaces/demo/autocomplete/AutoCompleteBean.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,105 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and individual contributors
+ * 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.
+ */
+package org.richfaces.demo.autocomplete;
+
+import com.google.common.base.Predicate;
+import com.google.common.collect.Collections2;
+import org.richfaces.component.AutocompleteMode;
+import org.richfaces.demo.CountriesBean;
+import org.richfaces.demo.Country;
+
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.ManagedProperty;
+import javax.faces.bean.SessionScoped;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import java.io.Serializable;
+import java.util.Locale;
+
+/**
+ * @author Nick Belaevski
+ *
+ */
+@ManagedBean
+@SessionScoped
+public class AutoCompleteBean implements Serializable {
+
+ private static final long serialVersionUID = 3072125097847582809L;
+
+ private class CountryNamePredicate implements Predicate<Country> {
+
+ private String countryNamePrefix;
+
+ public CountryNamePredicate(String countryNamePrefix) {
+ super();
+ this.countryNamePrefix = countryNamePrefix;
+ }
+
+ public boolean apply(Country input) {
+ if (countryNamePrefix == null || countryNamePrefix.length() == 0) {
+ return true;
+ }
+
+ return input.getName().toLowerCase(Locale.US).startsWith(countryNamePrefix);
+ }
+ }
+
+ private Object value;
+
+
+ public void setValue(Object value) {
+ this.value = value;
+ }
+
+ public Object getValue() {
+ return value;
+ }
+
+ private AutocompleteMode mode = AutocompleteMode.lazyClient;
+
+ public AutocompleteMode getMode() {
+ return mode;
+ }
+
+ public void setMode(AutocompleteMode mode) {
+ this.mode = mode;
+ }
+
+ @ManagedProperty(value = "#{countriesBean}")
+ private CountriesBean countriesBean;
+
+ public void setCountriesBean(CountriesBean countriesBean) {
+ this.countriesBean = countriesBean;
+ }
+
+ public Object autocomplete(FacesContext facesContext, UIComponent component, String value) {
+ AutocompleteMode mode = (AutocompleteMode) component.getAttributes().get("mode");
+ boolean isClient = mode == AutocompleteMode.client || mode == AutocompleteMode.lazyClient;
+ String v = isClient || value ==null ? "" : value;
+
+ return Collections2.filter(countriesBean.getCountries(), new CountryNamePredicate(v.toLowerCase(Locale.US)));
+ }
+
+ public Object getModes() {
+ return AutocompleteMode.values();
+ }
+}
Added: trunk/examples/input-demo/src/main/java/org/richfaces/demo/autocomplete/AutocompleteBeanConverter.java
===================================================================
--- trunk/examples/input-demo/src/main/java/org/richfaces/demo/autocomplete/AutocompleteBeanConverter.java (rev 0)
+++ trunk/examples/input-demo/src/main/java/org/richfaces/demo/autocomplete/AutocompleteBeanConverter.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,47 @@
+package org.richfaces.demo.autocomplete;
+
+import org.richfaces.demo.CountriesBean;
+import org.richfaces.demo.Country;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.FacesConverter;
+import java.io.Serializable;
+
+@FacesConverter(value = "autocompleteBeanConverter")
+public class AutocompleteBeanConverter implements Converter, Serializable {
+
+ public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String value) {
+ System.out.println("AutocompleteBeanConverter#getAsObject is called");
+ if (value == null || value.equals("")) {
+ return null;
+ } else {
+ CountriesBean countriesBean = (CountriesBean) FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get("countriesBean");
+ for (Country country : countriesBean.getCountries()) {
+ if (country.getName().equals(value)) {
+ return country;
+ }
+ }
+
+ return null;
+ }
+ }
+
+ public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object value) {
+ System.out.println("AutocompleteBeanConverter#getAsString is called");
+ if (value != null) {
+ Country bean;
+ try {
+ bean = (Country) value;
+ return bean.getName();
+ } catch (ClassCastException e) {
+ System.out.println("Cannot cast " + value + "to Country");
+ return null;
+ }
+ } else {
+ return null;
+ }
+ }
+
+}
\ No newline at end of file
Modified: trunk/examples/input-demo/src/main/webapp/examples/autocomplete.xhtml
===================================================================
--- trunk/examples/input-demo/src/main/webapp/examples/autocomplete.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/input-demo/src/main/webapp/examples/autocomplete.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,183 +1,294 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:input="http://richfaces.org/input"
- xmlns:output="http://richfaces.org/output"
- xmlns:rich="http://richfaces.org/iteration"
- xmlns:misc="http://richfaces.org/misc"
- xmlns:a4j="http://richfaces.org/a4j">
-<f:view contentType="text/html" />
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:input="http://richfaces.org/input"
+ xmlns:output="http://richfaces.org/output"
+ xmlns:rich="http://richfaces.org/iteration"
+ xmlns:misc="http://richfaces.org/misc"
+ xmlns:a4j="http://richfaces.org/a4j">
+<f:view contentType="text/html"/>
<h:head>
- <title>Richfaces Autocomplete</title>
+ <title>Richfaces Autocomplete</title>
</h:head>
<h:body style="margin: 30px;">
<ui:composition template="/templates/template.xhtml">
- <ui:define name="title">Autocomplete Example</ui:define>
- <ui:define name="body_head">Autocomplete Example</ui:define>
+<ui:define name="title">Autocomplete Example</ui:define>
+<ui:define name="body_head">Autocomplete Example</ui:define>
- <ui:define name="body">
-
- <style type="text/css">
- .myPopupClass .rf-au-lst-scrl {
- border: 1px solid red;
- width: 400px;
- }
- </style>
+<ui:define name="body">
+<style type="text/css">
+ .myPopupClass .rf-au-lst-scrl {
+ border: 1px solid red;
+ width: 400px;
+ }
+</style>
- <h:form id="form">
- <h:selectOneMenu value="#{autoCompleteBean.mode}" onchange="submit()">
- <f:selectItems value="#{autoCompleteBean.modes}" />
- </h:selectOneMenu><br/>
- <div style="height: 300px; width: 300px; overflow: auto; float:left;">Text
- block text block text block text block text block text block text
- block text block
- <script type="text/javascript">
- function customFilterFunction(subString, value) {
- if(subString.length>1)
- if(value.indexOf(subString)!=-1) return true;
- }
- </script>
+<h:form id="form">
+ <h:selectOneMenu value="#{autoCompleteBean.mode}" onchange="submit()">
+ <f:selectItems value="#{autoCompleteBean.modes}"/>
+ </h:selectOneMenu><br/>
- <input:autocomplete popupClass="myPopupClass" autofill="false" id="myAutocomplete" clientFilterFunction="customFilterFunction" mode="#{autoCompleteBean.mode}" minChars="2" autocompleteMethod="#{autoCompleteBean.autocomplete}" var="country" fetchValue="#{country.name}" showButton="true"
- value = "#{autoCompleteBean.value}" layout="list"
- onchange="return onEvent.call(this, event);" onselectitem="return onEvent.call(this, event);" onblur="return onEvent.call(this, event);" onfocus="return onEvent.call(this, event);">
- #{country.name} #{country.iso} #{country.domain}
- <a4j:ajax event="change" render="output"/>
- </input:autocomplete>
- <br /><h:outputText value="RF-9835:" /><br />
- <input:autocomplete id="myAutocomplete1" mode="client" autocompleteMethod="#{autoCompleteBean.autocomplete}" var="country" fetchValue="#{country.name}" showButton="true"
- value = "#{autoCompleteBean.value}" layout="table">
- <rich:column>
- <h:outputText value="#{country.name}" />
- </rich:column>
- <rich:column>
- <h:outputText value="#{country.iso}" />
- </rich:column>
- <rich:column>
- <h:outputText value="#{country.domain}" />
- </rich:column>
- <a4j:ajax event="change" render="output"/>
- </input:autocomplete>
- <br/><br/>
- Your selection: <h:outputText id="output" value="#{autoCompleteBean.value}"/>
- <script type="text/javascript">
- onEvent = function(event, element, data){
- RichFaces.log.info("jQuery Event: "+(event instanceof jQuery.Event)+"; event: "+event.type+"; data:"+(data || (event['rich']||{})['data'])+"; this.id:"+this.id+"; component:"+ (event['rich']||{})['component']||RichFaces.$(this.id));
- };
- RichFaces.Event.bindById("form:myAutocomplete", "selectitem change blur focus", onEvent);
- </script>
- <br />
- <select style="width: 200px" name="select">
- <option>option 0</option><option>option 1</option><option>option 2</option><option>option 3</option><option>option 4</option><option>option 5</option><option>option 6</option><option>option 7</option><option>option 8</option><option>option 9</option><option>option 10</option><option>option 11</option><option>option 12</option><option>option 13</option><option>option 14</option><option>option 15</option><option>option 16</option><option>option 17</option><option>option 18</option><option>option 19</option><option>option 20</option><option>option 21</option><option>option 22</option><option>option 23</option><option>option 24</option><option>option 25</option><option>option 26</option><option>option 27</option><option>option 28</option><option>option 29</option><option>option 30</option><option>option 31</option><option>option 32</option><option>option 33</option><option>option 34</option><option>option 35</option><option>option 36</option><option>option 37</option><option!
>option 38</option><option>option 39</option><option>option 40</option><option>option 41</option><option>option 42</option><option>option 43</option><option>option 44</option><option>option 45</option><option>option 46</option><option>option 47</option><option>option 48</option><option>option 49</option><option>option 50</option><option>option 51</option><option>option 52</option><option>option 53</option><option>option 54</option><option>option 55</option><option>option 56</option><option>option 57</option><option>option 58</option><option>option 59</option><option>option 60</option><option>option 61</option><option>option 62</option><option>option 63</option><option>option 64</option><option>option 65</option><option>option 66</option><option>option 67</option><option>option 68</option><option>option 69</option><option>option 70</option><option>option 71</option><option>option 72</option><option>option 73</option><option>option 74</option><option>option 75</option><option!
>option 76</option><option>option 77</option><option>option 78!
</option
><option>option 79</option><option>option 80</option><option>option 81</option><option>option 82</option><option>option 83</option><option>option 84</option><option>option 85</option><option>option 86</option><option>option 87</option><option>option 88</option><option>option 89</option><option>option 90</option><option>option 91</option><option>option 92</option><option>option 93</option><option>option 94</option><option>option 95</option><option>option 96</option><option>option 97</option><option>option 98</option><option>option 99</option>
- </select> text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block text block text block text block text
- block text block text block
- </div>
- <div>
- <a4j:log mode="inline"></a4j:log>
- </div>
- </h:form>
- <h:form>
- RF-9567:<br/><br/>
- <a4j:outputPanel ajaxRendered="true"><h:messages /></a4j:outputPanel>
-
-
- <input:autocomplete mode="ajax" id="autocomplete" autocompleteMethod="#{autoCompleteBean.autocomplete}" value="#{autoCompleteBean.value}">
- <f:validateRegex pattern="Alabama" />
- </input:autocomplete>
+ <div style="height: 300px; width: 300px; overflow: auto; float:left;">Text
+ block text block text block text block text block text block text
+ block text block
+ <script type="text/javascript">
+ function customFilterFunction(subString, value) {
+ if (subString.length > 1)
+ if (value.indexOf(subString) != -1) return true;
+ }
+ </script>
- <a4j:commandButton render="@form" execute="autocomplete" />
- </h:form>
- <h:form>
- <input:autocomplete mode="cachedAjax" tokens="," minChars="0"
-autofill="true" selectFirst="false" layout="table"
-autocompleteMethod="#{autoCompleteBean.autocomplete}" var="country" fetchValue="#{country.name}">
-<h:column>
-#{country.name}
-</h:column>
-<h:column>
-#{country.iso}
-</h:column>
-</input:autocomplete>
+ <input:autocomplete popupClass="myPopupClass" autofill="false" id="myAutocomplete"
+ clientFilterFunction="customFilterFunction" mode="#{autoCompleteBean.mode}"
+ minChars="2" autocompleteMethod="#{autoCompleteBean.autocomplete}" var="country"
+ fetchValue="#{country.name}" showButton="true"
+ value="#{autoCompleteBean.value}" layout="list"
+ onchange="return onEvent.call(this, event);"
+ onselectitem="return onEvent.call(this, event);"
+ onblur="return onEvent.call(this, event);"
+ onfocus="return onEvent.call(this, event);">
+ #{country.name} #{country.iso} #{country.domain}
+ <a4j:ajax event="change" render="output"/>
+ </input:autocomplete>
+ <br/><h:outputText value="RF-9835:"/><br/>
+ <input:autocomplete id="myAutocomplete1" mode="client"
+ autocompleteMethod="#{autoCompleteBean.autocomplete}" var="country"
+ fetchValue="#{country.name}" showButton="true"
+ value="#{autoCompleteBean.value}" layout="table">
+ <rich:column>
+ <h:outputText value="#{country.name}"/>
+ </rich:column>
+ <rich:column>
+ <h:outputText value="#{country.iso}"/>
+ </rich:column>
+ <rich:column>
+ <h:outputText value="#{country.domain}"/>
+ </rich:column>
+ <a4j:ajax event="change" render="output"/>
+ </input:autocomplete>
+ <br/><br/>
+ Your selection: <h:outputText id="output" value="#{autoCompleteBean.value}"/>
+ <script type="text/javascript">
+ onEvent = function(event, element, data) {
+ RichFaces.log.info("jQuery Event: " + (event instanceof jQuery.Event) + "; event: " + event.type + "; data:" + (data || (event['rich'] || {})['data']) + "; this.id:" + this.id + "; component:" + (event['rich'] || {})['component'] || RichFaces.$(this.id));
+ };
+ RichFaces.Event.bindById("form:myAutocomplete", "selectitem change blur focus", onEvent);
+ </script>
+ <br/>
+ <select style="width: 200px" name="select">
+ <option>option 0</option>
+ <option>option 1</option>
+ <option>option 2</option>
+ <option>option 3</option>
+ <option>option 4</option>
+ <option>option 5</option>
+ <option>option 6</option>
+ <option>option 7</option>
+ <option>option 8</option>
+ <option>option 9</option>
+ <option>option 10</option>
+ <option>option 11</option>
+ <option>option 12</option>
+ <option>option 13</option>
+ <option>option 14</option>
+ <option>option 15</option>
+ <option>option 16</option>
+ <option>option 17</option>
+ <option>option 18</option>
+ <option>option 19</option>
+ <option>option 20</option>
+ <option>option 21</option>
+ <option>option 22</option>
+ <option>option 23</option>
+ <option>option 24</option>
+ <option>option 25</option>
+ <option>option 26</option>
+ <option>option 27</option>
+ <option>option 28</option>
+ <option>option 29</option>
+ <option>option 30</option>
+ <option>option 31</option>
+ <option>option 32</option>
+ <option>option 33</option>
+ <option>option 34</option>
+ <option>option 35</option>
+ <option>option 36</option>
+ <option>option 37</option>
+ <option>option 38</option>
+ <option>option 39</option>
+ <option>option 40</option>
+ <option>option 41</option>
+ <option>option 42</option>
+ <option>option 43</option>
+ <option>option 44</option>
+ <option>option 45</option>
+ <option>option 46</option>
+ <option>option 47</option>
+ <option>option 48</option>
+ <option>option 49</option>
+ <option>option 50</option>
+ <option>option 51</option>
+ <option>option 52</option>
+ <option>option 53</option>
+ <option>option 54</option>
+ <option>option 55</option>
+ <option>option 56</option>
+ <option>option 57</option>
+ <option>option 58</option>
+ <option>option 59</option>
+ <option>option 60</option>
+ <option>option 61</option>
+ <option>option 62</option>
+ <option>option 63</option>
+ <option>option 64</option>
+ <option>option 65</option>
+ <option>option 66</option>
+ <option>option 67</option>
+ <option>option 68</option>
+ <option>option 69</option>
+ <option>option 70</option>
+ <option>option 71</option>
+ <option>option 72</option>
+ <option>option 73</option>
+ <option>option 74</option>
+ <option>option 75</option>
+ <option>option 76</option>
+ <option>option 77</option>
+ <option>option 78</option>
+ <option>option 79</option>
+ <option>option 80</option>
+ <option>option 81</option>
+ <option>option 82</option>
+ <option>option 83</option>
+ <option>option 84</option>
+ <option>option 85</option>
+ <option>option 86</option>
+ <option>option 87</option>
+ <option>option 88</option>
+ <option>option 89</option>
+ <option>option 90</option>
+ <option>option 91</option>
+ <option>option 92</option>
+ <option>option 93</option>
+ <option>option 94</option>
+ <option>option 95</option>
+ <option>option 96</option>
+ <option>option 97</option>
+ <option>option 98</option>
+ <option>option 99</option>
+ </select> text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block text block text block text block text
+ block text block text block
+ </div>
+ <div>
+ <a4j:log mode="inline"></a4j:log>
+ </div>
</h:form>
- <h:form>
- <h:commandButton id="leggTilKontroll" value="Button">
- <misc:componentControl target="popup" operation="show" />
- </h:commandButton>
- </h:form>
- <output:popupPanel id="popup" autosized="true">
- <h:form>
- <input:autocomplete mode="cachedAjax" autocompleteMethod="#{autoCompleteBean.autocomplete}" var="country" fetchValue="#{country.name}">
- #{country.name} #{country.iso} #{country.domain}
- </input:autocomplete>
- <input:select id="select" enableManualInput="true" defaultLabel="Select Value ...">
- <f:selectItem itemLabel="Label#1" itemValue="Value#1"/>
- <f:selectItem itemLabel="Label#2" itemValue="Value#2"/>
- <f:selectItem itemLabel="Label#3" itemValue="Value#3"/>
- <f:selectItem itemLabel="Label#4" itemValue="Value#4"/>
- <f:selectItem itemLabel="Label#5" itemValue="Value#5"/>
- <f:selectItem itemLabel="Label#6" itemValue="Value#6"/>
- <f:selectItem itemLabel="Label#7" itemValue="Value#7"/>
- <f:selectItem itemLabel="Label#8" itemValue="Value#8"/>
- <f:selectItem itemLabel="Label#9" itemValue="Value#9"/>
- <f:selectItem itemLabel="Label#10" itemValue="Value#10"/>
- <f:selectItem itemLabel="Label#11" itemValue="Value#11"/>
- <f:selectItem itemLabel="Label#12" itemValue="Value#12"/>
- <f:selectItem itemLabel="Label#13" itemValue="Value#13"/>
- <f:selectItem itemLabel="Label#14" itemValue="Value#14"/>
- </input:select>
- <input:inplaceSelect defaultLabel="Edit Text" openOnEdit="true" saveOnSelect="false">
- <f:selectItem itemLabel="Label#1" itemValue="Value#1"/>
- <f:selectItem itemLabel="Label#2" itemValue="Value#2"/>
- <f:selectItem itemLabel="Label#3" itemValue="Value#3"/>
- <f:selectItem itemLabel="Label#4" itemValue="Value#4"/>
- <f:selectItem itemLabel="Label#5" itemValue="Value#5"/>
- <f:selectItem itemLabel="Label#6" itemValue="Value#6"/>
- <f:selectItem itemLabel="Label#7" itemValue="Value#7"/>
- <f:selectItem itemLabel="Label#8" itemValue="Value#8"/>
- <f:selectItem itemLabel="Label#9" itemValue="Value#9"/>
- <f:selectItem itemLabel="Label#10" itemValue="Value#10"/>
- <f:selectItem itemLabel="Label#11" itemValue="Value#11"/>
- <f:selectItem itemLabel="Label#12" itemValue="Value#12"/>
- <f:selectItem itemLabel="Label#13" itemValue="Value#13"/>
- <f:selectItem itemLabel="Label#14" itemValue="Value#14"/>
- </input:inplaceSelect>
- </h:form>
- </output:popupPanel>
- </ui:define>
+<h:form>
+ RF-9567:<br/><br/>
+ <a4j:outputPanel ajaxRendered="true"><h:messages/></a4j:outputPanel>
+
+
+ <input:autocomplete mode="ajax" id="autocomplete" autocompleteMethod="#{autoCompleteBean.autocomplete}"
+ value="#{autoCompleteBean.value}">
+ <f:validateRegex pattern="Alabama"/>
+ </input:autocomplete>
+
+ <a4j:commandButton render="@form" execute="autocomplete"/>
+</h:form>
+<h:form>
+ <input:autocomplete mode="cachedAjax" tokens="," minChars="0"
+ autofill="true" selectFirst="false" layout="table"
+ autocompleteMethod="#{autoCompleteBean.autocomplete}" var="country"
+ fetchValue="#{country.name}">
+ <h:column>
+ #{country.name}
+ </h:column>
+ <h:column>
+ #{country.iso}
+ </h:column>
+ </input:autocomplete>
+</h:form>
+<h:form>
+ <h:commandButton id="leggTilKontroll" value="Button">
+ <misc:componentControl target="popup" operation="show"/>
+ </h:commandButton>
+</h:form>
+<output:popupPanel id="popup" autosized="true">
+ <h:form>
+ <input:autocomplete mode="cachedAjax" autocompleteMethod="#{autoCompleteBean.autocomplete}"
+ var="country" fetchValue="#{country.name}">
+ #{country.name} #{country.iso} #{country.domain}
+ </input:autocomplete>
+ <input:select id="select" enableManualInput="true" defaultLabel="Select Value ...">
+ <f:selectItem itemLabel="Label#1" itemValue="Value#1"/>
+ <f:selectItem itemLabel="Label#2" itemValue="Value#2"/>
+ <f:selectItem itemLabel="Label#3" itemValue="Value#3"/>
+ <f:selectItem itemLabel="Label#4" itemValue="Value#4"/>
+ <f:selectItem itemLabel="Label#5" itemValue="Value#5"/>
+ <f:selectItem itemLabel="Label#6" itemValue="Value#6"/>
+ <f:selectItem itemLabel="Label#7" itemValue="Value#7"/>
+ <f:selectItem itemLabel="Label#8" itemValue="Value#8"/>
+ <f:selectItem itemLabel="Label#9" itemValue="Value#9"/>
+ <f:selectItem itemLabel="Label#10" itemValue="Value#10"/>
+ <f:selectItem itemLabel="Label#11" itemValue="Value#11"/>
+ <f:selectItem itemLabel="Label#12" itemValue="Value#12"/>
+ <f:selectItem itemLabel="Label#13" itemValue="Value#13"/>
+ <f:selectItem itemLabel="Label#14" itemValue="Value#14"/>
+ </input:select>
+ <input:inplaceSelect defaultLabel="Edit Text" openOnEdit="true" saveOnSelect="false">
+ <f:selectItem itemLabel="Label#1" itemValue="Value#1"/>
+ <f:selectItem itemLabel="Label#2" itemValue="Value#2"/>
+ <f:selectItem itemLabel="Label#3" itemValue="Value#3"/>
+ <f:selectItem itemLabel="Label#4" itemValue="Value#4"/>
+ <f:selectItem itemLabel="Label#5" itemValue="Value#5"/>
+ <f:selectItem itemLabel="Label#6" itemValue="Value#6"/>
+ <f:selectItem itemLabel="Label#7" itemValue="Value#7"/>
+ <f:selectItem itemLabel="Label#8" itemValue="Value#8"/>
+ <f:selectItem itemLabel="Label#9" itemValue="Value#9"/>
+ <f:selectItem itemLabel="Label#10" itemValue="Value#10"/>
+ <f:selectItem itemLabel="Label#11" itemValue="Value#11"/>
+ <f:selectItem itemLabel="Label#12" itemValue="Value#12"/>
+ <f:selectItem itemLabel="Label#13" itemValue="Value#13"/>
+ <f:selectItem itemLabel="Label#14" itemValue="Value#14"/>
+ </input:inplaceSelect>
+ </h:form>
+</output:popupPanel>
+</ui:define>
</ui:composition>
-
+
</h:body>
</html>
Added: trunk/examples/input-demo/src/main/webapp/examples/autocompleteConverter.xhtml
===================================================================
--- trunk/examples/input-demo/src/main/webapp/examples/autocompleteConverter.xhtml (rev 0)
+++ trunk/examples/input-demo/src/main/webapp/examples/autocompleteConverter.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:input="http://richfaces.org/input">
+<f:view contentType="text/html"/>
+
+<h:head>
+ <title>Richfaces Autocomplete</title>
+</h:head>
+
+<h:body style="margin: 30px;">
+
+ <ui:composition template="/templates/template.xhtml">
+
+ <ui:define name="title">Autocomplete Converter Example</ui:define>
+ <ui:define name="body_head">Autocomplete Converter Example</ui:define>
+
+ <ui:define name="body">
+ <h:form>
+ <h:outputLabel for="autocompleteConverter">Autocomplete with converter:</h:outputLabel>
+ <input:autocomplete autocompleteMethod="#{autoCompleteBean.autocomplete}" var="country"
+ fetchValue="#{country.name}"
+ mode="ajax" layout="list"
+ converter="autocompleteBeanConverter" value="#{autoCompleteBean.value}"
+ id="autocompleteConverter">
+ #{country.name}
+ </input:autocomplete>
+ <h:commandButton value="Submit Country"/>
+ </h:form>
+ </ui:define>
+ </ui:composition>
+
+</h:body>
+</html>
Modified: trunk/examples/input-demo/src/main/webapp/examples/inplaceInput.xhtml
===================================================================
--- trunk/examples/input-demo/src/main/webapp/examples/inplaceInput.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/input-demo/src/main/webapp/examples/inplaceInput.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,22 +1,30 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:in="http://richfaces.org/input">
-<f:view contentType="text/html" />
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:in="http://richfaces.org/input">
+<f:view contentType="text/html"/>
<h:head>
- <title>InplaceInput</title>
+ <title>InplaceInput</title>
</h:head>
<h:body>
- <h:form id="form">
- <in:inplaceInput showControls="true" value="New York">
- </in:inplaceInput>
- <h:commandButton value="submit"/>
- <in:inplaceInput showControls="true" defaultLabel="click to enter your name" saveOnBlur="true" onblur="RichFaces.$('form:ii').cancel()" id="ii">
- </in:inplaceInput>
- </h:form>
+ <h:form id="form">
+ <in:inplaceInput showControls="true" value="New York" defaultLabel="#{null}">
+ </in:inplaceInput>
+ <h:commandButton value="submit"/>
+ <in:inplaceInput showControls="true" defaultLabel="click to enter your name" saveOnBlur="true"
+ onblur="RichFaces.$('form:ii').cancel()" id="ii"
+ activeClass="activeClass"
+ disabledClass="disabledClass"
+ editClass="editClass"
+ changedClass="changedClass"
+ styleClass="styleClass"
+ >
+ </in:inplaceInput>
+ </h:form>
</h:body>
</html>
Modified: trunk/examples/input-demo/src/main/webapp/examples/inplaceSelect.xhtml
===================================================================
--- trunk/examples/input-demo/src/main/webapp/examples/inplaceSelect.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/input-demo/src/main/webapp/examples/inplaceSelect.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -19,7 +19,14 @@
<fieldset>
<legend>InplaceSelect Test App</legend>
Fresh off his victory in the Florida primary, Sen. John McCain is poised to take another big prize. Former
- <in:inplaceSelect id='ii' defaultLabel="Edit Text" value="#{inputBean.value}" openOnEdit="true" saveOnSelect="false">
+ <in:inplaceSelect id='ii' defaultLabel="hello!" value="#{inputBean.value}" openOnEdit="true" saveOnSelect="false"
+ activeClass="activeClass"
+ changedClass="changedClass"
+ disabledClass="disabledClass"
+ styleClass="styleClass"
+ disabled="false"
+
+ >
<f:selectItem itemLabel="Label#1" itemValue="Value#1"/>
<f:selectItem itemLabel="Label#2" itemValue="Value#2"/>
<f:selectItem itemLabel="Label#3" itemValue="Value#3"/>
@@ -41,6 +48,7 @@
<ul>
<li><h:commandButton value="submit"></h:commandButton></li>
<li> <h:commandButton value="ShowPopup" onclick="#{misc:component('ii')}.showPopup(); return false;"/></li>
+ <li></li>
</ul>
Modified: trunk/examples/input-demo/src/main/webapp/examples/select.xhtml
===================================================================
--- trunk/examples/input-demo/src/main/webapp/examples/select.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/input-demo/src/main/webapp/examples/select.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,4 +1,5 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
@@ -9,6 +10,11 @@
<h:head>
<title>Select</title>
+ <style type="text/css">
+ .my-select-class {
+ font-weight: bold;
+ }
+ </style>
</h:head>
@@ -18,7 +24,8 @@
<fieldset>
<legend>Select Test App</legend>
<in:select id="select" openOnEdit="true" enableManualInput="true" defaultLabel="Select Value ..."
- value="#{inputBean.value}">
+ value="#{inputBean.value}" style="font-size: 2em;" styleClass="my-select-class"
+ title="Title">
<f:selectItem itemLabel="Label#1" itemValue="Value#1"/>
<f:selectItem itemLabel="Label#2" itemValue="Value#2"/>
<f:selectItem itemLabel="Label#3" itemValue="Value#3"/>
@@ -41,18 +48,16 @@
</h:commandButton>
</div>
- <ul>
- <li>
- <h:commandButton value="ShowPopup"
- onclick="#{misc:component('select')}.showPopup(); return false;"/>
- </li>
- <li>
- <h:commandButton value="HidePopup"
- onclick="#{misc:component('select')}.hidePopup(); return false;"/>
- </li>
-
-
- </ul>
+ <ul>
+ <li>
+ <h:commandButton value="ShowPopup"
+ onclick="#{misc:component('select')}.showPopup(); return false;"/>
+ </li>
+ <li>
+ <h:commandButton value="HidePopup"
+ onclick="#{misc:component('select')}.hidePopup(); return false;"/>
+ </li>
+ </ul>
<h:panelGroup id="out">
<h:outputText value="Selected Value: #{inputBean.value}"/>
</h:panelGroup>
Modified: trunk/examples/irc-client/readme.txt
===================================================================
--- trunk/examples/irc-client/readme.txt 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/irc-client/readme.txt 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,3 +1,41 @@
+=======================================================================
+
+ RichFaces - Ajax enabled JSF 2.0 component library
+
+ RichFaces 4.0.Final irc-client sample
+ http://richfaces.org
+ March 2011
+ This software is distributed under the terms of the
+ FSF Lesser Gnu Public License (see lgpl.txt)
+
+========================================================================
+
IRC Client Application is a sample which shows RichFaces Push in action.
Targetted to JBoss AS 6
+ * Run mvn install
+
+ * Place war file into "JBoss AS 6/server/default/deploy" folder
+
+ * Run JBoss AS
+
+JMS Configuration should be done prior to running application.
+
+ * Start Admin console going to http://localhost:8080/admin-console
+
+ * Setup new JMS Topic with the folowing properties:
+ Name: chat
+ JNDI name: /topic/chat
+ All the others: by default.
+
+ * Add role to that topic
+ Name: guest
+ Send: yes
+ Consume: yes
+ create subscriber: yes
+ delete subscriber: yes
+ create durable subscriber: yes
+ delete durable subscriber: yes
+
+Running application
+ * Enjoy playing with the client at http://localhost:8080/irc-client
Modified: trunk/examples/irc-client/src/main/java/org/ircclient/controller/ChatBean.java
===================================================================
--- trunk/examples/irc-client/src/main/java/org/ircclient/controller/ChatBean.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/irc-client/src/main/java/org/ircclient/controller/ChatBean.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -2,7 +2,7 @@
import java.io.IOException;
import java.io.Serializable;
-import java.text.MessageFormat;
+import java.text.DateFormat;
import java.util.Date;
import javax.faces.application.FacesMessage;
@@ -35,9 +35,10 @@
private String channelName;
private String message;
+
private transient TopicsContext topicsContext;
- public void connect() {
+ public String connect() {
try {
this.connect(SERVER_URL, SERVER_PORT);
this.joinChannel(CHANNEL_PREFIX + DEFAULT_CHANNEL);
@@ -47,22 +48,27 @@
null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, this.getName() + " nick already in use", this.getName()
+ " nick already in use"));
+ return null;
} catch (IOException e) {
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, "Sorry, server unresponsible. Try again later.",
"Sorry, server unresponsible. Try again later."));
+ return null;
} catch (IrcException e) {
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_ERROR,
"Sorry, we encountered IRC services problems. Try again later.",
"Sorry, we encountered IRC services problems. Try again later."));
+ return null;
}
+ return "chat";
}
- public void leave() {
+ public String leave() {
this.disconnect();
+ return "welcome";
}
private TopicsContext getTopicsContext() {
@@ -72,12 +78,19 @@
return topicsContext;
}
+ public String getMessagesSubtopic() {
+ return this.getUserName() + SUBTOPIC_SEPARATOR + channelName;
+ }
+
+ public String getListSubtopic() {
+ return this.getUserName() + SUBTOPIC_SEPARATOR + channelName + "List";
+ }
+
@Override
protected void onMessage(String channel, String sender, String login, String hostname, String message) {
- String channelName = channel.replace(CHANNEL_PREFIX, "");
try {
- getTopicsContext().publish(new TopicKey("chat", this.getUserName() + SUBTOPIC_SEPARATOR + channelName),
- MessageFormat.format("{0,time,medium} {1}: {2}", new Date(), sender, message));
+ Message messageObject = new Message(message, sender, DateFormat.getInstance().format(new Date()));
+ getTopicsContext().publish(new TopicKey("chat", getMessagesSubtopic()), messageObject);
} catch (MessageException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -86,7 +99,7 @@
@Override
protected void onUserList(String channel, User[] users) {
try {
- getTopicsContext().publish(new TopicKey("chat", this.getUserName() + SUBTOPIC_SEPARATOR + channelName + "List"), null);
+ getTopicsContext().publish(new TopicKey("chat", getListSubtopic()), null);
} catch (MessageException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -95,9 +108,9 @@
@Override
protected void onJoin(String channel, String sender, String login, String hostname) {
try {
- getTopicsContext().publish(new TopicKey("chat", this.getUserName() + SUBTOPIC_SEPARATOR + channelName + "List"), null);
- getTopicsContext().publish(new TopicKey("chat", this.getUserName() + SUBTOPIC_SEPARATOR + channelName),
- MessageFormat.format("{0,time,medium} {1}: {2}", new Date(), sender, "joined channel"));
+ getTopicsContext().publish(new TopicKey("chat", getListSubtopic()), null);
+ Message messageObject = new Message("joined channel", sender, DateFormat.getInstance().format(new Date()));
+ getTopicsContext().publish(new TopicKey("chat", getMessagesSubtopic()), messageObject);
} catch (MessageException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -106,9 +119,9 @@
@Override
protected void onPart(String channel, String sender, String login, String hostname) {
try {
- getTopicsContext().publish(new TopicKey("chat", this.getUserName() + SUBTOPIC_SEPARATOR + channelName + "List"), null);
- getTopicsContext().publish(new TopicKey("chat", this.getUserName() + SUBTOPIC_SEPARATOR + channelName),
- MessageFormat.format("{0,time,medium} {1}: {2}", new Date(), sender, "left channel"));
+ getTopicsContext().publish(new TopicKey("chat", getListSubtopic()), null);
+ Message messageObject = new Message("left channel", sender, DateFormat.getInstance().format(new Date()));
+ getTopicsContext().publish(new TopicKey("chat", getMessagesSubtopic()), messageObject);
} catch (MessageException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -117,9 +130,10 @@
@Override
protected void onNickChange(String oldNick, String login, String hostname, String newNick) {
try {
- getTopicsContext().publish(new TopicKey("chat", this.getUserName() + SUBTOPIC_SEPARATOR + channelName + "List"), null);
- getTopicsContext().publish(new TopicKey("chat", this.getUserName() + SUBTOPIC_SEPARATOR + channelName),
- MessageFormat.format("{0,time,medium} {1}", new Date(), oldNick + " changed nick to " + newNick));
+ getTopicsContext().publish(new TopicKey("chat", getListSubtopic()), null);
+ Message messageObject = new Message(" changed nick to " + newNick, oldNick, DateFormat.getInstance()
+ .format(new Date()));
+ getTopicsContext().publish(new TopicKey("chat", getMessagesSubtopic()), messageObject);
} catch (MessageException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -128,9 +142,10 @@
@Override
protected void onQuit(String sourceNick, String sourceLogin, String sourceHostname, String reason) {
try {
- getTopicsContext().publish(new TopicKey("chat", this.getUserName() + SUBTOPIC_SEPARATOR + channelName + "List"), null);
- getTopicsContext().publish(new TopicKey("chat", this.getUserName() + SUBTOPIC_SEPARATOR + channelName),
- MessageFormat.format("{0,time,medium} {1}: {2} {3}", new Date(), sourceNick, "joined channel", reason));
+ getTopicsContext().publish(new TopicKey("chat", getListSubtopic()), null);
+ Message messageObject = new Message("left channel" + reason, sourceNick, DateFormat.getInstance().format(
+ new Date()));
+ getTopicsContext().publish(new TopicKey("chat", getMessagesSubtopic()), messageObject);
} catch (MessageException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -143,8 +158,8 @@
public void send() {
this.sendMessage(CHANNEL_PREFIX + channelName, message);
try {
- getTopicsContext().publish(new TopicKey("chat", this.getUserName() + SUBTOPIC_SEPARATOR + channelName),
- MessageFormat.format("{0,time,medium} {1}: {2}", new Date(), this.getName(), message));
+ Message messageObject = new Message(message, this.getName(), DateFormat.getInstance().format(new Date()));
+ getTopicsContext().publish(new TopicKey("chat", getMessagesSubtopic()), messageObject);
} catch (MessageException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -185,4 +200,5 @@
public void setMessage(String message) {
this.message = message;
}
+
}
Added: trunk/examples/irc-client/src/main/java/org/ircclient/controller/Message.java
===================================================================
--- trunk/examples/irc-client/src/main/java/org/ircclient/controller/Message.java (rev 0)
+++ trunk/examples/irc-client/src/main/java/org/ircclient/controller/Message.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,40 @@
+package org.ircclient.controller;
+
+public class Message {
+
+ private String text;
+ private String author;
+ private String timestamp;
+
+ public Message(String text, String author, String timestamp) {
+ super();
+ this.text = text;
+ this.author = author;
+ this.timestamp = timestamp;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(String author) {
+ this.author = author;
+ }
+
+ public String getTimestamp() {
+ return timestamp;
+ }
+
+ public void setTimestamp(String timestamp) {
+ this.timestamp = timestamp;
+ }
+
+}
Added: trunk/examples/irc-client/src/main/webapp/chat.xhtml
===================================================================
--- trunk/examples/irc-client/src/main/webapp/chat.xhtml (rev 0)
+++ trunk/examples/irc-client/src/main/webapp/chat.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich"
+ xmlns:c="http://java.sun.com/jsp/jstl/core"
+ template="/templates/template.xhtml">
+ <ui:define name="body">
+ <style>
+ .chatOutput {
+ overflow: auto;
+ width: 80%;
+ height: 200px;
+ float: left;
+ }
+
+ .chatList {
+ float: right;
+ width: 19%;
+ height: 200px;
+ overflow: auto;
+ }
+ </style>
+ <script>
+ function getMessageString(data){
+ return data.author + " - " +data.timestamp+ ": " + data.text;
+ }
+ </script>
+ <rich:panel
+ header="Welcome to #{chatBean.channelName} channel at #{chatBean.serverName}"
+ id="chatpanel">
+ <rich:panel styleClass="chatOutput"
+ bodyClass="#{chatBean.channelName}Output" />
+ <rich:panel styleClass="chatList">
+ <rich:list value="#{chatBean.users}" var="user" id="users"
+ type="unordered">
+ #{user.nick}
+ </rich:list>
+ </rich:panel>
+ <br clear="all" />
+ <hr />
+ <h:form>
+ <a4j:push address="#{chatBean.listSubtopic}@chat"
+ onerror="alert(event.rf.data)">
+ <a4j:ajax event="dataavailable" render="users" execute="@none" />
+ </a4j:push>
+ <a4j:push address="#{chatBean.messagesSubtopic}@chat"
+ onerror="alert(event.rf.data)"
+ ondataavailable="jQuery('<div />').prependTo('.#{chatBean.channelName}Output').text(getMessageString(event.rf.data))" />
+ <h:inputTextarea value="#{chatBean.message}" rows="3"
+ style="width:80%" id="nm" />
+ <a4j:commandButton value="Send" action="#{chatBean.send}"
+ render="@none" execute="@form" />
+ </h:form>
+ <hr />
+ <h:form>
+ <rich:panel header="Change nickname:">
+ <h:inputText valueChangeListener="#{chatBean.changeNick}" id="cn" />
+ <a4j:commandButton value="Change" execute="@form" render="@none" />
+ </rich:panel>
+ <h:commandButton value="Disconnect" action="#{chatBean.leave}" />
+ </h:form>
+ </rich:panel>
+ </ui:define>
+</ui:composition>
\ No newline at end of file
Modified: trunk/examples/irc-client/src/main/webapp/welcome.xhtml
===================================================================
--- trunk/examples/irc-client/src/main/webapp/welcome.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/irc-client/src/main/webapp/welcome.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -8,27 +8,9 @@
xmlns:c="http://java.sun.com/jsp/jstl/core"
template="/templates/template.xhtml">
<ui:define name="body">
- <style>
-.chatOutput {
- overflow: auto;
- width: 80%;
- height: 200px;
- float: left;
-}
-
-.chatList {
- float: right;
- width: 19%;
- height: 200px;
- overflow: auto;
-}
-</style>
- <rich:panel header="Connect to IRC"
- rendered="#{not chatBean.connected}">
+ <rich:panel header="Connect to IRC">
<h:form>
- <a4j:outputPanel ajaxRendered="true">
- <h:messages style="color:red" />
- </a4j:outputPanel>
+ <rich:messages style="color:red" />
<h:panelGrid columns="2">
<h:outputText value="Your nickname:" />
<h:inputText required="true" id="name" value="#{chatBean.userName}" />
@@ -37,44 +19,8 @@
<h:outputText value="Server:" />
<h:outputText value="irc.freenode.org" style="font-weight:bold"/>
</h:panelGrid>
- <a4j:commandButton value="Connect" execute="@form" render="@all"
- action="#{chatBean.connect}" />
+ <h:commandButton value="Connect" action="#{chatBean.connect}" />
</h:form>
</rich:panel>
- <rich:panel
- header="Welcome to #{chatBean.channelName} channel at #{chatBean.serverName}"
- rendered="#{chatBean.connected}" id="chatpanel">
- <rich:panel styleClass="chatOutput"
- bodyClass="#{chatBean.channelName}Output" />
- <rich:panel styleClass="chatList">
- <rich:list value="#{chatBean.users}" var="user" id="users"
- type="unordered">
- #{user.nick}
- </rich:list>
- </rich:panel>
- <br clear="all" />
- <hr />
- <h:form>
- <a4j:push address="#{chatBean.userName}_#{chatBean.channelName}List@chat"
- onerror="alert(event.rf.data)">
- <a4j:ajax event="dataavailable" render="users" execute="@none" />
- </a4j:push>
- <a4j:push address="#{chatBean.userName}_#{chatBean.channelName}@chat"
- onerror="alert(event.rf.data)"
- ondataavailable="jQuery('<div />').prependTo('.#{chatBean.channelName}Output').text(event.rf.data)" />
- <h:inputTextarea value="#{chatBean.message}" rows="3"
- style="width:80%" id="nm" />
- <a4j:commandButton value="Send" action="#{chatBean.send}"
- render="@none" execute="@form" />
- </h:form>
- <hr />
- <h:form>
- <rich:panel header="Change nickname:">
- <h:inputText valueChangeListener="#{chatBean.changeNick}" id="cn" />
- <a4j:commandButton value="Change" execute="@form" render="@none"/>
- </rich:panel>
- <a4j:commandButton value="disconnect" action="#{chatBean.leave}" execute="@none" render="@all"/>
- </h:form>
- </rich:panel>
</ui:define>
</ui:composition>
\ No newline at end of file
Added: trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/SelectionChangeActionListenerImpl.java
===================================================================
--- trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/SelectionChangeActionListenerImpl.java (rev 0)
+++ trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/SelectionChangeActionListenerImpl.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,17 @@
+package org.richfaces.demo;
+
+import org.richfaces.event.TreeSelectionChangeEvent;
+import org.richfaces.event.TreeSelectionChangeListener;
+
+import javax.faces.event.AbortProcessingException;
+
+/**
+ * User: Gleb Galkin
+ * Date: 23.02.11
+ */
+public class SelectionChangeActionListenerImpl implements TreeSelectionChangeListener {
+
+ public void processTreeSelectionChange(TreeSelectionChangeEvent event) throws AbortProcessingException {
+ System.out.println("Inside Selection Change Action");
+ }
+}
Added: trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/ToggleActionListenerImpl.java
===================================================================
--- trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/ToggleActionListenerImpl.java (rev 0)
+++ trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/ToggleActionListenerImpl.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,14 @@
+package org.richfaces.demo;
+
+import org.richfaces.event.TreeToggleEvent;
+
+/**
+ * User: Gleb Galkin
+ * Date: 23.02.11
+ */
+public class ToggleActionListenerImpl {
+
+ public void processToggleAction(TreeToggleEvent event) {
+ System.out.println("Inside Toggle Action: " + (event.isCollapsed() ? "collapsed tree" : "expanded tree"));
+ }
+}
Modified: trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/TreeBean.java
===================================================================
--- trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/TreeBean.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/TreeBean.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -21,6 +21,7 @@
*/
package org.richfaces.demo;
+
import java.io.Serializable;
import java.text.DateFormat;
import java.util.ArrayList;
@@ -33,6 +34,8 @@
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.IntegerConverter;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.AjaxBehaviorEvent;
import javax.faces.event.FacesEvent;
@@ -41,12 +44,18 @@
import org.richfaces.component.AbstractTree;
import org.richfaces.component.AbstractTreeNode;
import org.richfaces.component.SwitchType;
+import org.richfaces.convert.SequenceRowKeyConverter;
+import org.richfaces.demo.model.tree.DataHolderTreeNodeImpl;
import org.richfaces.event.TreeSelectionChangeEvent;
import org.richfaces.event.TreeSelectionChangeListener;
import org.richfaces.event.TreeToggleEvent;
import org.richfaces.event.TreeToggleListener;
import org.richfaces.log.LogFactory;
import org.richfaces.log.Logger;
+import org.richfaces.model.SwingTreeNodeDataModelImpl;
+import org.richfaces.model.SwingTreeNodeImpl;
+import org.richfaces.model.TreeDataModel;
+import org.richfaces.model.TreeNodeImpl;
/**
* @author Nick Belaevski
@@ -68,7 +77,7 @@
this.fromExpression = fromExpression;
}
- public void processSelectionChange(TreeSelectionChangeEvent event) throws AbortProcessingException {
+ public void processTreeSelectionChange(TreeSelectionChangeEvent event) throws AbortProcessingException {
FacesContext facesContext = FacesContext.getCurrentInstance();
facesContext.addMessage(getTree(event).getClientId(facesContext), createEventMessage(event, fromExpression));
@@ -88,7 +97,7 @@
this.fromExpression = fromExpression;
}
- public void processToggle(TreeToggleEvent event) throws AbortProcessingException {
+ public void processTreeToggle(TreeToggleEvent event) throws AbortProcessingException {
FacesContext facesContext = FacesContext.getCurrentInstance();
facesContext.addMessage(getTree(event).getClientId(facesContext), createEventMessage(event, fromExpression));
}
@@ -99,10 +108,14 @@
private static final Logger LOGGER = LogFactory.getLogger(TreeBean.class);
+ private static final Converter INTEGER_SEQUENCE_KEY_CONVERTER = new SequenceRowKeyConverter<Integer>(Integer.class, new IntegerConverter());
+
private List<TreeNode> rootNodes;
private List<TreeNode> lazyRootNodes;
+ private TreeDataModel<?> treeDataModel;
+
private SwitchType toggleType = SwitchType.DEFAULT;
private SwitchType selectionType = SwitchType.client;
@@ -114,7 +127,12 @@
private String toggleNodeEvent = "";
private String executeTestText;
-
+
+ private ToggleActionListenerImpl toggleActionListenerImpl = new ToggleActionListenerImpl();
+ private SelectionChangeActionListenerImpl selectionChangeActionListener;
+
+ private org.richfaces.model.TreeNode classicTreeNode;
+
private static Object staticGetNodeData() {
FacesContext facesContext = FacesContext.getCurrentInstance();
return facesContext.getApplication().evaluateExpressionGet(facesContext, "#{node}", Object.class);
@@ -143,6 +161,28 @@
return result;
}
+ private org.richfaces.model.TreeNode createClassicNode(TreeNode node) {
+ TreeNodeImpl result = new DataHolderTreeNodeImpl(node.isLeaf(), ((SwingTreeNodeImpl<?>) node).getData());
+
+ for (int i = 0; i < node.getChildCount(); i++) {
+ result.addChild(i, createClassicNode(node.getChildAt(i)));
+ }
+
+ return result;
+ }
+
+ private org.richfaces.model.TreeNode createRootClassicNode(List<TreeNode> nodes) {
+ TreeNodeImpl rootNode = new TreeNodeImpl();
+
+ int key = 0;
+
+ for (TreeNode node : nodes) {
+ rootNode.addChild(key++, createClassicNode(node));
+ }
+
+ return rootNode;
+ }
+
@PostConstruct
public void init() {
try {
@@ -150,6 +190,9 @@
parser.parse(TreeBean.class.getResource("plants.xml"));
rootNodes = parser.getRootNodes();
lazyRootNodes = createLazyNodes(rootNodes);
+ classicTreeNode = createRootClassicNode(rootNodes);
+ treeDataModel = new SwingTreeNodeDataModelImpl();
+ treeDataModel.setWrappedData(rootNodes);
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
}
@@ -163,6 +206,10 @@
return lazyRootNodes;
}
+ public org.richfaces.model.TreeNode getClassicTreeNode() {
+ return classicTreeNode;
+ }
+
public SwitchType[] getTypes() {
return SwitchType.values();
}
@@ -219,11 +266,11 @@
}
public void processSelectionChange(TreeSelectionChangeEvent event) {
- new SelectionChangeHandler(true).processSelectionChange(event);
+ new SelectionChangeHandler(true).processTreeSelectionChange(event);
}
public void processToggle(TreeToggleEvent event) {
- new ToggleHandler(true).processToggle(event);
+ new ToggleHandler(true).processTreeToggle(event);
}
public String getToggleNodeEvent() {
@@ -245,4 +292,29 @@
public String getCurrentTimeAsString() {
return DateFormat.getTimeInstance().format(new Date());
}
+
+ public ToggleActionListenerImpl getToggleActionListenerImpl() {
+ return toggleActionListenerImpl;
+ }
+
+ public void setToggleActionListenerImpl(ToggleActionListenerImpl toggleActionListenerImpl) {
+ this.toggleActionListenerImpl = toggleActionListenerImpl;
+ }
+
+ public SelectionChangeActionListenerImpl getSelectionChangeActionListener() {
+ return selectionChangeActionListener;
+ }
+
+ public void setSelectionChangeActionListener(SelectionChangeActionListenerImpl selectionChangeActionListener) {
+ this.selectionChangeActionListener = selectionChangeActionListener;
+ }
+
+ public Converter getIntegerSequenceKeyConveter() {
+ return INTEGER_SEQUENCE_KEY_CONVERTER;
+ }
+
+ public TreeDataModel<?> getTreeDataModel() {
+ return treeDataModel;
+ }
+
}
Modified: trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/model/Employee.java
===================================================================
--- trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/model/Employee.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/model/Employee.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -4,7 +4,7 @@
import java.util.List;
import java.util.Random;
-import org.richfaces.event.ToggleEvent;
+import org.richfaces.event.CollapsibleSubTableToggleEvent;
public class Employee {
@@ -100,7 +100,7 @@
return hash;
}
- public void toggle(ToggleEvent event) {
+ public void toggle(CollapsibleSubTableToggleEvent event) {
this.expand = event.isExpanded();
}
Added: trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/model/tree/DataHolderTreeNodeImpl.java
===================================================================
--- trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/model/tree/DataHolderTreeNodeImpl.java (rev 0)
+++ trunk/examples/iteration-demo/src/main/java/org/richfaces/demo/model/tree/DataHolderTreeNodeImpl.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2011, Red Hat, Inc. and individual contributors
+ * 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.
+ */
+package org.richfaces.demo.model.tree;
+
+import org.richfaces.model.TreeNodeImpl;
+
+/**
+ * @author Nick Belaevski
+ *
+ */
+public class DataHolderTreeNodeImpl extends TreeNodeImpl {
+
+ private Object data;
+
+ public DataHolderTreeNodeImpl(boolean leaf, Object data) {
+ super(leaf);
+ this.data = data;
+ }
+
+ public Object getData() {
+ return data;
+ }
+
+ @Override
+ public String toString() {
+ return super.toString() + " >> " + data;
+ }
+}
Modified: trunk/examples/iteration-demo/src/main/webapp/dataTable.xhtml
===================================================================
--- trunk/examples/iteration-demo/src/main/webapp/dataTable.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/iteration-demo/src/main/webapp/dataTable.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -18,7 +18,8 @@
<it:dataScroller id="scroller1" for="richTable" page="#{dataBean.page}" maxPages="7"></it:dataScroller>
<it:dataTable keepSaved="true" id="richTable" var="record" rowKeyVar="rowKey" value="#{dataBean.employeeList}"
- rows="20" sortMode="single">
+ rows="20" sortMode="single" rowClass='#{record}'
+ cellClass="cellClQwerty" firstRowClass="firstRowClass123">
<f:facet name="caption">
<h:outputText id="captioFacet1" value="Caption Facet"/>
</f:facet>
@@ -60,7 +61,7 @@
<it:collapsibleSubTable id="collapsibleSubTable" var="company"
value="#{record.companies}" rows="1" switchType="ajax"
- expanded="true">
+ expanded="true" rowClass="#{company}">
<f:facet name="header">
<it:dataScroller id="subscroller" for="collapsibleSubTable"
maxPages="3"></it:dataScroller>
Modified: trunk/examples/iteration-demo/src/main/webapp/tree.xhtml
===================================================================
--- trunk/examples/iteration-demo/src/main/webapp/tree.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/iteration-demo/src/main/webapp/tree.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -107,10 +107,14 @@
<h:form id="form">
Base tree:
- <it:tree id="tree" nodeType="#{node.parent == null ? 'rootNode': 'childNode'}" var="node" value="#{treeBean.rootNodes}"
+ <it:tree id="tree" nodeType="#{node.parent == null ? 'rootNode': 'childNode'}" var="node" value="#{treeBean.rootNodes}"
selectionType="#{treeBean.selectionType}" toggleType="#{treeBean.toggleType}" selection="#{treeBean.selection}">
- <it:treeNode type="rootNode">
- <h:panelGroup id="rootNodeGroup">
+
+ <it:treeToggleListener listener="#{treeBean.toggleActionListenerImpl.processToggleAction}" />
+ <it:treeSelectionChangeListener binding="#{treeBean.selectionChangeActionListener}" type="org.richfaces.demo.SelectionChangeActionListenerImpl" />
+
+ <it:treeNode type="rootNode">
+ <h:panelGroup id="rootNodeGroup">
Root node: #{node.data} -
<h:commandLink value="link" action="#{treeBean.clickNode}">
<f:ajax render=":messages" />
@@ -131,6 +135,30 @@
<f:ajax render=":form:tree" execute="@all" />
</h:commandLink>
+ org.richfaces.model.TreeNode support:
+ <it:tree id="treeNodeSupport" value="#{treeBean.classicTreeNode}" var="node"
+ selectionType="#{treeBean.selectionType}" toggleType="#{treeBean.toggleType}"
+ rowKeyConverter="#{treeBean.integerSequenceKeyConveter}">
+ <it:treeNode>
+ #{node.data} -
+ <h:commandLink value="link" action="#{treeBean.clickNode}">
+ <f:ajax render=":messages" />
+ </h:commandLink>
+ </it:treeNode>
+ </it:tree>
+
+ org.richfaces.model.TreeDataModel support:
+ <it:tree id="treeDataModelSupport" value="#{treeBean.treeDataModel}" var="node"
+ selectionType="#{treeBean.selectionType}" toggleType="#{treeBean.toggleType}"
+ rowKeyConverter="#{treeBean.integerSequenceKeyConveter}">
+ <it:treeNode>
+ #{node.data} -
+ <h:commandLink value="link" action="#{treeBean.clickNode}">
+ <f:ajax render=":messages" />
+ </h:commandLink>
+ </it:treeNode>
+ </it:tree>
+
Tree with customized look:
<it:tree id="customizedTree" var="node" value="#{treeBean.rootNodes}"
selectionType="#{treeBean.selectionType}" toggleType="#{treeBean.toggleType}"
Modified: trunk/examples/misc-demo/src/main/webapp/pages/componentControl.xhtml
===================================================================
--- trunk/examples/misc-demo/src/main/webapp/pages/componentControl.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/misc-demo/src/main/webapp/pages/componentControl.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -9,16 +9,7 @@
<h:head></h:head>
<h:body>
<h:form>
- <input:autocomplete id="myInput" value="aaaaaa"/>
- <h:commandButton value="getValue">
- <misc:componentControl target="myInput" operation="getValue" event="click"/>
- </h:commandButton>
- <h:commandButton value="setValue">
- <misc:componentControl target="myInput" operation="setValue"
- event="click" onbeforeoperation="alert(event.type+': cancel operation');return false;">
- <f:param value="bla-bla-bla" />
- </misc:componentControl>
- </h:commandButton>
+ <h:inputText value="${not true}"/>
</h:form>
</h:body>
</f:view>
Modified: trunk/examples/output-demo/src/main/java/org/richfaces/SkinBean.java
===================================================================
--- trunk/examples/output-demo/src/main/java/org/richfaces/SkinBean.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/output-demo/src/main/java/org/richfaces/SkinBean.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -22,10 +22,11 @@
new SelectItem("NULL"),
new SelectItem("plain"),
new SelectItem("ruby"),
- new SelectItem("wine")
+ new SelectItem("wine"),
+ new SelectItem("myskin")
};
- private String skin = "classic";
+ private String skin = "myskin";
private boolean enableElementsSkinning = true;
Added: trunk/examples/output-demo/src/main/resources/myskin.skin.properties
===================================================================
--- trunk/examples/output-demo/src/main/resources/myskin.skin.properties (rev 0)
+++ trunk/examples/output-demo/src/main/resources/myskin.skin.properties 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,3 @@
+baseSkin=blueSky
+generalSizeFont=16
+headerWeightFont=normal
\ No newline at end of file
Modified: trunk/examples/output-demo/src/main/webapp/examples/dropDownMenu.xhtml
===================================================================
--- trunk/examples/output-demo/src/main/webapp/examples/dropDownMenu.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/output-demo/src/main/webapp/examples/dropDownMenu.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -130,7 +130,7 @@
<ddm:menuItem label="Close" disabled="true"/>
<ddm:menuSeparator id="menuSeparator11" />
<ddm:menuItem label="Exit" action="#{menuBean.doExit}"/>
- <ddm:menuItem action="#{menuBean.doExit}">
+ <ddm:menuItem >
<h:inputText />
</ddm:menuItem>
<ddm:menuItem label="Add user!" mode="client">
@@ -155,9 +155,13 @@
<f:selectItem itemValue="ajax"/>
<f:selectItem itemValue="client"/>
</h:selectOneMenu><br/>
- </h:panelGrid>
+ <h:outputText value="Set skin to 'myskin' with custom font size and font weight:"/>
+ <h:commandButton value="myskin">
+ <f:setPropertyActionListener target="#{skinBean.skin}" value="myskin"/>
+ </h:commandButton>
+ </h:panelGrid>
- </h:panelGrid>
+ </h:panelGrid>
</h:form>
<br/>
<br/>
@@ -246,6 +250,14 @@
<br/>
<br/>
<ddm:toolbar >
+ <ddm:dropDownMenu id="ddmenuToolbar" horizontalOffset="10" verticalOffset="20" jointPoint="topRight" direction="bottomRight" style="border:0px solid #{a4jSkin.panelBorderColor}">
+ <f:facet name="label">
+ <h:panelGroup>
+ <h:graphicImage value="/images/ddmenu/copy.gif" styleClass="pic"/>
+ <h:outputText value="File"/>
+ </h:panelGroup>
+ </f:facet>
+ </ddm:dropDownMenu>
` <ddm:menuItem id="menuItemToolbar1"/>
<ddm:menuItem id="menuItemFacet1" label="Open" action="#{menuBean.doOpen}">
<f:facet name="icon">
Modified: trunk/examples/richfaces-showcase/pom.xml
===================================================================
--- trunk/examples/richfaces-showcase/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -18,7 +18,7 @@
<name>Richfaces Examples: Richfaces Showcase Application</name>
<properties>
- <gae.version>1.4.0</gae.version>
+ <gae.version>1.4.2</gae.version>
</properties>
<dependencies>
@@ -171,6 +171,16 @@
<version>2.9.1</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <version>2.0.3-b03</version>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ <version>2.0.3-b03</version>
+ </dependency>
</dependencies>
<build>
<resources>
@@ -190,6 +200,7 @@
<directory>src/main/webapp</directory>
<excludes>
<exclude>WEB-INF/web.xml</exclude>
+ <exclude>WEB-INF/faces-config.xml</exclude>
</excludes>
</resource>
<resource>
@@ -431,8 +442,8 @@
</profiles>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/examples/richfaces...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/examples/richfaces-sh...</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/examples/...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/examples/ric...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/examples/richfac...</url>
</scm>
</project>
Modified: trunk/examples/richfaces-showcase/readme.txt
===================================================================
--- trunk/examples/richfaces-showcase/readme.txt 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/readme.txt 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,170 +1,170 @@
-========================================================================
-
- RichFaces - Ajax enabled JSF 2.0 component library
-
- RichFaces 4.0.CR1 SHOWCASE
- http://richfaces.org
- March 2011
- This software is distributed under the terms of the
- FSF Lesser Gnu Public License (see lgpl.txt)
-
-========================================================================
-
-RichFaces showcase is an application created to show RichFaces components
-in action. It contains a set of small use-cases implemented using RichFaces
-components.
-
-The examples shown in the application were chosen from the most popular
-questions at the user forum. You will find a lot of useful information on
-how to implement RichFaces components and re-use the code to implement the
-components in your own application.
-
-This file explains how to build and execute the showcase application on
-your own server.
-
-
-BUILDING AND RUNNING THE APPLICATION
-------------------------------------
-
- 1. Requirements
-
- In order to build the Showcase application you will need:
-
- - Maven 2.1.0 or later
- - Servers: Apache Tomcat 6.0 or any JEE6 application server
- (e.g. JBoss AS 6)
- - JDK 1.6
-
- Also optional Additional Software would make it easy for you to work
- with the sources of the application:
-
- - Eclipse IDE + JBoss Tools (to explore and run the application
- in IDE). You're obviously free to use any other IDE you wish, but
- JBoss Tools is recommended.
-
- 2. Build/Deploy
-
- - Deploying on Tomcat
-
- To build the project for Tomcat you need to navigate to the
- /examples/richfaces-showcase and run:
-
- mvn clean package
-
- When you see the BUILD SUCCESSFUL message you can deploy the
- application on the server. To deploy it on Tomcat, copy the .war
- file from 'target' folder to TOMCAT_HOME/webapps folder. Then,
- launch the startup.sh or startup.bat script from TOMCAT_HOME/bin/
- directory to start the server.
-
- - Deploying on JEE6 server (JBoss AS 6)
-
- To build the project for a JEE6 server you need to navigate to the
- /examples/richfaces-showcase and run
-
- mvn clean package -Pjee6
-
- When you see the BUILD SUCCESSFUL message you can deploy the
- application on the server. To deploy it on the application server
- copy the .war file from 'target' folder to the JBOSS_HOME/server/default/deploy
- folder (or change "default/" to used profile folder). Then, launch
- the run.sh or run.bat script from JBOSS_HOME/bin/ directory to start
- the server.
-
-
-After deploying the examples to your server open a browser and type
-http://localhost:8080/richfaces-showcase to view the examples.
-
- - Publishing to Google Application Engine (GAE)
-
- We have completed a resource plugin which generates static resources
- allowing us to create Google App Engine compatible applications
- using RichFaces. This means deploying to and working with GAE is
- a piece of cake. Here is how you can deploy your own RichFaces showcase
- example:
-
- * Update the GAE application name, and register it with google.
- Do this by updating the /webapp-gae/WEB-INF/appengine-web.xml
- following the GAE standard documentation.
-
- * if using MyFaces: Configure the MyFaces encryption secret values
- in the /webapp-gae/WEB-INF/web.xml. Replace the "-- Insert some secret here --"
- with a base64 encoded password. This is important because
- otherwise MyFaces will generate random keys, and this causes
- issues in a cluster environment like GAE.
-
- For more information on JSF encryption check:
- MyFaces - http://wiki.apache.org/myfaces/Secure_Your_Applicatio
- Mojarra - http://wikis.sun.com/display/GlassFish/JavaServerFacesRI#JavaServerFacesR...
-
- * Build using: mvn clean package -Pgae
-
- * Use GAE SDK and the appcfg script just as you would for any other
- GAE application.
-
- There are some additional changes that were made in order to make
- richfaces-showcase GAE compatible:
-
- * WebConfiguration class from com.sun.faces were patched removing
- code which is not compatible with GAE
-
- * web.xml with additional properties for GAE created and placed
- at src\main\webapp-gae\WEB-INF\ (it replaces common one during
- build with GAE profile)
-
- * check pom.xml GAE profile section in order to check additional
- dependencies for that configuration
-
-
-SETTING UP ECLIPSE TO WORK WITH THE SHOWCASE
---------------------------------------------
-
-In order to explore, run and deploy the Showcase using Eclipse IDE you can use
-one of the following options:
-
- - You could use JBoss Tools with m2eclipse plugin and just import
- the examples as maven-based projects.
- * Open Eclipse and go to File > Import
- * Expand the project type named Maven and select Import Maven
- Project
- * Browse the directory in which you placed the examples, select
- it and press OK.
- * Press next on the import wizard to finish importing the
- examples.
-
- - Or if you are not using m2eclipse execute use Maven to convert the
- project to an Eclipse project:
- * Open a terminal inside the RichFaces examples directory
- * execute mvn eclipse:ecllipse
- * Open Eclipse and select File > Import
- * Select Import as existing project into workspace after build
- is complete.
- * Follow the instructions on the import wizard.
-
-You are now able to work with the Showcase within Eclipse.
-
-
-MORE INFORMATION AND RESOURCES
-------------------------------
-
-For more information on RichFaces 4, please visit RichFaces
-website at:
-
- - http://www.jboss.org/richfaces.
-
-Or check the Wiki for more information on build instructions for the examples at:
-
- - http://community.jboss.org/wiki/HowtoworkwithRichFaces4xexamplessources
-
-To report or check the status of issues related to RichFaces Examples
-use the project's Jira at:
-
- - https://issues.jboss.org/browse/RF
-
-Community support and help can be obtained from the RichFaces forums at:
-
- - http://community.jboss.org/en/richfaces?view=discussions
-
-
-
-###
+========================================================================
+
+ RichFaces - Ajax enabled JSF 2.0 component library
+
+ RichFaces 4.0.0.Final SHOWCASE
+ http://richfaces.org
+ March 2011
+ This software is distributed under the terms of the
+ FSF Lesser Gnu Public License (see lgpl.txt)
+
+========================================================================
+
+RichFaces showcase is an application created to show RichFaces components
+in action. It contains a set of small use-cases implemented using RichFaces
+components.
+
+The examples shown in the application were chosen from the most popular
+questions at the user forum. You will find a lot of useful information on
+how to implement RichFaces components and re-use the code to implement the
+components in your own application.
+
+This file explains how to build and execute the showcase application on
+your own server.
+
+
+BUILDING AND RUNNING THE APPLICATION
+------------------------------------
+
+ 1. Requirements
+
+ In order to build the Showcase application you will need:
+
+ - Maven 2.1.0 or later
+ - Servers: Apache Tomcat 6.0 or any JEE6 application server
+ (e.g. JBoss AS 6)
+ - JDK 1.6
+
+ Also optional Additional Software would make it easy for you to work
+ with the sources of the application:
+
+ - Eclipse IDE + JBoss Tools (to explore and run the application
+ in IDE). You're obviously free to use any other IDE you wish, but
+ JBoss Tools is recommended.
+
+ 2. Build/Deploy
+
+ - Deploying on Tomcat
+
+ To build the project for Tomcat you need to navigate to the
+ /examples/richfaces-showcase and run:
+
+ mvn clean package
+
+ When you see the BUILD SUCCESSFUL message you can deploy the
+ application on the server. To deploy it on Tomcat, copy the .war
+ file from 'target' folder to TOMCAT_HOME/webapps folder. Then,
+ launch the startup.sh or startup.bat script from TOMCAT_HOME/bin/
+ directory to start the server.
+
+ - Deploying on JEE6 server (JBoss AS 6)
+
+ To build the project for a JEE6 server you need to navigate to the
+ /examples/richfaces-showcase and run
+
+ mvn clean package -Pjee6
+
+ When you see the BUILD SUCCESSFUL message you can deploy the
+ application on the server. To deploy it on the application server
+ copy the .war file from 'target' folder to the JBOSS_HOME/server/default/deploy
+ folder (or change "default/" to used profile folder). Then, launch
+ the run.sh or run.bat script from JBOSS_HOME/bin/ directory to start
+ the server.
+
+
+After deploying the examples to your server open a browser and type
+http://localhost:8080/richfaces-showcase to view the examples.
+
+ - Publishing to Google Application Engine (GAE)
+
+ We have completed a resource plugin which generates static resources
+ allowing us to create Google App Engine compatible applications
+ using RichFaces. This means deploying to and working with GAE is
+ a piece of cake. Here is how you can deploy your own RichFaces showcase
+ example:
+
+ * Update the GAE application name, and register it with google.
+ Do this by updating the /webapp-gae/WEB-INF/appengine-web.xml
+ following the GAE standard documentation.
+
+ * if using MyFaces: Configure the MyFaces encryption secret values
+ in the /webapp-gae/WEB-INF/web.xml. Replace the "-- Insert some secret here --"
+ with a base64 encoded password. This is important because
+ otherwise MyFaces will generate random keys, and this causes
+ issues in a cluster environment like GAE.
+
+ For more information on JSF encryption check:
+ MyFaces - http://wiki.apache.org/myfaces/Secure_Your_Applicatio
+ Mojarra - http://wikis.sun.com/display/GlassFish/JavaServerFacesRI#JavaServerFacesR...
+
+ * Build using: mvn clean package -Pgae
+
+ * Use GAE SDK and the appcfg script just as you would for any other
+ GAE application.
+
+ There are some additional changes that were made in order to make
+ richfaces-showcase GAE compatible:
+
+ * WebConfiguration class from com.sun.faces were patched removing
+ code which is not compatible with GAE
+
+ * web.xml with additional properties for GAE created and placed
+ at src\main\webapp-gae\WEB-INF\ (it replaces common one during
+ build with GAE profile)
+
+ * check pom.xml GAE profile section in order to check additional
+ dependencies for that configuration
+
+
+SETTING UP ECLIPSE TO WORK WITH THE SHOWCASE
+--------------------------------------------
+
+In order to explore, run and deploy the Showcase using Eclipse IDE you can use
+one of the following options:
+
+ - You could use JBoss Tools with m2eclipse plugin and just import
+ the examples as maven-based projects.
+ * Open Eclipse and go to File > Import
+ * Expand the project type named Maven and select Import Maven
+ Project
+ * Browse the directory in which you placed the examples, select
+ it and press OK.
+ * Press next on the import wizard to finish importing the
+ examples.
+
+ - Or if you are not using m2eclipse execute use Maven to convert the
+ project to an Eclipse project:
+ * Open a terminal inside the RichFaces examples directory
+ * execute mvn eclipse:ecllipse
+ * Open Eclipse and select File > Import
+ * Select Import as existing project into workspace after build
+ is complete.
+ * Follow the instructions on the import wizard.
+
+You are now able to work with the Showcase within Eclipse.
+
+
+MORE INFORMATION AND RESOURCES
+------------------------------
+
+For more information on RichFaces 4, please visit RichFaces
+website at:
+
+ - http://richfaces.org
+
+Or check the Wiki for more information on build instructions for the examples at:
+
+ - http://community.jboss.org/wiki/HowtoworkwithRichFaces4xexamplessources
+
+To report or check the status of issues related to RichFaces Examples
+use the project's Jira at:
+
+ - https://issues.jboss.org/browse/RF
+
+Community support and help can be obtained from the RichFaces forums at:
+
+ - http://community.jboss.org/en/richfaces?view=discussions
+
+
+
+###
Modified: trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/common/navigation/DemoDescriptor.java
===================================================================
--- trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/common/navigation/DemoDescriptor.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/common/navigation/DemoDescriptor.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -10,9 +10,22 @@
private static final long serialVersionUID = 6822187362271025752L;
private static final String BASE_SAMPLES_DIR = "/richfaces/";
-
+
private List<SampleDescriptor> samples;
+ private boolean containsNewSamples() {
+ for (SampleDescriptor sample : samples) {
+ if (sample.isNewItem()){
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public boolean isNewItems() {
+ return (isNewItem() || containsNewSamples());
+ }
+
public SampleDescriptor getSampleById(String id) {
for (SampleDescriptor sample : getSamples()) {
if (sample.getId().equals(id)) {
Modified: trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/common/navigation/GroupDescriptor.java
===================================================================
--- trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/common/navigation/GroupDescriptor.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/common/navigation/GroupDescriptor.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -11,6 +11,19 @@
private List<DemoDescriptor> demos;
+ private boolean containsNewDemos() {
+ for (DemoDescriptor demo : demos) {
+ if (demo.isNewItems()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public boolean isNewItems() {
+ return isNewItem() || containsNewDemos();
+ }
+
@XmlElementWrapper(name = "demos")
@XmlElement(name = "demo")
public List<DemoDescriptor> getDemos() {
Added: trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/togglepanel/Profile.java
===================================================================
--- trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/togglepanel/Profile.java (rev 0)
+++ trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/togglepanel/Profile.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,47 @@
+package org.richfaces.demo.togglepanel;
+
+import java.io.Serializable;
+
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.ViewScoped;
+
+@ManagedBean
+@ViewScoped
+public class Profile implements Serializable{
+ private String firstName;
+ private String lastName;
+ private String company;
+ private String notes;
+
+ public String getCompany() {
+ return company;
+ }
+
+ public void setCompany(String company) {
+ this.company = company;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public String getNotes() {
+ return notes;
+ }
+
+ public void setNotes(String notes) {
+ this.notes = notes;
+ }
+}
Deleted: trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/DayStatistics.java
===================================================================
--- trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/DayStatistics.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/DayStatistics.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,59 +0,0 @@
-/**
- *
- */
-package org.richfaces.demo.validation;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.faces.application.FacesMessage;
-import javax.faces.bean.ManagedBean;
-import javax.faces.bean.RequestScoped;
-import javax.faces.context.FacesContext;
-import javax.faces.event.ActionEvent;
-import javax.validation.constraints.Max;
-import javax.validation.constraints.Min;
-import javax.validation.constraints.NotNull;
-
-/**
- * @author Ilya Shaikovsky
- *
- */
-@ManagedBean
-@RequestScoped
-public class DayStatistics {
-
- private List<PassTime> dayPasstimes = new ArrayList<PassTime>();
-
- public DayStatistics() {
- dayPasstimes.add(new PassTime("Sport", 0));
- dayPasstimes.add(new PassTime("Entertainment", 0));
- dayPasstimes.add(new PassTime("Sleeping", 0));
- dayPasstimes.add(new PassTime("Games", 0));
- }
-
- public List<PassTime> getDayPasstimes() {
- return dayPasstimes;
- }
-
- public void setDayPasstimes(List<PassTime> dayPasstimes) {
- this.dayPasstimes = dayPasstimes;
- }
-
- @NotNull
- @Min(value = 1, message = "Please fill at list one entry")
- @Max(value = 24, message = "Only 24h in a day!")
- public Integer getTotalTime() {
- Integer result = new Integer(0);
- for (PassTime passtime : dayPasstimes) {
- result += passtime.getTime();
- }
- return result;
- }
-
- public void store(ActionEvent event) {
- FacesContext.getCurrentInstance().addMessage(
- event.getComponent().getClientId(FacesContext.getCurrentInstance()),
- new FacesMessage(FacesMessage.SEVERITY_INFO, "Changes Stored Successfully", "Changes Stored Successfully"));
- }
-}
Deleted: trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/PassTime.java
===================================================================
--- trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/PassTime.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/PassTime.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,41 +0,0 @@
-package org.richfaces.demo.validation;
-
-import javax.validation.constraints.Max;
-import javax.validation.constraints.Min;
-import javax.validation.constraints.NotNull;
-
-import org.hibernate.validator.constraints.Length;
-import org.hibernate.validator.constraints.NotEmpty;
-
-public class PassTime {
-
- @NotEmpty
- @Length(max = 15, min = 3)
- private String title;
- @NotNull
- @Min(0)
- @Max(12)
- private Integer time;
-
- public PassTime(String title, Integer time) {
- setTitle(title);
- setTime(time);
- }
-
- public String getTitle() {
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public Integer getTime() {
- return time;
- }
-
- public void setTime(Integer time) {
- this.time = time;
- }
-
-}
Added: trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/PasswordValidationBean.java
===================================================================
--- trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/PasswordValidationBean.java (rev 0)
+++ trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/PasswordValidationBean.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,49 @@
+package org.richfaces.demo.validation;
+
+import java.io.Serializable;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.SessionScoped;
+import javax.faces.context.FacesContext;
+import javax.validation.constraints.AssertTrue;
+import javax.validation.constraints.Size;
+
+@ManagedBean
+@SessionScoped
+public class PasswordValidationBean implements Cloneable, Serializable{
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1952428504080910113L;
+ @Size(min = 5, max = 15, message = "Wrong size for password")
+ private String password="";
+ @Size(min = 5, max = 15, message = "Wrong size for confirmation")
+ private String confirm="";
+
+ @AssertTrue(message = "Different passwords entered!")
+ public boolean isPasswordsEquals() {
+ return password.equals(confirm);
+ }
+
+ public void storeNewPassword() {
+ FacesContext.getCurrentInstance().addMessage(null,
+ new FacesMessage(FacesMessage.SEVERITY_INFO, "Succesfully changed!", "Succesfully changed!"));
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public void setConfirm(String confirm) {
+ this.confirm = confirm;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public String getConfirm() {
+ return confirm;
+ }
+}
Modified: trunk/examples/richfaces-showcase/src/main/resources/org/richfaces/demo/data/common/navigation.xml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/resources/org/richfaces/demo/data/common/navigation.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/resources/org/richfaces/demo/data/common/navigation.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -172,10 +172,10 @@
</demo>
</demos>
</group>
- <group>
+ <group new="true">
<name>Validation</name>
<demos>
- <demo new="true">
+ <demo>
<id>clientValidation</id>
<name>Client Side Validation</name>
<samples>
@@ -189,17 +189,17 @@
</sample>
</samples>
</demo>
- <demo new="true">
+ <demo>
<id>graphValidator</id>
<name>rich:graphValidator</name>
<samples>
- <sample>
- <id>graphValidator</id>
- <name>Object validation using rich:graphValidator</name>
+ <sample new="true">
+ <id>passwordValidation</id>
+ <name>Password Validation</name>
</sample>
</samples>
</demo>
- <demo new="true">
+ <demo>
<id>message</id>
<name>rich:message</name>
<samples>
@@ -209,7 +209,7 @@
</sample>
</samples>
</demo>
- <demo new="true">
+ <demo>
<id>messages</id>
<name>rich:messages</name>
<samples>
@@ -377,6 +377,10 @@
<id>simple</id>
<name>Simple Toggle Panel</name>
</sample>
+ <sample new="true">
+ <id>wizard</id>
+ <name>Wizard creation</name>
+ </sample>
</samples>
</demo>
<demo>
@@ -464,7 +468,7 @@
<group>
<name>Menus</name>
<demos>
- <demo new="true">
+ <demo>
<id>panelMenu</id>
<name>rich:panelMenu</name>
<samples>
@@ -474,9 +478,9 @@
</sample>
</samples>
</demo>
- <demo new="true">
+ <demo>
<id>toolBar</id>
- <name>rich:toolBar</name>
+ <name>rich:toolbar</name>
<samples>
<sample>
<id>toolBar</id>
@@ -488,7 +492,7 @@
</sample>
</samples>
</demo>
- <demo new="true">
+ <demo>
<id>dropDownMenu</id>
<name>rich:dropDownMenu</name>
<samples>
@@ -521,19 +525,19 @@
</sample>
</samples>
</demo>
- <demo new="true">
+ <demo>
<id>calendar</id>
<name>rich:calendar</name>
<samples>
- <sample new="true">
+ <sample>
<id>calendar</id>
<name>Simple Calendar</name>
</sample>
- <sample new="true">
+ <sample>
<id>clientStylingDisablement</id>
<name>Client Side Styling/Disablement</name>
</sample>
- <sample new="true">
+ <sample>
<id>dataModel</id>
<name>Data Model Support</name>
</sample>
@@ -589,7 +593,7 @@
</sample>
</samples>
</demo>
- <demo new="true">
+ <demo>
<id>fileUpload</id>
<name>rich:fileUpload</name>
<samples>
@@ -605,7 +609,7 @@
<name>Drag and Drop</name>
<demos>
<demo new="true">
- <id>dragDrop</id>
+ <id>dragDrop</id>
<name>Drag and Drop</name>
<samples>
<sample>
Added: trunk/examples/richfaces-showcase/src/main/webapp/favicon.ico
===================================================================
(Binary files differ)
Property changes on: trunk/examples/richfaces-showcase/src/main/webapp/favicon.ico
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/examples/richfaces-showcase/src/main/webapp/resources/css/application.css
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/resources/css/application.css 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/resources/css/application.css 2011-03-27 13:51:09 UTC (rev 22318)
@@ -146,8 +146,8 @@
padding:15px 20px 10px;
}
-.source .syntaxhighlighter .line{
- white-space: normal !important;
+.source, div.rf-log {
+ width: 650px;
}
a.show, a.hide{
@@ -247,3 +247,7 @@
.navigation .rf-tab-lbl{
font:normal 12px "Lucida Sans Unicode", "Lucida Grande", Geneva,Verdana,Arial,sans-serif;
}
+
+textarea[disabled], input[type="text"][disabled], input[type="password"][disabled], select[disabled] {
+ -webkit-text-fill-color: #B6AD84;
+}
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/accordion/simple.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/accordion/simple.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/accordion/simple.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,14 +5,11 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>The <b>Accordion</b> (<i>panelBar from 3.3.x</i>) is a set of panels when one panel is expanded,
- but other ones are collapsed. </p>
- <p>
- <b>Main addition</b> to previous 3.3.x functionality - accordion in 4.x was finally added with
- different switching <b>switchType</b>'s. So as all the switchable panels it could be used with next modes -
- "<i>client</i>", "<i>ajax</i>" and "<i>server</i>".
- </p>
- <p>The following demo shows the simple example of usage for the Accordion in client mode:</p>
+ <p>The <b>rich:accordion</b> component is a set of panels where one panel is expanded,
+ while the other ones are collapsed. This is similar to, and inherits much of
+ the features from the rich:togglePanel, and rich:tabPanel. See the descriptions
+ of these components for details on switch-types, and shortcuts.</p>
+ <p>The following example shows the usage of the rich:accordion in client mode:</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/ajax/ajax.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/ajax/ajax.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/ajax/ajax.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -6,8 +6,9 @@
xmlns:a4j="http://richfaces.org/a4j">
<ui:composition>
- <p>The behavior that adds javascript call for sending Ajax request
- to specified event on parent component</p>
+ <p><b>a4j:ajax</b> is one of our core behaviors, extending the base JSF 2.0
+ f:ajax tag. This tag triggers an Ajax request when the specified parent
+ event is triggered.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}"/>
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}"/>
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/ajax/selectsUpdates.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/ajax/selectsUpdates.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/ajax/selectsUpdates.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -6,9 +6,10 @@
xmlns:a4j="http://richfaces.org/a4j">
<ui:composition>
- <p>Typical use-case of dependent select components. When you
- choosing the type in the first select - corresponding items appears in
- second one.</p>
+ <p>This is a slightly more complex use-case for <b>arj:ajax</b> involving
+ dependent select components. When you choose a value from the first select
+ component, the second select component is rendered with dynamic content
+ based on you first choice. </p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/attachQueue/attachQueue.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/attachQueue/attachQueue.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/attachQueue/attachQueue.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -3,14 +3,16 @@
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j">
- <p>In RichFaces 4 all request settings related to queue was moved
- out of components attributes and now customization available using new
- <b>a4j:attachQueue</b> tag. Next sample shows how <b>requestDelay</b>
- could be changed for single component.</p>
- <p>Note that when you typing in input - status appears with two
- seconds delay because <b>default queue contains requestDelay="2000"</b>.
- And when you clicking save button - it appears immediately because <b>requestDelay
- changed to 0 for the button</b>.</p>
+ <p>The <b>a4j:attachQueue</b> component allow you to funnel requests
+ from specific components or behaviors through a 'named' queue (see queue
+ example), but also allows you to override queue settings right from the
+ component. </p>
+ <p>This sample shows how <b>requestDelay</b>
+ can be changed for single component.</p>
+ <p>Note that when you are typing in the input - the status appears with a two
+ seconds delay because the <b>default queue contains requestDelay="2000"</b>.
+ However when you are clicking the save button - it appears immediately
+ because <b>requestDelay changed to 0 for the button</b>.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/cachedAjax.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/cachedAjax.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/cachedAjax.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,26 +1,32 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:h="http://java.sun.com/jsf/html"
- 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:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>Autocomplete component - simple Input component which provides suggestions during input.</p>
- <p>Could works using three modes:
- <ul>
- <li>Client - preloads data to the client side and makes suggestions according to entered prefix on the client</li>
- <li>Ajax - fetches the data on every input change using ajax requests</li>
- <li>Cached Ajax - loads data via ajax to make suggestions when the prefix length satisfies minchars attribute. Then all the suggestions done at client side except the case when initial prefix changed or token entered. Then loads data again.</li>
- </ul>
- </p>
- <p>Here is the sample for new cachedAjax mode. </p>
- <ui:include src="#{demoNavigator.sampleIncludeURI}" />
- <ui:include src="/templates/includes/source-view.xhtml">
- <ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
- <ui:param name="sourceType" value="xhtml" />
- <ui:param name="openLabel" value="View Source" />
- <ui:param name="hideLabel" value="Hide Source" />
- </ui:include>
+ <p>The <b>rich:autocomplete</b> component looks like a simple input component,
+ but has advanced options and features to provide suggestions to the user during input.</p>
+
+ <p>There are three different <i>modes</i> for how it fetches suggestions:</p>
+ <ul>
+ <li>
+ <b>Client</b> - preloads data to the client and makes suggestions according to the entered prefix on the client
+ </li>
+ <li><b>Ajax</b> - fetches the data on every input change using Ajax requests</li>
+ <li><b>Cached Ajax</b> - loads data via Ajax to make suggestions when the prefix length satisfies
+ <i>minChars</i> attribute value. Then all the suggestions are handled at the client until the initial prefix is changed. At that point it will reload with the new prefix.
+ </li>
+ </ul>
+ <p><b>1)</b> Autocomplete American state names using the cached Ajax mode with <i>minChars="2"</i>.</p>
+ <ui:include src="#{demoNavigator.sampleIncludeURI}"/>
+ <ui:include src="/templates/includes/source-view.xhtml">
+ <ui:param name="src" value="#{demoNavigator.sampleIncludeURI}"/>
+ <ui:param name="sourceType" value="xhtml"/>
+ <ui:param name="openLabel" value="View Source"/>
+ <ui:param name="hideLabel" value="Hide Source"/>
+ </ui:include>
</ui:composition>
</html>
\ No newline at end of file
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/clientFilter.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/clientFilter.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/clientFilter.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,17 +5,18 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>Except the server-side <b>"autocomplete"</b> method which could
- be used to collect suggestion strings according to entered prefix, <b>rich:autocomplete</b>
- allows to define similar method for filtering at client side. It should
- be defined using <b>clientFilterFunction</b> attribute which accepts
- custom filter function name. Function should accepts two parameters <b>subString</b>(current
- input value considering tokens) and <b>value</b>(currently iterated
- item value) and return boolean flag which means if the value satisfies
+ <p>When a suggestion request is sent to the server via an Ajax call you
+ have full control over the suggestion list. Once that data is on the
+ client the default filter is <i>startsWith</i>. This
+ can be changed to any custom JavaScript filter you wish. This example
+ shows you how to define and call a custom filter for <i>contains</i> instead
+ of <i>startsWith</i>.</p>
+ <p>The <b>clientFilterFunction</b> attribute accepts
+ a custom JavaScript function name. This function should have two parameters;
+ <b>subString</b>(current input value considering tokens) and <b>value</b>
+ (currently iterated item value) and return boolean flag which means if the value satisfies
the substring passed. The function will be called for every available
- suggestion in order to construct new list of suggestions.</p>
- <p>This sample shows how to change the client filtering to <b>"contains"</b>
- instead of <b>"startsWith"</b></p>
+ suggestion in order to construct a new list of suggestions.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/samples/cachedAjax-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/samples/cachedAjax-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/samples/cachedAjax-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,31 +5,25 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
- <p>Default autocomplete in cachedAjax mode</p>
<h:form>
- <rich:autocomplete mode="cachedAjax" minChars="0"
+ <rich:autocomplete mode="cachedAjax" minChars="2"
autocompleteMethod="#{autocompleteBean.autocomplete}" />
</h:form>
- <p>Autocomplete without direct suggestions to input(<b>autoFill="false"</b>).
- Also in the sample comma and space are input <b>tokens</b>, so separate
- autocompletion requests will be fired for different parts in input</p>
+ <p><b>2)</b> Allows multiple selections using tokens ', and ' '. This means
+ you will be able to separate different values with a space or comma
+ and get a new suggestion for a second value. The <b>autoFill</b>
+ attribute is set to false so you will notice values are not automatically added.</p>
<h:form>
- <rich:autocomplete mode="cachedAjax" tokens=", " minChars="0"
+ <rich:autocomplete mode="cachedAjax" tokens=", " minChars="1"
autofill="false"
autocompleteMethod="#{autocompleteBean.autocomplete}" />
</h:form>
- <p>In that sample <b>selectFirst</b> set to false so pressing enter
- will not choose the value from list but just submit currently entered
+ <p><b>3)</b> With the <b>selectFirst</b> attribute set to false pressing enter
+ will not choose the value from list automatically, but just submit currently entered
value.</p>
<h:form>
<rich:autocomplete mode="cachedAjax" tokens=", " minChars="0"
autoFill="false" selectFirst="false"
autocompleteMethod="#{autocompleteBean.autocomplete}" />
</h:form>
- <fieldset><legend><b>NOTE:</b> </legend> The developer has
- full control under filtering on server side according to prefix. But in
- client and cachedAjax modes - just built-in startWith method used. In
- near future the component will be updated with one more attribute which
- will allow the developer to define client side comparator function to
- customize that behavior.</fieldset>
</ui:composition>
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/calendar/calendar.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/calendar/calendar.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/calendar/calendar.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,11 +5,11 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p><b>rich:calendar</b> allows to select the date using monthly calendar
- elements on pages. It is possible to use the component in a <b>popup or
- inline mode.</b> At a popup mode Calendar is initially rendered as input for
- date and button on the right side to call a popup. In case of an inline
- mode, the monthly calendar is located on a page initially.</p>
+ <p>The <b>rich:calendar</b> component allows you to select a date using a
+ monthly calendar widget. It is possible to use the component in a <b>popup or
+ inline mode</b>. In popup mode the calendar is initially rendered as an input for
+ date with a button on the right side to trigger the popup. For inline
+ mode, the monthly calendar is rendered on the page initially.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/calendar/clientStylingDisablement.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/calendar/clientStylingDisablement.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/calendar/clientStylingDisablement.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,8 +5,8 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>This simple example shows the way of client side dates
- disablement and styling without dataModel usage.</p>
+ <p>This example shows how to define days that are disabled. In this example
+ we are using client side scripts to define the dates.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/calendar/dataModel.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/calendar/dataModel.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/calendar/dataModel.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,18 +5,16 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>Calendar may use a special Data Model to provide data for
- element rendering. You can re-define the default Calendar Model using
- the dataModel attribute pointed to the object that implements
+ <p>The calendar may also use a special data model to provide data for
+ element rendering. You can re-define the default calendar model using
+ the <i>dataModel</i> attribute and point to an object that implements the
CalendarDataModel interface.</p>
- <p>In next simple example next rules applied using model:</p>
+ <p>In this example we are using a custom data model to implement the following
+ rules:</p>
<ul>
- <li>Weekend days are disabled (sunday and saturday) and uses bold
- and italic text style.</li>
- <li>Thuesday and Thursday are disabled also. (just RichFaces team
- meeting days) So grayed out as busy days.</li>
- <li>All the values in the past disabed and styled as boundary
- dates.</li>
+ <li>Weekend days are disabled and use bold and italic text style.</li>
+ <li>Tuesdays and Thursdays are disabled, and grayed out to represent busy days.</li>
+ <li>All the values in the past are disabled and styled as boundary dates.</li>
</ul>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
@@ -39,20 +37,17 @@
<ui:param name="openLabel" value="View CalendarModelItem Source" />
<ui:param name="hideLabel" value="Hide CalendarModelItem Source" />
</ui:include>
- <p>Calendar may use a special Data Model to provide data for
- element rendering. You can re-define the default Calendar Model using
- the dataModel attribute pointed to the object that implements
- <b>CalendarDataModel</b> interface.</p>
- <p>CalendarDataModel has the following methods:</p>
+ <p>There are two primary interfaces that make up the calendar data model.</p>
+ <p><i>CalendarDataModel</i>:</p>
<ul>
<li><b>CalendarDataModelItem[] getData(Date[])</b> is called every time
when components need the next block of CalendarDataItems. That may
- happens when the calendar is rendered, or when you navigate to the
+ happen when the calendar is rendered, or when you navigate to the
next/previous month or in any other case when the calendar is
- rendered. This method is called in an Ajax mode when the calendar
- renders a new page.</li>
+ rendered. This method is called in Ajax mode when the calendar
+ renders for a new page.</li>
</ul>
- <p>CalendarDataModelItem provides the following methods:</p>
+ <p><i>CalendarDataModelItem</i>:</p>
<ul>
<li><b>Boolean isEnabled()</b> returns "true" if date is "selectable" on
the calendar, the default implementation returns "true"</li>
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/clientValidation/jsfValidators.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/clientValidation/jsfValidators.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/clientValidation/jsfValidators.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,18 +5,19 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p><b>RichFaces Client Validation</b> feature allows you to add
- client side validation without writing any line of JavaScript!</p>
- <p>All the JSF validators and JSR-303 standard validators will be
- available on client side after just <b><rich:validator/></b> to
- the inputs which you want to be validated at client side. If you using
- any custom validators or some additional for example hibernate
- validators which we not implemented in first version - Ajax fallback
- mechanism will be used. It means that behavior will try to execute all
- client vlidators available and then send Ajax request for unknown to
- get results from server side.</p>
- <p>In that sample - pay attention that no requests fired when
- typing wrong values in first the fields. </p>
+ <p>The <b>RichFaces Client Validation</b> feature allows you to have true
+ client side validation without writing a single line of JavaScript!</p>
+ <p>The standard JSF validators and JSR-303 (bean validation) constraints will
+ be available on the client side just by adding <b><rich:validator/></b> to
+ the desired inputs. If you are using any custom validators or extensions
+ such as from hibernate an Ajax fallback mechanism will be used triggered.
+ This will be basically seamless to the user, as an Ajax request will handle
+ that specific validation. In future versions we plan to implement additional
+ extensions such as these including custom client side validation.
+ The behavior will try to execute all client validators available and then
+ send an Ajax request to get results from server side if needed.</p>
+ <p>In this example we are using standard JSF validators and notice that no
+ requests are fired when typing values in these fields. </p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
@@ -27,17 +28,13 @@
<fieldset>
<legend><b>Notes:</b></legend>
<ul>
- <li>Some JSR-303 validators still not implemented. Them will start work transparently for you after new snapshots with implementations added</li>
- <li>We will provide information about how to provide client validation for custom validators soon!</li>
+ <li>Some JSR-303 validators are not yet implemented for various reasons
+ (localization primarily). As we complete these implementations they
+ will work transparently after upgrading, plus Ajax fallbacks will work fine
+ for these, so there is no reason not to start using them now!</li>
+ <li>In future versions custom client side validators will be possible, and we'll
+ update our examples to showcase them.</li>
</ul>
</fieldset>
- <fieldset>
- <legend><b>What to expect additionally:</b></legend>
- After we will complete all standard validators migration and instructions for custom ones we plan to work on next features:
- <ul>
- <li>Client Validation for submit components to perform bulk form validation.</li>
- <li>Ways of default validation definitions without usage of <b><rich:validator/></b> tag for every input.</li>
- </ul>
- </fieldset>
</ui:composition>
</html>
\ No newline at end of file
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/clientValidation/jsr303.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/clientValidation/jsr303.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/clientValidation/jsr303.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,19 +5,20 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p><b>RichFaces Client Validation</b> feature allows you to add
- client side validation without writing any line of JavaScript!</p>
- <p>All the JSF validators and JSR-303 standard validators will be
- available on client side after just <b><rich:validator/></b> to
- the inputs which you want to be validated at client side. If you using
- any custom validators or some additional for example hibernate
- validators which we not implemented in first version - Ajax fallback
- mechanism will be used. It means that behavior will try to execute all
- client vlidators available and then send Ajax request for unknown to
- get results from server side.</p>
- <p>In that sample - pay attention that no requests fired when
- typing wrong values in all the fields and only checkbox activation
- causes Ajax fallback.</p>
+ <p>The <b>RichFaces Client Validation</b> feature allows you to have true
+ client side validation without writing a single line of JavaScript!</p>
+ <p>The standard JSF validators and JSR-303 (bean validation) constraints will
+ be available on the client side just by adding <b><rich:validator/></b> to
+ the desired inputs. If you are using any custom validators or extensions
+ such as from hibernate an Ajax fallback mechanism will be used triggered.
+ This will be basically seamless to the user, as an Ajax request will handle
+ that specific validation. In future versions we plan to implement additional
+ extensions such as these including custom client side validation.
+ The behavior will try to execute all client validators available and then
+ send an Ajax request to get results from server side if needed.</p>
+ <p>In this example we are using Bean Validation constraints and checking
+ them at the client, so no requests are fired when typing values
+ in the fields. </p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
@@ -31,24 +32,16 @@
<ui:param name="openLabel" value="View ValidationBean Source" />
<ui:param name="hideLabel" value="Hide ValidationBean Source" />
</ui:include>
- <fieldset><legend><b>Notes:</b></legend>
- <ul>
- <li>Some JSR-303 validators still not implemented. Them will
- start work transparently for you after new snapshots with
- implementations added</li>
- <li>We will provide information about how to provide client
- validation for custom validators soon!</li>
- </ul>
- </fieldset>
- <fieldset><legend><b>What to expect
- additionally:</b></legend> After we will complete all standard validators migration
- and instructions for custom ones we plan to work on next features:
- <ul>
- <li>Client Validation for submit components to perform bulk form
- validation.</li>
- <li>Ways of default validation definitions without usage of <b><rich:validator/></b>
- tag for every input.</li>
- </ul>
- </fieldset>
+ <fieldset>
+ <legend><b>Notes:</b></legend>
+ <ul>
+ <li>Some JSR-303 validators are not yet implemented for various reasons
+ (localization primarily). As we complete these implementations they
+ will work transparently after upgrading, plus Ajax fallbacks will work fine
+ for these, so there is no reason not to start using them now!</li>
+ <li>In future versions custom client side validators will be possible, and we'll
+ update our examples to showcase them.</li>
+ </ul>
+ </fieldset>
</ui:composition>
</html>
\ No newline at end of file
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/collapsiblePanel/simple.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/collapsiblePanel/simple.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/collapsiblePanel/simple.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,12 +5,13 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p><b>collapsiblePanel</b> representation is fully analogous to simple
- <b>rich:panel</b> component. Additionally that component could be toggled
- between two representations. In collapsed state only header shown and
- in expanded state there is complete panel.</p>
- <p>As most of switchable components it has three <b>switch types</b> for
- switching between states - <b>ajax</b>, <b>server</b> and <b>client</b>
+ <p>The <b>rich:collapsiblePanel</b> component is fully analogous to a simple
+ <b>rich:panel</b> component. Except that it can be collapsed, and expanded.
+ In the collapsed state only the header is shown and in expanded state the
+ complete panel.</p>
+ <p>As with most of switchable components it has three <b>switch types</b> for
+ switching between states - <b>ajax</b>, <b>server</b> and <b>client</b>.
+ See the rich:togglePanel for details.
</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
@@ -19,7 +20,7 @@
<ui:param name="openLabel" value="View Source" />
<ui:param name="hideLabel" value="Hide Source" />
</ui:include>
- <p>In ajax and server mode <b>PanelToggleEvent</b> queued and could be handled
- using <b>Listener</b> defined via <b>toggleListener</b> attribute</p>
+ <p><b>Note: </b>In ajax and server modes the <b>PanelToggleEvent</b> is queued and can be handled
+ using a <b>Listener</b> defined via the <b>toggleListener</b> attribute</p>
</ui:composition>
</html>
\ No newline at end of file
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/commandButton/commandButton.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/commandButton/commandButton.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/commandButton/commandButton.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,8 +5,9 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>The combination similar to h:commandButton with f:ajax. Inherits
- all a4j:ajax special options.</p>
+ <p>The <b>a4j:commandButton</b> combines the standard h:commandButton with our own
+ a4j:ajax. This not only reduces typing, but also inherits all a4j:ajax
+ special options.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/commandLink/commandLink.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/commandLink/commandLink.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/commandLink/commandLink.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -6,8 +6,9 @@
<ui:composition>
- <p>The combination similar to h:commandLink with f:ajax. Inherits
- all a4j:ajax special options.</p>
+ <p>The <b>a4j:commandLink</b> combines the standard h:commandLink with our own
+ a4j:ajax. This not only reduces typing, but also inherits all a4j:ajax
+ special options.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/component-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/component-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/component-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -7,13 +7,6 @@
xmlns:c="http://java.sun.com/jsp/jstl/core">
<ui:composition template="/templates/main.xhtml">
- <ui:define name="demoSampleParameters">
- <f:metadata>
- <f:viewParam name="sample" value="#{demoNavigator.sample}" />
- <f:viewParam name="demo" value="#{demoNavigator.demo}" />
- <f:viewParam name="skin" value="#{skinBean.skin}" />
- </f:metadata>
- </ui:define>
<ui:define name="body">
<style>
.navigation .rf-tab-hdr-brd,.navigation .rf-tab {
@@ -25,9 +18,9 @@
onbeforeitemchange="return false;">
<c:forEach items="#{demoNavigator.currentDemo.samples}" var="s">
<rich:tab header="#{s.name}" name="#{s.id}"
- onheaderclick="document.location='#{facesContext.externalContext.requestContextPath}/richfaces/component-sample.jsf?demo=#{d.id}&sample=#{s.id}&skin=#{skinBean.skin}'" />
+ onheaderclick="document.location.href='#{facesContext.externalContext.requestContextPath}/richfaces/component-sample.jsf?demo=#{demoNavigator.currentDemo.id}&sample=#{s.id}&skin=#{skinBean.skin}'" />
</c:forEach>
- </rich:tabPanel>
+ </rich:tabPanel>
<fieldset class="example-cnt"><ui:include src="#{demoNavigator.sampleURI}" /></fieldset>
</ui:define>
</ui:composition>
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/componentControl/tableFilteringAPI.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/componentControl/tableFilteringAPI.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/componentControl/tableFilteringAPI.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,11 +5,13 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>ComponentControl allows to call JS api on any component. It
- supports parameters passing using f:param, a4j:param and a4j:hasParam
- tags.</p>
- <p>Currently target component should be defined by using clientId,
- but we planning to add lookup by short id in nearest versions.</p>
+ <p>The <b>rich:componentControl</b> component makes it easy to call any of
+ the available JavaScript APIs on RichFaces components. It
+ supports parameter passing using f:param, a4j:param and a4j:hasParam
+ tags. You can define the target component by using the clientId, but at some
+ point we plan to add support for short-id lookup.</p>
+ <p>In the example below we are using <b>rich:componentControl</b> to allow
+ external manipulation of the data filter.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/dataScroller/samples/dataScrollerAPI-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/dataScroller/samples/dataScrollerAPI-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/dataScroller/samples/dataScrollerAPI-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -17,7 +17,7 @@
onclick="#{rich:component('ds')}.previous()" />
<a4j:repeat rows="3" value="#{slidesBean.pictures}" var="pic"
id="pics">
- <h:graphicImage value="#{pic.uri}" style="" />
+ <h:graphicImage value="#{pic.uri}" style="" width="175"/>
</a4j:repeat>
<h:graphicImage value="/images/icons/scroller/arr_right.png"
onclick="#{rich:component('ds')}.next()" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/dragDrop/samples/dragIndicator-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/dragDrop/samples/dragIndicator-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/dragDrop/samples/dragIndicator-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -28,13 +28,13 @@
background-position: 5px;
background-repeat: no-repeat;
}
- .accept{
+ .rf-ind-drag.accept{
background-image: url("#{facesContext.externalContext.requestContextPath}/images/dnd/accept.gif");
background-position: 5px;
background-repeat: no-repeat;
border:2px solid green
}
- .reject{
+ .rf-ind-drag.reject{
border:2px solid red;
background-image: url("#{facesContext.externalContext.requestContextPath}/images/dnd/reject.gif");
background-position: 5px;
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/fileUpload/imgUpload.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/fileUpload/imgUpload.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/fileUpload/imgUpload.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,16 +5,14 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p><b>rich:fileUpload</b> is a component which provides files
- upload functionality and extends functionality of standard <b>input</b>
- with <b>type="file"</b>.</p>
- <p>The next example shows you File Upload which allows you to
- upload files to the server. Files number allowed to upload is managed
- with <b>maxFilesQuantity</b> attribute. Every uploaded file should be
- managed with <b>fileUploadListener</b> which is called after every
- single file upload is finished.</p>
- <fieldset><legend><b>Sample limitations</b></legend>This
- example allows to download <b>up to 5 files</b>. The file extension is
+ <p>The <b>rich:fileUpload</b> component allows you to upload files from the users
+ machine to the server with various options.</p>
+ <p>This example allows you to upload files to the demo server. The number of
+ files allowed at once is managed with the <b>maxFilesQuantity</b> attribute.
+ Every uploaded file will be processed with a <b>fileUploadListener</b> which
+ is called after every single file upload operation is finished.</p>
+ <fieldset><legend><b>Example limitations</b></legend>This
+ example allows you to upload <b>up to 5 files</b>. The file extension is
limited to <b>GIF, JPG, BMP, PNG</b> and the maximum size of each file
must not exceed 100kB</fieldset>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
@@ -34,10 +32,10 @@
web.xml:</b></p>
<ul>
<li><b>createTempFiles</b> boolean attribute which defines whether the
- uploaded files are stored in temporary files or available in listener
- just as byte[] data (false for this example).</li>
+ uploaded files are stored in temporary files or available in the listener
+ directly as byte[] data (false for this example).</li>
<li><b>maxRequestSize</b> attribute defines max size in bytes of the
- uploaded files (<u>1000000 for this example</u>).</li>
+ uploaded files (<i>1000000 for this example</i>).</li>
</ul>
</ui:composition>
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/functions/functions.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/functions/functions.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/functions/functions.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -4,8 +4,8 @@
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
- <p>RichFaces provides set of functions for more convinient work
- with DOM tree and to use some server side expressions.</p>
+ <p>RichFaces provides a set of JavaScript functions to make working with the
+ DOM tree and client side component API easier.</p>
<p>Here is the current list:</p>
<ul>
<li><b>rich:clientId(id)</b> - returns client Id for component by
@@ -14,16 +14,15 @@
short id</li>
<li><b>rich:component(id)</b> - returns richfaces client
component instance to call some API method.</li>
- <li><b>rich:isUserInRole(role)</b> - returns is the user has
+ <li><b>rich:isUserInRole(role)</b> - returns if the user has
specified role.</li>
<li><b>rich:findComponent(id)</b> - returns component instance
for given short id</li>
</ul>
- <p>For example the result of # {rich:element('input')} expression
- will be - document.getElementById('formId:input').</p>
- <p>And here is one more simple example. There is no need in Bean
- creation in order to store the value. It's picked from component
- instance by using rich:findComponent call.</p>
+ <p>As an example, the result of <b># {rich:element('input')}</b> expression
+ would be the same as calling: <i>document.getElementById('formId:input')</i>.</p>
+ <p>Below is another example that shows how to pull a value directly from a
+ component using the rich:findComponent call.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
@@ -32,9 +31,4 @@
<ui:param name="openLabel" value="View Source" />
<ui:param name="hideLabel" value="Hide Source" />
</ui:include>
-
- <p>One more sample could be found at dataScroller API page. There
- are rich:component used for calling JS API of dataScroller.</p>
- <p>This set goes to be extended continously. Rise jira or forum
- requests if you have proposals on new useful functions.</p>
</ui:composition>
\ No newline at end of file
Deleted: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/graphValidator.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/graphValidator.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/graphValidator.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:ui="http://java.sun.com/jsf/facelets">
-
-<ui:composition>
- <p>rich:graphValidator is a component which allows to perform
- Object validation. value attribute should be defined with the value
- binding to bean. In the result all the bean properties will be
- validated during validation phase. That allows you to validate all the
- object properties and not just ones which are submitted with the
- current request.</p>
-
- <p>Simple example of such kind of usage is shown below. Just write
- some activities of the day and the time you spend on each one in a day.</p>
- <ui:include src="#{demoNavigator.sampleIncludeURI}" />
- <ui:include src="/templates/includes/source-view.xhtml">
- <ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
- <ui:param name="sourceType" value="xhtml" />
- <ui:param name="openLabel" value="View Source" />
- <ui:param name="hideLabel" value="Hide Source" />
- </ui:include>
- <p>In this case only properties of each passTime(values of the
- inputs) is validated at validation phase. But after the model is
- updated (Each explicit passtime was validated ok) all the properties
- including "TotalTime" are validated again. And total validation could
- fail if the sum of the hours in a day more than 24.</p>
-</ui:composition>
-</html>
\ No newline at end of file
Added: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/passwordValidation.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/passwordValidation.xhtml (rev 0)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/passwordValidation.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets">
+
+<ui:composition>
+ <p><b>rich:graphValidator</b> is a component which allows to
+ perform Object validation. value attribute should be defined with the
+ value binding to bean. In the result all the bean properties will be
+ validated during validation phase. That allows you to validate all the
+ object properties and not just ones which are submitted with the
+ current request.</p>
+
+ <p>Simple but probably most common example of such kind of usage is
+ shown below. Below is the simple sample of <b>cross-field
+ validation</b>. Passwords getting validated according to constraints for
+ every field and <b>isPasswordEquals</b> validation check if them are
+ equals.</p>
+ <ui:include src="#{demoNavigator.sampleIncludeURI}" />
+ <ui:include src="/templates/includes/source-view.xhtml">
+ <ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
+ <ui:param name="sourceType" value="xhtml" />
+ <ui:param name="openLabel" value="View Source" />
+ <ui:param name="hideLabel" value="Hide Source" />
+ </ui:include>
+ <ui:include src="/templates/includes/source-view.xhtml">
+ <ui:param name="src"
+ value="/WEB-INF/src/org/richfaces/demo/validation/PasswordValidationBean.java" />
+ <ui:param name="sourceType" value="java" />
+ <ui:param name="openLabel" value="View PasswordValidationBean Source" />
+ <ui:param name="hideLabel" value="Hide PasswordValidationBean Source" />
+ </ui:include>
+</ui:composition>
+</html>
\ No newline at end of file
Deleted: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/samples/graphValidator-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/samples/graphValidator-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/samples/graphValidator-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,48 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:a4j="http://richfaces.org/a4j"
- xmlns:rich="http://richfaces.org/rich">
-
- <style>
-.red {
- color: red;
-}
-
-.green {
- color: green;
-}
-</style>
- <h:form id="graphValidatorForm2">
- <rich:graphValidator summary="Invalid values: "
- value="#{dayStatistics}">
- <table>
- <thead>
- <tr>
- <th>Activity</th>
- <th>Time</th>
- </tr>
- </thead>
- <tbody>
- <a4j:repeat value="#{dayStatistics.dayPasstimes}" var="pt"
- id="table">
- <tr>
- <td align="center" width="100px"><h:outputText
- value="#{pt.title}" /></td>
- <td align="center" width="100px"><rich:inputNumberSpinner
- minValue="0" maxValue="24" value="#{pt.time}" id="time">
- </rich:inputNumberSpinner></td>
- <td><rich:message for="time" ajaxRendered="true"/></td>
- </tr>
- </a4j:repeat>
- </tbody>
- </table>
- </rich:graphValidator>
- <a4j:commandButton value="Store my details"
- actionListener="#{dayStatistics.store}" />
- <br />
- <rich:messages infoClass="green" errorClass="red" ajaxRendered="true" />
- </h:form>
-</ui:composition>
\ No newline at end of file
Added: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/samples/passwordValidation-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/samples/passwordValidation-sample.xhtml (rev 0)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/graphValidator/samples/passwordValidation-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich">
+
+ <style>
+.red {
+ color: red;
+}
+
+.green {
+ color: green;
+}
+</style>
+ <h:form>
+ <rich:graphValidator value="#{passwordValidationBean}" id="gv">
+ <rich:panel header="Change password" style="width:500px">
+ <rich:messages for="gv"/>
+ <rich:messages globalOnly="true"/>
+ <h:panelGrid columns="3">
+ <h:outputText value="Enter new password:" />
+ <h:inputSecret value="#{passwordValidationBean.password}" id="pass" />
+ <rich:message for="pass" />
+ <h:outputText value="Confirm the new password:" />
+ <h:inputSecret value="#{passwordValidationBean.confirm}" id="conf" />
+ <rich:message for="conf" />
+ </h:panelGrid>
+ <a4j:commandButton value="Store changes"
+ action="#{passwordValidationBean.storeNewPassword}" />
+ </rich:panel>
+ </rich:graphValidator>
+ </h:form>
+</ui:composition>
\ No newline at end of file
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/hashParam/hashOptionsPopup.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/hashParam/hashOptionsPopup.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/hashParam/hashOptionsPopup.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,15 +5,14 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p><b>rich:hashParam</b> allows you to group client side parameters
- into hash map in order to pass to client API functions of any
- components.</p>
- <p>Press "Show Popup" button in order to call the panel. All the
- parameters for show method passed from component control nested
- a4j:param's instead of to be defined with attributes in static way. As
- the show() method accepts event and options hash - all the param's
- except event grouped using <b>rich:hashParam</b> component and passed
- as hash</p>
+ <p>The <b>rich:hashParam</b> component allows you to group client side parameters
+ into a hash map in order to pass them to client API functions of any
+ RichFaces components.</p>
+ <p>In this example we are packaging all the parameters for the show() method
+ from a component control with nested a4j:param's instead of using static
+ values. Since the show() method accepts event and an option hash as parameters
+ all the values except the event is grouped using <b>rich:hashParam</b>
+ and passed as as single hash value</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/hashParam/samples/hashOptionsPopup-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/hashParam/samples/hashOptionsPopup-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/hashParam/samples/hashOptionsPopup-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -25,14 +25,14 @@
<h:outputText value="minHeight:" />
<h:outputText value="150" />
</h:panelGrid>
- <p>Also panel getting centered by using:</p>
+ <p>The panel is getting centered by using:</p>
<p><a4j:param noEscape="true" name="left"
value="(screen.width/2)-250"/></p>
<p><a4j:param noEscape="true" name="top"
value="(screen.height/2)-150"/></p>
<fieldset><legend><b>NOTE:</b></legend>
- <p>Pay your attention that show() api method requires event
- parameter to be first according to signature. So we passed it before
+ <p>Notice that the show() api method requires an event
+ parameter to be first according to signature. So we passed it before the
hashParam.</p>
</fieldset>
</rich:popupPanel>
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inplaceInput/inplaceInput.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inplaceInput/inplaceInput.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inplaceInput/inplaceInput.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,8 +5,12 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>InplaceInput is a simple input component which displays the current value as outputText and switches to inputText based representation after a defined event to allow editing this value.
-You could use simplest examples below. For the first demo, just click on a label to edit the value and click somewhere outside the component to store this value(Or just press ENTER button).</p>
+ <p>The <b>rich:inplaceInput</b> component displays the current value rendered
+ as outputText and switches to inputText after a customizable event
+ (i.e. click) to allow editing this value. There are various other options
+ such as default text, and styling. For this example, click on a label
+ to edit the value and either click enter, or somewhere outside the component to store this
+ value.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inplaceSelect/inplaceSelect.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inplaceSelect/inplaceSelect.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inplaceSelect/inplaceSelect.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,7 +5,7 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p><b>Inplace</b> Select is a simple input component which displays current
+ <p>The <b>rich:inplaceSelect</b> component displays the current selected
value as outputText and switches to Select based representation after a
defined event to allow editing this value.</p>
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inplaceSelect/samples/inplaceSelect-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inplaceSelect/samples/inplaceSelect-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inplaceSelect/samples/inplaceSelect-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -6,9 +6,9 @@
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<h:form>
- <p>Try the simplest example below. Just click on a label to edit
+ <p>In the example below click on the label to edit
the value and click somewhere outside the component to store this
- value(Or just press ENTER button).</p>
+ value.</p>
<rich:panel style="width:220px;">
<f:facet name="header">
<h:outputText value="Simples select"></h:outputText>
@@ -22,23 +22,18 @@
<f:selectItem itemValue="4" itemLabel="Option 5" />
</rich:inplaceSelect>
</rich:panel>
- <p>In that sample component customized in next way:</p>
+ <p>In the next example we have customized the component in the following ways:</p>
<ul>
<li><b>f:selectItems</b> tag is used to define a list of items
to use.</li>
- <li>Controls "save" and "cancel" are turned on with <b>showControls</b>
+ <li>Controls "save" and "cancel" are turned on with the <b>showControls</b>
attribute</li>
- <li><b>editEvent</b> set to dblclick and used to switch to edit
- state.</li>
- <li><b>saveOnSelect</b> defined as false causes component not to store
- value right after choosing but wait till buttons will be used or
- focus lost.</li>
- <li><b>saveOnBlur</b> defined as false causes component to cancel new
- value if it was chosen and focus was lost without save button
- activation. That could be useful on interfaces where every change
- causes long processing. And if use true value - it will works like in
- spreadsheets where leaving the changed field causes new value to be
- applied.</li>
+ <li><b>editEvent</b> is set to dblclick to trigger to edit the mode.</li>
+ <li><b>saveOnSelect</b> is set to 'false' so that the value will
+ not be stored until the "save" button is clicked.</li>
+ <li><b>saveOnBlur</b> is set to 'false' so that the value will
+ not be stored unless until the "save" button is clicked. This could
+ be useful on pages where every change could cause extended processing.</li>
</ul>
<rich:panel style="width:220px;">
<f:facet name="header">
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inputNumberSlider/samples/sliders-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inputNumberSlider/samples/sliders-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inputNumberSlider/samples/sliders-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -10,7 +10,7 @@
<rich:inputNumberSlider value="50" />
- <p>Here is "minimalistic" input:</p>
+ <p>Here is "minimalistic" example:</p>
<rich:inputNumberSlider value="50" showInput="false"
enableManualInput="false" showBoundaryValues="false"
@@ -21,7 +21,7 @@
<rich:inputNumberSlider value="500" width="500" maxValue="1000"
step="50" showArrows="true" showTooltip="false" />
- <p>The same variant but the control disabled:</p>
+ <p>The same variant but the control is disabled:</p>
<rich:inputNumberSlider value="500" width="500" maxValue="1000"
step="50" showArrows="true" showTooltip="false" disabled="true" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inputNumberSlider/sliders.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inputNumberSlider/sliders.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inputNumberSlider/sliders.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,8 +5,9 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>InputNumberSlider is a highly customizable component that is used to define numeric
- input in a given range. You can use a slider or just type some value into an input field.</p>
+ <p>The <b>inputNumberSlider</b> is a highly customizable component that is used to define numeric
+ input in a given range. It is rendered as a slider or you can type in
+ a specific value into an optional input field.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inputNumberSpinner/spinners.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inputNumberSpinner/spinners.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/inputNumberSpinner/spinners.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,8 +5,9 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>InputNumberSpinner is a highly customizable component that is used to define a numeric
- input in a given range. A user can use a spinner control or just type some text into an input field.</p>
+ <p>The <b>rich:inputNumberSpinner</b> is a highly customizable component that is used to define a numeric
+ input in a given range. It is rendered as a spinner control or you can enter
+ the value in the input field.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/jquery/jquery.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/jquery/jquery.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/jquery/jquery.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -3,38 +3,26 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
- <p>rich:jQuery integrates jQuery javascript framework into the
- JavaServer Faces application. The component allows to apply the styles
+ <p>The <b>rich:jQuery</b> component integrates the jQuery JavaScript framework
+ into your application. This include being able to apply the styles
and behavior to the DOM elements dynamically, including the result of
JSF components rendering.</p>
- <p>The <b>selector</b> attribute defines an object or list of objects,
- the query defined with the query attribute will be applied to.
- And <b>query</b> attribute should be defined with valid JavaScript statements or jQuery api calls</p>
+ <p>The <b>selector</b> attribute defines an object or list of objects
+ that the query defined with the query attribute will be applied to.
+ The <b>query</b> attribute should be defined with valid JavaScript statements or jQuery api calls</p>
- <p>rich:jQuery can be used in next major modes:</p>
+ <p>rich:jQuery can be used in these modes:</p>
<ul>
- <li>as a once time query applied immediately or on document ready
- event</li>
- <li>definition of event handler which bound to elements returned
+ <li>As a one time query applied immediately or on a document ready
+ event.</li>
+ <li>Define an event handler which is bound to elements returned
by selector on some event.</li>
- <li>as a javascript function that can be invoked from the custom
- javascript</li>
+ <li>As a JavaScript function that can be invoked from custom
+ JavaScript</li>
</ul>
- <p>The modes chosen with <b>timing</b>, <b>name </b>and <b>event </b>attributes that
- can have the following options:</p>
- <p><b>Timing</b></p>
- <ul>
- <li>immediate - applying the query immediately</li>
- <li>domready - applying the query when the document is loaded.</li>
- </ul>
- <p><b>event </b>and <b>attachType </b>defined allows to bind the query to some
- event of elements which returned by selector. "attachType" could be
- "<i>live</i>", "<i>bind</i>" and "<i>one</i>".</p>
- <p>Defining <b>name </b>attribute - causes <u>timing too be ignored</u> and
- just named function to call from js to be created.</p>
-
-
-This demo shows how to attach the mouseover/mouseout events to the DOM objects. However the images below show how to make them enlarged.
+
+ <p>This example shows how to attach events to the mouseover/mouseout event
+ on the DOM objects. The source below will show how to make them enlarged.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/jsFunction/jsFunction.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/jsFunction/jsFunction.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/jsFunction/jsFunction.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -6,11 +6,17 @@
<ui:composition>
- <p><b>a4j:jsFunction</b> component also designed to send Ajax
- requests, but allows to perform an the requests from a Javascript code
- directly. The component sends a request using a standard JSF approach,
- so the JSF form is required. The following example shows how the part
- of a page is re-rendered when a user hovers over the names.</p>
+ <p>The <b>a4j:jsFunction</b> component creates a JavaScript function that
+ allows you to send JSF Ajax requests from any JavaScript. You define the
+ Ajax and JSF properties just like a4j:ajax, or a4j:commandButton, and
+ <b>a4j:jsFunction</b> creates the JavaScript for you. The component sends a
+ request using the standard JSF mechanisms. Note that this means a JSF form
+ is required.</p>
+
+ <p> The following example shows how to use <b>a4j:jsFunction</b> to create a
+ function named updateName. This is then called on mouseover of the
+ different names. This triggers the full round trip Ajax request and renders
+ the updated name.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/panel/samples/lookCustomization-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/panel/samples/lookCustomization-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/panel/samples/lookCustomization-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -39,8 +39,8 @@
<f:facet name="header">
Panel #1. Changing Style Synchronously
</f:facet>
- Each component in the RichFaces has a pre-defined set of classes you can manipulate with. If defined, those
- classes overwrite the ones come from the skin.
+ Each component in RichFaces has a pre-defined set of CSS classes you can manipulate. If defined, those
+ classes overwrite the ones that come from the skin.
</rich:panel>
<rich:panel>
@@ -61,7 +61,7 @@
<f:facet name="header">
Panel header
</f:facet>
- Base on the previous layout, but some javascript behaviour added.
+ Base on the previous layout, but with javascript visual effects added.
</rich:panel>
<rich:panel style="width:200px;" bodyClass="body3">
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/panel/simple.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/panel/simple.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/panel/simple.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,10 +5,10 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>The panel is a rectangle area on a page that may contain any
- content including other panels. Panel has a header (optionally) and a
+ <p>The <b>rich:panel</b> component creates a rectangle shaped area on the page that may contain any
+ content including other panels. Panel's have a header (optional) and a
body. The default look-n-feel is based on the current skin. Look-n-feel
- of any parts of the panel, including color scheme, borders and paddings
+ of any part of the panel, including color scheme, borders and paddings
can be customizable using with pre-defined number of CSS classes.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/panelMenu/samples/panelMenu-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/panelMenu/samples/panelMenu-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/panelMenu/samples/panelMenu-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -12,7 +12,7 @@
</style>
<h:form id="form">
<h:panelGrid columns="2" columnClasses="cols,cols" width="400">
- <rich:panelMenu style="width:200px" mode="ajax" groupMode="ajax"
+ <rich:panelMenu style="width:200px" itemMode="ajax" groupMode="ajax"
groupExpandedLeftIcon="triangleUp"
groupCollapsedLeftIcon="triangleDown"
topGroupExpandedRightIcon="chevronUp"
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/clientParam.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/clientParam.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/clientParam.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,12 +5,14 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>It is possible to use javascript variable of custom function for
- the 'value' attribute. In this case the 'noEscape' attribute should be
- set to true. When noEscape="true", the 'value' can contain any
- javascript expression or javascript function invocation and the result
- of them will be send to the server as a value of a4j:actionparam. The
- following example demonstrates how to assign the backing bean with
+ <p>Another great feature for the <b>a4j:param</b> component is the
+ ability to use JavaScript to assign the 'value' attribute. In this case the
+ 'noEscape' attribute should be set to true. When noEscape="true", the 'value'
+ can contain any JavaScript expression or JavaScript function. This will be
+ executed and the result will be sent to the server as the value of
+ a4j:param.</p>
+
+ <p>The following example demonstrates how to assign the backing bean with
browser screen size values.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/param.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/param.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/param.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,11 +5,10 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>a4j:actionparam is a component which extends regular f:param
- with the possibility to assign the value to the property of the manager
- bean directly using the assignTo attribute. Using this feature you can
- update model values without invoking even a single line of java code on
- the server side.</p>
+ <p>The <b>a4j:param</b> component extends the regular f:param
+ tag. The primary extension is the ability to assign a value to a property
+ on a managed bean directly using the assignTo attribute. Using this feature you can
+ update model values without invoking a single line code.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/samples/skinChange-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/samples/skinChange-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/samples/skinChange-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -8,7 +8,7 @@
<h:form>
<rich:panel>
<f:facet name="header">
- <h:outputText value="Change Demo Appplication Skin To: " />
+ <h:outputText value="Change Demo Application Skin To: " />
</f:facet>
<h:panelGrid columns="2">
<h:link value="DeepMarine" includeViewParams="true">
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/skinChange.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/skinChange.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/param/skinChange.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,10 +5,9 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>You can use a4j:param not only with ajax components, but with
- non-ajax command components and for GET navigation components also. In
- the following example, the used skin of the demo is changed when the
- whole page is refreshed with the regular h:link.</p>
+ <p>You can also use <b>a4j:param</b> with non-ajax command components
+ including GET navigation components. In this example, the skin of the demo
+ is changed when using a standard h:link tag.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/poll/poll.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/poll/poll.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/poll/poll.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -6,17 +6,14 @@
xmlns:rich="http://richfaces.org/rich">
<ui:composition>
- <p>a4j:poll is one of the way how you can organize the periodical
- polling of server data and updating the page. a4j:poll is a standard
- RichFaces Ajax component. Thus, you can use the same approach as for
- a4j:commandButton for example. I.e. you can use action attribute to
- invoke the action method and reRender attribute to update area(s) on
- the client when Ajax Response returns back. RichFaces uses the standard
- form based request, so the form around the a4j:poll component is
- required.</p>
- <p>The following example shows how the date and time is updated on
- the page based on the data taken from the server. To turn off polling,
- press "Stop Polling" button.</p>
+ <p>The <b>a4j:poll</b> component defines a way to periodically poll a server
+ in order to trigger state changes, or update parts of your page. You can
+ use the same options, and settings as the a4j:ajax or a4j:commandButton. So you
+ can set execute, and render attributes, as well as any normal JSF action
+ attributes. RichFaces uses a standard form based request, so the form around the
+ a4j:poll component is required.</p>
+ <p>The example below updates the date and time on the page based on the data on
+ the server. To turn off polling, press "Stop Polling" button.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
@@ -32,7 +29,7 @@
<ui:param name="hideLabel" value="Hide Bean Source" />
</ui:include>
<rich:panel>
- <b>NOTE:</b>polling is automatically disabled in this demo after one minute of working.
+ <b>NOTE:</b> polling is automatically disabled in this demo after one minute.
</rich:panel>
</ui:composition>
</html>
\ No newline at end of file
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/login.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/login.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/login.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,30 +5,19 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>In RichFaces 3.3.x many developers used <b>rich:dropDownMenu</b>
- component for creation of Search/Login popups attached to toolbars. And
- there were two reasons for that:</p>
- <ul>
- <li>Simplicity of usage. No script positioning required.
- rich:dropDownMenu performs popup positioning on its own and simply
- customizable by using <b>jointPoint</b> and <b>direction</b>
- attributes.</li>
- <li>RichFaces 3.3.x has no lightweight popup panel and <b>rich:modalPanel</b>
- usage for such cases required workarounds in order to make it
- non-modal</li>
- </ul>
- <p>But that approach has some disadvantages as well:</p>
- <ul>
- <li><b>rich:dropDownMenu</b> component was added with additional
- JavaScript code for inputs processing inside the <b>rich:menuItem</b>'s.
- That not really native task for menu so that code was really
- superfluous from simple menus point of view.</li>
- <li>Developer still has to work on styling of menu item removing
- hover effects and making it looks like panel rather than menuItem</li>
- </ul>
- <p>RichFaces 4.x provides clean api for popup panel and added
- non-modal state, so for now it's really easier and looking more native
- to use modal panel for such tasks. Below you could see two samples:</p>
+ <p>RichFaces 4.x provides a clean api for popup panels and added
+ non-modal state, so now its easy to use the popup panel for login, and
+ seach panels. The examples below show both variants; login, and search, but
+ of coarse you could use any content you wanted.</p>
+ <p>At the bottom of the page is a description and information for RichFaces
+ 3.3.X users who used rich:dropDownMenu components to accomplish this same
+ task. If that was you - it is worth a read.</p>
+ <p>The <b>rich:popupPanel</b> also allows you to pass options to the JavaScript show method
+ such as: <b>min/max width and height</b>, specific <b>width and height</b>, <b>top
+ and left</b> positions for the panel. So with <b>rich:hashParam</b> it's
+ really simple to build declarative calls for the panel which can use
+ dynamic properties.</p>
+
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
@@ -36,11 +25,29 @@
<ui:param name="openLabel" value="View Source" />
<ui:param name="hideLabel" value="Hide Source" />
</ui:include>
- <p>rich:popup panel allows you to pass next options to show method:
- <b>min and max width and height</b>, actual <b>width and height</b>, <b>top
- and left</b> positions for the panel. So with <b>rich:hashParam</b> it's
- really simple to build declarative call for the panel which uses
- dynamic properties.</p>
+ <p>In RichFaces 3.3.x many developers used the <b>rich:dropDownMenu</b>
+ component for creation of Search/Login popups attached to toolbars.
+ There were two main reasons for this:</p>
+ <ul>
+ <li>Simplicity of usage. No script positioning required.
+ rich:dropDownMenu performs popup positioning on its own and was simple
+ to customize by using <b>jointPoint</b> and <b>direction</b>
+ attributes.</li>
+ <li>RichFaces 3.3.x has no lightweight popup panel and <b>rich:modalPanel</b>
+ usage for such cases required workarounds in order to make it
+ non-modal</li>
+ </ul>
+ <p>But that approach also has some disadvantages:</p>
+ <ul>
+ <li><b>rich:dropDownMenu</b> component was created with additional
+ JavaScript code for input processing inside the <b>rich:menuItem</b>'s.
+ That is not really a native task for menus so that code was really
+ superfluous from simple menus point of view.</li>
+ <li>Developer still had to work on styling of menu item removing
+ hover effects and making it looks like panel rather than menuItem</li>
+ </ul>
+ <p>We think that the new features of the <b>rich:popupPanel</b> are an
+ excellent replacement for this and hope you will consider updating to it.</p>
</ui:composition>
</html>
\ No newline at end of file
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/modalPopup.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/modalPopup.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/modalPopup.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,11 +5,11 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>There you could check the modal panel which blocks the main
- screen for any operations defined by using <b>popupPanel</b> component
- with <b>modal="true"</b></p>
- <p>In that sample the panel also defined as resizable so you could
- change its sizes using mouse</p>
+ <p>This example of the <b>rich:popupPanel</b> shows you a modal style popup that
+ blocks the main screen from any operation. This is defined by setting the
+ <b>modal="true"</b> attribute.</p>
+ <p>In this example the panel is also defined as resizable so you could
+ change its sizes using the mouse</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/samples/modalPopup-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/samples/modalPopup-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/samples/modalPopup-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -19,9 +19,8 @@
X
</h:outputLink>
</f:facet>
- <p>Additionally there you could check how to handle the clicks
- outside the panel.</p>
- <p>In this sample the click outside - closes the panel as well as
- clicking hide control in the header</p>
+ <p>You can also check and trigger events if the use clicks outside of the
+ panel.</p>
+ <p>In this example clicking outside closes the panel.</p>
</rich:popupPanel>
</ui:composition>
\ No newline at end of file
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/samples/simplePopup-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/samples/simplePopup-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/samples/simplePopup-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -19,9 +19,7 @@
X
</h:outputLink>
</f:facet>
- <p>Any content might be inside the panel.</p>
- <p>Consider inclusion of the form elements into the popup or
- redefinition of <b>domElementAttachment</b> attribute.</p>
+ <p>Any content might be inside this panel.</p>
<p>The popup panel is open and closed from the javascript function
of component client side object. The following code <a href="#"
onclick="#{rich:component('popup')}.hide()">hide this panel</a>: <f:verbatim>#</f:verbatim>{rich:component('popup')}.hide()</p>
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/simplePopup.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/simplePopup.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/popup/simplePopup.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,17 +5,17 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>Popup panel component used to create any kind of popups on the page.</p>
+ <p>The <b>rich:popupPanel</b> component is used to create any kind of popups on the page.</p>
<p>Main features:</p>
<ul>
- <li>Has two states modal and non-modal</li>
- <li>Could be defined as resizable</li>
- <li>Could be autosized according to content</li>
- <li>Could be moved across the screen</li>
- <li>Could be automatically positioned as centered or use user defined position</li>
+ <li>Two states; modal and non-modal</li>
+ <li>Can be defined as resizable</li>
+ <li>Can be autosized according to content</li>
+ <li>Can be moved across the screen</li>
+ <li>Can be automatically positioned as centered or use a defined position</li>
</ul>
- <p>This sample shows simple <b>non-modal popup</b> which are <b>movable</b> but not resizable
- as defined to use <b>autosizing</b> according to it's content</p>
+ <p>This example shows a simple <b>non-modal popup</b> which is movable but not resizable
+ and defined to use <b>autosizing</b> according to it's content</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
@@ -25,10 +25,10 @@
<ui:param name="hideLabel" value="Hide Source" />
</ui:include>
- <p>Besides this sample shows two variants of working with the component JS API:</p>
+ <p>This example also shows two variants of working with the component JavaScript API:</p>
<ul>
<li>The popup is called by the <b>rich:componentControl</b> attached to button</li>
- <li>The popup is closed by simple JS calls which defined using <b>rich:component</b> function</li>
+ <li>The popup is closed by a simple JavaScript call which is defined using the <b>rich:component</b> function</li>
</ul>
</ui:composition>
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/ajaxProgressBar.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/ajaxProgressBar.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/ajaxProgressBar.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,7 +5,11 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>ProgressBar worked in "ajax" mode </p>
+ <p>The <b>rich:progressBar</b> displays a standard progress widget, and allows
+ for additional facets such as initial, and finish state customizations. In
+ Ajax mode you simply bind the bar to a bean property that returns a value between the
+ 'minValue' and 'maxValue'. This value is then polled from the browser using
+ the specified interval.</p>
<br/>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/clientProgressBar.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/clientProgressBar.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/clientProgressBar.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,7 +5,10 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>ProgressBar worked in "client" mode </p>
+ <p>The <b>rich:progressBar</b> in client mode is strictly based on values in
+ the client browser, and so is not determined by server-state. Using
+ JavaScript component API calls trigger the start, stop, and progress of
+ the component. Take a look at the source code below for an example.</p>
<br/>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/samples/ajaxProgressBar-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/samples/ajaxProgressBar-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/samples/ajaxProgressBar-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -11,7 +11,7 @@
minValue="0" maxValue="100" reRenderAfterComplete="progressPanel">
<f:facet name="initial">
<h:panelGroup>
- <h:outputText value="Process doesn't started yet" />
+ <h:outputText value="Process hasn't started yet" />
<a4j:commandButton action="#{progressBarBean.startProcess}"
value="Start Process" execute="@form" render="pb"
rendered="#{progressBarBean.buttonRendered}"
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/samples/clientProgressBar-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/samples/clientProgressBar-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/progressBar/samples/clientProgressBar-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -36,7 +36,7 @@
<h:form id="form2">
<rich:progressBar mode="client" id="progressBar" value="-1">
<f:facet name="initial">
- <h:outputText value="Process doesn't started yet" />
+ <h:outputText value="Process hasn't started yet" />
</f:facet>
<f:facet name="complete">
<h:outputText value="Process Done" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/queue/queue.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/queue/queue.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/queue/queue.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -3,31 +3,32 @@
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
- <p>JSF 2 provides queue mechanism out-of the box already. And
- RichFaces queue just provides some additional customizations to improve
- the queue usability and allow to tune your performance while using Ajax
- as much as possible.</p>
- <p>The only big difference which the developers who used queue in
- 3.3.x should remember: as JSF 2 already provides single queue and not
- allows to have more than one queue instance(currently) you can't really
- fire concurrent requests anymore. So the queue in RF now not actually
- defines logical queue but just a component for defining queueing
- options.</p>
- <p>Here you could explore additional optimization parameters of the
- queue and learn how they influence Ajax requests. This example is a
- good start to learn about Ajax requests flood protection.</p>
+ <p>JSF 2 provides a queuing mechanism out-of the box in order to sequence
+ client side events with the built-in Ajax implementation. This queue is
+ lacking in some very essential tuning options. The RichFaces
+ <b>a4j:queue</b> provides these basic options in addition to other
+ enhancements. There are two primary options available; 'requestDelay' and
+ 'ignoreDupResponse'. These are explained more in the example below.</p>
+ <p>Many of the features of the RichFaces 3.3.X queue have been ported to
+ RichFaces 4.0 version. However it is important to remember that the 4.0
+ queue is a logical queue on top of JSF's. There is only a single physical
+ queue allowed and there is no way to override that (for now).</p>
+ <p>In this example you can tweak different queue options and see what effect
+ that has on the number of events fired, and how often the DOM is updated.
+ This provides a good way to learn about Ajax requests flood protection.</p>
- <p>Pay attention to next point in the example:</p>
+ <p>Attribute details:</p>
<ul>
- <li>Setting <b>requestDelay</b> to greater value reduces the greatly
- requests count on fast typing. (More similar requests are combined in
- the result)</li>
- <li>Setting requestDelay to smaller value(just for easier exploration) but using <b>ignoreDupResponse</b> flag set to true
- - reduces greatly DOM updates count.</li>
+ <li><b>requestDelay</b> is the number of milliseconds to wait before
+ sending a request in order to combine similar requests. The greater the
+ value the fewer requests will be sent when fast typing. Similar requests
+ in the queue are combined while waiting for the request delay</li>
+ <li>If <b>ignoreDupResponse</b> is true then RichFaces will not waste
+ time updating the client side DOM if it knows another request for the same
+ thing is pending. The best way to see that in this demo is set
+ requestDelay to a very small value and type quickly. You will see the
+ number of DOM updates be smaller than requests sent.</li>
</ul>
- <p>Also pay your attention to the queue definition. Such definition
- (inside some form without a name) means that the queue options becomes
- global for the form.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
@@ -36,17 +37,19 @@
<ui:param name="openLabel" value="View Source" />
<ui:param name="hideLabel" value="Hide Source" />
</ui:include>
- <p>Queue could be defined as</p>
+ <p><b>Queue scopes, and names:</b></p>
+ <p>You can define a queue so that it is the default queue for all requests
+ from a complete view, a specific form, or even specific components.</p>
<ul>
- <li><b>Default for view.</b> In this case - the parameters will
- be used for all the Ajax requests in view(if not redefined). In order
- to define such queue - just place <b>a4j:queu</b> outside of any forms
- without defining <b>name</b></li>
- <li><b>Default for form.</b> Similar to view-scoped but should be
- defiend in some form without defining <b>name</b></li>
- <li><b>Referenced from ajax behaviors/components.</b> Queue
- should be defined with name and referenced using attachQueue tag(see
- corresponding sample).</li>
+ <li><b>View scoped:</b> Place an <b>a4j:queue</b> with no name
+ attribute outside of any form, and it will be the default
+ queue for all requests on the page.</li>
+ <li><b>Form scoped</b> Place a nameless <b>a4j:queue</b> within a form
+ to make it the default queue for all requests within it.</li>
+ <li><b>Named queue</b> Define an <b>a4j:queue</b> with a specific name.
+ Then you can make any component, or behavior use that queue with the
+ <b>a4j:attachQueue</b> component. See the next queue example for details.
+ </li>
</ul>
</ui:composition>
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/region/region.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/region/region.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/region/region.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -11,16 +11,16 @@
processing definitions and component identifiers to be decoupled,
and declarative wrapping with the <b>a4j:region</b> tag is used instead.</p>
<p>In <i>RichFaces 3.3</i>, the whole view was processed if no regions were
- specified, as <b>ViewRoot</b> itself was the region by default. In <i>RichFaces
- 4.x</i>, all the controls have <b>execute="@this"</b> by default according
+ specified, as the <b>ViewRoot</b> itself was the region by default. In <i>RichFaces
+ 4.x</i>, all the controls are set to <b>execute="@this"</b> by default according
to JSF 2 specifications. However, if the controls wrapped with the
- <b>a4j:region</b> tag and have no execute definitions, they use <b>
- execute="@region"</b> instead.</p>
+ <b>a4j:region</b> tag and have no execute definitions, they use <i>
+ execute="@region"</i> instead.</p>
<p>The example below contains two similar user
info panels. The button inside the first panel will not work, as it does not use execute
- declarations; by default it uses <b>execute="@this"</b>. A separate definition is needed
- to make the button work properly. The second panel inputs
- are wrapped in a region with the <b>commandButton</b>, and input works without any additional execute definitions.</p>
+ declarations; by default it uses <i>execute="@this"</i>. A separate definition is needed
+ to make the button work properly. The second panel has its inputs and button
+ wrapped in an <b>a4j:region</b>. This means that the <b>h:commandButton</b> works without any additional execute definitions.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
@@ -28,5 +28,8 @@
<ui:param name="openLabel" value="View Source" />
<ui:param name="hideLabel" value="Hide Source" />
</ui:include>
+ <p>Note: <b>a4j:commandButton/Link</b> use <i>execute="@form""</i> as their
+ default and so would work as expected in both panels. They also integrate
+ in the core Ajax functionality, and do not require additional <b>a4j:ajax</b> tags.</p>
</ui:composition>
</html>
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/region/samples/region-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/region/samples/region-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/region/samples/region-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -18,7 +18,9 @@
<h:outputText value="User email: " />
<h:inputText value="#{regionBean.user1.email}"/>
</h:panelGrid>
- <a4j:commandButton render="echopanel1" value="submit"/>
+ <h:commandButton value="broken submit">
+ <a4j:ajax render="echopanel1"/>
+ </h:commandButton>
</h:panelGrid>
<h:panelGrid columns="2" id="echopanel1">
<f:facet name="header">
@@ -44,7 +46,9 @@
<h:outputText value="User email: " />
<h:inputText value="#{regionBean.user2.email}"/>
</h:panelGrid>
- <a4j:commandButton render="echopanel2" value="submit"/>
+ <h:commandButton value="submit">
+ <a4j:ajax render="echopanel2"/>
+ </h:commandButton>
</a4j:region>
</h:panelGrid>
<h:panelGrid columns="2" id="echopanel2">
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/select/samples/select-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/select/samples/select-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/select/samples/select-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -6,7 +6,7 @@
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<h:form>
- <p>There is simple sample where select behaves as standard one:</p>
+ <p>This example shows a select component that behaves basically the same as the standard:</p>
<rich:panel style="width:220px;">
<f:facet name="header">
<h:outputText value="Simples select"></h:outputText>
@@ -19,9 +19,8 @@
<f:selectItem itemValue="4" itemLabel="Option 5" />
</rich:select>
</rich:panel>
- <p>There you could check keyboard filtering within the select
- component. It allows to enter only valid items from the list. Wrong
- input will be reseted.</p>
+ <p>In the next example you can manually enter values, and any invalid
+ entries are not allowed.</p>
<rich:panel style="width:220px;">
<f:facet name="header">
<h:outputText value="Select with manual input"></h:outputText>
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/select/select.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/select/select.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/select/select.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,14 +5,15 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p><b>rich:select</b> component is designed to replace standard
- h:selectOneMenu. Main features which differs from base component:</p>
+ <p>The <b>rich:select</b> component is designed to replace standard
+ h:selectOneMenu. It adds various features and options including core Ajax
+ functionality, and skinning. Some of the notable features are:</p>
<ul>
- <li>Skinned according to RichFaces standard principles. That
+ <li>Skinning following RichFaces standard principles. This
allows the component to have unified look and feel across all the
browsers.</li>
- <li>Provides better navigation across select items using keyboard</li>
- <li>Provides default label functionality which is common for all the RichFaces inputs.</li>
+ <li>Better navigation across select items using the keyboard</li>
+ <li>Default label functionality which is common for all the RichFaces inputs.</li>
</ul>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/standardSkinning/standardSkinning.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/standardSkinning/standardSkinning.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/standardSkinning/standardSkinning.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -7,23 +7,20 @@
xmlns:rich="http://richfaces.org/rich">
<ui:composition>
- <p>This section overviews main principles of standard components
- skinning with the Rich Faces framework.</p>
- <p>This feature provides styling for standard HTML form elements in
- order to be highly compilant with RichFaces common look'n'feel. There
- should be two ways of applying skins to elements:</p>
+ <p>RichFaces provides a mechanism to apply <b>RichFaces skinning principles</b>
+ to <b>standard components</b>!</p>
+ <p>This feature provides styling for standard HTML form elements so that
+ the share a commmon look'n'feel with RichFaces component skins. There
+ are two general approaches to apply skins to these elements:</p>
<ul>
- <li>Skinning style classes are applied to elements by element
- name and type attribute (where applicable). No additional steps are
- required from an application developer. Application initialization
- parameter serves for enabling/disabling the feature.</li>
- <li>Several style classes are provided for different types of
- elements. That style classes have predefined names. Application
- developer should manually assign classes to controls that need
- skinning or assign a class to an element that contains controls.</li>
+ <li><b>Automatic:</b> Toggled via a <i>context param</i> this approach
+ will attempt to skin many standard components using element names and
+ type attributes where possible. No additional steps are
+ required from an application developer. </li>
+ <li><b>Manual:</b> RichFaces also provides a set of CSS style classes
+ that can be manually assigned to controls.</li>
</ul>
- <p>Standard controls skinning feature provides 2 levels of
- skinning:</p>
+ <p>The automatic approach also has 2 levels of support:</p>
<ol>
<li><b>Standard</b> - customization of only basic style
properties.</li>
@@ -39,14 +36,14 @@
standards compilant mode) or CSS 3 draft namespace selectors (e.g.
Mozilla Firefox).</rich:panel>
- <p>Here is the skinned form example. Note there is no styling in
+ <p>Here is a skinned form example. Note there is no styling in
sources of that form</p>
<rich:panel id="panel" width="300" height="230">
<f:facet name="header">
Standard components skinning
</f:facet>
- <i> All the controls below is just standard JSF components skinned
+ <i> All the controls below are just standard JSF components skinned
with Rich Faces: </i>
<hr />
<h:form>
@@ -68,27 +65,9 @@
<h:commandLink value="Action Link" />
</h:form>
</rich:panel>
-
- <p>There three ways of applying skinning to application:</p>
- <ul>
- <li>By default <b>org.richfaces.ENABLE_CONTROL_SKINNING</b> context
- param is set to <b>true</b> and it means that all standard elements
- on the page will be skinned. (CSS style classes for elements based on
- their names and type attribute values will be applied). You may
- redefine it to <b>disable</b> in order to turn it off.</li>
- <li>By default <b>org.richfaces.ENABLE_CONTROL_SKINNING_CLASSES</b>
- context param is set to <b>false</b> and it means that basic elements
- nested to element having <i>rich-container</i> class will be skinned.
- It could be also turned off using <b>disable</b> value.</li>
- <li>RichFaces also provides predefined classes which can be
- applied by an end developer to elements need to be skinned separately.
- This classes added to the page also according to <b>org.richfaces.ENABLE_CONTROL_SKINNING_CLASSES</b>
- context-param.</li>
- </ul>
-
- <p>To get a better idea of standard component skinning we recommend
- to explore CSS files located in
- ui/core/ui/src/main/resources/org/richfaces/ folder of RichFaces svn.</p>
+
+ <p>For more details on this setup and cofiguration of these features
+ please review <a href="http://www.jboss.org/richfaces/docs">RichFaces documentation</a>.</p>
</ui:composition>
</html>
\ No newline at end of file
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/status/viewusage.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/status/viewusage.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/status/viewusage.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -10,13 +10,12 @@
The <i>start</i> state indicates that an Ajax request is in progress.
When an Ajax Response is returned, the component switches to the
<i>stop</i> state.</p>
- <p>The <b>a4j:status</b> component could be defined as follows:
+ <p>The <b>a4j:status</b> component could be defined as follows: </p>
<ul>
<li>As the default for a view.</li>
<li>As the default for a form.</li>
<li>Referenced explicity from the component sending the request.</li>
</ul>
- </p>
<p>This example shows a view-scoped <b>a4j:status</b> component. It should be defined outside of
any forms, and will handle all the Ajax requests within the view.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tabPanel/simple.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tabPanel/simple.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tabPanel/simple.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,12 +5,9 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>Tab panel is used to create "tabbed" pages.
- RichFaces tab panel can be switched in 3 ways: using "normal" server-side
- update, using "ajax" style update, when only tab panel area is updated
- on the page, and using "client" type, without any interaction with the
- server. Note, that in case of a "client" switch type, all tabs are
- rendered at the same time. </p>
+ <p>The <b>rich:tabPanel</b> component is used to create "tabbed" sections or pages.
+ RichFaces tab panel can be switched in the 3 ways detailed in the
+ <b>rich:togglePanel</b> example.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tabPanel/valueManagement.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tabPanel/valueManagement.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tabPanel/valueManagement.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,18 +5,13 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>That sample shows how to use external controls for switching the
- panel</p>
- <p><b>toggleControl</b> behavior used as for any other switchable
- panel (<i>togglePanel, accordion</i>)</p>
- <p><b>targetItem</b> could be <b>defined with tab name</b> and
- additionally tabPanel supports next <b>predefined shortcuts</b>:</p>
- <ul>
- <li>@next</li>
- <li>@prev</li>
- <li>@first</li>
- <li>@last</li>
- </ul>
+ <p>This example shows how to use external controls, and special shortcuts
+ to switch the tabbed panels</p>
+ <p>The <b>rich:toggleControl</b> behavior used by any of the other switchable
+ panels (<i>togglePanel, accordion</i>) can be used with <b>rich:tabPanels</b>
+ as well.</p>
+ <p>So you can set the <b>targetItem</b> to be defined as a specific tab name
+ or use one of the shortcuts detailed in the <b>rich:togglePanel</b> example.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
@@ -24,8 +19,8 @@
<ui:param name="openLabel" value="View Source" />
<ui:param name="hideLabel" value="Hide Source" />
</ui:include>
- <p>Additionally you could manage the current tab at server side
- using <b>activeItem</b> attribute at tabPanel <b>bound to some Bean
- property</b> which holds current tab name.</p>
+ <p>Additionally you can manage the current tab on the server side
+ using the <b>activeItem</b> attribute on the tabPanel <b>bound to some Bean
+ property</b> which then holds current tab name.</p>
</ui:composition>
</html>
\ No newline at end of file
Added: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/finalStep.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/finalStep.xhtml (rev 0)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/finalStep.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,27 @@
+<ui:composition 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:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich">
+
+ <div style="position:relative;height:140px">
+ <h:panelGrid
+ columns="2" columnClasses="wfcol1">
+ <h:outputText value="First Name:" />
+ <h:outputText value="#{profile.firstName}" />
+ <h:outputText value="Last Name:" />
+ <h:outputText value="#{profile.lastName}" />
+ <h:outputText value="Company:" />
+ <h:outputText value="#{profile.company}" />
+ <h:outputText value="Notes:" />
+ <h:outputText value="#{profile.notes}" />
+ </h:panelGrid>
+ <div class="navPanel">
+ <a4j:commandButton value="<<Previous" style="float:left">
+ <rich:toggleControl targetItem="@prev" event="click"/>
+ </a4j:commandButton>
+ </div>
+ </div>
+
+</ui:composition>
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/simple-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/simple-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/simple-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,21 +5,21 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
- <style>
-.rf-tgp-itm {
- border: 1px solid #{richSkin.panelBorderColor};
- padding:5px;
-}
-.tabDiv {
- margin-right:5px;
- border: 1px solid #{richSkin.panelBorderColor};
- background-color: #{richSkin.headerBackgroundColor};
- cursor:pointer;
- width:115px;
- padding-left:5px;
- float:left;
- }
-</style>
+ <style type="text/css">
+ .rf-tgp-itm {
+ border: 1px solid #{richSkin.panelBorderColor};
+ padding: 5px;
+ }
+
+ .tabDiv {
+ margin-right: 5px;
+ border: 1px solid #{richSkin.panelBorderColor};
+ background-color: #{richSkin.headerBackgroundColor};
+ cursor: pointer;
+ padding-left: 5px;
+ float: left;
+ }
+ </style>
<h:form>
<rich:togglePanel id="panel1" activeItem="item1" render="tabs" itemChangeListener="#{panelMenuBean.updateCurrent}">
<rich:togglePanelItem name="item1">
@@ -48,6 +48,6 @@
style="#{rich:findComponent('panel1').activeItem == 'item2' ? 'font-weight:bold' : 'font-weight:normal'}" />
</a4j:outputPanel>
</a4j:outputPanel>
- <br clear="both"/>
+ <br clear="both"/>
</h:form>
</ui:composition>
\ No newline at end of file
Added: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wizard-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wizard-sample.xhtml (rev 0)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wizard-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,51 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich">
+ <style type="text/css">
+ .col1 { vertical-align:top; }
+ .col2 { vertical-align:top; width:450px; }
+ .wizard { width:400px; }
+ .wform td { vertical-align:top; }
+ .wfcol1 { text-align: right; white-space:nowrap;}
+ .wfcol2 { }
+ .wfcol3 { }
+ .s1row td { height:30px; }
+ .rich-message { color:red; }
+
+ .navPanel {
+ position:absolute;
+ bottom:0;
+ height:23px;
+ margin:0;
+ padding:2px;
+ }
+
+ </style>
+ <br/>
+ <h:panelGrid width="100%" columns="2" columnClasses="col1,col2">
+ <rich:panel styleClass="wizard">
+ <f:facet name="header">
+ <h:outputText value="Using rich:togglePanel for Wizard-like behaviour" />
+ </f:facet>
+ <h:form>
+ <rich:togglePanel switchType="ajax">
+ <rich:togglePanelItem>
+ <ui:include src="/richfaces/togglePanel/samples/wstep1.xhtml" />
+ </rich:togglePanelItem>
+ <rich:togglePanelItem>
+ <ui:include src="/richfaces/togglePanel/samples/wstep2.xhtml" />
+ </rich:togglePanelItem>
+ <rich:togglePanelItem>
+ <ui:include src="/richfaces/togglePanel/samples/finalStep.xhtml" />
+ </rich:togglePanelItem>
+ </rich:togglePanel>
+ </h:form>
+ </rich:panel>
+
+ </h:panelGrid>
+ <br/>
+</ui:composition>
\ No newline at end of file
Added: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wizard.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wizard.xhtml (rev 0)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wizard.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,43 @@
+<ui:composition 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:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich">
+
+ <style type="text/css">
+ .col1 { vertical-align:top; }
+ .col2 { vertical-align:top; width:450px; }
+ .wizard { width:400px; }
+ .wform td { vertical-align:top; }
+ .wfcol1 { text-align: right; white-space:nowrap;}
+ .wfcol2 { }
+ .wfcol3 { }
+ .s1row td { height:30px; }
+ .rich-message { color:red; }
+
+ .navPanel {
+ position:absolute;
+ bottom:0;
+ height:23px;
+ margin:0;
+ padding:2px;
+ }
+
+ </style>
+ <br/>
+ <h:panelGrid width="100%" columns="2" columnClasses="col1,col2">
+ <a4j:keepAlive beanName="profile" />
+ <rich:panel styleClass="wizard">
+ <f:facet name="header">
+ <h:outputText value="Using a4j:include for Wizard-like behaviour" />
+ </f:facet>
+ <h:form>
+ <a4j:include viewId="/richfaces/include/examples/wstep1.xhtml" />
+ </h:form>
+ </rich:panel>
+
+ </h:panelGrid>
+ <br/>
+
+</ui:composition>
\ No newline at end of file
Added: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wstep1.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wstep1.xhtml (rev 0)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wstep1.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,28 @@
+<ui:composition 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:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich">
+
+ <div style="position:relative;height:140px">
+ <h:panelGrid rowClasses="s1row" columns="3" columnClasses="wfcol1,wfcol2,wfcol3">
+ <h:outputText value="First Name:" />
+ <h:inputText id="fn" value="#{profile.firstName}" label="First Name" required="true" />
+ <rich:message for="fn" />
+
+ <h:outputText value="Last Name:" />
+ <h:inputText id="ln" value="#{profile.lastName}" label="Last Name" required="true" />
+ <rich:message for="ln" />
+
+ <h:outputText value="Company:" />
+ <h:inputText id="comp" value="#{profile.company}" label="Company" required="true" />
+ <rich:message for="comp"/>
+ </h:panelGrid>
+ <div class="navPanel" style="width:100%;">
+ <a4j:commandButton style="float:right" value="Next >>">
+ <rich:toggleControl targetItem="@next" event="click"/>
+ </a4j:commandButton>
+ </div>
+ </div>
+</ui:composition>
\ No newline at end of file
Added: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wstep2.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wstep2.xhtml (rev 0)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/samples/wstep2.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,25 @@
+<ui:composition 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:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich">
+
+ <div style="position:relative;height:140px">
+ <h:panelGrid columns="3" columnClasses="wfcol1,wfcol2,wfcol3">
+ <h:outputText value="Notes:" />
+ <h:inputTextarea cols="20" rows="4" id="notes" value="#{profile.notes}" label="Notes" required="true" />
+ <rich:message for="notes" />
+ </h:panelGrid>
+ <div class="navPanel" style="width:100%;">
+ <a4j:commandButton value="<<Previous" style="float:left">
+ <rich:toggleControl targetItem="@prev" event="click"/>
+ </a4j:commandButton>
+ <a4j:commandButton value="Next >>" style="float:right">
+ <rich:toggleControl targetItem="@next" event="click"/>
+ </a4j:commandButton>
+ </div>
+
+
+ </div>
+</ui:composition>
\ No newline at end of file
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/simple.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/simple.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/simple.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,18 +5,31 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
-<p><b>togglePanel</b> is a base component for all switchable panels in RichFaces. It renders
-sequence of states that can be switched (toggled) by a behavior
-called <b>toggleControl</b>. rich:togglePanel has no default appearance. You can define it using
-the set of child <b>togglePanelItem's</b> with any given content inside. </p>
-<p> <b>switchType</b> attribute defines the strategy of switching. The possible values for this attributes are:</p>
+<p>The <b>rich:togglePanel</b> is a core component for all switchable panels in RichFaces. It renders
+a sequence of panels based on state that can be switched (toggled) by a behavior
+called <b>rich:toggleControl</b>. All of these other panels (e.g. tabPanel, accordion, etc...) share
+the basic sets a features defined below.</p>
+<p>The <b>switchType</b> attribute defines the strategy used to toggle between panels. The possible values for this attributes are:</p>
<ul>
-<li><b>client</b> - switching happens on the client without any request to the server. The jsf form is not required in this mode</li>
-<li><b>ajax</b> - when states are switched, the content of new states comes from the server in Ajax way.</li>
+<li><b>client</b> - switching happens on the client without any request to the server. A jsf form is not required in this mode</li>
+<li><b>ajax</b> - when states are switched, the content of new states comes from the server via Ajax requests.</li>
<li><b>server</b> - the whole page is reloaded when states are switched</li>
</ul>
-<p>As the component not provides any predefined layout it could be used for creation of any kind of switchable panels easilly.
-Here is the sample of simplest tabbed pane organized using that component:</p>
+<p>There is also a very useful set of shortcut toggle values that allow you to
+create many custom effects like wizards. See the other switchable panel examples.
+Available shortcuts are defined below:</p>
+ <ul>
+ <li>@next</li>
+ <li>@prev</li>
+ <li>@first</li>
+ <li>@last</li>
+ </ul>
+<p> A <b>rich:togglePanel</b> has no default appearance, and allows you to customize it's
+look-n-feel any way you like. You create a set of child <b>rich:togglePanelItem</b>'s
+with any content you want inside of them. </p>
+<p>As the component does not provide any predefined layout it could be used for
+creation of any kind of switchable panels. This example is a very simple
+tabbed pane organized using that component:</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
Added: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/wizard.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/wizard.xhtml (rev 0)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/togglePanel/wizard.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets">
+
+<ui:composition>
+ <p>This is a more complex use-case of a wizard constructed using the
+ <b>rich:togglePanel</b> component.</p>
+ <p>Main advantages of using this component for wizard creation:</p>
+ <ul>
+ <li>You're not defining any navigation rules and not managing
+ current page shown in your code. You're just inserting
+ <b>rich:togglePanelItem</b> components where needed and switching between
+ them. Also the current page state could be stored using activeItem.</li>
+ <li>You are not bound anywhere in controls to which panel you need to
+ switch. Just the <b>@next</b> and <b>@prev</b> shortcuts are used. In that
+ case you could easily add/remove additional panels without making changes in
+ switching code. Though you still could use names in targetItem in case
+ you really need to perform a specific switch.</li>
+ <li>Opposite to 3.3.x where toggle controls were encoded as links
+ - in RF 4.x <b>rich:toggleControl</b> is just a behavior so any control can
+ be used for switching.</li>
+ </ul>
+
+ <ui:include src="#{demoNavigator.sampleIncludeURI}" />
+ <ui:include src="/templates/includes/source-view.xhtml">
+ <ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
+ <ui:param name="sourceType" value="xhtml" />
+ <ui:param name="openLabel" value="View Source" />
+ <ui:param name="hideLabel" value="Hide Source" />
+ </ui:include>
+ <ui:include src="/templates/includes/source-view.xhtml">
+ <ui:param name="src"
+ value="/richfaces/togglePanel/samples/wstep1.xhtml" />
+ <ui:param name="sourceType" value="xhtml" />
+ <ui:param name="openLabel" value="Show Step 1 Source" />
+ <ui:param name="hideLabel" value="Hide Step 1 Source" />
+ </ui:include>
+ <ui:include src="/templates/includes/source-view.xhtml">
+ <ui:param name="src"
+ value="/richfaces/togglePanel/samples/wstep2.xhtml" />
+ <ui:param name="sourceType" value="xhtml" />
+ <ui:param name="openLabel" value="View Step 2 Source" />
+ <ui:param name="hideLabel" value="Hide Step 2 Source" />
+ </ui:include>
+ <ui:include src="/templates/includes/source-view.xhtml">
+ <ui:param name="src"
+ value="/richfaces/togglePanel/samples/finalStep.xhtml" />
+ <ui:param name="sourceType" value="xhtml" />
+ <ui:param name="openLabel" value="View Final Step Source" />
+ <ui:param name="hideLabel" value="Hide Final Step Source" />
+ </ui:include>
+</ui:composition>
+
+</html>
\ No newline at end of file
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tooltip/samples/tooltip-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tooltip/samples/tooltip-sample.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tooltip/samples/tooltip-sample.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -32,20 +32,20 @@
<h:panelGrid columns="2">
<rich:panel id="sample1" styleClass="tooltip-text"
bodyClass="rich-laguna-panel-no-header">
- <p>Here you can see <b>default client-side</b> tool-tip</p>
+ <p>Here you can see a <b>default client-side</b> tool-tip</p>
<rich:tooltip id="tt1" styleClass="tooltip" layout="block">
<span style="white-space: nowrap"> This tool-tip content was
<strong>pre-rendered</strong> to the page.<br />
- Also the tooltip following mouse by default </span>
+ The tool-tip is also following mouse around.</span>
</rich:tooltip>
</rich:panel>
<rich:panel id="sample2" styleClass="tooltip-text"
bodyClass="rich-laguna-panel-no-header">
- <p>This tool-tip will not <b>follow mouse</b>. Also this tool-tip
- has a <b>delay 1.5 sec</b>, so be patient!</p>
+ <p>This tool-tip will not <b>follow the mouse</b>, and
+ has a <b>delay of 1.5 seconds</b>, so be patient!</p>
<rich:tooltip followMouse="false" showDelay="1500"
styleClass="tooltip-custom-body" layout="block">
- <span style="white-space: nowrap"> This tool-tip content also
+ <span style="white-space: nowrap"> This tool-tip content is also
<strong>pre-rendered</strong> to the page.<br />
</span>
</rich:tooltip>
@@ -53,11 +53,11 @@
<h:form>
<rich:panel id="sample3" styleClass="tooltip-text"
bodyClass="rich-laguna-panel-no-header">
- <p>This tool-tip rendered on server <b>in separate request</b>.
+ <p>This tool-tip was rendered on the server using an Ajax request.
</p>
<rich:tooltip mode="ajax" styleClass="tooltip" layout="block">
<span style="white-space: nowrap">This tool-tip content was
- <strong>rendered on server</strong> </span>
+ <strong>rendered on the server</strong> </span>
<h:panelGrid columns="2">
<h:outputText style="white-space:nowrap"
value="tooltips requested:" />
@@ -70,7 +70,8 @@
<h:form>
<rich:panel id="sample4" styleClass="tooltip-text"
bodyClass="rich-laguna-panel-no-header">
- <p>This tool-tip will be <b>activated on mouse click</b>.</p>
+ <p>This tool-tip will be <b>activated on a mouse click</b>, and
+ has default content defined.</p>
<rich:tooltip showEvent="click" mode="ajax" styleClass="tooltip"
layout="block">
<f:facet name="defaultContent">
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tooltip/tooltip.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tooltip/tooltip.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tooltip/tooltip.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,18 +5,21 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>Tooltip is a small non-modal pop-up that could be used to
- display additional information, that is usually hidden.<br />
+ <p>The <b>rich:tooltip</b> component creates a small non-modal pop-up that
+ can be used to display additional information for nearly anything on the page.
</p>
- <p>Major tooltip features:</p>
+ <p>Major features:</p>
<ul>
- <li>Tool-tip content may be <b>pre-rendered</b> on a page (client
- mode) or <b>loaded on separate Ajax request</b> (ajax mode)</li>
- <li>In "ajax" mode <b>default content</b> could be shown while
- request is executed</li>
- <li>Tooltip <b>look is fully customizable</b> using both -
+ <li>Tool-tip content may be <b>pre-rendered</b> on a page using client
+ mode or <b>loaded dynamically</b> using separate Ajax requests via Ajax
+ mode.</li>
+ <li>In Ajax mode <b>default content</b> can be shown while the
+ request is being executed</li>
+ <li>Tool-tip's <b>look-n-feel is fully customizable</b> using both
Richfaces skins and CSS style classes</li>
</ul>
+ <p>There are various other options available such as delays, follow modes,
+ and more that are in the example below:</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tree/tree.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tree/tree.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/tree/tree.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -9,13 +9,13 @@
the page. The most important tree features include the following:</p>
<ul>
<li>Native support for Ajax operations</li>
- <li>Support for "ajax", "client", and "server" switch types</li>
+ <li>Support for <i>ajax</i>, <i>client</i>, and <i>server</i> switch types</li>
<li>Selection capabilities</li>
<li>Flexible look and feel</li>
</ul>
- <p>This demo also includes a simple selection-handling sample. When
+ <p>This demonstration also includes a simple selection-handling example. When
you select a node, its name is shown. When you
- select a leaf, the full CD details will be populated.</p>
+ select a leaf, the full album details will be populated.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
<ui:include src="/templates/includes/source-view.xhtml">
<ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
Modified: trunk/examples/richfaces-showcase/src/main/webapp/templates/includes/navigation.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/templates/includes/navigation.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/templates/includes/navigation.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -7,11 +7,14 @@
xmlns:c="http://java.sun.com/jsp/jstl/core">
<rich:panelMenu activeItem="#{demoNavigator.currentDemo.id}">
<c:forEach items="#{demoNavigator.groups}" var="gr">
- <rich:panelMenuGroup label="#{gr.name}">
+ <rich:panelMenuGroup label="#{gr.name}"
+ rightExpandedIcon="#{gr.newItems ? '/images/icons/new-ic.gif' : null}"
+ rightCollapsedIcon="#{gr.newItems ? '/images/icons/new-ic.gif' : null}">
<c:forEach items="#{gr.demos}" var="d">
- <rich:panelMenuItem label="#{d.name}" action="#{d.id}" rightIcon="none"
+ <rich:panelMenuItem label="#{d.name}" action="#{d.id}"
mode="client" name="#{d.id}"
- onclick="document.location='#{facesContext.externalContext.requestContextPath}/richfaces/component-sample.jsf?demo=#{d.id}&skin=#{skinBean.skin}'">
+ rightIcon="#{(d.newItems || gr.newItem) ? '/images/icons/new-small-ic.gif' : null}"
+ onclick="document.location.href='#{facesContext.externalContext.requestContextPath}/richfaces/component-sample.jsf?demo=#{d.id}&skin=#{skinBean.skin}'">
</rich:panelMenuItem>
</c:forEach>
</rich:panelMenuGroup>
Modified: trunk/examples/richfaces-showcase/src/main/webapp/templates/main.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/templates/main.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp/templates/main.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,7 +5,6 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j">
<f:view contentType="text/html">
- <ui:insert name="demoSampleParameters"/>
<h:head>
<title>RichFaces Showcase</title>
<script type="text/javascript">
@@ -27,11 +26,11 @@
<a href="#" class="logo"><img src="#{facesContext.externalContext.requestContextPath}/images/rf-logo.png" alt="RF logo"/></a>
<div class="right-controls">
<ul class="top-links layout">
- <li><a href="http://jboss.org/richfaces;jsessionid=bJJO_UTMPzC7DsTvo5vjKA" target="_blank">Project Site</a></li>
- <li><a href="http://www.jboss.org/community/wiki/richfaceswikihomepage;jsessionid=bJJO..." target="_blank">Project Wiki</a></li>
- <li><a href="http://community.jboss.org/community/richfaces;jsessionid=bJJO_UTMPzC7DsT..." target="_blank">RichFaces Community Space</a></li>
- <li class="download-link"><a href="http://jboss.org/richfaces/download/milestones.html;jsessionid=bJJO_UTMPz..." target="_blank">Download</a></li>
- <li class="last"><a href="http://anonsvn.jboss.org/repos/richfaces/trunk/examples/richfaces-showcas..." target="_blank">Sources</a></li>
+ <li><a href="http://jboss.org/richfaces" target="_blank">Project Site</a></li>
+ <li><a href="http://www.jboss.org/community/wiki/richfaceswikihomepage" target="_blank">Project Wiki</a></li>
+ <li><a href="http://community.jboss.org/community/richfaces" target="_blank">RichFaces Community Space</a></li>
+ <li class="download-link"><a href="http://jboss.org/richfaces/download/stable.html" target="_blank">Download</a></li>
+ <li class="last"><a href="http://anonsvn.jboss.org/repos/richfaces/trunk/examples/richfaces-showcase/" target="_blank">Sources</a></li>
</ul>
<ui:include src="/templates/includes/skin-chooser.xhtml" />
</div>
Modified: trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/appengine-web.xml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/appengine-web.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/appengine-web.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,15 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
- <application>richfaces-showcase</application>
+ <application>travelcurve</application>
<version>28</version>
<sessions-enabled>true</sessions-enabled>
-
+
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/classes/logging.properties"/>
</system-properties>
<resource-files>
- <exclude path="/static-resources/**" />
+ <exclude path="/static-resources/**"/>
</resource-files>
+ <static-files>
+ <include path="/images/**.*"/>
+ <include path="/static-resources/**.*"/>
+ <include path="/*.ico"/>
+ <include path="/resources/**.*"/>
+ <exclude path="/templates/**.*"/>
+ <exclude path="/*.xhtml"/>
+ </static-files>
+
</appengine-web-app>
Added: trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/cron.xml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/cron.xml (rev 0)
+++ trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/cron.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<cronentries>
+ <cron>
+ <url>/_ah/sessioncleanup?clear</url>
+ <description>Clean up sessions</description>
+ <schedule>every 5 minutes</schedule>
+ </cron>
+</cronentries>
Added: trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/faces-config.xml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/faces-config.xml (rev 0)
+++ trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/faces-config.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,256 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
+ version="2.0" metadata-complete="true">
+
+ <application>
+ <!-- system-event-listener>
+ <system-event-listener-class>org.richfaces.resource.MapBasedResourceCodecListener</system-event-listener-class>
+ <system-event-class>javax.faces.event.PostConstructApplicationEvent</system-event-class>
+ </system-event-listener -->
+ </application>
+
+ <component>
+ <component-type>syntaxHighlighter</component-type>
+ <component-class>org.richfaces.demo.components.sh.SyntaxHighlighter</component-class>
+ </component>
+
+ <managed-bean>
+ <managed-bean-name>functionBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.function.FunctionBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>validationBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.validation.ValidationBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>passwordValidationBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.validation.PasswordValidationBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>mediaData</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.mediaOutput.MediaData</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>mediaBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.mediaOutput.MediaBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>pollBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.poll.PollBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>profile</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.togglepanel.Profile</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>progressBarBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.progressBar.ProgressBarBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>tooltipData</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tooltip.TooltipData</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>calendarBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.calendar.CalendarBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>calendarModel</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.calendar.model.CalendarModel</managed-bean-class>
+ <managed-bean-scope>application</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>queueBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.queue.QueueBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>regionBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.region.RegionBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>autocompleteBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.autocomplete.AutocompleteBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>capitals</property-name>
+ <value>#{capitalsParser.capitalsList}</value>
+ </managed-property>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>inplaceSelectBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.inplaces.InplaceSelectBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>capitals</property-name>
+ <value>#{capitalsParser.capitalsList}</value>
+ </managed-property>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>panelMenuBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.panelmenu.PanelMenuBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>capitalsBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.CapitalsBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ <managed-property>
+ <property-name>capitals</property-name>
+ <value>#{capitalsParser.capitalsList}</value>
+ </managed-property>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>carsBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.CarsBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>carsFilteringBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.CarsFilteringBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>capitalsSortingBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.CapitalsSortingBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>extTableSelectionBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.ExtTableSelectionBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ <managed-property>
+ <property-name>inventoryItems</property-name>
+ <value>#{carsBean.allInventoryItems}</value>
+ </managed-property>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>capitalsParser</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.model.capitals.CapitalsParser</managed-bean-class>
+ <managed-bean-scope>application</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>slidesBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.SlidesBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>reportBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.ReportBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>paramBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.param.ParamBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>toolBarBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.toolbar.ToolBarBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>userBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.common.UserBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>demoNavigator</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.common.navigation.DemoNavigator</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ <managed-property>
+ <property-name>groups</property-name>
+ <value>#{navigationParser.groupsList}</value>
+ </managed-property>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>navigationParser</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.common.navigation.NavigationParser</managed-bean-class>
+ <managed-bean-scope>application</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>selectsBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.common.SelectsBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>skinBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.common.SkinBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ <managed-property>
+ <property-name>skin</property-name>
+ <value>blueSky</value>
+ </managed-property>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>listBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.lists.ListBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>fileUploadBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.fileupload.FileUploadBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>dragDropBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.dragdrop.DragDropBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>dragDropEventBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.dragdrop.DragDropEventBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>dragDropBean</property-name>
+ <value>#{dragDropBean}</value>
+ </managed-property>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>dropDownMenuBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.dropdownmenu.DropDownMenuBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>cdsParser</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tree.CDParser</managed-bean-class>
+ <managed-bean-scope>application</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>fileSystemBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tree.adaptors.FileSystemBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>treeBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tree.TreeBean</managed-bean-class>
+ <managed-bean-scope>application</managed-bean-scope>
+ <managed-property>
+ <property-name>cdXmlDescriptors</property-name>
+ <value>#{cdsParser.cdsList}</value>
+ </managed-property>
+ </managed-bean>
+
+ <managed-bean>
+ <managed-bean-name>opBean1</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.outputPanel.OutputPanelBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>opBean2</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.outputPanel.OutputPanelBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+</faces-config>
Modified: trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/web.xml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/web.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/web.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -45,40 +45,33 @@
<param-value>client</param-value>
</context-param>
<context-param>
- <param-name>org.apache.myfaces.SECRET</param-name>
- <param-value>-- Insert some secret here --</param-value>
- </context-param>
- <context-param>
- <param-name>org.apache.myfaces.MAC_SECRET</param-name>
- <param-value>-- Insert some secret here --</param-value>
- </context-param>
- <context-param>
- <param-name>org.apache.myfaces.algorithm</param-name>
- <param-value>Blowfish</param-value>
- </context-param>
- <context-param>
<param-name>org.richfaces.staticResourceLocation</param-name>
<param-value>#{facesContext.externalContext.requestContextPath}/static-resources/#{resourceLocation}</param-value>
</context-param>
- <!--
- We need to set annotation lifecycyle provider manually as org.apache.myfaces.config.annotation.NoInjectionAnnotationLifecycleProvider.
- Other providers use some classes that are restricted on Google App Engine.
- -->
- <context-param>
- <param-name>org.apache.myfaces.config.annotation.LifecycleProvider</param-name>
- <param-value>org.apache.myfaces.config.annotation.NoInjectionAnnotationLifecycleProvider</param-value>
- </context-param>
<context-param>
<param-name>org.ajax4jsf.cache.CACHE_MANAGER_FACTORY_CLASS</param-name>
<param-value>org.ajax4jsf.cache.lru.LRUMapCacheFactory</param-value>
</context-param>
+ <!-- ***** Accommodate Single-Threaded Requirement of Google AppEngine -->
<context-param>
- <param-name>org.apache.myfaces.EXPRESSION_FACTORY</param-name>
+ <description>
+ When enabled, the runtime initialization and default ResourceHandler
+ implementation will use threads to perform their functions. Set this
+ value to false if threads aren't desired (as in the case of running
+ within the Google Application Engine).
+
+ Note that when this option is disabled, the ResourceHandler will not
+ pick up new versions of resources when ProjectStage is development.
+ </description>
+ <param-name>com.sun.faces.enableThreading</param-name>
+ <param-value>false</param-value>
+ </context-param>
+ <context-param>
+ <param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
-
<context-param>
<param-name>org.richfaces.executeAWTInitializer</param-name>
<param-value>false</param-value>
@@ -92,6 +85,10 @@
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
+ <servlet>
+ <servlet-name>_ah_sessioncleanup</servlet-name>
+ <servlet-class>com.google.apphosting.utils.servlet.SessionCleanupServlet</servlet-class>
+ </servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
@@ -100,4 +97,17 @@
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
-</web-app>
\ No newline at end of file
+ <servlet-mapping>
+ <servlet-name>_ah_sessioncleanup</servlet-name>
+ <url-pattern>/_ah/sessioncleanup</url-pattern>
+ </servlet-mapping>
+ <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>session-cleanup</web-resource-name>
+ <url-pattern>/_ah/sessioncleanup</url-pattern>
+ </web-resource-collection>
+ <auth-constraint>
+ <role-name>admin</role-name>
+ </auth-constraint>
+ </security-constraint>
+</web-app>
Modified: trunk/examples/template/src/main/webapp/layout/pagesList.xhtml
===================================================================
--- trunk/examples/template/src/main/webapp/layout/pagesList.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/template/src/main/webapp/layout/pagesList.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -8,7 +8,7 @@
<h:form>
<h:dataTable value="#{pages.xhtmlPages}" var="page">
<h:column>
- <h:outputLink value="#{page.url}" >#{page.title}</h:outputLink>
+ <h:outputLink value="#{page.url}" ><h:outputText value="#{page.title}" escape="false"/></h:outputLink>
</h:column>
</h:dataTable>
</h:form>
Modified: trunk/examples/validator-demo/src/main/java/org/richfaces/example/Bean.java
===================================================================
--- trunk/examples/validator-demo/src/main/java/org/richfaces/example/Bean.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/validator-demo/src/main/java/org/richfaces/example/Bean.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,5 +1,11 @@
package org.richfaces.example;
+import javax.validation.constraints.Digits;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.NotEmpty;
+
public class Bean {
public static final String FOO_VALUE = "fooValue";
@@ -16,6 +22,8 @@
private String email;
+ private String numbers;
+
/**
* @return the value
*/
@@ -98,5 +106,18 @@
public void setEmail(String email) {
this.email = email;
}
+ @NotNull
+ @NotEmpty
+ @Digits(fraction = 0, integer = 2)
+ @Pattern(regexp = "^[0-9-]+$", message = "must contain only numbers")
+ public String getNumbers()
+ {
+ return this.numbers;
+ }
+
+ public void setNumbers(String numbers) {
+ this.numbers = numbers;
+ }
+
}
Added: trunk/examples/validator-demo/src/main/webapp/bg.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/examples/validator-demo/src/main/webapp/bg.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/examples/validator-demo/src/main/webapp/examples/beanValidation.xhtml
===================================================================
--- trunk/examples/validator-demo/src/main/webapp/examples/beanValidation.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/validator-demo/src/main/webapp/examples/beanValidation.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -19,16 +19,16 @@
<h:inputText id="${bean.label}" value="#{bean.value}" label="#{bean.label}" converter="#{bean.converter}">
<csv:validator summary="Invalid value" />
</h:inputText>
- <csv:message for="${bean.label}" />
+ <csv:message for="${bean.label}" tooltip="true"/>
</c:forEach>
<h:outputLabel for="assertTrue" value="#{booleanBean.description}" />
<h:selectBooleanCheckbox id="assertTrue" value="#{booleanBean.value}" label="#{booleanBean.label}" >
<csv:validator summary="Required checkbox" />
</h:selectBooleanCheckbox>
- <csv:message for="assertTrue" />
+ <csv:message for="assertTrue" showDetail="true" showSummary="true"/>
</h:panelGrid>
<h:commandButton value="Submit"></h:commandButton>
- <csv:messages />
+ <csv:messages showDetail="true" showSummary="true"/>
</h:form>
</ui:define>
</ui:composition>
Added: trunk/examples/validator-demo/src/main/webapp/examples/clientAndajaxValidator.xhtml
===================================================================
--- trunk/examples/validator-demo/src/main/webapp/examples/clientAndajaxValidator.xhtml (rev 0)
+++ trunk/examples/validator-demo/src/main/webapp/examples/clientAndajaxValidator.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,41 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:csv="http://richfaces.org/csv"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:c="http://java.sun.com/jsp/jstl/core">
+<ui:composition template="/layout/template.xhtml">
+ <ui:param name="title" value="JSF validator by client and AJAX" />
+ <!-- Page header -->
+ <ui:define name="header">
+ <h1>Client validation with AJAX callback</h1>
+ </ui:define>
+ <!-- content -->
+ <ui:define name="content">
+ <h:form id="form">
+ <h:panelGrid columns="4">
+ <h:outputLabel for="text" value="Pattern ^ab[1-3]*$ and length 0-3"/>
+ <h:inputText id="text" value="#{test.value}">
+ <f:validateRegex pattern="^ab[1-3]*$"/>
+ <f:validator validatorId="custom" />
+ <csv:validator event="blur" />
+ </h:inputText>
+ <h:outputText id="out" value="#{test.value}"></h:outputText>
+ <csv:message id="uiMessage" for="text" />
+ <h:outputLabel for="number" value="Four annotations for number"/>
+ <h:inputText id="number" value="#{test.numbers}">
+ <csv:validator onbeforesubmit="alert('Before')"/>
+ </h:inputText>
+ <h:outputText id="outNum" value="#{test.numbers}"></h:outputText>
+ <csv:message id="uiNumMessage" for="number" />
+ </h:panelGrid>
+ <h:commandButton value="Submit form"/>
+ <h:graphicImage value="/bg.jpg">
+ <a4j:ajax event="click" value="AJAX Submit" render="out" onbeforesubmit="alert('Before AJAX')"/>
+ </h:graphicImage>
+ </h:form>
+ <csv:messages />
+ </ui:define>
+</ui:composition>
+</html>
Modified: trunk/examples/validator-demo/src/main/webapp/examples/faces-validators.xhtml
===================================================================
--- trunk/examples/validator-demo/src/main/webapp/examples/faces-validators.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/examples/validator-demo/src/main/webapp/examples/faces-validators.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -2,6 +2,7 @@
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:a4j="http://richfaces.org/a4j"
xmlns:csv="http://richfaces.org/csv"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<ui:composition template="/layout/template.xhtml">
Added: trunk/ui/common/api/src/main/java/org/richfaces/application/FacesMessages.java
===================================================================
--- trunk/ui/common/api/src/main/java/org/richfaces/application/FacesMessages.java (rev 0)
+++ trunk/ui/common/api/src/main/java/org/richfaces/application/FacesMessages.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,136 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and individual contributors
+ * 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.
+ */
+package org.richfaces.application;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIInput;
+import javax.faces.component.UISelectMany;
+import javax.faces.component.UISelectOne;
+import javax.faces.convert.BigDecimalConverter;
+import javax.faces.convert.BigIntegerConverter;
+import javax.faces.convert.BooleanConverter;
+import javax.faces.convert.ByteConverter;
+import javax.faces.convert.CharacterConverter;
+import javax.faces.convert.DateTimeConverter;
+import javax.faces.convert.DoubleConverter;
+import javax.faces.convert.EnumConverter;
+import javax.faces.convert.FloatConverter;
+import javax.faces.convert.IntegerConverter;
+import javax.faces.convert.LongConverter;
+import javax.faces.convert.NumberConverter;
+import javax.faces.convert.ShortConverter;
+import javax.faces.validator.BeanValidator;
+import javax.faces.validator.DoubleRangeValidator;
+import javax.faces.validator.LengthValidator;
+import javax.faces.validator.LongRangeValidator;
+import javax.faces.validator.RegexValidator;
+
+import org.richfaces.l10n.MessageBundle;
+
+/**
+ * @author Nick Belaevski
+ *
+ */
+@MessageBundle(baseName = FacesMessage.FACES_MESSAGES)
+public enum FacesMessages {
+
+ UIINPUT_CONVERSION(UIInput.CONVERSION_MESSAGE_ID),
+ UIINPUT_REQUIRED(UIInput.REQUIRED_MESSAGE_ID),
+ UIINPUT_UPDATE(UIInput.UPDATE_MESSAGE_ID),
+ UISELECTONE_INVALID(UISelectOne.INVALID_MESSAGE_ID),
+ UISELECTMANY_INVALID(UISelectMany.INVALID_MESSAGE_ID),
+ BIG_DECIMAL_CONVERTER_DECIMAL(BigDecimalConverter.DECIMAL_ID),
+ BIG_DECIMAL_CONVERTER_DECIMAL_DETAIL(BigDecimalConverter.DECIMAL_ID, true),
+ BIG_INTEGER_CONVERTER_BIGINTEGER(BigIntegerConverter.BIGINTEGER_ID),
+ BIG_INTEGER_CONVERTER_BIGINTEGER_DETAIL(BigIntegerConverter.BIGINTEGER_ID, true),
+ BOOLEAN_CONVERTER_BOOLEAN(BooleanConverter.BOOLEAN_ID),
+ BOOLEAN_CONVERTER_BOOLEAN_DETAIL(BooleanConverter.BOOLEAN_ID, true),
+ BYTE_CONVERTER_BYTE(ByteConverter.BYTE_ID),
+ BYTE_CONVERTER_BYTE_DETAIL(ByteConverter.BYTE_ID, true),
+ CHARACTER_CONVERTER_CHARACTER(CharacterConverter.CHARACTER_ID),
+ CHARACTER_CONVERTER_CHARACTER_DETAIL(CharacterConverter.CHARACTER_ID, true),
+ DATE_TIME_CONVERTER_DATE(DateTimeConverter.DATE_ID),
+ DATE_TIME_CONVERTER_DATE_DETAIL(DateTimeConverter.DATE_ID, true),
+ DATE_TIME_CONVERTER_TIME(DateTimeConverter.TIME_ID),
+ DATE_TIME_CONVERTER_TIME_DETAIL(DateTimeConverter.TIME_ID, true),
+ DATE_TIME_CONVERTER_DATETIME(DateTimeConverter.DATETIME_ID),
+ DATE_TIME_CONVERTER_DATETIME_DETAIL(DateTimeConverter.DATETIME_ID, true),
+ DATE_TIME_CONVERTER_PATTERN_TYPE("javax.faces.converter.DateTimeConverter.PATTERN_TYPE"),
+ DOUBLE_CONVERTER_DOUBLE(DoubleConverter.DOUBLE_ID),
+ DOUBLE_CONVERTER_DOUBLE_DETAIL(DoubleConverter.DOUBLE_ID, true),
+ ENUM_CONVERTER_ENUM(EnumConverter.ENUM_ID),
+ ENUM_CONVERTER_ENUM_DETAIL(EnumConverter.ENUM_ID, true),
+ ENUM_CONVERTER_ENUM_NO_CLASS(EnumConverter.ENUM_NO_CLASS_ID),
+ ENUM_CONVERTER_ENUM_NO_CLASS_DETAIL(EnumConverter.ENUM_NO_CLASS_ID, true),
+ FLOAT_CONVERTER_FLOAT(FloatConverter.FLOAT_ID),
+ FLOAT_CONVERTER_FLOAT_DETAIL(FloatConverter.FLOAT_ID, true),
+ INTEGER_CONVERTER_INTEGER(IntegerConverter.INTEGER_ID),
+ INTEGER_CONVERTER_INTEGER_DETAIL(IntegerConverter.INTEGER_ID, true),
+ LONG_CONVERTER_LONG(LongConverter.LONG_ID),
+ LONG_CONVERTER_LONG_DETAIL(LongConverter.LONG_ID, true),
+ NUMBER_CONVERTER_CURRENCY(NumberConverter.CURRENCY_ID),
+ NUMBER_CONVERTER_CURRENCY_DETAIL(NumberConverter.CURRENCY_ID, true),
+ NUMBER_CONVERTER_PERCENT(NumberConverter.PERCENT_ID),
+ NUMBER_CONVERTER_PERCENT_DETAIL(NumberConverter.PERCENT_ID, true),
+ NUMBER_CONVERTER_NUMBER(NumberConverter.NUMBER_ID),
+ NUMBER_CONVERTER_NUMBER_DETAIL(NumberConverter.NUMBER_ID, true),
+ NUMBER_CONVERTER_PATTERN(NumberConverter.PATTERN_ID),
+ NUMBER_CONVERTER_PATTERN_DETAIL(NumberConverter.PATTERN_ID, true),
+ SHORT_CONVERTER_SHORT(ShortConverter.SHORT_ID),
+ SHORT_CONVERTER_SHORT_DETAIL(ShortConverter.SHORT_ID, true),
+ CONVERTER_STRING("javax.faces.converter.STRING"),
+ DOUBLE_RANGE_VALIDATOR_MAXIMUM(DoubleRangeValidator.MAXIMUM_MESSAGE_ID),
+ DOUBLE_RANGE_VALIDATOR_MINIMUM(DoubleRangeValidator.MINIMUM_MESSAGE_ID),
+ DOUBLE_RANGE_VALIDATOR_NOT_IN_RANGE(DoubleRangeValidator.NOT_IN_RANGE_MESSAGE_ID),
+ DOUBLE_RANGE_VALIDATOR_TYPE(DoubleRangeValidator.TYPE_MESSAGE_ID),
+ LENGTH_VALIDATOR_MAXIMUM(LengthValidator.MAXIMUM_MESSAGE_ID),
+ LENGTH_VALIDATOR_MINIMUM(LengthValidator.MINIMUM_MESSAGE_ID),
+ LONG_RANGE_VALIDATOR_MAXIMUM(LongRangeValidator.MAXIMUM_MESSAGE_ID),
+ LONG_RANGE_VALIDATOR_MINIMUM(LongRangeValidator.MINIMUM_MESSAGE_ID),
+ LONG_RANGE_VALIDATOR_NOT_IN_RANGE(LongRangeValidator.NOT_IN_RANGE_MESSAGE_ID),
+ LONG_RANGE_VALIDATOR_TYPE(LongRangeValidator.TYPE_MESSAGE_ID),
+ VALIDATOR_NOT_IN_RANGE("javax.faces.validator.NOT_IN_RANGE"),
+ REGEX_VALIDATOR_PATTERN_NOT_SET(RegexValidator.PATTERN_NOT_SET_MESSAGE_ID),
+ REGEX_VALIDATOR_PATTERN_NOT_SET_DETAIL(RegexValidator.PATTERN_NOT_SET_MESSAGE_ID, true),
+ REGEX_VALIDATOR_NOT_MATCHED(RegexValidator.NOT_MATCHED_MESSAGE_ID),
+ REGEX_VALIDATOR_NOT_MATCHED_DETAIL(RegexValidator.NOT_MATCHED_MESSAGE_ID, true),
+ REGEX_VALIDATOR_MATCH_EXCEPTION(RegexValidator.MATCH_EXCEPTION_MESSAGE_ID),
+ REGEX_VALIDATOR_MATCH_EXCEPTION_DETAIL(RegexValidator.MATCH_EXCEPTION_MESSAGE_ID, true),
+ BEAN_VALIDATOR_MESSAGE(BeanValidator.MESSAGE_ID);
+
+ private static final String DETAIL = "_detail";
+
+ private String key;
+
+ private FacesMessages(String key) {
+ this(key, false);
+ }
+
+ private FacesMessages(String key, boolean isDetail) {
+ this.key = isDetail ? key + DETAIL : key;
+ }
+
+ @Override
+ public String toString() {
+ return key;
+ }
+}
Added: trunk/ui/common/ui/src/main/java/org/richfaces/StateHolderArray.java
===================================================================
--- trunk/ui/common/ui/src/main/java/org/richfaces/StateHolderArray.java (rev 0)
+++ trunk/ui/common/ui/src/main/java/org/richfaces/StateHolderArray.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,95 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2011, Red Hat, Inc. and individual contributors
+ * 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.
+ */
+package org.richfaces;
+
+import java.util.ArrayList;
+
+import javax.faces.component.StateHolder;
+import javax.faces.component.UIComponentBase;
+import javax.faces.context.FacesContext;
+
+import com.google.common.collect.Lists;
+
+/**
+ * @author Nick Belaevski
+ *
+ */
+public class StateHolderArray implements StateHolder {
+
+ private boolean tranzient = false;
+
+ private ArrayList<Object> backingList = Lists.newArrayListWithCapacity(2);
+
+ public Object saveState(FacesContext context) {
+ Object[] savedState = new Object[backingList.size()];
+
+ boolean hasNonNullState = false;
+
+ for (int i = 0; i < savedState.length; i++) {
+ Object state = UIComponentBase.saveAttachedState(context, backingList.get(i));
+ savedState[i] = state;
+
+ if (state != null) {
+ hasNonNullState = true;
+ }
+ }
+
+ if (hasNonNullState) {
+ return savedState;
+ } else {
+ return null;
+ }
+ }
+
+ public void restoreState(FacesContext context, Object stateObject) {
+ if (stateObject != null) {
+ Object[] state = (Object[]) stateObject;
+
+ backingList.ensureCapacity(state.length);
+
+ for (int i = 0; i < state.length; i++) {
+ backingList.add(UIComponentBase.restoreAttachedState(context, state[i]));
+ }
+ }
+ }
+
+ public boolean isTransient() {
+ return tranzient;
+ }
+
+ public void setTransient(boolean newTransientValue) {
+ this.tranzient = newTransientValue;
+ }
+
+ public boolean add(Object e) {
+ return backingList.add(e);
+ }
+
+ public Object get(int index) {
+ return backingList.get(index);
+ }
+
+ public boolean isEmpty() {
+ return backingList.isEmpty();
+ }
+
+}
Modified: trunk/ui/common/ui/src/main/java/org/richfaces/component/UISequence.java
===================================================================
--- trunk/ui/common/ui/src/main/java/org/richfaces/component/UISequence.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/common/ui/src/main/java/org/richfaces/component/UISequence.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -54,6 +54,8 @@
private Object iterationStatusVarObject;
+ private Converter defaultRowKeyConverter;
+
protected enum PropertyKeys {
first, rows, value, iterationStatusVar
}
@@ -137,7 +139,17 @@
@Override
public Converter getRowKeyConverter() {
- return getFacesContext().getApplication().createConverter(Integer.class);
+ Converter converter = super.getRowKeyConverter();
+
+ if (converter == null) {
+ if (defaultRowKeyConverter == null) {
+ defaultRowKeyConverter = getFacesContext().getApplication().createConverter(Integer.class);
+ }
+
+ converter = defaultRowKeyConverter;
+ }
+
+ return converter;
}
@Attribute
Modified: trunk/ui/core/pom.xml
===================================================================
--- trunk/ui/core/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -41,8 +41,8 @@
</modules>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/core</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/core</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/ui/core</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/ui/core</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/ui/core</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/core/ui/pom.xml
===================================================================
--- trunk/ui/core/ui/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -61,10 +61,10 @@
</build>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/core/ui
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/ui/core/ui
</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/core/ui
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/ui/core/ui
</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/ui/core/ui</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/core/ui/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java
===================================================================
--- trunk/ui/core/ui/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -54,7 +54,8 @@
*
*/
-@JsfBehavior(id = "org.ajax4jsf.behavior.Ajax", tag = @Tag(name = "ajax", handler = "org.richfaces.view.facelets.html.AjaxHandler", type = TagType.Facelets))
+@JsfBehavior(id = "org.ajax4jsf.behavior.Ajax", tag = @Tag(name = "ajax", handler = "org.richfaces.view.facelets.html.AjaxHandler", type = TagType.Facelets),
+ attributes = {"ajaxBehavior-prop.xml"})
public class AjaxBehavior extends ClientBehavior implements AjaxClientBehavior {
public static final String BEHAVIOR_ID = "org.ajax4jsf.behavior.Ajax";
Modified: trunk/ui/core/ui/src/main/java/org/ajax4jsf/component/behavior/MethodExpressionAjaxBehaviorListener.java
===================================================================
--- trunk/ui/core/ui/src/main/java/org/ajax4jsf/component/behavior/MethodExpressionAjaxBehaviorListener.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/java/org/ajax4jsf/component/behavior/MethodExpressionAjaxBehaviorListener.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -70,9 +70,9 @@
ELContext elContext = context.getELContext();
try {
+ methodExpressionOneArg.invoke(elContext, new Object[] { event});
+ } catch (MethodNotFoundException mnfe) {
methodExpressionZeroArg.invoke(elContext, new Object[] {});
- } catch (MethodNotFoundException mnfe) {
- methodExpressionOneArg.invoke(elContext, new Object[] { event});
}
}
Modified: trunk/ui/core/ui/src/main/java/org/ajax4jsf/renderkit/AjaxBehaviorRenderer.java
===================================================================
--- trunk/ui/core/ui/src/main/java/org/ajax4jsf/renderkit/AjaxBehaviorRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/java/org/ajax4jsf/renderkit/AjaxBehaviorRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -117,7 +117,7 @@
@Override
public String getScript(ClientBehaviorContext behaviorContext, ClientBehavior behavior) {
String script = null;
- if (behavior instanceof AjaxBehavior) {
+ if (behavior instanceof AjaxBehavior && !((AjaxBehavior)behavior).isDisabled()) {
script = buildAjaxCommand(behaviorContext, (AjaxBehavior) behavior);
}
Modified: trunk/ui/core/ui/src/main/java/org/richfaces/component/AbstractAjaxStatus.java
===================================================================
--- trunk/ui/core/ui/src/main/java/org/richfaces/component/AbstractAjaxStatus.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/java/org/richfaces/component/AbstractAjaxStatus.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -23,7 +23,7 @@
package org.richfaces.component;
-import javax.faces.component.UIOutput;
+import javax.faces.component.UIComponentBase;
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.EventName;
@@ -37,7 +37,7 @@
*
*/
@JsfComponent(renderer = @JsfRenderer(type = "org.richfaces.StatusRenderer"), tag = @Tag(type = TagType.Facelets))
-public abstract class AbstractAjaxStatus extends UIOutput {
+public abstract class AbstractAjaxStatus extends UIComponentBase {
public static final String COMPONENT_TYPE = "org.richfaces.Status";
@@ -54,4 +54,35 @@
@Attribute(events = @EventName("success"))
public abstract String getOnsuccess();
+
+ @Attribute
+ public abstract String getName();
+
+ @Attribute
+ public abstract String getStartText();
+
+ @Attribute
+ public abstract String getStopText();
+
+ @Attribute
+ public abstract String getErrorText();
+
+ @Attribute
+ public abstract String getStartStyle();
+
+ @Attribute
+ public abstract String getStopStyle();
+
+ @Attribute
+ public abstract String getErrorStyle();
+
+ @Attribute
+ public abstract String getStartStyleClass();
+
+ @Attribute
+ public abstract String getStopStyleClass();
+
+ @Attribute
+ public abstract String getErrorStyleClass();
+
}
Modified: trunk/ui/core/ui/src/main/java/org/richfaces/component/AbstractCommandButton.java
===================================================================
--- trunk/ui/core/ui/src/main/java/org/richfaces/component/AbstractCommandButton.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/java/org/richfaces/component/AbstractCommandButton.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -25,6 +25,7 @@
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
+import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.cdk.annotations.Tag;
@@ -45,6 +46,9 @@
public static final String COMPONENT_FAMILY = UICommand.COMPONENT_FAMILY;
+ @Attribute
+ public abstract String getImage();
+
public String resolveClientId(FacesContext facesContext, UIComponent contextComponent, String metaComponentId) {
return null;
}
Modified: trunk/ui/core/ui/src/main/java/org/richfaces/component/UIRepeat.java
===================================================================
--- trunk/ui/core/ui/src/main/java/org/richfaces/component/UIRepeat.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/java/org/richfaces/component/UIRepeat.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -30,7 +30,11 @@
* @author Nick Belaevski
*
*/
-@JsfComponent(tag = @Tag(name = "repeat", type = TagType.Facelets), renderer = @JsfRenderer(type = "org.richfaces.RepeatRenderer"))
+@JsfComponent(
+ tag = @Tag(name = "repeat", handler = "org.richfaces.view.facelets.html.RepeatHandler",type = TagType.Facelets),
+ renderer = @JsfRenderer(type = "org.richfaces.RepeatRenderer"),
+ attributes = "rowKeyConverter-prop.xml"
+)
public class UIRepeat extends UISequence {
public static final String COMPONENT_TYPE = "org.richfaces.Repeat";
Modified: trunk/ui/core/ui/src/main/java/org/richfaces/renderkit/html/AjaxPollRenderer.java
===================================================================
--- trunk/ui/core/ui/src/main/java/org/richfaces/renderkit/html/AjaxPollRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/java/org/richfaces/renderkit/html/AjaxPollRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -21,18 +21,6 @@
package org.richfaces.renderkit.html;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.faces.application.ResourceDependencies;
-import javax.faces.application.ResourceDependency;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.context.PartialViewContext;
-import javax.faces.context.ResponseWriter;
-import javax.faces.event.ActionEvent;
-
import org.ajax4jsf.javascript.JSFunction;
import org.ajax4jsf.javascript.JSFunctionDefinition;
import org.ajax4jsf.javascript.JSReference;
@@ -44,6 +32,17 @@
import org.richfaces.renderkit.util.HandlersChain;
import org.richfaces.renderkit.util.RendererUtils;
+import javax.faces.application.ResourceDependencies;
+import javax.faces.application.ResourceDependency;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.PartialViewContext;
+import javax.faces.context.ResponseWriter;
+import javax.faces.event.ActionEvent;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* @author shura
*/
@@ -99,7 +98,6 @@
utils.encodeBeginForm(context, component, writer, clientId);
utils.encodeEndForm(context, writer);
}
- writer.endElement(rootElementName);
// polling script.
writer.startElement(HtmlConstants.SCRIPT_ELEM, component);
@@ -133,6 +131,7 @@
writer.endElement(HtmlConstants.SCRIPT_ELEM);
+ writer.endElement(rootElementName);
}
/*
Modified: trunk/ui/core/ui/src/main/java/org/richfaces/renderkit/html/AjaxStatusRenderer.java
===================================================================
--- trunk/ui/core/ui/src/main/java/org/richfaces/renderkit/html/AjaxStatusRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/java/org/richfaces/renderkit/html/AjaxStatusRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -93,7 +93,7 @@
this.styleAttributeName = stateName + "Style";
this.styleClassAttributeName = stateName + "StyleClass";
this.textAttributeName = stateName + "Text";
- this.defaultStyleClass = "rich-status-" + stateName;
+ this.defaultStyleClass = "rf-st-" + stateName;
}
public String getStyleAttributeName() {
Added: trunk/ui/core/ui/src/main/java/org/richfaces/view/facelets/html/RepeatHandler.java
===================================================================
--- trunk/ui/core/ui/src/main/java/org/richfaces/view/facelets/html/RepeatHandler.java (rev 0)
+++ trunk/ui/core/ui/src/main/java/org/richfaces/view/facelets/html/RepeatHandler.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,24 @@
+package org.richfaces.view.facelets.html;
+
+import org.richfaces.view.facelets.RowKeyConverterRule;
+
+import javax.faces.view.facelets.ComponentConfig;
+import javax.faces.view.facelets.ComponentHandler;
+import javax.faces.view.facelets.MetaRuleset;
+
+/**
+ * User: Gleb Galkin
+ * Date: 11.03.11
+ */
+public class RepeatHandler extends ComponentHandler {
+
+ public RepeatHandler(ComponentConfig config) {
+ super(config);
+ }
+
+ protected MetaRuleset createMetaRuleset(Class type) {
+ MetaRuleset metaRuleset = super.createMetaRuleset(type);
+ metaRuleset.addRule(RowKeyConverterRule.INSTANCE);
+ return metaRuleset;
+ }
+}
\ No newline at end of file
Added: trunk/ui/core/ui/src/main/resources/META-INF/cdk/attributes/ajaxBehavior-prop.xml
===================================================================
--- trunk/ui/core/ui/src/main/resources/META-INF/cdk/attributes/ajaxBehavior-prop.xml (rev 0)
+++ trunk/ui/core/ui/src/main/resources/META-INF/cdk/attributes/ajaxBehavior-prop.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- JBoss, Home of Professional Open Source Copyright ${year}, Red Hat,
+ Inc. and individual contributors 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. -->
+<cdk:properties xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:cdk="http://jboss.org/schema/richfaces/cdk/extensions"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee">
+ <property>
+ <property-name>listener</property-name>
+ <property-class>javax.el.MethodExpression</property-class>
+ </property>
+ <property>
+ <property-name>event</property-name>
+ <property-class>java.lang.String</property-class>
+ </property>
+</cdk:properties>
Added: trunk/ui/core/ui/src/main/resources/META-INF/cdk/attributes/rowKeyConverter-prop.xml
===================================================================
--- trunk/ui/core/ui/src/main/resources/META-INF/cdk/attributes/rowKeyConverter-prop.xml (rev 0)
+++ trunk/ui/core/ui/src/main/resources/META-INF/cdk/attributes/rowKeyConverter-prop.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- JBoss, Home of Professional Open Source Copyright ${year}, Red Hat,
+ Inc. and individual contributors 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. -->
+<cdk:properties xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:cdk="http://jboss.org/schema/richfaces/cdk/extensions"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee">
+
+ <property>
+ <property-name>rowKeyConverter</property-name>
+ <property-class>javax.faces.convert.Converter</property-class>
+ </property>
+
+</cdk:properties>
Modified: trunk/ui/core/ui/src/main/resources/META-INF/resources/org.richfaces/status.js
===================================================================
--- trunk/ui/core/ui/src/main/resources/META-INF/resources/org.richfaces/status.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/resources/META-INF/resources/org.richfaces/status.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -133,12 +133,12 @@
this.options.onstart.apply(this, arguments);
}
- return this.__showHide('.rich-status-start');
+ return this.__showHide('.rf-st-start');
},
stop: function() {
this.__stop();
- return this.__showHide('.rich-status-stop');
+ return this.__showHide('.rf-st-stop');
},
success: function() {
@@ -154,7 +154,7 @@
}
this.__stop();
- return this.__showHide(':not(.rich-status-error) + .rich-status-stop, .rich-status-error');
+ return this.__showHide(':not(.rf-st-error) + .rf-st-stop, .rf-st-error');
},
__showHide: function(selector) {
Deleted: trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/basic.xcss
===================================================================
--- trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/basic.xcss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/basic.xcss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<f:template xmlns:f='http:/jsf.exadel.com/template'
- xmlns:u='http:/jsf.exadel.com/template/util'
- xmlns="http://www.w3.org/1999/xhtml">
-
- <u:selector name="input, select, textarea, button, keygen, isindex, legend, a">
- <u:style name="font-size" skin="generalSizeFont" />
- <u:style name="font-family" skin="generalFamilyFont" />
- <u:style name="color" skin="controlTextColor" />
- </u:selector>
-
- <f:verbatim>
- <![CDATA[
- fieldset {
- border-width: 1px;
- border-style: solid;
- padding: 10px;
- }
-
- hr {
- border-width: 1px;
- border-style: solid;
- }
- ]]>
- </f:verbatim>
-
- <u:selector name="fieldset">
- <u:style name="border-color" skin="panelBorderColor" />
- </u:selector>
-
- <u:selector name="hr">
- <u:style name="border-color" skin="panelBorderColor" />
- </u:selector>
-
- <u:selector name="a">
- <u:style name="color" skin="generalLinkColor" />
- </u:selector>
-
- <u:selector name="a:hover">
- <u:style name="color" skin="hoverLinkColor" />
- </u:selector>
-
- <u:selector name="a:visited">
- <u:style name="color" skin="visitedLinkColor" />
- </u:selector>
-</f:template>
\ No newline at end of file
Deleted: trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/basic_both.xcss
===================================================================
--- trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/basic_both.xcss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/basic_both.xcss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<f:template xmlns:f='http:/jsf.exadel.com/template'
- xmlns:u='http:/jsf.exadel.com/template/util'
- xmlns="http://www.w3.org/1999/xhtml">
-
- <f:importResource src="org/richfaces/renderkit/html/css/basic.xcss" />
- <f:importResource src="org/richfaces/renderkit/html/css/basic_classes.xcss" />
-
-</f:template>
\ No newline at end of file
Deleted: trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/basic_classes.xcss
===================================================================
--- trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/basic_classes.xcss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/basic_classes.xcss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,413 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<f:template xmlns:f='http:/jsf.exadel.com/template'
- xmlns:u='http:/jsf.exadel.com/template/util'
- xmlns="http://www.w3.org/1999/xhtml">
-
-
- <u:selector name=".rich-container input, .rich-input,
- .rich-container select, .rich-select,
-
- .rich-container textarea, .rich-textarea,
-
- .rich-container button, .rich-button,
-
- .rich-container keygen, .rich-keygen,
-
- .rich-container isindex, .rich-isindex,
-
- .rich-container legend, .rich-legend,
-
- .rich-container a, .rich-link,
-
- .rich-container fieldset, .rich-fieldset,
-
- .rich-field, .rich-field-edit, .rich-field-error,
-
- .rich-button, .rich-button-disabled, .rich-button-over, .rich-button-press">
-
- <u:style name="font-size" skin="generalSizeFont" />
- <u:style name="font-family" skin="generalFamilyFont" />
- <u:style name="color" skin="controlTextColor" />
- </u:selector>
-
- <f:verbatim>
- <![CDATA[
- .rich-container fieldset, .rich-fieldset {
- border-width: 1px;
- border-style: solid;
- padding: 10px;
- }
-
- .rich-container hr, .rich-hr {
- border-width: 1px;
- border-style: solid;
- }
-
- .rich-container legend, .rich-legend {
- font-weight : bold;
- }
-
- .rich-container form, .rich-form {
- padding : 0px;
- margin : 0px;
- }
- ]]>
- </f:verbatim>
-
- <u:selector name=".rich-container fieldset, .rich-fieldset">
- <u:style name="border-color" skin="panelBorderColor" />
- </u:selector>
-
- <u:selector name=".rich-container hr, .rich-hr">
- <u:style name="border-color" skin="panelBorderColor" />
- </u:selector>
-
- <u:selector name=".rich-container a, .rich-link">
- <u:style name="color" skin="generalLinkColor" />
- </u:selector>
-
- <u:selector name=".rich-container a:hover, .rich-link:hover">
- <u:style name="color" skin="hoverLinkColor" />
- </u:selector>
-
- <u:selector name=".rich-container a:visited, .rich-link:visited">
- <u:style name="color" skin="visitedLinkColor" />
- </u:selector>
-
-
-
-
- <u:selector name=".rich-field, .rich-field-edit, .rich-field-error">
- <u:style name="border-width" value="1px" />
- <u:style name="border-style" value="inset" />
- <u:style name="border-color" skin="panelBorderColor" />
- </u:selector>
-
- <u:selector name=".rich-field">
- <u:style name="background-color" skin="controlBackgroundColor" />
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.ButtonBackgroundImage"/>
- </u:style>
- <u:style name="background-repeat" value="no-repeat" />
- <u:style name="background-position" value="1px 1px" />
- </u:selector>
-
- <u:selector name=".rich-field-edit">
- <u:style name="background-color" skin="editBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-field-error">
- <u:style name="background-color" skin="warningBackgroundColor" />;
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.InputErrorIcon"/>
- </u:style>
- <u:style name="background-repeat" value="no-repeat" />
- <u:style name="background-position" value="center left" />
- <u:style name="padding-left" value="7px" />
- </u:selector>
-
-
-
- <u:selector name=".rich-button, .rich-button-disabled, .rich-button-over, .rich-button-press">
- <u:style name="border-width" value="1px" />
- <u:style name="border-style" value="solid" />
- <u:style name="border-color" skin="panelBorderColor" />
- <u:style name="background-color" skin="trimColor" />
- <u:style name="padding" value="2px 10px 2px 10px" />
- <u:style name="text-align" value="center" />
- <u:style name="cursor" value="pointer" />
- <u:style name="background-repeat" value="repeat-x" />
- <u:style name="background-position" value="top left" />
- </u:selector>
-
- <u:selector name=".rich-button">
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.StandardButtonBgImage"/>
- </u:style>
- </u:selector>
-
- <u:selector name=".rich-button-disabled">
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.StandardButtonBgImage"/>
- </u:style>
- </u:selector>
-
- <u:selector name=".rich-button-over">
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.StandardButtonBgImage"/>
- </u:style>
- </u:selector>
-
- <u:selector name=".rich-button-press">
- StandardButtonBgImage
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.StandardButtonPressedBgImage"/>
- </u:style>
- <u:style name="background-position" value="bottom left" />
- </u:selector>
-
- /*border color styles*/
-
- <u:selector name=".rich-box-border-color-control-select">
- <u:style name="border-color" skin="selectControlColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-color-subborder">
- <u:style name="border-color" skin="subBorderColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-color-header">
- <u:style name="border-color" skin="headerBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-color-general">
- <u:style name="border-color" skin="generalBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-color-additional">
- <u:style name="border-color" skin="additionalBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-color-panel">
- <u:style name="border-color" skin="panelBorderColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-color-tip">
- <u:style name="border-color" skin="tipBorderColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-color-table">
- <u:style name="border-color" skin="tableBorderColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-control-select, .rich-box-border-subborder, .rich-box-border-header,
- .rich-box-border-general, .rich-box-border-additional, .rich-box-border-panel, .rich-box-border-tip, .rich-box-border-table">
- <u:style name="border-style" value="solid" />
- <u:style name="border-width" value="1px" />
- </u:selector>
-
- <u:selector name=".rich-box-border-control-select">
- <u:style name="border-color" skin="selectControlColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-subborder">
- <u:style name="border-color" skin="subBorderColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-header">
- <u:style name="border-color" skin="headerBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-general">
- <u:style name="border-color" skin="generalBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-additional">
- <u:style name="border-color" skin="additionalBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-panel">
- <u:style name="border-color" skin="panelBorderColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-tip">
- <u:style name="border-color" skin="tipBorderColor" />
- </u:selector>
-
- <u:selector name=".rich-box-border-table">
- <u:style name="border-color" skin="tableBorderColor" />
- </u:selector>
-
- /*background color styles*/
-
- <u:selector name=".rich-box-bgcolor-header">
- <u:style name="background-color" skin="headerBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-bgcolor-general">
- <u:style name="background-color" skin="generalBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-bgcolor-additional">
- <u:style name="background-color" skin="additionalBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-bgcolor-panel">
- <u:style name="background-color" skin="panelBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-bgcolor-tab">
- <u:style name="background-color" skin="tabBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-bgcolor-trim">
- <u:style name="background-color" skin="trimColor" />
- </u:selector>
-
- <u:selector name=".rich-box-bgcolor-tip">
- <u:style name="background-color" skin="tipBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-bgcolor-table">
- <u:style name="background-color" skin="tableBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-bgcolor-table-footer">
- <u:style name="background-color" skin="tableFooterBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-bgcolor-table-subfooter">
- <u:style name="background-color" skin="tableSubfooterBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-bgcolor-editor">
- <u:style name="background-color" skin="editorBackgroundColor" />
- </u:selector>
-
- <u:selector name=".rich-box-bgcolor-edit">
- <u:style name="background-color" skin="editBackgroundColor" />
- </u:selector>
-
- /*text color styles*/
-
- <u:selector name=".rich-text-color-header">
- <u:style name="color" skin="headerTextColor" />
- </u:selector>
-
- <u:selector name=".rich-text-color-general">
- <u:style name="color" skin="generalTextColor" />
- </u:selector>
-
- <u:selector name=".rich-text-color-tab-disabled">
- <u:style name="color" skin="tabDisabledTextColor" />
- </u:selector>
-
- <u:selector name=".rich-text-color-select">
- <u:style name="color" skin="selectControlColor" />
- </u:selector>
-
- <u:selector name=".rich-text-color-link-general">
- <u:style name="color" skin="generalLinkColor" />
- </u:selector>
-
- <u:selector name=".rich-text-color-link-hover">
- <u:style name="color" skin="hoverLinkColor" />
- </u:selector>
-
- <u:selector name=".rich-text-color-link-visited">
- <u:style name="color" skin="visitedLinkColor" />
- </u:selector>
-
- /*font size styles*/
-
- <u:selector name=".rich-font-size-general">
- <u:style name="font-size" skin="generalSizeFont" />
- </u:selector>
-
- <u:selector name=".rich-font-size-header">
- <u:style name="font-size" skin="headerSizeFont" />
- </u:selector>
-
- /*font family styles*/
-
- <u:selector name=".rich-font-family-general">
- <u:style name="font-family" skin="generalFamilyFont" />
- </u:selector>
-
- <u:selector name=".rich-font-family-header">
- <u:style name="font-family" skin="headerFamilyFont" />
- </u:selector>
-
- /* text styles */
-
- <u:selector name=".rich-text-general">
- <u:style name="font-size" skin="generalSizeFont" />
- <u:style name="font-family" skin="generalFamilyFont" />
- <u:style name="color" skin="generalTextColor" />
- </u:selector>
-
- <u:selector name=".rich-text-header">
- <u:style name="font-size" skin="generalSizeFont" />
- <u:style name="font-family" skin="headerFamilyFont" />
- <u:style name="color" skin="headerTextColor" />
- </u:selector>
-
- <u:selector name=".rich-text-tab-disabled">
- <u:style name="font-size" skin="generalSizeFont" />
- <u:style name="font-family" skin="generalFamilyFont" />
- <u:style name="color" skin="tabDisabledTextColor" />
- </u:selector>
-
- <u:selector name=".rich-text-control-select">
- <u:style name="font-size" skin="generalSizeFont" />
- <u:style name="font-family" skin="headerFamilyFont" />
- <u:style name="color" skin="selectControlColor" />
- </u:selector>
-
- /*gradient styles*/
-
- <u:selector name=".rich-gradient-header-inverse">
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.gradientimages.HeaderInverseGradientImage"/>
- </u:style>
- <u:style name="background-repeat" value="repeat-x" />
- </u:selector>
-
- <u:selector name=".rich-gradient-header">
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.gradientimages.HeaderGradientImage"/>
- </u:style>
- <u:style name="background-repeat" value="repeat-x" />
- </u:selector>
-
- <u:selector name=".rich-gradient-tab">
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.gradientimages.TabGradientImage"/>
- </u:style>
- <u:style name="background-repeat" value="repeat-x" />
- </u:selector>
-
- <u:selector name=".rich-gradient-tab-inverse">
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.gradientimages.TabInverseGradientImage"/>
- </u:style>
- <u:style name="background-repeat" value="repeat-x" />
- </u:selector>
-
- <u:selector name=".rich-gradient-input">
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.gradientimages.InputGradientImage"/>
- </u:style>
- <u:style name="background-repeat" value="repeat-x" />
- </u:selector>
-
- <u:selector name=".rich-gradient-menu-inverse">
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.gradientimages.MenuInverseGradientImage"/>
- </u:style>
- <u:style name="background-repeat" value="repeat-x" />
- </u:selector>
-
- <u:selector name=".rich-gradient-menu">
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.gradientimages.MenuGradientImage"/>
- </u:style>
- <u:style name="background-repeat" value="repeat-x" />
- </u:selector>
-
- <u:selector name=".rich-gradient-button-inverse">
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.gradientimages.ButtonInverseGradientImage"/>
- </u:style>
- <u:style name="background-repeat" value="repeat-x" />
- </u:selector>
-
- <u:selector name=".rich-gradient-button">
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.gradientimages.ButtonGradientImage"/>
- </u:style>
- <u:style name="background-repeat" value="repeat-x" />
- </u:selector>
-
-</f:template>
\ No newline at end of file
Deleted: trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/extended.xcss
===================================================================
--- trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/extended.xcss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/extended.xcss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<f:template xmlns:f='http:/jsf.exadel.com/template'
- xmlns:u='http:/jsf.exadel.com/template/util'
- xmlns="http://www.w3.org/1999/xhtml">
-
- <u:selector name="input, select, textarea, button, keygen, isindex">
- <u:style name="border-width" value="1px" />
- <u:style name="border-color" skin="panelBorderColor" />
- <u:style name="color" skin="controlTextColor" />
- </u:selector>
-
- <f:verbatim>
- <![CDATA[
- *|button {
- border-width: 1px;
- background-repeat : repeat-x;
- background-position : top left;
- }
-
- button[type="button"], button[type="reset"], button[type="submit"], input[type="reset"], input[type="submit"], input[type="button"] {
- border-width: 1px;
- background-repeat : repeat-x;
- background-position : top left;
- }
-
- ]]>
- </f:verbatim>
-
- <u:selector name="*|button">
- <u:style name="border-color" skin="panelBorderColor" />
- <u:style name="font-size" skin="generalSizeFont" />
- <u:style name="font-family" skin="generalFamilyFont" />
- <u:style name="color" skin="headerTextColor" />
- <u:style name="background-color" skin="headerBackgroundColor" />
-
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.ButtonBackgroundImage"/>
- </u:style>
- </u:selector>
-
- <u:selector name="button[type="button"], button[type="reset"], button[type="submit"],
- input[type="reset"], input[type="submit"], input[type="button"]">
- <u:style name="border-color" skin="panelBorderColor" />
- <u:style name="font-size" skin="generalSizeFont" />
- <u:style name="font-family" skin="generalFamilyFont" />
- <u:style name="color" skin="headerTextColor" />
- <u:style name="background-color" skin="headerBackgroundColor" />
-
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.ButtonBackgroundImage"/>
- </u:style>
- </u:selector>
-
- <u:selector name="*|button[disabled]">
- <u:style name="color" skin="tabDisabledTextColor" />
- <u:style name="border-color" skin="tableFooterBackgroundColor" />
- <u:style name="background-color" skin="tableFooterBackgroundColor" />
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.ButtonDisabledBackgroundImage"/>
- </u:style>
- </u:selector>
-
- <u:selector name="button[type="button"][disabled], button[type="reset"][disabled], button[type="submit"][disabled],
- input[type="reset"][disabled], input[type="submit"][disabled], input[type="button"][disabled]">
- <u:style name="color" skin="tabDisabledTextColor" />
- <u:style name="border-color" skin="tableFooterBackgroundColor" />
- <u:style name="background-color" skin="tableFooterBackgroundColor" />
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.ButtonDisabledBackgroundImage"/>
- </u:style>
- </u:selector>
-
- <f:verbatim>
- <![CDATA[
- *|textarea {
- border-width: 1px;
- border-style : inset;
- background-repeat : no-repeat;
- background-position : 1px 1px;
- }
-
- textarea[type="textarea"], input[type="text"], input[type="password"], select {
- border-width: 1px;
- border-style : inset;
- background-repeat : no-repeat;
- background-position : 1px 1px;
- }
- ]]>
- </f:verbatim>
-
- <u:selector name="*|textarea">
- <u:style name="border-color" skin="panelBorderColor" />
- <u:style name="font-size" skin="generalSizeFont" />
- <u:style name="font-family" skin="generalFamilyFont" />
- <u:style name="color" skin="controlTextColor" />
- <u:style name="background-color" skin="controlBackgroundColor" />
-
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.InputBackgroundImage"/>
- </u:style>
- </u:selector>
-
- <u:selector name="textarea[type="textarea"], input[type="text"], input[type="password"], select">
- <u:style name="border-color" skin="panelBorderColor" />
- <u:style name="font-size" skin="generalSizeFont" />
- <u:style name="font-family" skin="generalFamilyFont" />
- <u:style name="color" skin="controlTextColor" />
- <u:style name="background-color" skin="controlBackgroundColor" />
-
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.InputBackgroundImage"/>
- </u:style>
- </u:selector>
-
- <u:selector name="*|textarea[disabled], *|select[disabled]">
- <u:style name="color" skin="panelBorderColor" />
- </u:selector>
-
- <u:selector name="textarea[type="textarea"][disabled], input[type="text"][disabled], input[type="password"][disabled], select[disabled]">
- <u:style name="color" skin="panelBorderColor" />
- </u:selector>
-
-</f:template>
\ No newline at end of file
Deleted: trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/extended_both.xcss
===================================================================
--- trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/extended_both.xcss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/extended_both.xcss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<f:template xmlns:f='http:/jsf.exadel.com/template'
- xmlns:u='http:/jsf.exadel.com/template/util'
- xmlns="http://www.w3.org/1999/xhtml">
-
- <f:importResource src="org/richfaces/renderkit/html/css/extended.xcss" />
- <f:importResource src="org/richfaces/renderkit/html/css/extended_classes.xcss" />
-
-</f:template>
\ No newline at end of file
Deleted: trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/extended_classes.xcss
===================================================================
--- trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/extended_classes.xcss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/resources/org/richfaces/renderkit/html/css/extended_classes.xcss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,159 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<f:template xmlns:f='http:/jsf.exadel.com/template'
- xmlns:u='http:/jsf.exadel.com/template/util'
- xmlns="http://www.w3.org/1999/xhtml">
-
- <u:selector name=".rich-container input, .rich-input,
- .rich-container select, .rich-select,
- .rich-container textarea, .rich-textarea,
- .rich-container button, .rich-button,
- .rich-container keygen, .rich-keygen,
- .rich-container isindex, .rich-isindex">
- <u:style name="border-width" value="1px" />
- <u:style name="border-color" skin="panelBorderColor" />
- <u:style name="color" skin="controlTextColor" />
- </u:selector>
-
- <f:verbatim>
- <![CDATA[
- .rich-container *|button, .rich-button {
- border-width: 1px;
- background-repeat : repeat-x;
- background-position : top left;
- }
-
- .rich-button,
- .rich-container button[type="button"], .rich-button-button,
- .rich-container button[type="reset"], .rich-button-reset,
- .rich-container button[type="submit"], .rich-button-submit,
- .rich-container input[type="reset"], .rich-input-reset,
- .rich-container input[type="submit"], .rich-input-submit,
- .rich-container input[type="button"], .rich-input-button {
- border-width: 1px;
- background-repeat : repeat-x;
- background-position : top left;
- }
-
- ]]>
- </f:verbatim>
-
- <u:selector name=".rich-container *|button, .rich-button">
- <u:style name="border-color" skin="panelBorderColor" />
- <u:style name="font-size" skin="generalSizeFont" />
- <u:style name="font-family" skin="generalFamilyFont" />
- <u:style name="color" skin="headerTextColor" />
- <u:style name="background-color" skin="headerBackgroundColor" />
-
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.ButtonBackgroundImage"/>
- </u:style>
- </u:selector>
-
- <u:selector name="
- .rich-button,
- .rich-container button[type="button"], .rich-button-button,
- .rich-container button[type="reset"], .rich-button-reset,
- .rich-container button[type="submit"], .rich-button-submit,
- .rich-container input[type="reset"], .rich-input-reset,
- .rich-container input[type="submit"], .rich-input-submit,
- .rich-container input[type="button"], .rich-input-button
- ">
- <u:style name="border-color" skin="panelBorderColor" />
- <u:style name="font-size" skin="generalSizeFont" />
- <u:style name="font-family" skin="generalFamilyFont" />
- <u:style name="color" skin="headerTextColor" />
- <u:style name="background-color" skin="headerBackgroundColor" />
-
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.ButtonBackgroundImage"/>
- </u:style>
- </u:selector>
-
-
- <u:selector name=".rich-container *|button[disabled]">
- <u:style name="color" skin="tabDisabledTextColor" />
- <u:style name="background-color" skin="tableFooterBackgroundColor" />
- <u:style name="border-color" skin="tableFooterBackgroundColor" />
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.ButtonDisabledBackgroundImage"/>
- </u:style>
- </u:selector>
-
- <u:selector name=".rich-button-disabled,
- .rich-container button[type="button"][disabled], .rich-button-button-disabled,
- .rich-container button[type="reset"][disabled], .rich-button-reset-disabled,
- .rich-container button[type="submit"][disabled], .rich-button-submit-disabled,
- .rich-container input[type="reset"][disabled], .rich-input-reset-disabled,
- .rich-container input[type="submit"][disabled], .rich-input-submit-disabled,
- .rich-container input[type="button"][disabled], .rich-input-button-disabled">
- <u:style name="color" skin="tabDisabledTextColor" />
- <u:style name="background-color" skin="tableFooterBackgroundColor" />
- <u:style name="border-color" skin="tableFooterBackgroundColor" />
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.ButtonDisabledBackgroundImage"/>
- </u:style>
- </u:selector>
-
-
- <f:verbatim>
- <![CDATA[
- .rich-container *|textarea {
- border-width: 1px;
- border-style : inset;
- background-repeat : no-repeat;
- background-position : 1px 1px;
- }
-
- .rich-textarea,
- .rich-container textarea[type="textarea"], .rich-textarea-textarea,
- .rich-container input[type="text"], .rich-input-text,
- .rich-container input[type="password"], .rich-input-password,
- .rich-container select, .rich-select {
- border-width: 1px;
- border-style : inset;
- background-repeat : no-repeat;
- background-position : 1px 1px;
- }
- ]]>
- </f:verbatim>
-
- <u:selector name=".rich-container *|textarea">
- <u:style name="border-color" skin="panelBorderColor" />
- <u:style name="font-size" skin="generalSizeFont" />
- <u:style name="font-family" skin="generalFamilyFont" />
- <u:style name="color" skin="controlTextColor" />
- <u:style name="background-color" skin="controlBackgroundColor" />
-
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.InputBackgroundImage"/>
- </u:style>
- </u:selector>
-
- <u:selector name=".rich-textarea,
- .rich-container textarea[type="textarea"], .rich-textarea-textarea,
- .rich-container input[type="text"], .rich-input-text,
- .rich-container input[type="password"], .rich-input-password,
- .rich-container select, .rich-select">
- <u:style name="border-color" skin="panelBorderColor" />
- <u:style name="font-size" skin="generalSizeFont" />
- <u:style name="font-family" skin="generalFamilyFont" />
- <u:style name="color" skin="controlTextColor" />
- <u:style name="background-color" skin="controlBackgroundColor" />
-
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.images.InputBackgroundImage"/>
- </u:style>
- </u:selector>
-
- <u:selector name=".rich-container *|textarea[disabled], .rich-container *|select[disabled]">
- <u:style name="color" skin="panelBorderColor" />
- </u:selector>
-
- <u:selector name=".rich-textarea-disabled, .rich-container textarea[type="textarea"][disabled], .rich-textarea-textarea-disabled,
- .rich-container input[type="text"][disabled], .rich-input-text-disabled,
- .rich-container input[type="password"][disabled], .rich-input-password-disabled,
- .rich-container select[disabled], .rich-select-disabled">
- <u:style name="color" skin="panelBorderColor" />
- </u:selector>
-</f:template>
\ No newline at end of file
Deleted: trunk/ui/core/ui/src/main/resources/org/richfaces/skin-bas-both.xcss
===================================================================
--- trunk/ui/core/ui/src/main/resources/org/richfaces/skin-bas-both.xcss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/resources/org/richfaces/skin-bas-both.xcss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<f:template xmlns:f='http:/jsf.exadel.com/template'
- xmlns:u='http:/jsf.exadel.com/template/util'
- xmlns="http://www.w3.org/1999/xhtml">
-
- <f:importResource src="org/richfaces/renderkit/html/css/basic.xcss" />
- <f:importResource src="org/richfaces/renderkit/html/css/basic_classes.xcss" />
-
- <f:importResource src="org/richfaces/skin.xcss" />
-</f:template>
\ No newline at end of file
Deleted: trunk/ui/core/ui/src/main/resources/org/richfaces/skin-bas-classes.xcss
===================================================================
--- trunk/ui/core/ui/src/main/resources/org/richfaces/skin-bas-classes.xcss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/resources/org/richfaces/skin-bas-classes.xcss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<f:template xmlns:f='http:/jsf.exadel.com/template'
- xmlns:u='http:/jsf.exadel.com/template/util'
- xmlns="http://www.w3.org/1999/xhtml">
-
- <f:importResource src="org/richfaces/renderkit/html/css/basic_classes.xcss" />
-
- <f:importResource src="org/richfaces/skin.xcss" />
-</f:template>
\ No newline at end of file
Deleted: trunk/ui/core/ui/src/main/resources/org/richfaces/skin-bas-styles.xcss
===================================================================
--- trunk/ui/core/ui/src/main/resources/org/richfaces/skin-bas-styles.xcss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/resources/org/richfaces/skin-bas-styles.xcss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<f:template xmlns:f='http:/jsf.exadel.com/template'
- xmlns:u='http:/jsf.exadel.com/template/util'
- xmlns="http://www.w3.org/1999/xhtml">
-
- <f:importResource src="org/richfaces/renderkit/html/css/basic.xcss" />
-
- <f:importResource src="org/richfaces/skin.xcss" />
-</f:template>
\ No newline at end of file
Deleted: trunk/ui/core/ui/src/main/resources/org/richfaces/skin-ext-both.xcss
===================================================================
--- trunk/ui/core/ui/src/main/resources/org/richfaces/skin-ext-both.xcss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/resources/org/richfaces/skin-ext-both.xcss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<f:template xmlns:f='http:/jsf.exadel.com/template'
- xmlns:u='http:/jsf.exadel.com/template/util'
- xmlns="http://www.w3.org/1999/xhtml">
-
- <f:importResource src="org/richfaces/renderkit/html/css/basic.xcss" />
- <f:importResource src="org/richfaces/renderkit/html/css/basic_classes.xcss" />
-
- <f:importResource src="org/richfaces/renderkit/html/css/extended.xcss" />
- <f:importResource src="org/richfaces/renderkit/html/css/extended_classes.xcss" />
-
- <f:importResource src="org/richfaces/skin.xcss" />
-</f:template>
\ No newline at end of file
Deleted: trunk/ui/core/ui/src/main/resources/org/richfaces/skin-ext-classes.xcss
===================================================================
--- trunk/ui/core/ui/src/main/resources/org/richfaces/skin-ext-classes.xcss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/resources/org/richfaces/skin-ext-classes.xcss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<f:template xmlns:f='http:/jsf.exadel.com/template'
- xmlns:u='http:/jsf.exadel.com/template/util'
- xmlns="http://www.w3.org/1999/xhtml">
-
- <f:importResource src="org/richfaces/renderkit/html/css/basic_classes.xcss" />
- <f:importResource src="org/richfaces/renderkit/html/css/extended_classes.xcss" />
-
- <f:importResource src="org/richfaces/skin.xcss" />
-</f:template>
\ No newline at end of file
Deleted: trunk/ui/core/ui/src/main/resources/org/richfaces/skin-ext-styles.xcss
===================================================================
--- trunk/ui/core/ui/src/main/resources/org/richfaces/skin-ext-styles.xcss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/core/ui/src/main/resources/org/richfaces/skin-ext-styles.xcss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<f:template xmlns:f='http:/jsf.exadel.com/template'
- xmlns:u='http:/jsf.exadel.com/template/util'
- xmlns="http://www.w3.org/1999/xhtml">
-
- <f:importResource src="org/richfaces/renderkit/html/css/basic.xcss" />
- <f:importResource src="org/richfaces/renderkit/html/css/extended.xcss" />
-
- <f:importResource src="org/richfaces/skin.xcss" />
-</f:template>
\ No newline at end of file
Modified: trunk/ui/dnd/api/pom.xml
===================================================================
--- trunk/ui/dnd/api/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/dnd/api/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -64,9 +64,9 @@
</dependencies>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/output/panels/ui</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/output/panels/ui</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/ui/output...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/ui/output/pa...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/ui/output/panels/ui</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/dnd/pom.xml
===================================================================
--- trunk/ui/dnd/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/dnd/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -41,8 +41,8 @@
</modules>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/output</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/output</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/ui/output</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/ui/output</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/ui/output</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/dnd/ui/pom.xml
===================================================================
--- trunk/ui/dnd/ui/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/dnd/ui/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -77,9 +77,9 @@
</dependencies>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/output/panels/ui</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/output/panels/ui</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/ui/output...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/ui/output/pa...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/ui/output/panels/ui</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/dnd/ui/src/main/java/org/richfaces/component/AbstractDropTarget.java
===================================================================
--- trunk/ui/dnd/ui/src/main/java/org/richfaces/component/AbstractDropTarget.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/dnd/ui/src/main/java/org/richfaces/component/AbstractDropTarget.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -42,6 +42,7 @@
family = AbstractDropTarget.COMPONENT_FAMILY,
generate = "org.richfaces.component.UIDropTarget",
renderer = @JsfRenderer(type = "org.richfaces.DropTargetRenderer"),
+ attributes = {"dropListener-props.xml"},
tag = @Tag(name="dropTarget" ,handler="org.richfaces.view.facelets.DropHandler", type = TagType.Facelets)
)
public abstract class AbstractDropTarget extends UIComponentBase {
@@ -64,6 +65,9 @@
public abstract Object getExecute();
@Attribute
+ public abstract Object getRender();
+
+ @Attribute
public abstract Object getAcceptedTypes();
@Attribute
Added: trunk/ui/dnd/ui/src/main/resources/META-INF/cdk/attributes/dropListener-props.xml
===================================================================
--- trunk/ui/dnd/ui/src/main/resources/META-INF/cdk/attributes/dropListener-props.xml (rev 0)
+++ trunk/ui/dnd/ui/src/main/resources/META-INF/cdk/attributes/dropListener-props.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- JBoss, Home of Professional Open Source Copyright ${year}, Red Hat,
+ Inc. and individual contributors 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. -->
+<cdk:properties xmlns:cdk="http://jboss.org/schema/richfaces/cdk/extensions" xmlns="http://java.sun.com/xml/ns/javaee">
+ <property>
+ <property-name>dropListener</property-name>
+ <property-class>javax.el.MethodExpression</property-class>
+ </property>
+</cdk:properties>
Modified: trunk/ui/input/api/src/main/java/org/richfaces/component/InplaceComponent.java
===================================================================
--- trunk/ui/input/api/src/main/java/org/richfaces/component/InplaceComponent.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/api/src/main/java/org/richfaces/component/InplaceComponent.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -40,19 +40,13 @@
public boolean isSaveOnBlur();
public InplaceState getState();
-
- public String getReadyStateClass();
- public String getEditStateClass();
+ public String getActiveClass();
- public String getChangedStateClass();
+ public String getChangedClass();
- public String getDisabledStateClass();
+ public String getDisabledClass();
- public String getEditClass();
-
- public String getNoneClass();
-
public abstract int getTabindex();
}
Modified: trunk/ui/input/api/src/main/java/org/richfaces/event/FileUploadEvent.java
===================================================================
--- trunk/ui/input/api/src/main/java/org/richfaces/event/FileUploadEvent.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/api/src/main/java/org/richfaces/event/FileUploadEvent.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -46,7 +46,7 @@
}
public void processListener(FacesListener listener) {
- ((FileUploadListener) listener).processUpload(this);
+ ((FileUploadListener) listener).processFileUpload(this);
}
public UploadedFile getUploadedFile() {
Modified: trunk/ui/input/api/src/main/java/org/richfaces/event/FileUploadListener.java
===================================================================
--- trunk/ui/input/api/src/main/java/org/richfaces/event/FileUploadListener.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/api/src/main/java/org/richfaces/event/FileUploadListener.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -25,5 +25,5 @@
public interface FileUploadListener extends FacesListener {
- public void processUpload(FileUploadEvent event);
+ public void processFileUpload(FileUploadEvent event);
}
Modified: trunk/ui/input/pom.xml
===================================================================
--- trunk/ui/input/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -41,8 +41,8 @@
</modules>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/input</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/input</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/ui/input</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/ui/input</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/ui/input</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/input/ui/src/main/config/faces-config.xml
===================================================================
--- trunk/ui/input/ui/src/main/config/faces-config.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/config/faces-config.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -19,7 +19,14 @@
<component>
<component-type>org.richfaces.InputNumberSlider</component-type>
<component-class>org.richfaces.component.html.HtmlInputNumberSlider</component-class>
- <xi:include
+ <property>
+ <property-name>readonly</property-name>
+ <property-class>boolean</property-class>
+ <property-extension>
+ <cdk:hidden>true</cdk:hidden>
+ </property-extension>
+ </property>
+ <xi:include
xpointer="xmlns(cdk=http://jboss.org/schema/richfaces/cdk/extensions)xpointer(/cdk:..."
href="urn:attributes:javax.faces.component.UIInput.xml" />
<xi:include
@@ -230,6 +237,13 @@
<component>
<component-type>org.richfaces.InputNumberSpinner</component-type>
<component-class>org.richfaces.component.html.HtmlInputNumberSpinner</component-class>
+ <property>
+ <property-name>readonly</property-name>
+ <property-class>boolean</property-class>
+ <property-extension>
+ <cdk:hidden>true</cdk:hidden>
+ </property-extension>
+ </property>
<xi:include
xpointer="xmlns(cdk=http://jboss.org/schema/richfaces/cdk/extensions)xpointer(/cdk:..."
href="urn:attributes:javax.faces.component.UIInput.xml" />
@@ -307,6 +321,14 @@
</property-extension>
</property>
<property>
+ <property-name>ondownclick</property-name>
+ <property-class>java.lang.String</property-class>
+ <property-extension>
+ <cdk:generate>true</cdk:generate>
+ <cdk:event-name>downclick</cdk:event-name>
+ </property-extension>
+ </property>
+ <property>
<property-name>oninputclick</property-name>
<property-class>java.lang.String</property-class>
<property-extension>
@@ -402,7 +424,7 @@
<cdk:event-name>upclick</cdk:event-name>
</property-extension>
</property>
- <property>
+ <property>
<property-name>step</property-name>
<property-class>java.lang.String</property-class>
<default-value>"1"</default-value>
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractAutocomplete.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractAutocomplete.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractAutocomplete.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -21,7 +21,10 @@
*/
package org.richfaces.component;
-import java.io.IOException;
+import org.richfaces.cdk.annotations.*;
+import org.richfaces.context.ExtendedVisitContext;
+import org.richfaces.context.ExtendedVisitContextMode;
+import org.richfaces.renderkit.MetaComponentRenderer;
import javax.el.MethodExpression;
import javax.faces.component.UIComponent;
@@ -30,19 +33,8 @@
import javax.faces.component.visit.VisitContext;
import javax.faces.component.visit.VisitResult;
import javax.faces.context.FacesContext;
-import javax.faces.convert.Converter;
+import java.io.IOException;
-import org.richfaces.cdk.annotations.Attribute;
-import org.richfaces.cdk.annotations.EventName;
-import org.richfaces.cdk.annotations.JsfComponent;
-import org.richfaces.cdk.annotations.JsfRenderer;
-import org.richfaces.cdk.annotations.Signature;
-import org.richfaces.cdk.annotations.Tag;
-import org.richfaces.cdk.annotations.TagType;
-import org.richfaces.context.ExtendedVisitContext;
-import org.richfaces.context.ExtendedVisitContextMode;
-import org.richfaces.renderkit.MetaComponentRenderer;
-
/**
* @author Nick Belaevski
*
@@ -65,8 +57,6 @@
public abstract void setAutocompleteMethod(MethodExpression expression);
- public abstract void setItemConverter(Converter converter);
-
@Attribute(literal = true)
public abstract String getVar();
@@ -85,6 +75,9 @@
@Attribute()
public abstract String getPopupClass();
+
+ @Attribute()
+ public abstract String getInputClass();
@Attribute
public abstract AutocompleteMode getMode();
@@ -95,9 +88,6 @@
@Attribute
public abstract String getTokens();
- @Attribute
- public abstract Converter getItemConverter();
-
@Attribute(defaultValue = "true")
public abstract boolean isAutofill();
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractCalendar.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractCalendar.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractCalendar.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -127,9 +127,6 @@
@Attribute(defaultValue = "true")
public abstract boolean isPopup();
- @Attribute(defaultValue = "true")
- public abstract boolean isHidePopupOnScroll();
-
@Attribute
public abstract boolean isDisabled();
@@ -173,6 +170,15 @@
public abstract String getStyle();
@Attribute
+ public abstract String getStyleClass();
+
+ @Attribute
+ public abstract String getPopupStyle();
+
+ @Attribute
+ public abstract String getPopupClass();
+
+ @Attribute
public abstract Object getMonthLabels();
@Attribute
@@ -275,7 +281,7 @@
@Attribute(events = @EventName("inputblur"))
public abstract String getOninputblur();
- @Attribute(events = @EventName("change"))
+ @Attribute(events = @EventName(value="change", defaultEvent=true))
public abstract String getOnchange();
@Attribute(events = @EventName("dateselect"))
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractFileUpload.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractFileUpload.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractFileUpload.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -44,12 +44,16 @@
* @author Konstantin Mishin
*
*/
-@JsfComponent(tag = @Tag(handler = "org.richfaces.view.facelets.FileUploadHandler"),
+@JsfComponent(tag = @Tag(generate = false, handler = "org.richfaces.view.facelets.FileUploadHandler"),
renderer = @JsfRenderer(type = "org.richfaces.FileUploadRenderer"),
- attributes = {"events-props.xml", "core-props.xml", "ajax-props.xml", "i18n-props.xml"})
+ attributes = {"events-props.xml", "core-props.xml", "ajax-props.xml", "i18n-props.xml", "fileUploadListener-props.xml"})
@ListenerFor(systemEventClass = PostAddToViewEvent.class)
public abstract class AbstractFileUpload extends UIComponentBase {
+ public static final String COMPONENT_TYPE = "org.richfaces.FileUpload";
+
+ public static final String COMPONENT_FAMILY = "org.richfaces.FileUpload";
+
@Attribute
public abstract String getAcceptedTypes();
@@ -65,6 +69,30 @@
@Attribute(events = @EventName("uploadcomplete"))
public abstract String getOnuploadcomplete();
+ @Attribute
+ public abstract String getAddLabel();
+
+ @Attribute
+ public abstract String getUploadLabel();
+
+ @Attribute
+ public abstract String getClearAllLabel();
+
+ @Attribute
+ public abstract String getDoneLabel();
+
+ @Attribute
+ public abstract String getSizeExceededLabel();
+
+ @Attribute
+ public abstract String getServerErrorLabel();
+
+ @Attribute
+ public abstract String getClearLabel();
+
+ @Attribute
+ public abstract String getDeleteLabel();
+
@Override
public void processEvent(ComponentSystemEvent event) throws AbortProcessingException {
super.processEvent(event);
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractInplaceInput.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractInplaceInput.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractInplaceInput.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -70,25 +70,16 @@
@Attribute
public abstract int getTabindex();
-
- @Attribute
- public abstract String getReadyStateClass();
@Attribute
- public abstract String getEditStateClass();
+ public abstract String getActiveClass();
@Attribute
- public abstract String getChangedStateClass();
+ public abstract String getChangedClass();
@Attribute
- public abstract String getDisabledStateClass();
-
- @Attribute
- public abstract String getEditClass();
-
- @Attribute
- public abstract String getNoneClass();
-
+ public abstract String getDisabledClass();
+
@Attribute(events=@EventName("click"))
public abstract String getOnclick();
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractInplaceSelect.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractInplaceSelect.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractInplaceSelect.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -85,29 +85,20 @@
public abstract String getListClass();
@Attribute
- public abstract String getChangedStateClass();
+ public abstract String getChangedClass();
@Attribute
public abstract String getDefaultLabel();
@Attribute
- public abstract String getDisabledStateClass();
+ public abstract String getDisabledClass();
@Attribute
- public abstract String getEditStateClass();
-
- @Attribute
- public abstract String getReadyStateClass();
-
- @Attribute
- public abstract String getNoneClass();
-
+ public abstract String getActiveClass();
+
@Attribute()
public abstract String getEditEvent();
-
- @Attribute
- public abstract String getEditClass();
-
+
@Attribute(events=@EventName("inputclick"))
public abstract String getOninputclick();
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractSelect.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractSelect.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractSelect.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -10,8 +10,8 @@
*
*/
@JsfComponent(
- type = AbstractSelectComponent.COMPONENT_TYPE,
- family = AbstractSelectComponent.COMPONENT_FAMILY,
+ type = AbstractSelect.COMPONENT_TYPE,
+ family = AbstractSelect.COMPONENT_FAMILY,
generate = "org.richfaces.component.UISelect",
renderer = @JsfRenderer(type = "org.richfaces.SelectRenderer"),
tag = @Tag(name="select")
@@ -42,15 +42,20 @@
public abstract String getMaxListHeight();
@Attribute(hidden = true)
- public abstract String getReadyStateClass();
+ public abstract String getActiveClass();
@Attribute(hidden = true)
- public abstract String getEditStateClass();
+ public abstract String getChangedClass();
@Attribute(hidden = true)
- public abstract String getChangedStateClass();
+ public abstract String getDisabledClass();
- @Attribute(hidden = true)
- public abstract String getDisabledStateClass();
+ @Attribute
+ public abstract String getStyle();
+ @Attribute
+ public abstract String getStyleClass();
+
+ @Attribute
+ public abstract String getTitle();
}
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractSelectComponent.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractSelectComponent.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractSelectComponent.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -48,18 +48,15 @@
@Attribute
public abstract String getSelectItemClass();
-
- @Attribute
- public abstract String getReadyStateClass();
@Attribute
- public abstract String getEditStateClass();
+ public abstract String getActiveClass();
@Attribute
- public abstract String getChangedStateClass();
+ public abstract String getChangedClass();
@Attribute
- public abstract String getDisabledStateClass();
+ public abstract String getDisabledClass();
@Attribute
public abstract String getListClass();
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -21,34 +21,6 @@
*/
package org.richfaces.renderkit;
-import java.io.IOException;
-import java.sql.ResultSet;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import javax.el.ELException;
-import javax.el.ExpressionFactory;
-import javax.el.MethodExpression;
-import javax.el.MethodNotFoundException;
-import javax.el.ValueExpression;
-import javax.faces.application.ResourceDependencies;
-import javax.faces.application.ResourceDependency;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.context.PartialResponseWriter;
-import javax.faces.context.PartialViewContext;
-import javax.faces.context.ResponseWriter;
-import javax.faces.convert.Converter;
-import javax.faces.convert.ConverterException;
-import javax.faces.model.ArrayDataModel;
-import javax.faces.model.DataModel;
-import javax.faces.model.ListDataModel;
-import javax.faces.model.ResultDataModel;
-import javax.faces.model.ResultSetDataModel;
-import javax.servlet.jsp.jstl.sql.Result;
-
import org.ajax4jsf.javascript.JSObject;
import org.ajax4jsf.javascript.JSReference;
import org.richfaces.application.ServiceTracker;
@@ -62,6 +34,26 @@
import org.richfaces.log.Logger;
import org.richfaces.log.RichfacesLogger;
+import javax.el.*;
+import javax.faces.application.ResourceDependencies;
+import javax.faces.application.ResourceDependency;
+import javax.faces.component.UIComponent;
+import javax.faces.component.ValueHolder;
+import javax.faces.context.FacesContext;
+import javax.faces.context.PartialResponseWriter;
+import javax.faces.context.PartialViewContext;
+import javax.faces.context.ResponseWriter;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+import javax.faces.model.*;
+import javax.servlet.jsp.jstl.sql.Result;
+import java.io.IOException;
+import java.sql.ResultSet;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
/**
* @author Nick Belaevski
*/
@@ -159,42 +151,33 @@
}
}
- protected void encodeItems(FacesContext facesContext, UIComponent component, List<Object> fetchValues)
- throws IOException {
+ protected void encodeItems(FacesContext facesContext, UIComponent component, List<Object> fetchValues) throws IOException {
AbstractAutocomplete comboBox = (AbstractAutocomplete) component;
AutocompleteEncodeStrategy strategy = getStrategy(component);
strategy.encodeItemsContainerBegin(facesContext, component);
- boolean hasEncodedElements = false;
-
Object savedVar = saveVar(facesContext, comboBox.getVar());
- DataModel<Object> model = getItems(facesContext, comboBox);
- for (Iterator<Object> items = model.iterator(); items.hasNext();) {
- hasEncodedElements = true;
+ Iterator<Object> itemsIterator = getItems(facesContext, comboBox).iterator();
- Object nextItem = items.next();
- setVar(facesContext, comboBox.getVar(), nextItem);
+ if (!itemsIterator.hasNext()) {
+ strategy.encodeFakeItem(facesContext, component);
+ } else {
+ while (itemsIterator.hasNext()) {
+ Object item = itemsIterator.next();
- this.encodeItem(facesContext, comboBox, nextItem, strategy);
- if (comboBox.getFetchValue() != null) {
- fetchValues.add(comboBox.getFetchValue().toString());
- } else {
- // TODO use converter
- if (comboBox.getItemConverter() != null) {
- fetchValues.add(comboBox.getItemConverter().getAsString(facesContext, component, nextItem));
- } else {
- fetchValues.add(nextItem.toString());
- }
+ setVar(facesContext, comboBox.getVar(), item);
+ this.encodeItem(facesContext, comboBox, item, strategy);
+ if (comboBox.getFetchValue() != null) {
+ fetchValues.add(comboBox.getFetchValue().toString());
+ } else if(item != null) {
+ fetchValues.add(item.toString());
+ }
}
}
setVar(facesContext, comboBox.getVar(), savedVar);
- if (!hasEncodedElements) {
- strategy.encodeFakeItem(facesContext, component);
- }
-
strategy.encodeItemsContainerEnd(facesContext, component);
}
@@ -226,26 +209,17 @@
public void encodeItem(FacesContext facesContext, AbstractAutocomplete comboBox, Object item,
AutocompleteEncodeStrategy strategy) throws IOException {
- ResponseWriter writer = facesContext.getResponseWriter();
+ ResponseWriter writer = facesContext.getResponseWriter();
if (comboBox.getChildCount() > 0) {
strategy.encodeItem(facesContext, comboBox);
} else {
if (item != null) {
- strategy.encodeItemBegin(facesContext, comboBox);
- writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-au-itm rf-au-opt rf-au-fnt rf-au-inp", null);
- // TODO nick - use converter
- String value = null;
- if (comboBox.getItemConverter() != null) {
- value = comboBox.getItemConverter().getAsString(facesContext, comboBox, item);
- }
- if (value != null) {
- writer.writeText(value, null);
- }
+ strategy.encodeItemBegin(facesContext, comboBox);
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-au-itm rf-au-opt rf-au-fnt rf-au-inp", null);
writer.writeText(item, null);
strategy.encodeItemEnd(facesContext, comboBox);
}
}
-
}
private AutocompleteEncodeStrategy getStrategy(UIComponent component) {
@@ -271,7 +245,7 @@
return;
}
Map<String, String> requestParameters = context.getExternalContext().getRequestParameterMap();
- String value = requestParameters.get(component.getClientId(context) + "Value");
+ String value = requestParameters.get(component.getClientId(context) + "Input");
if (value != null) {
autocomplete.setSubmittedValue(value);
}
@@ -320,17 +294,18 @@
}
return value;
}
-
+
private Converter getConverterForValue(FacesContext context, UIComponent component) {
- Converter converter = null;
- ValueExpression expression = component.getValueExpression("value");
+ Converter converter = ((ValueHolder) component).getConverter();
+ if (converter == null) {
+ ValueExpression expression = component.getValueExpression("value");
- if (expression != null) {
- Class<?> containerClass = ServiceTracker.getService(context, GenericsIntrospectionService.class).getContainerClass(context, expression);
+ if (expression != null) {
+ Class<?> containerClass = ServiceTracker.getService(context, GenericsIntrospectionService.class).getContainerClass(context, expression);
- converter = InputUtils.getConverterForType(context, containerClass);
+ converter = InputUtils.getConverterForType(context, containerClass);
+ }
}
-
return converter;
}
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/CalendarRendererBase.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/CalendarRendererBase.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/CalendarRendererBase.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -516,14 +516,14 @@
return true;
}
- public String getStyleWithZindex(FacesContext facesContext, UIComponent component) {
+ public String getPopupStyle(FacesContext facesContext, UIComponent component) {
AbstractCalendar calendar = (AbstractCalendar) component;
int zindex = calendar.getZindex();
if (zindex < 0) {
zindex = 3;
}
- return HtmlUtil.concatStyles("z-index: " + zindex, calendar.getStyle());
+ return HtmlUtil.concatStyles("z-index: " + zindex, calendar.getPopupStyle());
}
public Locale getAsLocale(FacesContext facesContext, UIComponent component) {
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceInputRendererBase.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceInputRendererBase.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceInputRendererBase.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -21,20 +21,19 @@
*/
package org.richfaces.renderkit;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.Map;
+import org.richfaces.component.AbstractInplaceInput;
+import org.richfaces.component.InplaceComponent;
+import org.richfaces.component.InplaceState;
+import org.richfaces.renderkit.util.HtmlDimensions;
import javax.faces.application.ResourceDependencies;
import javax.faces.application.ResourceDependency;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Map;
-import org.richfaces.component.AbstractInplaceInput;
-import org.richfaces.component.InplaceComponent;
-import org.richfaces.component.InplaceState;
-import org.richfaces.renderkit.util.HtmlDimensions;
-
/**
* @author Anton Belevich
*
@@ -51,38 +50,6 @@
@ResourceDependency(library = "org.richfaces", name = "inplaceInput.ecss") })
public class InplaceInputRendererBase extends InputRendererBase {
- public static final String OPTIONS_EDIT_EVENT = "editEvent";
-
- public static final String OPTIONS_STATE = "state";
-
- public static final String OPTIONS_EDIT_CONTAINER = "editContainer";
-
- public static final String OPTIONS_INPUT = "input";
-
- public static final String OPTIONS_FOCUS = "focusElement";
-
- public static final String OPTIONS_BUTTON_OK = "okbtn";
-
- public static final String OPTIONS_LABEL = "label";
-
- public static final String OPTIONS_DEFAULT_LABEL = "defaultLabel";
-
- public static final String OPTIONS_BUTTON_CANCEL = "cancelbtn";
-
- public static final String OPTIONS_SHOWCONTROLS = "showControls";
-
- public static final String OPTIONS_NONE_CSS = "noneCss";
-
- public static final String OPTIONS_CHANGED_CSS = "changedCss";
-
- public static final String OPTIONS_EDIT_CSS = "editCss";
-
- public static final String OPTIONS_INITIAL_VALUE = "initialValue";
-
- public static final String OPTIONS_SAVE_ON_BLUR = "saveOnBlur";
-
-
-
//TODO: anton - move to RenderUtils (we use the same in the calendar base renderer) ?
protected static final Map<String, ComponentAttribute> INPLACE_INPUT_HANDLER_ATTRIBUTES = Collections
@@ -163,44 +130,50 @@
break;
}
} else {
- style = getDisableStateCss(inplaceComponent);
+ style = concatClasses(style, getDisableStateCss(inplaceComponent));
}
return style;
}
+
+ public String getContainerStyleClasses(UIComponent component) {
+ InplaceComponent inplaceComponent = (InplaceComponent) component;
+ String style = "rf-ii";
+ if (inplaceComponent.isDisabled()) {
+ style = concatClasses(style, getDisableStateCss(inplaceComponent));
+ }
+ return style;
+ }
public String getEditStyleClass(UIComponent component, InplaceState inplaceState) {
InplaceComponent inplaceComponent = (InplaceComponent)component;
return (InplaceState.edit != inplaceState) ? concatClasses(getEditCss(inplaceComponent), getNoneCss(inplaceComponent)) : getEditCss(inplaceComponent);
}
-
+
public String getReadyStateCss(InplaceComponent component) {
- String css = component.getReadyStateClass();
- return concatClasses("rf-ii-d-s", css);
+ return "rf-ii";
}
public String getEditStateCss(InplaceComponent component) {
- String css = component.getEditStateClass();
- return concatClasses("rf-ii-e-s", css);
+ String css = component.getActiveClass();
+ return concatClasses("rf-ii-act", css);
}
public String getChangedStateCss(InplaceComponent component) {
- String css = component.getChangedStateClass();
- return concatClasses("rf-ii-c-s", css);
+ String css = component.getChangedClass();
+ return concatClasses("rf-ii-chng", css);
}
public String getDisableStateCss(InplaceComponent component) {
- String css = component.getDisabledStateClass();
- return concatClasses("rf-ii-dis-s", css);
+ String css = component.getDisabledClass();
+ return concatClasses("rf-ii-dis", css);
}
-
+
public String getEditCss(InplaceComponent component) {
- String css = component.getEditClass();
- return concatClasses("rf-ii-edit", css);
+ return "rf-ii-fld-cntr";
}
public String getNoneCss(InplaceComponent component) {
- String css = component.getNoneClass();
- return concatClasses("rf-ii-none", css);
+ return "rf-ii-none";
}
protected String getInputWidth(UIComponent component) {
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceSelectRendererBase.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceSelectRendererBase.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceSelectRendererBase.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -22,18 +22,17 @@
package org.richfaces.renderkit;
-import java.io.IOException;
-import java.util.List;
+import org.richfaces.component.AbstractInplaceSelect;
+import org.richfaces.component.InplaceComponent;
+import org.richfaces.renderkit.util.HtmlDimensions;
import javax.faces.application.ResourceDependencies;
import javax.faces.application.ResourceDependency;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
+import java.io.IOException;
+import java.util.List;
-import org.richfaces.component.AbstractInplaceSelect;
-import org.richfaces.component.InplaceComponent;
-import org.richfaces.renderkit.util.HtmlDimensions;
-
/**
* @author Anton Belevich
*
@@ -55,17 +54,9 @@
@ResourceDependency(library = "org.richfaces", name = "inplaceSelect.js"),
@ResourceDependency(library = "org.richfaces", name = "inplaceSelect.ecss") })
public class InplaceSelectRendererBase extends InplaceInputRendererBase {
-
- public static final String OPTIONS_OPEN_ON_EDIT = "openOnEdit";
-
- public static final String OPTIONS_SAVE_ON_SELECT = "saveOnSelect";
-
+
public static final String ITEM_CSS = "rf-is-opt";
-
- public static final String SELECT_ITEM_CSS = "rf-is-sel";
- public static final String LIST_CSS = "rf-is-lst-cord";
-
public List<ClientSelectItem> getConvertedSelectItems(FacesContext facesContext, UIComponent component) {
return SelectHelper.getConvertedSelectItems(facesContext, component);
}
@@ -123,35 +114,42 @@
}
return label;
}
-
- public String getReadyStateCss(InplaceComponent component) {
- String css = component.getReadyStateClass();
- return concatClasses("rf-is-d-s", css);
+
+ public String getContainerStyleClasses(UIComponent component) {
+ InplaceComponent inplaceComponent = (InplaceComponent) component;
+ String style = concatClasses("rf-is", component.getAttributes().get("styleClass"));
+ if (inplaceComponent.isDisabled()) {
+ style = concatClasses(style, getDisableStateCss(inplaceComponent));
+ }
+ return style;
}
public String getEditStateCss(InplaceComponent component) {
- String css = component.getEditStateClass();
- return concatClasses("rf-is-e-s", css);
+ String css = component.getActiveClass();
+ return concatClasses("rf-is-act", css);
}
public String getChangedStateCss(InplaceComponent component) {
- String css = component.getChangedStateClass();
- return concatClasses("rf-is-c-s", css);
+ String css = component.getChangedClass();
+ return concatClasses("rf-is-chng", css);
}
public String getDisableStateCss(InplaceComponent component) {
- String css = component.getDisabledStateClass();
- return concatClasses("rf-is-dis-s", css);
+ String css = component.getDisabledClass();
+ return concatClasses("rf-is-dis", css);
}
+
+ public String getDisabledCss(UIComponent component) {
+ AbstractInplaceSelect inplaceSelect = (AbstractInplaceSelect) component;
+ return getDisableStateCss(inplaceSelect);
+ }
public String getEditCss(InplaceComponent component) {
- String css = component.getEditClass();
- return concatClasses("rf-is-edit", css);
+ return "rf-is-fld-cntr";
}
public String getNoneCss(InplaceComponent component) {
- String css = component.getNoneClass();
- return concatClasses("rf-is-none", css);
+ return "rf-is-none";
}
public String getListCss(UIComponent component) {
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/SelectRendererBase.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/SelectRendererBase.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/SelectRendererBase.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -22,18 +22,17 @@
package org.richfaces.renderkit;
-import java.io.IOException;
-import java.util.List;
+import org.richfaces.component.AbstractSelect;
+import org.richfaces.component.AbstractSelectComponent;
+import org.richfaces.renderkit.util.HtmlDimensions;
import javax.faces.application.ResourceDependencies;
import javax.faces.application.ResourceDependency;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
+import java.io.IOException;
+import java.util.List;
-import org.richfaces.component.AbstractSelect;
-import org.richfaces.component.AbstractSelectComponent;
-import org.richfaces.renderkit.util.HtmlDimensions;
-
/**
* @author abelevich
*
@@ -64,13 +63,7 @@
public String getSelectInputLabel(FacesContext facesContext, UIComponent component) {
return SelectHelper.getSelectInputLabel(facesContext, component);
}
-
- public String getListWidth(UIComponent component) {
- AbstractSelect select = (AbstractSelect)component;
- String width = getListWidth(select);
- return (width != null && width.trim().length() != 0) ? ("width: " + width) : "";
- }
-
+
protected String getMinListHeight(AbstractSelect select) {
String height = HtmlDimensions.formatSize(select.getMinListHeight());
if (height == null || height.length() == 0) {
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/view/facelets/AutocompleteHandler.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/view/facelets/AutocompleteHandler.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/view/facelets/AutocompleteHandler.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -21,21 +21,14 @@
*/
package org.richfaces.view.facelets;
+import org.richfaces.component.AbstractAutocomplete;
+
import javax.el.ValueExpression;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
-import javax.faces.view.facelets.ComponentConfig;
-import javax.faces.view.facelets.ComponentHandler;
-import javax.faces.view.facelets.FaceletContext;
-import javax.faces.view.facelets.MetaRule;
-import javax.faces.view.facelets.MetaRuleset;
-import javax.faces.view.facelets.Metadata;
-import javax.faces.view.facelets.MetadataTarget;
-import javax.faces.view.facelets.TagAttribute;
+import javax.faces.view.facelets.*;
-import org.richfaces.component.AbstractAutocomplete;
-
/**
* @author Nick Belaevski
*/
@@ -66,17 +59,6 @@
}
};
}
-
- if ("itemConverter".equals(name)) {
- return new ConverterMetadata(attribute) {
- public void applyMetadata(FaceletContext ctx, Object instance) {
- ((AbstractAutocomplete) instance).setItemConverter(this.getConverter(ctx,
- (AbstractAutocomplete) instance,
- this.getAttr().getValueExpression(ctx, Converter.class)));
- }
- };
- }
-
}
return null;
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/view/facelets/FileUploadHandler.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/view/facelets/FileUploadHandler.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/view/facelets/FileUploadHandler.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -22,6 +22,7 @@
package org.richfaces.view.facelets;
import javax.el.MethodExpression;
+import javax.faces.event.AbortProcessingException;
import javax.faces.view.facelets.ComponentConfig;
import javax.faces.view.facelets.ComponentHandler;
import javax.faces.view.facelets.FaceletContext;
@@ -32,8 +33,9 @@
import javax.faces.view.facelets.TagAttribute;
import org.richfaces.component.AbstractFileUpload;
+import org.richfaces.event.FileUploadEvent;
import org.richfaces.event.FileUploadListener;
-import org.richfaces.event.FileUploadEvent;
+import org.richfaces.event.MethodExpressionEventListener;
/**
* @author Konstantin Mishin
@@ -41,6 +43,21 @@
*/
public class FileUploadHandler extends ComponentHandler {
+ public static final class FileUploadListenerImpl extends MethodExpressionEventListener implements FileUploadListener {
+
+ public FileUploadListenerImpl() {
+ super();
+ }
+
+ public FileUploadListenerImpl(MethodExpression expression) {
+ super(expression);
+ }
+
+ public void processFileUpload(FileUploadEvent event) throws AbortProcessingException {
+ processEvent(event);
+ }
+ }
+
public FileUploadHandler(ComponentConfig config) {
super(config);
}
@@ -58,11 +75,7 @@
@Override
public void applyMetadata(final FaceletContext ctx, Object instance) {
final MethodExpression expression = getMethodExpression(ctx);
- ((AbstractFileUpload) instance).addFileUploadListener(new FileUploadListener(){
- public void processUpload(FileUploadEvent event) {
- expression.invoke(ctx.getFacesContext().getELContext(), new Object[] {event});
- }
- });
+ ((AbstractFileUpload) instance).addFileUploadListener(new FileUploadListenerImpl(expression));
}
};
}
Added: trunk/ui/input/ui/src/main/resources/META-INF/cdk/attributes/fileUploadListener-props.xml
===================================================================
--- trunk/ui/input/ui/src/main/resources/META-INF/cdk/attributes/fileUploadListener-props.xml (rev 0)
+++ trunk/ui/input/ui/src/main/resources/META-INF/cdk/attributes/fileUploadListener-props.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- JBoss, Home of Professional Open Source Copyright ${year}, Red Hat,
+ Inc. and individual contributors 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. -->
+<cdk:properties xmlns:cdk="http://jboss.org/schema/richfaces/cdk/extensions" xmlns="http://java.sun.com/xml/ns/javaee">
+ <property>
+ <property-name>fileUploadListener</property-name>
+ <property-class>javax.el.MethodExpression</property-class>
+ </property>
+</cdk:properties>
Modified: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/Autocomplete.ecss
===================================================================
--- trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/Autocomplete.ecss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/Autocomplete.ecss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -16,7 +16,7 @@
width: 182px;
}
-.rf-au-fld{
+.rf-au{
border-width: 1px;
border-style: solid;
border-color: '#{richSkin.panelBorderColor}';
@@ -25,12 +25,14 @@
background-repeat: repeat-x;
background-position: top left;
background-color: '#{richSkin.controlBackgroundColor}';
+ font-size: 1px;
}
.rf-au-fld-btn{
display: inline-block;
font-size: 1px;
white-space: nowrap;
+ vertical-align: top;
}
.rf-au-btn{
Modified: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/AutocompleteBase.js
===================================================================
--- trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/AutocompleteBase.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/AutocompleteBase.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -147,37 +147,38 @@
}
break;
case rf.KEYS.PAGEUP:
- event.preventDefault();
if (this.isVisible) {
+ event.preventDefault();
this.__onPageUp(event);
}
break;
case rf.KEYS.PAGEDOWN:
- event.preventDefault();
if (this.isVisible) {
+ event.preventDefault();
this.__onPageDown(event);
}
break;
case rf.KEYS.HOME:
- event.preventDefault();
if (this.isVisible) {
+ event.preventDefault();
this.__onKeyHome(event);
}
break;
case rf.KEYS.END:
- event.preventDefault();
if (this.isVisible) {
+ event.preventDefault();
this.__onKeyEnd(event);
}
break;
case rf.KEYS.RETURN:
-
- event.preventDefault();
- this.__onEnter(event);
- //TODO: bind form submit event handler to cancel form submit under the opera
- //cancelSubmit = true;
- this.__hide(event);
- return false;
+ if (this.isVisible) {
+ event.preventDefault();
+ this.__onEnter(event);
+ //TODO: bind form submit event handler to cancel form submit under the opera
+ //cancelSubmit = true;
+ this.__hide(event);
+ return false;
+ }
break;
case rf.KEYS.ESC:
this.__hide(event);
Modified: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/fileupload.js
===================================================================
--- trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/fileupload.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/fileupload.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -164,7 +164,8 @@
var originalEncoding = this.form.attr("encoding");
var originalEnctype = this.form.attr("enctype");
try {
- this.form.attr("action", originalAction + "?" + UID + "=" + this.loadableItem.uid);
+ var delimiter = originalAction.indexOf("?") == -1 ? "?" : "&";
+ this.form.attr("action", originalAction + delimiter + UID + "=" + this.loadableItem.uid);
this.form.attr("encoding", "multipart/form-data");
this.form.attr("enctype", "multipart/form-data");
richfaces.submitForm(this.form, {"org.richfaces.ajax.component": this.id}, this.id);
Modified: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.ecss
===================================================================
--- trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.ecss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.ecss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -15,7 +15,7 @@
font-size : '#{richSkin.generalSizeFont}';
}
-.rf-ii-edit {
+.rf-ii-fld-cntr {
position : absolute;
top : 0px;
left : 0px;
@@ -23,7 +23,7 @@
width: 100%;
}
-.rf-ii-dis-s {
+.rf-ii-dis {
}
.rf-ii-lbl {
@@ -33,7 +33,7 @@
font-size : '#{richSkin.generalSizeFont}';
}
-.rf-ii-d-s {
+.rf-ii {
display : inline-block;
white-space : nowrap;
background-color : '#{richSkin.editorBackgroundColor}';
@@ -46,31 +46,16 @@
position : relative;
}
-.rf-ii-c-s {
+.rf-ii-chng {
display : inline-block;
background-image : url("#{resource['org.richfaces:mark_changed.gif']}");
background-position : top left;
background-repeat : no-repeat;
}
-.rf-ii-e-s {
+.rf-ii-act {
}
-.rf-ii-fld {
- background-color : '#{richSkin.editBackgroundColor}';
- border-bottom-width : 10px;
- border-bottom-style: solid;
- border-bottom-color: '#{richSkin.editBackgroundColor}';
- padding : 0px 0px 0px 0px;
- border : 0px;
- margin : 0px;
- width : 100%;
- height : 100%;
- color: '#{richSkin.generalTextColor}';
- font-family: '#{richSkin.generalFamilyFont}';
- font-size : '#{richSkin.generalSizeFont}';
-}
-
.rf-ii-strut {
width : 100px;
height : 1px;
@@ -110,7 +95,7 @@
.rf-ii-btn-prepos {
position : absolute;
- bottom : 0px;
+ top : -4px;
right : 0px;
width : 1px;
height : 1px;
@@ -119,7 +104,7 @@
.rf-ii-btn-pos {
position : absolute;
top : 1px;
- right : 0px;
+ left : 0px;
white-space : nowrap;
}
@@ -128,9 +113,15 @@
position: relative;
padding : 6px 6px 6px 6px;
top : -6px;
- right : -6px;
+ left : -6px;
}
+.rf-ii-btn-cntr {
+ position : relative;
+ display: block;
+ font-size: 0px;
+}
+
.rf-ii-btn-shdw-t {
background-position : left top;
background-image : url("#{resource['org.richfaces:bg_shadow.png']}");
Modified: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.js
===================================================================
--- trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -14,12 +14,15 @@
this.showControls = mergedOptions.showControls;
this.getInput().bind("focus", $.proxy(this.__editHandler, this));
if(this.showControls) {
+ var btnContainer = document.getElementById(id+"Btn");
+ if (btnContainer) {
+ btnContainer.tabIndex=-1;
+ }
this.okbtn = $(document.getElementById(id+"Okbtn"));
this.cancelbtn = $(document.getElementById(id+"Cancelbtn"));
this.okbtn.bind("mousedown", $.proxy(this.__saveBtnHandler, this));
this.cancelbtn.bind("mousedown", $.proxy(this.__cancelBtnHandler, this));
}
- this.focusElement = $(document.getElementById(id+"Focus"));
};
rf.ui.InplaceBase.extend(rf.ui.InplaceInput);
@@ -30,9 +33,9 @@
saveOnBlur: true,
showControl: true,
noneCss: "rf-ii-none",
- readyCss: "rf-ii-d-s",
- editCss: "rf-ii-e-s",
- changedCss: "rf-ii-c-s"
+ readyCss: "rf-ii",
+ editCss: "rf-ii-act",
+ changedCss: "rf-ii-chng"
};
$.extend(rf.ui.InplaceInput.prototype, ( function () {
@@ -51,6 +54,7 @@
},
__keydownHandler: function(e) {
+ this.tabBlur = false;
switch(e.keyCode || e.which) {
case rf.KEYS.ESC:
e.preventDefault();
@@ -62,6 +66,9 @@
this.save();
this.onblur(e);
break;
+ case rf.KEYS.TAB:
+ this.tabBlur = true;
+ break;
}
},
@@ -117,7 +124,11 @@
},
onhide: function() {
- this.focusElement.focus();
+ if (this.tabBlur) {
+ this.tabBlur = false;
+ }else {
+ this.getInput().focus();
+ }
},
onfocus: function(e) {
@@ -128,7 +139,7 @@
}
},
- onblur: function(e) {
+ onblur: function(e) {
if(this.__isFocused()) {
this.__setFocused(false);
this.invokeEvent.call(this, "blur", document.getElementById(this.id), e);
@@ -146,7 +157,10 @@
this.invokeEvent.call(this, "change", document.getElementById(this.id), e);
}
}
- this.getInput().bind("focus", $.proxy(this.__editHandler, this));
+ var _this = this;
+ window.setTimeout( function() {
+ _this.getInput().bind("focus", $.proxy(_this.__editHandler, _this));
+ }, 1);
}
},
@@ -168,4 +182,4 @@
}
})());
-})(jQuery, window.RichFaces);
\ No newline at end of file
+})(jQuery, window.RichFaces);
Modified: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.ecss
===================================================================
--- trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.ecss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.ecss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -26,10 +26,10 @@
clip: rect(0px, 0px, 1px, 1px);
}
-.rf-is-dis-s {
+.rf-is-dis {
}
-.rf-is-edit {
+.rf-is-fld-cntr {
position : absolute;
top : 0px;
left : 0px;
@@ -40,7 +40,7 @@
.rf-is-fnt {
}
-.rf-is-d-s {
+.rf-is {
display : inline-block;
position : relative;
white-space : nowrap;
@@ -52,27 +52,16 @@
padding-right : 3px;
}
-.rf-is-c-s {
+.rf-is-chng {
display : inline-block;
background-image : "url(#{resource['org.richfaces:mark_changed.gif']})";
background-position : top left;
background-repeat : no-repeat;
}
-.rf-is-e-s {
+.rf-is-act {
}
-.rf-is-fld {
- background-color : '#{richSkin.editBackgroundColor}';
- padding : 0px 0px 0px 0px;
- border : 0px;
- margin : 0px;
- width : 112px;
- background-image: "url(#{resource['org.richfaces:mark_list.gif']})";
- background-position : center right;
- background-repeat : no-repeat;
-}
-
.rf-is-btn {
background-image : url("#{resource['org.richfaces.images:inplaceBtnGrad.png']}");
background-position : top;
@@ -187,6 +176,12 @@
left : -6px;
}
+.rf-is-btn-cntr {
+ position : relative;
+ display: block;
+ font-size: 0px;
+}
+
.rf-is-shdw-t {
display : block;
background-image : "url(#{resource['org.richfaces:bg_shadow.png']})";
Modified: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js
===================================================================
--- trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -35,8 +35,8 @@
selectItemCss: "rf-is-sel",
listCss: "rf-is-lst-cord",
noneCss: "rf-is-none",
- editCss: "rf-is-edit",
- changedCss: "rf-is-c-s"
+ editCss: "rf-is-fld-cntr",
+ changedCss: "rf-is-chng"
};
$.extend(rf.ui.InplaceSelect.prototype, (function () {
Modified: trunk/ui/input/ui/src/main/templates/autocomplete.template.xml
===================================================================
--- trunk/ui/input/ui/src/main/templates/autocomplete.template.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/templates/autocomplete.template.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -17,7 +17,7 @@
<cc:implementation>
<cdk:object type="java.lang.Object" name="disabled" value="#{component.attributes['disabled']}" />
- <div id="#{clientId}" class="rf-au-fld">
+ <span id="#{clientId}" class="rf-au">
<input id="#{clientId}Value" name="#{clientId}Value" type="hidden"/>
<span class="#{component.attributes['showButton'] ? 'rf-au-fld-btn' : ''}">
<input onclick="#{component.attributes['onclick']}"
@@ -29,7 +29,12 @@
onmouseout="#{component.attributes['onmouseout']}"
onkeyup="#{component.attributes['onkeyup']}"
onkeydown="#{component.attributes['onkeydown']}"
- onkeypress="#{component.attributes['onkeypress']}" id="#{clientId}Input" value="#{component.attributes['value']}" disabled="#{disabled}" name="#{clientId}Input" type="text" class="rf-au-fnt rf-au-inp" autocomplete="off"/>
+ onkeypress="#{component.attributes['onkeypress']}"
+ id="#{clientId}Input" value="#{getInputValue(facesContext, component)}"
+ disabled="#{disabled}" name="#{clientId}Input"
+ type="text"
+ class="rf-au-fnt rf-au-inp #{component.attributes['inputClass']}"
+ autocomplete="off"/>
<c:if test="#{component.attributes['showButton']}">
<span id="#{clientId}Button" class="rf-au-btn">
<span class="rf-au-btn-arrow#{component.attributes['disabled'] ? '-dis' : ''}"></span>
@@ -82,7 +87,7 @@
);
</script>
</c:if>
- </div>
+ </span>
</cc:implementation>
</cdk:root>
Modified: trunk/ui/input/ui/src/main/templates/calendar.template.xml
===================================================================
--- trunk/ui/input/ui/src/main/templates/calendar.template.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/templates/calendar.template.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -23,7 +23,7 @@
<cdk:import package="org.richfaces.component" names="Positioning" />
</cc:interface>
<cc:implementation>
- <span id="#{clientId}">
+ <span id="#{clientId}" class="#{component.attributes['styleClass']}" style="#{component.attributes['style']}">
<span id="#{clientId}Popup"
style="#{component.attributes['popup'] ? 'white-space: nowrap;' : 'display: none;'}">
<c:choose>
@@ -70,7 +70,7 @@
<script type="text/javascript">
<cdk:scriptObject name="options">
- <cdk:scriptOption attributes="enableManualInput disabled readonly resetTimeOnDateSelect showApplyButton popup showInput showHeader showFooter showWeeksBar datePattern hidePopupOnScrol showWeekDaysBar styleClass defaultLabel" />
+ <cdk:scriptOption attributes="enableManualInput disabled readonly resetTimeOnDateSelect showApplyButton popup showInput showHeader showFooter showWeeksBar datePattern hidePopupOnScrol showWeekDaysBar defaultLabel" />
<cdk:scriptOption attributes="onchange ondateselect onbeforedateselect onbeforecurrentdateselect onhide onshow ondatemouseover ondatemouseout onclean ontimeselect onbeforetimeselect" wrapper="eventHandler" />
<cdk:scriptOption name="mode" value="#{getModeOrDefault(component)}" defaultValue="org.richfaces.component.AbstractCalendar.Mode.client"/>
<cdk:scriptOption name="todayControlMode" value="#{getTodayControlModeOrDefault(component)}" defaultValue='"select"'/>
@@ -86,7 +86,8 @@
<cdk:scriptOption name="isDayEnabled" value="#{getDayEnabled(facesContext, component)}" />
<cdk:scriptOption name="labels" value="#{getLabels(facesContext, component)}" />
<cdk:scriptOption name="defaultTime" value="#{getPreparedDefaultTime(facesContext, component)}" />
- <cdk:scriptOption name="style" value="#{getStyleWithZindex(facesContext, component)}" />
+ <cdk:scriptOption name="style" value="#{getPopupStyle(facesContext, component)}" />
+ <cdk:scriptOption name="styleClass" value="#{component.attributes['popupClass']}" />
</cdk:scriptObject>
RichFaces.ui.Calendar.addLocale("#{getAsLocale(facesContext, component).toString()}",
Modified: trunk/ui/input/ui/src/main/templates/inplaceInput.template.xml
===================================================================
--- trunk/ui/input/ui/src/main/templates/inplaceInput.template.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/templates/inplaceInput.template.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -41,40 +41,43 @@
<cc:implementation>
<cdk:object type="org.richfaces.component.InplaceState" name="inplaceState" value="#{getInplaceState(component)}" />
<cdk:object type="java.lang.String" name="inplaceValue" value="#{getValue(facesContext, component)}" />
-
- <span id="#{clientId}" class="#{getStateStyleClass(component, inplaceState)}" cdk:passThroughWithExclusions="id class">
+ <cdk:object type="java.lang.String" name="defaultLabel" value="#{inplaceValue != null and inplaceValue.length() != 0 ? inplaceValue : '   '}" />
+
+ <span id="#{clientId}" cdk:passThroughWithExclusions="id class"
+ class="#{concatClasses(getContainerStyleClasses(component), component.attributes['styleClass'])}">
<span id="#{clientId}Label" class="rf-ii-lbl#{inplaceValue == component.attributes['defaultLabel'] ? ' rf-ii-dflt-lbl' : ''}">
- #{inplaceValue}
+ #{defaultLabel}
</span>
<c:if test="#{!component.attributes['disabled']}">
- <input id="#{clientId}Focus" type="image" style="position: absolute; top: 0px; left: 0px; outline-style: none;" class="rf-ii-none"/>
+ <input id="#{clientId}Focus" type="image" tabindex="-1" style="position: absolute; top: 0px; left: 0px; outline-style: none;" class="rf-ii-none"/>
<span id="#{clientId}Edit" class="#{getEditStyleClass(component, inplaceState)}">
- <input id="#{clientId}Input" autocomplete="off" name="#{clientId}"
+ <input id="#{clientId}Input" autocomplete="off" name="#{clientId}"
type="text" value="#{getInputValue(facesContext, component)}" class="rf-ii-fld" style="width: #{getInputWidth(component)};" cdk:passThrough="tabindex">
<cdk:call expression="renderInputHandlers(facesContext, component);"/>
</input>
<c:if test="#{component.attributes['showControls']}">
<span class="rf-ii-btn-prepos">
<span class="rf-ii-btn-pos">
- <span id="#{clientId}Btnshadow" class="rf-ii-btn-shadow">
+ <span id="#{clientId}Btnshadow" class="rf-ii-btn-shdw">
<span class="rf-ii-btn-shdw-t"></span>
<span class="rf-ii-btn-shdw-l"></span>
<span class="rf-ii-btn-shdw-r"></span>
<span class="rf-ii-btn-shdw-b"></span>
- <span id="#{clientId}Btn" style="position : relative">
+ <span id="#{clientId}Btn" class="rf-ii-btn-cntr">
<input type="image"
id="#{clientId}Okbtn"
src="#{getResourcePath(facesContext, 'org.richfaces', 'ico_ok.gif')}"
class="rf-ii-btn" onmousedown="this.className='rf-ii-btn-p'"
- onmouseout="this.className='rf-ii-btn'" onmouseup="this.className='rf-ii-btn'" />
+ onmouseout="this.className='rf-ii-btn'" onmouseup="this.className='rf-ii-btn'"
+ tabindex="-1" />
<input type="image"
id="#{clientId}Cancelbtn"
src="#{getResourcePath(facesContext,'org.richfaces', 'ico_cancel.gif')}"
class="rf-ii-btn" onmousedown="this.className='rf-ii-btn-press'"
- onmouseout="this.className='rf-ii-btn'" onmouseup="this.className='rf-ii-btn'" />
- <br />
+ onmouseout="this.className='rf-ii-btn'" onmouseup="this.className='rf-ii-btn'"
+ tabindex="-1" />
</span>
</span>
</span>
@@ -83,12 +86,13 @@
</span>
<script type="text/javascript">
<cdk:scriptObject name="options">
- <cdk:scriptOption name="readyCss" value="#{concatClasses('rf-ii-d-s', component.attributes['readyStateClass'])}"/>
+ <cdk:scriptOption name="readyCss" value="#{concatClasses('rf-ii', component.attributes['readyStateClass'])}"/>
<cdk:scriptOption name="noneCss" value="#{concatClasses('rf-ii-none', component.attributes['noneStateClass'])}"/>
- <cdk:scriptOption name="changedCss" value="#{concatClasses('rf-ii-c-s', component.attributes['changedStateClass'])}"/>
- <cdk:scriptOption name="editCss" value="#{concatClasses('rf-ii-e-s', component.attributes['editStateClass'])}"/>
+ <cdk:scriptOption name="changedCss" value="#{concatClasses('rf-ii-chng', component.attributes['changedClass'])}"/>
+ <cdk:scriptOption name="editCss" value="#{concatClasses('rf-ii-act', component.attributes['activeClass'])}"/>
<cdk:scriptOption name="editEvent" value="#{getEditEvent(component)}"/>
- <cdk:scriptOption attributes="state defaultLabel saveOnBlur showControls" />
+ <cdk:scriptOption name="defaultLabel" value="#{defaultLabel}" />
+ <cdk:scriptOption attributes="state saveOnBlur showControls" />
<cdk:scriptOption attributes="onbegin oncomplete onerror onbeforedomupdate onselectitem onchange onblur onfocus" wrapper="eventHandler"/>
</cdk:scriptObject>
new RichFaces.ui.InplaceInput("#{clientId}", #{toScriptArgs(options)});
Modified: trunk/ui/input/ui/src/main/templates/inplaceSelect.template.xml
===================================================================
--- trunk/ui/input/ui/src/main/templates/inplaceSelect.template.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/templates/inplaceSelect.template.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -36,11 +36,12 @@
<cdk:object type="java.util.List" type-arguments="InplaceSelectBaseRenderer.ClientSelectItem" name="clientSelectItems"
value="#{getConvertedSelectItems(facesContext, component)}" />
-
- <span id="#{clientId}" class="#{getStateStyleClass(component, inplaceState)}" cdk:passThroughWithExclusions="id class">
+ <cdk:object type="java.lang.String" name="defaultLabel" value="#{inplaceValue != null and inplaceValue.length() != 0 ? inplaceValue : '   '}" />
+ <span id="#{clientId}" cdk:passThroughWithExclusions="id class" class="#{ getContainerStyleClasses(component) }" >
+
<span id="#{clientId}Label" class="rf-is-lbl#{inplaceValue == component.attributes['defaultLabel'] ? ' rf-is-dflt-lbl' : ''}">
- #{inplaceValue}
+ #{defaultLabel}
</span>
<c:if test="#{!component.attributes['disabled']}">
@@ -63,16 +64,15 @@
<span class="rf-is-shdw-r"></span>
<span class="rf-is-shdw-b"></span>
- <span id="#{clientId}Btn" style="position : relative;">
+ <span id="#{clientId}Btn" class="rf-is-btn-cntr">
<input type="image" id="#{clientId}Okbtn"
src="#{getResourcePath(facesContext, 'org.richfaces', 'ico_ok.gif')}"
class="rf-is-btn" onmousedown="this.className='rf-is-btn-press'"
onmouseout="this.className='rf-is-btn'" onmouseup="this.className='rf-is-btn'" />
- <input type="image" id="#{clientId}Cancelbtn"
+ <input type="image" id="#{clientId}Cancelbtn"
src="#{getResourcePath(facesContext,'org.richfaces', 'ico_cancel.gif')}"
class="rf-is-btn" onmousedown="this.className='rf-is-btn-press'"
onmouseout="this.className='rf-is-btn'" onmouseup="this.className='rf-is-btn'" />
- <br />
</span>
</span>
</span>
@@ -101,11 +101,12 @@
<cdk:scriptObject name="options">
<cdk:scriptOption name="items" value="#{clientSelectItems}" />
<cdk:scriptOption name="noneCss" value="#{concatClasses('rf-is-none', component.attributes['noneStateClass'])}"/>
- <cdk:scriptOption name="changedCss" value="#{concatClasses('rf-is-c-s', component.attributes['changedStateClass'])}"/>
- <cdk:scriptOption name="editCss" value="#{concatClasses('rf-is-e-s', component.attributes['editStateClass'])}"/>
+ <cdk:scriptOption name="changedCss" value="#{concatClasses('rf-is-chng', component.attributes['changedClass'])}"/>
+ <cdk:scriptOption name="editCss" value="#{concatClasses('rf-is-act', component.attributes['activeClass'])}"/>
<cdk:scriptOption name="selectItemCss" value="#{concatClasses('rf-is-sel', component.attributes['selectItemClass'])}"/>
<cdk:scriptOption name="editEvent" value="#{getEditEvent(component)}"/>
- <cdk:scriptOption attributes="state defaultLabel saveOnBlur showControls openOnEdit saveOnSelect inputWidth" />
+ <cdk:scriptOption name="defaultLabel" value="#{defaultLabel}" />
+ <cdk:scriptOption attributes="state saveOnBlur showControls openOnEdit saveOnSelect inputWidth" />
<cdk:scriptOption attributes="onbegin oncomplete onerror onbeforedomupdate onselectitem onchange onblur onfocus" wrapper="eventHandler"/>
</cdk:scriptObject>
new RichFaces.ui.InplaceSelect("#{clientId}", #{toScriptArgs(options)});
Modified: trunk/ui/input/ui/src/main/templates/inputnumberslider.template.xml
===================================================================
--- trunk/ui/input/ui/src/main/templates/inputnumberslider.template.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/templates/inputnumberslider.template.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -74,7 +74,7 @@
<span class="rf-insl-tt #{component.attributes['tooltipClass']}">#{getInputValue(facesContext, component)}</span>
</c:if>
<!-- TODO Rewrite the next line when the CDK will support normal way to take event handlers from attributes and behaviors. -->
- <cdk:object name="onchange" type="String" value="#{convertToString(RenderKitUtils.getAttributeAndBehaviorsValue(facesContext, component, RenderKitUtils.attributes().generic('onchange', 'onchange', 'change').first()))}" />
+ <cdk:object name="onchange" type="String" value="#{convertToString(RenderKitUtils.getAttributeAndBehaviorsValue(facesContext, component, RenderKitUtils.attributes().generic('onchange', 'onchange', 'change', 'valueChange').first()))}" />
<script type="text/javascript">new RichFaces.ui.InputNumberSlider('#{clientId}', {
delay: #{component.attributes['delay']},
disabled: #{component.attributes['disabled']},
Modified: trunk/ui/input/ui/src/main/templates/inputnumberspinner.template.xml
===================================================================
--- trunk/ui/input/ui/src/main/templates/inputnumberspinner.template.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/templates/inputnumberspinner.template.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -52,7 +52,7 @@
<span class="rf-insp-dec#{component.attributes['disabled'] ? '-dis' : ''}" cdk:passThrough="onclick:ondownclick" />
</span>
<!-- TODO Rewrite the next line when the CDK will support normal way to take event handlers from attributes and behaviors. -->
- <cdk:object name="onchange" type="String" value="#{convertToString(RenderKitUtils.getAttributeAndBehaviorsValue(facesContext, component, RenderKitUtils.attributes().generic('onchange', 'onchange', 'change').first()))}" />
+ <cdk:object name="onchange" type="String" value="#{convertToString(RenderKitUtils.getAttributeAndBehaviorsValue(facesContext, component, RenderKitUtils.attributes().generic('onchange', 'onchange', 'change', 'valueChange').first()))}" />
<script type="text/javascript">new RichFaces.ui.InputNumberSpinner('#{clientId}', {
cycled: #{component.attributes['cycled']},
maxValue: #{component.attributes['maxValue']},
Modified: trunk/ui/input/ui/src/main/templates/select.template.xml
===================================================================
--- trunk/ui/input/ui/src/main/templates/select.template.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/main/templates/select.template.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -19,11 +19,11 @@
<cdk:object type="java.lang.Object" name="disabled" value="#{component.attributes['disabled']}" />
- <div id="#{clientId}" class="rf-sel">
+ <div id="#{clientId}" class="#{concatClasses('rf-sel', component.attributes['styleClass'])}" style="#{component.attributes['style']}">
<span class="rf-sel-cntr">
<input id="#{clientId}selValue" name="#{clientId}" type="hidden" value="#{getInputValue(facesContext, component)}"/>
<cdk:object type="java.lang.String" name="label" value="#{getSelectLabel(facesContext, component)}" />
- <input cdk:passThroughWithExclusions="class autocomplete id value disabled name type readonly onchange onblur onfocus"
+ <input cdk:passThroughWithExclusions="class autocomplete id value disabled name type readonly onchange onblur onfocus style"
id="#{clientId}Input"
value="#{label}"
disabled="#{disabled}"
Modified: trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/InplaceInputRendererTest.java
===================================================================
--- trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/InplaceInputRendererTest.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/InplaceInputRendererTest.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -5,6 +5,7 @@
import java.io.IOException;
+import org.junit.Ignore;
import org.junit.Test;
import org.xml.sax.SAXException;
@@ -28,13 +29,7 @@
public void testDefaultWithControlsEncode() throws IOException, SAXException {
doTestDefaultWithControlsEncode(PAGE_NAME, BASE_ID);
}
-
- @Test
- public void testEditEncode() throws IOException, SAXException {
- doTestEditEncode(PAGE_NAME, BASE_ID);
- }
-
@Test
public void testEdit() throws Exception {
HtmlPage page = environment.getPage("/inplaceInputTest.jsf");
@@ -43,7 +38,7 @@
DomText text = page.getFirstByXPath("//*[@id = '" + BASE_ID + "DefaultLabel']/text()");
assertEquals("Another Test String", text.getTextContent());
HtmlElement span = page.getFirstByXPath("//*[@id = '"+ BASE_ID + DEFAULT +"']");
- assertEquals("rf-ii-d-s rf-ii-c-s", span.getAttribute(HtmlConstants.CLASS_ATTRIBUTE));
+ assertEquals("rf-ii rf-ii-chng", span.getAttribute(HtmlConstants.CLASS_ATTRIBUTE));
}
@Test
@@ -62,7 +57,7 @@
HtmlElement span = page.getFirstByXPath("//*[@id = '"+ withControlsComponentId +"']");
assertNotNull(span);
- assertEquals("rf-ii-d-s", span.getAttribute(HtmlConstants.CLASS_ATTRIBUTE));
+ assertEquals("rf-ii", span.getAttribute(HtmlConstants.CLASS_ATTRIBUTE));
edit(page, withControlsComponentId, "Another Test String");
@@ -76,7 +71,7 @@
span = page.getFirstByXPath("//*[@id = '"+ withControlsComponentId +"']");
assertNotNull(span);
- assertEquals("rf-ii-d-s rf-ii-c-s", span.getAttribute(HtmlConstants.CLASS_ATTRIBUTE));
+ assertEquals("rf-ii rf-ii-chng", span.getAttribute(HtmlConstants.CLASS_ATTRIBUTE));
edit(page, withControlsComponentId, "Test String");
@@ -93,7 +88,7 @@
span.click();
HtmlElement edit = page.getFirstByXPath("//*[@id = '" + inplaceInputId + "Edit']");
assertNotNull(edit);
- assertEquals("rf-ii-edit", edit.getAttribute(HtmlConstants.CLASS_ATTRIBUTE));
+ assertEquals("rf-ii-fld-cntr", edit.getAttribute(HtmlConstants.CLASS_ATTRIBUTE));
typeNewValue(page, inplaceInputId, value);
}
Modified: trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/InplaceSelectRendererTest.java
===================================================================
--- trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/InplaceSelectRendererTest.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/InplaceSelectRendererTest.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -41,24 +41,11 @@
}
@Test
+ @Ignore
public void testEditEncode() throws IOException, SAXException {
doTestEditEncode(PAGE_NAME, BASE_ID);
}
- @Test
- @Ignore
- public void testEdit() throws Exception {
- HtmlPage page = environment.getPage("/inplaceSelectTest.jsf");
- String defaultComponentId = BASE_ID + DEFAULT;
- edit(page, defaultComponentId, 1);
-
- HtmlElement input = page.getFirstByXPath("//*[@id = '" + defaultComponentId + "Input']");
- assertNotNull(input);
-
- String label = input.getAttribute(HtmlConstants.VALUE_ATTRIBUTE);
- assertTrue("Label#3".equals(label));
- }
-
private void edit(HtmlPage page, String inplaceSelectId, int selectIndex) throws Exception {
HtmlElement span = page.getFirstByXPath("//*[@id = '" + inplaceSelectId + "']");
assertNotNull(span);
@@ -66,7 +53,7 @@
HtmlElement edit = page.getFirstByXPath("//*[@id = '" + inplaceSelectId + "Edit']");
assertNotNull(edit);
- assertEquals("rf-is-edit", edit.getAttribute(HtmlConstants.CLASS_ATTRIBUTE));
+ assertEquals("rf-is-fld-cntr", edit.getAttribute(HtmlConstants.CLASS_ATTRIBUTE));
HtmlElement list = page.getFirstByXPath("//*[@id = '" + inplaceSelectId + "List']");
assertNotNull(list);
Modified: trunk/ui/input/ui/src/test/resources/org/richfaces/component/calendarContent.xmlunit.xml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/component/calendarContent.xmlunit.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/component/calendarContent.xmlunit.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,4 +1,4 @@
-<table id="form:calendarContent" border="0" cellpadding="0" cellspacing="0" class="rf-cal-extr rf-cal-popup undefined" style="display:none; position:absolute;z-index: 3;width:200px" onclick="RichFaces.$('form:calendar').skipEventOnCollapse=true;">
+<table id="form:calendarContent" border="0" cellpadding="0" cellspacing="0" class="rf-cal-extr rf-cal-popup undefined" style="display:none; position:absolute;z-index: 3" onclick="RichFaces.$('form:calendar').skipEventOnCollapse=true;">
<tbody>
<tr>
<td class="rf-cal-hdr" colspan="8" id="form:calendarHeader"/>
Modified: trunk/ui/input/ui/src/test/resources/org/richfaces/component/calendarScript.xmlunit.xml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/component/calendarScript.xmlunit.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/component/calendarScript.xmlunit.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,7 +1,7 @@
<span id="form:calendarScript" style="display: none;">
<script type="text/javascript">
//<![CDATA[
-RichFaces.ui.Calendar.addLocale("en_US",{"monthLabels":["January","February","March","April","May","June","July","August","September","October","November","December"] ,"minDaysInFirstWeek":1,"monthLabelsShort":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"] ,"firstWeekDay":0,"weekDayLabels":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"] ,"weekDayLabelsShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"] } );new RichFaces.ui.Calendar("form:calendar","en_US",{"horizontalOffset":"0","showApplyButton":true,"showFooter":true,"selectedDate":new Date(2010,10,16,0,0,0),"verticalOffset":"0","datePattern":"d\/M\/yy HH:mm","direction":"AA","labels":{} ,"mode":"client","todayControlMode":"select","showWeeksBar":true,"resetTimeOnDateSelect":false,"style":"z\u002Dindex: 3;width:200px","showWeekDaysBar":true,"currentDate":new Date(2010,10,16),"showHeader":true,"popup":true,"enableManualInput":false,"showInput":true,"boundaryDatesMode":"ina!
ctive","disabled":false,"jointPoint":"AA","hidePopupOnScroll":"true"} ,"").load({"startDate":{"month":10,"year":2010} ,"days":[{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"sty!
leClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":fa!
lse,"sty
leClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ] } );
+RichFaces.ui.Calendar.addLocale("en_US",{"monthLabels":["January","February","March","April","May","June","July","August","September","October","November","December"] ,"minDaysInFirstWeek":1,"monthLabelsShort":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"] ,"firstWeekDay":0,"weekDayLabels":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"] ,"weekDayLabelsShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"] } );new RichFaces.ui.Calendar("form:calendar","en_US",{"horizontalOffset":"0","showApplyButton":true,"showFooter":true,"selectedDate":new Date(2010,10,16,0,0,0),"verticalOffset":"0","datePattern":"d\/M\/yy HH:mm","direction":"AA","labels":{} ,"mode":"client","todayControlMode":"select","showWeeksBar":true,"resetTimeOnDateSelect":false,"style":"z\u002Dindex: 3;width:200px","showWeekDaysBar":true,"currentDate":new Date(2010,10,16),"showHeader":true,"popup":true,"enableManualInput":false,"showInput":true,"boundaryDatesMode":"ina!
ctive","disabled":false,"jointPoint":"AA"} ,"").load({"startDate":{"month":10,"year":2010} ,"days":[{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":fa!
lse,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"ena!
bled":fa
lse,"styleClass":""} ,{"enabled":false,"styleClass":""} ,{"enabled":false,"styleClass":""} ] } );
//]]>
</script>
</span>
\ No newline at end of file
Modified: trunk/ui/input/ui/src/test/resources/org/richfaces/component/calendarTest.xhtml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/component/calendarTest.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/component/calendarTest.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -20,7 +20,7 @@
showHeader="true"
currentDate="#{calendarBean.selectedDate}"
showApplyButton="#{calendarBean.showApply}" cellWidth="24px"
- cellHeight="22px" style="width:200px">
+ cellHeight="22px">
<f:convertDateTime pattern="#{calendarBean.pattern}"
onchange="alert('1')" />
</in:calendar>
Modified: trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/autocompleteDivLayoutClientMode.xmlunit.xml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/autocompleteDivLayoutClientMode.xmlunit.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/autocompleteDivLayoutClientMode.xmlunit.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
- <div class="rf-au-fld" id="form:myAutocomplete">
+ <span class="rf-au" id="form:myAutocomplete">
<input id="form:myAutocompleteValue" name="form:myAutocompleteValue" type="hidden"/>
<span class="rf-au-fld-btn">
<input autocomplete="off" class="rf-au-fnt rf-au-inp" id="form:myAutocompleteInput" name="form:myAutocomplete" type="text"/>
@@ -188,4 +188,4 @@
);
//]]>
</script>
- </div>
+ </span>
Modified: trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/autocompleteListLayoutClientMode.xmlunit.xml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/autocompleteListLayoutClientMode.xmlunit.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/autocompleteListLayoutClientMode.xmlunit.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<div class="rf-au-fld" id="form:myAutocomplete">
+<span class="rf-au" id="form:myAutocomplete">
<input id="form:myAutocompleteValue" name="form:myAutocompleteValue" type="hidden"/>
<span class="rf-au-fld-btn">
<input autocomplete="off" class="rf-au-fnt rf-au-inp" id="form:myAutocompleteInput" name="form:myAutocomplete" type="text"/>
@@ -188,4 +188,4 @@
);
//]]>
</script>
-</div>
\ No newline at end of file
+</span>
\ No newline at end of file
Modified: trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTest.xhtml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTest.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTest.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -24,12 +24,6 @@
<br/>
<br/>
<br/>
- <h:panelGroup id="three" layout="block">
- <in:inplaceInput id="inplaceInputEdit" defaultLabel="Edit Text" state="edit" showControls="true" value="#{inputBean.value}"/>
- </h:panelGroup>
- <br/>
- <br/>
- <br/>
<h:panelGroup id="panel" layout="block">
<!-- click here for blur -->
</h:panelGroup>
Modified: trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTestDefault.xmlunit.xml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTestDefault.xmlunit.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTestDefault.xmlunit.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,9 +1,9 @@
-<span class="rf-ii-d-s" id="form:inplaceInputDefault">
+<span class="rf-ii" id="form:inplaceInputDefault">
<span class="rf-ii-lbl rf-ii-dflt-lbl" id="form:inplaceInputDefaultLabel">Edit Text</span>
<input class="rf-ii-none" id="form:inplaceInputDefaultFocus"
style="position: absolute; top: 0px; left: 0px; outline-style: none;"
- type="image" />
- <span class="rf-ii-edit rf-ii-none" id="form:inplaceInputDefaultEdit">
+ type="image" tabindex="-1" />
+ <span class="rf-ii-fld-cntr rf-ii-none" id="form:inplaceInputDefaultEdit">
<input autocomplete="off" class="rf-ii-fld" id="form:inplaceInputDefaultInput"
name="form:inplaceInputDefault" style="width: 100%;" type="text" />
</span>
Deleted: trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTestEdit.xmlunit.xml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTestEdit.xmlunit.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTestEdit.xmlunit.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,36 +0,0 @@
-<span class="rf-ii-d-s rf-ii-e-s" id="form:inplaceInputEdit">
- <span class="rf-ii-lbl rf-ii-dflt-lbl" id="form:inplaceInputEditLabel">Edit Text</span>
- <input class="rf-ii-none" id="form:inplaceInputEditFocus"
- style="position: absolute; top: 0px; left: 0px; outline-style: none;"
- type="image" />
- <span class="rf-ii-edit" id="form:inplaceInputEditEdit">
- <input autocomplete="off" class="rf-ii-fld" id="form:inplaceInputEditInput"
- name="form:inplaceInputEdit" style="width: 100%;" type="text" />
- <span class="rf-ii-btn-prepos">
- <span class="rf-ii-btn-pos">
- <span class="rf-ii-btn-shadow" id="form:inplaceInputEditBtnshadow">
- <span class="rf-ii-btn-shdw-t"></span>
- <span class="rf-ii-btn-shdw-l"></span>
- <span class="rf-ii-btn-shdw-r"></span>
- <span class="rf-ii-btn-shdw-b"></span>
- <span id="form:inplaceInputEditBtn" style="position : relative">
- <input class="rf-ii-btn" id="form:inplaceInputEditOkbtn"
- onmousedown="this.className='rf-ii-btn-p'" onmouseout="this.className='rf-ii-btn'"
- onmouseup="this.className='rf-ii-btn'"
- src="/javax.faces.resource/ico_ok.gif.jsf?ln=org.richfaces"
- type="image" />
- <input class="rf-ii-btn" id="form:inplaceInputEditCancelbtn"
- onmousedown="this.className='rf-ii-btn-press'" onmouseout="this.className='rf-ii-btn'"
- onmouseup="this.className='rf-ii-btn'"
- src="/javax.faces.resource/ico_cancel.gif.jsf?ln=org.richfaces"
- type="image" />
- <br />
- </span>
- </span>
- </span>
- </span>
- </span>
- <script type="text/javascript">
- // ignored
- </script>
-</span>
\ No newline at end of file
Modified: trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTestWithControls.xmlunit.xml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTestWithControls.xmlunit.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceInputTestWithControls.xmlunit.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,31 +1,32 @@
-<span class="rf-ii-d-s" id="form:inplaceInputWithControls">
+<span class="rf-ii" id="form:inplaceInputWithControls">
<span class="rf-ii-lbl rf-ii-dflt-lbl" id="form:inplaceInputWithControlsLabel">Edit Text</span>
<input class="rf-ii-none" id="form:inplaceInputWithControlsFocus"
style="position: absolute; top: 0px; left: 0px; outline-style: none;"
- type="image" />
- <span class="rf-ii-edit rf-ii-none" id="form:inplaceInputWithControlsEdit">
+ type="image" tabindex="-1" />
+ <span class="rf-ii-fld-cntr rf-ii-none" id="form:inplaceInputWithControlsEdit">
<input autocomplete="off" class="rf-ii-fld"
id="form:inplaceInputWithControlsInput" name="form:inplaceInputWithControls"
style="width: 100%;" type="text" />
<span class="rf-ii-btn-prepos">
<span class="rf-ii-btn-pos">
- <span class="rf-ii-btn-shadow" id="form:inplaceInputWithControlsBtnshadow">
+ <span class="rf-ii-btn-shdw" id="form:inplaceInputWithControlsBtnshadow">
<span class="rf-ii-btn-shdw-t"></span>
<span class="rf-ii-btn-shdw-l"></span>
<span class="rf-ii-btn-shdw-r"></span>
<span class="rf-ii-btn-shdw-b"></span>
- <span id="form:inplaceInputWithControlsBtn" style="position : relative">
+ <span id="form:inplaceInputWithControlsBtn" class="rf-ii-btn-cntr" tabindex="-1">
<input class="rf-ii-btn" id="form:inplaceInputWithControlsOkbtn"
onmousedown="this.className='rf-ii-btn-p'" onmouseout="this.className='rf-ii-btn'"
onmouseup="this.className='rf-ii-btn'"
src="/javax.faces.resource/ico_ok.gif.jsf?ln=org.richfaces"
- type="image" />
+ type="image"
+ tabindex="-1" />
<input class="rf-ii-btn" id="form:inplaceInputWithControlsCancelbtn"
onmousedown="this.className='rf-ii-btn-press'" onmouseout="this.className='rf-ii-btn'"
onmouseup="this.className='rf-ii-btn'"
src="/javax.faces.resource/ico_cancel.gif.jsf?ln=org.richfaces"
- type="image" />
- <br />
+ type="image"
+ tabindex="-1" />
</span>
</span>
</span>
Modified: trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTest.xhtml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTest.xhtml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTest.xhtml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -24,12 +24,6 @@
<f:selectItem itemLabel="Label#3" itemValue="Value#3" />
<f:selectItem itemLabel="Label#4" itemValue="Value#4" />
</in:inplaceSelect>
- <in:inplaceSelect id="inplaceSelectEdit" state="edit" showControls="true" defaultLabel="Edit Text" value="#{selectBean.value}">
- <f:selectItem itemLabel="Label#1" itemValue="Value#1" />
- <f:selectItem itemLabel="Label#2" itemValue="Value#2" />
- <f:selectItem itemLabel="Label#3" itemValue="Value#3" />
- <f:selectItem itemLabel="Label#4" itemValue="Value#4" />
- </in:inplaceSelect>
<h:panelGroup id="out" layout="block">
<h:outputText id="inplaceSelectValue"
value="Entered Value: #{selectBean.value}" />
Modified: trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTestDefault.xmlunit.xml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTestDefault.xmlunit.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTestDefault.xmlunit.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,7 +1,7 @@
-<span class="rf-is-d-s" id="form:inplaceSelectDefault">
+<span class="rf-is" id="form:inplaceSelectDefault">
<span class="rf-is-lbl rf-is-dflt-lbl" id="form:inplaceSelectDefaultLabel">Edit Text</span>
<input class="rf-is-none" id="form:inplaceSelectDefaultFocus" name="form:inplaceSelectDefaultFocus" style="position: absolute; top: 0px; left: 0px; outline-style: none;" type="image" />
- <span class="rf-is-edit rf-is-none" id="form:inplaceSelectDefaultEdit">
+ <span class="rf-is-fld-cntr rf-is-none" id="form:inplaceSelectDefaultEdit">
<input id="form:inplaceSelectDefaultselValue" name="form:inplaceSelectDefault" type="hidden" />
<input autocomplete="off" class="rf-is-fld" id="form:inplaceSelectDefaultInput" name="form:inplaceSelectDefaultInput" readonly="readonly" type="text" />
<span class="rf-is-lst-cord" id="form:inplaceSelectDefaultList" style="display: none">
Deleted: trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTestEdit.xmlunit.xml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTestEdit.xmlunit.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTestEdit.xmlunit.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,46 +0,0 @@
-<span class="rf-is-d-s rf-is-e-s" id="form:inplaceSelectEdit">
- <span class="rf-is-lbl rf-is-dflt-lbl" id="form:inplaceSelectEditLabel">Edit Text</span>
- <input class="rf-is-none" id="form:inplaceSelectEditFocus" name="form:inplaceSelectEditFocus" style="position: absolute; top: 0px; left: 0px; outline-style: none;" type="image" />
- <span class="rf-is-edit" id="form:inplaceSelectEditEdit">
- <input id="form:inplaceSelectEditselValue" name="form:inplaceSelectEdit" type="hidden" />
- <input autocomplete="off" class="rf-is-fld" id="form:inplaceSelectEditInput" name="form:inplaceSelectEditInput" readonly="readonly" type="text" />
- <span class="rf-is-btn-prepos">
- <span class="rf-is-btn-pos">
- <span class="rf-is-shdw" id="form:inplaceSelectEditBtnshadow">
- <span class="rf-is-shdw-t"></span>
- <span class="rf-is-shdw-l"></span>
- <span class="rf-is-shdw-r"></span>
- <span class="rf-is-shdw-b"></span>
- <span id="form:inplaceSelectEditBtn" style="position : relative;">
- <input class="rf-is-btn" id="form:inplaceSelectEditOkbtn" onmousedown="this.className='rf-is-btn-press'" onmouseout="this.className='rf-is-btn'" onmouseup="this.className='rf-is-btn'" src="/javax.faces.resource/ico_ok.gif.jsf?ln=org.richfaces" type="image" />
- <input class="rf-is-btn" id="form:inplaceSelectEditCancelbtn" onmousedown="this.className='rf-is-btn-press'" onmouseout="this.className='rf-is-btn'" onmouseup="this.className='rf-is-btn'" src="/javax.faces.resource/ico_cancel.gif.jsf?ln=org.richfaces" type="image" />
- <br />
- </span>
- </span>
- </span>
- </span>
- <span class="rf-is-lst-cord" id="form:inplaceSelectEditList" style="display: none">
- <span class="rf-is-lst-pos" style="width: 200px">
- <span class="rf-is-shdw">
- <span class="rf-is-shdw-t"></span>
- <span class="rf-is-shdw-l"></span>
- <span class="rf-is-shdw-r"></span>
- <span class="rf-is-shdw-b"></span>
- <span class="rf-is-lst-dec">
- <span class="rf-is-lst-scrl" style="height: 100px">
- <span id="form:inplaceSelectEditItems">
- <span id="form:inplaceSelectEditItem0" class="rf-is-opt">Label#1</span>
- <span id="form:inplaceSelectEditItem1" class="rf-is-opt">Label#2</span>
- <span id="form:inplaceSelectEditItem2" class="rf-is-opt">Label#3</span>
- <span id="form:inplaceSelectEditItem3" class="rf-is-opt">Label#4</span>
- </span>
- </span>
- </span>
- </span>
- </span>
- </span>
- </span>
- <script type="text/javascript">
- //ignore
- </script>
-</span>
Modified: trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTestWithControls.xmlunit.xml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTestWithControls.xmlunit.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/inplaceSelectTestWithControls.xmlunit.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,7 +1,7 @@
-<span class="rf-is-d-s" id="form:inplaceSelectWithControls">
+<span class="rf-is" id="form:inplaceSelectWithControls">
<span class="rf-is-lbl rf-is-dflt-lbl" id="form:inplaceSelectWithControlsLabel">Edit Text</span>
<input class="rf-is-none" id="form:inplaceSelectWithControlsFocus" name="form:inplaceSelectWithControlsFocus" style="position: absolute; top: 0px; left: 0px; outline-style: none;" type="image" />
- <span class="rf-is-edit rf-is-none" id="form:inplaceSelectWithControlsEdit">
+ <span class="rf-is-fld-cntr rf-is-none" id="form:inplaceSelectWithControlsEdit">
<input id="form:inplaceSelectWithControlsselValue" name="form:inplaceSelectWithControls" type="hidden" />
<input autocomplete="off" class="rf-is-fld" id="form:inplaceSelectWithControlsInput" name="form:inplaceSelectWithControlsInput" readonly="readonly" type="text" />
<span class="rf-is-btn-prepos">
@@ -11,10 +11,9 @@
<span class="rf-is-shdw-l"></span>
<span class="rf-is-shdw-r"></span>
<span class="rf-is-shdw-b"></span>
- <span id="form:inplaceSelectWithControlsBtn" style="position : relative;">
+ <span id="form:inplaceSelectWithControlsBtn" class="rf-is-btn-cntr" tabindex="-1">
<input class="rf-is-btn" id="form:inplaceSelectWithControlsOkbtn" onmousedown="this.className='rf-is-btn-press'" onmouseout="this.className='rf-is-btn'" onmouseup="this.className='rf-is-btn'" src="/javax.faces.resource/ico_ok.gif.jsf?ln=org.richfaces" type="image" />
<input class="rf-is-btn" id="form:inplaceSelectWithControlsCancelbtn" onmousedown="this.className='rf-is-btn-press'" onmouseout="this.className='rf-is-btn'" onmouseup="this.className='rf-is-btn'" src="/javax.faces.resource/ico_cancel.gif.jsf?ln=org.richfaces" type="image" />
- <br />
</span>
</span>
</span>
Modified: trunk/ui/iteration/api/pom.xml
===================================================================
--- trunk/ui/iteration/api/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -54,9 +54,9 @@
</dependencies>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/iteration/datas...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/iteration/datascro...</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/ui/iterat...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/ui/iteration...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/ui/iteration/dat...</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/iteration/api/src/main/java/org/richfaces/component/Expandable.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/component/Expandable.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/component/Expandable.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -23,7 +23,7 @@
package org.richfaces.component;
-import org.richfaces.event.ToggleListener;
+import org.richfaces.event.CollapsibleSubTableToggleListener;
public interface Expandable {
@@ -31,9 +31,9 @@
public void setExpanded(boolean expand);
- public void addToggleListener(ToggleListener listener);
+ public void addCollapsibleSubTableToggleListener(CollapsibleSubTableToggleListener listener);
- public void removeToggleListener(ToggleListener listener);
+ public void removeCollapsibleSubTableToggleListener(CollapsibleSubTableToggleListener listener);
- public ToggleListener[] getToggleListeners();
+ public CollapsibleSubTableToggleListener[] getCollapsibleSubTableToggleListener();
}
Added: trunk/ui/iteration/api/src/main/java/org/richfaces/event/CollapsibleSubTableToggleEvent.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/CollapsibleSubTableToggleEvent.java (rev 0)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/CollapsibleSubTableToggleEvent.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * 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.
+ */
+
+package org.richfaces.event;
+
+import javax.faces.component.UIComponent;
+import javax.faces.event.FacesEvent;
+import javax.faces.event.FacesListener;
+
+/**
+ * @author Anton Belevich
+ *
+ */
+public class CollapsibleSubTableToggleEvent extends FacesEvent {
+
+ private static final long serialVersionUID = 2916560585918250885L;
+
+ private String togglerId;
+
+ private boolean expanded;
+
+
+
+ public CollapsibleSubTableToggleEvent(UIComponent source, boolean expanded) {
+ this(source, expanded, null);
+ }
+
+ public CollapsibleSubTableToggleEvent(UIComponent source, boolean expanded, String toggerId) {
+ super(source);
+ this.expanded = expanded;
+ this.togglerId = toggerId;
+ }
+
+ public String getTogglerId() {
+ return togglerId;
+ }
+
+ public void setTogglerId(String togglerId) {
+ this.togglerId = togglerId;
+ }
+
+ public boolean isExpanded() {
+ return this.expanded;
+ }
+
+ public boolean isAppropriateListener(FacesListener listener) {
+ return (listener instanceof CollapsibleSubTableToggleListener);
+ }
+
+ public void processListener(FacesListener listener) {
+ ((CollapsibleSubTableToggleListener) listener).processCollapsibleSubTableToggle(this);
+ }
+}
Added: trunk/ui/iteration/api/src/main/java/org/richfaces/event/CollapsibleSubTableToggleListener.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/CollapsibleSubTableToggleListener.java (rev 0)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/CollapsibleSubTableToggleListener.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * 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.
+ */
+
+package org.richfaces.event;
+
+import javax.faces.event.FacesListener;
+
+/**
+ * @author Anton Belevich
+ *
+ */
+public interface CollapsibleSubTableToggleListener extends FacesListener {
+
+ public void processCollapsibleSubTableToggle(CollapsibleSubTableToggleEvent event);
+
+}
Added: trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollEvent.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollEvent.java (rev 0)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollEvent.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,94 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.event;
+
+import javax.faces.component.UIComponent;
+import javax.faces.event.ActionEvent;
+import javax.faces.event.FacesListener;
+
+/**
+ * @author Wesley Hales
+ */
+public class DataScrollEvent extends ActionEvent {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 2657353903701932561L;
+ private String oldScrolVal;
+ private String newScrolVal;
+ private int page;
+
+ /**
+ * Creates a new ScrollerEvent.
+ *
+ * @param component
+ * the source of the event
+ * @param thisOldScrolVal
+ * the previously showing item identifier
+ * @param thisNewScrolVal
+ * the currently showing item identifier
+ */
+ public DataScrollEvent(UIComponent component, String thisOldScrolVal, String thisNewScrolVal, int page) {
+ super(component);
+ oldScrolVal = thisOldScrolVal;
+ newScrolVal = thisNewScrolVal;
+ this.page = page;
+ }
+
+ public String getOldScrolVal() {
+ return oldScrolVal;
+ }
+
+ public String getNewScrolVal() {
+ return newScrolVal;
+ }
+
+ /**
+ * @since 3.2
+ * @return new page or <code>-1</code> if not applicable
+ */
+ public int getPage() {
+ return page;
+ }
+
+ public boolean isAppropriateListener(FacesListener listener) {
+ return super.isAppropriateListener(listener) || (listener instanceof DataScrollListener);
+ }
+
+ /**
+ * Delivers this event to the SliderListener.
+ *
+ * @param listener
+ * the slider listener
+ */
+ public void processListener(FacesListener listener) {
+ if (listener instanceof DataScrollListener) {
+ DataScrollListener dataScrollerListener = (DataScrollListener) listener;
+ dataScrollerListener.processDataScroll(this);
+ }
+
+ if (super.isAppropriateListener(listener)) {
+ super.processListener(listener);
+ }
+ }
+}
Added: trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollListener.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollListener.java (rev 0)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollListener.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,30 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.event;
+
+import javax.faces.event.FacesListener;
+
+public interface DataScrollListener extends FacesListener {
+
+ public void processDataScroll(org.richfaces.event.DataScrollEvent event);
+
+}
Added: trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollSource.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollSource.java (rev 0)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollSource.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,48 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.event;
+
+public interface DataScrollSource {
+
+ /**
+ * Adds a DataScrollListener to this DataScrollSource.
+ *
+ * @param listener
+ * the Scroll listener to be added
+ */
+ public void addScrollListener(org.richfaces.event.DataScrollListener listener);
+
+ /**
+ * Removes a DataFilterSliderListener from this DataScrollSource.
+ *
+ * @param listener the Scroll listener to be removed
+ */
+ public void removeScrollListener(DataScrollListener listener);
+
+ /**
+ * Returns all ScrollListeners for this DataScrollSource.
+ *
+ * @return the Scroll listener array
+ */
+ public DataScrollListener[] getScrollListeners();
+
+}
Deleted: trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollerEvent.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollerEvent.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollerEvent.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,94 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces - Ajax4jsf Component Library
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.event;
-
-import javax.faces.component.UIComponent;
-import javax.faces.event.ActionEvent;
-import javax.faces.event.FacesListener;
-
-/**
- * @author Wesley Hales
- */
-public class DataScrollerEvent extends ActionEvent {
-
- /**
- *
- */
- private static final long serialVersionUID = 2657353903701932561L;
- private String oldScrolVal;
- private String newScrolVal;
- private int page;
-
- /**
- * Creates a new ScrollerEvent.
- *
- * @param component
- * the source of the event
- * @param thisOldScrolVal
- * the previously showing item identifier
- * @param thisNewScrolVal
- * the currently showing item identifier
- */
- public DataScrollerEvent(UIComponent component, String thisOldScrolVal, String thisNewScrolVal, int page) {
- super(component);
- oldScrolVal = thisOldScrolVal;
- newScrolVal = thisNewScrolVal;
- this.page = page;
- }
-
- public String getOldScrolVal() {
- return oldScrolVal;
- }
-
- public String getNewScrolVal() {
- return newScrolVal;
- }
-
- /**
- * @since 3.2
- * @return new page or <code>-1</code> if not applicable
- */
- public int getPage() {
- return page;
- }
-
- public boolean isAppropriateListener(FacesListener listener) {
- return super.isAppropriateListener(listener) || (listener instanceof DataScrollerListener);
- }
-
- /**
- * Delivers this event to the SliderListener.
- *
- * @param listener
- * the slider listener
- */
- public void processListener(FacesListener listener) {
- if (listener instanceof DataScrollerListener) {
- DataScrollerListener dataScrollerListener = (DataScrollerListener) listener;
- dataScrollerListener.processScroller(this);
- }
-
- if (super.isAppropriateListener(listener)) {
- super.processListener(listener);
- }
- }
-}
Deleted: trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollerListener.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollerListener.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollerListener.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,30 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces - Ajax4jsf Component Library
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.event;
-
-import javax.faces.event.FacesListener;
-
-public interface DataScrollerListener extends FacesListener {
-
- public void processScroller(org.richfaces.event.DataScrollerEvent event);
-
-}
Deleted: trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollerSource.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollerSource.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/DataScrollerSource.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,48 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces - Ajax4jsf Component Library
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.event;
-
-public interface DataScrollerSource {
-
- /**
- * Adds a DataScrollerListener to this DataScrollerSource.
- *
- * @param listener
- * the Scroler listener to be added
- */
- public void addScrollerListener(org.richfaces.event.DataScrollerListener listener);
-
- /**
- * Removes a DataFilterSliderListener from this DataScrollerSourceSource.
- *
- * @param listener the Scroler listener to be removed
- */
- public void removeScrollerListener(DataScrollerListener listener);
-
- /**
- * Returns all ScrollerListeners for this DataScrollerSource.
- *
- * @return the Scroler listener array
- */
- public DataScrollerListener[] getScrollerListeners();
-
-}
Deleted: trunk/ui/iteration/api/src/main/java/org/richfaces/event/PagingEvent.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/PagingEvent.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/PagingEvent.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,44 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright ${year}, Red Hat, Inc. and individual contributors
- * 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.
- */
-
-package org.richfaces.event;
-
-import javax.faces.component.UIComponent;
-import javax.faces.event.FacesEvent;
-import javax.faces.event.FacesListener;
-
-public class PagingEvent extends FacesEvent {
-
- private static final long serialVersionUID = -8176111805839316345L;
-
- public PagingEvent(UIComponent component) {
- super(component);
- }
-
- public boolean isAppropriateListener(FacesListener listener) {
- return listener instanceof PagingListener;
- }
-
- public void processListener(FacesListener listener) {
- ((PagingListener) listener).processPaging(this);
- }
-}
Deleted: trunk/ui/iteration/api/src/main/java/org/richfaces/event/PagingListener.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/PagingListener.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/PagingListener.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,31 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright ${year}, Red Hat, Inc. and individual contributors
- * 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.
- */
-
-package org.richfaces.event;
-
-import javax.faces.event.FacesListener;
-
-public interface PagingListener extends FacesListener {
-
- public void processPaging(PagingEvent event);
-
-}
Deleted: trunk/ui/iteration/api/src/main/java/org/richfaces/event/ToggleEvent.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/ToggleEvent.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/ToggleEvent.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,72 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright ${year}, Red Hat, Inc. and individual contributors
- * 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.
- */
-
-package org.richfaces.event;
-
-import javax.faces.component.UIComponent;
-import javax.faces.event.FacesEvent;
-import javax.faces.event.FacesListener;
-
-/**
- * @author Anton Belevich
- *
- */
-public class ToggleEvent extends FacesEvent {
-
- private static final long serialVersionUID = 2916560585918250885L;
-
- private String togglerId;
-
- private boolean expanded;
-
-
-
- public ToggleEvent(UIComponent source, boolean expanded) {
- this(source, expanded, null);
- }
-
- public ToggleEvent(UIComponent source, boolean expanded, String toggerId) {
- super(source);
- this.expanded = expanded;
- this.togglerId = toggerId;
- }
-
- public String getTogglerId() {
- return togglerId;
- }
-
- public void setTogglerId(String togglerId) {
- this.togglerId = togglerId;
- }
-
- public boolean isExpanded() {
- return this.expanded;
- }
-
- public boolean isAppropriateListener(FacesListener listener) {
- return (listener instanceof ToggleListener);
- }
-
- public void processListener(FacesListener listener) {
- ((ToggleListener) listener).processToggle(this);
- }
-}
Deleted: trunk/ui/iteration/api/src/main/java/org/richfaces/event/ToggleListener.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/ToggleListener.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/ToggleListener.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,35 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright ${year}, Red Hat, Inc. and individual contributors
- * 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.
- */
-
-package org.richfaces.event;
-
-import javax.faces.event.FacesListener;
-
-/**
- * @author Anton Belevich
- *
- */
-public interface ToggleListener extends FacesListener {
-
- public void processToggle(ToggleEvent event);
-
-}
Modified: trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeSelectionChangeEvent.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeSelectionChangeEvent.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeSelectionChangeEvent.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -53,7 +53,7 @@
@Override
public void processListener(FacesListener listener) {
- ((TreeSelectionChangeListener) listener).processSelectionChange(this);
+ ((TreeSelectionChangeListener) listener).processTreeSelectionChange(this);
}
public Collection<Object> getOldSelection() {
Modified: trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeSelectionChangeListener.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeSelectionChangeListener.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeSelectionChangeListener.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -30,6 +30,6 @@
*/
public interface TreeSelectionChangeListener extends FacesListener {
- public void processSelectionChange(TreeSelectionChangeEvent event) throws AbortProcessingException;
+ public void processTreeSelectionChange(TreeSelectionChangeEvent event) throws AbortProcessingException;
}
Modified: trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeToggleEvent.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeToggleEvent.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeToggleEvent.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -56,7 +56,7 @@
@Override
public void processListener(FacesListener listener) {
- ((TreeToggleListener) listener).processToggle(this);
+ ((TreeToggleListener) listener).processTreeToggle(this);
}
}
Modified: trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeToggleListener.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeToggleListener.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/event/TreeToggleListener.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -30,6 +30,6 @@
*/
public interface TreeToggleListener extends FacesListener {
- public void processToggle(TreeToggleEvent event) throws AbortProcessingException;
+ public void processTreeToggle(TreeToggleEvent event) throws AbortProcessingException;
}
Modified: trunk/ui/iteration/api/src/main/java/org/richfaces/model/Field.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/model/Field.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/model/Field.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -22,14 +22,18 @@
package org.richfaces.model;
+import java.io.Serializable;
+
import javax.el.ValueExpression;
/**
* @author Konstantin Mishin
*
*/
-public abstract class Field {
+public abstract class Field implements Serializable{
+ private static final long serialVersionUID = 1448767072411366177L;
+
private ValueExpression expression;
public Field(ValueExpression expression) {
Modified: trunk/ui/iteration/api/src/main/java/org/richfaces/model/FilterField.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/model/FilterField.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/model/FilterField.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -30,6 +30,8 @@
*/
public class FilterField extends Field{
+ private static final long serialVersionUID = -935655586515863809L;
+
private Filter<?> filter;
private Object filterValue;
Modified: trunk/ui/iteration/api/src/main/java/org/richfaces/model/SortField.java
===================================================================
--- trunk/ui/iteration/api/src/main/java/org/richfaces/model/SortField.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/api/src/main/java/org/richfaces/model/SortField.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -34,6 +34,8 @@
*/
public class SortField extends Field {
+ private static final long serialVersionUID = 654268763477658266L;
+
private Comparator<?> comparator;
private SortOrder sortOrder;
Modified: trunk/ui/iteration/pom.xml
===================================================================
--- trunk/ui/iteration/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -41,8 +41,8 @@
</modules>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/iteration</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/iteration</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/ui/iteration</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/ui/iteration</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/ui/iteration</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/iteration/ui/pom.xml
===================================================================
--- trunk/ui/iteration/ui/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -60,8 +60,8 @@
</build>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/iteration/datas...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/iteration/datascro...</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/ui/iterat...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/ui/iteration...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/ui/iteration/dat...</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/iteration/ui/src/main/config/faces-config.xml
===================================================================
--- trunk/ui/iteration/ui/src/main/config/faces-config.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/config/faces-config.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -26,7 +26,7 @@
<cdk:event-class>org.richfaces.event.TreeToggleEvent</cdk:event-class>
<cdk:listener-class>org.richfaces.event.TreeToggleListener</cdk:listener-class>
<cdk:source-class>org.richfaces.event.TreeToggleSource</cdk:source-class>
- <cdk:listener-method>processToggle</cdk:listener-method>
+ <cdk:listener-method>processTreeToggle</cdk:listener-method>
<cdk:tag>
<cdk:tag-name>treeToggleListener</cdk:tag-name>
<cdk:tag-type>Facelets</cdk:tag-type>
@@ -39,7 +39,7 @@
<cdk:event-class>org.richfaces.event.TreeSelectionChangeEvent</cdk:event-class>
<cdk:listener-class>org.richfaces.event.TreeSelectionChangeListener</cdk:listener-class>
<cdk:source-class>org.richfaces.event.TreeSelectionChangeSource</cdk:source-class>
- <cdk:listener-method>processSelectionChange</cdk:listener-method>
+ <cdk:listener-method>processTreeSelectionChange</cdk:listener-method>
<cdk:tag>
<cdk:tag-name>treeSelectionChangeListener</cdk:tag-name>
<cdk:tag-type>Facelets</cdk:tag-type>
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractCollapsibleSubTable.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractCollapsibleSubTable.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractCollapsibleSubTable.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -28,13 +28,14 @@
import javax.faces.event.AbortProcessingException;
import javax.faces.event.FacesEvent;
+import org.richfaces.StateHolderArray;
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.cdk.annotations.Tag;
import org.richfaces.cdk.annotations.TagType;
-import org.richfaces.event.ToggleEvent;
-import org.richfaces.event.ToggleListener;
+import org.richfaces.event.CollapsibleSubTableToggleEvent;
+import org.richfaces.event.CollapsibleSubTableToggleListener;
/**
@@ -46,7 +47,8 @@
family = AbstractCollapsibleSubTable.COMPONENT_FAMILY,
generate = "org.richfaces.component.UICollapsibleSubTable",
renderer = @JsfRenderer(type = "org.richfaces.CollapsibleSubTableRenderer"),
- tag = @Tag(name = "collapsibleSubTable", handler = "org.richfaces.taglib.CollapsibleSubTableHandler", type = TagType.Facelets)
+ tag = @Tag(name = "collapsibleSubTable", handler = "org.richfaces.taglib.CollapsibleSubTableHandler", type = TagType.Facelets),
+ attributes = "rowKeyConverter-prop.xml"
)
public abstract class AbstractCollapsibleSubTable extends UIDataTableBase implements Column, Expandable {
@@ -82,8 +84,8 @@
public abstract String getExpandMode();
public void broadcast(FacesEvent event) throws AbortProcessingException {
- if (event instanceof ToggleEvent) {
- ToggleEvent toggleEvent = (ToggleEvent) event;
+ if (event instanceof CollapsibleSubTableToggleEvent) {
+ CollapsibleSubTableToggleEvent toggleEvent = (CollapsibleSubTableToggleEvent) event;
boolean newValue = toggleEvent.isExpanded();
getStateHelper().put(PropertyKeys.expanded, newValue);
@@ -127,23 +129,24 @@
throw new IllegalArgumentException("subtable is not sortable element");
}
- public void addToggleListener(ToggleListener listener) {
+ public void addCollapsibleSubTableToggleListener(CollapsibleSubTableToggleListener listener) {
addFacesListener(listener);
}
- public void removeToggleListener(ToggleListener listener) {
+ public void removeCollapsibleSubTableToggleListener(CollapsibleSubTableToggleListener listener) {
removeFacesListener(listener);
}
- public ToggleListener[] getToggleListeners() {
- return (ToggleListener[]) getFacesListeners(ToggleListener.class);
+ public CollapsibleSubTableToggleListener[] getCollapsibleSubTableToggleListener() {
+ return (CollapsibleSubTableToggleListener[]) getFacesListeners(CollapsibleSubTableToggleListener.class);
}
public void setIterationState(Object stateObject) {
- Object[] state = (Object[]) stateObject;
- if (state != null) {
- super.setIterationState(state[0]);
- getStateHelper().put(PropertyKeys.expanded, state[1]);
+ StateHolderArray stateHolderList = (StateHolderArray) stateObject;
+
+ if (stateHolderList != null && !stateHolderList.isEmpty()) {
+ super.setIterationState(stateHolderList.get(0));
+ getStateHelper().put(PropertyKeys.expanded, (Boolean) stateHolderList.get(1));
} else {
super.setIterationState(null);
getStateHelper().put(PropertyKeys.expanded, null);
@@ -151,9 +154,11 @@
}
public Object getIterationState() {
- Object [] state = new Object[2];
- state[0] = super.getIterationState();
- state[1] = getStateHelper().get(PropertyKeys.expanded);
- return state;
+ StateHolderArray holderList = new StateHolderArray();
+
+ holderList.add(super.getIterationState());
+ holderList.add(getStateHelper().get(PropertyKeys.expanded));
+
+ return holderList;
}
}
\ No newline at end of file
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataGrid.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataGrid.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataGrid.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -58,7 +58,7 @@
generate = "org.richfaces.component.UIDataGrid",
renderer = @JsfRenderer(type = "org.richfaces.DataGridRenderer"),
tag = @Tag(name="dataGrid", handler="org.richfaces.taglib.DataGridHandler", type=TagType.Facelets),
- attributes = {"dataGrid-rows-props.xml"}
+ attributes = {"core-props.xml", "dataGrid-rows-props.xml", "rowKeyConverter-prop.xml"}
)
public abstract class AbstractDataGrid extends UISequence implements Row, MetaComponentResolver, MetaComponentEncoder {
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataScroller.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataScroller.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataScroller.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -39,7 +39,7 @@
import org.richfaces.DataScrollerUtils;
import org.richfaces.application.MessageFactory;
import org.richfaces.application.ServiceTracker;
-import org.richfaces.appplication.FacesMessages;
+import org.richfaces.application.FacesMessages;
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.Facet;
import org.richfaces.cdk.annotations.JsfComponent;
@@ -47,9 +47,9 @@
import org.richfaces.cdk.annotations.Tag;
import org.richfaces.cdk.annotations.TagType;
import org.richfaces.component.util.MessageUtil;
-import org.richfaces.event.DataScrollerEvent;
-import org.richfaces.event.DataScrollerListener;
-import org.richfaces.event.DataScrollerSource;
+import org.richfaces.event.DataScrollEvent;
+import org.richfaces.event.DataScrollListener;
+import org.richfaces.event.DataScrollSource;
@JsfComponent(
@@ -59,7 +59,7 @@
renderer = @JsfRenderer(type = "org.richfaces.DataScrollerRenderer"),
tag = @Tag(name="dataScroller", handler="org.richfaces.taglib.DataScrollerHandler", type=TagType.Facelets)
)
-public abstract class AbstractDataScroller extends UIComponentBase implements DataScrollerSource, IterationStateHolder {
+public abstract class AbstractDataScroller extends UIComponentBase implements DataScrollSource, IterationStateHolder {
public static final String COMPONENT_TYPE = "org.richfaces.DataScroller";
@@ -96,6 +96,9 @@
public abstract String getLastPageMode();
@Attribute
+ public abstract Object getRender();
+
+ @Attribute
public abstract int getMaxPages();
public int getMaxPagesOrDefault() {
@@ -136,21 +139,21 @@
getStateHelper().put("for", forId);
}
- public void addScrollerListener(DataScrollerListener listener) {
+ public void addScrollListener(DataScrollListener listener) {
addFacesListener(listener);
}
- public DataScrollerListener[] getScrollerListeners() {
- return (DataScrollerListener[]) getFacesListeners(DataScrollerListener.class);
+ public DataScrollListener[] getScrollListeners() {
+ return (DataScrollListener[]) getFacesListeners(DataScrollListener.class);
}
- public void removeScrollerListener(DataScrollerListener listener) {
+ public void removeScrollListener(DataScrollListener listener) {
removeFacesListener(listener);
}
public void broadcast(FacesEvent event) throws AbortProcessingException {
- if (event instanceof DataScrollerEvent) {
- DataScrollerEvent dataScrollerEvent = (DataScrollerEvent) event;
+ if (event instanceof DataScrollEvent) {
+ DataScrollEvent dataScrollerEvent = (DataScrollEvent) event;
updateModel(dataScrollerEvent.getPage());
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataTable.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataTable.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataTable.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -41,7 +41,8 @@
family = AbstractDataTable.COMPONENT_FAMILY,
generate = "org.richfaces.component.UIDataTable",
renderer = @JsfRenderer(type = "org.richfaces.DataTableRenderer"),
- tag = @Tag(name="dataTable", handler="org.richfaces.taglib.DataTableHandler", type=TagType.Facelets)
+ tag = @Tag(name="dataTable", handler="org.richfaces.taglib.DataTableHandler", type=TagType.Facelets),
+ attributes = "rowKeyConverter-prop.xml"
)
public abstract class AbstractDataTable extends UIDataTableBase {
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractExtendedDataTable.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractExtendedDataTable.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractExtendedDataTable.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -22,9 +22,12 @@
package org.richfaces.component;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Map;
+import org.richfaces.cdk.annotations.*;
+import org.richfaces.context.ExtendedVisitContext;
+import org.richfaces.context.ExtendedVisitContextMode;
+import org.richfaces.log.Logger;
+import org.richfaces.log.RichfacesLogger;
+import org.richfaces.model.SelectionMode;
import javax.el.ValueExpression;
import javax.faces.component.UIComponent;
@@ -32,19 +35,11 @@
import javax.faces.component.visit.VisitContext;
import javax.faces.component.visit.VisitResult;
import javax.faces.context.FacesContext;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Map;
-import org.richfaces.cdk.annotations.Attribute;
-import org.richfaces.cdk.annotations.EventName;
-import org.richfaces.cdk.annotations.JsfComponent;
-import org.richfaces.cdk.annotations.JsfRenderer;
-import org.richfaces.cdk.annotations.Tag;
-import org.richfaces.context.ExtendedVisitContext;
-import org.richfaces.context.ExtendedVisitContextMode;
-import org.richfaces.log.Logger;
-import org.richfaces.log.RichfacesLogger;
-import org.richfaces.model.SelectionMode;
-
/**
* @author Konstantin Mishin
*
@@ -56,7 +51,8 @@
family = AbstractExtendedDataTable.COMPONENT_FAMILY,
generate = "org.richfaces.component.UIExtendedDataTable",
renderer = @JsfRenderer(type = "org.richfaces.ExtendedDataTableRenderer"),
- tag = @Tag(name = "extendedDataTable")
+ tag = @Tag(name = "extendedDataTable", handler = "org.richfaces.taglib.ExtendedDataTableHandler", type = TagType.Facelets),
+ attributes = "rowKeyConverter-prop.xml"
)
public abstract class AbstractExtendedDataTable extends UIDataTableBase implements MetaComponentResolver, MetaComponentEncoder {
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractList.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractList.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractList.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -21,28 +21,27 @@
package org.richfaces.component;
-import java.util.Iterator;
-
-import javax.faces.component.UIComponent;
-
-import org.richfaces.cdk.annotations.Attribute;
-import org.richfaces.cdk.annotations.EventName;
-import org.richfaces.cdk.annotations.Facet;
-import org.richfaces.cdk.annotations.JsfComponent;
-import org.richfaces.cdk.annotations.JsfRenderer;
-import org.richfaces.cdk.annotations.Tag;
-
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.Iterators;
import com.google.common.collect.Maps;
+import org.richfaces.cdk.annotations.*;
+import javax.faces.component.UIComponent;
+import java.util.Iterator;
+
/**
* JSF component class
*
*/
-@JsfComponent(type = "org.richfaces.List", family = "org.richfaces.List", facets = @Facet(name = AbstractList.TERM),tag=@Tag(name="list"),
- renderer = @JsfRenderer(type = "org.richfaces.ListRenderer"))
+@JsfComponent(
+ type = "org.richfaces.List",
+ family = "org.richfaces.List",
+ facets = @Facet(name = AbstractList.TERM),
+ tag = @Tag(name = "list", handler = "org.richfaces.taglib.ListHandler", type = TagType.Facelets),
+ renderer = @JsfRenderer(type = "org.richfaces.ListRenderer"),
+ attributes = "rowKeyConverter-prop.xml"
+)
public abstract class AbstractList extends UISequence {
public static final String TERM = "term";
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractTree.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractTree.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractTree.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -30,7 +30,6 @@
import javax.el.ELContext;
import javax.el.ELException;
-import javax.el.MethodExpression;
import javax.el.ValueExpression;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
@@ -50,14 +49,13 @@
import org.ajax4jsf.model.DataComponentState;
import org.ajax4jsf.model.DataVisitor;
import org.ajax4jsf.model.ExtendedDataModel;
+import org.richfaces.application.FacesMessages;
import org.richfaces.application.MessageFactory;
import org.richfaces.application.ServiceTracker;
-import org.richfaces.appplication.FacesMessages;
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.EventName;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.JsfRenderer;
-import org.richfaces.cdk.annotations.Signature;
import org.richfaces.cdk.annotations.Tag;
import org.richfaces.component.util.MessageUtil;
import org.richfaces.context.ExtendedVisitContext;
@@ -68,6 +66,7 @@
import org.richfaces.event.TreeToggleEvent;
import org.richfaces.event.TreeToggleListener;
import org.richfaces.event.TreeToggleSource;
+import org.richfaces.model.ClassicTreeNodeDataModelImpl;
import org.richfaces.model.DeclarativeModelKey;
import org.richfaces.model.DeclarativeTreeDataModelImpl;
import org.richfaces.model.DeclarativeTreeModel;
@@ -75,6 +74,7 @@
import org.richfaces.model.TreeDataModel;
import org.richfaces.model.TreeDataModelTuple;
import org.richfaces.model.TreeDataVisitor;
+import org.richfaces.model.TreeNode;
import org.richfaces.renderkit.MetaComponentRenderer;
import com.google.common.base.Predicate;
@@ -92,7 +92,8 @@
family = AbstractTree.COMPONENT_FAMILY,
tag = @Tag(name = "tree", handler = "org.richfaces.view.facelets.TreeHandler"),
renderer = @JsfRenderer(type = "org.richfaces.TreeRenderer"),
- attributes = {"ajax-props.xml", "events-props.xml", "core-props.xml", "i18n-props.xml", "tree-common-props.xml"}
+ attributes = {"ajax-props.xml", "events-props.xml", "core-props.xml", "i18n-props.xml", "tree-common-props.xml",
+ "rowKeyConverter-prop.xml", "tree-serverEventListeners-props.xml"}
)
//TODO add rowData caching for wrapper events
public abstract class AbstractTree extends UIDataAdaptor implements MetaComponentResolver, MetaComponentEncoder, TreeSelectionChangeSource, TreeToggleSource {
@@ -138,14 +139,6 @@
selection
}
- @SuppressWarnings("unused")
- @Attribute(generate = false, signature = @Signature(returnType = Void.class, parameters = TreeSelectionChangeEvent.class))
- private MethodExpression selectionChangeListener;
-
- @SuppressWarnings("unused")
- @Attribute(generate = false, signature = @Signature(returnType = Void.class, parameters = TreeToggleListener.class))
- private MethodExpression toggleListener;
-
private transient TreeRange treeRange;
private transient UIComponent currentComponent = this;
@@ -203,6 +196,7 @@
return COMPONENT_FAMILY;
}
+ @Attribute
public Collection<Object> getSelection() {
@SuppressWarnings("unchecked")
Collection<Object> selection = (Collection<Object>) getStateHelper().eval(PropertyKeys.selection);
@@ -481,9 +475,20 @@
Object value = getValue();
if (value == null) {
dataModel = new DeclarativeTreeDataModelImpl(this);
+ } else if (value instanceof TreeNode) {
+ dataModel = new ClassicTreeNodeDataModelImpl();
+ dataModel.setWrappedData(value);
+ } else if (value instanceof TreeDataModel<?>) {
+ if (value instanceof ExtendedDataModel<?>) {
+ dataModel = (ExtendedDataModel<?>) value;
+ } else {
+ throw new IllegalArgumentException(
+ MessageFormat.format("TreeDataModel implementation {0} is not a subclass of ExtendedDataModel",
+ value.getClass().getName()));
+ }
} else {
dataModel = new SwingTreeNodeDataModelImpl();
- dataModel.setWrappedData(getValue());
+ dataModel.setWrappedData(value);
}
return dataModel;
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractTreeModelAdaptor.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractTreeModelAdaptor.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractTreeModelAdaptor.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -31,6 +31,7 @@
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
+import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.convert.ConverterUtil;
/**
@@ -45,6 +46,7 @@
private Converter rowKeyConverter;
+ @Attribute
public Converter getRowKeyConverter() {
if (this.rowKeyConverter != null) {
return this.rowKeyConverter;
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractTreeNode.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractTreeNode.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractTreeNode.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -23,7 +23,6 @@
import java.io.IOException;
-import javax.el.MethodExpression;
import javax.el.ValueExpression;
import javax.faces.component.UIComponent;
import javax.faces.component.UIComponentBase;
@@ -40,7 +39,6 @@
import org.richfaces.cdk.annotations.EventName;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.JsfRenderer;
-import org.richfaces.cdk.annotations.Signature;
import org.richfaces.cdk.annotations.Tag;
import org.richfaces.context.ExtendedVisitContext;
import org.richfaces.context.ExtendedVisitContextMode;
@@ -58,7 +56,7 @@
family = AbstractTreeNode.COMPONENT_FAMILY,
tag = @Tag(name = "treeNode", handler = "org.richfaces.view.facelets.TreeNodeHandler"),
renderer = @JsfRenderer(type = "org.richfaces.TreeNodeRenderer"),
- attributes = {"events-props.xml", "core-props.xml", "i18n-props.xml", "tree-common-props.xml"}
+ attributes = {"events-props.xml", "core-props.xml", "i18n-props.xml", "tree-common-props.xml", "treeNode-serverEventListeners-props.xml"}
)
public abstract class AbstractTreeNode extends UIComponentBase implements MetaComponentResolver, MetaComponentEncoder, IterationStateHolder, TreeToggleSource {
@@ -72,9 +70,6 @@
expanded
}
- @Attribute(generate = false, signature = @Signature(returnType = Void.class, parameters = TreeToggleEvent.class))
- private MethodExpression toggleListener;
-
public AbstractTreeNode() {
setRendererType("org.richfaces.TreeNodeRenderer");
}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableColumnsIterator.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableColumnsIterator.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableColumnsIterator.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -24,34 +24,38 @@
import java.util.Iterator;
+import javax.faces.component.UIColumn;
import javax.faces.component.UIComponent;
+import com.google.common.collect.AbstractIterator;
+
/**
* Iterator for all children table columns.
*
* @author asmirnov
*
*/
-class DataTableColumnsIterator extends DataTableIteratorBase<UIComponent> {
+class DataTableColumnsIterator extends AbstractIterator<UIComponent> {
- protected Iterator<UIComponent> childrenIterator;
-
- public DataTableColumnsIterator(UIComponent dataTable) {
- this.childrenIterator = dataTable.getChildren().iterator();
+ private Iterator<UIComponent> childrenIterator;
+
+ public DataTableColumnsIterator(UIComponent component) {
+ super();
+ this.childrenIterator = component.getChildren().iterator();
}
- protected UIComponent nextItem() {
- while (childrenIterator != null && childrenIterator.hasNext()) {
+ @Override
+ protected UIComponent computeNext() {
+ while (childrenIterator.hasNext()) {
UIComponent child = childrenIterator.next();
- if (child instanceof javax.faces.component.UIColumn || child instanceof Column) {
+
+ if (child instanceof UIColumn || child instanceof Column) {
return child;
}
}
-
- // TODO nick - free childrenIterator field
-
- return null;
+
+ return endOfData();
}
-
+
}
Added: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableDataChilderIterator.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableDataChilderIterator.java (rev 0)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableDataChilderIterator.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,69 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2011, Red Hat, Inc. and individual contributors
+ * 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.
+ */
+package org.richfaces.component;
+
+import java.util.Iterator;
+
+import javax.faces.component.UIColumn;
+import javax.faces.component.UIComponent;
+
+import com.google.common.collect.AbstractIterator;
+import com.google.common.collect.Iterators;
+
+/**
+ * @author Nick Belaevski
+ *
+ */
+class DataTableDataChilderIterator extends AbstractIterator<UIComponent> {
+
+ private Iterator<UIComponent> dataTableChildren;
+
+ private Iterator<UIComponent> columnChildren = Iterators.emptyIterator();
+
+ public DataTableDataChilderIterator(UIComponent dataTable) {
+ super();
+ this.dataTableChildren = dataTable.getChildren().iterator();
+ }
+
+ @Override
+ protected UIComponent computeNext() {
+ while (columnChildren.hasNext() || dataTableChildren.hasNext()) {
+ if (columnChildren.hasNext()) {
+ return columnChildren.next();
+ }
+
+ UIComponent child = dataTableChildren.next();
+ if (child instanceof UIColumn || child instanceof AbstractColumn) {
+ columnChildren = child.getChildren().iterator();
+ } else {
+ columnChildren = Iterators.emptyIterator();
+ return child;
+ }
+ }
+
+ dataTableChildren = Iterators.emptyIterator();
+ columnChildren = Iterators.emptyIterator();
+
+ return endOfData();
+ }
+
+}
Deleted: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableDataIterator.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableDataIterator.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableDataIterator.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,71 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright ${year}, Red Hat, Inc. and individual contributors
- * 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.
- */
-
-package org.richfaces.component;
-
-import java.util.Iterator;
-
-import javax.faces.component.UIColumn;
-import javax.faces.component.UIComponent;
-
-
-class DataTableDataIterator extends DataTableIteratorBase<UIComponent> {
-
- private Iterator<UIComponent> facetsIterator;
-
- private Iterator<UIComponent> childrenIterator;
-
- public DataTableDataIterator(UIDataTableBase dataTable) {
- this.childrenIterator = dataTable.getChildren().iterator();
- this.facetsIterator = dataTable.getFacets().values().iterator();
- }
-
- protected UIComponent nextItem() {
-
- UIComponent nextColumn = null;
- while (nextColumn == null && childrenIterator.hasNext()) {
- UIComponent child = childrenIterator.next();
- if ((child instanceof UIColumn) || (child instanceof Column)) {
- nextColumn = child;
- }
- }
-
- // TODO nick - free childrenIterator
-
- while (nextColumn == null && facetsIterator.hasNext()) {
- nextColumn = facetsIterator.next();
- }
-
- // TODO nick - free facetsIterator
-
- return nextColumn;
- }
-
- protected Iterator<UIComponent> getFacetsIterator() {
- return this.facetsIterator;
- }
-
- protected Iterator<UIComponent> getChildrenIterator() {
- return this.childrenIterator;
- }
-
-}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableFixedChildrenIterator.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableFixedChildrenIterator.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableFixedChildrenIterator.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -27,56 +27,45 @@
import javax.faces.component.UIColumn;
import javax.faces.component.UIComponent;
+import com.google.common.collect.AbstractIterator;
+import com.google.common.collect.Iterators;
-class DataTableFixedChildrenIterator extends DataTableDataIterator {
- private Iterator<UIComponent> currentColumnIterator;
+class DataTableFixedChildrenIterator extends AbstractIterator<UIComponent> {
- public DataTableFixedChildrenIterator(UIDataTableBase dataTable) {
- super(dataTable);
+ private Iterator<UIComponent> facetsIterator;
+
+ private Iterator<UIComponent> dataTableChildren;
+
+ private Iterator<UIComponent> columnFacets = Iterators.emptyIterator();
+
+ public DataTableFixedChildrenIterator(UIComponent dataTable) {
+ super();
+
+ this.facetsIterator = dataTable.getFacets().values().iterator();
+ this.dataTableChildren = dataTable.getChildren().iterator();
}
- protected UIComponent nextItem() {
- UIComponent next = null;
-
- if (currentColumnIterator != null && currentColumnIterator.hasNext()) {
- next = currentColumnIterator.next();
- checkColumnIterator();
+ @Override
+ protected UIComponent computeNext() {
+ if (facetsIterator.hasNext()) {
+ return facetsIterator.next();
}
-
- if (next == null) {
- Iterator<UIComponent> childrenIterator = getChildrenIterator();
- while (next == null && childrenIterator.hasNext()) {
- UIComponent child = childrenIterator.next();
- if ((child instanceof UIColumn) && child.isRendered()) {
- currentColumnIterator = getChildFacetIterator(child);
- next = nextItem();
- }
+
+ while (columnFacets.hasNext() || dataTableChildren.hasNext()) {
+ if (columnFacets.hasNext()) {
+ return columnFacets.next();
}
+
+ UIComponent child = dataTableChildren.next();
+ if (child instanceof UIColumn || child instanceof AbstractColumn) {
+ columnFacets = child.getFacets().values().iterator();
+ }
}
- if (next == null) {
- next = getNextFacet();
- }
- return next;
- }
+ dataTableChildren = Iterators.emptyIterator();
+ columnFacets = Iterators.emptyIterator();
- protected UIComponent getNextFacet() {
- Iterator<UIComponent> facetsIterator = getFacetsIterator();
- if(facetsIterator.hasNext()) {
- return facetsIterator.next();
- }
- return null;
+ return endOfData();
}
-
- protected void checkColumnIterator() {
- if (!currentColumnIterator.hasNext()) {
- currentColumnIterator = null;
- }
- }
-
- protected Iterator<UIComponent> getChildFacetIterator(UIComponent component) {
- return component.getFacets().values().iterator();
- }
-
}
Deleted: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableIteratorBase.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableIteratorBase.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/DataTableIteratorBase.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,72 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright ${year}, Red Hat, Inc. and individual contributors
- * 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.
- */
-package org.richfaces.component;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-/**
- * @author Anton Belevich
- * @author Nick Belaevski
- */
-public abstract class DataTableIteratorBase<E> implements Iterator<E> {
-
- private boolean isCompleted = false;
-
- private E next = null;
-
- private void setupNext() {
- if (!isCompleted) {
- if (next == null) {
- next = nextItem();
-
- if (next == null) {
- isCompleted = true;
- }
- }
- }
- }
-
- public boolean hasNext() {
- setupNext();
-
- return next != null;
- }
-
- public E next() {
- setupNext();
-
- if (next == null) {
- throw new NoSuchElementException();
- }
-
- E result = next;
- next = null;
- return result;
- }
-
- public void remove() {
- throw new UnsupportedOperationException("Iterator is read-only");
- }
-
- protected abstract E nextItem();
-}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UIDataTableBase.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UIDataTableBase.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UIDataTableBase.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -32,7 +32,6 @@
import java.util.Map;
import java.util.Set;
-import javax.faces.component.UIColumn;
import javax.faces.component.UIComponent;
import javax.faces.component.visit.VisitCallback;
import javax.faces.component.visit.VisitContext;
@@ -42,7 +41,6 @@
import javax.faces.event.PhaseId;
import javax.faces.event.PreRenderComponentEvent;
-import org.ajax4jsf.component.IterationStateHolder;
import org.ajax4jsf.model.DataVisitor;
import org.ajax4jsf.model.ExtendedDataModel;
import org.ajax4jsf.model.Range;
@@ -173,7 +171,7 @@
}
protected Iterator<UIComponent> dataChildren() {
- return new DataTableDataIterator(this);
+ return new DataTableDataChilderIterator(this);
}
public boolean isColumnFacetPresent(String facetName) {
@@ -334,6 +332,16 @@
return super.visitFixedChildren(visitContext, callback);
}
+ @Override
+ protected void restoreChildState(FacesContext facesContext) {
+ // Forces client id to be reset
+ for (UIComponent child : getChildren()) {
+ child.setId(child.getId());
+ }
+
+ super.restoreChildState(facesContext);
+ }
+
protected boolean visitDataChildren(VisitContext visitContext, final VisitCallback callback, boolean visitRows) {
if (visitContext instanceof ExtendedVisitContext && visitRows) {
ExtendedVisitContext extendedVisitContext = (ExtendedVisitContext) visitContext;
@@ -394,50 +402,4 @@
return SUPPORTED_META_COMPONENTS;
}
- private boolean isStateful(UIComponent component) {
- if (component instanceof IterationStateHolder) {
- return true;
- }
-
- if (component instanceof UIColumn || component instanceof Column) {
- return false;
- }
-
- return true;
- }
-
- @Override
- protected void saveChildState(FacesContext facesContext) {
- Iterator<UIComponent> dataChildren = dataChildren();
- while (dataChildren.hasNext()) {
- UIComponent child = dataChildren.next();
-
- if (isStateful(child)) {
- saveChildState(facesContext, child);
- } else {
- for (UIComponent grandKid: child.getChildren()) {
- saveChildState(facesContext, grandKid);
- }
- }
- }
- }
-
- @Override
- protected void restoreChildState(FacesContext facesContext) {
- Iterator<UIComponent> dataChildren = dataChildren();
- while (dataChildren.hasNext()) {
- UIComponent child = dataChildren.next();
-
- if (isStateful(child)) {
- restoreChildState(facesContext, child);
- } else {
- //reset cached clientId
- child.setId(child.getId());
-
- for (UIComponent grandKid: child.getChildren()) {
- restoreChildState(facesContext, grandKid);
- }
- }
- }
- }
}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UITreeModelAdaptor.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UITreeModelAdaptor.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UITreeModelAdaptor.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -21,6 +21,7 @@
*/
package org.richfaces.component;
+import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.Tag;
@@ -46,6 +47,7 @@
return COMPONENT_FAMILY;
}
+ @Attribute
public Object getNodes() {
Object nodes = getStateHelper().eval(PropertyKeys.nodes);
@@ -58,6 +60,7 @@
getStateHelper().put(PropertyKeys.nodes, nodes);
}
+ @Attribute
public boolean isLeaf() {
return (Boolean) getStateHelper().eval(PropertyKeys.leaf, false);
}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UITreeModelRecursiveAdaptor.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UITreeModelRecursiveAdaptor.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UITreeModelRecursiveAdaptor.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -21,6 +21,7 @@
*/
package org.richfaces.component;
+import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.Tag;
@@ -46,6 +47,7 @@
return COMPONENT_FAMILY;
}
+ @Attribute
public Object getRoots() {
Object roots = getStateHelper().eval(PropertyKeys.roots);
@@ -58,6 +60,7 @@
getStateHelper().put(PropertyKeys.roots, roots);
}
+ @Attribute
public Object getNodes() {
return getStateHelper().eval(PropertyKeys.nodes);
}
@@ -70,6 +73,7 @@
return null;
}
+ @Attribute
public boolean isLeaf() {
return (Boolean) getStateHelper().eval(PropertyKeys.leaf, false);
}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/event/MethodExpressionTreeSelectionChangeListener.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/event/MethodExpressionTreeSelectionChangeListener.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/event/MethodExpressionTreeSelectionChangeListener.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -43,7 +43,7 @@
super(methodExpressionOneArg);
}
- public void processSelectionChange(TreeSelectionChangeEvent event) throws AbortProcessingException {
+ public void processTreeSelectionChange(TreeSelectionChangeEvent event) throws AbortProcessingException {
processEvent(event);
}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/event/MethodExpressionTreeToggleListener.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/event/MethodExpressionTreeToggleListener.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/event/MethodExpressionTreeToggleListener.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -42,7 +42,7 @@
super(methodExpressionOneArg);
}
- public void processToggle(TreeToggleEvent event) throws AbortProcessingException {
+ public void processTreeToggle(TreeToggleEvent event) throws AbortProcessingException {
processEvent(event);
}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/model/ClassicTreeNodeDataModelImpl.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/model/ClassicTreeNodeDataModelImpl.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/model/ClassicTreeNodeDataModelImpl.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -36,8 +36,6 @@
private static final Converter DEFAULT_CONVERTER = new StringSequenceRowKeyConverter();
- private TreeNode rootNode;
-
public boolean isLeaf() {
return getData().isLeaf();
}
@@ -53,12 +51,12 @@
@Override
public Object getWrappedData() {
- return rootNode;
+ return getRootNode();
}
@Override
public void setWrappedData(Object data) {
- this.rootNode = (TreeNode) data;
+ setRootNode((TreeNode) data);
}
public Converter getRowKeyConverter() {
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/model/iterators/ClassicTreeNodeTuplesIterator.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/model/iterators/ClassicTreeNodeTuplesIterator.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/model/iterators/ClassicTreeNodeTuplesIterator.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -34,8 +34,6 @@
private TreeNode treeNode;
- private SequenceRowKey baseKey;
-
private Iterator<Object> childrenKeysIterator = null;
public ClassicTreeNodeTuplesIterator(TreeNode treeNode, SequenceRowKey baseKey) {
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableBaseRenderer.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableBaseRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableBaseRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -123,7 +123,9 @@
public void encodeFirstRowStart(ResponseWriter writer, FacesContext context, String parentId, int currentRow, UIComponent component) throws IOException {
writer.startElement(HtmlConstants.TR_ELEMENT, component);
String styleClass = concatClasses(getRowClass(context, parentId), getFirstRowClass(context, parentId), component.getAttributes().get(ROW_CLASS));
- encodeStyleClass(writer, context, component, HtmlConstants.STYLE_CLASS_ATTR, styleClass);
+ if (styleClass.length() > 0) {
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, styleClass, null);
+ }
}
public void encodeFirstRowEnd(ResponseWriter writer)throws IOException {
@@ -133,7 +135,9 @@
public void encodeRowStart(ResponseWriter writer, FacesContext context, String parentId, int currentRow, UIComponent component) throws IOException {
writer.startElement(HtmlConstants.TR_ELEMENT, component);
String styleClass = concatClasses(getRowClass(context, parentId), component.getAttributes().get(ROW_CLASS));
- encodeStyleClass(writer, context, component, HtmlConstants.STYLE_CLASS_ATTR, styleClass);
+ if (styleClass.length() > 0) {
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, styleClass, null);
+ }
}
public void encodeRowEnd(ResponseWriter writer) throws IOException {
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -84,8 +84,7 @@
decodeSortingFiltering(context, component);
}
- @Override
- protected void encodeRows(FacesContext facesContext, RowHolderBase rowHolder) {
+ protected void putRowStylesIntoContext(FacesContext facesContext, RowHolderBase rowHolder) {
UIDataTableBase dataTableBase = (UIDataTableBase)rowHolder.getRow();
String rowClass = getRowSkinClass();
@@ -96,9 +95,7 @@
cellClass = mergeStyleClasses(CELL_CLASS_KEY, cellClass, dataTableBase);
firstClass = mergeStyleClasses(FIRST_ROW_CLASS_KEY, firstClass, dataTableBase);
- saveRowStyles(facesContext, dataTableBase.getClientId(facesContext), firstClass, rowClass, cellClass);
-
- super.encodeRows(facesContext, rowHolder);
+ saveRowStyles(facesContext, dataTableBase.getClientId(facesContext), firstClass, rowClass, cellClass);
}
protected boolean isEncodeHeaders(UIDataTableBase table) {
@@ -146,35 +143,10 @@
encodeBeforeRows(writer, facesContext, dataTableBase, encodeParentTBody, encodePartialUpdate);
if (rowCount > 0) {
- processRows(writer, facesContext, dataTableBase, new Object[] {encodePartialUpdate, encodeParentTBody});
+ processRows(writer, facesContext, dataTableBase, new Object[]{encodePartialUpdate, encodeParentTBody});
} else {
- int columns = getColumnsCount(dataTableBase.columns());
-
- writer.startElement(HtmlConstants.TR_ELEMENT, dataTableBase);
- String styleClass = (String) dataTableBase.getAttributes().get("noDataStyleClass");
- styleClass = concatClasses(getNoDataClass(), styleClass);
- writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, styleClass, null);
-
- writer.startElement(HtmlConstants.TD_ELEM, dataTableBase);
- writer.writeAttribute(HtmlConstants.COLSPAN_ATTRIBUTE, columns, null);
-
- String cellStyleClass = (String) dataTableBase.getAttributes().get("noDataCellStyleClass");
- cellStyleClass = concatClasses( getNoDataCellClass(), cellStyleClass);
- writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, cellStyleClass, null);
-
- UIComponent noDataFacet = dataTableBase.getNoData();
- if (noDataFacet != null && noDataFacet.isRendered()) {
- noDataFacet.encodeAll(facesContext);
- } else {
- String noDataLabel = dataTableBase.getNoDataLabel();
- if (noDataLabel != null) {
- writer.writeText(noDataLabel, "noDataLabel");
- }
- }
-
- writer.endElement(HtmlConstants.TD_ELEM);
- writer.endElement(HtmlConstants.TR_ELEMENT);
- }
+ encodeNoDataFacetOrLabel(writer,facesContext,dataTableBase);
+ }
encodeAfterRows(writer, facesContext, dataTableBase, encodeParentTBody, encodePartialUpdate);
@@ -193,6 +165,37 @@
dataTableBase.setRowKey(facesContext, key);
dataTableBase.restoreOrigValue(facesContext);
}
+
+ public void encodeNoDataFacetOrLabel(ResponseWriter writer, FacesContext facesContext, UIDataTableBase dataTableBase)
+ throws IOException {
+
+ int columns = getColumnsCount(dataTableBase.columns());
+ UIComponent noDataFacet = dataTableBase.getNoData();
+ String noDataLabel = dataTableBase.getNoDataLabel();
+
+ writer.startElement(HtmlConstants.TR_ELEMENT, dataTableBase);
+ String styleClass = (String) dataTableBase.getAttributes().get("noDataStyleClass");
+ styleClass = concatClasses(getNoDataClass(), styleClass);
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, styleClass, null);
+
+ writer.startElement(HtmlConstants.TD_ELEM, dataTableBase);
+ writer.writeAttribute(HtmlConstants.COLSPAN_ATTRIBUTE, columns, null);
+
+ String cellStyleClass = (String) dataTableBase.getAttributes().get("noDataCellStyleClass");
+ cellStyleClass = concatClasses(getNoDataCellClass(), cellStyleClass);
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, cellStyleClass, null);
+
+ if (noDataFacet != null && noDataFacet.isRendered()) {
+ noDataFacet.encodeAll(facesContext);
+ } else if (noDataLabel != null && noDataLabel.length() > 0) {
+ writer.writeText(noDataLabel, "noDataLabel");
+ } else {
+ writer.writeAttribute(HtmlConstants.STYLE_ATTRIBUTE, "display: none;", null);
+ }
+ writer.endElement(HtmlConstants.TD_ELEM);
+ writer.endElement(HtmlConstants.TR_ELEMENT);
+
+ }
protected void doEncodeChildren(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {
if(component instanceof UIDataTableBase) {
@@ -457,7 +460,7 @@
writer.startElement(element, column);
- encodeStyleClass(writer, context, column, null, cellClass);
+ encodeStyleClass(writer, context, column, facetName + "Class", cellClass);
writer.writeAttribute(HtmlConstants.SCOPE_ATTRIBUTE, HtmlConstants.COL_ELEMENT, null);
getUtils().encodeAttribute(context, column, HtmlConstants.COLSPAN_ATTRIBUTE);
@@ -518,7 +521,9 @@
partialEnd(facesContext);
}
- if (!isColumnGroup){
+ if (isColumnGroup){
+ writer.endElement(HtmlConstants.TR_ELEMENT);
+ } else {
writer.endElement(element);
writer.endElement(HtmlConstants.TR_ELEMENT);
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/CollapsibleSubTableRenderer.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/CollapsibleSubTableRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/CollapsibleSubTableRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -29,7 +29,7 @@
import org.richfaces.component.AbstractDataTable;
import org.richfaces.component.Row;
import org.richfaces.component.UIDataTableBase;
-import org.richfaces.event.ToggleEvent;
+import org.richfaces.event.CollapsibleSubTableToggleEvent;
import org.richfaces.renderkit.util.AjaxRendererUtils;
import javax.faces.application.ResourceDependencies;
@@ -111,7 +111,7 @@
}
if(subTable.isExpanded() != isExpanded) {
- new ToggleEvent(subTable, isExpanded, togglerId).queue();
+ new CollapsibleSubTableToggleEvent(subTable, isExpanded, togglerId).queue();
}
}
}
@@ -185,7 +185,7 @@
public void encodeRow(ResponseWriter writer, FacesContext facesContext, RowHolderBase holder) throws IOException {
RowHolder rowHolder = (RowHolder)holder;
Row row = rowHolder.getRow();
-
+ putRowStylesIntoContext(facesContext, rowHolder);
rowHolder.setRowStart(true);
Iterator<UIComponent> components = row.columns();
if (rowHolder.isUpdatePartial()) {
@@ -217,7 +217,7 @@
partialEnd(facesContext);
}
}
-
+
@Override
public void encodeAfterRows(ResponseWriter writer, FacesContext facesContext, UIDataTableBase dataTableBase,
boolean encodeParentTBody, boolean partialUpdate) throws IOException {
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/CollapsibleSubTableTogglerRendererBase.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/CollapsibleSubTableTogglerRendererBase.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/CollapsibleSubTableTogglerRendererBase.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -161,6 +161,7 @@
if (label != null && label.trim().length() > 0) {
writer.startElement(HtmlConstants.A_ELEMENT, control);
writer.writeAttribute(HtmlConstants.HREF_ATTR, "javascript:void(0);", null);
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-csttg-lnk", null);
writer.writeText(label, null);
writer.endElement(HtmlConstants.A_ELEMENT);
}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ColumnGroupRenderer.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ColumnGroupRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ColumnGroupRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -59,7 +59,6 @@
columnNumber++;
}
}
- encodeRowEnd(writer);
}
public RowHolderBase createRowHolder(FacesContext context, UIComponent component, Object[] options) {
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataGridRenderer.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataGridRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataGridRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -23,6 +23,7 @@
package org.richfaces.renderkit;
import java.io.IOException;
+import java.util.Map;
import javax.faces.FacesException;
import javax.faces.application.ResourceDependencies;
@@ -240,8 +241,11 @@
AbstractDataGrid dataGrid = (AbstractDataGrid)component;
writer.startElement(HtmlConstants.TABLE_ELEMENT, dataGrid);
writer.writeAttribute(HtmlConstants.ID_ATTRIBUTE, dataGrid.getClientId(facesContext), null);
- writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-dg", null);
-
+ Map<String, Object> attributes = dataGrid.getAttributes();
+ String classes = concatClasses("rf-dg", attributes.get(HtmlConstants.STYLE_CLASS_ATTR));
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, classes, null);
+ RenderKitUtils.renderAttribute(facesContext, "style", attributes.get(HtmlConstants.STYLE_ATTRIBUTE));
+ RenderKitUtils.renderAttribute(facesContext, HtmlConstants.TITLE_ATTRIBUTE, attributes.get(HtmlConstants.TITLE_ATTRIBUTE));
encodeCaption(writer, facesContext, dataGrid);
encodeHeader(writer, facesContext, dataGrid, false);
encodeFooter(writer, facesContext, dataGrid, false);
@@ -288,14 +292,12 @@
int columns = dataGrid.getColumns();
int rest = columns - cell;
- if(rest != 0) {
- for (int i = 0; i < rest; i++) {
- writer.startElement(HtmlConstants.TD_ELEM, dataGrid);
- writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-dg-c", null);
- writer.endElement(HtmlConstants.TD_ELEM);
- }
- writer.endElement(HtmlConstants.TR_ELEMENT);
+ for (int i = 0; i < rest; i++) {
+ writer.startElement(HtmlConstants.TD_ELEM, dataGrid);
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-dg-c", null);
+ writer.endElement(HtmlConstants.TD_ELEM);
}
+ writer.endElement(HtmlConstants.TR_ELEMENT);
}
public DataVisitResult process(FacesContext facesContext, Object rowKey, Object argument) {
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataScrollerBaseRenderer.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataScrollerBaseRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataScrollerBaseRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -42,7 +42,7 @@
import org.ajax4jsf.javascript.JSReference;
import org.richfaces.component.AbstractDataScroller;
import org.richfaces.component.DataScrollerControlsMode;
-import org.richfaces.event.DataScrollerEvent;
+import org.richfaces.event.DataScrollEvent;
import org.richfaces.renderkit.util.AjaxRendererUtils;
@ResourceDependencies( {
@@ -68,7 +68,7 @@
int page = scroller.getPage();
if (newPage != 0 && newPage != page) {
- new DataScrollerEvent(scroller, String.valueOf(page), param, newPage).queue();
+ new DataScrollEvent(scroller, String.valueOf(page), param, newPage).queue();
}
}
}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataTableRenderer.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataTableRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataTableRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -77,19 +77,9 @@
public void begin(ResponseWriter writer, FacesContext context, UIComponent component, Object [] params) throws IOException {
org.richfaces.component.AbstractColumn column = (org.richfaces.component.AbstractColumn) component;
writer.writeAttribute(HtmlConstants.ID_ATTRIBUTE, column.getClientId(context), null);
-
- if (isSortable(column)) {
- //TODO :anton -> should component be selfSorted
- writer.startElement(HtmlConstants.SPAN_ELEM, column);
- writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rich-table-sortable-header", null);
- }
}
public void end(ResponseWriter writer, FacesContext context, UIComponent component, Object [] params) throws IOException {
- org.richfaces.component.AbstractColumn column = (org.richfaces.component.AbstractColumn) component;
- if (isSortable(column)) {
- writer.endElement(HtmlConstants.SPAN_ELEM);
- }
}
}
@@ -147,6 +137,8 @@
AbstractDataTable dataTable = (AbstractDataTable) row;
+ putRowStylesIntoContext(facesContext, rowHolder);
+
boolean partialUpdate = rowHolder.isUpdatePartial();
boolean parentTbodyStart = rowHolder.isEncodeParentTBody();
boolean tbodyStart = parentTbodyStart;
@@ -181,8 +173,26 @@
partialStart(facesContext, id);
}
+ if (!isSubtable && !parentTbodyStart && !tbodyStart) {
+ encodeTableBodyStart(writer, facesContext, dataTable);
+ rowHolder.setRowStart(true);
+ tbodyStart = true;
+ }
+
child.encodeAll(facesContext);
+ if (!isSubtable) {
+ encodeRowEnd(writer);
+ if (!components.hasNext()) {
+ if (!parentTbodyStart && tbodyStart) {
+ encodeTableBodyEnd(writer);
+ tbodyStart = false;
+ }
+ }
+ rowHolder.setRowStart(true);
+ rowHolder.resetProcessCell();
+ }
+
if (isSubtable && partialUpdate) {
partialEnd(facesContext);
}
@@ -281,14 +291,6 @@
return true;
}
- public boolean isSortable(UIColumn column) {
- if (column instanceof org.richfaces.component.AbstractColumn) {
- //TODO: anton - add check for the "comparator" property
- return ((org.richfaces.component.AbstractColumn) column).getValueExpression("sortBy") != null;
- }
- return false;
- }
-
public void encodeClientScript(ResponseWriter writer, FacesContext facesContext, UIDataTableBase dataTableBase) throws IOException {
AbstractDataTable dataTable = (AbstractDataTable) dataTableBase;
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -297,8 +297,7 @@
boolean columnFacetPresent = table.isColumnFacetPresent(name);
if (columnFacetPresent || "footer".equals(name)) {
writer.startElement(HtmlConstants.DIV_ELEM, table);
- writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, HtmlUtil.concatClasses("rf-edt-" + getFacetClassName(name),
- (String) table.getAttributes().get(name + "Class")), null);
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-edt-" + getFacetClassName(name), null);
writer.startElement(HtmlConstants.TABLE_ELEMENT, table);
writer.writeAttribute(HtmlConstants.CELLPADDING_ATTRIBUTE, "0", null);
writer.writeAttribute(HtmlConstants.CELLSPACING_ATTRIBUTE, "0", null);
@@ -374,7 +373,8 @@
writer.startElement(HtmlConstants.DIV_ELEM, table);
writer.writeAttribute(HtmlConstants.ID_ATTRIBUTE, elementId, null);
- writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-edt-tbl-hdr", null);
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE,
+ HtmlUtil.concatClasses("rf-edt-tbl-hdr", table.getHeaderClass()), null);
header.encodeAll(context);
writer.endElement(HtmlConstants.DIV_ELEM);
@@ -467,7 +467,8 @@
writer.startElement(HtmlConstants.DIV_ELEM, table);
writer.writeAttribute(HtmlConstants.ID_ATTRIBUTE, elementId, null);
- writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-edt-tbl-ftr", null);
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE,
+ HtmlUtil.concatClasses("rf-edt-tbl-ftr", table.getFooterClass()), null);
footer.encodeAll(context);
writer.endElement(HtmlConstants.DIV_ELEM);
@@ -806,10 +807,17 @@
if (column.isRendered()) {
writer.startElement(HtmlConstants.TD_ELEM, table);
- String columnClass = getColumnClass(rowHolder, columnNumber);
+ String columnClass = concatClasses(getColumnClass(rowHolder, columnNumber),
+ column.getAttributes().get(HtmlConstants.STYLE_CLASS_ATTR));
if (!"".equals(columnClass)) {
writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, columnClass, null);
}
+
+ String columnStyle = (String)column.getAttributes().get(HtmlConstants.STYLE_ATTRIBUTE);
+ if (!"".equals(columnStyle)) {
+ writer.writeAttribute(HtmlConstants.STYLE_ATTRIBUTE, columnStyle, null);
+ }
+
columnNumber++;
writer.startElement(HtmlConstants.DIV_ELEM, table);
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/CollapsibleSubTableHandler.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/CollapsibleSubTableHandler.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/CollapsibleSubTableHandler.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -23,38 +23,32 @@
package org.richfaces.taglib;
-import javax.faces.view.facelets.ComponentConfig;
-import javax.faces.view.facelets.ComponentHandler;
-import javax.faces.view.facelets.FaceletContext;
-import javax.faces.view.facelets.MetaRule;
-import javax.faces.view.facelets.MetaRuleset;
-import javax.faces.view.facelets.Metadata;
-import javax.faces.view.facelets.MetadataTarget;
-import javax.faces.view.facelets.TagAttribute;
-
import org.richfaces.component.AbstractCollapsibleSubTable;
+import org.richfaces.view.facelets.RowKeyConverterRule;
+import javax.faces.view.facelets.*;
+
/**
* @author Anton Belevich
*
*/
public class CollapsibleSubTableHandler extends ComponentHandler {
- private static final CollapsibleSubTableHandlerMetaRule METARULE = new CollapsibleSubTableHandlerMetaRule();
-
-
public CollapsibleSubTableHandler(ComponentConfig config) {
super(config);
}
protected MetaRuleset createMetaRuleset(Class type) {
MetaRuleset m = super.createMetaRuleset(type);
- m.addRule(METARULE);
+ m.addRule(CollapsibleSubTableHandlerMetaRule.INSTANCE);
+ m.addRule(RowKeyConverterRule.INSTANCE);
return m;
}
static class CollapsibleSubTableHandlerMetaRule extends MetaRule {
+ public static final CollapsibleSubTableHandlerMetaRule INSTANCE = new CollapsibleSubTableHandlerMetaRule();
+
public Metadata applyRule(String name, TagAttribute attribute, MetadataTarget meta) {
if (meta.isTargetInstanceOf(AbstractCollapsibleSubTable.class) && "toggleListener".equals(name)) {
return new CollapsibleSubTableMapper(attribute);
@@ -66,7 +60,7 @@
static class CollapsibleSubTableMapper extends Metadata {
- private static final Class[] SIGNATURE = new Class[] { org.richfaces.event.ToggleEvent.class };
+ private static final Class[] SIGNATURE = new Class[] { org.richfaces.event.CollapsibleSubTableToggleEvent.class };
private final TagAttribute attribute;
@@ -75,7 +69,7 @@
}
public void applyMetadata(FaceletContext ctx, Object instance) {
- ((AbstractCollapsibleSubTable) instance).addToggleListener((new MethodExpressionToggleListener(this.attribute.getMethodExpression(ctx, null, SIGNATURE))));
+ ((AbstractCollapsibleSubTable) instance).addCollapsibleSubTableToggleListener((new MethodExpressionToggleListener(this.attribute.getMethodExpression(ctx, null, SIGNATURE))));
}
}
}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/DataGridHandler.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/DataGridHandler.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/DataGridHandler.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -22,6 +22,8 @@
package org.richfaces.taglib;
+import org.richfaces.view.facelets.RowKeyConverterRule;
+
import javax.faces.view.facelets.ComponentConfig;
import javax.faces.view.facelets.ComponentHandler;
import javax.faces.view.facelets.MetaRuleset;
@@ -44,6 +46,7 @@
protected MetaRuleset createMetaRuleset(Class type) {
MetaRuleset metaRuleset = super.createMetaRuleset(type);
metaRuleset.alias(ELEMENTS, ROWS);
+ metaRuleset.addRule(RowKeyConverterRule.INSTANCE);
return metaRuleset;
}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/DataScrollerHandler.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/DataScrollerHandler.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/DataScrollerHandler.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -70,7 +70,7 @@
private static final class ScrollListenerMapper extends Metadata {
- private static final Class[] SIGNATURE = new Class[] { org.richfaces.event.DataScrollerEvent.class };
+ private static final Class[] SIGNATURE = new Class[] { org.richfaces.event.DataScrollEvent.class };
private final TagAttribute attribute;
@@ -81,7 +81,7 @@
@Override
public void applyMetadata(FaceletContext ctx, Object instance) {
- ((AbstractDataScroller) instance).addScrollerListener((new MethodExpressionScrollListener(this.attribute
+ ((AbstractDataScroller) instance).addScrollListener((new MethodExpressionScrollListener(this.attribute
.getMethodExpression(ctx, null, SIGNATURE))));
}
}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/DataTableHandler.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/DataTableHandler.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/DataTableHandler.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -23,36 +23,30 @@
package org.richfaces.taglib;
-import javax.faces.view.facelets.ComponentConfig;
-import javax.faces.view.facelets.ComponentHandler;
-import javax.faces.view.facelets.FaceletContext;
-import javax.faces.view.facelets.MetaRule;
-import javax.faces.view.facelets.MetaRuleset;
-import javax.faces.view.facelets.Metadata;
-import javax.faces.view.facelets.MetadataTarget;
-import javax.faces.view.facelets.TagAttribute;
-
import org.richfaces.component.AbstractDataTable;
+import org.richfaces.view.facelets.RowKeyConverterRule;
+import javax.faces.view.facelets.*;
+
/**
* @author Anton Belevich
*
*/
public class DataTableHandler extends ComponentHandler {
- private static final SortingFilteringRule METARULE = new SortingFilteringRule();
-
public DataTableHandler(ComponentConfig config) {
super(config);
}
protected MetaRuleset createMetaRuleset(Class type) {
MetaRuleset m = super.createMetaRuleset(type);
- m.addRule(METARULE);
+ m.addRule(SortingFilteringRule.INSTANCE);
+ m.addRule(RowKeyConverterRule.INSTANCE);
return m;
}
static class SortingFilteringRule extends MetaRule {
+ private static final SortingFilteringRule INSTANCE = new SortingFilteringRule();
public Metadata applyRule(String name, TagAttribute attribute, MetadataTarget meta) {
if(meta.isTargetInstanceOf(AbstractDataTable.class)) {
Added: trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/ExtendedDataTableHandler.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/ExtendedDataTableHandler.java (rev 0)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/ExtendedDataTableHandler.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,24 @@
+package org.richfaces.taglib;
+
+import org.richfaces.view.facelets.RowKeyConverterRule;
+
+import javax.faces.view.facelets.ComponentConfig;
+import javax.faces.view.facelets.ComponentHandler;
+import javax.faces.view.facelets.MetaRuleset;
+
+/**
+ * User: Gleb Galkin
+ * Date: 11.03.11
+ */
+public class ExtendedDataTableHandler extends ComponentHandler {
+
+ public ExtendedDataTableHandler(ComponentConfig config) {
+ super(config);
+ }
+
+ protected MetaRuleset createMetaRuleset(Class type) {
+ MetaRuleset metaRuleset = super.createMetaRuleset(type);
+ metaRuleset.addRule(RowKeyConverterRule.INSTANCE);
+ return metaRuleset;
+ }
+}
Added: trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/ListHandler.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/ListHandler.java (rev 0)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/ListHandler.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,24 @@
+package org.richfaces.taglib;
+
+import org.richfaces.view.facelets.RowKeyConverterRule;
+
+import javax.faces.view.facelets.ComponentConfig;
+import javax.faces.view.facelets.ComponentHandler;
+import javax.faces.view.facelets.MetaRuleset;
+
+/**
+ * User: Gleb Galkin
+ * Date: 11.03.11
+ */
+public class ListHandler extends ComponentHandler {
+
+ public ListHandler(ComponentConfig config) {
+ super(config);
+ }
+
+ protected MetaRuleset createMetaRuleset(Class type) {
+ MetaRuleset metaRuleset = super.createMetaRuleset(type);
+ metaRuleset.addRule(RowKeyConverterRule.INSTANCE);
+ return metaRuleset;
+ }
+}
\ No newline at end of file
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/MethodExpressionScrollListener.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/MethodExpressionScrollListener.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/MethodExpressionScrollListener.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -3,14 +3,14 @@
import javax.el.MethodExpression;
import javax.faces.context.FacesContext;
-import org.richfaces.event.DataScrollerEvent;
-import org.richfaces.event.DataScrollerListener;
+import org.richfaces.event.DataScrollEvent;
+import org.richfaces.event.DataScrollListener;
/**
* @author Anton Belevich
*
*/
-public class MethodExpressionScrollListener implements DataScrollerListener {
+public class MethodExpressionScrollListener implements DataScrollListener {
private MethodExpression methodExpression;
@@ -23,7 +23,7 @@
this.methodExpression = methodExpression;
}
- public void processScroller(DataScrollerEvent dataScrollerEvent) {
+ public void processDataScroll(DataScrollEvent dataScrollerEvent) {
FacesContext facesContext = FacesContext.getCurrentInstance();
methodExpression.invoke(facesContext.getELContext(), new Object[] { dataScrollerEvent });
}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/MethodExpressionToggleListener.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/MethodExpressionToggleListener.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/taglib/MethodExpressionToggleListener.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -25,10 +25,10 @@
import javax.el.MethodExpression;
import javax.faces.context.FacesContext;
-import org.richfaces.event.ToggleEvent;
-import org.richfaces.event.ToggleListener;
+import org.richfaces.event.CollapsibleSubTableToggleEvent;
+import org.richfaces.event.CollapsibleSubTableToggleListener;
-public class MethodExpressionToggleListener implements ToggleListener {
+public class MethodExpressionToggleListener implements CollapsibleSubTableToggleListener {
private MethodExpression methodExpression;
@@ -41,7 +41,7 @@
this.methodExpression = methodExpression;
}
- public void processToggle(ToggleEvent toggleEvent) {
+ public void processCollapsibleSubTableToggle(CollapsibleSubTableToggleEvent toggleEvent) {
FacesContext facesContext = FacesContext.getCurrentInstance();
methodExpression.invoke(facesContext.getELContext(), new Object[]{toggleEvent});
}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/view/facelets/TreeHandler.java
===================================================================
--- trunk/ui/iteration/ui/src/main/java/org/richfaces/view/facelets/TreeHandler.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/java/org/richfaces/view/facelets/TreeHandler.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -21,27 +21,19 @@
*/
package org.richfaces.view.facelets;
-import static org.richfaces.component.AbstractTree.DEFAULT_TREE_NODE_FACET_NAME;
-import static org.richfaces.component.AbstractTree.DEFAULT_TREE_NODE_ID;
+import com.google.common.base.Strings;
+import org.richfaces.component.AbstractTree;
+import org.richfaces.component.AbstractTreeNode;
import javax.faces.application.Application;
import javax.faces.component.UIComponent;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.context.FacesContext;
-import javax.faces.view.facelets.ComponentConfig;
-import javax.faces.view.facelets.ComponentHandler;
-import javax.faces.view.facelets.FaceletContext;
-import javax.faces.view.facelets.MetaRule;
-import javax.faces.view.facelets.MetaRuleset;
-import javax.faces.view.facelets.Metadata;
-import javax.faces.view.facelets.MetadataTarget;
-import javax.faces.view.facelets.TagAttribute;
+import javax.faces.view.facelets.*;
-import org.richfaces.component.AbstractTree;
-import org.richfaces.component.AbstractTreeNode;
+import static org.richfaces.component.AbstractTree.DEFAULT_TREE_NODE_FACET_NAME;
+import static org.richfaces.component.AbstractTree.DEFAULT_TREE_NODE_ID;
-import com.google.common.base.Strings;
-
/**
* @author Nick Belaevski
*
@@ -72,6 +64,7 @@
protected MetaRuleset createMetaRuleset(Class type) {
MetaRuleset metaRuleset = super.createMetaRuleset(type);
metaRuleset.addRule(RULE);
+ metaRuleset.addRule(RowKeyConverterRule.INSTANCE);
return metaRuleset;
}
Added: trunk/ui/iteration/ui/src/main/resources/META-INF/cdk/attributes/tree-serverEventListeners-props.xml
===================================================================
--- trunk/ui/iteration/ui/src/main/resources/META-INF/cdk/attributes/tree-serverEventListeners-props.xml (rev 0)
+++ trunk/ui/iteration/ui/src/main/resources/META-INF/cdk/attributes/tree-serverEventListeners-props.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- JBoss, Home of Professional Open Source Copyright ${year}, Red Hat,
+ Inc. and individual contributors 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. -->
+<cdk:properties xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:cdk="http://jboss.org/schema/richfaces/cdk/extensions"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee">
+
+ <property>
+ <property-name>treeSelectionChangeListener</property-name>
+ <property-class>javax.el.MethodExpression</property-class>
+ <property-extension>
+ <cdk:generate>false</cdk:generate>
+ </property-extension>
+ </property>
+ <property>
+ <property-name>treeToggleListener</property-name>
+ <property-class>javax.el.MethodExpression</property-class>
+ <property-extension>
+ <cdk:generate>false</cdk:generate>
+ </property-extension>
+ </property>
+
+</cdk:properties>
Added: trunk/ui/iteration/ui/src/main/resources/META-INF/cdk/attributes/treeNode-serverEventListeners-props.xml
===================================================================
--- trunk/ui/iteration/ui/src/main/resources/META-INF/cdk/attributes/treeNode-serverEventListeners-props.xml (rev 0)
+++ trunk/ui/iteration/ui/src/main/resources/META-INF/cdk/attributes/treeNode-serverEventListeners-props.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- JBoss, Home of Professional Open Source Copyright ${year}, Red Hat,
+ Inc. and individual contributors 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. -->
+<cdk:properties xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:cdk="http://jboss.org/schema/richfaces/cdk/extensions"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee">
+
+ <property>
+ <property-name>toggleListener</property-name>
+ <property-class>javax.el.MethodExpression</property-class>
+ <property-extension>
+ <cdk:generate>false</cdk:generate>
+ </property-extension>
+ </property>
+
+</cdk:properties>
Modified: trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/collapsible-subtable.ecss
===================================================================
--- trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/collapsible-subtable.ecss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/collapsible-subtable.ecss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -17,9 +17,16 @@
padding:0px;
}
-.rf-cst {
+.rf-csttg-lnk {
+ vertical-align: top;
}
+.rf-cst, .rf-cst-nd {
+ border-bottom-width:'#{richSkin.tableBorderWidth}';
+ border-bottom-style:solid;
+ border-bottom-color:'#{richSkin.tableBorderColor}';
+}
+
.rf-cst-r{
}
@@ -32,7 +39,7 @@
.rf-cst-hdr-fst-r{
}
-.rf-cst-c{
+.rf-cst-c, .rf-cst-nd-c{
border-bottom-width:'#{richSkin.tableBorderWidth}';
border-bottom-style:solid;
border-bottom-color:'#{richSkin.tableBorderColor}';
Modified: trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/datascroller.ecss
===================================================================
--- trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/datascroller.ecss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/datascroller.ecss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -117,7 +117,7 @@
cursor: default;
font-weight: bold;
border-width: 1px;
- bordr-style: solid;
+ border-style: solid;
border-color: transparent;
border-bottom-width: 1px;
border-bottom-style: solid;
Modified: trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/datatable.ecss
===================================================================
--- trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/datatable.ecss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/datatable.ecss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,12 +1,9 @@
.rf-dt{
background-color:'#{richSkin.tableBackgroundColor}';
border-collapse:collapse;
- border-left-width:'#{richSkin.tableBorderWidth}';
- border-left-style:solid;
- border-left-color:'#{richSkin.tableBorderColor}';
- border-top-width:'#{richSkin.tableBorderWidth}';
- border-top-style:solid;
- border-top-color:'#{richSkin.tableBorderColor}';
+ border-width:'#{richSkin.tableBorderWidth}';
+ border-style:solid;
+ border-color:'#{richSkin.tableBorderColor}';
empty-cells:show;
}
Modified: trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/extendedDataTable.js
===================================================================
--- trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/extendedDataTable.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/extendedDataTable.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -419,7 +419,7 @@
},
beginReorder: function(event) {
- if (!jQuery(event.currentTarget).is("a, img, :input")) {
+ if (!jQuery(event.target).is("a, img, :input")) {
this.idOfReorderingColumn = event.currentTarget.className.match(new RegExp(WIDTH_CLASS_NAME_BASE + "([^\\W]*)"))[1];
jQuery(document).bind("mousemove", jQuery.proxy(this.reorder, this));
this.headerCells.bind("mouseover", jQuery.proxy(this.overReorder, this));
Deleted: trunk/ui/iteration/ui/src/test/java/org/richfaces/component/IteratorBaseTest.java
===================================================================
--- trunk/ui/iteration/ui/src/test/java/org/richfaces/component/IteratorBaseTest.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/test/java/org/richfaces/component/IteratorBaseTest.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,150 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2009, Red Hat, Inc. and individual contributors
- * 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.
- */
-package org.richfaces.component;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
-
-import org.junit.Test;
-
-
-/**
- * @author Nick Belaevski
- */
-public class IteratorBaseTest {
-
- private static final List<String> strings = Collections.unmodifiableList(Arrays.asList("a", "b", "c"));
-
- private static class IteratorImpl<E> extends DataTableIteratorBase<E> {
-
- private Iterator<E> iterator;
-
- public IteratorImpl(List<E> list) {
- super();
-
- this.iterator = list.iterator();
- }
-
- @Override
- protected E nextItem() {
- if (iterator.hasNext()) {
- return iterator.next();
- }
-
- return null;
- }
-
- }
-
- private Iterator<String> createTestIterator(List<String> list) {
- return new IteratorImpl<String>(list);
- }
-
- private Iterator<String> createStringsIterator() {
- return createTestIterator(strings);
- }
-
- private Iterator<String> createEmptyIterator() {
- return createTestIterator(Collections.<String>emptyList());
- }
-
- @Test
- public void testIteration() throws Exception {
- Iterator<String> testIterator = createStringsIterator();
- assertTrue(testIterator.hasNext());
- assertEquals("a", testIterator.next());
- assertTrue(testIterator.hasNext());
- assertEquals("b", testIterator.next());
- assertTrue(testIterator.hasNext());
- assertEquals("c", testIterator.next());
- assertFalse(testIterator.hasNext());
- try {
- testIterator.next();
-
- fail();
- } catch (NoSuchElementException e) {
- //should be thrown - ignore
- }
- }
-
- @Test
- public void testIterationWithoutHasNext() throws Exception {
- Iterator<String> testIterator = createStringsIterator();
- assertEquals("a", testIterator.next());
- assertEquals("b", testIterator.next());
- assertEquals("c", testIterator.next());
- try {
- testIterator.next();
-
- fail();
- } catch (NoSuchElementException e) {
- //should be thrown - ignore
- }
- assertFalse(testIterator.hasNext());
- }
-
- @Test
- public void testEmptyList() throws Exception {
- Iterator<String> testIterator = createEmptyIterator();
- assertFalse(testIterator.hasNext());
- try {
- testIterator.next();
-
- fail();
- } catch (NoSuchElementException e) {
- //should be thrown - ignore
- }
- }
-
- @Test
- public void testEmptyListWithoutHasNext() throws Exception {
- Iterator<String> testIterator = createEmptyIterator();
- try {
- testIterator.next();
-
- fail();
- } catch (NoSuchElementException e) {
- //should be thrown - ignore
- }
- }
-
- @Test
- public void testRemove() throws Exception {
- Iterator<String> testIterator = createStringsIterator();
- testIterator.next();
- try {
- testIterator.remove();
-
- fail();
- } catch (Exception e) {
- //unsupported - ignore
- }
- }
-}
Modified: trunk/ui/iteration/ui/src/test/java/org/richfaces/component/UIDataTableTest.java
===================================================================
--- trunk/ui/iteration/ui/src/test/java/org/richfaces/component/UIDataTableTest.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/iteration/ui/src/test/java/org/richfaces/component/UIDataTableTest.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -144,7 +144,7 @@
*/
@Test
public void testDataChildren() {
- Assert.assertTrue(table.dataChildren() instanceof DataTableDataIterator);
+ Assert.assertTrue(table.dataChildren() instanceof DataTableDataChilderIterator);
}
/**
Modified: trunk/ui/misc/pom.xml
===================================================================
--- trunk/ui/misc/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/misc/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -40,9 +40,9 @@
</modules>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/misc</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/misc</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/ui/misc</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/ui/misc</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/ui/misc</url>
</scm>
</project>
Modified: trunk/ui/misc/ui/pom.xml
===================================================================
--- trunk/ui/misc/ui/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/misc/ui/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -58,10 +58,10 @@
</dependencies>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/misc/dist/richf...
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/ui/misc/d...
</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/misc/dist/richface...
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/ui/misc/dist...
</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/</url>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/ui/misc/dist/ric...</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/misc/ui/src/main/java/org/richfaces/component/behavior/ComponentControlBehavior.java
===================================================================
--- trunk/ui/misc/ui/src/main/java/org/richfaces/component/behavior/ComponentControlBehavior.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/misc/ui/src/main/java/org/richfaces/component/behavior/ComponentControlBehavior.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -49,7 +49,7 @@
private List<UIComponent> children;
enum PropertyKeys {
- target, selector, operation, onbeforeoperation
+ target, selector, operation, onbeforeoperation, event
}
public List<UIComponent> getChildren() {
@@ -60,6 +60,15 @@
}
@Attribute
+ public String getEvent() {
+ return (String) getStateHelper().eval(PropertyKeys.event);
+ }
+
+ public void setEvent(String event) {
+ getStateHelper().put(PropertyKeys.event, event);
+ }
+
+ @Attribute
public String getTarget() {
return (String) getStateHelper().eval(PropertyKeys.target);
}
Modified: trunk/ui/output/api/pom.xml
===================================================================
--- trunk/ui/output/api/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/api/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -51,10 +51,10 @@
</dependencies>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/output/panels/api</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/output/panels/api
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/ui/output...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/ui/output/pa...
</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/ui/output/panels...</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/output/pom.xml
===================================================================
--- trunk/ui/output/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -41,8 +41,8 @@
</modules>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/output</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/output</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/ui/output</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/ui/output</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/ui/output</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/output/ui/pom.xml
===================================================================
--- trunk/ui/output/ui/pom.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/pom.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -76,9 +76,9 @@
</dependencies>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/output/panels/ui</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/output/panels/ui</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/branches/4.0.X/ui/output...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/branches/4.0.X/ui/output/pa...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/branches/4.0.X/ui/output/panels/ui</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractAccordion.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractAccordion.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractAccordion.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -23,7 +23,12 @@
package org.richfaces.component;
-import org.richfaces.cdk.annotations.*;
+import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.EventName;
+import org.richfaces.cdk.annotations.JsfComponent;
+import org.richfaces.cdk.annotations.JsfRenderer;
+import org.richfaces.cdk.annotations.Tag;
+import org.richfaces.cdk.annotations.TagType;
/**
* @author akolonitsky
@@ -52,6 +57,12 @@
String res = super.getActiveItem();
if (res == null) {
res = getFirstItem().getName();
+ } else {
+ AbstractTogglePanelTitledItem item =
+ (AbstractTogglePanelTitledItem) super.getItemByIndex(super.getChildIndex(res));
+ if (item.isDisabled()) {
+ res = getFirstItem().getName();
+ }
}
return res;
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractCollapsiblePanel.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractCollapsiblePanel.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractCollapsiblePanel.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -27,6 +27,7 @@
import javax.faces.context.FacesContext;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.FacesEvent;
+import javax.faces.event.PhaseId;
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.EventName;
@@ -212,11 +213,13 @@
@Override
public void broadcast(FacesEvent event) throws AbortProcessingException {
+ if (event instanceof PanelToggleEvent) {
+ setExpanded(((PanelToggleEvent)event).getExpanded());
+ setSubmittedActiveItem(null);
+ if (event.getPhaseId() != PhaseId.UPDATE_MODEL_VALUES) {
+ FacesContext.getCurrentInstance().renderResponse();
+ }
+ }
super.broadcast(event);
-
- if (event instanceof PanelToggleEvent
- && (isBypassUpdates() || isImmediate())) {
- FacesContext.getCurrentInstance().renderResponse();
- }
}
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractDropDownMenu.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractDropDownMenu.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractDropDownMenu.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -67,6 +67,9 @@
@Attribute(events = @EventName("itemclick"))
public abstract String getOnitemclick();
+ @Attribute
+ public abstract String getLabel();
+
public enum Facets {
label,
labelDisabled
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanel.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanel.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanel.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -23,11 +23,11 @@
import javax.faces.component.UIComponentBase;
+import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.cdk.annotations.Tag;
import org.richfaces.cdk.annotations.TagType;
-import org.richfaces.cdk.annotations.Attribute;
/**
* JSF component class
*
@@ -38,7 +38,9 @@
)
public abstract class AbstractPanel extends UIComponentBase {
- private static final String COMPONENT_FAMILY = "org.richfaces.Panel";
+ public static final String COMPONENT_TYPE = "org.richfaces.Panel";
+
+ public static final String COMPONENT_FAMILY = "org.richfaces.Panel";
@Attribute
public abstract String getHeader();
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenu.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenu.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenu.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -75,58 +75,66 @@
//TODO nick - is component immediate = true only?
//TODO nick - processValue should be executed in context of component, i.e. when 'component' EL variable is set
- processValue(context);
+ ItemChangeEvent event = createItemChangeEvent(context);
+ if (event != null) {
+ event.queue();
+ }
}
-
- private void processValue(FacesContext context) {
- try {
- if (context == null) {
- throw new NullPointerException();
+
+ public void queueEvent(FacesEvent event) {
+ if ((event instanceof ItemChangeEvent) && (event.getComponent() == this)) {
+ setEventPhase((ItemChangeEvent)event);
+ }
+ super.queueEvent(event);
+ }
+
+ public void setEventPhase(FacesEvent event) {
+ if (event instanceof ItemChangeEvent) {
+ AbstractPanelMenuItem actItm = (AbstractPanelMenuItem) ((ItemChangeEvent)event).getNewItem();
+ if (isImmediate() || (actItm != null && actItm.isImmediate())) {
+ event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
+ } else if (actItm!= null && actItm.isBypassUpdates()) {
+ event.setPhaseId(PhaseId.PROCESS_VALIDATIONS);
+ } else {
+ event.setPhaseId(PhaseId.UPDATE_MODEL_VALUES);
}
+ }
+ }
- // Submitted value == null means "the component was not submitted at all".
- String activeItem = getSubmittedActiveItem();
- if (activeItem == null) {
- return;
- }
+ private ItemChangeEvent createItemChangeEvent(FacesContext context) {
- String previous = (String) getValue();
- setActiveItem(activeItem);
- setSubmittedActiveItem(null);
+ // Submitted value == null means "the component was not submitted at all".
+ String activeItem = getSubmittedActiveItem();
+ if (activeItem == null) {
+ return null;
+ }
- if (previous == null || !previous.equalsIgnoreCase(activeItem)) {
- AbstractPanelMenuItem prevItm = null;
- AbstractPanelMenuItem actItm = null;
- if (previous != null) {
- prevItm = getItem(previous);
- }
- if (activeItem != null) {
- actItm = getItem(activeItem);
- }
-
- ItemChangeEvent event = new ItemChangeEvent(this, previous,prevItm, activeItem, actItm);
- if (isImmediate() || (actItm != null && actItm.isImmediate())) {
- event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
- } else if (actItm!= null && actItm.isBypassUpdates()) {
- event.setPhaseId(PhaseId.PROCESS_VALIDATIONS);
- } else {
- event.setPhaseId(PhaseId.INVOKE_APPLICATION);
- }
- event.queue();
+ String previous = (String) getValue();
+ if (previous == null || !previous.equalsIgnoreCase(activeItem)) {
+ AbstractPanelMenuItem prevItm = null;
+ AbstractPanelMenuItem actItm = null;
+ if (previous != null) {
+ prevItm = getItem(previous);
}
- } catch (RuntimeException e) {
- context.renderResponse();
- throw e;
+ if (activeItem != null) {
+ actItm = getItem(activeItem);
+ }
+
+ return new ItemChangeEvent(this, previous, prevItm, activeItem, actItm);
}
+ return null;
}
@Override
public void broadcast(FacesEvent event) throws AbortProcessingException {
- super.broadcast(event);
-
if (event instanceof ItemChangeEvent) {
- getFacesContext().renderResponse();
+ setValue(((ItemChangeEvent) event).getNewItemName());
+ setSubmittedActiveItem(null);
+ if (event.getPhaseId() != PhaseId.UPDATE_MODEL_VALUES) {
+ FacesContext.getCurrentInstance().renderResponse();
+ }
}
+ super.broadcast(event);
}
public String getSubmittedActiveItem() {
@@ -137,6 +145,7 @@
this.submittedActiveItem = String.valueOf(submittedValue);
}
+ @Attribute(generate = false)
public String getActiveItem() {
return (String) getValue();
}
@@ -155,6 +164,7 @@
}
}
+ @Attribute(generate = false)
public boolean isImmediate() {
return (Boolean) getStateHelper().eval(PropertyKeys.immediate, false);
}
@@ -216,7 +226,8 @@
topGroupCollapsedRightIcon,
topGroupDisabledLeftIcon,
topGroupDisabledRightIcon,
- itemLeftIcon
+ itemLeftIcon,
+ value
}
@Attribute
@@ -494,4 +505,13 @@
public void removeItemChangeListener(ItemChangeListener listener) {
removeFacesListener(listener);
}
+
+ @Attribute(generate = false, hidden = true)
+ public Object getValue() {
+ return getStateHelper().eval(Properties.value);
+ }
+
+ public void setValue(Object value) {
+ getStateHelper().put(Properties.value, value);
+ }
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuGroup.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuGroup.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuGroup.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -30,6 +30,7 @@
import javax.el.MethodExpression;
import javax.el.ValueExpression;
+import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.event.FacesEvent;
import javax.faces.event.PhaseId;
@@ -126,8 +127,8 @@
}
@Attribute
- public boolean isExpanded() {
- return getValue() == null ? false : (Boolean) getValue();
+ public Boolean isExpanded() {
+ return (Boolean) getValue();
}
public void setExpanded(boolean expanded) {
@@ -323,4 +324,46 @@
@Attribute(events = @EventName("beforeselect"))
public abstract String getOnbeforeselect();
+
+ public boolean hasActiveItem(UIComponent component, String activeItem) {
+ if (activeItem == null) {
+ return false;
+ }
+ if (component instanceof AbstractPanelMenuItem) {
+ AbstractPanelMenuItem item = (AbstractPanelMenuItem) component;
+ if (activeItem.equals(item.getName())) {
+ return true;
+ }
+ }
+
+ if (component instanceof AbstractPanelMenuGroup) {
+ AbstractPanelMenuGroup group = (AbstractPanelMenuGroup) component;
+ if (!group.getPanelMenu().isBubbleSelection()) {
+ return false;
+ }
+ }
+
+ if (component.getChildCount() > 0) {
+ for (UIComponent child : component.getChildren()) {
+ if (!child.isRendered()) {
+ continue;
+ }
+
+ if (!(child instanceof AbstractPanelMenuItem)) {
+ continue;
+ }
+
+ if (hasActiveItem(child, activeItem)) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ public boolean getState() {
+ Boolean flag = this.isExpanded();
+ return (flag == null ? this.hasActiveItem(this, this.getPanelMenu().getActiveItem()) : flag);
+ }
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuItem.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuItem.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuItem.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -23,11 +23,16 @@
package org.richfaces.component;
-import com.google.common.base.Predicate;
+import javax.faces.component.UIComponent;
+
import org.richfaces.PanelMenuMode;
-import org.richfaces.cdk.annotations.*;
+import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.EventName;
+import org.richfaces.cdk.annotations.JsfComponent;
+import org.richfaces.cdk.annotations.Tag;
+import org.richfaces.cdk.annotations.TagType;
-import javax.faces.component.UIComponent;
+import com.google.common.base.Predicate;
/**
* @author akolonitsky
@@ -45,6 +50,10 @@
protected AbstractPanelMenuItem() {
setRendererType("org.richfaces.PanelMenuItemRenderer");
}
+
+ public boolean isActiveItem() {
+ return this.getName().equals(this.getPanelMenu().getActiveItem());
+ }
public boolean isTopItem() {
return getParentItem() instanceof AbstractPanelMenu;
@@ -104,8 +113,15 @@
// ------------------------------------------------ Html Attributes
enum Properties {
- leftIcon, leftDisabledIcon, rightIcon, rightDisabledIcon, styleClass, disabledClass, execute, name
-
+ leftIcon,
+ leftDisabledIcon,
+ rightIcon,
+ rightDisabledIcon,
+ styleClass,
+ disabledClass,
+ execute,
+ name,
+ value
}
@Attribute(generate = false)
@@ -212,4 +228,13 @@
return comp instanceof AbstractPanelMenuGroup || comp instanceof AbstractPanelMenu;
}
}
+
+ @Attribute(generate = false, hidden = true)
+ public Object getValue() {
+ return getStateHelper().eval(Properties.value);
+ }
+
+ public void setValue(Object value) {
+ getStateHelper().put(Properties.value, value);
+ }
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTabPanel.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTabPanel.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTabPanel.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -25,7 +25,11 @@
import org.richfaces.HeaderAlignment;
import org.richfaces.HeaderPosition;
-import org.richfaces.cdk.annotations.*;
+import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.JsfComponent;
+import org.richfaces.cdk.annotations.JsfRenderer;
+import org.richfaces.cdk.annotations.Tag;
+import org.richfaces.cdk.annotations.TagType;
/**
* @author akolonitsky
@@ -54,6 +58,12 @@
String res = super.getActiveItem();
if (res == null) {
res = getFirstItem().getName();
+ } else {
+ AbstractTogglePanelTitledItem item =
+ (AbstractTogglePanelTitledItem) super.getItemByIndex(super.getChildIndex(res));
+ if (item.isDisabled()) {
+ res = getFirstItem().getName();
+ }
}
return res;
}
@@ -82,9 +92,6 @@
public abstract String getTabHeaderClass();
@Attribute(hidden = true)
- public abstract boolean isBypassUpdates();
-
- @Attribute(hidden = true)
public abstract boolean isLimitRender();
@Attribute(hidden = true)
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -22,16 +22,10 @@
package org.richfaces.component;
-import com.google.common.base.Strings;
-import org.richfaces.application.MessageFactory;
-import org.richfaces.application.ServiceTracker;
-import org.richfaces.appplication.FacesMessages;
-import org.richfaces.cdk.annotations.*;
-import org.richfaces.component.util.MessageUtil;
-import org.richfaces.event.ItemChangeEvent;
-import org.richfaces.event.ItemChangeListener;
-import org.richfaces.event.ItemChangeSource;
-import org.richfaces.renderkit.util.RendererUtils;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
import javax.el.ELException;
import javax.el.MethodExpression;
@@ -41,21 +35,48 @@
import javax.faces.component.UIComponent;
import javax.faces.component.UIOutput;
import javax.faces.component.UpdateModelException;
+import javax.faces.component.visit.VisitCallback;
+import javax.faces.component.visit.VisitContext;
+import javax.faces.component.visit.VisitResult;
import javax.faces.context.FacesContext;
-import javax.faces.event.*;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
+import javax.faces.event.AbortProcessingException;
+import javax.faces.event.ExceptionQueuedEvent;
+import javax.faces.event.ExceptionQueuedEventContext;
+import javax.faces.event.FacesEvent;
+import javax.faces.event.PhaseId;
+import javax.faces.event.PostValidateEvent;
+import javax.faces.event.PreValidateEvent;
+import org.richfaces.application.MessageFactory;
+import org.richfaces.application.ServiceTracker;
+import org.richfaces.application.FacesMessages;
+import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.EventName;
+import org.richfaces.cdk.annotations.JsfComponent;
+import org.richfaces.cdk.annotations.JsfRenderer;
+import org.richfaces.cdk.annotations.Tag;
+import org.richfaces.cdk.annotations.TagType;
+import org.richfaces.component.util.MessageUtil;
+import org.richfaces.context.ExtendedVisitContext;
+import org.richfaces.context.ExtendedVisitContextMode;
+import org.richfaces.event.ItemChangeEvent;
+import org.richfaces.event.ItemChangeListener;
+import org.richfaces.event.ItemChangeSource;
+import org.richfaces.renderkit.MetaComponentRenderer;
+import org.richfaces.renderkit.util.RendererUtils;
+
+import com.google.common.base.Strings;
+
/**
* @author akolonitsky
* @version 1.0
*/
@JsfComponent(tag = @Tag(type = TagType.Facelets, handler = "org.richfaces.view.facelets.html.TogglePanelTagHandler"),
renderer = @JsfRenderer(type = "org.richfaces.TogglePanelRenderer"))
-public abstract class AbstractTogglePanel extends UIOutput implements AbstractDivPanel, ItemChangeSource {
+public abstract class AbstractTogglePanel extends UIOutput implements AbstractDivPanel, ItemChangeSource, MetaComponentResolver, MetaComponentEncoder {
+ public static final String ACTIVE_ITEM_META_COMPONENT = "activeItem";
+
public static final String COMPONENT_TYPE = "org.richfaces.TogglePanel";
public static final String COMPONENT_FAMILY = "org.richfaces.TogglePanel";
@@ -204,7 +225,10 @@
popComponentFromEL(context);
}
- createItemChangeEvent(context);
+ ItemChangeEvent event = createItemChangeEvent(context);
+ if (event != null) {
+ event.queue();
+ }
}
/**
@@ -372,7 +396,7 @@
}
}
- private void createItemChangeEvent(FacesContext context) {
+ private ItemChangeEvent createItemChangeEvent(FacesContext context) {
if (context == null) {
throw new NullPointerException();
}
@@ -380,12 +404,10 @@
// Submitted value == null means "the component was not submitted at all".
String activeItem = getSubmittedActiveItem();
if (activeItem == null) {
- return;
+ return null;
}
String previous = (String) getValue();
- setValue(activeItem);
- setSubmittedActiveItem(null);
if (previous == null || !previous.equalsIgnoreCase(activeItem)) {
UIComponent prevComp = null;
UIComponent actvComp = null;
@@ -397,8 +419,9 @@
actvComp = (UIComponent)getItem(activeItem);
}
- new ItemChangeEvent(this, previous, prevComp, activeItem, actvComp).queue();
+ return new ItemChangeEvent(this, previous, prevComp, activeItem, actvComp);
}
+ return null;
}
@Override
@@ -413,19 +436,14 @@
if (isImmediate() || (event.getNewItem() != null &&
RendererUtils.getInstance().isBooleanAttribute(event.getNewItem(), "immediate"))) {
event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
- } else if (isBypassUpdates() || (event.getNewItem() != null &&
- RendererUtils.getInstance().isBooleanAttribute(event.getNewItem(), "bypassUpdates"))) {
- event.setPhaseId(PhaseId.PROCESS_VALIDATIONS);
} else {
- event.setPhaseId(PhaseId.INVOKE_APPLICATION);
+ event.setPhaseId(PhaseId.UPDATE_MODEL_VALUES);
}
}
-
+
protected void setEventPhase(FacesEvent event) {
if (isImmediate()) {
event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
- } else if (isBypassUpdates()) {
- event.setPhaseId(PhaseId.PROCESS_VALIDATIONS);
} else {
event.setPhaseId(PhaseId.INVOKE_APPLICATION);
}
@@ -433,11 +451,14 @@
@Override
public void broadcast(FacesEvent event) throws AbortProcessingException {
- super.broadcast(event);
-
if (event instanceof ItemChangeEvent) {
- FacesContext.getCurrentInstance().renderResponse();
+ setValue(((ItemChangeEvent) event).getNewItemName());
+ setSubmittedActiveItem(null);
+ if (event.getPhaseId() != PhaseId.UPDATE_MODEL_VALUES) {
+ FacesContext.getCurrentInstance().renderResponse();
+ }
}
+ super.broadcast(event);
}
// -------------------------------------------------- Panel Items Managing
@@ -618,9 +639,6 @@
getStateHelper().put(PropertyKeys.switchType, switchType);
}
- @Attribute
- public abstract boolean isBypassUpdates();
-
@Attribute(hidden = true)
public abstract boolean isLimitRender();
@@ -665,4 +683,66 @@
removeFacesListener(listener);
}
+ public String resolveClientId(FacesContext facesContext, UIComponent contextComponent, String metaComponentId) {
+ if (ACTIVE_ITEM_META_COMPONENT.equals(metaComponentId)) {
+ return getClientId(facesContext) + MetaComponentResolver.META_COMPONENT_SEPARATOR_CHAR + metaComponentId;
+ }
+ return null;
+ }
+
+ public String substituteUnresolvedClientId(FacesContext facesContext, UIComponent contextComponent,
+ String metaComponentId) {
+ return null;
+ }
+
+ public void encodeMetaComponent(FacesContext context, String metaComponentId) throws IOException {
+ ((MetaComponentRenderer) getRenderer(context)).encodeMetaComponent(context, this, metaComponentId);
+ }
+
+ @Override
+ public boolean visitTree(VisitContext context, VisitCallback callback) {
+ if (!isVisitable(context)) {
+ return false;
+ }
+
+ FacesContext facesContext = context.getFacesContext();
+ pushComponentToEL(facesContext, null);
+
+ try {
+ VisitResult result = context.invokeVisitCallback(this, callback);
+
+ if (result == VisitResult.COMPLETE) {
+ return true;
+ }
+
+ if (result == VisitResult.ACCEPT) {
+ if (context instanceof ExtendedVisitContext) {
+ ExtendedVisitContext extendedVisitContext = (ExtendedVisitContext) context;
+ if (extendedVisitContext.getVisitMode() == ExtendedVisitContextMode.RENDER) {
+
+ result = extendedVisitContext.invokeMetaComponentVisitCallback(this, callback, ACTIVE_ITEM_META_COMPONENT);
+ if (result == VisitResult.COMPLETE) {
+ return true;
+ }
+ }
+ }
+ }
+
+ if (result == VisitResult.ACCEPT) {
+ Iterator<UIComponent> kids = this.getFacetsAndChildren();
+
+ while(kids.hasNext()) {
+ boolean done = kids.next().visitTree(context, callback);
+
+ if (done) {
+ return true;
+ }
+ }
+ }
+ } finally {
+ popComponentFromEL(facesContext);
+ }
+
+ return false;
+ }
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTooltip.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTooltip.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTooltip.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -71,6 +71,7 @@
target
}
+ @Attribute(generate = false)
public String getTarget() {
UIComponent parent2 = getParent();
String id2 = parent2.getId();
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/CollapsiblePanelRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/CollapsiblePanelRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/CollapsiblePanelRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -102,29 +102,6 @@
};
@Override
- protected void doDecode(FacesContext context, UIComponent component) {
- AbstractTogglePanel panel = (AbstractTogglePanel) component;
-
- Map<String, String> requestMap =
- context.getExternalContext().getRequestParameterMap();
-
- // Don't overwrite the value unless you have to!
- String newValue = requestMap.get(getValueRequestParamName(context, component));
- if (newValue != null) {
- panel.setSubmittedActiveItem(newValue);
- }
-
- String compClientId = component.getClientId(context);
- String clientId = requestMap.get(compClientId);
- if (clientId != null && clientId.equals(compClientId)) {
- context.getPartialViewContext().getRenderIds().add(clientId);
-
- //TODO nick - this should be done on encode, not on decode
- addOnCompleteParam(context, newValue, panel.getClientId(context));
- }
- }
-
- @Override
protected void doEncodeBegin(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {
super.doEncodeBegin(writer, context, component);
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -9,6 +9,7 @@
import org.richfaces.component.AbstractMenuItem;
import org.richfaces.component.Mode;
import org.richfaces.renderkit.AjaxCommandRendererBase;
+import org.richfaces.renderkit.util.HandlersChain;
public class MenuItemRendererBase extends AjaxCommandRendererBase {
@@ -82,7 +83,40 @@
return "";
}
}
-
+
+ /** overridden due to {@link https://issues.jboss.org/browse/RF-10695}
+ *
+ * @param context
+ * @param component
+ * @return
+ */
+
+ @Override
+ public String getOnClick(FacesContext context, UIComponent component) {
+ StringBuffer onClick = new StringBuffer();
+
+ if (!getUtils().isBooleanAttribute(component, "disabled")) {
+ HandlersChain handlersChain = new HandlersChain(context, component);
+
+ handlersChain.addBehaviors("click", "action");
+ handlersChain.addAjaxSubmitFunction();
+
+ String handlerScript = handlersChain.toScript();
+
+ if (handlerScript != null) {
+ onClick.append(handlerScript);
+ }
+
+ if (!"reset".equals(component.getAttributes().get("type"))) {
+ onClick.append(";return false;");
+ }
+ } else {
+ onClick.append("return false;");
+ }
+
+ return onClick.toString();
+ }
+
protected Mode resolveSubmitMode(AbstractMenuItem menuItem) {
if (menuItem.getMode() != null) {
return menuItem.getMode();
@@ -92,7 +126,7 @@
return parent.getMode();
}
return Mode.server;
- }
+ }
protected String getStyleClass(FacesContext facesContext, UIComponent component, String ddMenuStyle, String menuGroupStyle, String menuItemStyle) {
UIComponent ddMenu = getDDMenu(component);
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupHeaderRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupHeaderRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupHeaderRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -6,6 +6,7 @@
import javax.faces.context.ResponseWriter;
import org.richfaces.component.AbstractPanelMenuGroup;
+import org.richfaces.component.util.HtmlUtil;
import org.richfaces.renderkit.util.PanelIcons;
import org.richfaces.renderkit.util.PanelIcons.State;
@@ -35,7 +36,7 @@
iconExpanded = PanelIcons.transparent.toString();
}
- encodeTdIcon(writer, context, cssClassPrefix + "-ico", iconCollapsed, iconExpanded, getState(group));
+ encodeTdIcon(writer, context, HtmlUtil.concatClasses(cssClassPrefix + "-ico", group.getLeftIconClass()), iconCollapsed, iconExpanded, getState(group));
}
protected void encodeHeaderRightIcon(ResponseWriter writer, FacesContext context, AbstractPanelMenuGroup group) throws IOException {
@@ -50,6 +51,6 @@
iconExpanded = PanelIcons.transparent.toString();
}
//TODO nick - should this be "-ico-exp"? also why expanded icon state is connected with right icon alignment?
- encodeTdIcon(writer, context, cssClassPrefix + "-exp-ico", iconCollapsed, iconExpanded, getState(group));
+ encodeTdIcon(writer, context, HtmlUtil.concatClasses(cssClassPrefix + "-exp-ico", group.getRightIconClass()), iconCollapsed, iconExpanded, getState(group));
}
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -43,14 +43,11 @@
import javax.faces.context.ResponseWriter;
import javax.faces.event.ActionEvent;
-import org.ajax4jsf.javascript.JSFunction;
import org.ajax4jsf.javascript.JSObject;
-import org.ajax4jsf.javascript.ScriptUtils;
import org.richfaces.PanelMenuMode;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.component.AbstractPanelMenuGroup;
import org.richfaces.component.AbstractPanelMenuItem;
-import org.richfaces.renderkit.HtmlConstants;
import com.google.common.base.Strings;
@@ -117,7 +114,7 @@
writer.writeAttribute(ID_ATTRIBUTE, expanded, null);
writer.writeAttribute(NAME_ATTRIBUTE, expanded, null);
writer.writeAttribute(TYPE_ATTR, INPUT_TYPE_HIDDEN, null);
- writer.writeAttribute(VALUE_ATTRIBUTE, String.valueOf(menuGroup.isExpanded()), null);
+ writer.writeAttribute(VALUE_ATTRIBUTE, String.valueOf(menuGroup.getState()), null);
writer.endElement(INPUT_ELEM);
encodeHeader(writer, context, menuGroup);
@@ -128,7 +125,8 @@
writer.startElement(DIV_ELEM, null);
writer.writeAttribute(ID_ATTRIBUTE, menuGroup.getClientId(context) + ":hdr", null);
writer.writeAttribute(CLASS_ATTRIBUTE, concatClasses(getCssClass(menuGroup, "-hdr"),
- "rf-pm-hdr-" + (menuGroup.isExpanded() ? "exp" : "colps"),
+ "rf-pm-hdr-" + (menuGroup.getState() ? "exp" : "colps"),
+ (menuGroup.getPanelMenu().isBubbleSelection() && menuGroup.hasActiveItem(menuGroup, menuGroup.getPanelMenu().getActiveItem()) ? getCssClass(menuGroup, "-sel") : ""),
PanelMenuItemRenderer.isParentPanelMenuDisabled(menuGroup) || menuGroup.isDisabled() ? getCssClass(menuGroup, "-hdr-dis") : null), null);
(menuGroup.isTopItem() ? topHeaderRenderer : headerRenderer).encodeHeader(writer, context, menuGroup);
@@ -143,7 +141,7 @@
private void encodeContentBegin(ResponseWriter writer, FacesContext context, AbstractPanelMenuGroup menuGroup) throws IOException {
writer.startElement(DIV_ELEM, null);
writer.writeAttribute(ID_ATTRIBUTE, menuGroup.getClientId(context) + ":cnt", null);
- writer.writeAttribute(CLASS_ATTRIBUTE, concatClasses(getCssClass(menuGroup, "-cnt"), menuGroup.isExpanded() ? "rf-pm-exp" : "rf-pm-colps"), null);
+ writer.writeAttribute(CLASS_ATTRIBUTE, concatClasses(getCssClass(menuGroup, "-cnt"), menuGroup.getState() ? "rf-pm-exp" : "rf-pm-colps"), null);
writeJavaScript(writer, context, menuGroup);
}
@@ -202,9 +200,10 @@
options.put("disabled", PanelMenuItemRenderer.isParentPanelMenuDisabled(panelMenuGroup) || panelMenuGroup.isDisabled());
options.put("expandEvent", getExpandEvent(panelMenuGroup));
options.put("collapseEvent", getCollapseEvent(panelMenuGroup));
- options.put("expanded", panelMenuGroup.isExpanded());
+ options.put("expanded", panelMenuGroup.getState());
options.put("selectable", panelMenuGroup.isSelectable());
options.put("unselectable", panelMenuGroup.isUnselectable());
+ options.put("stylePrefix", getCssClass(panelMenuGroup, ""));
addEventOption(context, panelMenuGroup, options, COLLAPSE);
addEventOption(context, panelMenuGroup, options, EXPAND);
@@ -235,40 +234,6 @@
return true;
}
- private boolean containsActiveItem(UIComponent component, String activeItem) {
- if (component instanceof AbstractPanelMenuItem) {
- AbstractPanelMenuItem item = (AbstractPanelMenuItem) component;
- if (activeItem.equals(item.getName())) {
- return true;
- }
- }
-
- if (component instanceof AbstractPanelMenuGroup) {
- AbstractPanelMenuGroup group = (AbstractPanelMenuGroup) component;
- if (!group.getPanelMenu().isBubbleSelection()) {
- return false;
- }
- }
-
- if (component.getChildCount() > 0) {
- for (UIComponent child : component.getChildren()) {
- if (!child.isRendered()) {
- continue;
- }
-
- if (!(child instanceof AbstractPanelMenuItem)) {
- continue;
- }
-
- if (containsActiveItem(child, activeItem)) {
- return true;
- }
- }
- }
-
- return false;
- }
-
@Override
protected void doEncodeChildren(ResponseWriter writer, FacesContext context, UIComponent component)
throws IOException {
@@ -277,16 +242,8 @@
boolean isClientMode = group.getMode() == PanelMenuMode.client;
- if (isClientMode || group.isExpanded()) {
+ if (isClientMode || group.getState()) {
renderChildren(context, component);
- } else {
- String activeItem = group.getPanelMenu().getActiveItem();
- if (!Strings.isNullOrEmpty(activeItem) && containsActiveItem(component, activeItem)) {
- writer.startElement(HtmlConstants.SCRIPT_ELEM, component);
- writer.writeAttribute(HtmlConstants.TYPE_ATTR, HtmlConstants.TEXT_JAVASCRIPT_TYPE, null);
- writer.writeText(ScriptUtils.toScript(new JSFunction("RichFaces.$", component.getClientId(context))) + ".__restoreSelection();", null);
- writer.endElement(HtmlConstants.SCRIPT_ELEM);
- }
}
}
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuItemRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuItemRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuItemRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -189,13 +189,14 @@
writer.endElement(TD_ELEM);
}
-
+
@Override
protected String getStyleClass(UIComponent component) {
AbstractPanelMenuItem menuItem = (AbstractPanelMenuItem) component;
return concatClasses(getCssClass(menuItem, ""),
attributeAsString(component, "styleClass"),
PanelMenuItemRenderer.isParentPanelMenuDisabled(menuItem) || menuItem.isDisabled() ? getCssClass(menuItem, "-dis") : "",
+ (menuItem.isActiveItem() ? getCssClass(menuItem, "-sel") : ""),
PanelMenuItemRenderer.isParentPanelMenuDisabled(menuItem) || menuItem.isDisabled() ? attributeAsString(component, "disabledClass") : "");
}
@@ -221,6 +222,7 @@
options.put("name", panelMenuItem.getName());
options.put("selectable", panelMenuItem.isSelectable());
options.put("unselectable", panelMenuItem.isUnselectable());
+ options.put("stylePrefix", getCssClass(panelMenuItem, ""));
addEventOption(context, panelMenuItem, options, UNSELECT);
addEventOption(context, panelMenuItem, options, SELECT);
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -23,23 +23,24 @@
package org.richfaces.renderkit.html;
-import org.ajax4jsf.javascript.JSObject;
-import org.richfaces.cdk.annotations.JsfRenderer;
-import org.richfaces.component.AbstractPanelMenu;
-import org.richfaces.component.util.HtmlUtil;
-import org.richfaces.renderkit.HtmlConstants;
+import static org.richfaces.renderkit.html.TogglePanelRenderer.getAjaxOptions;
+import static org.richfaces.renderkit.html.TogglePanelRenderer.getValueRequestParamName;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
import javax.faces.application.ResourceDependencies;
import javax.faces.application.ResourceDependency;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import static org.richfaces.renderkit.html.TogglePanelRenderer.getAjaxOptions;
-import static org.richfaces.renderkit.html.TogglePanelRenderer.getValueRequestParamName;
+import org.ajax4jsf.javascript.JSObject;
+import org.richfaces.cdk.annotations.JsfRenderer;
+import org.richfaces.component.AbstractPanelMenu;
+import org.richfaces.component.util.HtmlUtil;
+import org.richfaces.renderkit.HtmlConstants;
/**
* @author akolonitsky
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabPanelRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabPanelRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabPanelRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -22,25 +22,39 @@
package org.richfaces.renderkit.html;
-import org.ajax4jsf.javascript.JSObject;
-import org.richfaces.cdk.annotations.JsfRenderer;
-import org.richfaces.component.*;
-import org.richfaces.component.util.HtmlUtil;
-import org.richfaces.context.ExtendedPartialViewContext;
-import org.richfaces.renderkit.HtmlConstants;
-import org.richfaces.renderkit.RenderKitUtils;
+import static org.richfaces.component.AbstractTogglePanelTitledItem.HeaderStates.active;
+import static org.richfaces.component.AbstractTogglePanelTitledItem.HeaderStates.disabled;
+import static org.richfaces.component.AbstractTogglePanelTitledItem.HeaderStates.inactive;
+import static org.richfaces.renderkit.HtmlConstants.CLASS_ATTRIBUTE;
+import static org.richfaces.renderkit.HtmlConstants.DIV_ELEM;
+import static org.richfaces.renderkit.HtmlConstants.ID_ATTRIBUTE;
+import static org.richfaces.renderkit.HtmlConstants.SPAN_ELEM;
+import static org.richfaces.renderkit.HtmlConstants.STYLE_ATTRIBUTE;
+import static org.richfaces.renderkit.HtmlConstants.TBODY_ELEMENT;
+import static org.richfaces.renderkit.HtmlConstants.TD_ELEM;
+import static org.richfaces.renderkit.HtmlConstants.TR_ELEMENT;
+import static org.richfaces.renderkit.RenderKitUtils.renderPassThroughAttributes;
+import java.io.IOException;
+import java.util.Map;
+
import javax.faces.application.ResourceDependencies;
import javax.faces.application.ResourceDependency;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
-import java.io.IOException;
-import java.util.Map;
-import static org.richfaces.component.AbstractTogglePanelTitledItem.HeaderStates.*;
-import static org.richfaces.renderkit.HtmlConstants.*;
-import static org.richfaces.renderkit.RenderKitUtils.renderPassThroughAttributes;
+import org.ajax4jsf.javascript.JSObject;
+import org.richfaces.cdk.annotations.JsfRenderer;
+import org.richfaces.component.AbstractTab;
+import org.richfaces.component.AbstractTabPanel;
+import org.richfaces.component.AbstractTogglePanel;
+import org.richfaces.component.AbstractTogglePanelItemInterface;
+import org.richfaces.component.AbstractTogglePanelTitledItem;
+import org.richfaces.component.util.HtmlUtil;
+import org.richfaces.context.ExtendedPartialViewContext;
+import org.richfaces.renderkit.HtmlConstants;
+import org.richfaces.renderkit.RenderKitUtils;
/**
* @author akolonitsky
@@ -70,33 +84,6 @@
private static final String STYLE = STYLE_ATTRIBUTE;
private static final String CLASS = CLASS_ATTRIBUTE;
-// @Override
-// protected void doDecode(FacesContext context, UIComponent component) {
-// AbstractTogglePanel panel = (AbstractTogglePanel) component;
-//
-// Map<String, String> requestMap =
-// context.getExternalContext().getRequestParameterMap();
-//
-// // Don't overwrite the value unless you have to!
-// String newValue = requestMap.get(getValueRequestParamName(context, component));
-// if (newValue != null) {
-// panel.setSubmittedActiveItem(newValue);
-// }
-//
-// String tabClientId = component.getClientId(context);
-// if (requestMap.get(tabClientId) != null) {
-// new ActionEvent(component).queue();
-//
-// if (context.getPartialViewContext().isPartialRequest()) {
-// //TODO nick - why render item by default?
-// context.getPartialViewContext().getRenderIds().add(tabClientId);
-//
-// //TODO nick - this should be done on encode, not on decode
-// AbstractTab tab = (AbstractTab) component;
-// addOnCompleteParam(context, tab.getName(), tab.getTabPanel().getClientId(context));
-// }
-// }
-// }
protected static void addOnCompleteParam(FacesContext context, String newValue, String panelId) {
StringBuilder onComplete = new StringBuilder();
@@ -153,7 +140,7 @@
@Override
protected String getStyle(UIComponent component) {
- return concatStyles(attributeAsString(component, "style"), "width: 100%;");
+ return attributeAsString(component, "style");
}
@Override
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -22,29 +22,33 @@
package org.richfaces.renderkit.html;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.faces.application.ResourceDependencies;
+import javax.faces.application.ResourceDependency;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.PartialViewContext;
+import javax.faces.context.ResponseWriter;
+
import org.ajax4jsf.javascript.JSFunctionDefinition;
import org.ajax4jsf.javascript.JSObject;
import org.ajax4jsf.javascript.JSReference;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.component.AbstractTogglePanel;
import org.richfaces.component.AbstractTogglePanelItemInterface;
+import org.richfaces.component.MetaComponentResolver;
import org.richfaces.component.util.HtmlUtil;
import org.richfaces.context.ExtendedPartialViewContext;
import org.richfaces.renderkit.AjaxOptions;
import org.richfaces.renderkit.HtmlConstants;
+import org.richfaces.renderkit.MetaComponentRenderer;
import org.richfaces.renderkit.util.AjaxRendererUtils;
import org.richfaces.renderkit.util.FormUtil;
import org.richfaces.renderkit.util.HandlersChain;
-import javax.faces.application.ResourceDependencies;
-import javax.faces.application.ResourceDependency;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
/**
* @author akolonitsky
*/
@@ -56,7 +60,7 @@
@ResourceDependency(name = "richfaces-base-component.js"),
@ResourceDependency(library = "org.richfaces", name = "togglePanel.js")})
@JsfRenderer(type = "org.richfaces.TogglePanelRenderer", family = AbstractTogglePanel.COMPONENT_FAMILY)
-public class TogglePanelRenderer extends DivPanelRenderer {
+public class TogglePanelRenderer extends DivPanelRenderer implements MetaComponentRenderer {
public static final String VALUE_POSTFIX = "-value";
@@ -76,17 +80,14 @@
String newValue = requestMap.get(getValueRequestParamName(context, component));
if (newValue != null) {
panel.setSubmittedActiveItem(newValue);
-
- //Retrieve the child item from the panel
- AbstractTogglePanelItemInterface panelItem = panel.getItem(newValue);
- if (panelItem != null) {
- //Set the active panel to be rendered
- context.getPartialViewContext().getRenderIds().add(((UIComponent) panelItem).getClientId(context));
-
- //TODO nick - this should be done on encode, not on decode
- addOnCompleteParam(context, newValue, panel.getClientId(context));
- }
}
+
+ if (requestMap.get("javax.faces.partial.ajax") != null) {
+ PartialViewContext pvc = context.getPartialViewContext();
+ pvc.getRenderIds().add(
+ component.getClientId(context) + MetaComponentResolver.META_COMPONENT_SEPARATOR_CHAR
+ + AbstractTogglePanel.ACTIVE_ITEM_META_COMPONENT);
+ }
}
protected static void addOnCompleteParam(FacesContext context, String newValue, String panelId) {
@@ -100,7 +101,7 @@
static String getValueRequestParamName(FacesContext context, UIComponent component) {
return component.getClientId(context) + VALUE_POSTFIX;
}
-
+
@Override
protected void doEncodeBegin(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {
FormUtil.throwEnclFormReqExceptionIfNeed(context, component);
@@ -114,7 +115,7 @@
writer.writeAttribute(HtmlConstants.TYPE_ATTR, HtmlConstants.INPUT_TYPE_HIDDEN, null);
writer.writeAttribute(HtmlConstants.VALUE_ATTRIBUTE, panel.getActiveItem(), null);
writer.endElement(HtmlConstants.INPUT_ELEM);
-
+
writeJavaScript(writer, context, component);
}
@@ -179,5 +180,39 @@
protected Class<? extends UIComponent> getComponentClass() {
return AbstractTogglePanel.class;
}
+
+ public void encodeMetaComponent(FacesContext context, UIComponent component, String metaComponentId)
+ throws IOException {
+ if (AbstractTogglePanel.ACTIVE_ITEM_META_COMPONENT.equals(metaComponentId)) {
+ AbstractTogglePanel panel = (AbstractTogglePanel)component;
+ AbstractTogglePanelItemInterface item = panel.getItem(panel.getActiveItem());
+
+ if (item != null) {
+ partialStart(context, ((UIComponent)item).getClientId(context));
+ ((UIComponent)item).encodeAll(context);
+ partialEnd(context);
+ addOnCompleteParam(context, item.getName(), panel.getClientId(context));
+ } else {
+ partialStart(context, component.getClientId(context));
+ component.encodeAll(context);
+ partialEnd(context);
+ addOnCompleteParam(context, panel.getActiveItem(), panel.getClientId(context));
+ }
+ } else {
+ throw new IllegalArgumentException(metaComponentId);
+ }
+ }
+
+ public void decodeMetaComponent(FacesContext context, UIComponent component, String metaComponentId) {
+ // TODO Auto-generated method stub
+ }
+
+ protected void partialStart(FacesContext facesContext, String id) throws IOException {
+ facesContext.getPartialViewContext().getPartialResponseWriter().startUpdate(id);
+ }
+
+ protected void partialEnd(FacesContext facesContext) throws IOException {
+ facesContext.getPartialViewContext().getPartialResponseWriter().endUpdate();
+ }
}
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/dropdownmenu.ecss
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/dropdownmenu.ecss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/dropdownmenu.ecss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,18 +1,30 @@
.rf-ddm-lbl, .rf-ddm-lbl-dis {
- font-family: '#{richSkin.headerFamilyFont}';
- font-size:11px;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size:'#{richSkin.generalSizeFont}';
+ font-weight: '#{richSkin.headerWeightFont}';
position:relative;
+ white-space:nowrap;
}
-.rf-ddm-lbl-unsel {
- border:0 solid transparent;
- padding:3px 6px;
+
+.rf-ddm-lbl {
+ padding: 2px 5px;
}
-.rf-ddm-lbl, .rf-ddm-lbl-dis {
- height:auto;
- padding:2px 5px;
- white-space:nowrap;
- width:auto;
+
+.rf-ddm-unsel {
+ border: 1px solid transparent;
}
+
+.rf-ddm-sel {
+ background-image: "url(#{resource['org.richfaces.images:menu_item_bg.gif']})";
+ background-repeat: repeat-x;
+ background-position: bottom left;
+ background-color: '#{richSkin.additionalBackgroundColor}';
+ /*from additionalBackgroundColor (top) to tabBackgroundColor (bottom) additionalBackgroundColor*/
+ border : 1px solid; /*headerBackgroundColor*/
+ border-color: '#{richSkin.headerBackgroundColor}';
+ cursor:pointer;
+}
+
.rf-ddm-pos{
top:20px;
left:0;
@@ -24,7 +36,7 @@
cursor: default;
}
.rf-ddm-lbl-dec {
- font-weight:bold;
+ font-weight:'#{richSkin.headerWeightFont}';
cursor : pointer;
}
.rf-ddm-lst {
@@ -65,9 +77,9 @@
border-color: '#{richSkin.headerBackgroundColor}';
cursor : pointer;
padding : 1px 36px 2px 2px;
- background-color: '#{richSkin.tabBackgroundColor}';
+ background-color: '#{richSkin.additionalBackgroundColor}';
background-repeat: repeat-x;
- background-position: top;
+ background-position: bottom left;
background-image: "url(#{resource['org.richfaces.images:menu_item_bg.gif']})";
z-index:10;
}
@@ -85,11 +97,12 @@
color : '#{richSkin.generalTextColor}'; /*#000000;*/ /*generalTextColor*/
display:inline-block;
text-decoration : none;
+ vertical-align:middle;
z-index:2;
}
.rf-ddm-sep {
font-size : 0px;
- border-top: 1px solid; /* #bfbfc0;*/ /*panelBorderColor*/
+ border-top: 1px solid; /* #BED6F8;*/ /*panelBorderColor*/
border-top-color: '#{richSkin.panelBorderColor}';
margin : 2px 0px 2px 24px;
}
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/menu.js
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/menu.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/menu.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -4,27 +4,29 @@
var defaultOptions = {
positionType : "DROPDOWN",
direction : "AA",
- jointPoint : "AA"
+ jointPoint : "AA",
+ selectMenuCss : "rf-ddm-sel",
+ unselectMenuCss : "rf-ddm-unsel"
};
// constructor definition
- rf.ui.Menu = function(componentId, options) {
- this.options = {};
- $.extend(this.options, defaultOptions, options || {});
- $super.constructor.call(this, componentId, this.options);
- this.id = componentId;
- this.namespace = this.namespace || "."
- + rf.Event.createNamespace(this.name, this.id);
- this.groupList = new Array();
+ rf.ui.Menu = function(componentId, options) {
+ this.options = {};
+ $.extend(this.options, defaultOptions, options || {});
+ $super.constructor.call(this, componentId, this.options);
+ this.id = componentId;
+ this.namespace = this.namespace || "."
+ + rf.Event.createNamespace(this.name, this.id);
+ this.groupList = new Array();
- rf.Event.bindById(this.id + "_label", this.options.showEvent, $.proxy(
- this.__showHandler, this), this);
+ rf.Event.bindById(this.id + "_label", this.options.showEvent, $.proxy(
+ this.__showHandler, this), this);
+ this.element = $(rf.getDomElement(this.id));
- this.attachToDom(componentId);
- if (!rf.ui.MenuManager)
- rf.ui.MenuManager = {};
- this.menuManager = rf.ui.MenuManager;
- };
+ if (!rf.ui.MenuManager)
+ rf.ui.MenuManager = {};
+ this.menuManager = rf.ui.MenuManager;
+ };
rf.ui.MenuBase.extend(rf.ui.Menu);
@@ -67,13 +69,32 @@
this.menuManager.deletedMenuId();
},
- destroy : function() {
- // clean up code here
- this.detach(this.id);
+ select : function() {
+ this.element.removeClass(this.options.unselectMenuCss);
+ this.element.addClass(this.options.selectMenuCss);
+ },
+ unselect : function() {
+ this.element.removeClass(this.options.selectMenuCss);
+ this.element.addClass(this.options.unselectMenuCss);
+ },
- rf.Event.unbindById(this.id + "_label", this.options.showEvent);
+ __overHandler : function() {
+ $super.__overHandler.call(this);
+ this.select();
+ },
- // call parent's destroy method
+ __leaveHandler : function() {
+ $super.__leaveHandler.call(this);
+ this.unselect();
+ },
+
+ destroy : function() {
+ // clean up code here
+ this.detach(this.id);
+
+ rf.Event.unbindById(this.id + "_label", this.options.showEvent);
+
+ // call parent's destroy method
$super.destroy.call(this);
}
@@ -107,6 +128,5 @@
getActiveSubMenu : function() {
return this.activeSubMenu;
}
-
}
})(jQuery, RichFaces);
\ No newline at end of file
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenu.ecss
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenu.ecss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenu.ecss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -166,7 +166,7 @@
.rf-pm-top-itm:hover {
color: '#{richSkin.headerTextColor}';
- background-color:#ffd700;
+ background-color: '#{richSkin.additionalBackgroundColor}';
}
.rf-pm-top-itm-sel {
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenu.js
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenu.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenu.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -51,19 +51,6 @@
this.activeItem = this.__getValueInput().value;
this.nestingLevel = 0;
- var menuGroup = this;
- if (menuGroup.options.expandSingle) {
- menuGroup.__panelMenu().bind("expand", function (event) {
- menuGroup.__childGroups().each (function (index, group) {
- if (event.target.id != group.id) {
- rf.$(group.id).__collapse();
- }
- });
-
- event.stopPropagation();
- });
- }
-
this.__addUserEventHandler("collapse");
this.__addUserEventHandler("expand");
},
@@ -107,7 +94,7 @@
* @return {String} TODO ...
*/
selectedItem: function (id) {
- if (id != undefined) {
+ if (typeof id != "undefined") {
var valueInput = this.__getValueInput();
var prevActiveItem = valueInput.value;
@@ -208,6 +195,16 @@
return item.itemName == this.activeItem;
},
+ __collapseGroups : function (event) {
+ var topGroup = rf.$(event.target.id).__rfTopGroup();
+ this.__childGroups().each (function (index, group) {
+ if (group.id != event.target.id && (!topGroup || group.id != topGroup.id)) {
+ rf.$(group.id).__collapse();
+ }
+ });
+
+ },
+
destroy: function () {
rf.Event.unbindById(this.id, "."+this.namespace);
$super.destroy.call(this);
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuGroup.js
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuGroup.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuGroup.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -204,29 +204,19 @@
}
if (menuGroup.options.expandSingle) {
+ var component = this;
menuGroup.__group().bind("expand", function (event) {
- if (menuGroup.__isMyEvent(event)) {
- return;
- }
-
- menuGroup.__childGroups().each (function (index, group) {
- var rfGroup = rf.$(group);
- if (!rfGroup.__isMyEvent(event)) {
- rfGroup.collapse();
- }
- });
-
- //TODO nick - why?
- event.stopPropagation();
+ component.__rfPanelMenu().__collapseGroups(event);
+ event.stopPropagation();
});
}
- this.__addUserEventHandler("beforecollapse");
+ /*this.__addUserEventHandler("beforecollapse");
this.__addUserEventHandler("collapse");
this.__addUserEventHandler("beforeexpand");
this.__addUserEventHandler("expand");
this.__addUserEventHandler("beforeswitch");
- this.__addUserEventHandler("switch");
+ this.__addUserEventHandler("switch");*/
}
},
@@ -403,11 +393,6 @@
__isMyEvent: function (event) {
return this.id == event.target.id;
},
-
- __fireEvent: function(eventName) {
- var data = {id: this.id};
- return rf.Event.fireById(this.id, eventName, data);
- },
destroy: function () {
rf.Event.unbindById(this.id, "."+this.namespace);
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuItem.js
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuItem.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuItem.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -161,10 +161,6 @@
// todo move it
this.selectionClass = this.options.stylePrefix + "-sel";
- if (panelMenu.__isActiveItem(this)) {
- rootElt.ready($.proxy(this.__restoreSelection, this));
- }
-
if (!this.options.disabled) {
var item = this;
@@ -292,11 +288,6 @@
__header : function () {
return this.__item();
},
-
- __restoreSelection: function() {
- this.__select();
- //this.__fireSelect();
- },
__isSelected: function() {
return this.__header().hasClass(this.selectionClass);
@@ -315,7 +306,7 @@
item: this
});
},
-
+
__fireSelect : function () {
return rf.Event.fireById(this.id, "select", {
item: this
@@ -327,6 +318,10 @@
item: this
});
},
+
+ __fireEvent : function (eventType, event) {
+ return this.invokeEvent(eventType, rf.getDomElement(this.id), event, {id: this.id, item: this});
+ },
/**
* @private
@@ -337,6 +332,11 @@
rf.Event.bindById(this.id, name, handler);
}
},
+
+ __rfTopGroup : function () {
+ var res = this.__item().parents(".rf-pm-top-gr")[0];
+ return res ? res : null;
+ },
destroy: function () {
var panelMenu = this.__rfPanelMenu();
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/popupPanel.ecss
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/popupPanel.ecss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/popupPanel.ecss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -30,6 +30,7 @@
top: 6px;
left: 6px;
bottom: -6px;
+ z-index: -1;
}
.rf-pp-cntr {
@@ -73,7 +74,6 @@
top : 0px;
left : 0px;
overflow : auto;
- position: relative;
background : '#{richSkin.generalBackgroundColor}';
}
.rf-pp-cnt {
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/popupPanel.js
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/popupPanel.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/popupPanel.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -175,12 +175,9 @@
this.borders = null;
if (this.domReattached) {
- var element = this.div;
- var parent = element.parent();
- if (parent) {
- parent.remove(element);
- }
+ this.div.remove();
}
+
this.markerId = null;
this.options = null;
@@ -311,7 +308,7 @@
options.height = this.maxHeight;
}
$(richfaces.getDomElement(eContentElt)).css('height', options.height + (/px/.test(options.height) ? '' : 'px'));
- var headerHeight = $(richfaces.getDomElement(this.markerId + "_header"))[0] ? $(richfaces.getDomElement(this.markerId + "_header"))[0].clientHeight : 0;
+ var headerHeight = $(richfaces.getDomElement(this.markerId + "_header")) ? $(richfaces.getDomElement(this.markerId + "_header")).innerHeight() : 0;
this.scrollerDiv.css('height', options.height - headerHeight + (/px/.test(options.height) ? '' : 'px'));
}
@@ -749,11 +746,11 @@
$.extend(richfaces.ui.PopupPanel, {
showPopupPanel : function (id, opts, event) {
- richfaces.Event.ready(richfaces.$(id).show());
+ richfaces.Event.ready(function(){richfaces.$(id).show()});
},
hidePopupPanel : function (id, opts, event) {
- richfaces.Event.ready(richfaces.$(id).hide());
+ richfaces.Event.ready(function(){richfaces.$(id).hide()});
}
});
Modified: trunk/ui/output/ui/src/main/templates/dropdownmenu.template.xml
===================================================================
--- trunk/ui/output/ui/src/main/templates/dropdownmenu.template.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/main/templates/dropdownmenu.template.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -21,7 +21,7 @@
<cdk:object name="label" value="#{getLabelFacet(facesContext, component)}" type="javax.faces.component.UIComponent" />
<cdk:object name="isDisabled" type="boolean" value="#{isDisabled(facesContext, component)}" />
- <div id="#{clientId}" class="rf-ddm-lbl #{isDisabled ? 'rf-ddm-dis' : 'rf-ddm-lbl-unsel '+styleClass} " style="#{style}"
+ <div id="#{clientId}" class="rf-ddm-lbl #{isDisabled ? 'rf-ddm-dis' : 'rf-ddm-unsel '+styleClass} " style="#{style}"
cdk:passThroughWithExclusions="">
<div id="#{clientId}_label" class="#{isDisabled ? 'rf-ddm-lbl-dis' : 'rf-ddm-lbl-dec'}">
Modified: trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/dropDownMenu_ajaxMode.xmlunit.xml
===================================================================
--- trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/dropDownMenu_ajaxMode.xmlunit.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/dropDownMenu_ajaxMode.xmlunit.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,4 +1,4 @@
- <div class="rf-ddm-lbl rf-ddm-lbl-unsel " id="form:ddmenu">
+ <div class="rf-ddm-lbl rf-ddm-unsel " id="form:ddmenu">
<div id="form:ddmenu_label" class="rf-ddm-lbl-dec">
<img src="/images/ddmenu/copy.gif" class="pic"/>
File
Modified: trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/dropDownMenu_serverMode.xmlunit.xml
===================================================================
--- trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/dropDownMenu_serverMode.xmlunit.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/dropDownMenu_serverMode.xmlunit.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,4 +1,4 @@
- <div class="rf-ddm-lbl rf-ddm-lbl-unsel " id="form:ddmenu">
+ <div class="rf-ddm-lbl rf-ddm-unsel " id="form:ddmenu">
<div id="form:ddmenu_label" class="rf-ddm-lbl-dec">
<img src="/images/ddmenu/copy.gif" class="pic"/>
File
Modified: trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/tab.xmlunit.xml
===================================================================
--- trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/tab.xmlunit.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/tab.xmlunit.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,4 +1,4 @@
-<div id="f:tabPanel" class="rf-tbp" style="width: 100%;">
+<div id="f:tabPanel" class="rf-tbp">
<input type="hidden" value="tab" id="f:tabPanel-value" name="f:tabPanel-value"/>
<script type="text/javascript">
//<![CDATA[
Modified: trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/tabPanel.xmlunit.xml
===================================================================
--- trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/tabPanel.xmlunit.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/output/ui/src/test/resources/org/richfaces/renderkit/html/tabPanel.xmlunit.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,4 +1,4 @@
-<div id="f:tabPanel" class="rf-tbp" style="width: 100%;">
+<div id="f:tabPanel" class="rf-tbp">
<input type="hidden" value="tab" id="f:tabPanel-value" name="f:tabPanel-value"/>
<script type="text/javascript">
//<![CDATA[
Modified: trunk/ui/validator/ui/src/main/java/org/richfaces/javascript/ClientScriptServiceImpl.java
===================================================================
--- trunk/ui/validator/ui/src/main/java/org/richfaces/javascript/ClientScriptServiceImpl.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/validator/ui/src/main/java/org/richfaces/javascript/ClientScriptServiceImpl.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -78,7 +78,7 @@
if (null == facesContext || null == javaClass) {
throw new NullPointerException();
}
- LibraryFunction function = getFromComputationMap(resourcesMapping, javaClass);
+ LibraryFunction function = NO_SCRIPT;// RF-10719, temporary disable. getFromComputationMap(resourcesMapping, javaClass);
if(NO_SCRIPT == function) {
if (defaultMapping.containsKey(javaClass)) {
function = defaultMapping.get(javaClass);
Modified: trunk/ui/validator/ui/src/main/java/org/richfaces/renderkit/MessageRendererBase.java
===================================================================
--- trunk/ui/validator/ui/src/main/java/org/richfaces/renderkit/MessageRendererBase.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/validator/ui/src/main/java/org/richfaces/renderkit/MessageRendererBase.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -60,9 +60,9 @@
public class MessageRendererBase extends Renderer {
private static final ImmutableMap<Severity, SeverityAttributes> SEVERITY_MAP = ImmutableMap.of(
- FacesMessage.SEVERITY_INFO, attrs("info", "inf", null), FacesMessage.SEVERITY_WARN, attrs("warn", "wrn", null),
- FacesMessage.SEVERITY_ERROR, attrs("error", "err", null), FacesMessage.SEVERITY_FATAL,
- attrs("fatal", "ftl", null));
+ FacesMessage.SEVERITY_INFO, attrs("info", "inf"), FacesMessage.SEVERITY_WARN, attrs("warn", "wrn"),
+ FacesMessage.SEVERITY_ERROR, attrs("error", "err"), FacesMessage.SEVERITY_FATAL,
+ attrs("fatal", "ftl"));
protected Iterator<MessageForRender> getMessages(FacesContext context, String forClientId, UIComponent component) {
@@ -172,6 +172,7 @@
String detail = message.getDetail();
boolean showSummary = true;
boolean showDetail = false;
+ boolean isMessages = false;
if (component instanceof UIMessage) {
UIMessage uiMessage = (UIMessage) component;
showSummary = uiMessage.isShowSummary();
@@ -180,20 +181,21 @@
UIMessages uiMessages = (UIMessages) component;
showSummary = uiMessages.isShowSummary();
showDetail = uiMessages.isShowDetail();
+ isMessages = true;
}
ResponseWriter responseWriter = facesContext.getResponseWriter();
// Message id
responseWriter.writeAttribute("id", component.getClientId()+':'+message.getSourceId(),null);
// tooltip
- boolean wroteTooltip = Boolean.TRUE.equals(component.getAttributes().get("tooltip"));
+ boolean wroteTooltip = RendererUtils.getInstance().isBooleanAttribute(component, "tooltip");
if(wroteTooltip && !Strings.isNullOrEmpty(summary)){
responseWriter.writeAttribute("title", summary,null);
}
if (!wroteTooltip && showSummary) {
- writeMessageLabel(responseWriter, summary, "rf-msg-sum");
+ writeMessageLabel(responseWriter, summary, isMessages ? "rf-msgs-sum" : "rf-msg-sum");
}
if (showDetail) {
- writeMessageLabel(responseWriter, detail, "rf-msg-det");
+ writeMessageLabel(responseWriter, detail, isMessages ? "rf-msgs-det" : "rf-msg-det");
}
message.rendered();
}
@@ -213,8 +215,9 @@
Map<String, Object> attributes = component.getAttributes();
Builder<String, Object> parametersBuilder = ImmutableMap.builder();
String forId = (String) attributes.get("for");
+ RendererUtils rendererUtils = RendererUtils.getInstance();
if (!Strings.isNullOrEmpty(forId)) {
- UIComponent target = RendererUtils.getInstance().findComponentFor(component, forId);
+ UIComponent target = rendererUtils.findComponentFor(component, forId);
if (null != target) {
parametersBuilder.put("forComponentId",
target.getClientId(facesContext));
@@ -224,15 +227,18 @@
if(FacesMessage.SEVERITY_INFO != level){
parametersBuilder.put("level", level.getOrdinal());
}
- if(!Boolean.TRUE.equals(attributes.get("showSummary"))){
+ if(!rendererUtils.isBooleanAttribute(component, "showSummary")){
parametersBuilder.put("showSummary", false);
}
- if(Boolean.TRUE.equals(attributes.get("showDetail"))){
+ if(rendererUtils.isBooleanAttribute(component, "showDetail")){
parametersBuilder.put("showDetail", true);
}
- if(Boolean.TRUE.equals(attributes.get("tooltip"))){
+ if(rendererUtils.isBooleanAttribute(component, "tooltip")){
parametersBuilder.put("tooltip", true);
}
+ if (component instanceof UIMessages) {
+ parametersBuilder.put("isMessages", true);
+ }
messageObject.addParameter(parametersBuilder.build());
// RendererUtils.getInstance().writeScript(facesContext, component, messageObject);
javaScriptService.addPageReadyScript(facesContext, messageObject);
@@ -241,8 +247,12 @@
protected String getMsgClass(FacesContext facesContext, UIComponent component, Object msg) throws IOException {
MessageForRender message = (MessageForRender) msg;
SeverityAttributes severityAttributes = SEVERITY_MAP.get(message.getSeverity());
+
+ boolean isMessages = (component instanceof UIMessages);
+
String styleClass =
- buildSeverityAttribute(component, severityAttributes.skinClass, severityAttributes.classAttribute, ' ');
+ buildSeverityAttribute(component, (isMessages ? severityAttributes.messagesSkinClass : severityAttributes.messageSkinClass),
+ severityAttributes.classAttribute, ' ');
return styleClass;
}
@@ -250,7 +260,7 @@
MessageForRender message = (MessageForRender) msg;
SeverityAttributes severityAttributes = SEVERITY_MAP.get(message.getSeverity());
String style =
- buildSeverityAttribute(component, severityAttributes.skinStyle, severityAttributes.styleAttribute, ';');
+ buildSeverityAttribute(component, null, severityAttributes.styleAttribute, ';');
return style;
}
@@ -269,29 +279,22 @@
return style.toString();
}
- static SeverityAttributes attrs(String attPrefix, String skinSuffix, String skinStyle) {
- SeverityAttributes attrs =
- new SeverityAttributes(attPrefix + "Style", attPrefix + "Class", skinStyle, "rf-msg-" + skinSuffix, null,
- null);
+ static SeverityAttributes attrs(String attPrefix, String skinSuffix) {
+ SeverityAttributes attrs = new SeverityAttributes(attPrefix, skinSuffix);
return attrs;
}
private static final class SeverityAttributes {
private final String styleAttribute;
private final String classAttribute;
- private final String skinStyle;
- private final String skinClass;
- private final String labelStyleAttribute;
- private final String labelClassAttribute;
+ private final String messageSkinClass;
+ private final String messagesSkinClass;
- private SeverityAttributes(String styleAttribute2, String classAttribute2, String markerStyleAttribute2,
- String markerClassAttribute2, String labelStyleAttribute2, String labelClassAttribute2) {
- this.styleAttribute = styleAttribute2;
- this.classAttribute = classAttribute2;
- this.skinStyle = markerStyleAttribute2;
- this.skinClass = markerClassAttribute2;
- this.labelStyleAttribute = labelStyleAttribute2;
- this.labelClassAttribute = labelClassAttribute2;
+ private SeverityAttributes(String attPrefix, String skinSuffix) {
+ this.styleAttribute = attPrefix + "Style";
+ this.classAttribute = attPrefix + "Class";
+ this.messageSkinClass = "rf-msg-" + skinSuffix;
+ this.messagesSkinClass = "rf-msgs-" + skinSuffix;
}
}
}
Modified: trunk/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java
===================================================================
--- trunk/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -160,7 +160,8 @@
validatorScript = createValidatorScript(behaviorContext, behavior, validators, null);
}
} catch (ConverterNotFoundException e) {
- throw new FacesException(e);
+ // fallback to ajax-only validation
+ validatorScript = new AjaxOnlyScript(createAjaxScript(behaviorContext, behavior));
}
String clientId = getComponentClientId(behaviorContext);
String name = ScriptUtils.getValidJavascriptName(clientId + ":v");
Modified: trunk/ui/validator/ui/src/main/resources/META-INF/resources/org.richfaces/message.js
===================================================================
--- trunk/ui/validator/ui/src/main/resources/META-INF/resources/org.richfaces/message.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/validator/ui/src/main/resources/META-INF/resources/org.richfaces/message.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,40 +1,18 @@
(function($, rf) {
-
- rf.ui = rf.ui || {};
// Constructor definition
- rf.ui.Base = function(componentId, options, defaultOptions) {
- this.namespace = "."+rf.Event.createNamespace(this.name, componentId);
- // call constructor of parent class
- $super.constructor.call(this, componentId);
- this.options = $.extend(this.options, defaultOptions, options);
- this.attachToDom();
- this.__bindEventHandlers();
- };
-
- // Extend component class and add protected methods from parent class to our container
- rf.BaseComponent.extend(rf.ui.Base);
-
- // define super class link
- var $super = rf.ui.Base.$super;
-
- $.extend(rf.ui.Base.prototype, {
- __bindEventHandlers: function () {
- },
- destroy: function () {
- rf.Event.unbindById(this.id, this.namespace);
- $super.destroy.call(this);
- }
- });
-
-})(jQuery, window.RichFaces || (window.RichFaces={}));
-
-(function($, rf) {
-
- // Constructor definition
rf.ui.Message = function(componentId, options) {
// call constructor of parent class
$super.constructor.call(this, componentId, options, defaultOptions);
+ if(this.options.isMessages){
+ this.severityClasses = ["rf-msgs-inf", "rf-msgs-wrn", "rf-msgs-err", "rf-msgs-ftl"];
+ this.summaryClass = "rf-msgs-sum";
+ this.detailClass = "rf-msgs-dtl";
+ } else {
+ this.severityClasses = ["rf-msg-inf", "rf-msg-wrn", "rf-msg-err", "rf-msg-ftl"];
+ this.summaryClass = "rf-msg-sum";
+ this.detailClass = "rf-msg-dtl";
+ }
};
// Extend component class and add protected methods from parent class to our container
@@ -44,12 +22,12 @@
var $super = rf.ui.Message.$super;
var defaultOptions = {
- showSummary:true,
- level:0
+ showSummary:true,
+ level:0,
+ isMessages: false
};
- var severetyClasses=["rf-msg-inf","rf-msg-wrn","rf-msg-err","rf-msg-ftl"];
-
+
var onMessage = function (event, element, data) {
var content = $(rf.getDomElement(this.id));
var sourceId = data.sourceId;
@@ -57,7 +35,10 @@
if (!this.options.forComponentId) {
if (!message) {
// rf.csv.clearMessage
- $(rf.getDomElement(this.id+':'+sourceId)).remove();
+ var element;
+ while(element=rf.getDomElement(this.id+':'+sourceId)){
+ $(element).remove();
+ }
} else {
renderMessage.call(this,sourceId,message);
}
@@ -69,32 +50,30 @@
var renderMessage = function(index,message){
if(message && message.severity >= this.options.level){
+
var content = $(rf.getDomElement(this.id));
- var msgContent = "<span class='"+severetyClasses[message.severity]+"' id='"+this.id+':'+index+"'";
+ var msgContent = $("<span/>",{'class':(this.severityClasses)[message.severity],"id":this.id+':'+index});
if(message.summary){
if(this.options.tooltip){
- msgContent = msgContent+" title='"+message.summary+"'>";
+ msgContent.attr("title",message.summary);
} else if(this.options.showSummary ){
- msgContent = msgContent + "><span class='rf-msg-sum'>"+message.summary+"</span>";
- } else {
- msgContent = msgContent+">";
+ msgContent.append($("<span/>",{"class":(this.summaryClass)}).text(message.summary));
}
- } else {
- msgContent = msgContent+">";
}
if(this.options.showDetail && message.detail){
- msgContent = msgContent + "<span class='rf-msg-dtl'>"+message.detail+"</span>";
+ msgContent.append($("<span/>",{"class":(this.detailClass)}).text(message.detail));
}
- msgContent = msgContent+"</span>"
content.append(msgContent);
}
}
+ var bindEventHandlers = function () {
+ rf.Event.bind(window.document, rf.Event.MESSAGE_EVENT_TYPE+this.namespace, onMessage, this);
+ };
+
$.extend(rf.ui.Message.prototype, {
name: "Message",
- __bindEventHandlers: function () {
- rf.Event.bind(window.document, rf.Event.MESSAGE_EVENT_TYPE+this.namespace, onMessage, this);
- }
+ __bindEventHandlers: bindEventHandlers
});
})(jQuery, window.RichFaces || (window.RichFaces={}));
\ No newline at end of file
Modified: trunk/ui/validator/ui/src/main/resources/META-INF/resources/org.richfaces/msg.ecss
===================================================================
--- trunk/ui/validator/ui/src/main/resources/META-INF/resources/org.richfaces/msg.ecss 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/validator/ui/src/main/resources/META-INF/resources/org.richfaces/msg.ecss 2011-03-27 13:51:09 UTC (rev 22318)
@@ -1,12 +1,16 @@
/*--- RF Message styles ---*/
-.rf-msg {
+.rf-msg, .rf-msgs {
font-family:'#{richSkin.generalFamilyFont}';/*generalFamilyFont*/
font-size:'#{richSkin.generalSizeFont}';/*generalSizeFont*/
height:18ex;
}
/* all messages */
-.rf-msg-err, .rf-msg-ftl, .rf-msg-inf, .rf-msg-wrn {
- display:inline-block;
+.rf-msg-err, .rf-msgs-err,
+.rf-msg-ftl, .rf-msgs-ftl,
+.rf-msg-inf, .rf-msgs-inf,
+.rf-msg-wrn, .rf-msgs-wrn,
+.rf-msg-ok, .rf-msgs-ok {
+ display:block;
padding-right:2px;
padding-left:20px;
vertical-align:middle;
@@ -14,33 +18,31 @@
background-position:left center ;
}
-.rf-msg-err {
+.rf-msg-err, .rf-msgs-err {
background-image: "url(#{resource['org.richfaces:error.png']})";
color:'#{richSkin.errorColor}';
}
-.rf-msg-ftl {
+.rf-msg-ftl, .rf-msgs-ftl {
background-image: "url(#{resource['org.richfaces:fatal.png']})";
color:'#{richSkin.errorColor}';
}
-.rf-msg-inf {
+.rf-msg-inf, .rf-msgs-inf {
background-image: "url(#{resource['org.richfaces:info.png']})";
color:'#{richSkin.generalTextColor}';
}
-.rf-msg-wrn {
+.rf-msg-wrn, .rf-msgs-wrn {
background-image: "url(#{resource['org.richfaces:warning.png']})";
color:'#{richSkin.warningColor}';
}
-.rf-msg-ok {
+.rf-msg-ok, .rf-msgs-ok {
background-image: "url(#{resource['org.richfaces:ok.png']})";
color:'#{richSkin.generalTextColor}';
- width:20px;
- display:inline-block;
- vertical-align:middle;
- background-repeat:no-repeat;
- background-position:left center ;
}
-.rf-msg-sum{ /*Summary*/
+.rf-msg-sum, .rf-msgs-sum { /*Summary*/
+ display:inline;
}
-.rf-msg-det{ /*Description*/
+
+.rf-msg-det, .rf-msgs-det { /*Description*/
+ display:inline;
}
Modified: trunk/ui/validator/ui/src/main/resources/META-INF/resources/org.richfaces/richfaces-csv.js
===================================================================
--- trunk/ui/validator/ui/src/main/resources/META-INF/resources/org.richfaces/richfaces-csv.js 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/validator/ui/src/main/resources/META-INF/resources/org.richfaces/richfaces-csv.js 2011-03-27 13:51:09 UTC (rev 22318)
@@ -107,9 +107,8 @@
}
};
- var getValue = function(id) {
+ var getValue = function(element) {
var value;
- var element = rf.getDomElement(id);
if (valueExtractors[element.type]) {
value = valueExtractors[element.type](element);
} else if(undefined !== element.value ){
@@ -150,7 +149,8 @@
rf.Event.fire(window.document, rf.Event.MESSAGE_EVENT_TYPE, {'sourceId':componentId });
},
validate: function (event, id, element, params) {
- var value = getValue(element || id);
+ var element = rf.getDomElement(element || id);
+ var value = getValue(element);
var convertedValue;
var converter = params.c;
rf.csv.clearMessage(id);
@@ -185,7 +185,7 @@
}
}
}
- if(!result && !params.da && params.a){
+ if(result && !params.da && params.a){
params.a.call(element,event,id);
}
return result;
@@ -197,18 +197,24 @@
*
*/
var _convertNatural = function(value,label,msg,min,max,sample){
- var result; value = $.trim(value);
- if (!rf.csv.RE_DIGITS.test(value) || (result=parseInt(value,10))<min || result>max) {
+ var result = null;
+ if(value){
+ value = $.trim(value);
+ if (!rf.csv.RE_DIGITS.test(value) || (result=parseInt(value,10))<min || result>max) {
throw rf.csv.interpolateMessage(msg, sample?[value, sample, label]:[value,label]);
+ }
}
return result;
}
var _convertReal = function(value,label,msg,sample){
- var result; value = $.trim(value);
- if (!rf.csv.RE_FLOAT.test(value) || isNaN(result=parseFloat(value)) ) {
+ var result = null;
+ if(value){
+ value = $.trim(value);
+ if (!rf.csv.RE_FLOAT.test(value) || isNaN(result=parseFloat(value)) ) {
// TODO - check Float limits.
throw rf.csv.interpolateMessage(msg, sample?[value, sample, label]:[value,label]);
+ }
}
return result;
}
@@ -341,7 +347,7 @@
validateRegex(value,label,params.regexp,msg);
},
"validateRequired": function (value,label,params,msg) {
- if (!value ) {
+ if (undefined === value || null===value || "" === value ) {
throw rf.csv.interpolateMessage(msg, [label]);
}
},
Modified: trunk/ui/validator/ui/src/main/templates/messages.template.xml
===================================================================
--- trunk/ui/validator/ui/src/main/templates/messages.template.xml 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/validator/ui/src/main/templates/messages.template.xml 2011-03-27 13:51:09 UTC (rev 22318)
@@ -26,7 +26,7 @@
name="message.reslib" />
</cc:interface>
<cc:implementation>
- <span id="#{clientId}" class="rf-msg #{component.attributes['styleClass']}"
+ <span id="#{clientId}" class="rf-msgs #{component.attributes['styleClass']}"
cdk:passThroughWithExclusions="id class">
<c:forEach var="msg"
items="#{getVisibleMessages(facesContext,component)}">
Modified: trunk/ui/validator/ui/src/test/java/org/richfaces/javascript/ClientScriptServiceTest.java
===================================================================
--- trunk/ui/validator/ui/src/test/java/org/richfaces/javascript/ClientScriptServiceTest.java 2011-03-25 18:58:21 UTC (rev 22317)
+++ trunk/ui/validator/ui/src/test/java/org/richfaces/javascript/ClientScriptServiceTest.java 2011-03-27 13:51:09 UTC (rev 22318)
@@ -20,6 +20,7 @@
import org.jboss.test.faces.mock.MockTestRunner;
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.richfaces.resource.ResourceKey;
@@ -84,6 +85,7 @@
* @throws Exception
*/
@Test
+ @Ignore
public void testGetScriptAsJsfResource() throws Exception {
LibraryFunction script = getScript(resource, ValidatorWithFacesResource.class);
assertEquals(RESOURCE_NAME, getOnlyResource(script).getResourceName());
@@ -119,7 +121,7 @@
}
private LibraryFunction getScript(Resource resource, Class<?> serverSideType) throws ScriptNotFoundException {
- expect(resourceHandler.createResource(serverSideType.getSimpleName() + ".js", ORG_RICHFACES_CSV, TEXT_JAVASCRIPT)).andReturn(resource);
+// expect(resourceHandler.createResource(serverSideType.getSimpleName() + ".js", ORG_RICHFACES_CSV, TEXT_JAVASCRIPT)).andReturn(resource);
controller.replay();
LibraryFunction script = serviceImpl.getScript(environment.getFacesContext(), serverSideType);
return script;
13 years, 9 months
JBoss Rich Faces SVN: r22317 - branches.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2011-03-25 14:58:21 -0400 (Fri, 25 Mar 2011)
New Revision: 22317
Removed:
branches/RF-10753/
Log:
Closing dead RF-10753 branch
13 years, 9 months
JBoss Rich Faces SVN: r22316 - in branches/4.0.X/examples/richfaces-showcase: src/main/resources/org/richfaces/demo/data/common and 5 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: artdaw
Date: 2011-03-25 13:28:44 -0400 (Fri, 25 Mar 2011)
New Revision: 22316
Added:
branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/cron.xml
branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/faces-config.xml
branches/4.0.X/examples/richfaces-showcase/src/main/webapp/favicon.ico
Modified:
branches/4.0.X/examples/richfaces-showcase/pom.xml
branches/4.0.X/examples/richfaces-showcase/src/main/resources/org/richfaces/demo/data/common/navigation.xml
branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/appengine-web.xml
branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/web.xml
branches/4.0.X/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/cachedAjax.xhtml
branches/4.0.X/examples/richfaces-showcase/src/main/webapp/richfaces/dragDrop/samples/dragIndicator-sample.xhtml
branches/4.0.X/examples/richfaces-showcase/src/main/webapp/richfaces/status/viewusage.xhtml
Log:
RF-10753: all changes are merged
Modified: branches/4.0.X/examples/richfaces-showcase/pom.xml
===================================================================
--- branches/4.0.X/examples/richfaces-showcase/pom.xml 2011-03-25 14:35:02 UTC (rev 22315)
+++ branches/4.0.X/examples/richfaces-showcase/pom.xml 2011-03-25 17:28:44 UTC (rev 22316)
@@ -18,7 +18,7 @@
<name>Richfaces Examples: Richfaces Showcase Application</name>
<properties>
- <gae.version>1.4.0</gae.version>
+ <gae.version>1.4.2</gae.version>
</properties>
<dependencies>
@@ -200,6 +200,7 @@
<directory>src/main/webapp</directory>
<excludes>
<exclude>WEB-INF/web.xml</exclude>
+ <exclude>WEB-INF/faces-config.xml</exclude>
</excludes>
</resource>
<resource>
Modified: branches/4.0.X/examples/richfaces-showcase/src/main/resources/org/richfaces/demo/data/common/navigation.xml
===================================================================
--- branches/4.0.X/examples/richfaces-showcase/src/main/resources/org/richfaces/demo/data/common/navigation.xml 2011-03-25 14:35:02 UTC (rev 22315)
+++ branches/4.0.X/examples/richfaces-showcase/src/main/resources/org/richfaces/demo/data/common/navigation.xml 2011-03-25 17:28:44 UTC (rev 22316)
@@ -480,7 +480,7 @@
</demo>
<demo>
<id>toolBar</id>
- <name>rich:toolBar</name>
+ <name>rich:toolbar</name>
<samples>
<sample>
<id>toolBar</id>
Copied: branches/4.0.X/examples/richfaces-showcase/src/main/webapp/favicon.ico (from rev 22315, branches/RF-10753/examples/richfaces-showcase/src/main/webapp/favicon.ico)
===================================================================
(Binary files differ)
Modified: branches/4.0.X/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/cachedAjax.xhtml
===================================================================
--- branches/4.0.X/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/cachedAjax.xhtml 2011-03-25 14:35:02 UTC (rev 22315)
+++ branches/4.0.X/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/cachedAjax.xhtml 2011-03-25 17:28:44 UTC (rev 22316)
@@ -1,27 +1,32 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:h="http://java.sun.com/jsf/html"
- 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:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>The <b>rich:autocomplete</b> component looks like a simple input component,
- but has advanced options and features to provide suggestions to the user during input.</p>
- <p>There are three different <i>modes</i> for how it fetches suggestions:
- <ul>
- <li><b>Client</b> - preloads data to the client and makes suggestions according to the entered prefix on the client</li>
- <li><b>Ajax</b> - fetches the data on every input change using Ajax requests</li>
- <li><b>Cached Ajax</b> - loads data via Ajax to make suggestions when the prefix length satisfies <i>minChars</i> attribute value. Then all the suggestions are handled at the client until the initial prefix is changed. At that point it will reload with the new prefix.</li>
- </ul>
- </p>
- <p><b>1)</b> Autocomplete American state names using the cached Ajax mode with <i>minChars="2"</i>.</p>
- <ui:include src="#{demoNavigator.sampleIncludeURI}" />
- <ui:include src="/templates/includes/source-view.xhtml">
- <ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
- <ui:param name="sourceType" value="xhtml" />
- <ui:param name="openLabel" value="View Source" />
- <ui:param name="hideLabel" value="Hide Source" />
- </ui:include>
+ <p>The <b>rich:autocomplete</b> component looks like a simple input component,
+ but has advanced options and features to provide suggestions to the user during input.</p>
+
+ <p>There are three different <i>modes</i> for how it fetches suggestions:</p>
+ <ul>
+ <li>
+ <b>Client</b> - preloads data to the client and makes suggestions according to the entered prefix on the client
+ </li>
+ <li><b>Ajax</b> - fetches the data on every input change using Ajax requests</li>
+ <li><b>Cached Ajax</b> - loads data via Ajax to make suggestions when the prefix length satisfies
+ <i>minChars</i> attribute value. Then all the suggestions are handled at the client until the initial prefix is changed. At that point it will reload with the new prefix.
+ </li>
+ </ul>
+ <p><b>1)</b> Autocomplete American state names using the cached Ajax mode with <i>minChars="2"</i>.</p>
+ <ui:include src="#{demoNavigator.sampleIncludeURI}"/>
+ <ui:include src="/templates/includes/source-view.xhtml">
+ <ui:param name="src" value="#{demoNavigator.sampleIncludeURI}"/>
+ <ui:param name="sourceType" value="xhtml"/>
+ <ui:param name="openLabel" value="View Source"/>
+ <ui:param name="hideLabel" value="Hide Source"/>
+ </ui:include>
</ui:composition>
</html>
\ No newline at end of file
Modified: branches/4.0.X/examples/richfaces-showcase/src/main/webapp/richfaces/dragDrop/samples/dragIndicator-sample.xhtml
===================================================================
--- branches/4.0.X/examples/richfaces-showcase/src/main/webapp/richfaces/dragDrop/samples/dragIndicator-sample.xhtml 2011-03-25 14:35:02 UTC (rev 22315)
+++ branches/4.0.X/examples/richfaces-showcase/src/main/webapp/richfaces/dragDrop/samples/dragIndicator-sample.xhtml 2011-03-25 17:28:44 UTC (rev 22316)
@@ -28,13 +28,13 @@
background-position: 5px;
background-repeat: no-repeat;
}
- .accept{
+ .rf-ind-drag.accept{
background-image: url("#{facesContext.externalContext.requestContextPath}/images/dnd/accept.gif");
background-position: 5px;
background-repeat: no-repeat;
border:2px solid green
}
- .reject{
+ .rf-ind-drag.reject{
border:2px solid red;
background-image: url("#{facesContext.externalContext.requestContextPath}/images/dnd/reject.gif");
background-position: 5px;
Modified: branches/4.0.X/examples/richfaces-showcase/src/main/webapp/richfaces/status/viewusage.xhtml
===================================================================
--- branches/4.0.X/examples/richfaces-showcase/src/main/webapp/richfaces/status/viewusage.xhtml 2011-03-25 14:35:02 UTC (rev 22315)
+++ branches/4.0.X/examples/richfaces-showcase/src/main/webapp/richfaces/status/viewusage.xhtml 2011-03-25 17:28:44 UTC (rev 22316)
@@ -10,13 +10,12 @@
The <i>start</i> state indicates that an Ajax request is in progress.
When an Ajax Response is returned, the component switches to the
<i>stop</i> state.</p>
- <p>The <b>a4j:status</b> component could be defined as follows:
+ <p>The <b>a4j:status</b> component could be defined as follows: </p>
<ul>
<li>As the default for a view.</li>
<li>As the default for a form.</li>
<li>Referenced explicity from the component sending the request.</li>
</ul>
- </p>
<p>This example shows a view-scoped <b>a4j:status</b> component. It should be defined outside of
any forms, and will handle all the Ajax requests within the view.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
Modified: branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/appengine-web.xml
===================================================================
--- branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/appengine-web.xml 2011-03-25 14:35:02 UTC (rev 22315)
+++ branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/appengine-web.xml 2011-03-25 17:28:44 UTC (rev 22316)
@@ -1,15 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
- <application>richfaces-showcase</application>
+ <application>travelcurve</application>
<version>28</version>
<sessions-enabled>true</sessions-enabled>
-
+
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/classes/logging.properties"/>
</system-properties>
<resource-files>
- <exclude path="/static-resources/**" />
+ <exclude path="/static-resources/**"/>
</resource-files>
+ <static-files>
+ <include path="/images/**.*"/>
+ <include path="/static-resources/**.*"/>
+ <include path="/*.ico"/>
+ <include path="/resources/**.*"/>
+ <exclude path="/templates/**.*"/>
+ <exclude path="/*.xhtml"/>
+ </static-files>
+
</appengine-web-app>
Copied: branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/cron.xml (from rev 22315, branches/RF-10753/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/cron.xml)
===================================================================
--- branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/cron.xml (rev 0)
+++ branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/cron.xml 2011-03-25 17:28:44 UTC (rev 22316)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<cronentries>
+ <cron>
+ <url>/_ah/sessioncleanup?clear</url>
+ <description>Clean up sessions</description>
+ <schedule>every 5 minutes</schedule>
+ </cron>
+</cronentries>
Copied: branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/faces-config.xml (from rev 22315, branches/RF-10753/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/faces-config.xml)
===================================================================
--- branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/faces-config.xml (rev 0)
+++ branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/faces-config.xml 2011-03-25 17:28:44 UTC (rev 22316)
@@ -0,0 +1,256 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
+ version="2.0" metadata-complete="true">
+
+ <application>
+ <!-- system-event-listener>
+ <system-event-listener-class>org.richfaces.resource.MapBasedResourceCodecListener</system-event-listener-class>
+ <system-event-class>javax.faces.event.PostConstructApplicationEvent</system-event-class>
+ </system-event-listener -->
+ </application>
+
+ <component>
+ <component-type>syntaxHighlighter</component-type>
+ <component-class>org.richfaces.demo.components.sh.SyntaxHighlighter</component-class>
+ </component>
+
+ <managed-bean>
+ <managed-bean-name>functionBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.function.FunctionBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>validationBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.validation.ValidationBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>passwordValidationBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.validation.PasswordValidationBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>mediaData</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.mediaOutput.MediaData</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>mediaBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.mediaOutput.MediaBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>pollBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.poll.PollBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>profile</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.togglepanel.Profile</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>progressBarBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.progressBar.ProgressBarBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>tooltipData</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tooltip.TooltipData</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>calendarBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.calendar.CalendarBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>calendarModel</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.calendar.model.CalendarModel</managed-bean-class>
+ <managed-bean-scope>application</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>queueBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.queue.QueueBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>regionBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.region.RegionBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>autocompleteBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.autocomplete.AutocompleteBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>capitals</property-name>
+ <value>#{capitalsParser.capitalsList}</value>
+ </managed-property>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>inplaceSelectBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.inplaces.InplaceSelectBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>capitals</property-name>
+ <value>#{capitalsParser.capitalsList}</value>
+ </managed-property>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>panelMenuBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.panelmenu.PanelMenuBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>capitalsBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.CapitalsBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ <managed-property>
+ <property-name>capitals</property-name>
+ <value>#{capitalsParser.capitalsList}</value>
+ </managed-property>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>carsBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.CarsBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>carsFilteringBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.CarsFilteringBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>capitalsSortingBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.CapitalsSortingBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>extTableSelectionBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.ExtTableSelectionBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ <managed-property>
+ <property-name>inventoryItems</property-name>
+ <value>#{carsBean.allInventoryItems}</value>
+ </managed-property>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>capitalsParser</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.model.capitals.CapitalsParser</managed-bean-class>
+ <managed-bean-scope>application</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>slidesBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.SlidesBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>reportBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tables.ReportBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>paramBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.param.ParamBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>toolBarBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.toolbar.ToolBarBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>userBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.common.UserBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>demoNavigator</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.common.navigation.DemoNavigator</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ <managed-property>
+ <property-name>groups</property-name>
+ <value>#{navigationParser.groupsList}</value>
+ </managed-property>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>navigationParser</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.common.navigation.NavigationParser</managed-bean-class>
+ <managed-bean-scope>application</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>selectsBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.common.SelectsBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>skinBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.common.SkinBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ <managed-property>
+ <property-name>skin</property-name>
+ <value>blueSky</value>
+ </managed-property>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>listBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.lists.ListBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>fileUploadBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.fileupload.FileUploadBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>dragDropBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.dragdrop.DragDropBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>dragDropEventBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.dragdrop.DragDropEventBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>dragDropBean</property-name>
+ <value>#{dragDropBean}</value>
+ </managed-property>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>dropDownMenuBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.dropdownmenu.DropDownMenuBean</managed-bean-class>
+ <managed-bean-scope>view</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>cdsParser</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tree.CDParser</managed-bean-class>
+ <managed-bean-scope>application</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>fileSystemBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tree.adaptors.FileSystemBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>treeBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tree.TreeBean</managed-bean-class>
+ <managed-bean-scope>application</managed-bean-scope>
+ <managed-property>
+ <property-name>cdXmlDescriptors</property-name>
+ <value>#{cdsParser.cdsList}</value>
+ </managed-property>
+ </managed-bean>
+
+ <managed-bean>
+ <managed-bean-name>opBean1</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.outputPanel.OutputPanelBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>opBean2</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.outputPanel.OutputPanelBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+</faces-config>
Modified: branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/web.xml
===================================================================
--- branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/web.xml 2011-03-25 14:35:02 UTC (rev 22315)
+++ branches/4.0.X/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/web.xml 2011-03-25 17:28:44 UTC (rev 22316)
@@ -54,16 +54,6 @@
<param-value>org.ajax4jsf.cache.lru.LRUMapCacheFactory</param-value>
</context-param>
- <context-param>
- <description>
- Set this flag to true if you want the JavaServer Faces
- Reference Implementation to validate the XML in your
- faces-config.xml resources against the DTD. Default
- value is false.
- </description>
- <param-name>com.sun.faces.validateXml</param-name>
- <param-value>true</param-value>
- </context-param>
<!-- ***** Accommodate Single-Threaded Requirement of Google AppEngine -->
<context-param>
<description>
@@ -95,6 +85,10 @@
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
+ <servlet>
+ <servlet-name>_ah_sessioncleanup</servlet-name>
+ <servlet-class>com.google.apphosting.utils.servlet.SessionCleanupServlet</servlet-class>
+ </servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
@@ -103,4 +97,17 @@
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
-</web-app>
\ No newline at end of file
+ <servlet-mapping>
+ <servlet-name>_ah_sessioncleanup</servlet-name>
+ <url-pattern>/_ah/sessioncleanup</url-pattern>
+ </servlet-mapping>
+ <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>session-cleanup</web-resource-name>
+ <url-pattern>/_ah/sessioncleanup</url-pattern>
+ </web-resource-collection>
+ <auth-constraint>
+ <role-name>admin</role-name>
+ </auth-constraint>
+ </security-constraint>
+</web-app>
13 years, 9 months
JBoss Rich Faces SVN: r22315 - in branches/RF-10753/examples/richfaces-showcase/src/main/webapp/richfaces: outputPanel and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: artdaw
Date: 2011-03-25 10:35:02 -0400 (Fri, 25 Mar 2011)
New Revision: 22315
Modified:
branches/RF-10753/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/cachedAjax.xhtml
branches/RF-10753/examples/richfaces-showcase/src/main/webapp/richfaces/outputPanel/simple.xhtml
branches/RF-10753/examples/richfaces-showcase/src/main/webapp/richfaces/status/viewusage.xhtml
Log:
RF-10806: unterminated paragraph tag in showcase are fixed
Modified: branches/RF-10753/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/cachedAjax.xhtml
===================================================================
--- branches/RF-10753/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/cachedAjax.xhtml 2011-03-25 14:32:11 UTC (rev 22314)
+++ branches/RF-10753/examples/richfaces-showcase/src/main/webapp/richfaces/autocomplete/cachedAjax.xhtml 2011-03-25 14:35:02 UTC (rev 22315)
@@ -1,26 +1,27 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:h="http://java.sun.com/jsf/html"
- 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:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p>Autocomplete component - simple Input component which provides suggestions during input.</p>
- <p>Could works using three modes:
- <ul>
- <li>Client - preloads data to the client side and makes suggestions according to entered prefix on the client</li>
- <li>Ajax - fetches the data on every input change using ajax requests</li>
- <li>Cached Ajax - loads data via ajax to make suggestions when the prefix length satisfies minchars attribute. Then all the suggestions done at client side except the case when initial prefix changed or token entered. Then loads data again.</li>
- </ul>
- </p>
- <p>Here is the sample for new cachedAjax mode. </p>
- <ui:include src="#{demoNavigator.sampleIncludeURI}" />
- <ui:include src="/templates/includes/source-view.xhtml">
- <ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
- <ui:param name="sourceType" value="xhtml" />
- <ui:param name="openLabel" value="View Source" />
- <ui:param name="hideLabel" value="Hide Source" />
- </ui:include>
+ <p>Autocomplete component - simple Input component which provides suggestions during input.</p>
+
+ <p>Could works using three modes:</p>
+ <ul>
+ <li>Client - preloads data to the client side and makes suggestions according to entered prefix on the client</li>
+ <li>Ajax - fetches the data on every input change using ajax requests</li>
+ <li>Cached Ajax - loads data via ajax to make suggestions when the prefix length satisfies minchars attribute. Then all the suggestions done at client side except the case when initial prefix changed or token entered. Then loads data again.</li>
+ </ul>
+ <p>Here is the sample for new cachedAjax mode. </p>
+ <ui:include src="#{demoNavigator.sampleIncludeURI}"/>
+ <ui:include src="/templates/includes/source-view.xhtml">
+ <ui:param name="src" value="#{demoNavigator.sampleIncludeURI}"/>
+ <ui:param name="sourceType" value="xhtml"/>
+ <ui:param name="openLabel" value="View Source"/>
+ <ui:param name="hideLabel" value="Hide Source"/>
+ </ui:include>
</ui:composition>
</html>
\ No newline at end of file
Modified: branches/RF-10753/examples/richfaces-showcase/src/main/webapp/richfaces/outputPanel/simple.xhtml
===================================================================
--- branches/RF-10753/examples/richfaces-showcase/src/main/webapp/richfaces/outputPanel/simple.xhtml 2011-03-25 14:32:11 UTC (rev 22314)
+++ branches/RF-10753/examples/richfaces-showcase/src/main/webapp/richfaces/outputPanel/simple.xhtml 2011-03-25 14:35:02 UTC (rev 22315)
@@ -1,36 +1,39 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:h="http://java.sun.com/jsf/html"
- 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:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
- <p><b>a4j:outputPanel</b> component designed to provide next
- features:
- <ul>
- <li><b>Automaticall updates</b> of the child content on Ajax
- requests</li>
- <li>Wrapper component for <b>conditional rendering of nested
- elements</b> via Ajax</li>
- <li><b>Configurable layouts</b>:
- <ul>
- <li>inline - rendered as span element</li>
- <li>block - rendered as div element</li>
- <li>none - special layout for nested components confitional
- rendering cases</li>
- </ul>
- </li>
- <li></li>
- </ul>
- </p>
- <ui:include src="#{demoNavigator.sampleIncludeURI}" />
- <ui:include src="/templates/includes/source-view.xhtml">
- <ui:param name="src" value="#{demoNavigator.sampleIncludeURI}" />
- <ui:param name="sourceType" value="xhtml" />
- <ui:param name="openLabel" value="View Source" />
- <ui:param name="hideLabel" value="Hide Source" />
- </ui:include>
+ <p><b>a4j:outputPanel</b> component designed to provide next
+ features:
+ </p>
+ <ul>
+ <li><b>Automaticall updates</b> of the child content on Ajax
+ requests
+ </li>
+ <li>Wrapper component for <b>conditional rendering of nested
+ elements</b> via Ajax
+ </li>
+ <li><b>Configurable layouts</b>:
+ <ul>
+ <li>inline - rendered as span element</li>
+ <li>block - rendered as div element</li>
+ <li>none - special layout for nested components confitional
+ rendering cases
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <ui:include src="#{demoNavigator.sampleIncludeURI}"/>
+ <ui:include src="/templates/includes/source-view.xhtml">
+ <ui:param name="src" value="#{demoNavigator.sampleIncludeURI}"/>
+ <ui:param name="sourceType" value="xhtml"/>
+ <ui:param name="openLabel" value="View Source"/>
+ <ui:param name="hideLabel" value="Hide Source"/>
+ </ui:include>
</ui:composition>
</html>
\ No newline at end of file
Modified: branches/RF-10753/examples/richfaces-showcase/src/main/webapp/richfaces/status/viewusage.xhtml
===================================================================
--- branches/RF-10753/examples/richfaces-showcase/src/main/webapp/richfaces/status/viewusage.xhtml 2011-03-25 14:32:11 UTC (rev 22314)
+++ branches/RF-10753/examples/richfaces-showcase/src/main/webapp/richfaces/status/viewusage.xhtml 2011-03-25 14:35:02 UTC (rev 22315)
@@ -9,13 +9,12 @@
- start and stop. The start state indicates that an Ajax request is in
progress. When Ajax Response comes back, the component switches to the
stop stage.</p>
- <p>Status could be defined:
+ <p>Status could be defined:</p>
<ul>
<li>Default for View</li>
<li>Default for form</li>
<li>Referenced explicity from the component which sends request</li>
</ul>
- </p>
<p>Example of View scoped status. It should be defined outside of
any form and will handle all the Ajax requests within the view.</p>
<ui:include src="#{demoNavigator.sampleIncludeURI}" />
13 years, 9 months
JBoss Rich Faces SVN: r22314 - branches/RF-10753/examples/richfaces-showcase/src/main/resources/org/richfaces/demo/data/common.
by richfaces-svn-commits@lists.jboss.org
Author: artdaw
Date: 2011-03-25 10:32:11 -0400 (Fri, 25 Mar 2011)
New Revision: 22314
Modified:
branches/RF-10753/examples/richfaces-showcase/src/main/resources/org/richfaces/demo/data/common/navigation.xml
Log:
RF-10803: navigation menu is fixed
Modified: branches/RF-10753/examples/richfaces-showcase/src/main/resources/org/richfaces/demo/data/common/navigation.xml
===================================================================
--- branches/RF-10753/examples/richfaces-showcase/src/main/resources/org/richfaces/demo/data/common/navigation.xml 2011-03-25 14:02:15 UTC (rev 22313)
+++ branches/RF-10753/examples/richfaces-showcase/src/main/resources/org/richfaces/demo/data/common/navigation.xml 2011-03-25 14:32:11 UTC (rev 22314)
@@ -480,7 +480,7 @@
</demo>
<demo>
<id>toolBar</id>
- <name>rich:toolBar</name>
+ <name>rich:toolbar</name>
<samples>
<sample>
<id>toolBar</id>
13 years, 9 months
JBoss Rich Faces SVN: r22313 - branches/RF-10753/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF.
by richfaces-svn-commits@lists.jboss.org
Author: artdaw
Date: 2011-03-25 10:02:15 -0400 (Fri, 25 Mar 2011)
New Revision: 22313
Modified:
branches/RF-10753/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/appengine-web.xml
Log:
RF-10328: static resources are fixed
Modified: branches/RF-10753/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/appengine-web.xml
===================================================================
--- branches/RF-10753/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/appengine-web.xml 2011-03-25 09:21:07 UTC (rev 22312)
+++ branches/RF-10753/examples/richfaces-showcase/src/main/webapp-gae/WEB-INF/appengine-web.xml 2011-03-25 14:02:15 UTC (rev 22313)
@@ -3,13 +3,22 @@
<application>richfaces-showcase</application>
<version>28</version>
<sessions-enabled>true</sessions-enabled>
-
+
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/classes/logging.properties"/>
</system-properties>
<resource-files>
- <exclude path="/static-resources/**" />
+ <exclude path="/static-resources/**"/>
</resource-files>
+ <static-files>
+ <include path="/images/**.*"/>
+ <include path="/static-resources/**.*"/>
+ <include path="/*.ico"/>
+ <include path="/resources/**.*"/>
+ <exclude path="/templates/**.*"/>
+ <exclude path="/*.xhtml"/>
+ </static-files>
+
</appengine-web-app>
13 years, 9 months
JBoss Rich Faces SVN: r22311 - modules/docs/trunk.
by richfaces-svn-commits@lists.jboss.org
Author: SeanRogers
Date: 2011-03-25 03:50:10 -0400 (Fri, 25 Mar 2011)
New Revision: 22311
Modified:
modules/docs/trunk/bundle_docs.sh
Log:
Updated bundle script
Modified: modules/docs/trunk/bundle_docs.sh
===================================================================
--- modules/docs/trunk/bundle_docs.sh 2011-03-25 07:30:31 UTC (rev 22310)
+++ modules/docs/trunk/bundle_docs.sh 2011-03-25 07:50:10 UTC (rev 22311)
@@ -20,15 +20,9 @@
echo "[BUNDLE_DOCS] -> Copying Developer Guide..."
mkdir $DOCSDIR/$VERSION/Developer_Guide
cp -r $DOCSDIR/Developer_Guide/target/docbook/publish/* $DOCSDIR/$VERSION/Developer_Guide/
-echo "[BUNDLE_DOCS] -> Copying Migration Guide..."
-mkdir $DOCSDIR/$VERSION/Migration_Guide
-cp -r $DOCSDIR/Migration_Guide/target/docbook/publish/* $DOCSDIR/$VERSION/Migration_Guide/
-echo "[BUNDLE_DOCS] -> Copying Component Development Kit Guide..."
-mkdir $DOCSDIR/$VERSION/Component_Development_Kit_Guide
-cp -r $DOCSDIR/Component_Development_Kit_Guide/target/docbook/publish/* $DOCSDIR/$VERSION/Component_Development_Kit_Guide/
-echo "[BUNDLE_DOCS] Zipping bundle..."
-cd $DOCSDIR/$VERSION/
-zip -r $VERSION.zip *
+# echo "[BUNDLE_DOCS] Zipping bundle..."
+# cd $DOCSDIR/$VERSION/
+# zip -r $VERSION.zip *
echo "[BUNDLE_DOCS] Bundle complete."
13 years, 9 months