[pal-cvs 3662] [1397] fixed sort problem.

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2008年 11月 22日 (土) 08:37:51 JST


Revision: 1397
          http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1397
Author:   shinsuke
Date:     2008-11-22 08:37:51 +0900 (Sat, 22 Nov 2008)

Log Message:
-----------
fixed sort problem.

Modified Paths:
--------------
    bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java


-------------- next part --------------
Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java
===================================================================
--- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java	2008-11-21 23:34:49 UTC (rev 1396)
+++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java	2008-11-21 23:37:51 UTC (rev 1397)
@@ -141,7 +141,8 @@
         BookmarkCategoryCB cb = new BookmarkCategoryCB();
         cb.fetchFirst(1);
         cb.fetchFirst(1);
-        cb.query().setSortOrder_GreaterThan(category.getSortOrder());
+        cb.query().setId_NotEqual(category.getId());
+        cb.query().setSortOrder_GreaterEqual(category.getSortOrder());
         cb.query().setCreatedBy_Equal(category.getCreatedBy());
         cb.query().addOrderBy_SortOrder_Asc();
         List<BookmarkCategory> categoryList = bookmarkCategoryBhv
@@ -149,10 +150,15 @@
         if (categoryList != null && !categoryList.isEmpty()) {
             BookmarkCategory targetCategory = categoryList.get(0);
             Integer sortOrder = targetCategory.getSortOrder();
-            targetCategory.setSortOrder(category.getSortOrder());
-            category.setSortOrder(sortOrder);
-            bookmarkCategoryBhv.update(targetCategory);
-            bookmarkCategoryBhv.update(category);
+            if (sortOrder.intValue() == category.getSortOrder().intValue()) {
+                category.setSortOrder(sortOrder.intValue() + 1);
+                bookmarkCategoryBhv.update(category);
+            } else {
+                targetCategory.setSortOrder(category.getSortOrder());
+                category.setSortOrder(sortOrder);
+                bookmarkCategoryBhv.update(targetCategory);
+                bookmarkCategoryBhv.update(category);
+            }
         } else {
             // TODO replace with CommonException
             throw new ActionMessagesException(
@@ -164,7 +170,8 @@
         BookmarkCategoryCB cb = new BookmarkCategoryCB();
         cb.fetchFirst(1);
         cb.fetchFirst(1);
-        cb.query().setSortOrder_LessThan(category.getSortOrder());
+        cb.query().setId_NotEqual(category.getId());
+        cb.query().setSortOrder_LessEqual(category.getSortOrder());
         cb.query().setCreatedBy_Equal(category.getCreatedBy());
         cb.query().addOrderBy_SortOrder_Desc();
         List<BookmarkCategory> categoryList = bookmarkCategoryBhv
@@ -172,10 +179,15 @@
         if (categoryList != null && !categoryList.isEmpty()) {
             BookmarkCategory targetCategory = categoryList.get(0);
             Integer sortOrder = targetCategory.getSortOrder();
-            targetCategory.setSortOrder(category.getSortOrder());
-            category.setSortOrder(sortOrder);
-            bookmarkCategoryBhv.update(targetCategory);
-            bookmarkCategoryBhv.update(category);
+            if (sortOrder.intValue() == category.getSortOrder().intValue()) {
+                category.setSortOrder(sortOrder.intValue() - 1);
+                bookmarkCategoryBhv.update(category);
+            } else {
+                targetCategory.setSortOrder(category.getSortOrder());
+                category.setSortOrder(sortOrder);
+                bookmarkCategoryBhv.update(targetCategory);
+                bookmarkCategoryBhv.update(category);
+            }
         } else {
             // TODO replace with CommonException
             throw new ActionMessagesException(


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