rwatler 2005/01/14 22:08:34
Modified: components/page-manager/src/java/org/apache/jetspeed/page/impl
CastorXmlPageManager.java
Log:
support hidden page, folder, link, and document set attribute by filtering
from navigation elements
Revision Changes Path
1.25 +43 -21
jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/impl/CastorXmlPageManager.java
Index: CastorXmlPageManager.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/impl/CastorXmlPageManager.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- CastorXmlPageManager.java 26 Nov 2004 18:52:37 -0000 1.24
+++ CastorXmlPageManager.java 15 Jan 2005 06:08:34 -0000 1.25
@@ -233,8 +233,8 @@
page = (Page) setProfiledNodePathAndUrl((AbstractNode)
profiledPage[0]);
}
- // profile page context
- if (page != null)
+ // profile page context if page and folder found
+ if ((page != null) && (folder != null))
{
// profile general document/folder order
List documentOrder = null;
@@ -265,7 +265,11 @@
Iterator aggregatePagesIter = aggregatePages.iterator();
while (aggregatePagesIter.hasNext())
{
- siblingPages =
addUniqueOrDescribedUrlNode((NodeSetImpl) siblingPages,
setProfiledNodePathAndUrl((AbstractNode) aggregatePagesIter.next()));
+ AbstractNode siblingPageNode =
(AbstractNode)aggregatePagesIter.next();
+ if (!siblingPageNode.isHidden())
+ {
+ siblingPages =
addUniqueOrDescribedUrlNode((NodeSetImpl)siblingPages,
setProfiledNodePathAndUrl(siblingPageNode));
+ }
}
}
@@ -273,7 +277,11 @@
if ((((AbstractNode)folder).getParent(false) != null) &&
!((AbstractNode)folder).getProfiledPath().equals(Folder.PATH_SEPARATOR))
{
- parentFolder =
(Folder)setProfiledNodePathAndUrl((AbstractNode)((AbstractNode)folder).getParent(false));
+ AbstractNode parentFolderNode =
(AbstractNode)((AbstractNode)folder).getParent(false);
+ if (!parentFolderNode.isHidden())
+ {
+ parentFolder =
(Folder)setProfiledNodePathAndUrl(parentFolderNode);
+ }
}
// profile sibling folders by aggregating all siblings in
profiled folders
@@ -287,7 +295,11 @@
Iterator aggregateFoldersIter =
aggregateFolders.iterator();
while (aggregateFoldersIter.hasNext())
{
- siblingFolders =
addUniqueOrDescribedUrlNode((NodeSetImpl) siblingFolders,
setProfiledNodePathAndUrl((AbstractNode) aggregateFoldersIter.next()));
+ AbstractNode siblingFolderNode =
(AbstractNode)aggregateFoldersIter.next();
+ if (!siblingFolderNode.isHidden())
+ {
+ siblingFolders =
addUniqueOrDescribedUrlNode((NodeSetImpl)siblingFolders,
setProfiledNodePathAndUrl(siblingFolderNode));
+ }
}
}
@@ -302,11 +314,14 @@
Iterator aggregateFolderDocumentSetsIter =
aggregateFolderDocumentSets.iterator();
while (aggregateFolderDocumentSetsIter.hasNext())
{
- DocumentSet documentSet = (DocumentSet)
setProfiledNodePathAndUrl((AbstractNode)
aggregateFolderDocumentSetsIter.next());
- String documentSetProfiledPath = ((AbstractNode)
documentSet).getProfiledPath();
- if (!
aggregateDocumentSets.containsKey(documentSetProfiledPath))
+ AbstractNode documentSetNode =
(AbstractNode)setProfiledNodePathAndUrl((AbstractNode)aggregateFolderDocumentSetsIter.next());
+ if (!documentSetNode.isHidden())
{
-
aggregateDocumentSets.put(documentSetProfiledPath, documentSet);
+ String documentSetProfiledPath =
documentSetNode.getProfiledPath();
+ if
(!aggregateDocumentSets.containsKey(documentSetProfiledPath))
+ {
+
aggregateDocumentSets.put(documentSetProfiledPath, documentSetNode);
+ }
}
}
}
@@ -369,7 +384,11 @@
Iterator aggregateLinksIter =
aggregateLinks.iterator();
while (aggregateLinksIter.hasNext())
{
- rootLinks =
addUniqueOrDescribedUrlNode((NodeSetImpl) rootLinks,
setProfiledNodePathAndUrl((AbstractNode) aggregateLinksIter.next()));
+ AbstractNode rootLinkNode =
(AbstractNode)aggregateLinksIter.next();
+ if (!rootLinkNode.isHidden())
+ {
+ rootLinks =
addUniqueOrDescribedUrlNode((NodeSetImpl)rootLinks,
setProfiledNodePathAndUrl(rootLinkNode));
+ }
}
}
}
@@ -382,7 +401,7 @@
}
else
{
- log.error("computeProfiledPageContext(): Failed to find
profiled page for " + requestPath + " at " + locator);
+ log.error("computeProfiledPageContext(): Failed to find
profiled page and/or folder for " + requestPath + " at " + locator);
throw new PageNotFoundException(requestPath + " at " +
locator);
}
}
@@ -666,18 +685,21 @@
while (pathNodesIter.hasNext())
{
AbstractNode pathNode =
setProfiledNodePathAndUrl((AbstractNode) pathNodesIter.next());
- if (!(pathNode instanceof DocumentSet))
- {
- // add expanded document
- expandedNodes =
addUniqueOrDescribedUrlNode(expandedNodes, pathNode);
- }
- else if (!documentSetNames.containsKey(pathNode))
+ if (!pathNode.isHidden())
{
- // expand unique nested document set
- if (expandAndProfileDocumentSet(profileLocators,
(DocumentSet)pathNode, null, name, documentSetNames, documentSetNodeSets) !=
null)
+ if (!(pathNode instanceof DocumentSet))
{
- // add expanded document set
+ // add expanded document
expandedNodes =
addUniqueOrDescribedUrlNode(expandedNodes, pathNode);
+ }
+ else if (!documentSetNames.containsKey(pathNode))
+ {
+ // expand unique nested document set
+ if
(expandAndProfileDocumentSet(profileLocators, (DocumentSet)pathNode, null,
name, documentSetNames, documentSetNodeSets) != null)
+ {
+ // add expanded document set
+ expandedNodes =
addUniqueOrDescribedUrlNode(expandedNodes, pathNode);
+ }
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]