[jboss-cvs] JBossBlog SVN: r155 - in trunk: src/action/org/jboss/blog/session/search and 5 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Dec 5 13:01:08 EST 2007
Author: adamw
Date: 2007-12-05 13:01:08 -0500 (Wed, 05 Dec 2007)
New Revision: 155
Added:
trunk/src/action/org/jboss/blog/session/tools/
trunk/src/action/org/jboss/blog/session/tools/StringToolsBean.java
trunk/view/common/post.xhtml
Removed:
trunk/src/action/org/jboss/blog/session/search/SummaryBridge.java
Modified:
trunk/src/action/org/jboss/blog/session/search/PostSearchBean.java
trunk/src/model/org/jboss/blog/model/Post.java
trunk/view/search/search.xhtml
trunk/view/view/feed.xhtml
trunk/view/view/post.xhtml
Log:
Modified: trunk/src/action/org/jboss/blog/session/search/PostSearchBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/search/PostSearchBean.java 2007-12-05 16:22:23 UTC (rev 154)
+++ trunk/src/action/org/jboss/blog/session/search/PostSearchBean.java 2007-12-05 18:01:08 UTC (rev 155)
@@ -87,8 +87,8 @@
new StandardAnalyzer());
Query luceneQuery = parser.parse(getQuery());
- FullTextQuery fullTextQuery = entityManager.createFullTextQuery(luceneQuery);
- fullTextQuery.setProjection(FullTextQuery.SCORE, "title", "titleAsId", "summary");
+ FullTextQuery fullTextQuery = entityManager.createFullTextQuery(luceneQuery, Post.class);
+ fullTextQuery.setProjection(FullTextQuery.SCORE, FullTextQuery.THIS);
return fullTextQuery;
}
Deleted: trunk/src/action/org/jboss/blog/session/search/SummaryBridge.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/search/SummaryBridge.java 2007-12-05 16:22:23 UTC (rev 154)
+++ trunk/src/action/org/jboss/blog/session/search/SummaryBridge.java 2007-12-05 18:01:08 UTC (rev 155)
@@ -1,26 +0,0 @@
-package org.jboss.blog.session.search;
-
-import org.hibernate.search.bridge.TwoWayStringBridge;
-import org.jboss.blog.tools.StringTools;
-
-/**
- * @author <a href="mailto:adam at warski.org">Adam Warski</a>
- */
-public class SummaryBridge implements TwoWayStringBridge {
- public String objectToString(Object o) {
- if (o == null) {
- return null;
- }
-
- String s = o.toString();
- if (s.length() > 300) {
- s = s.substring(0, 300);
- }
-
- return StringTools.stripHtml(s) + " ...";
- }
-
- public Object stringToObject(String s) {
- return s;
- }
-}
Added: trunk/src/action/org/jboss/blog/session/tools/StringToolsBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/tools/StringToolsBean.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/tools/StringToolsBean.java 2007-12-05 18:01:08 UTC (rev 155)
@@ -0,0 +1,30 @@
+package org.jboss.blog.session.tools;
+
+import org.jboss.blog.tools.StringTools;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.AutoCreate;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Name("stringTools")
+ at Scope(ScopeType.APPLICATION)
+ at AutoCreate
+public class StringToolsBean {
+ public String createSummary(String s) {
+ if (s == null) {
+ return null;
+ }
+
+ s = StringTools.stripHtml(s);
+
+ if (s.length() > 1000) {
+ s = s.substring(0, 1000);
+ return s + "...";
+ } else {
+ return s;
+ }
+ }
+}
Modified: trunk/src/model/org/jboss/blog/model/Post.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/Post.java 2007-12-05 16:22:23 UTC (rev 154)
+++ trunk/src/model/org/jboss/blog/model/Post.java 2007-12-05 18:01:08 UTC (rev 155)
@@ -6,7 +6,6 @@
import org.hibernate.validator.NotNull;
import org.hibernate.validator.Pattern;
import org.jboss.blog.session.search.StripHtmlBridge;
-import org.jboss.blog.session.search.SummaryBridge;
import org.jboss.blog.tools.StringTools;
import javax.persistence.*;
@@ -27,22 +26,17 @@
@NotEmpty
@Length(max = 512)
- @Field(store = Store.YES)
+ @Field
@Boost(2)
private String title;
@NotEmpty
@Pattern(regex = "^[a-z0-9_]*$")
@Column(unique = true)
- @Field(store = Store.YES, index = Index.UN_TOKENIZED)
private String titleAsId;
@Lob
- @Fields( {
- @Field(bridge = @FieldBridge(impl = StripHtmlBridge.class)),
- @Field(name = "summary", index = Index.UN_TOKENIZED, store = Store.YES,
- bridge = @FieldBridge(impl = SummaryBridge.class))
- } )
+ @Field(bridge = @FieldBridge(impl = StripHtmlBridge.class))
private String content;
@Length(max = 512)
Added: trunk/view/common/post.xhtml
===================================================================
--- trunk/view/common/post.xhtml (rev 0)
+++ trunk/view/common/post.xhtml 2007-12-05 18:01:08 UTC (rev 155)
@@ -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: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">
+ <rich:panel>
+ <f:facet name="header">
+ #{post.title}, published on #{post.published} by #{post.author} #{additionalHeader}
+ </f:facet>
+
+ <s:link value="View on separate page »" view="/view/post.xhtml" propagation="none"
+ rendered="#{showLinkToSeparatePage}">
+ <f:param name="post" value="#{post.titleAsId}" />
+ </s:link>
+
+ <br />
+
+ <h:outputText value="#{post.content}" escape="false" rendered="#{!showSummary}" />
+
+ <h:outputText value="#{stringTools.createSummary(post.content)}" rendered="#{showSummary}" />
+ </rich:panel>
+</ui:composition>
\ No newline at end of file
Modified: trunk/view/search/search.xhtml
===================================================================
--- trunk/view/search/search.xhtml 2007-12-05 16:22:23 UTC (rev 154)
+++ trunk/view/search/search.xhtml 2007-12-05 18:01:08 UTC (rev 155)
@@ -27,13 +27,13 @@
</ui:include>
<ui:repeat var="result" value="#{postSearch.results}">
- <p>
- <s:link view="/view/post.xhtml" value="#{result[1]}">
- <f:param name="post" value="#{result[2]}" />
- </s:link> (#{postSearch.formatScore(result[0])}%)
- <br />
- #{result[3]}
- </p>
+ <ui:include src="../common/post.xhtml">
+ <ui:param name="post" value="#{result[1]}" />
+ <ui:param name="showLinkToSeparatePage" value="true" />
+ <ui:param name="showSummary" value="true" />
+ <ui:param name="additionalHeader"
+ value="(#{postSearch.formatScore(result[0])}%)" />
+ </ui:include>
</ui:repeat>
</s:div>
</ui:define>
Modified: trunk/view/view/feed.xhtml
===================================================================
--- trunk/view/view/feed.xhtml 2007-12-05 16:22:23 UTC (rev 154)
+++ trunk/view/view/feed.xhtml 2007-12-05 18:01:08 UTC (rev 155)
@@ -30,19 +30,12 @@
</ui:include>
<a:repeat var="post" value="#{feedView.posts}" rows="#{feedView.feed.maxPostsOnPage}">
- <rich:panel>
- <f:facet name="header">
- #{post.title}, published on #{post.published}
- </f:facet>
- <s:link value="View on separate page »" view="/view/post.xhtml" propagation="none">
- <f:param name="post" value="#{post.titleAsId}" />
- </s:link>
+ <ui:include src="../common/post.xhtml">
+ <ui:param name="post" value="#{post}" />
+ <ui:param name="showLinkToSeparatePage" value="true" />
+ <ui:param name="showSummary" value="false" />
+ </ui:include>
- <hr />
-
- <h:outputText value="#{post.content}" escape="false" />
- </rich:panel>
-
<br />
</a:repeat>
</ui:define>
Modified: trunk/view/view/post.xhtml
===================================================================
--- trunk/view/view/post.xhtml 2007-12-05 16:22:23 UTC (rev 154)
+++ trunk/view/view/post.xhtml 2007-12-05 18:01:08 UTC (rev 155)
@@ -23,12 +23,10 @@
onclick="if (!confirm('Are you sure you want to delete this post?')) return false"/>
</p>
- <rich:panel>
- <f:facet name="header">
- #{postView.post.title}
- </f:facet>
-
- <h:outputText value="#{postView.post.content}" escape="false" />
- </rich:panel>
+ <ui:include src="../common/post.xhtml">
+ <ui:param name="post" value="#{post}" />
+ <ui:param name="showLinkToSeparatePage" value="false" />
+ <ui:param name="showSummary" value="false" />
+ </ui:include>
</ui:define>
</ui:composition>
More information about the jboss-cvs-commits
mailing list