Update of 
/var/cvs/contributions/CMSContainer/cmsc/search/src/java/com/finalist/cmsc/services/search
In directory 
james.mmbase.org:/tmp/cvs-serv26804/cmsc/search/src/java/com/finalist/cmsc/services/search

Modified Files:
        SearchServiceMMBaseImpl.java PageInfoComparator.java 
Log Message:
CMSC-755 Navigation code refactored to use navigationitem


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/search/src/java/com/finalist/cmsc/services/search
See also: http://www.mmbase.org/jira/browse/CMSC-755


Index: SearchServiceMMBaseImpl.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/search/src/java/com/finalist/cmsc/services/search/SearchServiceMMBaseImpl.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- SearchServiceMMBaseImpl.java        7 Jan 2008 22:37:25 -0000       1.21
+++ SearchServiceMMBaseImpl.java        28 Jan 2008 21:15:44 -0000      1.22
@@ -273,8 +273,9 @@
 
 
    private PageInfo getPageInfo(Node pageQueryNode, boolean clicktopage) {
-      Page page = 
SiteManagement.getPage(pageQueryNode.getIntValue(PagesUtil.PAGE + ".number"));
-      if (page != null) {
+      NavigationItem item = 
SiteManagement.getNavigationItem(pageQueryNode.getIntValue(PagesUtil.PAGE + 
".number"));
+      if (item != null && Page.class.isInstance(item)) {
+         Page page = Page.class.cast(item);
          String portletWindowName = 
pageQueryNode.getStringValue(PortletUtil.PORTLETREL + "."
                + PortletUtil.LAYOUTID_FIELD);
          String parameterName = 
pageQueryNode.getStringValue(PortletUtil.NODEPARAMETER + "." + 
PortletUtil.KEY_FIELD);
@@ -289,12 +290,15 @@
                if (portlet != null) {
                   String pageNumber = portlet.getParameterValue(PAGE);
                   if (pageNumber != null) {
-                     page = 
SiteManagement.getPage(Integer.valueOf(pageNumber));
+                      NavigationItem clickItem = 
SiteManagement.getNavigationItem(Integer.valueOf(pageNumber)); 
+                      if (clickItem != null && 
Page.class.isInstance(clickItem)) {
+                          page = Page.class.cast(clickItem);
                      portletWindowName = portlet.getParameterValue(WINDOW);
                   }
                }
             }
          }
+         }
          // Check if a portlet exists on this position
          Integer portletId = page.getPortlet(portletWindowName);
          if (portletId == -1) {
@@ -418,10 +422,12 @@
       if (page != null) {
          Cloud cloud = page.getCloud();
 
-         Page pageObject = SiteManagement.getPage(page.getNumber());
-         if (pageObject == null) {
+         NavigationItem item = 
SiteManagement.getNavigationItem(page.getNumber()); 
+         if (item == null || !Page.class.isInstance(item)) {
             return result;
          }
+         
+         Page pageObject = Page.class.cast(item);
          Collection<Integer> portlets = pageObject.getPortlets();
          for (Integer portletId : portlets) {
             Portlet portlet = SiteManagement.getPortlet(portletId);
@@ -499,7 +505,7 @@
 
 
    @Override
-   public String getPortletWindow(int pageId, String elementNumber, String 
serverName) {
+   public String getPortletWindow(int pageId, String elementNumber) {
       Cloud cloud = 
ContextProvider.getDefaultCloudContext().getCloud("mmbase");
       Node content = cloud.getNode(elementNumber);
       if (ContentElementUtil.isContentElement(content)) {
@@ -509,7 +515,7 @@
          }
 
          if (!infos.isEmpty()) {
-            Collections.sort(infos, new PageInfoComparator(serverName));
+            Collections.sort(infos, new PageInfoComparator());
             for (PageInfo pageInfo : infos) {
                if (pageId == pageInfo.getPageNumber()) {
                   return pageInfo.getWindowName();


Index: PageInfoComparator.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/search/src/java/com/finalist/cmsc/services/search/PageInfoComparator.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- PageInfoComparator.java     26 Nov 2007 11:43:45 -0000      1.4
+++ PageInfoComparator.java     28 Jan 2008 21:15:44 -0000      1.5
@@ -19,6 +19,10 @@
    private String preferredSite;
 
 
+   public PageInfoComparator() {
+       // no preferred site
+   }
+
    public PageInfoComparator(String serverName) {
       this.preferredSite = serverName;
    }
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to