[seam-commits] Seam SVN: r14402 - in branches/community/Seam_2_3/examples-ee6: ui and 36 other directories.
seam-commits at lists.jboss.org
seam-commits at lists.jboss.org
Wed Mar 14 13:50:09 EDT 2012
Author: manaRH
Date: 2012-03-14 13:50:07 -0400 (Wed, 14 Mar 2012)
New Revision: 14402
Added:
branches/community/Seam_2_3/examples-ee6/ui/
branches/community/Seam_2_3/examples-ee6/ui/pom.xml
branches/community/Seam_2_3/examples-ee6/ui/readme.txt
branches/community/Seam_2_3/examples-ee6/ui/ui-ds.cli
branches/community/Seam_2_3/examples-ee6/ui/ui-ear/
branches/community/Seam_2_3/examples-ee6/ui/ui-ear/pom.xml
branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/
branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/main/
branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/main/application/
branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/main/application/META-INF/
branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/main/application/META-INF/jboss-deployment-structure.xml
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/pom.xml
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeConverter.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeList.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Animal.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AnimalList.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Book.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/BookPk.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/ButtonLinkBean.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Colour.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Continent.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Country.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/EqualityValidatorBean.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Factories.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Film.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/FilmConverter.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Person.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Picture.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Resources.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/SpanTitle.java
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/META-INF/
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/META-INF/persistence.xml
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/import.sql
branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/seam.properties
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/pom.xml
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/htmlunit/
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/htmlunit/HtmlUnitUITest.java
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/selenium/
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/selenium/SeleniumUITest.java
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/photo.jpg
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/testng.xml
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/seam.properties
branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/ui.properties
branches/community/Seam_2_3/examples-ee6/ui/ui-web/
branches/community/Seam_2_3/examples-ee6/ui/ui-web/pom.xml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/resources/
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/resources/messages_en.properties
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/components.xml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/faces-config.xml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/pages.xml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/web.xml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/cache.xhtml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/continents.xhtml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/date.css
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/decorateField.xhtml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/dtpick.gif
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidator.xhtml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidatorWConvert.xhtml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fileUpload.xhtml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/formattedText.xhtml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fragment.xhtml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/graphicImage.xhtml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.html
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.xhtml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/linkAndButton.xhtml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resource.xhtml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resources.xhtml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/selectItems.xhtml
branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/template.xhtml
Modified:
branches/community/Seam_2_3/examples-ee6/pom.xml
Log:
JBSEAM-4852 add the ui example
add the ui example
Conflicts:
examples-ee6/ui/readme.txt
examples-ee6/ui/ui-ear/pom.xml
examples-ee6/ui/ui-ear/src/main/application/META-INF/jboss-deployment-structure.xml
examples-ee6/ui/ui-ejb/pom.xml
examples-ee6/ui/ui-web/src/main/webapp/cache.xhtml
ui example cleanup
add ui example to the examples-ee6 module
Modified: branches/community/Seam_2_3/examples-ee6/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/pom.xml 2012-03-14 17:48:19 UTC (rev 14401)
+++ branches/community/Seam_2_3/examples-ee6/pom.xml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -19,6 +19,7 @@
<module>mail</module>
<module>messages</module>
<module>todo</module>
+ <module>ui</module>
</modules>
<build>
Added: branches/community/Seam_2_3/examples-ee6/ui/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/pom.xml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/pom.xml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>examples-ee6</artifactId>
+ <groupId>org.jboss.seam</groupId>
+ <version>2.3.0.Beta1-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <artifactId>ui</artifactId>
+ <packaging>pom</packaging>
+ <name>UI Example (EE6)</name>
+
+ <modules>
+ <module>ui-ejb</module>
+ <module>ui-web</module>
+ <module>ui-ear</module>
+ <module>ui-tests</module>
+ </modules>
+
+ <properties>
+ <example.name>ui</example.name>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <artifactId>ui-ejb</artifactId>
+ <version>${project.version}</version>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <artifactId>ui-web</artifactId>
+ <version>${project.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <artifactId>ui-ear</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+</project>
Added: branches/community/Seam_2_3/examples-ee6/ui/readme.txt
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/readme.txt (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/readme.txt 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,25 @@
+Seam UI Example
+===============
+
+This is a simple example demonstrating Seam UI. It runs on JBoss
+AS7 as an EAR
+
+To deploy the example to JBoss AS7, follow these steps:
+
+* In the example root directory run:
+
+ mvn clean package
+
+* Set JBOSS_HOME environment property.
+
+* Start the AS7 up.
+
+* In the ui-ear directory run the following to create a ui datasource:
+
+ $JBOSS_HOME/bin/jboss-cli.sh --file=ui-ds.cli
+
+* Deploy the sample:
+
+ $JBOSS_HOME/bin/jboss-cli.sh --connect 'deploy ui-ear/target/seam-ui.ear'
+
+* Open this URL in a web browser: http://localhost:8080/seam-ui
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ds.cli
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ds.cli (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ds.cli 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,3 @@
+connect
+data-source add --name=uiDS --jndi-name=java:/uiDatasource --connection-url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1 --user-name=sa --password=sa --driver-name=h2
+/subsystem=datasources/data-source="uiDS":enable
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ear/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ear/pom.xml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ear/pom.xml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>ui</artifactId>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <version>2.3.0.Beta1-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>ui-ear</artifactId>
+ <packaging>ear</packaging>
+ <name>UI EAR Module (EE6)</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <artifactId>ui-web</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <artifactId>ui-ejb</artifactId>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xpp3</groupId>
+ <artifactId>xpp3_min</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.ejb</groupId>
+ <artifactId>ejb-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>net.sf.ehcache</groupId>
+ <artifactId>ehcache</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>seam-ui</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-ear-plugin</artifactId>
+ <configuration>
+ <version>6</version>
+ <defaultLibBundleDir>lib</defaultLibBundleDir>
+ <!-- Exclude eclipse generated application.xml and manually modified jboss-app.xml during mvn build -->
+ <earSourceExcludes>**/application.xml, **/jboss-app.xml</earSourceExcludes>
+ <!-- use maven generated application.xml instead -->
+ <generateApplicationXml>true</generateApplicationXml>
+ <filtering>true</filtering>
+ <modules>
+ <webModule>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <artifactId>ui-web</artifactId>
+ <contextRoot>/seam-ui</contextRoot>
+ <bundleFileName>ui-web.war</bundleFileName>
+ </webModule>
+ <ejbModule>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <artifactId>ui-ejb</artifactId>
+ <bundleFileName>ui-ejb.jar</bundleFileName>
+ </ejbModule>
+ <ejbModule>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <bundleFileName>jboss-seam.jar</bundleFileName>
+ </ejbModule>
+ </modules>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/main/application/META-INF/jboss-deployment-structure.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/main/application/META-INF/jboss-deployment-structure.xml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/main/application/META-INF/jboss-deployment-structure.xml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,9 @@
+<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
+ <deployment>
+ <dependencies>
+ <module name="org.antlr" export="true"/>
+ <module name="org.dom4j" export="true"/>
+ <module name="javax.faces.api" export="true"/>
+ </dependencies>
+ </deployment>
+</jboss-deployment-structure>
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/pom.xml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/pom.xml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>ui</artifactId>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <version>2.3.0.Beta1-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>ui-ejb</artifactId>
+ <packaging>ejb</packaging>
+ <name>UI EJB Module</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ </dependency>
+ <!-- TODO: fix when seam parent is updated -->
+ <dependency>
+ <groupId>org.hibernate.javax.persistence</groupId>
+ <artifactId>hibernate-jpa-2.0-api</artifactId>
+ <version>1.0.1.Final</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.ejb</groupId>
+ <artifactId>ejb-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeConverter.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeConverter.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeConverter.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,26 @@
+package org.jboss.seam.example.ui;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.ConverterException;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.intercept.BypassInterceptors;
+import org.jboss.seam.annotations.faces.Converter;
+
+ at Name("ageConverter")
+ at BypassInterceptors
+ at Converter
+public class AgeConverter implements javax.faces.convert.Converter
+{
+ public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException
+ {
+ Integer i = new Integer(value);
+ return i.intValue();
+ }
+
+ public String getAsString(FacesContext context, UIComponent component, Object value) throws ConverterException
+ {
+ return value + "";
+ }
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeList.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeList.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeList.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,16 @@
+package org.jboss.seam.example.ui;
+
+import org.jboss.seam.annotations.Factory;
+import org.jboss.seam.annotations.Name;
+
+ at Name("ageList")
+public class AgeList
+{
+
+ @Factory("ages")
+ public int[] getAges() {
+ int[] ages = {18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30};
+ return ages;
+ }
+
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Animal.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Animal.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Animal.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,32 @@
+package org.jboss.seam.example.ui;
+
+public class Animal
+{
+
+ public static Animal DOG = new Animal("Needs lots of exercise", "Dog");
+ public static Animal CAT = new Animal("Looks after itself", "Cat");
+ public static Animal GOLDFISH = new Animal("Needs a fishtank!", "Goldfish");
+ public static Animal RABBIT = new Animal("Often has floppy ears", "Rabbit");
+ public static Animal SNAKE = new Animal("Better make sure it doesn't bite you", "Snake");
+ public static Animal PARROT = new Animal("Peices of Eight", "Parrot");
+
+ private String notes;
+ private String name;
+
+ public Animal(String notes, String name)
+ {
+ this.notes = notes;
+ this.name = name;
+ }
+
+ public String getNotes()
+ {
+ return notes;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AnimalList.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AnimalList.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AnimalList.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,32 @@
+package org.jboss.seam.example.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Unwrap;
+
+ at Name("animals")
+public class AnimalList
+{
+
+ private List<Animal> animals;
+
+ @Unwrap
+ public List<Animal> unwrap()
+ {
+ if (animals == null)
+ {
+ animals = new ArrayList<Animal>();
+ animals.add(Animal.CAT);
+ animals.add(Animal.DOG);
+ animals.add(Animal.GOLDFISH);
+ animals.add(Animal.PARROT);
+ animals.add(Animal.RABBIT);
+ animals.add(Animal.SNAKE);
+ }
+ return animals;
+ }
+
+
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Book.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Book.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Book.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,32 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+
+import javax.persistence.EmbeddedId;
+import javax.persistence.Entity;
+
+ at Entity
+public class Book implements Serializable
+{
+
+ @EmbeddedId
+ private BookPk bookPk = new BookPk();
+
+ private String nationality;
+
+ public String getName()
+ {
+ return bookPk.getName();
+ }
+
+ public String getAuthor()
+ {
+ return bookPk.getAuthor();
+ }
+
+ public String getNationality()
+ {
+ return nationality;
+ }
+
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/BookPk.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/BookPk.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/BookPk.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,48 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+
+import javax.persistence.Embeddable;
+
+ at Embeddable
+public class BookPk implements Serializable
+{
+
+ private String name;
+
+ private String author;
+
+ protected BookPk()
+ {
+ }
+
+ public BookPk(String name, String author)
+ {
+ this.name = name;
+ this.author = author;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public String getAuthor()
+ {
+ return author;
+ }
+
+ @Override
+ public boolean equals(Object other)
+ {
+ if (other instanceof BookPk)
+ {
+ BookPk that = (BookPk) other;
+ return this.getAuthor().equals(that.getAuthor()) && this.getName().equals(that.getName());
+ }
+ else
+ {
+ return false;
+ }
+ }
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/ButtonLinkBean.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/ButtonLinkBean.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/ButtonLinkBean.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,33 @@
+package org.jboss.seam.example.ui;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.faces.FacesMessages;
+
+ at Name("buttonLink")
+public class ButtonLinkBean
+{
+ private String foo;
+
+ public void simpleAction()
+ {
+ if (foo != null)
+ {
+ FacesMessages.instance().add("Foo = " + foo);
+ }
+ else
+ {
+ FacesMessages.instance().add("A simple action was performed");
+ }
+ }
+
+ public void setFoo(String foo)
+ {
+ this.foo = foo;
+ }
+
+ public String getFoo()
+ {
+ return foo;
+ }
+
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Colour.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Colour.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Colour.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,45 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+import java.util.List;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToMany;
+
+ at Entity
+public class Colour implements Serializable
+{
+
+ @ManyToMany(mappedBy="favouriteColours")
+ private List<Person> people;
+
+ @Id @GeneratedValue
+ private Integer id;
+
+ private String name;
+
+ public Integer getId()
+ {
+ return id;
+ }
+
+ public void setId(Integer id)
+ {
+ this.id = id;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+
+
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Continent.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Continent.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Continent.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,52 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+import java.util.List;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+
+ at Entity
+public class Continent implements Serializable
+{
+ @Id @GeneratedValue
+ private Integer id;
+
+ private String name;
+
+ @OneToMany(mappedBy="continent")
+ private List<Country> countries;
+
+ public List<Country> getCountries()
+ {
+ return countries;
+ }
+
+ public void setCountries(List<Country> countries)
+ {
+ this.countries = countries;
+ }
+
+ public Integer getId()
+ {
+ return id;
+ }
+
+ public void setId(Integer id)
+ {
+ this.id = id;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Country.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Country.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Country.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,54 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+
+ at Entity
+public class Country implements Serializable
+{
+
+ @Id @GeneratedValue
+ private Integer id;
+
+ private String name;
+
+ @ManyToOne
+ private Continent continent;
+
+ public Continent getContinent()
+ {
+ return continent;
+ }
+
+ public void setContinent(Continent continent)
+ {
+ this.continent = continent;
+ }
+
+ public Integer getId()
+ {
+ return id;
+ }
+
+ public void setId(Integer id)
+ {
+ this.id = id;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+
+
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/EqualityValidatorBean.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/EqualityValidatorBean.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/EqualityValidatorBean.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,82 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.international.StatusMessages;
+import org.jboss.seam.international.StatusMessage.Severity;
+import org.jboss.seam.util.Strings;
+
+ at Name("equalityValidatorBean")
+ at Scope(ScopeType.SESSION)
+public class EqualityValidatorBean implements Serializable
+{
+
+ @In
+ private StatusMessages statusMessages;
+
+ private String name;
+
+ private Long age;
+
+ private Date date;
+
+ public void check()
+ {
+ if (Strings.isEmpty(name))
+ {
+ statusMessages.addToControl("name", Severity.WARN, "Enter a name!");
+ }
+ else
+ {
+ statusMessages.addToControl("name", Severity.INFO, "OK!");
+ }
+ }
+
+ public void checkDate()
+ {
+ if (date == null)
+ {
+ statusMessages.addToControl("date", Severity.WARN, "Enter a date!");
+ }
+ else
+ {
+ statusMessages.addToControl("date", Severity.INFO, "OK!");
+ }
+ }
+
+ public Date getDate()
+ {
+ return date;
+ }
+
+ public void setDate(Date date)
+ {
+ this.date = date;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public Long getAge()
+ {
+ return age;
+ }
+
+ public void setAge(Long age)
+ {
+ this.age = age;
+ }
+
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Factories.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Factories.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Factories.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,21 @@
+package org.jboss.seam.example.ui;
+
+import org.jboss.seam.annotations.Factory;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.example.ui.Person.Honorific;
+import org.jboss.seam.example.ui.Person.Role;
+
+ at Name("factories")
+public class Factories
+{
+ @Factory("honorifics")
+ public Honorific[] getHonorifics() {
+ return Honorific.values();
+ }
+
+ @Factory("roles")
+ public Role[] getRoles() {
+ return Role.values();
+ }
+
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Film.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Film.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Film.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,52 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+ at Entity
+public class Film implements Serializable
+{
+
+ @Id @GeneratedValue
+ private Integer id;
+
+ private String name;
+
+ private String director;
+
+ public String getDirector()
+ {
+ return director;
+ }
+
+ public void setDirector(String director)
+ {
+ this.director = director;
+ }
+
+ public Integer getId()
+ {
+ return id;
+ }
+
+ public void setId(Integer id)
+ {
+ this.id = id;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+
+
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/FilmConverter.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/FilmConverter.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/FilmConverter.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,53 @@
+package org.jboss.seam.example.ui;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.persistence.EntityManager;
+
+import org.jboss.seam.Component;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.faces.Converter;
+import org.jboss.seam.annotations.intercept.BypassInterceptors;
+
+ at Name("filmConverter")
+ at Converter(forClass = Film.class)
+ at BypassInterceptors
+public class FilmConverter implements javax.faces.convert.Converter
+{
+
+ public Object getAsObject(FacesContext context, UIComponent component, String value)
+ {
+
+ EntityManager entityManager = (EntityManager) Component.getInstance("entityManager");
+
+ if (value != null)
+ {
+ try
+ {
+ Integer id = Integer.parseInt(value);
+ if (id != null)
+ {
+ return entityManager.find(Film.class, id);
+ }
+ }
+ catch (NumberFormatException e)
+ {
+ }
+ }
+ return null;
+ }
+
+ public String getAsString(FacesContext context, UIComponent component, Object value)
+ {
+ if (value instanceof Film)
+ {
+ Film film = (Film) value;
+ return film.getId().toString();
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Person.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Person.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Person.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,235 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.ElementCollection;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToMany;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToOne;
+import javax.validation.constraints.Size;
+
+ at Entity
+public class Person implements Serializable
+{
+
+ public enum Honorific {
+
+ MR("Mr."),
+ MRS("Mrs."),
+ MISS("Miss."),
+ MS("Ms."),
+ DOCTOR("Dr.");
+
+ private String label;
+
+ Honorific(String label)
+ {
+ this.label = label;
+ }
+
+ public String getLabel()
+ {
+ return label;
+ }
+ }
+
+ public enum Role
+ {
+ USER,
+ ADMIN,
+ MANAGER,
+ SUPERADMIN;
+
+ public String getName()
+ {
+ return this.name();
+ }
+ }
+
+ @Id @GeneratedValue
+ private Integer id;
+
+ @Size(min=5)
+ private String name;
+
+ // A wikitext string
+ private String hobbies;
+
+ @ManyToOne
+ private Country country;
+
+ @ManyToOne
+ private Continent continent;
+
+ @Enumerated(EnumType.STRING)
+ private Honorific honorific;
+
+ private int age;
+
+ @ManyToMany
+ private List<Colour> favouriteColours;
+
+ @ManyToOne(fetch=FetchType.LAZY)
+ private Book favouriteBook;
+
+ @OneToOne(cascade=CascadeType.ALL)
+ private Picture picture;
+
+ @ElementCollection
+ private List<Role> roles = new ArrayList<Role>();
+
+ private String pet;
+
+
+
+ @ManyToOne
+ private Film favouriteFilm;
+
+ public Person()
+ {
+ picture = new Picture();
+ }
+
+ public List<Role> getRoles()
+ {
+ return roles;
+ }
+
+ public void setRoles(List<Role> roles)
+ {
+ this.roles = roles;
+ }
+
+ public Country getCountry()
+ {
+ return country;
+ }
+
+ public void setCountry(Country country)
+ {
+ this.country = country;
+ }
+
+ public Integer getId()
+ {
+ return id;
+ }
+
+ public void setId(Integer id)
+ {
+ this.id = id;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public int getAge()
+ {
+ return age;
+ }
+
+ public void setAge(int age)
+ {
+ this.age = age;
+ }
+
+ public Continent getContinent()
+ {
+ return continent;
+ }
+
+ public void setContinent(Continent continent)
+ {
+ this.continent = continent;
+ }
+
+ public Honorific getHonorific()
+ {
+ return honorific;
+ }
+
+ public void setHonorific(Honorific honorific)
+ {
+ this.honorific = honorific;
+ }
+
+ public List<Colour> getFavouriteColours()
+ {
+ return favouriteColours;
+ }
+
+ public void setFavouriteColours(List<Colour> favouriteColours)
+ {
+ this.favouriteColours = favouriteColours;
+ }
+
+ public Book getFavouriteBook()
+ {
+ return favouriteBook;
+ }
+
+ public void setFavouriteBook(Book favouriteBook)
+ {
+ this.favouriteBook = favouriteBook;
+ }
+
+ public String getHobbies()
+ {
+ return hobbies;
+ }
+
+ public void setHobbies(String hobbies)
+ {
+ this.hobbies = hobbies;
+ }
+
+ public Picture getPicture()
+ {
+ if (picture == null)
+ {
+ picture = new Picture();
+ }
+ return picture;
+ }
+
+ public void setPicture(Picture picture)
+ {
+ this.picture = picture;
+ }
+
+ public String getPet()
+ {
+ return pet;
+ }
+
+ public void setPet(String pet)
+ {
+ this.pet = pet;
+ }
+
+ public Film getFavouriteFilm()
+ {
+ return favouriteFilm;
+ }
+
+ public void setFavouriteFilm(Film favouriteFilm)
+ {
+ this.favouriteFilm = favouriteFilm;
+ }
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Picture.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Picture.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Picture.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,80 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+import javax.persistence.OneToOne;
+
+import org.jboss.seam.annotations.Name;
+
+ at Entity
+ at Name("memberImage")
+public class Picture implements Serializable
+{
+ private static final long serialVersionUID = -8088455267213832920L;
+
+ @Id @GeneratedValue
+ private Integer id;
+
+ @OneToOne(mappedBy="picture")
+ private Person person;
+ private byte[] data;
+ private String contentType;
+ private String fileName;
+
+
+ public Integer getId()
+ {
+ return id;
+ }
+
+ public void setId(Integer imageId)
+ {
+ this.id = imageId;
+ }
+
+
+ public Person getPerson()
+ {
+ return person;
+ }
+
+ public void setPerson(Person person)
+ {
+ this.person = person;
+ }
+
+ public String getContentType()
+ {
+ return contentType;
+ }
+
+ public void setContentType(String contentType)
+ {
+ this.contentType = contentType;
+ }
+
+ @Lob
+ public byte[] getData()
+ {
+ return data;
+ }
+
+ public void setData(byte[] data)
+ {
+ this.data = data;
+ }
+
+ public String getFileName()
+ {
+ return fileName;
+ }
+
+ public void setFileName(String fileName)
+ {
+ this.fileName = fileName;
+ }
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Resources.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Resources.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Resources.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,94 @@
+package org.jboss.seam.example.ui;
+
+import java.io.ByteArrayInputStream;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.Create;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.web.RequestParameter;
+
+ at Name("resources")
+ at Scope(ScopeType.EVENT)
+public class Resources
+{
+
+ @RequestParameter
+ private int id;
+
+ private ResourceItem item;
+
+ @Create
+ public void create()
+ {
+ switch (id)
+ {
+ case 1:
+ item = new ResourceItem("text.txt", new byte[] { 'a', 'b', 'c' }, null, "text/plain");
+ break;
+ case 2:
+ ByteArrayInputStream str = new ByteArrayInputStream(new byte[] { '1', '2', '3' });
+ item = new ResourceItem("numbers.txt", str, null, "text/plain");
+ break;
+ }
+ }
+
+ public static class ResourceItem
+ {
+
+ public ResourceItem(String fileName, Object data, String disposition, String contentType)
+ {
+ this.fileName = fileName;
+ this.data = data;
+ this.disposition = disposition;
+ this.contentType = contentType;
+ }
+
+ public String fileName;
+ public Object data;
+ public String disposition;
+ public String contentType;
+
+ public String getFileName()
+ {
+ return fileName;
+ }
+
+ public Object getData()
+ {
+ return data;
+ }
+
+ public String getDisposition()
+ {
+ return disposition;
+ }
+
+ public String getContentType()
+ {
+ return contentType;
+ }
+
+ }
+
+ public int getId()
+ {
+ return id;
+ }
+
+ public void setId(int id)
+ {
+ this.id = id;
+ }
+
+ public ResourceItem getItem()
+ {
+ return item;
+ }
+
+ public void setItem(ResourceItem item)
+ {
+ this.item = item;
+ }
+
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/SpanTitle.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/SpanTitle.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/SpanTitle.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,16 @@
+package org.jboss.seam.example.ui;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Unwrap;
+
+ at Name("spanTitle")
+public class SpanTitle
+{
+
+ @Unwrap
+ public String unwrap()
+ {
+ return "A Span title";
+ }
+
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/META-INF/persistence.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/META-INF/persistence.xml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/META-INF/persistence.xml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
+ version="1.0">
+ <persistence-unit name="uiDatabase">
+ <provider>org.hibernate.ejb.HibernatePersistence</provider>
+ <jta-data-source>java:/uiDatasource</jta-data-source>
+ <properties>
+ <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
+ <property name="hibernate.show_sql" value="true"/>
+ <property name="jboss.entity.manager.factory.jndi.name" value="java:/uiEntityManagerFactory"/>
+ </properties>
+ </persistence-unit>
+</persistence>
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/import.sql
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/import.sql (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/import.sql 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,36 @@
+insert into person (id, name, age, hobbies) values (1, 'Peter Muir', 25, '*works on Seam*, *of course*');
+insert into continent(id, name) values(1, 'North America');
+insert into continent(id, name) values(2, 'South America');
+insert into continent(id, name) values(3, 'Australasia');
+insert into continent(id, name) values(4, 'Europe');
+insert into continent(id, name) values(5, 'Asia');
+insert into continent(id, name) values(6, 'Africa');
+insert into continent(id, name) values(7, 'Antartica');
+
+insert into country (id, name, continent_id) values (1, 'USA', 1);
+insert into country (id, name, continent_id) values (2, 'Canada', 1);
+insert into country (id, name, continent_id) values (3, 'United Kingdom', 4);
+insert into country (id, name, continent_id) values (4, 'France', 4);
+insert into country (id, name, continent_id) values (5, 'Germany', 4);
+insert into country (id, name, continent_id) values (6, 'Spain', 4);
+insert into country (id, name, continent_id) values (7, 'Australia', 3);
+insert into country (id, name, continent_id) values (8, 'Chile', 2);
+insert into country (id, name, continent_id) values (9, 'China', 5);
+insert into country (id, name, continent_id) values (10, 'South Africa', 6);
+
+insert into colour(id, name) values (1, 'Red')
+insert into colour(id, name) values (2, 'Blue')
+insert into colour(id, name) values (3, 'Green')
+insert into colour(id, name) values (4, 'Purple')
+insert into colour(id, name) values (5, 'Yellow')
+insert into colour(id, name) values (6, 'Orange')
+
+insert into book(name,author,nationality) values ('Pride and Prejudice', 'Jane Austin', 'British')
+insert into book(name,author,nationality) values ('The Great Gatsby', 'F. Scott Fitzgerald', 'American')
+insert into book(name,author,nationality) values ('Romeo and Juliet', 'William Shakespeare', 'British')
+insert into book(name,author,nationality) values ('The Illiad', 'Homer', 'Ancient Greek')
+
+insert into film(id,name,director) values (1, 'Blade Runner', 'Ridley Scott')
+insert into film(id,name,director) values (2, 'E.T.', 'Steven Spielberg')
+insert into film(id,name,director) values (3, 'Star Wars', 'George Lucas')
+insert into film(id,name,director) values (4, 'Jay and Silent Bob Strike Back', 'Kevin Smith')
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/seam.properties
===================================================================
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-tests/pom.xml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-tests/pom.xml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>ui</artifactId>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <version>2.3.0.Beta1-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples</groupId>
+ <artifactId>ui-tests</artifactId>
+ <name>UI Integration Tests Module</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <classifier>jdk15</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <artifactId>ui-ejb</artifactId>
+ <type>ejb</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.seleniumhq.selenium.server</groupId>
+ <artifactId>selenium-server</artifactId>
+ <classifier>standalone</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.seleniumhq.selenium.client-drivers</groupId>
+ <artifactId>selenium-java-client-driver</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>functional-tests</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>net.sourceforge.htmlunit</groupId>
+ <artifactId>htmlunit</artifactId>
+ <version>2.3</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <testResources>
+ <testResource>
+ <directory>src/test/resources</directory>
+ <filtering>true</filtering>
+ </testResource>
+ </testResources>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>ftest-jbossas</id>
+ <properties>
+ <example.context.path>seam-ui</example.context.path>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>selenium-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>failsafe-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>ftest-tomcat</id>
+ <properties>
+ <example.context.path>jboss-seam-ui</example.context.path>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>selenium-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>failsafe-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/htmlunit/HtmlUnitUITest.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/htmlunit/HtmlUnitUITest.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/htmlunit/HtmlUnitUITest.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,122 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, 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.jboss.seam.example.ui.test.htmlunit;
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertFalse;
+
+import java.io.IOException;
+
+import com.gargoylesoftware.htmlunit.WebClient;
+import com.gargoylesoftware.htmlunit.BrowserVersion;
+import com.gargoylesoftware.htmlunit.html.HtmlPage;
+import com.gargoylesoftware.htmlunit.html.HtmlElement;
+import com.gargoylesoftware.htmlunit.html.HtmlInput;
+import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
+import com.gargoylesoftware.htmlunit.html.HtmlImage;
+import static org.testng.AssertJUnit.fail;
+import java.net.URL;
+
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Functional test for uploadLink and graphicImage testcases of UI example
+ *
+ * @author mgencur
+ *
+ */
+public class HtmlUnitUITest
+{
+ public static final String PAGE_URL = "http://localhost:8080/seam-ui";
+ public static final String HOME_PAGE_TITLE = "UI Example:";
+ public static final String FILE_UPLOAD_FILE= "//input[@type='file']";
+ public static final String FILE_UPLOAD_UPDATE="//input[@type='submit'][@value='Update']";
+ public static final String IMAGE_TO_UPLOAD = "photo.jpg";
+ public static final String FILE_UPLOAD_RESPONSE="//ul/li[contains(text(),'Successfully updated')]";
+ public static final String FILE_UPLOAD_LINK = "//a[contains(@href,'fileUpload')]";
+ public static final String GRAPHIC_IMAGE_LINK = "//a[contains(@href,'graphicImage')]";
+ public static final String IMAGE = "//img";
+
+ public WebClient wc;
+ public HtmlPage page;
+
+ @BeforeMethod
+ public void setUp() throws Exception{
+ URL url = new URL(PAGE_URL);
+ wc = new WebClient(BrowserVersion.FIREFOX_2);
+ page = (HtmlPage) wc.getPage(url);
+ }
+
+
+ @AfterMethod
+ public void tearDown() {
+ wc.closeAllWindows();
+ }
+
+
+ @Test
+ public void homePageLoadTest()
+ {
+ assertEquals("Unexpected page title.", HOME_PAGE_TITLE, page.getTitleText());
+ }
+
+
+ @Test(dependsOnMethods={"homePageLoadTest"})
+ public void fileUploadTest() throws IOException {
+ final HtmlAnchor linkEl = (HtmlAnchor) page.getFirstByXPath(FILE_UPLOAD_LINK);
+
+ final HtmlPage uploadPage = (HtmlPage) linkEl.click();
+ if (uploadPage == null){
+ fail("Could not read page");
+ }
+
+ final HtmlInput el1 = (HtmlInput) uploadPage.getFirstByXPath(FILE_UPLOAD_FILE);
+ if (el1 == null) {
+ fail("Element file upload file doesn't exist");
+ } else {
+ el1.type(IMAGE_TO_UPLOAD);
+ }
+
+ final HtmlInput el2 = (HtmlInput) uploadPage.getFirstByXPath(FILE_UPLOAD_UPDATE);
+ final HtmlPage finishPage = (HtmlPage) el2.click();
+ final HtmlElement el3 = (HtmlElement) finishPage.getFirstByXPath(FILE_UPLOAD_RESPONSE);
+
+ assertFalse("Page should contain \"Successfully updated\"", el3 == null);
+ }
+
+
+ @Test(dependsOnMethods={"homePageLoadTest","fileUploadTest"})
+ public void graphicImageTest() throws IOException {
+ final HtmlAnchor linkEl = (HtmlAnchor) page.getFirstByXPath(GRAPHIC_IMAGE_LINK);
+
+ final HtmlPage graphicPage = (HtmlPage) linkEl.click();
+ if (graphicPage == null){
+ fail("Could not read page");
+ }
+
+ final HtmlImage image = (HtmlImage) graphicPage.getFirstByXPath(IMAGE);
+
+ assertFalse("Page should contain image of Pete Muir", image == null);
+ }
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/selenium/SeleniumUITest.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/selenium/SeleniumUITest.java (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/selenium/SeleniumUITest.java 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,220 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, 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.jboss.seam.example.ui.test.selenium;
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertTrue;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URL;
+
+import org.jboss.seam.example.common.test.selenium.SeamSeleniumTest;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * This class tests functionality of UI example
+ *
+ * @author Martin Gencur
+ *
+ */
+public class SeleniumUITest extends SeamSeleniumTest
+{
+ public static final String HOME_PAGE = "/index.seam";
+ public static final String HOME_PAGE_TITLE = "UI Example:";
+ public static final String SELECT_ITEMS_LINK = "xpath=//a[contains(@href,\"selectItems\")]";
+ public static final String FRAGMENT_LINK = "xpath=//a[contains(@href,\"fragment\")]";
+ public static final String FOTMATTED_TEXT_LINK = "xpath=//a[contains(@href,\"formattedText\")]";
+ public static final String BUTTON_AND_SLINK_LINK = "xpath=//a[contains(@href,\"linkAndButton\")]";
+ public static final String CACHE_LINK = "xpath=//a[contains(@href,\"cache\")]";
+ public static final String VALIDATE_EQUALITY_LINK = "xpath=//a[contains(@href,\"equalityValidator\")]";
+ public static final String VALIDATE_EQUALITY2_LINK = "xpath=//a[contains(@href,\"equalityValidatorWConvert\")]";
+ public static final String RESOURCE_DOWNLOAD_LINK = "xpath=//a[contains(@href,\"resource\")]";
+
+ @BeforeMethod
+ @Override
+ public void setUp()
+ {
+ super.setUp();
+ browser.open(CONTEXT_PATH + HOME_PAGE);
+ }
+
+ /**
+ * Place holder - just verifies that example deploys
+ */
+ @Test
+ public void homePageLoadTest()
+ {
+ assertEquals("Unexpected page title.", HOME_PAGE_TITLE, browser.getTitle());
+ }
+
+ @Test(dependsOnMethods={"homePageLoadTest"})
+ public void selectItemsTest(){
+ String title = "Mr.";
+ String name = "Martin Gencur";
+ String continent = "Europe";
+ String age = "24";
+ String pet = "Dog (Needs lots of exercise)";
+ String colour1 = "Green", colour2 = "Yellow";
+ String book = "Pride and Prejudice by Jane Austin (British)";
+ String film = "Blade Runner directed by Ridley Scott";
+ browser.clickAndWait(SELECT_ITEMS_LINK);
+ browser.select(getProperty("SELECT_ITEMS_TITLE"), "label="+title);
+ browser.type(getProperty("SELECT_ITEMS_NAME"), name);
+ browser.select(getProperty("SELECT_ITEMS_CONTINENT"), "label="+continent);
+ browser.check(getProperty("SELECT_ITEMS_USER"));
+ browser.check(getProperty("SELECT_ITEMS_ADMIN"));
+ browser.check(getProperty("SELECT_ITEMS_MANAGER"));
+ browser.check(getProperty("SELECT_ITEMS_SUPERADMIN"));
+ browser.select(getProperty("SELECT_ITEMS_AGE"), "label="+age);
+ browser.select(getProperty("SELECT_ITEMS_PET"), "label="+pet);
+ browser.select(getProperty("SELECT_ITEMS_COLOURS"), "label="+colour1);
+ browser.select(getProperty("SELECT_ITEMS_COLOURS"), "label="+colour2);
+ browser.select(getProperty("SELECT_ITEMS_BOOK"), "label="+book);
+ browser.select(getProperty("SELECT_ITEMS_FILM"), "label="+film);
+ browser.clickAndWait(getProperty("SELECT_ITEMS_APPLY"));
+ browser.check(getProperty("SELECT_ITEMS_COUNTRY"));
+ browser.clickAndWait(getProperty("SELECT_ITEMS_APPLY"));
+ assertTrue("Page should contain \"Successfully updated\"", browser.isTextPresent("Successfully updated"));
+ }
+
+ @Test(dependsOnMethods={"homePageLoadTest"})
+ public void fragmentTest(){
+ browser.clickAndWait(FRAGMENT_LINK);
+ assertTrue("Page should contain \"fragment is rendered\"", browser.isTextPresent("This fragment is rendered whilst"));
+ }
+
+ @Test(dependsOnMethods={"homePageLoadTest"})
+ public void formattedTextTest(){
+ browser.clickAndWait(FOTMATTED_TEXT_LINK);
+ assertTrue("Page should contain information about Pete Muir working all the time on Seam", browser.isTextPresent("works on Seam, of course"));
+ }
+
+ @Test(dependsOnMethods={"homePageLoadTest"})
+ public void buttonAndLinkTest(){
+ browser.clickAndWait(BUTTON_AND_SLINK_LINK);
+ assertTrue("Page should contain \"A fragment to jump to\"", browser.isTextPresent("A fragment to jump to"));
+ browser.clickAndWait(getProperty("JUMP_LINK"));
+ browser.clickAndWait(getProperty("JUMP_BUTTON"));
+ browser.clickAndWait(getProperty("LINK_LINK"));
+ browser.clickAndWait(getProperty("DO_ACTION_LINK"));
+ assertTrue("Page should contain \"A simple action was performed\"", browser.isTextPresent("A simple action was performed"));
+ browser.clickAndWait(getProperty("DO_ACTION_BUTTON"));
+ assertTrue("Page should contain \"A simple action was performed\"", browser.isTextPresent("A simple action was performed"));
+ assertTrue("Page should contain disabled link", browser.isElementPresent(getProperty("DISABLED_DO_ACTION_LINK")));
+ assertTrue("Page should contain disabled button", browser.isElementPresent(getProperty("DISABLED_DO_ACTION_BUTTON")));
+ browser.clickAndWait(getProperty("BEGIN_CONVERSATION_LINK"));
+ browser.clickAndWait(getProperty("END_CONVERSATION_BUTTON"));
+ assertTrue("Page shouldn't contain \"A simple action was performed\"", !browser.isTextPresent("A simple action was performed"));
+ browser.clickAndWait(getProperty("ADD_PARAMETER_LINK"));
+ browser.clickAndWait(getProperty("ADD_PARAMETER_BUTTON"));
+ assertTrue("Page should contain \"Foo = bar\"", browser.isTextPresent("Foo = bar"));
+ }
+
+ @Test(dependsOnMethods={"homePageLoadTest"})
+ public void cacheTest(){
+ browser.clickAndWait(CACHE_LINK);
+ assertTrue("Page should contain some cached text", browser.isTextPresent("Some cached text"));
+ }
+
+ @Test(dependsOnMethods={"homePageLoadTest"})
+ public void validateEqualityTest(){
+ String name1 = "martin";
+ String name2 = "peter";
+ String age1 = "20";
+ String age2 = "30";
+ browser.clickAndWait(VALIDATE_EQUALITY_LINK);
+
+ browser.type(getProperty("NAME_INPUT"), name1);
+ browser.type(getProperty("NAME_VERIFICATION_INPUT"), name1);
+ browser.clickAndWait(getProperty("CHECK_NAME_BUTTON"));
+ assertTrue("Page should contain \"OK!\""+ "je tam:" + browser.getBodyText(), browser.isTextPresent("OK!"));
+
+ browser.type(getProperty("NAME_INPUT"), name1);
+ browser.type(getProperty("NAME_VERIFICATION_INPUT"), name2);
+ browser.clickAndWait(getProperty("CHECK_NAME_BUTTON"));
+ assertTrue("Page should contain \"Must be the same as name!\"", browser.isTextPresent("Must be the same as name!"));
+
+ browser.type(getProperty("MINIMUM_AGE_INPUT"), age1);
+ browser.type(getProperty("MAXIMUM_AGE_INPUT"), age2);
+ browser.clickAndWait(getProperty("CHECK_AGES_BUTTON"));
+ assertTrue("Page should contain \"OK!\"", browser.isTextPresent("OK!"));
+ browser.type(getProperty("MINIMUM_AGE_INPUT"), age1);
+ browser.type(getProperty("MAXIMUM_AGE_INPUT"), age1);
+ browser.clickAndWait(getProperty("CHECK_AGES_BUTTON"));
+ assertTrue("Page should contain \"Must be larger than minimum!\"", browser.isTextPresent("Must be larger than minimum!"));
+ browser.type(getProperty("MINIMUM_AGE_INPUT"), age2);
+ browser.type(getProperty("MAXIMUM_AGE_INPUT"), age1);
+ browser.clickAndWait(getProperty("CHECK_AGES_BUTTON"));
+ assertTrue("Page should contain \"Must be larger than minimum!\"", browser.isTextPresent("Must be larger than minimum!"));
+ }
+
+ @Test(dependsOnMethods={"homePageLoadTest"})
+ public void validateEquality2Test(){
+ String date1 = "2009-08-21";
+ String date2 = "2009-08-25";
+ browser.clickAndWait(VALIDATE_EQUALITY2_LINK);
+
+ browser.type(getProperty("DATE_INPUT"), date1);
+ browser.type(getProperty("DATE_VERIFICATION_INPUT"), date1);
+ browser.clickAndWait(getProperty("CHECK_DATE_BUTTON"));
+ assertTrue("Page should contain \"OK!\"", browser.isTextPresent("OK!"));
+
+ browser.type(getProperty("DATE_INPUT"), date1);
+ browser.type(getProperty("DATE_VERIFICATION_INPUT"), date2);
+ browser.clickAndWait(getProperty("CHECK_DATE_BUTTON"));
+ assertTrue("Page should contain \"Value does not equal that in 'date'\"", browser.isTextPresent("Value does not equal"));
+ //assertTrue("Page should contain information about Pete Muir working all the time on Seam", browser.isTextPresent("works on Seam, of course"));
+ }
+
+ @Test(dependsOnMethods={"homePageLoadTest"})
+ public void resourceDownloadTest(){
+ String textToFind1 = "abc";
+ String textToFind2 = "123";
+ browser.clickAndWait(RESOURCE_DOWNLOAD_LINK);
+
+ assertTrue( "File download failed: Restful with s:download \"Text\"", isDownloadWorking("/seam-ui/resources.seam?id=1", textToFind1));
+ assertTrue( "File download failed: Restful with s:download \"Numbers\"", isDownloadWorking("/seam-ui/resources.seam?id=2", textToFind2));
+ }
+
+ private boolean isDownloadWorking(String pathToFile, String textToFind)
+ {
+ try
+ {
+ URL downloadUrl = new URL("http://localhost:8080" + pathToFile);
+ BufferedReader r = new BufferedReader(new InputStreamReader(downloadUrl.openStream()));
+ String str;
+ StringBuffer sb = new StringBuffer();
+ while ((str = r.readLine()) != null)
+ {
+ sb.append(str);
+ }
+ return sb.toString().contains(textToFind);
+ }
+ catch (IOException e)
+ {
+ return false;
+ }
+ }
+}
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/seam.properties
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/seam.properties (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/seam.properties 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,3 @@
+#debug is explicitly disabled in test to avoid JBIDE-3623
+#Thu Dec 31 16:24:37 CET 2009
+org.jboss.seam.core.init.debug=false
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/ui.properties
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/ui.properties (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/ui.properties 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,36 @@
+SELECT_ITEMS_TITLE=xpath\=//select[option[contains(@value,'MR')]]
+SELECT_ITEMS_NAME=xpath\=//input[contains(@value,'Peter Muir')]
+SELECT_ITEMS_CONTINENT=xpath\=//select[option[contains(text(),'Europe')]]
+SELECT_ITEMS_USER=xpath\=//input[@type\='checkbox'][@value\='USER']
+SELECT_ITEMS_ADMIN=xpath\=//input[@type\='checkbox'][@value\='ADMIN']
+SELECT_ITEMS_MANAGER=xpath\=//input[@type\='checkbox'][@value\='MANAGER']
+SELECT_ITEMS_SUPERADMIN=xpath\=//input[@type\='checkbox'][@value\='SUPERADMIN']
+SELECT_ITEMS_AGE=xpath\=//select[option[contains(text(),'24')]]
+SELECT_ITEMS_PET=xpath\=//select[option[contains(@value,'Dog')]]
+SELECT_ITEMS_COLOURS=xpath\=//select[option[contains(text(),'Green')]]
+SELECT_ITEMS_BOOK=xpath\=//select[option[contains(text(),'Pride and Prejudice by Jane Austin (British)')]]
+SELECT_ITEMS_FILM=xpath\=//select[option[contains(text(),'Blade Runner directed by Ridley Scott')]]
+SELECT_ITEMS_APPLY=xpath\=//input[@type\='submit'][@value\='Apply']
+SELECT_ITEMS_COUNTRY=xpath\=//input[@type\='radio'][@value\='18']
+JUMP_LINK=xpath\=//a[contains(text(),'Jump')]
+JUMP_BUTTON=xpath\=//input[@type\='button'][@value\='Jump']
+LINK_LINK=xpath\=//a[contains(text(),'Link')]
+DO_ACTION_LINK=xpath\=//a[contains(text(),'Do action')]
+DO_ACTION_BUTTON=xpath\=//input[@type\='button'][@value\='Do action']
+#DISABLED_DO_ACTION_LINK=xpath\=//a[contains(text(),'Do action')][not(@href)]
+#DISABLED_DO_ACTION_BUTTON=xpath\=//input[@type\='button'][@value\='Do action'][@disabled\='disabled']
+DISABLED_DO_ACTION_LINK=xpath\=//tr[contains(td[1]/text(), 'Disabled')]/td[2]/a[contains(text(),'Do action')][string-length(@href)=0]
+DISABLED_DO_ACTION_BUTTON=xpath\=//tr[contains(td[1]/text(), 'Disabled')]/td[3]/input[@value\='Do action'][@type\='button']
+BEGIN_CONVERSATION_LINK=xpath\=//a[contains(text(),'Begin conversation')]
+END_CONVERSATION_BUTTON=xpath\=//input[@type\='button'][@value\='End conversation']
+ADD_PARAMETER_LINK=xpath\=//a[contains(text(),'Add a page parameter')]
+ADD_PARAMETER_BUTTON=xpath\=//input[@type\='button'][@value\='Add a page parameter']
+NAME_INPUT=xpath\=//input[@type\='text'][contains(@name,'name')][not(contains(@name,'nameVerification'))]
+NAME_VERIFICATION_INPUT=xpath\=//input[@type\='text'][contains(@name,'nameVerification')]
+CHECK_NAME_BUTTON=xpath\=//input[@type\='submit'][@value\='Check name']
+MINIMUM_AGE_INPUT=xpath\=//input[@type\='text'][contains(@name,'min')][not(contains(@name,'minVerification'))]
+MAXIMUM_AGE_INPUT=xpath\=//input[@type\='text'][contains(@name,'minVerification')]
+CHECK_AGES_BUTTON=xpath\=//input[@type\='submit'][@value\='Check ages']
+DATE_INPUT=xpath\=//input[contains(@name,'date')][not(contains(@name,'dateVerification'))]
+DATE_VERIFICATION_INPUT=xpath\=//input[contains(@name,'dateVerification')]
+CHECK_DATE_BUTTON=xpath\=//input[@type\='submit'][@value\='Check date']
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/photo.jpg
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/photo.jpg (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/photo.jpg 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,5 @@
+ÿØÿà
+ÿÄ
+
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/testng.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/testng.xml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/testng.xml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,26 @@
+<!--
+ JBoss, Home of Professional Open Source Copyright 2008, Red Hat
+ Middleware LLC, 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.
+-->
+<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
+<suite name="UI example" verbose="2" parallel="false">
+ <test name="ui_jboss5">
+ <parameter name="PROPERTY_FILE" value="/ui.properties" />
+ <classes>
+ <class name="org.jboss.seam.example.ui.test.selenium.SeleniumUITest" />
+ <class name="org.jboss.seam.example.ui.test.htmlunit.HtmlUnitUITest" />
+ </classes>
+ </test>
+</suite>
Property changes on: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/testng.xml
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/pom.xml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/pom.xml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>ui</artifactId>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <version>2.3.0.Beta1-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>ui-web</artifactId>
+ <packaging>war</packaging>
+ <name>UI Web Module (EE6)</name>
+
+ <properties>
+ <!-- filtering property for components.xml -->
+ <jndiPattern>java:app/ui-ejb/#{ejbName}</jndiPattern>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <artifactId>ui-ejb</artifactId>
+ <type>ejb</type>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-ui</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-jul</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-debug</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-core</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <configuration>
+ <webResources>
+ <resource>
+ <directory>src/main/webapp</directory>
+ <filtering>true</filtering>
+ </resource>
+ </webResources>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>tomcat</id>
+ <properties>
+ <!-- filtering property for components.xml -->
+ <jndiPattern>#{ejbName}/local</jndiPattern>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6</groupId>
+ <artifactId>ui-ejb</artifactId>
+ <type>ejb</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xpp3</groupId>
+ <artifactId>xpp3_min</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+ <build>
+ <finalName>jboss-seam-ui</finalName>
+ </build>
+ </profile>
+ </profiles>
+</project>
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/resources/messages_en.properties
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/resources/messages_en.properties (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/resources/messages_en.properties 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1 @@
+javax.faces.component.UIInput.REQUIRED=value is required
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/components.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/components.xml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/components.xml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<components xmlns="http://jboss.com/products/seam/components"
+ xmlns:cache="http://jboss.com/products/seam/cache"
+ xmlns:core="http://jboss.com/products/seam/core"
+ xmlns:framework="http://jboss.com/products/seam/framework"
+ xmlns:persistence="http://jboss.com/products/seam/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.3.xsd
+ http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.3.xsd
+ http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.3.xsd
+ http://jboss.com/products/seam/framework http://jboss.com/products/seam/framework-2.3.xsd">
+
+ <core:init jndi-pattern="@jndiPattern@" debug="true"/>
+
+ <core:manager conversation-timeout="120000"/>
+
+ <cache:eh-cache-provider/>
+
+ <persistence:managed-persistence-context name="entityManager" persistence-unit-jndi-name="java:/uiEntityManagerFactory"/>
+
+ <framework:entity-query name="countries" ejbql="select c from Country c" />
+
+ <framework:entity-query name="continents" ejbql="select c from Continent c" />
+
+ <framework:entity-home name="personHome" entity-class="org.jboss.seam.example.ui.Person" />
+
+ <framework:entity-query name="colours" ejbql="select c from Colour c" />
+
+ <framework:entity-query name="books" ejbql="select b from Book b" />
+
+ <framework:entity-query name="films" ejbql="select f from Film f" />
+
+ <factory name="person" value="#{personHome.instance}" />
+
+</components>
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/faces-config.xml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/faces-config.xml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faces-config version="2.1"
+ xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd">
+
+</faces-config>
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/pages.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/pages.xml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/pages.xml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<pages xmlns="http://jboss.com/products/seam/pages"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.3.xsd">
+
+ <page view-id="/index.xhtml">
+ <param name="personId" converterId="javax.faces.Integer" value="#{personHome.id}" />
+ <begin-conversation join="true"/>
+ </page>
+
+ <page view-id="/selectItems.xhtml">
+ <begin-conversation join="true"/>
+ <param name="personId" converterId="javax.faces.Integer" value="#{personHome.id}" />
+ <navigation from-action="#{personHome.update}">
+ <rule if-outcome="updated">
+ <render/>
+ </rule>
+ </navigation>
+ </page>
+
+ <page view-id="/formattedText.xhtml">
+ <param name="personId" converterId="javax.faces.Integer" value="#{personHome.id}" />
+ </page>
+
+ <page view-id="/fileUpload.xhtml">
+ <begin-conversation join="true"/>
+ <param name="personId" converterId="javax.faces.Integer" value="#{personHome.id}" />
+ <navigation from-action="#{personHome.update}">
+ <rule if-outcome="updated">
+ <render/>
+ </rule>
+ </navigation>
+ </page>
+
+ <page view-id="/graphicImage.xhtml">
+ <begin-conversation join="true"/>
+ <param name="personId" converterId="javax.faces.Integer" value="#{personHome.id}" />
+ </page>
+
+ <page view-id="/linkAndButton.xhtml">
+ <param name="foo" value="#{buttonLink.foo}" />
+ </page>
+
+</pages>
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/web.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/web.xml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/web.xml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+ version="3.0">
+
+ <!-- Seam -->
+
+ <listener>
+ <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
+ </listener>
+
+ <servlet>
+ <servlet-name>Seam Resource Servlet</servlet-name>
+ <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>Seam Resource Servlet</servlet-name>
+ <url-pattern>/seam/resource/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>Document Store Servlet</servlet-name>
+ <servlet-class>org.jboss.seam.document.DocumentStoreServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>Document Store Servlet</servlet-name>
+ <url-pattern>/seam/docstore/*</url-pattern>
+ </servlet-mapping>
+
+ <filter>
+ <filter-name>Seam Filter</filter-name>
+ <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>Seam Filter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <context-param>
+ <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
+ <param-value>.xhtml</param-value>
+ </context-param>
+
+<!--
+ <context-param>
+ <param-name>com.sun.faces.verifyObjects</param-name>
+ <param-value>true</param-value>
+ </context-param>
+ -->
+
+ <context-param>
+ <param-name>facelets.SKIP_COMMENTS</param-name>
+ <param-value>true</param-value>
+ </context-param>
+
+
+ <!-- This option is required by JSF 2 RI to work with custom EqualityValidator see JBSEAM-4537 -->
+ <context-param>
+ <param-name>com.sun.faces.allowTextChildren</param-name>
+ <param-value>true</param-value>
+ </context-param>
+
+ <!-- Faces Servlet -->
+
+ <servlet>
+ <servlet-name>Faces Servlet</servlet-name>
+ <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>*.seam</url-pattern>
+ </servlet-mapping>
+
+ <!-- workaround for JBSEAM-4907 -->
+ <!--
+ <context-param>
+ <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
+ <param-value>false</param-value>
+ </context-param>
+ -->
+
+ <session-config>
+ <session-timeout>10</session-timeout>
+ </session-config>
+</web-app>
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/cache.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/cache.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/cache.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,14 @@
+<!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:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ template="template.xhtml"
+ >
+ <ui:param name="tagName" value="s:cache" />
+ <ui:define name="body">
+ <p>Cache the rendered page fragment using cache. Note that s:cache actually uses the instance of EHCache managed by the built-in pojoCache component.</p>
+ <s:cache key="example">Some cached text</s:cache>
+ </ui:define>
+</ui:composition>
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/continents.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/continents.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/continents.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,42 @@
+<!DOCTYPE composition 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:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ template="template.xhtml"
+ >
+ <ui:param name="tagName" value="s:selectItems" />
+ <ui:define name="body">
+ <p>
+ Here you can select which continent a country is in. This
+ demonstrates using <code>s:selectItems</code> in a <code>h:dataTable</code>.
+ </p>
+
+
+ <h:form>
+
+ <h:dataTable value="#{countries.dataModel}" var="country">
+ <h:column>
+ <f:facet name="header">
+ Country
+ </f:facet>
+ <h:outputText value="#{country.name}" />
+ </h:column>
+ <h:column>
+ <f:facet name="header">
+ Continent
+ </f:facet>
+ <h:selectOneMenu value="#{country.continent}">
+ <s:selectItems value="#{continents.resultList}" var="continent" label="#{continent.name}" />
+ <s:convertEntity />
+ </h:selectOneMenu>
+ </h:column>
+ </h:dataTable>
+ <h:commandButton value="Apply">
+ <s:conversationPropagation type="join" />
+ </h:commandButton>
+
+ </h:form>
+</ui:define>
+</ui:composition>
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/date.css
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/date.css (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/date.css 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,185 @@
+div.seam-date
+{
+ margin-top: 5px;
+ border: 1px solid #AAAAAA;
+ background: #fff url(../img/input.bg.gif) 0 0 repeat-x;
+ background-color: #FFFFFF;
+ color: #505050;
+ font-family: Tahoma, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+}
+
+table.seam-date td {
+ font-family: Tahoma, Arial, Helvetica, sans-serif;
+ font-size: 11px;
+}
+
+.seam-date-monthNames
+{
+ width: 70px;
+ border: 1px solid #dddddd;
+ border-right: 3px solid #444444;
+ border-bottom: 3px solid #444444;
+ background-color: #ffffff;
+ font-size: 12px;
+ cursor: pointer;
+ font-family: Tahoma, Arial, Helvetica, sans-serif;
+ font-weight: normal;
+}
+
+a.seam-date-monthNameLink, a.seam-date-monthNameLink:visited
+{
+ text-align: center;
+ display: block;
+ color: #555555;
+}
+
+a.seam-date-monthNameLink:hover
+{
+ background-color: #CCCCCC;
+ color: red;
+}
+
+.seam-date-years
+{
+ height: 10em;
+ overflow: auto;
+ width: 60px;
+ border: 1px solid #dddddd;
+ border-right: 3px solid #444444;
+ border-bottom: 3px solid #444444;
+ background-color: #ffffff;
+ font-size: 12px;
+ cursor: pointer;
+ font-family: Tahoma, Arial, Helvetica, sans-serif;
+ font-weight: normal;
+}
+
+a.seam-date-yearLink, a.seam-date-yearLink:visited
+{
+ text-align: center;
+ display: block;
+ color: #555555;
+}
+
+a.seam-date-yearLink:hover
+{
+ background-color: #CCCCCC;
+ color: red;
+}
+
+tr.seam-date-header
+{
+ padding: 2px 0px 2px 0px;
+}
+
+td.seam-date-header
+{
+ padding: 0px 8px 0px 8px;
+ text-align: center;
+ color: gray;
+ font-family: Tahoma, Arial, Helvetica, sans-serif;
+ font-weight: bold;
+ font-size: 12px;
+}
+
+td.seam-date-header-prevMonth
+{
+ background-image: url("../img/cal-prev.png");
+ background-repeat: no-repeat;
+ background-position: center;
+ padding: 0px 2px 0px 2px;
+ width: 17px;
+ height: 16px;
+ margin-left: 2px;
+}
+
+td.seam-date-header-nextMonth
+{
+ background-image: url("../img/cal-next.png");
+ background-repeat: no-repeat;
+ background-position: center;
+ padding: 0px 2px 0px 2px;
+ width: 17px;
+ height: 16px;
+ margin-right: 2px;
+}
+
+tr.seam-date-headerDays
+{
+ color: white;
+ font-weight: normal;
+}
+
+tr.seam-date-headerDays > td
+{
+ background-color: #CCCCCC;
+ border: 1px solid #AAAAAA;
+ color: white;
+ text-align: center;
+ width: 26px;
+}
+
+tr.seam-date-footer
+{
+ background-color: white;
+ color: #505050;
+ font-weight: bold;
+}
+
+tr.seam-date-footer > td
+{
+ text-align: center;
+}
+
+td.seam-date-inMonth
+{
+ background-color: white;
+ color: black;
+ font-weight: normal;
+ cursor: pointer;
+ border: 1px solid #ece9d8;
+}
+
+td.seam-date-outMonth
+{
+ background-color: white;
+ color: #999999;
+ font-weight: normal;
+ cursor: pointer;
+ border: 1px solid #ece9d8;
+}
+
+td.seam-date-selected
+{
+ background-color: #CCCCCC;
+ border: 1px solid #AAAAAA;
+ color: black;
+ font-weight: normal;
+}
+
+td.seam-date-dayOff-inMonth
+{
+ background-color: #efefef;
+ color: black;
+ font-weight: normal;
+ cursor: pointer;
+ border: 1px solid #ece9d8;
+}
+
+td.seam-date-dayOff-outMonth
+{
+ background-color: #efefef;
+ color: #999999;
+ font-weight: normal;
+ cursor: pointer;
+ border: 1px solid #ece9d8;
+}
+
+td.seam-date-hover
+{
+ background-color: #CCCCCC;
+ border: 1px solid #AAAAAA;
+ cursor: pointer;
+ color: red;
+}
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/decorateField.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/decorateField.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/decorateField.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,24 @@
+<!DOCTYPE composition 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:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:s="http://jboss.com/products/seam/taglib">
+
+ <div class="entry">
+ <s:label styleClass="label #{invalid?'errors':''}">
+ <ui:insert name="label"/>
+ <s:span styleClass="required" rendered="#{required}">*</s:span>
+ </s:label>
+ <span class="input #{invalid?'errors':''}">
+ <s:validateAll>
+ <ui:insert/>
+ </s:validateAll>
+ </span>
+ <div>
+ <s:message styleClass="error errors"/>
+ </div>
+ <div class="description"><ui:insert name="description" /></div>
+ </div>
+
+</ui:composition>
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/dtpick.gif
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/dtpick.gif (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/dtpick.gif 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,2 @@
+GIF89a
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidator.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidator.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidator.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,37 @@
+<!DOCTYPE composition 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:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html" xmlns:s="http://jboss.com/products/seam/taglib" template="template.xhtml">
+ <ui:param name="tagName" value="s:validateEquality" />
+ <ui:define name="body">
+ <h:form>
+ <p>Validates that two java.lang.String inputs are equal (may be empty)</p>
+ <h:panelGrid columns="3">
+ <s:label for="name">Name</s:label>
+ <h:inputText id="name" value="#{equalityValidatorBean.name}" />
+ <h:message for="name" />
+ <s:label for="nameVerification">Name Verification</s:label>
+ <h:inputText id="nameVerification">
+ <s:validateEquality for="name" message="Must be the same as name!" required="false" />
+ </h:inputText>
+ <h:message for="nameVerification" />
+ <h:commandButton action="#{equalityValidatorBean.check}" value="Check name" />
+ </h:panelGrid>
+ </h:form>
+
+ <h:form>
+ <p>Validates that one number is greater than another</p>
+ <h:panelGrid columns="3">
+ <s:label for="min">Minimum age (e.g. 18)</s:label>
+ <h:inputText id="min" value="#{equalityValidatorBean.age}" />
+ <h:message for="min" />
+ <s:label for="minVerification">Maximum age (e.g. 25)</s:label>
+ <h:inputText id="minVerification">
+ <f:convertNumber integerOnly="true" />
+ <s:validateEquality for="min" message="Must be larger than minimum!" operator="greater" />
+ </h:inputText>
+ <h:message for="minVerification" />
+ <h:commandButton action="#{equalityValidatorBean.check}" value="Check ages" />
+ </h:panelGrid>
+ </h:form>
+ </ui:define>
+</ui:composition>
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidatorWConvert.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidatorWConvert.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidatorWConvert.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,31 @@
+<!DOCTYPE composition 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:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ template="template.xhtml">
+ <ui:param name="tagName" value="s:validateEquality" />
+ <ui:define name="body">
+ <p>Validates that two java.util.Date inputs are equal</p>
+ <h:form>
+ <h:panelGrid columns="3">
+ <s:label for="date">Date (yyyy-MM-dd)</s:label>
+ <h:inputText id="date" value="#{equalityValidatorBean.date}">
+ <f:convertDateTime pattern="yyyy-MM-dd" />
+ </h:inputText>
+ <h:message for="date" />
+ <s:label for="dateVerification">Date Verification (yyyy-MM-dd)</s:label>
+ <h:inputText id="dateVerification">
+ <f:convertDateTime pattern="yyyy-MM-dd" />
+ <s:validateEquality for="date" />
+ </h:inputText>
+ <h:message for="dateVerification" />
+ <h:commandButton action="#{equalityValidatorBean.checkDate}"
+ value="Check date" />
+ </h:panelGrid>
+ </h:form>
+
+
+ </ui:define>
+</ui:composition>
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fileUpload.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fileUpload.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fileUpload.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,21 @@
+<!DOCTYPE composition 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:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ template="template.xhtml"
+ >
+ <ui:param name="tagName" value="s:fileUpload" />
+ <ui:define name="body">
+ <p>Renders a file upload control.</p>
+ <h:form enctype="multipart/form-data">
+ <h:panelGrid columns="2">
+ <h:outputText value="#{person.name}'s Picture" />
+ <s:fileUpload data="#{person.picture.data}" contentType="#{person.picture.contentType}" fileName="#{person.picture.fileName}" accept="images/png,images/jpg" />
+ <h:commandButton action="#{personHome.update}" value="Update" />
+ <h:outputText/>
+ </h:panelGrid>
+ </h:form>
+ </ui:define>
+</ui:composition>
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/formattedText.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/formattedText.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/formattedText.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,14 @@
+<!DOCTYPE composition 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:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ template="template.xhtml"
+ >
+ <ui:param name="tagName" value="s:formattedText" />
+ <ui:define name="body">
+ <p>Output Seam Text:</p>
+ <p>In his/her spare time, <h:outputText value="#{person.name}"/> <s:formattedText value="#{person.hobbies}" /></p>
+ </ui:define>
+</ui:composition>
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fragment.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fragment.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fragment.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,14 @@
+<!DOCTYPE composition 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:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ template="template.xhtml"
+ >
+ <ui:param name="tagName" value="s:fragment" />
+ <ui:define name="body">
+ <p>A non-rendering component useful for enabling/disabling rendering of it's children.</p>
+ <p><s:fragment rendered="true">This fragment is rendered</s:fragment> whilst <s:fragment rendered="false">this one isn't</s:fragment></p>
+ </ui:define>
+</ui:composition>
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/graphicImage.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/graphicImage.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/graphicImage.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,22 @@
+<!DOCTYPE composition 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:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ template="template.xhtml"
+ >
+ <ui:param name="tagName" value="s:graphicImage" />
+ <ui:define name="body">
+ <p>Outputs an image</p>
+ <h:panelGrid>
+ <s:fragment>
+ <s:graphicImage value="#{person.picture.data}">
+ <s:transformImageSize factor="0.5" />
+ </s:graphicImage>
+ <h:outputText value="No image found (upload one)" rendered="#{person.picture.contentType eq null}" />
+ </s:fragment>
+ <h:outputText value="Picture of #{person.name}" />
+ </h:panelGrid>
+ </ui:define>
+</ui:composition>
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.html
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.html (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.html 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,5 @@
+<html>
+<head>
+ <meta http-equiv="Refresh" content="0; URL=index.seam">
+</head>
+</html>
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,14 @@
+<!DOCTYPE composition 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:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ xmlns:aca="http://www.aca-it.be/taglib/jsf"
+ template="template.xhtml"
+ >
+ <ui:param name="tagName" value="" />
+ <ui:define name="body">
+ <p>Seam ui components</p>
+ </ui:define>
+</ui:composition>
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/linkAndButton.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/linkAndButton.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/linkAndButton.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,47 @@
+<!DOCTYPE composition 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:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ template="template.xhtml"
+ >
+ <ui:param name="tagName" value="s:link/s:button" />
+ <ui:define name="body">
+ <p>A link/button that supports invocation of an action with control over conversation propagation. <i>Does not submit the form.</i></p>
+ <p>Some of the things you can do with a s:link or s:button:</p>
+ <h:panelGrid columns="3">
+ <h:outputText value="Jump to a fragment on a view" />
+ <s:link view="/linkAndButton.xhtml" fragment="fragment" value="Jump" />
+ <s:button view="/linkAndButton.xhtml" fragment="fragment" value="Jump" />
+
+ <h:outputText value="Link on children" />
+ <s:link view="/linkAndButton.xhtml">Link</s:link>
+ <h:outputText value="N/A" />
+
+ <h:outputText value="Do an action" />
+ <s:link action="#{buttonLink.simpleAction}" value="Do action" />
+ <s:button action="#{buttonLink.simpleAction}" value="Do action" />
+
+ <h:outputText value="Disabled" />
+ <s:link action="#{buttonLink.simpleAction}" value="Do action" disabled="true"/>
+ <s:button action="#{buttonLink.simpleAction}" value="Do action" disabled="true"/>
+
+ <h:outputText value="Conversation Propagation" />
+ <s:link view="/linkAndButton.xhtml" value="Begin conversation" propagation="begin" />
+ <s:button view="/linkAndButton.xhtml" value="End conversation">
+ <s:conversationPropagation type="end" />
+ </s:button>
+
+ <h:outputText value="Page parameters" />
+ <s:link action="#{buttonLink.simpleAction}" value="Add a page parameter">
+ <f:param name="foo" value="bar" />
+ </s:link>
+ <s:button action="#{buttonLink.simpleAction}" value="Add a page parameter">
+ <f:param name="foo" value="bar" />
+ </s:button>
+ </h:panelGrid>
+ <p>You can also start a pageflow or start/resume a task - this isn't demonstrated here.</p>
+ <p><a name="fragment">A fragment to jump to</a></p>
+ </ui:define>
+</ui:composition>
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resource.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resource.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resource.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,26 @@
+<!DOCTYPE composition 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:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ template="template.xhtml">
+ <ui:param name="tagName" value="s:resource, s:download" />
+ <ui:define name="body">
+ <p>Download a file.</p>
+ <h:panelGrid columns="3">
+ <h:outputText value="Totally restful" />
+ <h:outputLink value="resources.seam?id=1">Text</h:outputLink>
+ <h:outputLink value="resources.seam?id=2">Numbers</h:outputLink>
+ <h:outputText value="Restful with s:download" />
+ <s:download src="/resources.xhtml">
+ <h:outputText value="Text" />
+ <f:param name="id" value="1" />
+ </s:download>
+ <s:download src="/resources.xhtml">
+ <h:outputText value="Numbers" />
+ <f:param name="id" value="2" />
+ </s:download>
+ </h:panelGrid>
+ </ui:define>
+</ui:composition>
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resources.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resources.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resources.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,5 @@
+<s:resource xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ data="#{resources.item.data}"
+ contentType="#{resources.item.contentType}"
+ fileName="#{resources.item.fileName}" />
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/selectItems.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/selectItems.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/selectItems.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,113 @@
+<!DOCTYPE composition 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:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ template="template.xhtml"
+ >
+ <ui:param name="tagName" value="s:selectItems" />
+ <ui:define name="body">
+ <p>This example shows example usage of the <code>s:selectItems</code> tag being used for CRUD on a <code>Person</code> entity.</p>
+ <p>The example also uses:</p>
+ <ul>
+ <li><code>s:span</code></li>
+ <li><code>s:convertEnum</code></li>
+ <li><code>s:message</code></li>
+ <li><code>s:decorate</code></li>
+ <li><code>s:link</code></li>
+ <li><code>s:conversationPropagation</code></li>
+ <li><code>s:decorate</code></li>
+ </ul>
+
+ <p><s:link view="/continents.xhtml" value="Edit the continent/country relationship." /></p>
+
+ <h:form>
+ <s:decorate template="decorateField.xhtml">
+ <ui:define name="label">Title</ui:define>
+ <h:selectOneMenu value="#{person.honorific}">
+ <s:selectItems value="#{honorifics}" var="honorific" label="#{honorific.label}" noSelectionLabel="Please select" />
+ <s:convertEnum />
+ </h:selectOneMenu>
+ </s:decorate>
+
+ <s:decorate template="decorateField.xhtml">
+ <ui:define name="label">Name</ui:define>
+ <ui:define name="description">Enter your name as it appears on your passport</ui:define>
+ <h:inputText value="#{person.name}" required="true" />
+ </s:decorate>
+
+ <s:decorate template="decorateField.xhtml">
+ <ui:define name="label">Continent of Birth</ui:define>
+ <h:selectOneMenu value="#{personHome.instance.continent}" required="true" id="continent">
+ <s:selectItems value="#{continents.resultList}" var="continent" label="#{continent.name}" noSelectionLabel="Please Select..."/>
+ <s:convertEntity />
+ </h:selectOneMenu>
+ </s:decorate>
+
+ <s:decorate template="decorateField.xhtml">
+ <ui:define name="label">Country of Birth</ui:define>
+ <h:selectOneRadio value="#{personHome.instance.country}" required="true" disabled="#{empty person.continent}">
+ <s:selectItems value="#{personHome.instance.continent.countries}" var="country" label="#{country.name} (#{country.continent.name})" noSelectionLabel="Please Select..." hideNoSelectionLabel="true"/>
+ <s:convertEntity />
+ </h:selectOneRadio>
+ </s:decorate>
+
+ <s:decorate template="decorateField.xhtml">
+ <ui:define name="label">Roles</ui:define>
+ <h:selectManyCheckbox value="#{person.roles}" required="true" collectionType="java.util.ArrayList">
+ <s:selectItems value="#{roles}" var="role" label="#{role.name}"/>
+ <s:convertEnum />
+ </h:selectManyCheckbox>
+ </s:decorate>
+
+ <s:decorate template="decorateField.xhtml">
+ <ui:define name="label">Age</ui:define>
+ <ui:define name="description">The age list is an array of primitives</ui:define>
+ <h:selectOneMenu value="#{person.age}">
+ <s:selectItems value="#{ages}" var="age" label="#{age}" />
+ <f:converter converterId="ageConverter" />
+ </h:selectOneMenu>
+ </s:decorate>
+
+ <s:decorate template="decorateField.xhtml">
+ <ui:define name="label">Pet</ui:define>
+ <ui:define name="description">The animal list is a list of Strings</ui:define>
+ <h:selectOneMenu value="#{person.pet}">
+ <s:selectItems value="#{animals}" var="animal" label="#{animal.name} (#{animal.notes})" itemValue="#{animal.name}" noSelectionLabel="Select your pet"/>
+ </h:selectOneMenu>
+ </s:decorate>
+
+ <s:decorate template="decorateField.xhtml">
+ <ui:define name="label">Favourite Colours</ui:define>
+ <ui:define name="description">A colour is an entity</ui:define>
+ <h:selectManyListbox value="#{personHome.instance.favouriteColours}" collectionType="java.util.ArrayList">
+ <s:selectItems value="#{colours.resultList}" var="colour" label="#{colour.name}" />
+ <s:convertEntity />
+ </h:selectManyListbox>
+ </s:decorate>
+
+ <s:decorate template="decorateField.xhtml">
+ <ui:define name="label">Favourite Book</ui:define>
+ <ui:define name="description">A book has a composite key</ui:define>
+ <h:selectOneListbox value="#{person.favouriteBook}" >
+ <s:selectItems value="#{books.resultList}" var="book" label="#{book.name} by #{book.author} (#{book.nationality})" />
+ <s:convertEntity />
+ </h:selectOneListbox>
+ </s:decorate>
+
+ <s:decorate template="decorateField.xhtml">
+ <ui:define name="label">Favourite Film</ui:define>
+ <ui:define name="description">Film uses <code>@Converter(forClass="...")</code> - there is no converter specified in the facelet</ui:define>
+ <h:selectOneListbox value="#{person.favouriteFilm}">
+ <s:selectItems value="#{films.resultList}" var="film" label="#{film.name} directed by #{film.director}" noSelectionLabel="Please Select..."/>
+ </h:selectOneListbox>
+ </s:decorate>
+
+ <h:commandButton value="Apply" action="#{personHome.update}">
+ <s:conversationPropagation type="join" />
+ </h:commandButton>
+
+ </h:form>
+</ui:define>
+</ui:composition>
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/template.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/template.xhtml (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/template.xhtml 2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,128 @@
+<!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:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:s="http://jboss.com/products/seam/taglib">
+<head>
+<title>UI Example: #{tagName}</title>
+<link href="date.css" rel="stylesheet" type="text/css" />
+<style type="text/css">
+.label {
+ font-weight: bold;
+ color: #5E5147;
+}
+.errors {
+ font-size: small;
+ font-weight: bold;
+ text-align: center;
+ color: #600;
+}
+.errors div {
+ text-align: left;
+}
+.errors span {
+ text-align: left;
+}
+.errors input {
+ border: 1px solid #600;
+}
+.errors ul {
+ list-style: none;
+}
+.entry {
+ padding-top: 10px;
+}
+.entry .label {
+ float: left;
+ padding-right: 5px;
+ font-weight: bold;
+ width: 250px;
+ text-align: right;
+}
+
+.entry .input {
+ width: 600px;
+ text-align: left;
+}
+.entry .error {
+ width: 600px;
+ text-align: left;
+ margin-left: 270px;
+}
+
+.entry .description {
+ font-size: x-small;
+ margin-left: 270px;
+}
+
+.menu {
+ width: 220px;
+ float: left;
+ padding: 10px;
+}
+
+.content {
+ margin-left: 200px;
+}
+</style>
+<ui:debug id="debug" />
+</head>
+
+<body>
+<s:div styleClass="menu">
+ <ul>
+ <li><s:link view="/selectItems.xhtml" propagation="join">
+ <code>s:selectItems</code>
+ <f:param name="personId" value="1" />
+ </s:link></li>
+ <li><s:link view="/fragment.xhtml" propagation="none">
+ <code>s:fragment</code>
+ </s:link></li>
+ <li><s:link view="/formattedText.xhtml" propagation="join">
+ <code>s:formattedText</code>
+ <f:param name="personId" value="1" />
+ </s:link></li>
+ <li><s:link view="/fileUpload.xhtml" propagation="join">
+ <code>s:fileUpload</code>
+ <f:param name="personId" value="1" />
+ </s:link></li>
+ <li><s:link view="/linkAndButton.xhtml" propagation="none">
+ <code>s:button</code> and <code>s:link</code>
+ </s:link></li>
+ <li><s:link view="/cache.xhtml" propagation="none">
+ <code>s:cache</code>
+ </s:link></li>
+ <li><s:link view="/graphicImage.xhtml">
+ <code>s:graphicImage</code>
+ <f:param name="personId" value="1" />
+ </s:link></li>
+
+ <li><s:link view="/equalityValidator.xhtml">
+ <code>s:validateEquality</code>
+ </s:link></li>
+
+ <li><s:link view="/equalityValidatorWConvert.xhtml">
+ <code>s:validateEquality(2)</code>
+ </s:link></li>
+
+ <li><s:link view="/resource.xhtml">
+ <code>s:resource/download</code>
+ </s:link></li>
+
+
+ <li><s:span title="#{spanTitle}" style="font-weight:bold">
+ <code>s:span</code>
+ </s:span>
+ </li>
+
+ </ul>
+</s:div>
+<s:div styleClass="content">
+ <h1><code><h:outputText value="#{tagName}" /></code></h1>
+ <ui:insert name="body" />
+ <h:messages />
+</s:div>
+</body>
+
+</html>
\ No newline at end of file
More information about the seam-commits
mailing list