[pal-cvs 3442] [1176] added search form, page navigation.

Back to archive index

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 &amp; 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">&#269;esky</html:option>
+<html:option value="da">Dansk</html:option>
+<html:option value="de">Deutsch</html:option>
+<html:option value="el">Ελληνικ&#940;</html:option>
+<html:option value="en">English</html:option>
+<html:option value="es">espa&#241;ol</html:option>
+<html:option value="fr">Fran&#231;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">&#1506;&#1489;&#1512;&#1497;&#1514;</html:option>
+<html:option value="ja">日本語</html:option>
+<html:option value="ko">&#54620;&#44397;&#50612;</html:option>
+<html:option value="nl">Nederlands</html:option>
+<html:option value="no">norsk (bokm&#229;l)</html:option>
+<html:option value="pl">polski</html:option>
+<html:option value="pt-BR">portugu&#234;s (Brasil)</html:option>
+<html:option value="pt-PT">Portugu&#234;s (Portugal)</html:option>
+<html:option value="ro">Rom&#226;n&#259;</html:option>
+<html:option value="ru">русском</html:option>
+<html:option value="sv">svenska</html:option>
+<html:option value="th">&#3616;&#3634;&#3625;&#3634;&#3652;&#3607;&#3618;</html:option>
+<html:option value="tr">T&#252;rk&#231;e</html:option>
+<html:option value="vi">Ti&#7871;ng Vi&#7879;t</html:option>
+<html:option value="zh-CN">中文(&#31616;体)</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">&lt;&lt;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&gt;&gt;</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


pal-cvs メーリングリストの案内
Back to archive index