You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by rw...@apache.org on 2005/10/07 06:14:31 UTC
svn commit: r306996 - in
/portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite:
impl/MenuImpl.java view/SiteView.java
Author: rwatler
Date: Thu Oct 6 21:14:26 2005
New Revision: 306996
URL: http://svn.apache.org/viewcvs?rev=306996&view=rev
Log:
- correct recursion bug when nested menu was constructed for empty folder
- extend folder view test to include visibility, (i.e. hidden), test on children
to prevent empty folders to be returned as valid children when forming
site views for menu construction
Modified:
portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/impl/MenuImpl.java
portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/view/SiteView.java
Modified: portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/impl/MenuImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/impl/MenuImpl.java?rev=306996&r1=306995&r2=306996&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/impl/MenuImpl.java (original)
+++ portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/impl/MenuImpl.java Thu Oct 6 21:14:26 2005
@@ -136,6 +136,7 @@
}
// override menu options with visible folder contents
+ // or create empty menu if no contents exist
List folderChildren = null;
try
{
@@ -151,6 +152,10 @@
{
overrideOptionProxies = folderChildren;
}
+ else
+ {
+ return;
+ }
}
else
{
@@ -159,11 +164,8 @@
overrideOptionProxies.add(optionProxy);
}
- if (overrideOptionProxies != null)
- {
- // set relative element flag if options path is relative
- elementRelative = (elementRelative || !options.startsWith(Folder.PATH_SEPARATOR));
- }
+ // set relative element flag if options path is relative
+ this.elementRelative = (this.elementRelative || !options.startsWith(Folder.PATH_SEPARATOR));
}
// menu defined only with menu definition options
@@ -273,7 +275,7 @@
appendMenuElement(nestedMenu, separatedElements);
// set relative element flag if nested menu is relative
- elementRelative = (elementRelative || nestedMenu.isElementRelative());
+ this.elementRelative = (this.elementRelative || nestedMenu.isElementRelative());
}
else if (menuElement instanceof MenuIncludeDefinition)
{
@@ -383,7 +385,7 @@
}
// set relative element flag if included menu is relative
- elementRelative = (elementRelative || includeMenu.isElementRelative());
+ this.elementRelative = (this.elementRelative || includeMenu.isElementRelative());
}
}
}
@@ -418,7 +420,7 @@
removeMenuElements(excludeMenu.getElements(), separatedElements);
// set relative element flag if excluded menu is relative
- elementRelative = (elementRelative || excludeMenu.isElementRelative());
+ this.elementRelative = (this.elementRelative || excludeMenu.isElementRelative());
}
}
}
@@ -633,7 +635,7 @@
}
}
- // retrun if no proxies available
+ // return if no proxies available
if (elementProxies == null)
{
return null;
Modified: portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/view/SiteView.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/view/SiteView.java?rev=306996&r1=306995&r2=306996&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/view/SiteView.java (original)
+++ portals/jetspeed-2/trunk/components/portal-site/src/java/org/apache/jetspeed/portalsite/view/SiteView.java Thu Oct 6 21:14:26 2005
@@ -751,8 +751,8 @@
if (children != null)
{
Node node = children.get(currentPath);
- if ((node != null) && (!onlyViewable || isProxyViewable(node)) &&
- (!onlyVisible || !node.isHidden() || (node == currentPage)))
+ if ((node != null) && (!onlyVisible || !node.isHidden() || (node == currentPage)) &&
+ (!onlyViewable || isProxyViewable(node, onlyVisible)))
{
return node;
}
@@ -770,7 +770,8 @@
// path maps to current folder; return if viewable/visible
// or visibility not required
- if ((!onlyViewable || isProxyViewable(currentFolder)) && (!onlyVisible || !currentFolder.isHidden()))
+ if ((!onlyVisible || !currentFolder.isHidden()) &&
+ (!onlyViewable || isProxyViewable(currentFolder, onlyVisible)))
{
return currentFolder;
}
@@ -970,8 +971,8 @@
while (childrenIter.hasNext())
{
Node child = (Node)childrenIter.next();
- if ((!onlyViewable || isProxyViewable(child)) &&
- (!onlyVisible || !child.isHidden() || (child == currentPage)))
+ if ((!onlyVisible || !child.isHidden() || (child == currentPage)) &&
+ (!onlyViewable || isProxyViewable(child, onlyVisible)))
{
if (proxies == null)
{
@@ -989,8 +990,8 @@
// node proxy; return null if not found or not
// viewable and visiblity is required
Node child = children.get(currentRegexpPath);
- if ((child != null) && (!onlyViewable || isProxyViewable(child)) &&
- (!onlyVisible || !child.isHidden() || (child == currentPage)))
+ if ((child != null) && (!onlyVisible || !child.isHidden() || (child == currentPage)) &&
+ (!onlyViewable || isProxyViewable(child, onlyVisible)))
{
List proxies = new ArrayList(1);
proxies.add(currentFolder);
@@ -1014,7 +1015,8 @@
// path maps to current folder; return if viewable/visible
// or visibility not required
- if ((!onlyViewable || isProxyViewable(currentFolder)) && (!onlyVisible || !currentFolder.isHidden()))
+ if ((!onlyVisible || !currentFolder.isHidden()) &&
+ (!onlyViewable || isProxyViewable(currentFolder, onlyVisible)))
{
List proxies = new ArrayList(1);
proxies.add(currentFolder);
@@ -1081,15 +1083,17 @@
}
/**
- * isProxyViewable - tests for node proxy visibilty in view
+ * isProxyViewable - tests for node proxy visibility in view
*
* @param nodeProxy test node proxy
+ * @param onlyVisible nodes required to be visible
* @return - viewable flag
*/
- private static boolean isProxyViewable(Node nodeProxy)
+ private static boolean isProxyViewable(Node nodeProxy, boolean onlyVisible)
{
// pages and links are always considered viewable;
- // folders must be tested for viewable child nodes
+ // folders must be tested for viewable and visibile
+ // child nodes
if (nodeProxy instanceof Folder)
{
try
@@ -1100,7 +1104,8 @@
Iterator childrenIter = children.iterator();
while (childrenIter.hasNext())
{
- if (isProxyViewable((Node)childrenIter.next()))
+ Node child = (Node)childrenIter.next();
+ if ((!onlyVisible || !child.isHidden()) && isProxyViewable(child, onlyVisible))
{
return true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org