Author: bbrossaud Date: 2010-06-01 11:02:01 +0200 (Tue, 01 Jun 2010) New Revision: 49 Url: http://chorem.org/repositories/revision/bow/49 Log: fullText works now Modified: trunk/src/main/java/org/chorem/bow/BookmarkActions.java trunk/src/main/java/org/chorem/bow/ControllerServlet.java Modified: trunk/src/main/java/org/chorem/bow/BookmarkActions.java =================================================================== --- trunk/src/main/java/org/chorem/bow/BookmarkActions.java 2010-06-01 07:59:09 UTC (rev 48) +++ trunk/src/main/java/org/chorem/bow/BookmarkActions.java 2010-06-01 09:02:01 UTC (rev 49) @@ -154,11 +154,11 @@ String[] tagsTab = tags.split("\\s+"); // put the tags in an array for (int i = 0; i < tagsTab.length; ++i) { Set<String> tagList = bookmark.getTags(); - if (tagList != null) { + if (tagList != null && tagsTab[i] != null) { if (!tagList.contains(tagsTab[i]) && !tagsTab[i].isEmpty()) { bookmark.addTags(tagsTab[i]); // Added tag for each rank (one tag by rank) } - } else { + } else if (!tagsTab[i].isEmpty()){ bookmark.addTags(tagsTab[i]); } } @@ -168,14 +168,7 @@ public static void addTagsToBookmark(List<String> tagList, Bookmark bookmark) { if (tagList != null && !tagList.isEmpty()) { for (String tag : tagList) { - Set<String> bookmarTags = bookmark.getTags(); - if (bookmarTags != null) { - if (!bookmarTags.contains(tag) && !tag.isEmpty()) { - bookmark.addTags(tag); // Added tag for each rank (one tag by rank) - } - } else if (!tag.isEmpty()) { - bookmark.addTags(tag); - } + addTagsToBookmark(tag, bookmark); } } } @@ -258,7 +251,7 @@ public void createTagCloud() { tagCloud.clear(); - deleteBookmarkBySearch(); + //deleteBookmarkBySearch(); createTagClougByBookmarks(); defineTValues(); } Modified: trunk/src/main/java/org/chorem/bow/ControllerServlet.java =================================================================== --- trunk/src/main/java/org/chorem/bow/ControllerServlet.java 2010-06-01 07:59:09 UTC (rev 48) +++ trunk/src/main/java/org/chorem/bow/ControllerServlet.java 2010-06-01 09:02:01 UTC (rev 49) @@ -236,8 +236,8 @@ response.sendRedirect(searchLine); } else { WikittyProxy proxy = model.getProxy(); - Criteria criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria(). - addSortDescending(Bookmark.FQ_FIELD_CLICK); + Criteria criteria = getBookmarkListCriteriaByUser(user, searchLine); + criteria = criteria.addSortDescending(Bookmark.FQ_FIELD_CLICK); List<Bookmark> bookList = proxy.findAllByCriteria(Bookmark.class, criteria).getAll(); BookmarkActions bookmarkActions = createBookmarkActions(request, bookList); request.setAttribute("bookmarkActions", bookmarkActions); @@ -301,23 +301,19 @@ protected void actionOrderAsc(HttpServletRequest request, HttpServletResponse response, User user) throws IOException, ServletException { String type = request.getParameter("type"); - if (type != null && !type.isEmpty()) { + String searchLine = request.getParameter("searchline"); + Criteria baseCriteria = getBookmarkListCriteriaByUser(user, searchLine); + if (type != null && baseCriteria != null && !type.isEmpty()) { WikittyProxy proxy = model.getProxy(); List<Bookmark> bookList = null; if (type.equals("name")) { - Criteria criteria = Search.query(). - eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria(). - addSortAscending(Bookmark.FQ_FIELD_DESCRIPTION); + Criteria criteria = baseCriteria.addSortAscending(Bookmark.FQ_FIELD_DESCRIPTION); bookList = proxy.findAllByCriteria(Bookmark.class, criteria).getAll(); } else if (type.equals("date")) { - Criteria criteria = Search.query(). - eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria(). - addSortAscending(Bookmark.FQ_FIELD_DATE); + Criteria criteria = baseCriteria.addSortAscending(Bookmark.FQ_FIELD_DATE); bookList = proxy.findAllByCriteria(Bookmark.class, criteria).getAll(); } else if (type.equals("click")) { - Criteria criteria = Search.query(). - eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria(). - addSortAscending(Bookmark.FQ_FIELD_CLICK); + Criteria criteria = baseCriteria.addSortAscending(Bookmark.FQ_FIELD_CLICK); bookList = proxy.findAllByCriteria(Bookmark.class, criteria).getAll(); } BookmarkActions bookmarkActions = createBookmarkActions(request, bookList); @@ -327,24 +323,20 @@ protected void actionOrderDesc(HttpServletRequest request, HttpServletResponse response, User user) throws IOException, ServletException { + String searchLine = request.getParameter("searchline"); String type = request.getParameter("type"); - if (type != null && !type.isEmpty()) { + Criteria baseCriteria = getBookmarkListCriteriaByUser(user, searchLine); + if (type != null && baseCriteria != null && !type.isEmpty()) { WikittyProxy proxy = model.getProxy(); List<Bookmark> bookList = null; if (type.equals("name")) { - Criteria criteria = Search.query(). - eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria(). - addSortDescending(Bookmark.FQ_FIELD_DESCRIPTION); + Criteria criteria = baseCriteria.addSortDescending(Bookmark.FQ_FIELD_DESCRIPTION); bookList = proxy.findAllByCriteria(Bookmark.class, criteria).getAll(); } else if (type.equals("date")) { - Criteria criteria = Search.query(). - eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria(). - addSortDescending(Bookmark.FQ_FIELD_DATE); + Criteria criteria = baseCriteria.addSortDescending(Bookmark.FQ_FIELD_DATE); bookList = proxy.findAllByCriteria(Bookmark.class, criteria).getAll(); } else if (type.equals("click")) { - Criteria criteria = Search.query(). - eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria(). - addSortDescending(Bookmark.FQ_FIELD_CLICK); + Criteria criteria = baseCriteria.addSortDescending(Bookmark.FQ_FIELD_CLICK); bookList = proxy.findAllByCriteria(Bookmark.class, criteria).getAll(); } BookmarkActions bookmarkActions = createBookmarkActions(request, bookList); @@ -506,9 +498,10 @@ */ protected void actionSearch(HttpServletRequest request, User user) throws IOException, ServletException { + String searchLine = request.getParameter("searchLine"); WikittyProxy proxy = model.getProxy(); - Criteria criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria(). - addSortDescending(Bookmark.FQ_FIELD_CLICK); + Criteria criteria = getBookmarkListCriteriaByUser(user, searchLine); + criteria = criteria.addSortDescending(Bookmark.FQ_FIELD_CLICK); List<Bookmark> bookList = proxy.findAllByCriteria(Bookmark.class, criteria).getAll(); // select all bookmarks by user BookmarkActions bookmarkActions = createBookmarkActions(request, bookList); request.setAttribute("bookmarkActions", bookmarkActions); @@ -522,7 +515,6 @@ bookmarkActions.setBookmarks(bookList); } if (fullText != null && !fullText.isEmpty()) { - log.debug("toto"); bookmarkActions.fullText(fullText); bookmarkActions.createTagClougByBookmarks(); bookmarkActions.defineTValues(); @@ -652,22 +644,23 @@ protected void actionHome(HttpServletRequest request, User user) { WikittyProxy proxy = model.getProxy(); - Criteria criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria(). - addSortDescending(Bookmark.FQ_FIELD_CLICK); - List<Bookmark> bookList = proxy.findAllByCriteria(Bookmark.class, criteria).getAll(); // select all bookmarks by user - criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria(). - addSortDescending(Bookmark.FQ_FIELD_DATE).setEndIndex(10); - List<Bookmark> lastBookmarks = proxy.findAllByCriteria(Bookmark.class, criteria).getAll(); - BookmarkActions bookmarkActions = createBookmarkActions(request, bookList); - bookList = bookmarkActions.getBookmarks(); - if (bookList.size() > 10) { - bookList = bookmarkActions.getBookmarks().subList(0, 10); - bookmarkActions.setBookmarks(bookList); + Criteria criteria = getBookmarkListCriteriaByUser(user, null); + if (criteria != null) { + Criteria sortCriteria = criteria.addSortDescending(Bookmark.FQ_FIELD_CLICK); + List<Bookmark> bookList = proxy.findAllByCriteria(Bookmark.class, sortCriteria).getAll(); // select all bookmarks by user + sortCriteria = criteria.addSortDescending(Bookmark.FQ_FIELD_DATE).setEndIndex(10); + List<Bookmark> lastBookmarks = proxy.findAllByCriteria(Bookmark.class, sortCriteria).getAll(); + BookmarkActions bookmarkActions = createBookmarkActions(request, bookList); + bookList = bookmarkActions.getBookmarks(); + if (bookList.size() > 10) { + bookList = bookmarkActions.getBookmarks().subList(0, 10); + bookmarkActions.setBookmarks(bookList); + } + if (lastBookmarks != null) { + bookmarkActions.setLastBookmarks(lastBookmarks); + } + request.setAttribute("bookmarkActions", bookmarkActions); } - if (lastBookmarks != null) { - bookmarkActions.setLastBookmarks(lastBookmarks); - } - request.setAttribute("bookmarkActions", bookmarkActions); } protected void actionImportBookmarks(HttpServletRequest request, HttpServletResponse response, User user) @@ -793,4 +786,19 @@ response.sendRedirect("bow?action=home"); } } + + protected Criteria getBookmarkListCriteriaByUser(User user, String searchline) { + Criteria criteria = null; + if (user != null) { + if (searchline != null && !searchline.isEmpty()) { + String[] words = searchline.split("\\s+"); // put the tags in an array + List<String> tags = new ArrayList<String>(Arrays.asList(words)); + criteria = Search.query().eq(User.FQ_FIELD_EMAIL, user.getEmail()). + contains(Bookmark.FQ_FIELD_TAGS, tags).criteria(); + } else { + criteria = Search.query().eq(User.FQ_FIELD_EMAIL, user.getEmail()).criteria(); + } + } + return criteria; + } }