[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 &#187;" 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 &#187;" 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