Skip to content

Commit

Permalink
Move examples to examples project
Browse files Browse the repository at this point in the history
  • Loading branch information
pmuir committed Dec 24, 2008
1 parent 263408b commit f31a198
Show file tree
Hide file tree
Showing 12 changed files with 379 additions and 0 deletions.
11 changes: 11 additions & 0 deletions numberguess/WebContent/WEB-INF/faces-config.xml
@@ -0,0 +1,11 @@
<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="1.2"
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_1_2.xsd">

<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
</application>

</faces-config>
Empty file.
36 changes: 36 additions & 0 deletions numberguess/WebContent/WEB-INF/web.xml
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5"
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_2_5.xsd">

<display-name>Web Beans Numberguess example</display-name>

<!-- JSF -->

<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>*.jsf</url-pattern>
</servlet-mapping>

<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>

<session-config>
<session-timeout>10</session-timeout>
</session-config>

<listener>
<listener-class>org.jboss.webbeans.servlet.WebBeansListener</listener-class>
</listener>

</web-app>
35 changes: 35 additions & 0 deletions numberguess/WebContent/home.xhtml
@@ -0,0 +1,35 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns: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">

<ui:composition template="template.xhtml">
<ui:define name="content">
<h1>Guess a number...</h1>
<h:form id="NumberGuessMain">
<div style="color: red">
<h:messages id="messages" globalOnly="false"/>
<h:outputText id="Higher" value="Higher!" rendered="#{game.number gt game.guess and game.guess ne 0}"/>
<h:outputText id="Lower" value="Lower!" rendered="#{game.number lt game.guess and game.guess ne 0}"/>
</div>

<div>
I'm thinking of a number between #{game.smallest} and #{game.biggest}. You have #{game.remainingGuesses} guesses.
</div>

<div>
Your guess:
<h:inputText id="inputGuess" value="#{game.guess}" required="true" size="3" disabled="#{game.number eq game.guess}">
<f:validateLongRange maximum="#{game.biggest}" minimum="#{game.smallest}"/>
</h:inputText>
<h:commandButton id="GuessButton" value="Guess" action="#{game.check}" disabled="#{game.number eq game.guess}"/>
</div>
<div>
<h:commandButton id="RestartButton" value="Reset" action="#{game.reset}" immediate="true" />
</div>
</h:form>
</ui:define>
</ui:composition>
</html>
5 changes: 5 additions & 0 deletions numberguess/WebContent/index.html
@@ -0,0 +1,5 @@
<html>
<head>
<meta http-equiv="Refresh" content="0; URL=home.jsf">
</head>
</html>
35 changes: 35 additions & 0 deletions numberguess/WebContent/template.xhtml
@@ -0,0 +1,35 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:s="http://jboss.com/products/seam/taglib"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Numberguess</title>
<link href="style/main.css" rel="stylesheet" type="text/css"/>
<ui:insert name="head"/>
</head>

<body>

<div id="container">
<div id="header">

</div>

<div id="sidebar">

</div>

<div id="content">
<ui:insert name="content"/>
</div>

<br style="clear:both"/>
</div>

</body>
</html>

7 changes: 7 additions & 0 deletions numberguess/build.xml
@@ -0,0 +1,7 @@
<project basedir="." name="Numberguess Example Build" default="restart">

<property name="example.name" value="webbeans-numberguess" />

<import file="../build.xml" />

</project>
82 changes: 82 additions & 0 deletions numberguess/pom.xml
@@ -0,0 +1,82 @@
<?xml version="1.0"?>
<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>
<groupId>org.jboss.webbeans.examples</groupId>
<artifactId>parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>

<groupId>org.jboss.webbeans.examples</groupId>
<artifactId>webbeans-numberguess</artifactId>
<packaging>war</packaging>
<name>Web Beans Examples: Numberguess</name>

<pluginRepositories>
<pluginRepository>
<id>codehaus snapshot repository</id>
<url>http://snapshots.repository.codehaus.org/</url>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>

<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<scope>test</scope>
<classifier>jdk15</classifier>
</dependency>

<dependency>
<groupId>org.jboss.webbeans</groupId>
<artifactId>webbeans-api</artifactId>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>com.sun.facelets</groupId>
<artifactId>jsf-facelets</artifactId>
</dependency>

<!-- <dependency>
<groupId>org.jboss.el</groupId>
<artifactId>jboss-el</artifactId>
<exclusions>
<exclusion>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
</exclusion>
</exclusions>
</dependency>-->

<dependency>
<groupId>javax.el</groupId>
<artifactId>el-ri</artifactId>
<exclusions>
<exclusion>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
</exclusion>
</exclusions>
</dependency>

</dependencies>

<build>
<finalName>webbeans-numberguess</finalName>
</build>

</project>

@@ -0,0 +1,94 @@
package org.jboss.webbeans.examples.numberguess;


import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.webbeans.AnnotationLiteral;
import javax.webbeans.Current;
import javax.webbeans.Initializer;
import javax.webbeans.Named;
import javax.webbeans.SessionScoped;
import javax.webbeans.manager.Manager;

@Named
@SessionScoped
public class Game
{
private int number;

private int guess;
private int smallest;
private int biggest;
private int remainingGuesses;

@Current Manager manager;

public Game()
{
}

@Initializer
Game(@MaxNumber int maxNumber)
{
this.biggest = maxNumber;
}

public int getNumber()
{
return number;
}

public int getGuess()
{
return guess;
}

public void setGuess(int guess)
{
this.guess = guess;
}

public int getSmallest()
{
return smallest;
}

public int getBiggest()
{
return biggest;
}

public int getRemainingGuesses()
{
return remainingGuesses;
}

public String check()
{
if (guess>number)
{
biggest = guess - 1;
}
if (guess<number)
{
smallest = guess + 1;
}
if (guess == number)
{
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Correct!"));
}
remainingGuesses--;
return null;
}

@PostConstruct
public void reset()
{
this.smallest = 0;
this.guess = 0;
this.remainingGuesses = 10;
this.number = manager.getInstanceByType(Integer.class, new AnnotationLiteral<Random>(){});
}

}
@@ -0,0 +1,28 @@
package org.jboss.webbeans.examples.numberguess;


import javax.webbeans.ApplicationScoped;
import javax.webbeans.Produces;

@ApplicationScoped
public class Generator {

private java.util.Random random = new java.util.Random( System.currentTimeMillis() );

private int maxNumber = 100;

java.util.Random getRandom()
{
return random;
}

@Produces @Random int next() {
return getRandom().nextInt(maxNumber);
}

@Produces @MaxNumber int getMaxNumber()
{
return maxNumber;
}

}
@@ -0,0 +1,23 @@
package org.jboss.webbeans.examples.numberguess;


import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import javax.webbeans.BindingType;

@Target( { TYPE, METHOD, PARAMETER, FIELD })
@Retention(RUNTIME)
@Documented
@BindingType
public @interface MaxNumber
{

}
@@ -0,0 +1,23 @@
package org.jboss.webbeans.examples.numberguess;


import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import javax.webbeans.BindingType;

@Target( { TYPE, METHOD, PARAMETER, FIELD })
@Retention(RUNTIME)
@Documented
@BindingType
public @interface Random
{

}

0 comments on commit f31a198

Please sign in to comment.