Changeset 967
- Timestamp:
- 12/08/10 13:47:56 (13 years ago)
- Location:
- vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo
- Files:
-
- 1 added
- 2 deleted
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/dao/SearchResultsDao.java
r770 r967 29 29 } 30 30 31 public SolrDocumentList getDocIdList(SolrQuery query) { 32 query.setFields(FacetConstants.FIELD_ID); 33 query.setFacet(false); 34 query.setStart(0); 35 query.setRows(Integer.MAX_VALUE); 36 QueryResponse queryResponse = fireQuery(query); 37 return queryResponse.getResults(); 38 } 39 31 40 } -
vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/AnchorPanel.java
r940 r967 13 13 class AnchorPanel extends Panel { 14 14 15 private static final long serialVersionUID = 1L; 16 15 17 public AnchorPanel(String id, String value) { 16 18 super(id); -
vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/DocumentLinkPanel.java
r801 r967 2 2 3 3 import org.apache.solr.common.SolrDocument; 4 import org.apache.wicket.PageParameters;5 4 import org.apache.wicket.markup.html.basic.Label; 6 5 import org.apache.wicket.markup.html.link.BookmarkablePageLink; 7 6 import org.apache.wicket.markup.html.panel.Panel; 8 7 import org.apache.wicket.model.IModel; 9 import org.apache.wicket.protocol.http.WicketURLEncoder; 8 9 import eu.clarin.cmdi.vlo.dao.FacetConstants; 10 10 11 11 public class DocumentLinkPanel extends Panel { … … 16 16 super(id, model); 17 17 SolrDocument doc = model.getObject(); 18 PageParameters pageParameters = query.getPageParameters(); 19 pageParameters.put(ShowResultPage.PARAM_DOC_ID, WicketURLEncoder.QUERY_INSTANCE.encode(doc.getFieldValue("id").toString())); 20 BookmarkablePageLink<ShowResultPage> docLink = new BookmarkablePageLink<ShowResultPage>("docLink", ShowResultPage.class, 21 pageParameters); 18 BookmarkablePageLink<ShowResultPage> docLink = ShowResultPage.createBookMarkableLink("docLink", query, doc.getFieldValue( 19 FacetConstants.FIELD_ID).toString()); 22 20 add(docLink); 23 Object nameValue = doc.getFirstValue( "name");21 Object nameValue = doc.getFirstValue(FacetConstants.FIELD_NAME); 24 22 String name = "<no name>"; 25 23 if (nameValue != null) { -
vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/FacetedSearchPage.java
r801 r967 97 97 searchResultList = new AjaxFallbackDefaultDataTable("searchResults", columns, new SolrDocumentDataProvider(query.getSolrQuery() 98 98 .getCopy()), 10); 99 99 100 add(searchResultList); 100 101 } -
vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/SearchPageQuery.java
r894 r967 13 13 14 14 import eu.clarin.cmdi.vlo.Configuration; 15 import eu.clarin.cmdi.vlo.dao.FacetConstants; 15 16 16 17 public class SearchPageQuery implements Serializable { … … 47 48 } 48 49 49 // public static String escapeQueryChars(String s) { //TODO PD copied from solr, removed whitespace escaping this fixes some of the issues I am having. Moet ik solr escapen en dan url escapen?50 // StringBuilder sb = new StringBuilder();51 // for (int i = 0; i < s.length(); i++) {52 // char c = s.charAt(i);53 // // These characters are part of the query syntax and must be escaped54 // if (c == '\\' || c == '+' || c == '-' || c == '!' || c == '(' || c == ')' || c == ':'55 // || c == '^' || c == '[' || c == ']' || c == '\"' || c == '{' || c == '}' || c == '~'56 // || c == '*' || c == '?' || c == '|' || c == '&' || c == ';'57 // ) {58 // sb.append('\\');59 // }60 // sb.append(c);61 // }62 // return sb.toString();63 // }64 65 50 private String escapeSolrQuery(String value) { 66 51 String result = null; … … 85 70 result.setRows(10); 86 71 result.setStart(0); 87 result.setFields( "name", "id");72 result.setFields(FacetConstants.FIELD_NAME, FacetConstants.FIELD_ID); 88 73 result.setFacet(true); 89 74 result.setFacetMinCount(1); … … 92 77 } 93 78 94 public SolrQuery getSolrQuery() { //TODO fix tests and check incoming parameter decoding in solr_server I think I sent it properly79 public SolrQuery getSolrQuery() { 95 80 return query; 96 81 } -
vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/ShowResultPage.html
r965 r967 10 10 </div> 11 11 <br><br> 12 <div wicket:id="nav" class="nav"></div> 13 <div wicket:id="test" class="resulttable">[test]</div> 12 <div class="prevNextLabels"> 13 <a wicket:id="prev">prev</a> 14 <a wicket:id="next">next</a> 15 </div> 14 16 <div class="resultAttributes"><table wicket:id="attributesTable"/></div> 15 17 </div> -
vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/ShowResultPage.java
r965 r967 1 1 package eu.clarin.cmdi.vlo.pages; 2 2 3 import org.apache.solr.common.SolrDocument; 4 import org.apache.solr.common.SolrDocumentList; 3 5 import org.apache.wicket.PageParameters; 4 6 import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; 5 7 import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; 6 8 import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; 9 import org.apache.wicket.extensions.markup.html.repeater.data.table.HeadersToolbar; 7 10 import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; 8 11 import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; 9 12 import org.apache.wicket.markup.ComponentTag; 10 13 import org.apache.wicket.markup.MarkupStream; 14 import org.apache.wicket.markup.html.basic.Label; 11 15 import org.apache.wicket.markup.html.basic.MultiLineLabel; 12 16 import org.apache.wicket.markup.html.link.BookmarkablePageLink; … … 15 19 import org.apache.wicket.model.IModel; 16 20 import org.apache.wicket.model.Model; 21 import org.apache.wicket.protocol.http.WicketURLEncoder; 17 22 18 23 import eu.clarin.cmdi.vlo.Configuration; 19 24 import eu.clarin.cmdi.vlo.StringUtils; 20 import java.util.ArrayList; 21 import java.util.Iterator; 22 23 import java.util.List; 24 import org.apache.solr.common.SolrDocument; 25 import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable; 26 import org.apache.wicket.extensions.markup.html.repeater.data.table.HeadersToolbar; 25 import eu.clarin.cmdi.vlo.dao.DaoLocator; 26 import eu.clarin.cmdi.vlo.dao.FacetConstants; 27 27 28 28 public class ShowResultPage extends BasePage { 29 29 30 30 public static final String PARAM_DOC_ID = "docId"; 31 SearchPageQuery query;32 DataTable table;33 DocumentAttributesDataProvider attributeProvider;34 AjaxFallbackDefaultDataTable t;35 31 36 32 public ShowResultPage(final PageParameters parameters) { 37 33 super(parameters); 38 34 String docId = getPageParameters().getString(PARAM_DOC_ID, null); 39 query = new SearchPageQuery(parameters);35 SearchPageQuery query = new SearchPageQuery(parameters); 40 36 BookmarkablePageLink backLink = new BookmarkablePageLink("backLink", FacetedSearchPage.class, query.getPageParameters()); 41 37 add(backLink); 42 38 String handle = docId.substring("test-".length()); 43 39 add(new ExternalLink("openBrowserLink", Configuration.getInstance().getIMDIBrowserUrl(handle))); 44 add SearchResults(docId);40 addPrevNextLabels(docId, query); 45 41 addAttributesTable(docId, query); 46 42 } 47 43 48 44 private void addAttributesTable(final String docId, SearchPageQuery query) { 49 attributeProvider = new DocumentAttributesDataProvider(docId); 50 t = new AjaxFallbackDefaultDataTable("attributesTable", createAttributesColumns(), attributeProvider, 25); 51 t.setTableBodyCss("attributesTbody"); 52 add(t); 45 DocumentAttributesDataProvider attributeProvider = new DocumentAttributesDataProvider(docId); 46 DataTable table = new DataTable("attributesTable", createAttributesColumns(), attributeProvider, 250); 47 table.setTableBodyCss("attributesTbody"); 48 table.addTopToolbar(new HeadersToolbar(table, null)); 49 add(table); 53 50 } 54 51 … … 83 80 } 84 81 85 @SuppressWarnings("serial") 86 private void addSearchResults(String docId) { 87 List<IColumn<SolrDocument>> columns = new ArrayList<IColumn<SolrDocument>>(); 88 columns.add(new AbstractColumn<SolrDocument>(new Model<String>("Results")) { 89 90 @Override 91 public void populateItem(Item<ICellPopulator<SolrDocument>> cellItem, String componentId, IModel<SolrDocument> rowModel) { 92 93 cellItem.add(new DocumentLinkPanel(componentId, rowModel, query)); 82 private void addPrevNextLabels(String docId, SearchPageQuery query) { 83 int index = -1; 84 SolrDocumentList docIdList = DaoLocator.getSearchResultsDao().getDocIdList(query.getSolrQuery().getCopy()); 85 for (int i = 0; i < docIdList.size(); i++) { 86 SolrDocument doc = docIdList.get(i); 87 if (doc.getFieldValue(FacetConstants.FIELD_ID).equals(docId)) { 88 index = i; 89 break; 94 90 } 95 }); 96 AjaxFallbackDefaultDataTable t = new AjaxFallbackDefaultDataTable("test", columns, new SolrDocumentDataProvider(query.getSolrQuery().getCopy()), 1); 97 add(t); 98 add(new PreviousNextPagingNavigator("nav", t, this, query)); 91 } 92 if (index > 0) { 93 String prevDocId = docIdList.get(index - 1).getFieldValue(FacetConstants.FIELD_ID).toString(); 94 BookmarkablePageLink<ShowResultPage> prev = createBookMarkableLink("prev", query, prevDocId); 95 add(prev); 96 } else { 97 add(new Label("prev", "prev")); 98 } 99 if (index < (docIdList.size() - 1) && index >= 0) { 100 String prevDocId = docIdList.get(index + 1).getFieldValue(FacetConstants.FIELD_ID).toString(); 101 BookmarkablePageLink<ShowResultPage> next = createBookMarkableLink("next", query, prevDocId); 102 add(next); 103 } else { 104 add(new Label("next", "next")); 105 } 99 106 } 100 107 101 public void setCurrentPage(int pagenumber) { 102 SolrDocumentDataProvider dataProvider = new SolrDocumentDataProvider(query.getSolrQuery().getCopy()); 103 Iterator it = dataProvider.iterator(pagenumber, 1); 104 if (it.hasNext()) { 105 SolrDocument doc = (SolrDocument) it.next(); 106 attributeProvider = new DocumentAttributesDataProvider(doc.getFieldValue("id").toString()); 107 this.remove("attributesTable"); 108 table = new DataTable("attributesTable", createAttributesColumns(), attributeProvider, 25); 109 table.setTableBodyCss("attributesTbody"); 110 table.addTopToolbar(new HeadersToolbar(table, null)); 111 add(table); 112 } 108 public static BookmarkablePageLink<ShowResultPage> createBookMarkableLink(String linkId, SearchPageQuery query, String docId) { 109 PageParameters pageParameters = query.getPageParameters(); 110 pageParameters.put(ShowResultPage.PARAM_DOC_ID, WicketURLEncoder.QUERY_INSTANCE.encode(docId)); 111 BookmarkablePageLink<ShowResultPage> docLink = new BookmarkablePageLink<ShowResultPage>(linkId, ShowResultPage.class, 112 pageParameters); 113 return docLink; 113 114 } 114 115 }
Note: See TracChangeset
for help on using the changeset viewer.