svnno****@sourc*****
svnno****@sourc*****
2008年 9月 24日 (水) 18:04:48 JST
Revision: 1176 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1176 Author: shinsuke Date: 2008-09-24 18:04:48 +0900 (Wed, 24 Sep 2008) Log Message: ----------- added search form, page navigation. Modified Paths: -------------- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/EditAction.java googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/entity/GGadget.java googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/form/EditForm.java googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/pager/GGadgetPager.java googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetHandler.java googlegadgets/trunk/src/main/resources/application_ja.properties googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/index.jsp -------------- next part -------------- Modified: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/EditAction.java =================================================================== --- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/EditAction.java 2008-09-24 08:41:09 UTC (rev 1175) +++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/EditAction.java 2008-09-24 09:04:48 UTC (rev 1176) @@ -1,5 +1,6 @@ package jp.sf.pal.ggadget.action; +import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; @@ -25,6 +26,8 @@ public List<GGadget> gadgetItems; + public List<Integer> pageItems; + public String currentName; public boolean existPrevPage; @@ -51,6 +54,11 @@ try { currentName = GGadgetUtil.getPreferenceValue(request, GGadgetConstants.NAME, ""); + + editForm.category = gGadgetPager.getCategory(); + editForm.query = gGadgetPager.getQuery(); + editForm.language = gGadgetPager.getLanguage(); + GGadgetList<GGadget> gadgets = gGadgetService .getGGadgetList(gGadgetPager); allRecordCount = gadgets.getAllRecordCount(); @@ -61,6 +69,20 @@ gadgetItems = gadgets; request.getSession().setAttribute(GGadgetConstants.GADGET_ITEMS, gadgetItems); + + int startIdx = currentPageNumber - 5; + if (startIdx < 1) { + startIdx = 1; + } + int endIdx = currentPageNumber + 5; + if (endIdx > allPageCount) { + endIdx = allPageCount; + } + pageItems = new ArrayList<Integer>(); + for (int i = startIdx; i <= endIdx; i++) { + pageItems.add(i); + } + return "index.jsp"; } catch (GGadgetException e) { log.error(e.getMessage(), e); @@ -69,6 +91,27 @@ } } + @Execute(validator = false, input = "error.jsp", urlPattern = "setcategory/{category}") + public String find() { + gGadgetPager.reset(); + gGadgetPager.setCategory(editForm.category); + gGadgetPager.setQuery(editForm.query); + gGadgetPager.setLanguage(editForm.language); + return index(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + try { + int start = (Integer.parseInt(editForm.pageNumber) - 1) + * gGadgetPager.getNum(); + gGadgetPager.setStart(start); + } catch (NumberFormatException e) { + // nothing + } + return index(); + } + @Execute(validator = false, input = "error.jsp", urlPattern = "update/{id}") public String update() { if (editForm.id == null) { Modified: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/entity/GGadget.java =================================================================== --- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/entity/GGadget.java 2008-09-24 08:41:09 UTC (rev 1175) +++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/entity/GGadget.java 2008-09-24 09:04:48 UTC (rev 1176) @@ -10,9 +10,9 @@ private int id; - private String name; + private String name = ""; - private String description; + private String description = ""; private String url; Modified: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/form/EditForm.java =================================================================== --- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/form/EditForm.java 2008-09-24 08:41:09 UTC (rev 1175) +++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/form/EditForm.java 2008-09-24 09:04:48 UTC (rev 1176) @@ -5,4 +5,13 @@ public class EditForm { @IntegerType public String id; + + public String category; + + public String query; + + public String language; + + @IntegerType + public String pageNumber; } Modified: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/pager/GGadgetPager.java =================================================================== --- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/pager/GGadgetPager.java 2008-09-24 08:41:09 UTC (rev 1175) +++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/pager/GGadgetPager.java 2008-09-24 09:04:48 UTC (rev 1176) @@ -18,8 +18,16 @@ private String query; - private String language; + private String language = "en"; + public void reset() { + start = 0; + num = 20; + category = null; + query = null; + language = "en"; + } + public String buildUrl() { StringBuilder url = new StringBuilder(GGadgetConstants.BASE_URL); @@ -28,7 +36,7 @@ if (category != null) { url.append("&cat=").append(category); } - if (query != null) { + if (query != null && !"".equals(query)) { try { url.append("&q=").append(URLEncoder.encode(query, "UTF-8")); } catch (UnsupportedEncodingException e) { Modified: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetHandler.java =================================================================== --- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetHandler.java 2008-09-24 08:41:09 UTC (rev 1175) +++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetHandler.java 2008-09-24 09:04:48 UTC (rev 1176) @@ -76,11 +76,13 @@ String tagName = stack.get(stack.size() - 1); if (gGadget != null) { if ("title".equals(tagName)) { - gGadget.setName(new String(ch, start, length)); + gGadget.setName(gGadget.getName() + + new String(ch, start, length)); } else if ("guid".equals(tagName)) { gGadget.setUrl(new String(ch, start, length)); } else if ("description".equals(tagName)) { - gGadget.setDescription(new String(ch, start, length)); + gGadget.setDescription(gGadget.getDescription() + + new String(ch, start, length)); } else if ("ghapi:thumbnail".equals(tagName)) { gGadget.setThumbnail(new String(ch, start, length)); } Modified: googlegadgets/trunk/src/main/resources/application_ja.properties =================================================================== --- googlegadgets/trunk/src/main/resources/application_ja.properties 2008-09-24 08:41:09 UTC (rev 1175) +++ googlegadgets/trunk/src/main/resources/application_ja.properties 2008-09-24 09:04:48 UTC (rev 1176) @@ -17,4 +17,13 @@ errors.email={0}\u306f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3068\u3057\u3066\u4e0d\u6b63\u3067\u3059\u3002 errors.url={0}\u306fURL\u3068\u3057\u3066\u4e0d\u6b63\u3067\u3059\u3002 +errors.invalid_portlet_state=\u4e0d\u6b63\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u72b6\u614b\u3067\u3059\u3002\u7ba1\u7406\u8005\u306b\u9023\u7d61\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +errors.could_not_load_gadget_info=Google\u30ac\u30b8\u30a7\u30c3\u30c8\u60c5\u5831\u304c\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3042\u3068\u3067\u3001\u518d\u5ea6\u8a66\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +errors.failed_to_update_because_of_no_id=\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u6307\u5b9a\u3055\u308c\u305f\u30ac\u30b8\u30a7\u30c3\u30c8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +errors.failed_to_update_because_of_no_session=\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002Google\u30ac\u30b8\u30a7\u30c3\u30c8\u306e\u60c5\u5831\u304c\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3002 +errors.failed_to_update_because_of_no_object=\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u30ac\u30b8\u30a7\u30c3\u30c8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +errors.failed_to_update_because_of_system_error=\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u7ba1\u7406\u8005\u306b\u9023\u7d61\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +warn.need_to_set_gadget_url=\u7de8\u96c6\u30e2\u30fc\u30c9\u3067 Google\u30ac\u30b8\u30a7\u30c3\u30c8\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002 + +success.update_gadget=\u30ac\u30b8\u30a7\u30c3\u30c8\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 Modified: googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/index.jsp =================================================================== --- googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/index.jsp 2008-09-24 08:41:09 UTC (rev 1175) +++ googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/index.jsp 2008-09-24 09:04:48 UTC (rev 1176) @@ -1,6 +1,6 @@ <%@page pageEncoding="UTF-8" %> <div><html:messages id="msg" message="true"><bean:write name="msg" ignore="true"/></html:messages><html:errors/></div> -<c:if test="${currentName != null}"> +<c:if test="${currentName != ''}"> <div>Current: ${currentName}</div> </c:if> <div style="padding: 3px;"> @@ -20,11 +20,86 @@ </table> </div> <div style="padding: 3px;"> -<c:if test="${existPrevPage}"> -<s:link href="prev">Previous</s:link> -</c:if> +<s:form> + <div> + Category: + <html:select property="category"> +<html:option value="all">All</html:option> +<html:option value="news">News</html:option> +<html:option value="tools">Tools</html:option> +<html:option value="communication">Communication</html:option> +<html:option value="funandgames">Fun & Games</html:option> +<html:option value="finance">Finance</html:option> +<html:option value="sports">Sports</html:option> +<html:option value="lifestyle">Lifestyle</html:option> +<html:option value="technology">Technology</html:option> +<html:option value="new">New stuff</html:option> + </html:select> + </div> + <div> + Search: + <html:text property="query" size="10"/> + </div> + <div> + Language: + <html:select property="language"> +<html:option value="cs">česky</html:option> +<html:option value="da">Dansk</html:option> +<html:option value="de">Deutsch</html:option> +<html:option value="el">Ελληνικά</html:option> +<html:option value="en">English</html:option> +<html:option value="es">español</html:option> +<html:option value="fr">Français</html:option> +<html:option value="fi">suomi</html:option> +<html:option value="hu">magyar</html:option> +<html:option value="it">Italiano</html:option> +<html:option value="iw">עברית</html:option> +<html:option value="ja">日本語</html:option> +<html:option value="ko">한국어</html:option> +<html:option value="nl">Nederlands</html:option> +<html:option value="no">norsk (bokmål)</html:option> +<html:option value="pl">polski</html:option> +<html:option value="pt-BR">português (Brasil)</html:option> +<html:option value="pt-PT">Português (Portugal)</html:option> +<html:option value="ro">Română</html:option> +<html:option value="ru">русском</html:option> +<html:option value="sv">svenska</html:option> +<html:option value="th">ภาษาไทย</html:option> +<html:option value="tr">Türkçe</html:option> +<html:option value="vi">Tiếng Việt</html:option> +<html:option value="zh-CN">中文(简体)</html:option> +<html:option value="zh-TW">中文(繁體)</html:option> + </html:select> + </div> + <div> + <input type="submit" name="find" value="Find gadgets"/> + </div> +</s:form> +</div> +<div style="padding: 3px;"> + <span> + <c:if test="${existPrevPage}"> + <s:link href="prev"><<Previous</s:link> + </c:if> + </span> + <span> + <c:forEach var="p" varStatus="s" items="${pageItems}"> + <span> + <c:if test="${p == currentPageNumber}"> + ${p} + </c:if> + <c:if test="${p != currentPageNumber}"> + <s:link href="list/${p}">${p}</s:link> + </c:if> + </span> + </c:forEach> + </span> + <span> + <c:if test="${existNextPage}"> + <s:link href="next">Next>></s:link> + </c:if> + </span> +</div> +<div style="padding: 3px;"> <span>${currentPageNumber}/${allPageCount} (${allRecordCount})</span> -<c:if test="${existNextPage}"> -<s:link href="next">Next</s:link> -</c:if> -</div> +</div> \ No newline at end of file