[jboss-cvs] JBossBlog SVN: r132 - in trunk: resources/WEB-INF and 12 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Nov 22 06:08:03 EST 2007
Author: adamw
Date: 2007-11-22 06:08:03 -0500 (Thu, 22 Nov 2007)
New Revision: 132
Added:
trunk/src/action/org/jboss/blog/session/manage/
trunk/src/action/org/jboss/blog/session/manage/NewRemoteFeedBean.java
trunk/src/action/org/jboss/blog/session/parser/
trunk/src/action/org/jboss/blog/session/parser/ParserException.java
trunk/src/action/org/jboss/blog/session/parser/ParserService.java
trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java
trunk/src/action/org/jboss/blog/tools/
trunk/src/action/org/jboss/blog/tools/StringTools.java
trunk/src/model/org/
trunk/src/model/org/jboss/
trunk/src/model/org/jboss/blog/
trunk/src/model/org/jboss/blog/model/
trunk/src/model/org/jboss/blog/model/AggregatedFeed.java
trunk/src/model/org/jboss/blog/model/Blog.java
trunk/src/model/org/jboss/blog/model/Feed.java
trunk/src/model/org/jboss/blog/model/FeedType.java
trunk/src/model/org/jboss/blog/model/Post.java
trunk/src/model/org/jboss/blog/model/RemoteFeed.java
trunk/view/manage/
trunk/view/manage/add.xhtml
trunk/view/manage/add_remote.xhtml
trunk/view/manage/index.xhtml
Modified:
trunk/blog.iml
trunk/build.xml
trunk/resources/WEB-INF/pages.xml
trunk/view/home.xhtml
Log:
Modified: trunk/blog.iml
===================================================================
--- trunk/blog.iml 2007-11-21 19:00:59 UTC (rev 131)
+++ trunk/blog.iml 2007-11-22 11:08:03 UTC (rev 132)
@@ -4,9 +4,54 @@
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/action" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/model" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test" isTestSource="true" />
+ <excludeFolder url="file://$MODULE_DIR$/dist" />
+ <excludeFolder url="file://$MODULE_DIR$/exploded-archives" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" name="api-other" level="application" />
+ <orderEntry type="library" name="javaee" level="application" />
+ <orderEntry type="module-library">
+ <library name="Seam">
+ <CLASSES>
+ <root url="jar://$MODULE_DIR$/lib/jboss-seam.jar!/" />
+ <root url="jar://$MODULE_DIR$/lib/jboss-seam-debug.jar!/" />
+ <root url="jar://$MODULE_DIR$/lib/jboss-seam-ui.jar!/" />
+ <root url="jar://$MODULE_DIR$/lib/jboss-seam-remoting.jar!/" />
+ <root url="jar://$MODULE_DIR$/lib/jboss-seam-pdf.jar!/" />
+ <root url="jar://$MODULE_DIR$/lib/jboss-seam-ioc.jar!/" />
+ <root url="jar://$MODULE_DIR$/lib/jboss-seam-mail.jar!/" />
+ <root url="jar://$MODULE_DIR$/lib/jboss-seam-gen.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library">
+ <library name="hibernate">
+ <CLASSES>
+ <root url="jar://$MODULE_DIR$/lib/hibernate-entitymanager.jar!/" />
+ <root url="jar://$MODULE_DIR$/lib/hibernate-commons-annotations.jar!/" />
+ <root url="jar://$MODULE_DIR$/lib/hibernate-annotations.jar!/" />
+ <root url="jar://$MODULE_DIR$/lib/hibernate-search.jar!/" />
+ <root url="jar://$MODULE_DIR$/lib/hibernate.jar!/" />
+ <root url="jar://$MODULE_DIR$/lib/hibernate-validator.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library">
+ <library name="rome">
+ <CLASSES>
+ <root url="jar://$MODULE_DIR$/lib/rome-0.9.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
<orderEntryProperties />
</component>
</module>
Modified: trunk/build.xml
===================================================================
--- trunk/build.xml 2007-11-21 19:00:59 UTC (rev 131)
+++ trunk/build.xml 2007-11-22 11:08:03 UTC (rev 132)
@@ -157,6 +157,8 @@
<include name="lib/antlr-*.jar"/>
<include name="lib/mvel*.jar"/>
<include name="lib/richfaces-api*.jar" />
+ <include name="lib/rome*.jar" />
+ <include name="lib/jdom*.jar" />
</fileset>
</copy>
<copy todir="${ear.dir}/META-INF">
Modified: trunk/resources/WEB-INF/pages.xml
===================================================================
--- trunk/resources/WEB-INF/pages.xml 2007-11-21 19:00:59 UTC (rev 131)
+++ trunk/resources/WEB-INF/pages.xml 2007-11-22 11:08:03 UTC (rev 132)
@@ -14,6 +14,8 @@
</navigation>
</page>
+ <page view-id="/manage/add*" conversation-required="true" />
+
<exception class="org.jboss.seam.framework.EntityNotFoundException">
<redirect view-id="/error.xhtml">
<message>Not found</message>
Added: trunk/src/action/org/jboss/blog/session/manage/NewRemoteFeedBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/manage/NewRemoteFeedBean.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/manage/NewRemoteFeedBean.java 2007-11-22 11:08:03 UTC (rev 132)
@@ -0,0 +1,59 @@
+package org.jboss.blog.session.manage;
+
+import org.hibernate.validator.NotEmpty;
+import org.jboss.blog.session.parser.ParserException;
+import org.jboss.blog.session.parser.ParserService;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Scope(ScopeType.CONVERSATION)
+ at Name("newRemoteFeed")
+public class NewRemoteFeedBean {
+ @In
+ private ParserService parserService;
+
+ @NotEmpty
+ private String link;
+
+ private Boolean parseOk;
+ private Exception parseException;
+
+ public String getLink() {
+ return link;
+ }
+
+ public void setLink(String link) {
+ this.link = link;
+ }
+
+ public Boolean isParseOk() {
+ return parseOk;
+ }
+
+ public void setParseOk(Boolean parseOk) {
+ this.parseOk = parseOk;
+ }
+
+ public Exception getParseException() {
+ return parseException;
+ }
+
+ public void setParseException(Exception parseException) {
+ this.parseException = parseException;
+ }
+
+ public void parseFeed() {
+ try {
+ parserService.parse(getLink());
+ setParseOk(true);
+ } catch (ParserException e) {
+ setParseException(parseException);
+ setParseOk(false);
+ }
+ }
+}
Added: trunk/src/action/org/jboss/blog/session/parser/ParserException.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/parser/ParserException.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/parser/ParserException.java 2007-11-22 11:08:03 UTC (rev 132)
@@ -0,0 +1,21 @@
+package org.jboss.blog.session.parser;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public class ParserException extends Exception {
+ public ParserException() {
+ }
+
+ public ParserException(String message) {
+ super(message);
+ }
+
+ public ParserException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public ParserException(Throwable cause) {
+ super(cause);
+ }
+}
Added: trunk/src/action/org/jboss/blog/session/parser/ParserService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/parser/ParserService.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/parser/ParserService.java 2007-11-22 11:08:03 UTC (rev 132)
@@ -0,0 +1,15 @@
+package org.jboss.blog.session.parser;
+
+import org.jboss.blog.model.Blog;
+
+import javax.ejb.Local;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Local
+public interface ParserService {
+ Blog parse(String link) throws ParserException;
+
+ void remove();
+}
Added: trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java 2007-11-22 11:08:03 UTC (rev 132)
@@ -0,0 +1,84 @@
+package org.jboss.blog.session.parser;
+
+import com.sun.syndication.feed.synd.SyndCategory;
+import com.sun.syndication.feed.synd.SyndContent;
+import com.sun.syndication.feed.synd.SyndEntry;
+import com.sun.syndication.feed.synd.SyndFeed;
+import com.sun.syndication.io.FeedException;
+import com.sun.syndication.io.SyndFeedInput;
+import com.sun.syndication.io.XmlReader;
+import org.jboss.blog.model.Blog;
+import org.jboss.blog.model.Post;
+import org.jboss.blog.tools.StringTools;
+import org.jboss.seam.annotations.Name;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateless;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Stateless
+ at Name("parserService")
+public class ParserServiceImpl implements ParserService {
+ public Blog parse(String link) throws ParserException {
+ try {
+ SyndFeedInput input = new SyndFeedInput();
+ SyndFeed feed = input.build(new XmlReader(new URL(link)));
+
+ Blog blog = new Blog();
+ blog.setAuthor(feed.getAuthor());
+ blog.setDescription(feed.getDescription());
+ blog.setLink(feed.getLink());
+ blog.setTitle(feed.getTitle());
+ blog.setPosts(new ArrayList<Post>());
+
+ if (feed.getEntries() != null) {
+ for (Object entryObj : feed.getEntries()) {
+ SyndEntry entry = (SyndEntry) entryObj;
+ Post post = new Post();
+ post.setBlog(blog);
+
+ post.setAuthor(StringTools.isEmpty(entry.getAuthor()) ? blog.getAuthor() : entry.getAuthor());
+
+ for (Object contentObj : entry.getContents()) {
+ SyndContent content = (SyndContent) contentObj;
+ if (!StringTools.isEmpty(content.getValue())) {
+ post.setContent(content.getValue());
+ break;
+ }
+ }
+
+ post.setCategories(new ArrayList<String>());
+ for (Object categoryObj : entry.getCategories()) {
+ SyndCategory category = (SyndCategory) categoryObj;
+ post.getCategories().add(category.getName());
+ }
+
+ post.setTitle(entry.getTitle());
+ post.setPublished(entry.getPublishedDate());
+ post.setModified(entry.getUpdatedDate());
+ post.setLink(entry.getLink());
+ post.setGuid(entry.getUri());
+
+ blog.getPosts().add(post);
+ }
+ }
+
+ return blog;
+ } catch (FeedException e) {
+ throw new ParserException(e);
+ } catch (MalformedURLException e) {
+ throw new ParserException(e);
+ } catch (IOException e) {
+ throw new ParserException(e);
+ }
+ }
+
+ @Remove
+ public void remove() { }
+}
Added: trunk/src/action/org/jboss/blog/tools/StringTools.java
===================================================================
--- trunk/src/action/org/jboss/blog/tools/StringTools.java (rev 0)
+++ trunk/src/action/org/jboss/blog/tools/StringTools.java 2007-11-22 11:08:03 UTC (rev 132)
@@ -0,0 +1,22 @@
+package org.jboss.blog.tools;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public class StringTools {
+ public static boolean isEmpty(String s) {
+ return s == null || "".equals(s);
+ }
+
+ public static String safeToString(Object o) {
+ return o == null ? null : o.toString();
+ }
+
+ public static String convertTitleToLink(String title) {
+ if (title == null) {
+ return null;
+ }
+
+ return title.toLowerCase().replaceAll("[^a-z0-9_]", "_");
+ }
+}
Added: trunk/src/model/org/jboss/blog/model/AggregatedFeed.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/AggregatedFeed.java (rev 0)
+++ trunk/src/model/org/jboss/blog/model/AggregatedFeed.java 2007-11-22 11:08:03 UTC (rev 132)
@@ -0,0 +1,22 @@
+package org.jboss.blog.model;
+
+import javax.persistence.Entity;
+import javax.persistence.ManyToMany;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Entity
+public class AggregatedFeed extends Feed {
+ @ManyToMany
+ private List<Feed> feeds;
+
+ public List<Feed> getFeeds() {
+ return feeds;
+ }
+
+ public void setFeeds(List<Feed> feeds) {
+ this.feeds = feeds;
+ }
+}
Added: trunk/src/model/org/jboss/blog/model/Blog.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/Blog.java (rev 0)
+++ trunk/src/model/org/jboss/blog/model/Blog.java 2007-11-22 11:08:03 UTC (rev 132)
@@ -0,0 +1,99 @@
+package org.jboss.blog.model;
+
+import org.hibernate.validator.Length;
+import org.hibernate.validator.NotEmpty;
+import org.hibernate.validator.Pattern;
+import org.jboss.blog.tools.StringTools;
+
+import javax.persistence.*;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Entity
+public class Blog {
+ @Id
+ @GeneratedValue
+ private Integer id;
+
+ @NotEmpty
+ @Length(max = 512)
+ private String title;
+
+ @NotEmpty
+ @Pattern(regex = "^[a-z0-9_]$")
+ @Column(unique = true)
+ private String titleAsLink;
+
+ @Length(max = 256)
+ private String author;
+
+ @Length(max = 512)
+ @NotEmpty
+ private String link;
+
+ @OneToMany(cascade = {CascadeType.REMOVE})
+ private List<Post> posts;
+
+ @Lob
+ private String description;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ setTitleAsLink(StringTools.convertTitleToLink(title));
+ this.title = title;
+ }
+
+ public String getTitleAsLink() {
+ return titleAsLink;
+ }
+
+ public void setTitleAsLink(String titleAsLink) {
+ this.titleAsLink = titleAsLink;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(String author) {
+ this.author = author;
+ }
+
+ public String getLink() {
+ return link;
+ }
+
+ public void setLink(String link) {
+ this.link = link;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public List<Post> getPosts() {
+ return posts;
+ }
+
+ public void setPosts(List<Post> posts) {
+ this.posts = posts;
+ }
+}
+
Added: trunk/src/model/org/jboss/blog/model/Feed.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/Feed.java (rev 0)
+++ trunk/src/model/org/jboss/blog/model/Feed.java 2007-11-22 11:08:03 UTC (rev 132)
@@ -0,0 +1,72 @@
+package org.jboss.blog.model;
+
+import org.hibernate.annotations.CollectionOfElements;
+import org.hibernate.validator.NotNull;
+
+import javax.persistence.*;
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Entity
+ at Inheritance(strategy = InheritanceType.SINGLE_TABLE)
+public abstract class Feed {
+ @Id
+ @GeneratedValue
+ @Column(updatable = false)
+ private Integer id;
+
+ @OneToOne(cascade = CascadeType.REMOVE)
+ @NotNull
+ private Blog blog;
+
+ @CollectionOfElements
+ private Map<FeedType, String> templates;
+
+ @Column
+ private int maxPosts;
+
+ @Column
+ private boolean useBlogAuthorInPosts;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Blog getBlog() {
+ return blog;
+ }
+
+ public void setBlog(Blog blog) {
+ this.blog = blog;
+ }
+
+ public Map<FeedType, String> getTemplates() {
+ return templates;
+ }
+
+ public void setTemplates(Map<FeedType, String> templates) {
+ this.templates = templates;
+ }
+
+ public int getMaxPosts() {
+ return maxPosts;
+ }
+
+ public void setMaxPosts(int maxPosts) {
+ this.maxPosts = maxPosts;
+ }
+
+ public boolean isUseBlogAuthorInPosts() {
+ return useBlogAuthorInPosts;
+ }
+
+ public void setUseBlogAuthorInPosts(boolean useBlogAuthorInPosts) {
+ this.useBlogAuthorInPosts = useBlogAuthorInPosts;
+ }
+}
Added: trunk/src/model/org/jboss/blog/model/FeedType.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/FeedType.java (rev 0)
+++ trunk/src/model/org/jboss/blog/model/FeedType.java 2007-11-22 11:08:03 UTC (rev 132)
@@ -0,0 +1,9 @@
+package org.jboss.blog.model;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public enum FeedType {
+ ATOM,
+ RSS2
+}
Added: trunk/src/model/org/jboss/blog/model/Post.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/Post.java (rev 0)
+++ trunk/src/model/org/jboss/blog/model/Post.java 2007-11-22 11:08:03 UTC (rev 132)
@@ -0,0 +1,151 @@
+package org.jboss.blog.model;
+
+import org.hibernate.annotations.CollectionOfElements;
+import org.hibernate.validator.Length;
+import org.hibernate.validator.NotEmpty;
+import org.hibernate.validator.NotNull;
+import org.hibernate.validator.Pattern;
+import org.jboss.blog.tools.StringTools;
+
+import javax.persistence.*;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Entity
+public class Post {
+ @Id
+ @GeneratedValue
+ @Column(updatable = false)
+ private Integer id;
+
+ @NotEmpty
+ @Length(max = 512)
+ private String title;
+
+ @NotEmpty
+ @Pattern(regex = "^[a-z0-9_]$")
+ @Column(unique = true)
+ private String titleAsLink;
+
+ @Lob
+ private String content;
+
+ @Length(max = 512)
+ @NotEmpty
+ private String link;
+
+ @Length(max = 512)
+ @NotEmpty
+ private String guid;
+
+ @Length(max = 256)
+ @NotEmpty
+ private String author;
+
+ @CollectionOfElements
+ private List<String> categories;
+
+ @Temporal(value = TemporalType.TIMESTAMP)
+ @NotNull
+ private Date published;
+
+ @Temporal(value = TemporalType.TIMESTAMP)
+ @NotNull
+ private Date modified;
+
+ @ManyToOne
+ @NotNull
+ private Blog blog;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ setTitleAsLink(StringTools.convertTitleToLink(title));
+ this.title = title;
+ }
+
+ public String getTitleAsLink() {
+ return titleAsLink;
+ }
+
+ public void setTitleAsLink(String titleAsLink) {
+ this.titleAsLink = titleAsLink;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getLink() {
+ return link;
+ }
+
+ public void setLink(String link) {
+ this.link = link;
+ }
+
+ public String getGuid() {
+ return guid;
+ }
+
+ public void setGuid(String guid) {
+ this.guid = guid;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(String author) {
+ this.author = author;
+ }
+
+ public List<String> getCategories() {
+ return categories;
+ }
+
+ public void setCategories(List<String> categories) {
+ this.categories = categories;
+ }
+
+ public Date getPublished() {
+ return published;
+ }
+
+ public void setPublished(Date published) {
+ this.published = published;
+ }
+
+ public Date getModified() {
+ return modified;
+ }
+
+ public void setModified(Date modified) {
+ this.modified = modified;
+ }
+
+ public Blog getBlog() {
+ return blog;
+ }
+
+ public void setBlog(Blog blog) {
+ this.blog = blog;
+ }
+}
Added: trunk/src/model/org/jboss/blog/model/RemoteFeed.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/RemoteFeed.java (rev 0)
+++ trunk/src/model/org/jboss/blog/model/RemoteFeed.java 2007-11-22 11:08:03 UTC (rev 132)
@@ -0,0 +1,24 @@
+package org.jboss.blog.model;
+
+import org.hibernate.validator.Length;
+import org.hibernate.validator.NotEmpty;
+
+import javax.persistence.Entity;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Entity
+public class RemoteFeed extends Feed {
+ @NotEmpty
+ @Length(max = 512)
+ private String link;
+
+ public String getLink() {
+ return link;
+ }
+
+ public void setLink(String link) {
+ this.link = link;
+ }
+}
Modified: trunk/view/home.xhtml
===================================================================
--- trunk/view/home.xhtml 2007-11-21 19:00:59 UTC (rev 131)
+++ trunk/view/home.xhtml 2007-11-22 11:08:03 UTC (rev 132)
@@ -1,4 +1,4 @@
-<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+<!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:s="http://jboss.com/products/seam/taglib"
@@ -11,24 +11,8 @@
<ui:define name="body">
<h:messages globalOnly="true" styleClass="message"/>
-
- <rich:panel>
- <f:facet name="header">Welcome!</f:facet>
- <p>This empty shell application includes:</p>
- <ul>
- <li>Ant build script</li>
- <li>Deployment to JBoss AS (EAR or WAR)</li>
- <li>Development and production profiles</li>
- <li>Integration testing using TestNG and Embedded JBoss</li>
- <li>JavaBean or EJB 3.0 Seam components</li>
- <li>JPA entity classes</li>
- <li>A configurable DataSource and JPA EntityManager</li>
- <li>Templated Facelets views</li>
- <li>RichFaces panels and tables</li>
- <li>Default CSS stylesheet</li>
- <li>Internationalization support</li>
- </ul>
- </rich:panel>
-
-</ui:define>
+
+ <s:link value="Manage feeds" view="/manage/index.xhtml" propagation="none" />
+
+</ui:define>
</ui:composition>
Added: trunk/view/manage/add.xhtml
===================================================================
--- trunk/view/manage/add.xhtml (rev 0)
+++ trunk/view/manage/add.xhtml 2007-11-22 11:08:03 UTC (rev 132)
@@ -0,0 +1,20 @@
+<!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:s="http://jboss.com/products/seam/taglib"
+ 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:rich="http://richfaces.org/rich"
+ template="../layout/template.xhtml">
+
+<ui:define name="body">
+
+ <h:messages globalOnly="true" styleClass="message"/>
+
+ <h1>Add a new feed</h1>
+
+ <s:link value="Add a new remote feed" view="/manage/add_remote.xhtml" />
+ <s:link value="Add a new aggregated feed" />
+</ui:define>
+</ui:composition>
Added: trunk/view/manage/add_remote.xhtml
===================================================================
--- trunk/view/manage/add_remote.xhtml (rev 0)
+++ trunk/view/manage/add_remote.xhtml 2007-11-22 11:08:03 UTC (rev 132)
@@ -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:s="http://jboss.com/products/seam/taglib"
+ 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:rich="http://richfaces.org/rich"
+ xmlns:a="http://richfaces.org/a4j"
+ template="../layout/template.xhtml">
+
+ <ui:define name="body">
+
+ <h:messages globalOnly="true" styleClass="message"/>
+
+ <h1>Add a new remote feed</h1>
+
+ <h:form>
+ <h:outputLabel>Remote feed address:</h:outputLabel> <br />
+ <h:inputText id="link" value="#{newRemoteFeed.link}" required="true">
+ <a:support event="onblur" reRender="linkMessage" ajaxSingle="true" bypassUpdates="true"/>
+ <s:validate />
+ </h:inputText>
+ <a:outputPanel id="linkMessage">
+ <h:message for="link" styleClass="error" />
+ </a:outputPanel>
+ <br />
+
+ <a:commandButton action="#{newRemoteFeed.parseFeed}" value="Read the feed" id="readFeed"
+ reRender="parseStatus" /> <br />
+
+ Status: <a:status stopText="n/a" startText="Wait ..." for="readFeed" /> <br />
+ <h:panelGroup id="parseStatus">
+ <h:panelGroup rendered="#{newRemoteFeed.parseOk == true}">
+ Parsing the feed was successfull! You can proceed.
+ </h:panelGroup>
+ <h:panelGroup rendered="#{newRemoteFeed.parseOk == false}">
+ Parsing the feed failed, because of the following exception:
+ #{newRemoteFeed.parseException.message}
+ </h:panelGroup>
+ <br />
+ </h:panelGroup>
+
+ <h:commandButton disabled="#{newRemoteFeed.parseOk != true}" value="Next" />
+ </h:form>
+ </ui:define>
+</ui:composition>
Added: trunk/view/manage/index.xhtml
===================================================================
--- trunk/view/manage/index.xhtml (rev 0)
+++ trunk/view/manage/index.xhtml 2007-11-22 11:08:03 UTC (rev 132)
@@ -0,0 +1,20 @@
+<!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:s="http://jboss.com/products/seam/taglib"
+ 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:rich="http://richfaces.org/rich"
+ template="../layout/template.xhtml">
+
+<ui:define name="body">
+
+ <h:messages globalOnly="true" styleClass="message"/>
+
+ <h1>Manage feeds</h1>
+
+ <s:link value="Add new feed" view="/manage/add.xhtml" propagation="start" />
+
+</ui:define>
+</ui:composition>
More information about the jboss-cvs-commits
mailing list