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(