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