You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by to...@apache.org on 2005/11/25 00:58:36 UTC
svn commit: r348834 - in
/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu:
HtmlNavigationMenuRenderer.java HtmlNavigationMenuRendererUtils.java
HtmlPanelNavigationMenu.java
Author: tomsp
Date: Thu Nov 24 15:58:31 2005
New Revision: 348834
URL: http://svn.apache.org/viewcvs?rev=348834&view=rev
Log:
NavigationItem.value is now passed over
Modified:
myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRenderer.java
myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRendererUtils.java
myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenu.java
Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRenderer.java?rev=348834&r1=348833&r2=348834&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRenderer.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRenderer.java Thu Nov 24 15:58:31 2005
@@ -95,32 +95,47 @@
HtmlPanelNavigationMenu panelNav = (HtmlPanelNavigationMenu)component;
if (HtmlNavigationMenuRendererUtils.isListLayout(panelNav))
{
- UIViewRoot previousViewRoot = (UIViewRoot)
- facesContext.getExternalContext().getRequestMap().get(HtmlPanelNavigationMenu.PREVIOUS_VIEW_ROOT);
- // get old view
- // preprocess component tree
+ UIViewRoot previousViewRoot;
boolean preprocess = true;
- if (previousViewRoot != null)
+ if (facesContext.getApplication().getStateManager().isSavingStateInClient(facesContext))
{
- HtmlPanelNavigationMenu panelNavPrev =
- (HtmlPanelNavigationMenu) previousViewRoot.findComponent(panelNav.getClientId(facesContext));
- if (panelNavPrev != null)
+ // client statesaving
+ previousViewRoot = (UIViewRoot)facesContext.getExternalContext().getRequestMap().get(HtmlPanelNavigationMenu.PREVIOUS_VIEW_ROOT);
+ // get old view
+ // preprocess component tree
+ if (previousViewRoot != null)
{
- preprocess = false;
- if (!panelNavPrev.equals(panelNav))
+ HtmlPanelNavigationMenu panelNavPrev =
+ (HtmlPanelNavigationMenu) previousViewRoot.findComponent(panelNav.getClientId(facesContext));
+ facesContext.getApplication().getStateManager().isSavingStateInClient(facesContext);
+ if (panelNavPrev != null)
{
- // substitute panelnav
- UIComponent parent = panelNav.getParent();
- int insertPos = parent.getChildren().indexOf(panelNav);
- parent.getChildren().set(insertPos, panelNavPrev);
- panelNavPrev.setParent(parent);
- panelNav.setParent(null);
- panelNav = panelNavPrev;
+ preprocess = false;
+ if (!panelNavPrev.equals(panelNav))
+ {
+ // substitute panelnav
+ UIComponent parent = panelNav.getParent();
+ int insertPos = parent.getChildren().indexOf(panelNav);
+ parent.getChildren().set(insertPos, panelNavPrev);
+ panelNavPrev.setParent(parent);
+ panelNav.setParent(null);
+ panelNav = panelNavPrev;
+ }
}
}
}
+ else
+ {
+ previousViewRoot = facesContext.getViewRoot();
+ // server statesaving
+ if (panelNav.getPreprocessed() != null && panelNav.getPreprocessed().booleanValue())
+ preprocess = false;
+ }
if (preprocess)
+ {
+ panelNav.setPreprocessed(Boolean.TRUE);
preprocessNavigationItems(facesContext, panelNav, previousViewRoot, panelNav.getChildren(), new UniqueId());
+ }
// render list
if (log.isDebugEnabled())
HtmlNavigationMenuRendererUtils.debugTree(log, facesContext, panelNav.getChildren(), 0);
@@ -236,6 +251,7 @@
newItem.setItemLabel(uiNavMenuItem.getLabel());
newItem.setOpen(uiNavMenuItem.isOpen());
newItem.setActive(uiNavMenuItem.isActive());
+ newItem.setValue(uiNavMenuItem.getValue());
newItem.setTransient(false);
if (uiNavMenuItem.getNavigationMenuItems() != null && uiNavMenuItem.getNavigationMenuItems().length > 0)
{
@@ -268,8 +284,10 @@
newItem.addActionListener(listeners[j]);
}
+ // value
+ newItem.setValue(uiNavMenuItem.getValue());
// immeditate
- newItem.setImmediate(uiNavMenuItem.isImmediate());
+ newItem.setImmediate(uiNavMenuItem.isImmediate());
// transient, rendered
newItem.setTransient(uiNavMenuItem.isTransient());
newItem.setRendered(uiNavMenuItem.isRendered());
Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRendererUtils.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRendererUtils.java?rev=348834&r1=348833&r2=348834&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRendererUtils.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRendererUtils.java Thu Nov 24 15:58:31 2005
@@ -58,11 +58,14 @@
writer.startElement(HTML.LI_ELEM, panelNav);
HtmlNavigationMenuRendererUtils.writeStyleAttributes(writer, style, styleClass);
+ Object value = navItem.getValue();
+ navItem.setValue(null); // unset value, value must not be rendered
navItem.encodeBegin(facesContext);
HtmlNavigationMenuRendererUtils.renderChildren(facesContext, navItem);
navItem.encodeEnd(facesContext);
+ navItem.setValue(value); // restore value
- if (child.getChildCount() > 0)
+ if (hasCommandNavigationItemChildren(navItem))
{
writer.startElement(HTML.UL_ELEM, panelNav);
//HtmlRendererUtils.renderHTMLAttributes(writer, panelNav, HTML.UL_PASSTHROUGH_ATTRIBUTES);
@@ -74,6 +77,19 @@
}
}
+ private static boolean hasCommandNavigationItemChildren(HtmlCommandNavigationItem item)
+ {
+ List children = item.getChildren();
+ for (int i = 0, sizei = children.size(); i < sizei; i++)
+ {
+ if (children.get(i) instanceof HtmlCommandNavigationItem)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
public static void renderChildrenTableLayout(FacesContext facesContext,
ResponseWriter writer,
HtmlPanelNavigationMenu panelNav,
@@ -140,7 +156,7 @@
if (style != null || styleClass != null)
{
writer.endElement(HTML.SPAN_ELEM);
- }
+ }
writer.endElement(HTML.TD_ELEM);
writer.endElement(HTML.TR_ELEM);
Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenu.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenu.java?rev=348834&r1=348833&r2=348834&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenu.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenu.java Thu Nov 24 15:58:31 2005
@@ -97,8 +97,6 @@
}
}
-//------------------ GENERATED CODE BEGIN (do not modify!) --------------------
-
public static final String COMPONENT_TYPE = "org.apache.myfaces.HtmlPanelNavigationMenu";
public static final String COMPONENT_FAMILY = "javax.faces.Panel";
private static final String DEFAULT_RENDERER_TYPE = "org.apache.myfaces.NavigationMenu";
@@ -112,6 +110,7 @@
private String _activeItemStyle = null;
private String _separatorStyle = null;
private String _layout = null;
+ private Boolean _preprocessed = Boolean.FALSE;
public HtmlPanelNavigationMenu()
{
@@ -231,10 +230,19 @@
_layout = layout;
}
+ public Boolean getPreprocessed()
+ {
+ return _preprocessed;
+ }
+
+ public void setPreprocessed(Boolean preprocessed)
+ {
+ _preprocessed = preprocessed;
+ }
public Object saveState(FacesContext context)
{
- Object values[] = new Object[10];
+ Object values[] = new Object[11];
values[0] = super.saveState(context);
values[1] = _itemClass;
values[2] = _openItemClass;
@@ -245,6 +253,7 @@
values[7] = _activeItemStyle;
values[8] = _separatorStyle;
values[9] = _layout;
+ values[10] = _preprocessed;
return ((Object) (values));
}
@@ -261,6 +270,6 @@
_activeItemStyle = (String)values[7];
_separatorStyle = (String)values[8];
_layout = (String)values[9];
+ _preprocessed = (Boolean)values[10];
}
-//------------------ GENERATED CODE END ---------------------------------------
}