//
// Copyright 2009 Robin Komiwes, Bruno Verachten, Christophe Cordenier
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package com.wooki.pages;
import java.util.List;
import org.apache.tapestry5.EventConstants;
import org.apache.tapestry5.annotations.OnEvent;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SetupRender;
import org.apache.tapestry5.ioc.annotations.Inject;
import com.wooki.domain.model.Book;
import com.wooki.domain.model.User;
import com.wooki.services.SearchEngine;
/**
* This page search and display a list of wooki elements in function of the activation String.
*
* @author ccordenier
*/
public class SearchResult
{
@Inject
private SearchEngine searchService;
@Property
// @Validate("regexp=[^%]*")
private String queryString;
@Property
private List<Book> results;
@Property
private Book currentBook;
@Property
private User currentAuthor;
@Property
private int loopIdx;
/**
* Prepare search
*
* @param searchField
*/
@OnEvent(value = EventConstants.ACTIVATE)
public void search(String queryString)
{
this.queryString = queryString;
}
@OnEvent(value = EventConstants.PASSIVATE)
public String retrieveQuery()
{
return this.queryString;
}
@SetupRender
public void setupRender()
{
this.results = searchService.findBook(queryString);
}
public String getStyle()
{
return this.loopIdx == 0 ? "first" : null;
}
}