It will fix this one -- but only after we've hooked it up to the
client JavaScript. Should not take long.

On Mon, Jun 8, 2009 at 2:44 PM, Harry Metske<[email protected]> wrote:
> Andrew,
>
> should this patch have fixed
> https://issues.apache.org/jira/browse/JSPWIKI-510 (only for 3.0 of course) ?
>
> Harry
>
> 2009/6/8 <[email protected]>
>
>> Author: ajaquith
>> Date: Mon Jun  8 01:37:33 2009
>> New Revision: 782495
>>
>> URL: http://svn.apache.org/viewvc?rev=782495&view=rev
>> Log:
>> Search.jsp migrated to Stripes. SearchActionBean now provides searching
>> logic, including an ajaxSearch() method that filters results correctly (this
>> is not hooked up to the client JavaScript yet, but it should be
>> straightforward to do). Still some i18n cleanup to do.
>>
>> Modified:
>>    incubator/jspwiki/trunk/src/WebContent/Search.jsp
>>    incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js
>>    incubator/jspwiki/trunk/src/WebContent/templates/default/FindContent.jsp
>>    incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiContext.java
>>
>>  incubator/jspwiki/trunk/src/java/org/apache/wiki/action/SearchActionBean.java
>>
>>  incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/IfNoSearchResultsTag.java
>>
>>  incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultIteratorTag.java
>>
>>  incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultsSizeTag.java
>>
>>  incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultsTag.java
>>
>> Modified: incubator/jspwiki/trunk/src/WebContent/Search.jsp
>> URL:
>> http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/WebContent/Search.jsp?rev=782495&r1=782494&r2=782495&view=diff
>>
>> ==============================================================================
>> --- incubator/jspwiki/trunk/src/WebContent/Search.jsp (original)
>> +++ incubator/jspwiki/trunk/src/WebContent/Search.jsp Mon Jun  8 01:37:33
>> 2009
>> @@ -18,108 +18,12 @@
>>     specific language governing permissions and limitations
>>     under the License.
>>  --%>
>> -<%@ page import="org.apache.wiki.log.Logger" %>
>> -<%@ page import="org.apache.wiki.log.LoggerFactory" %>
>> -<%@ page import="org.apache.wiki.*" %>
>> -<%@ page import="org.apache.wiki.auth.*" %>
>> -<%@ page import="org.apache.wiki.auth.permissions.*" %>
>> -<%@ page import="java.util.*" %>
>> +<%@ taglib uri="http://stripes.sourceforge.net/stripes.tld"; prefix="s" %>
>>  <%@ page errorPage="/Error.jsp" %>
>> -<%@ page import="org.apache.wiki.search.*" %>
>> -<%@ taglib uri="http://jakarta.apache.org/jspwiki.tld"; prefix="wiki" %>
>> -<%@ taglib uri="http://stripes.sourceforge.net/stripes.tld";
>> prefix="stripes" %>
>> -<%@ page import="org.apache.wiki.util.TextUtil" %>
>> -<%@ page import="org.apache.wiki.api.WikiPage" %>
>> -<stripes:useActionBean beanclass="org.apache.wiki.action.SearchActionBean"
>> event="find" id="wikiActionBean" />
>> +<s:useActionBean beanclass="org.apache.wiki.action.SearchActionBean"
>> event="search" executeResolution="true" id="wikiActionBean" />
>> +<s:layout-render name="${templates['DefaultLayout.jsp']}">
>> +  <s:layout-component name="content">
>> +      <jsp:include page="${templates['FindContent.jsp']}" />
>> +  </s:layout-component>
>> +</s:layout-render>
>>
>> -<%!
>> -    Logger log = LoggerFactory.getLogger("JSPWikiSearch");
>> -%>
>> -
>> -<%
>> -    WikiEngine wiki = WikiEngine.getInstance( getServletConfig() );
>> -    // Create wiki context and check for authorization
>> -    WikiContext wikiContext = wiki.createContext( request,
>> WikiContext.FIND );
>> -    String pagereq = wikiContext.getPage().getName();
>> -
>> -    // Get the search results
>> -    Collection list = null;
>> -    String query = request.getParameter( "query");
>> -    String go    = request.getParameter("go");
>> -
>> -    if( query != null )
>> -    {
>> -        log.info("Searching for string "+query);
>> -
>> -        try
>> -        {
>> -            list = wiki.findPages( query );
>> -
>> -            //
>> -            //  Filter down to only those that we actually have a
>> permission to view
>> -            //
>> -            AuthorizationManager mgr = wiki.getAuthorizationManager();
>> -
>> -            ArrayList filteredList = new ArrayList();
>> -
>> -            for( Iterator i = list.iterator(); i.hasNext(); )
>> -            {
>> -                SearchResult r = (SearchResult)i.next();
>> -
>> -                WikiPage p = r.getPage();
>> -
>> -                PagePermission pp = new PagePermission( p,
>> PagePermission.VIEW_ACTION );
>> -
>> -                try
>> -                {
>> -                    if( mgr.checkPermission( wikiContext.getWikiSession(),
>> pp ) )
>> -                    {
>> -                        filteredList.add( r );
>> -                    }
>> -                }
>> -                catch( Exception e ) { log.error( "Searching for page "+p,
>> e ); }
>> -            }
>> -
>> -            pageContext.setAttribute( "searchresults",
>> -                                      filteredList,
>> -                                      PageContext.REQUEST_SCOPE );
>> -        }
>> -        catch( Exception e )
>> -        {
>> -            wikiContext.getWikiSession().addMessage( e.getMessage() );
>> -        }
>> -
>> -        query = TextUtil.replaceEntities( query );
>> -
>> -        pageContext.setAttribute( "query",
>> -                                  query,
>> -                                  PageContext.REQUEST_SCOPE );
>> -
>> -        //
>> -        //  Did the user click on "go"?
>> -        //
>> -        if( go != null )
>> -        {
>> -            if( list != null && list.size() > 0 )
>> -            {
>> -                SearchResult sr = (SearchResult) list.iterator().next();
>> -
>> -                WikiPage wikiPage = sr.getPage();
>> -
>> -                String url = wikiContext.getViewURL( wikiPage.getName() );
>> -
>> -                response.sendRedirect( url );
>> -
>> -                return;
>> -            }
>> -        }
>> -    }
>> -
>> -    // Set the content type and include the response content
>> -    response.setContentType("text/html;
>> charset="+wiki.getContentEncoding() );
>> -    String contentPage = wiki.getTemplateManager().findJSP( pageContext,
>> -
>>  wikiContext.getTemplate(),
>> -
>>  "ViewTemplate.jsp" );
>> -%><wiki:Include page="<%=contentPage%>" /><%
>> -    log.debug("SEARCH COMPLETE");
>> -%>
>>
>> Modified: incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js
>> URL:
>> http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js?rev=782495&r1=782494&r2=782495&view=diff
>>
>> ==============================================================================
>> --- incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js
>> (original)
>> +++ incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js Mon
>> Jun  8 01:37:33 2009
>> @@ -931,9 +931,9 @@
>>                        if (option.value == match) option.selected = true;
>>                });
>>
>> -               new Ajax(Wiki.TemplateUrl+'AJAXSearch.jsp', {
>> -                       postBody: $('searchform2').toQueryString(),
>> -                       update: 'searchResult2',
>> +               new Ajax(Wiki.BasePath+'Search.action', {
>> +                       postBody:
>> "ajaxSearch=&"+$('searchform2').toQueryString(),
>> +                       update: 'searchResult2',
>>                        method: 'post',
>>                        onComplete: function() {
>>                                $('spin').hide();
>>
>> Modified:
>> incubator/jspwiki/trunk/src/WebContent/templates/default/FindContent.jsp
>> URL:
>> http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/WebContent/templates/default/FindContent.jsp?rev=782495&r1=782494&r2=782495&view=diff
>>
>> ==============================================================================
>> ---
>> incubator/jspwiki/trunk/src/WebContent/templates/default/FindContent.jsp
>> (original)
>> +++
>> incubator/jspwiki/trunk/src/WebContent/templates/default/FindContent.jsp Mon
>> Jun  8 01:37:33 2009
>> @@ -27,24 +27,18 @@
>>  <%@ taglib uri="http://java.sun.com/jsp/jstl/core"; prefix="c" %>
>>  <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"; prefix="fmt" %>
>>  <%@ page import="javax.servlet.jsp.jstl.fmt.*" %>
>> -<%@ taglib uri="http://stripes.sourceforge.net/stripes.tld";
>> prefix="stripes" %>
>> +<%@ taglib uri="http://stripes.sourceforge.net/stripes.tld"; prefix="s" %>
>>
>>  <wiki:TabbedSection>
>>  <wiki:Tab id="findcontent" titleKey="find.tab" accesskey="s">
>>
>> -<form action="<wiki:Link format='url' jsp='Search.jsp'/>"
>> -       class="wikiform"
>> -          id="searchform2"
>> -         accept-charset="<wiki:ContentEncoding/>">
>> -
>> +<s:form beanclass="org.apache.wiki.action.SearchActionBean"
>> class="wikiform"
>> +    id="searchform2" acceptcharset="UTF-8">
>> +
>>   <h4><fmt:message key="find.input" /></h4>
>>   <p>
>> -    <input type="text"
>> -           name="query" id="query2"
>> -          value="<c:out value='${query}'/>"
>> -           size="32" />
>> -
>> -    <input type="checkbox" name="details" id="details" <c:if
>> test='${param.details == "on"}'>checked='checked'</c:if> />
>> +    <s:text name="query" id="query2" size="32" />
>> +    <s:checkbox name="details" id="details" />
>>     <fmt:message key="find.details" />
>>
>>     <select name="scope" id="scope">
>> @@ -55,16 +49,83 @@
>>       <option value="attachment:" <c:if test='${param.scope eq
>> "attachment:"}'>selected="selected"</c:if> ><fmt:message
>> key='find.scope.attach' /></option>
>>     </select>
>>
>> -       <input type="submit" name="ok" id="ok" value="<fmt:message
>> key="find.submit.find" />" />
>> -       <input type="submit" name="go" id="go" value="<fmt:message
>> key="find.submit.go" />" />
>> -    <input type="hidden" name="start" id="start" value="0" />
>> -    <input type="hidden" name="maxitems" id="maxitems" value="20" />
>> +    <s:submit name="search" id="ok" value="<fmt:message
>> key='find.submit.find' />" />
>> +    <s:submit name="go" id="go" value="<fmt:message key='find.submit.go'
>> />" />
>> +    <s:hidden name="start" id="start" value="0" />
>> +    <s:hidden name="maxItems" id="maxitems" value="20" />
>>
>>     <span id="spin" class="spin"
>> style="position:absolute;display:none;"></span>
>>   </p>
>> -</form>
>> +</s:form>
>> +
>> +<div id="searchResult2">
>> +  <wiki:SearchResults>
>> +
>> +    <h4><fmt:message key="find.heading.results"><fmt:param><c:out
>> value="${wikiActionBean.query}" /></fmt:param></fmt:message></h4>
>> +    <p>
>> +      <fmt:message key="find.externalsearch" />
>> +      <a class="external" href="http://www.google.com/search?q=<c:out
>> value='${wikiActionBean.query}' />" title="Google Search '<c:out
>> value='${wikiActionBean.query}' />'" target="_blank">Google</a><img
>> class="outlink" src="images/out.png" alt="" />
>> +      |
>> +      <a class="external" href="
>> http://en.wikipedia.org/wiki/Special:Search?search=<c:out
>> value='${wikiActionBean.query}' />" title="Wikipedia Search '<c:out
>> value='${wikiActionBean.query}' />'" target="_blank">Wikipedia</a><img
>> class="outlink" src="images/out.png" alt="" />
>> +    </p>
>> +
>> +    <wiki:SetPagination start="${wikiActionBean.start}"
>> total="${wikiActionBean.resultsCount}" pagesize="20" maxlinks="9"
>> fmtkey="info.pagination" onclick="$('start').value=%s;
>> SearchBox.runfullsearch();" />
>> +
>> +    <div class="graphBars">
>> +      <div class="zebra-table">
>> +        <table class="wikitable">
>> +
>> +          <tr>
>> +             <th align="left"><fmt:message key="find.results.page" /></th>
>> +             <th align="left"><fmt:message key="find.results.score"
>> /></th>
>> +          </tr>
>> +
>> +          <wiki:SearchResultIterator id="searchref"
>> start="${wikiActionBean.start}" maxItems="${wikiActionBean.maxItems}">
>> +          <tr>
>> +            <td><wiki:LinkTo><wiki:PageName/></wiki:LinkTo></td>
>> +            <td><span class="gBar"><%= searchref.getScore() %></span></td>
>> +          </tr>
>> +
>> +          <c:if test="${wikiActionBean.details == 'true'}">
>> +  <%
>> +            String[] contexts = searchref.getContexts();
>> +            if( (contexts != null) && (contexts.length > 0) )
>> +            {
>> +  %>
>> +          <tr class="odd">
>> +            <td colspan="2">
>> +              <div class="fragment">
>> +  <%
>> +              for (int i = 0; i < contexts.length; i++)
>> +              {
>> +  %>
>> +                <%= (i > 0 ) ? "<span class='fragment_ellipsis'> ...
>> </span>" : ""  %>
>> +                <%= contexts[i]  %>
>> +  <%
>> +              }
>> +  %>
>> +               </div>
>> +             </td>
>> +           </tr>
>> +  <%
>> +            }
>> +  %>
>> +          </c:if><%-- details --%>
>> +        </wiki:SearchResultIterator>
>> +
>> +        <wiki:IfNoSearchResults>
>> +          <tr>
>> +            <td class="nosearchresult" colspan="2"><fmt:message
>> key="find.noresults" /></td>
>> +          </tr>
>> +        </wiki:IfNoSearchResults>
>> +
>> +        </table>
>> +      </div>
>> +    </div>
>> +    ${pagination}
>>
>> -<div id="searchResult2"><wiki:Include page="AJAXSearch.jsp" /></div>
>> +  </wiki:SearchResults>
>> +</div>
>>
>>  </wiki:Tab>
>>
>>
>> Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiContext.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiContext.java?rev=782495&r1=782494&r2=782495&view=diff
>>
>> ==============================================================================
>> --- incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiContext.java
>> (original)
>> +++ incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiContext.java Mon
>> Jun  8 01:37:33 2009
>> @@ -103,7 +103,7 @@
>>     public static final String    COMMENT  = HandlerInfo.getHandlerInfo(
>> EditActionBean.class, "comment" ).getRequestContext();
>>
>>     /** User is searching for content. */
>> -    public static final String    FIND     = HandlerInfo.getHandlerInfo(
>> SearchActionBean.class, "find" ).getRequestContext();
>> +    public static final String    FIND     = HandlerInfo.getHandlerInfo(
>> SearchActionBean.class, "search" ).getRequestContext();
>>
>>     /** User wishes to create a new group */
>>     public static final String    CREATE_GROUP =
>> HandlerInfo.getHandlerInfo( GroupActionBean.class, "create"
>> ).getRequestContext();
>>
>> Modified:
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/action/SearchActionBean.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/action/SearchActionBean.java?rev=782495&r1=782494&r2=782495&view=diff
>>
>> ==============================================================================
>> ---
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/action/SearchActionBean.java
>> (original)
>> +++
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/action/SearchActionBean.java
>> Mon Jun  8 01:37:33 2009
>> @@ -21,18 +21,191 @@
>>
>>  package org.apache.wiki.action;
>>
>> -import org.apache.wiki.ui.stripes.WikiRequestContext;
>> +import java.util.ArrayList;
>> +import java.util.Collection;
>> +import java.util.Collections;
>> +import java.util.List;
>>
>>  import net.sourceforge.stripes.action.*;
>> +import net.sourceforge.stripes.ajax.JavaScriptResolution;
>> +
>> +import org.apache.wiki.WikiEngine;
>> +import org.apache.wiki.api.WikiPage;
>> +import org.apache.wiki.auth.AuthorizationManager;
>> +import org.apache.wiki.auth.permissions.PagePermission;
>> +import org.apache.wiki.log.Logger;
>> +import org.apache.wiki.log.LoggerFactory;
>> +import org.apache.wiki.search.SearchResult;
>> +import org.apache.wiki.ui.stripes.WikiRequestContext;
>>
>> +/**
>> + * Searches the WikiPage collection for a given wiki.
>> + */
>> �...@urlbinding( "/Search.jsp" )
>>  public class SearchActionBean extends AbstractActionBean
>>  {
>> +    private Logger log = LoggerFactory.getLogger("JSPWikiSearch");
>> +
>> +    public static final Collection<SearchResult> NO_RESULTS =
>> Collections.emptyList();
>> +
>> +    private Collection<SearchResult> m_results = NO_RESULTS;
>> +
>> +    private String m_query = null;
>> +
>> +    private int m_maxItems = 20;
>> +
>> +    private int m_start = 0;
>> +
>> +    private boolean m_details = false;
>> +
>> +    public boolean getDetails()
>> +    {
>> +        return m_details;
>> +    }
>> +
>> +    /**
>> +     * Sets the search results so that details for each result are
>> displayed.
>> +     * @param details whether details should be displayed
>> +     */
>> +    public void setDetails( boolean details )
>> +    {
>> +        m_details = details;
>> +    }
>> +
>> +    public int getMaxItems()
>> +    {
>> +        return m_maxItems;
>> +    }
>> +
>> +    public void setMaxItems( int maxItems )
>> +    {
>> +        m_maxItems = maxItems;
>> +    }
>> +
>> +    public int getStart()
>> +    {
>> +        return m_start;
>> +    }
>> +
>> +    public void setStart( int start )
>> +    {
>> +        m_start = start;
>> +    }
>> +
>> +    /**
>> +     * Returns the query string for the search.
>> +     *
>> +     * @return the query string
>> +     */
>> +    public String getQuery()
>> +    {
>> +        return m_query;
>> +    }
>> +
>> +    /**
>> +     * Returns the results of the search.
>> +     *
>> +     * @return the results
>> +     */
>> +    public Collection<SearchResult> getResults()
>> +    {
>> +        return m_results;
>> +    }
>> +
>> +    /**
>> +     * Returns the number of items returned by the current search.
>> +     * @return the number of items
>> +     */
>> +    public int getResultsCount()
>> +    {
>> +        return m_results.size();
>> +    }
>> +
>> +    /**
>> +     * Performs a search and returns the results as a list. For a given
>> WikiPage to
>> +     * be included in the results, the user must have permission to view
>> it.
>> +     * If the underlying providers encounter an abnormal IOException or
>> other error,
>> +     * it will be added to the ActionBeanContext's validation messages
>> collection.
>> +     * @param query the query
>> +     * @return the results
>> +     */
>> +    private List<SearchResult> doSearch( String query )
>> +    {
>> +        log.info("Searching with query '"+ query + "'.");
>> +        WikiEngine engine = getContext().getEngine();
>> +        AuthorizationManager mgr = engine.getAuthorizationManager();
>> +
>> +        //
>> +        //  Filter down to only those that we actually have a permission
>> to view
>> +        //
>> +        List<SearchResult> filteredResults = new
>> ArrayList<SearchResult>();
>> +        try
>> +        {
>> +            List<SearchResult> results = engine.findPages( query );
>> +            for( SearchResult result : results )
>> +            {
>> +                WikiPage page = result.getPage();
>> +                PagePermission permission = new PagePermission( page,
>> PagePermission.VIEW_ACTION );
>> +                try
>> +                {
>> +                    if( mgr.checkPermission(
>> getContext().getWikiSession(), permission ) )
>> +                    {
>> +                        filteredResults.add( result );
>> +                    }
>> +                }
>> +                catch( Exception e ) { log.error( "Searching for page " +
>> page, e ); }
>> +            }
>> +        }
>> +        catch( Exception e )
>> +        {
>> +            log.debug( "Could not search using query '" + query + "'.", e
>> );
>> +            Message message = new SimpleMessage( e.getMessage() );
>> +            getContext().getMessages().add( message );
>> +            e.printStackTrace();
>> +        }
>> +        return filteredResults;
>> +    }
>> +
>> +    /**
>> +     * Sets the query string for the search.
>> +     *
>> +     * @param query the query string
>> +     */
>> +    public void setQuery( String query )
>> +    {
>> +        m_query = query;
>> +    }
>> +
>> +    /**
>> +     * Searches the wiki using the query string set for this
>> +     * ActionBean. Search results are made available to callers via the
>> +     * {...@link #getResults()} method (and EL expression
>> +     * <code>$wikiActionBean.results</code>).
>> +     *
>> +     * @return always returns a {...@link ForwardResolution} to
>> +     *         <code>/Search.jsp</code>.
>> +     */
>>     @DefaultHandler
>> -   �...@handlesevent( "find" )
>> +   �...@handlesevent( "search" )
>>     @WikiRequestContext( "find" )
>> -    public Resolution view()
>> +    public Resolution search()
>>     {
>> +        m_results = m_query == null ? NO_RESULTS : doSearch( m_query );
>>         return new ForwardResolution( "/Search.jsp" );
>>     }
>> +
>> +    /**
>> +     * Using AJAX, searches a specified wiki space using the query string
>> set for this
>> +     * ActionBean. Results are streamed back to the client as an array of
>> JSON-encoded
>> +     * SearchResult objects.
>> +     *
>> +     * @return always returns a {...@link JavaScriptResolution} containing
>> the
>> +     * results; this may be a zero-length array
>> +     */
>> +   �...@handlesevent( "ajaxSearch" )
>> +    public Resolution ajaxSearch()
>> +    {
>> +        m_results = m_query == null ? NO_RESULTS : doSearch( m_query );
>> +        return new JavaScriptResolution( m_results );
>> +    }
>>  }
>>
>> Modified:
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/IfNoSearchResultsTag.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/IfNoSearchResultsTag.java?rev=782495&r1=782494&r2=782495&view=diff
>>
>> ==============================================================================
>> ---
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/IfNoSearchResultsTag.java
>> (original)
>> +++
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/IfNoSearchResultsTag.java
>> Mon Jun  8 01:37:33 2009
>> @@ -22,8 +22,8 @@
>>
>>  import java.io.IOException;
>>  import java.util.Collection;
>> -import javax.servlet.jsp.PageContext;
>>
>> +import org.apache.wiki.action.SearchActionBean;
>>  import org.apache.wiki.search.SearchResult;
>>
>>  /**
>> @@ -36,17 +36,18 @@
>>  {
>>     private static final long serialVersionUID = 0L;
>>
>> -   �...@suppresswarnings("unchecked")
>>     public final int doWikiStartTag()
>>         throws IOException
>>     {
>> -        Collection<SearchResult> list =
>> (Collection<SearchResult>)pageContext.getAttribute( "searchresults",
>> -
>>  PageContext.REQUEST_SCOPE );
>> -        if( list == null || list.size() == 0 )
>> -        {
>> -            return EVAL_BODY_INCLUDE;
>> +        if ( m_wikiActionBean != null && m_wikiActionBean instanceof
>> SearchActionBean )
>> +        {
>> +            boolean emptyQuery =
>> ((SearchActionBean)m_wikiActionBean).getQuery() == null;
>> +            Collection<SearchResult> results =
>> ((SearchActionBean)m_wikiActionBean).getResults();
>> +            if ( emptyQuery || results.size() > 0 )
>> +            {
>> +                return SKIP_BODY;
>> +            }
>>         }
>> -
>> -        return SKIP_BODY;
>> +        return EVAL_BODY_INCLUDE;
>>     }
>>  }
>>
>> Modified:
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultIteratorTag.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultIteratorTag.java?rev=782495&r1=782494&r2=782495&view=diff
>>
>> ==============================================================================
>> ---
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultIteratorTag.java
>> (original)
>> +++
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultIteratorTag.java
>> Mon Jun  8 01:37:33 2009
>> @@ -20,12 +20,12 @@
>>  */
>>  package org.apache.wiki.tags;
>>
>> -import java.util.ArrayList;
>>  import java.util.Collection;
>>
>> -import javax.servlet.jsp.PageContext;
>> -
>> +import org.apache.wiki.action.SearchActionBean;
>> +import org.apache.wiki.action.WikiActionBean;
>>  import org.apache.wiki.search.SearchResult;
>> +import org.apache.wiki.ui.stripes.WikiInterceptor;
>>
>>  /**
>>  * Iterator tag for the current search results, as identified by a
>> @@ -36,19 +36,17 @@
>>     private static final long serialVersionUID = 1L;
>>
>>     /**
>> -     * \ Returns the list of SearchResults to iterate over.
>> +     * Returns the list of SearchResults to iterate over.
>>      */
>>     @Override
>> -   �...@suppresswarnings( "unchecked" )
>>     protected Collection<SearchResult> initItems()
>>     {
>> -        Collection<SearchResult> results = (Collection<SearchResult>)
>> pageContext.getAttribute( "searchresults",
>> -
>>                      PageContext.REQUEST_SCOPE );
>> -        if( results == null )
>> +        WikiActionBean actionBean = WikiInterceptor.findActionBean(
>> pageContext );
>> +        if ( actionBean != null && actionBean instanceof SearchActionBean
>> )
>>         {
>> -            return new ArrayList<SearchResult>();
>> +            return ((SearchActionBean)actionBean).getResults();
>>         }
>> -        return results;
>> +        return SearchActionBean.NO_RESULTS;
>>     }
>>
>>     /**
>>
>> Modified:
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultsSizeTag.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultsSizeTag.java?rev=782495&r1=782494&r2=782495&view=diff
>>
>> ==============================================================================
>> ---
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultsSizeTag.java
>> (original)
>> +++
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultsSizeTag.java
>> Mon Jun  8 01:37:33 2009
>> @@ -22,8 +22,8 @@
>>
>>  import java.io.IOException;
>>  import java.util.Collection;
>> -import javax.servlet.jsp.PageContext;
>>
>> +import org.apache.wiki.action.SearchActionBean;
>>  import org.apache.wiki.search.SearchResult;
>>
>>  /**
>> @@ -37,17 +37,14 @@
>>  {
>>     private static final long serialVersionUID = 0L;
>>
>> -   �...@suppresswarnings("unchecked")
>>     public final int doWikiStartTag()
>>         throws IOException
>>     {
>> -        Collection<SearchResult> list =
>> (Collection<SearchResult>)pageContext.getAttribute( "searchresults",
>> -
>>  PageContext.REQUEST_SCOPE );
>> -        if( list != null )
>> +        if ( m_wikiActionBean != null && m_wikiActionBean instanceof
>> SearchActionBean )
>>         {
>> -            pageContext.getOut().print( list.size() );
>> +            Collection<SearchResult> results =
>> ((SearchActionBean)m_wikiActionBean).getResults();
>> +            pageContext.getOut().print( results.size() );
>>         }
>> -
>>         return SKIP_BODY;
>>     }
>>  }
>>
>> Modified:
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultsTag.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultsTag.java?rev=782495&r1=782494&r2=782495&view=diff
>>
>> ==============================================================================
>> ---
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultsTag.java
>> (original)
>> +++
>> incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/SearchResultsTag.java
>> Mon Jun  8 01:37:33 2009
>> @@ -21,10 +21,10 @@
>>  package org.apache.wiki.tags;
>>
>>  import java.io.IOException;
>> -import java.util.Collection;
>> +
>>  import javax.servlet.jsp.PageContext;
>>
>> -import org.apache.wiki.search.SearchResult;
>> +import org.apache.wiki.action.SearchActionBean;
>>
>>  /**
>>  *  Includes the body content, if there are any search results.
>> @@ -36,16 +36,16 @@
>>  {
>>     private static final long serialVersionUID = 0L;
>>
>> -   �...@suppresswarnings("unchecked")
>>     public final int doWikiStartTag()
>>         throws IOException
>>     {
>> -        Collection<SearchResult> list =
>> (Collection<SearchResult>)pageContext.getAttribute( "searchresults",
>> -
>>  PageContext.REQUEST_SCOPE );
>> -
>> -        if( list != null )
>> +        if ( m_wikiActionBean != null && m_wikiActionBean instanceof
>> SearchActionBean )
>>         {
>> -            return EVAL_BODY_INCLUDE;
>> +            boolean emptyQuery =
>> ((SearchActionBean)m_wikiActionBean).getQuery() == null;
>> +            if ( !emptyQuery )
>> +            {
>> +                return EVAL_BODY_INCLUDE;
>> +            }
>>         }
>>
>>         String message = (String)pageContext.getAttribute( "err",
>>
>>
>>
>

Reply via email to