<%@ page import="java.util.*" %> <%@ page import="org.w3c.dom.Node" %> <%@ page import="org.jafer.query.QueryBuilder" %> <%@ page import="org.jafer.record.Field" %> <%@ page import="org.mdcog.config.MdcConfig" %> <%@ page import="org.mdcog.jafer.JaferClient" %> <%@ page import="org.mdcog.db.Persistor" %> <%@ page import="org.mdcog.databeans.ResultDisplayRow" %> <%@ page errorPage="error.jsp" %> <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/displaytag-12.tld" prefix="display" %> <%! // Declarations public String getField(Map map, String fieldName) { String field = (String)map.get(fieldName); if (field == null) field = ""; return field; } %><% // Instream code // get or init MdcConfig MdcConfig mdcConfig = (MdcConfig)session.getAttribute("mdcconfig"); if (mdcConfig == null) { mdcConfig = new MdcConfig(); session.setAttribute("mdcconfig",mdcConfig); } // get or init Persistor Persistor persistor = (Persistor)session.getAttribute("persistor"); if (persistor == null) { persistor = new Persistor(mdcConfig); session.setAttribute("persistor",persistor); } // get or init JaferClient JaferClient jafer = (JaferClient)session.getAttribute("jafer"); if (jafer == null) { jafer = new JaferClient(mdcConfig,persistor); session.setAttribute("jafer",jafer); } String searchopt = null; String searchtype = null; String filter = null; String maintab = request.getParameter("maintab"); if (maintab != null && maintab.length() > 0) { session.setAttribute("maintab",maintab); } else { maintab = (String)session.getAttribute("maintab"); if (maintab == null) { maintab = "federated"; session.setAttribute("maintab",maintab); } } Map rlfields = (Map)session.getAttribute("rlfields"); if (rlfields == null) { rlfields = new HashMap(); session.setAttribute("rlfields",rlfields); } Map repfields = (Map)session.getAttribute("repfields"); if (repfields == null) { repfields = new HashMap(); session.setAttribute("repfields",repfields); } searchopt = request.getParameter("searchopt"); if (searchopt == null) searchopt = (String)session.getAttribute("searchopt"); if (searchopt == null) { searchopt = "keyword"; session.setAttribute("searchopt",searchopt); } //System.out.println("searchopt------------2>:"+searchopt); searchtype = request.getParameter("searchtype"); if (searchtype == null) searchtype = (String)session.getAttribute("searchtype"); if (searchtype == null) { searchtype = "any"; session.setAttribute("searchtype",searchtype); } filter = request.getParameter("filter"); if (filter == null) filter = (String)session.getAttribute("filter"); if (filter == null) filter = ""; session.setAttribute("filter",filter); // original search.jsp fields int perPage = 50; // maximum results per page. String readlingListMessage = ""; String searchMessage = ""; String searchTabs = ""; int tab = -1; String remChecked = (request.getParameter("remChecked") == null) ? "false" : request.getParameter("remChecked"); String keyword = (request.getParameter("keyword") == null) ? "" : request.getParameter("keyword").trim(); // Get the curent tab, either from the tab parameter or figure it out from the keyword if (request.getParameter("tab") != null) { tab = Integer.parseInt(request.getParameter("tab"));// catch NumberFormatException tabSet.setCurrentTab(tab); } else if (!keyword.equals("")) { tab = tabSet.getTabIndex(keyword); if (tab >= 0) { tabSet.setCurrentTab(tab); } } // If a keyword has been entered and it does not match one of the tabs do the search if (!keyword.equals("") && tab == -1) { List resultList = null; if (maintab == null || maintab.equals("federated")) { QueryBuilder builder = new QueryBuilder(); Node author = builder.getNode("author", keyword); if (searchopt.equals("keyword")) { Node title = builder.getNode("title", keyword); Node query = builder.or(author, title); resultList = jafer.submitQuery(query); } else { resultList = jafer.submitQuery(author); } } else if (maintab != null && maintab.equals("repository")) { resultList = persistor.searchRepos(keyword, searchopt, "mdc-public"); } if (resultList != null) { tab = tabSet.getNextTabNumber(); tabSet.addResultList(keyword, resultList); } } // Generate the tabs if (tabSet.getSize() > 0) { searchTabs = ""; } // Set lists for display tag // First apply filter List reslist; if (filter != null && filter.length() > 0) { String filterchk = filter.toLowerCase(); reslist = new ArrayList(); reslist.addAll(tabSet.getCurrentTabResults()); Iterator itr = reslist.iterator(); while (itr.hasNext()) { ResultDisplayRow row = (ResultDisplayRow)itr.next(); Map chkfields = row.getFields(); Iterator itr2 = chkfields.values().iterator(); boolean found = false; while (itr2.hasNext()) { String str = ((String)itr2.next()).toLowerCase(); //if (str.matches(filter)) { if (str.indexOf(filterchk) > -1) { found = true; break; } } if (!found) itr.remove(); } } else { reslist = tabSet.getCurrentTabResults(); } request.setAttribute("results", reslist); request.setAttribute("rlist",readingListBean.getItems()); // reading list readingListBean.setPersistor(persistor); //System.out.println("formBean.getChkId().length:"+formBean.getChkId().length); if (remChecked.equals("true")){ if (formBean.getRlChk().length > 0) { readingListBean.removeItems(formBean.getRlChk()); //readlingListMessage += "

removed "+formBean.getRlChk().length+" items

"; } } else { // formBean.getChkId returns a String[] of document id's for searchlist records that // have been checked for adding to the resource list if (formBean.getChkId().length > 0) { boolean res = readingListBean.addItems(formBean.getChkId(), reslist); if (!res) readlingListMessage = "

Sorry, your items were not added.

"; } } String up = (request.getParameter("up") == null) ? "" : request.getParameter("up").trim(); String down = (request.getParameter("down") == null) ? "" : request.getParameter("down").trim(); if (up != "") { readingListBean.moveItemUp(up); } if (down != "") { readingListBean.moveItemDown(down); } %> MDCOG Search Client
checked="true" <% } %> >Federated Search checked="true" <% } %> >Repository Search Powered by JAFER
checked="true" <% } %> >Keyword checked="true" <% } %> >Author  ||  checked="true" <% } %> >Any checked="true" <% } %> >Book checked="true" <% } %> >Journal Artcle checked="true" <% } %> >Image checked="true" <% } %> >Video checked="true" <% } %> >Assessment
Filter these results:
<%=searchTabs%>
<%=((Map) ((ResultDisplayRow)pageContext.getAttribute("results")).getFields()).get("author")%> <%=((Map) ((ResultDisplayRow)pageContext.getAttribute("results")).getFields()).get("title")%> <%=((Map) ((ResultDisplayRow)pageContext.getAttribute("results")).getFields()).get("dateIssued")%> <%=((Map) ((ResultDisplayRow)pageContext.getAttribute("results")).getFields()).get("publisher")%> <%=((Map) ((ResultDisplayRow)pageContext.getAttribute("results")).getFields()).get("isbn")%> <%=((Map) ((ResultDisplayRow)pageContext.getAttribute("results")).getFields()).get("issn")%> ">preview
 | My reading list
<%=readlingListMessage%>
<% if (readingListBean.getDisplayList().size() > 0 ) { %> <% for (int i=0 ; i < readingListBean.getDisplayList().size(); i++) { ResultDisplayRow rdl = (ResultDisplayRow)readingListBean.getDisplayList().get(i); %> "> <%}%>
Author Title Publisher Issued ISBN ISSN OpenURL
up down <%=rdl.getField("author") %> <%=rdl.getField("title") %> <%=rdl.getField("publisher") %> <%=rdl.getField("dateIssued") %> <%=rdl.getField("isbn") %> <%=rdl.getField("issn") %> preview
<%}%>