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
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs