[gatein-commits] gatein SVN: r5726 - exo/portal/branches/3.1.x/webui/portal/src/main/java/org/exoplatform/portal/webui/navigation.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Jan 11 04:48:08 EST 2011


Author: ndkhoiits
Date: 2011-01-11 04:48:07 -0500 (Tue, 11 Jan 2011)
New Revision: 5726

Modified:
   exo/portal/branches/3.1.x/webui/portal/src/main/java/org/exoplatform/portal/webui/navigation/UIPageNavigationForm.java
Log:
EXOGTN-235 Don't update priority for group navigation after change on menu item

Modified: exo/portal/branches/3.1.x/webui/portal/src/main/java/org/exoplatform/portal/webui/navigation/UIPageNavigationForm.java
===================================================================
--- exo/portal/branches/3.1.x/webui/portal/src/main/java/org/exoplatform/portal/webui/navigation/UIPageNavigationForm.java	2011-01-11 09:13:59 UTC (rev 5725)
+++ exo/portal/branches/3.1.x/webui/portal/src/main/java/org/exoplatform/portal/webui/navigation/UIPageNavigationForm.java	2011-01-11 09:48:07 UTC (rev 5726)
@@ -42,6 +42,8 @@
 import org.exoplatform.webui.form.UIFormStringInput;
 
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 
 /*
@@ -158,60 +160,48 @@
          }
 
          WebuiRequestContext pcontext = event.getRequestContext();
-
-         // if edit navigation
-         if (pageNav != null)
-         {
-            uiForm.invokeSetBindingBean(pageNav);
-            UIFormSelectBox uiSelectBox = uiForm.findComponentById("priority");
-            int priority = Integer.parseInt(uiSelectBox.getValue());
-            pageNav.setPriority(priority);
-
-            // update navigation
-            dataService.save(pageNav);
-
-            UIPopupWindow uiPopup = uiForm.getParent();
-            uiPopup.setShow(false);
-            UIComponent opener = uiPopup.getParent();
-            pcontext.addUIComponentToUpdateByAjax(opener);
-            return;
-         }
-
-         // if add navigation
-         pageNav = new PageNavigation();
-         // set properties for navigation
          uiForm.invokeSetBindingBean(pageNav);
-         UIFormStringInput uiOwnerId = uiForm.findComponentById("ownerId");
-         UIFormStringInput uiOwnerType = uiForm.findComponentById("ownerType");
          UIFormSelectBox uiSelectBox = uiForm.findComponentById("priority");
          int priority = Integer.parseInt(uiSelectBox.getValue());
          pageNav.setPriority(priority);
-         pageNav.setModifiable(true);
-         pageNav.setOwnerId(uiOwnerId.getValue());
-         pageNav.setOwnerType(uiOwnerType.getValue());
-         //UIPortalApplication uiPortalApp = uiForm.getAncestorOfType(UIPortalApplication.class);      
-         UIPortalApplication uiPortalApp = Util.getUIPortal().getAncestorOfType(UIPortalApplication.class);
 
-         // ensure this navigation is not exist
-         if (dataService.getPageNavigation(pageNav.getOwnerType(), pageNav.getOwnerId()) != null)
-         {
-            uiPortalApp.addMessage(new ApplicationMessage("UIPageNavigationForm.msg.existPageNavigation",
-               new String[]{pageNav.getOwnerId()}));;
-            return;
-         }
+         // update navigation
+         dataService.save(pageNav);
 
-         // create navigation for group
-         dataService.create(pageNav);
+         pageNav = dataService.getPageNavigation(pageNav.getOwnerType(), pageNav.getOwnerId());
 
-         // close popup window, update popup window
+         UIPortalApplication uiPortalApp = Util.getUIPortalApplication();
+         updateNavPriority(uiPortalApp.getNavigations(), pageNav);
+
+         uiPortalApp.localizeNavigations();
+
          UIPopupWindow uiPopup = uiForm.getParent();
          uiPopup.setShow(false);
          UIComponent opener = uiPopup.getParent();
+         UIWorkingWorkspace uiWorkingWS =
+            Util.getUIPortal().getAncestorOfType(UIPortalApplication.class).getChild(UIWorkingWorkspace.class);
+         uiWorkingWS.updatePortletsByName("UserToolbarGroupPortlet");
          pcontext.addUIComponentToUpdateByAjax(opener);
+      }
+      
+      private void updateNavPriority(List<PageNavigation> navs, PageNavigation nav)
+      {
+         for (int i = 0; i < navs.size(); i++)
+         {
+            if (navs.get(i).getId() == nav.getId())
+            {
+               navs.set(i, nav);
+               break;
+            }
+         }
 
-         UIWorkingWorkspace uiWorkingWS = uiPortalApp.getChild(UIWorkingWorkspace.class);
-         uiWorkingWS.updatePortletsByName("GroupNavigationPortlet");
-
+         Collections.sort(navs, new Comparator<PageNavigation>()
+         {
+            public int compare(PageNavigation nav1, PageNavigation nav2)
+            {
+               return nav1.getPriority() - nav2.getPriority();
+            }
+         });
       }
    }
 



More information about the gatein-commits mailing list