Skip to content

Commit

Permalink
Add translator
Browse files Browse the repository at this point in the history
git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@544 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
pmuir committed Dec 17, 2008
1 parent ee9342d commit 6c4490d
Show file tree
Hide file tree
Showing 12 changed files with 118 additions and 174 deletions.
4 changes: 2 additions & 2 deletions examples/translator/webbeans-translator-ejb/pom.xml
Expand Up @@ -40,8 +40,8 @@
</dependency>

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

Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

@@ -0,0 +1,14 @@
package org.jboss.webbeans.examples.translator;

import java.util.Arrays;
import java.util.List;

public class SentenceParser
{

public List<String> parse(String text)
{
return Arrays.asList( text.split("[.?]") );
}

}
@@ -0,0 +1,14 @@
package org.jboss.webbeans.examples.translator;

import javax.ejb.Stateless;

@Stateless
public class SentenceTranslator implements Translator
{

public String translate(String sentence)
{
return "Lorem ipsum dolor sit amet";
}

}
@@ -0,0 +1,27 @@
package org.jboss.webbeans.examples.translator;

import javax.webbeans.Initializer;

public class TextTranslator
{
private SentenceParser sentenceParser;
private Translator sentenceTranslator;

@Initializer
TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator)
{
this.sentenceParser = sentenceParser;
this.sentenceTranslator = sentenceTranslator;
}

public String translate(String text)
{
StringBuilder sb = new StringBuilder();
for (String sentence: sentenceParser.parse(text))
{
sb.append(sentenceTranslator.translate(sentence)).append(". ");
}
return sb.toString().trim();
}

}
@@ -0,0 +1,11 @@
package org.jboss.webbeans.examples.translator;

import javax.ejb.Local;

@Local
public interface Translator
{

public String translate(String sentence);

}
@@ -0,0 +1,40 @@
package org.jboss.webbeans.examples.translator;

import javax.ejb.Stateful;
import javax.webbeans.Current;
import javax.webbeans.Named;
import javax.webbeans.RequestScoped;

@Stateful
@RequestScoped
@Named("translator")
public class TranslatorController
{

@Current TextTranslator translator;

private String inputText;

private String translatedText;

public String getText()
{
return inputText;
}

public void setText(String text)
{
this.inputText = text;
}

public void translate()
{
translatedText = translator.translate(inputText);
}

public String getTranslatedText()
{
return translatedText;
}

}
24 changes: 9 additions & 15 deletions examples/translator/webbeans-translator-war/WebContent/home.xhtml
Expand Up @@ -7,28 +7,22 @@

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

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

<div style="vertical-align: middle;">
Your text:
<h:inputTextarea id="text" value="#{translator.translate}" required="true" rows="5" cols="80">
<f:validateLongRange maximum="#{game.biggest}" minimum="#{game.smallest}"/>
</h:inputTextarea>
</div>

<div>
Your guess:
<h:inputText id="inputGuess" value="#{game.guess}" required="true" size="3">
<f:validateLongRange maximum="#{game.biggest}" minimum="#{game.smallest}"/>
</h:inputText>
<h:commandButton id="GuessButton" value="Guess" action="#{game.check}"/>
</div>

<div>
<h:message id="message" for="inputGuess" style="color: red"/>
<h:outputText value="#{translator.translatedText}" />
</div>
</h:form>
</ui:define>
Expand Down
Expand Up @@ -7,7 +7,7 @@

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

0 comments on commit 6c4490d

Please sign in to comment.