You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2010/03/03 18:25:35 UTC
svn commit: r918593 - in /myfaces/tobago/trunk:
core/src/main/java/org/apache/myfaces/tobago/component/
core/src/main/java/org/apache/myfaces/tobago/taglib/component/
example/demo/src/main/webapp/ example/demo/src/main/webapp/overview/
example/demo/src...
Author: lofwyr
Date: Wed Mar 3 17:25:34 2010
New Revision: 918593
URL: http://svn.apache.org/viewvc?rev=918593&view=rev
Log:
TOBAGO-857: New tag <tc:treeMenu> instead of <tc:tree mode="menu">
Added:
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeMenuTagDeclaration.java
- copied, changed from r918393, myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeTagDeclaration.java
myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuRenderer.java
- copied, changed from r917992, myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeRenderer.java
Modified:
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITree.java
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeNodeTagDeclaration.java
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeTagDeclaration.java
myfaces/tobago/trunk/example/demo/src/main/webapp/navigation.jsp
myfaces/tobago/trunk/example/demo/src/main/webapp/navigation.xhtml
myfaces/tobago/trunk/example/demo/src/main/webapp/overview/tree.xhtml
myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-menu.jsp
myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRenderer.java
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITree.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITree.java?rev=918593&r1=918592&r2=918593&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITree.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITree.java Wed Mar 3 17:25:34 2010
@@ -43,7 +43,7 @@
private MixedTreeModel model;
public UIComponent getRoot() {
- // find the UITreeNode in the childen.
+ // find the UITreeNode in the children.
for (UIComponent child : (List<UIComponent>) getChildren()) {
if (child instanceof AbstractUITreeNode) {
return child;
@@ -55,6 +55,7 @@
return null;
}
+ @Override
public void encodeEnd(FacesContext facesContext) throws IOException {
model = new MixedTreeModel();
for (Object child : getChildren()) {
@@ -75,6 +76,7 @@
return model;
}
+ @Override
public boolean getRendersChildren() {
return true;
}
@@ -88,6 +90,7 @@
|| selectable.equals("sibling") || selectable.equals("siblingLeafOnly"));
}
+ @Override
public void processDecodes(FacesContext facesContext) {
if (!isRendered()) {
@@ -108,6 +111,7 @@
}
}
+ @Override
public void validate(FacesContext context) {
// todo: validate must be written new, without TreeState
@@ -153,10 +157,15 @@
}
}
+ @Override
public void updateModel(FacesContext facesContext) {
// nothing to update for tree's
// TODO: updating the model here and *NOT* in the decode phase
}
public abstract Object getState();
+
+ public boolean isShowRoot() {
+ return false;
+ }
}
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java?rev=918593&r1=918592&r2=918593&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java Wed Mar 3 17:25:34 2010
@@ -73,6 +73,7 @@
public static final String TREE = "Tree";
public static final String TREE_DATA = "TreeData";
public static final String TREE_LISTBOX = "TreeListbox";
+ public static final String TREE_MENU = "TreeMenu";
public static final String TREE_NODE = "TreeNode";
public static final String SHEET = "Sheet";
public static final String VERBATIM = "Verbatim";
Copied: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeMenuTagDeclaration.java (from r918393, myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeTagDeclaration.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeMenuTagDeclaration.java?p2=myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeMenuTagDeclaration.java&p1=myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeTagDeclaration.java&r1=918393&r2=918593&rev=918593&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeTagDeclaration.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeMenuTagDeclaration.java Wed Mar 3 17:25:34 2010
@@ -31,63 +31,27 @@
import org.apache.myfaces.tobago.taglib.decl.IsRequired;
/**
- * A tree which has to variants: as menu or normal tree.
+ * A tree which will be displayed like a flat menu.
+ * This menu is often used for navigation on the left side of an application.
*/
-@Tag(name = "tree")
+@Tag(name = "treeMenu")
@BodyContentDescription(anyTagOf = "<tc:treeNode>|<tc:treeData>")
@UIComponentTag(
- uiComponent = "org.apache.myfaces.tobago.component.UITree",
+ uiComponent = "org.apache.myfaces.tobago.component.UITreeMenu",
uiComponentBaseClass = "org.apache.myfaces.tobago.component.AbstractUITree",
- rendererType = RendererTypes.TREE,
+ rendererType = RendererTypes.TREE_MENU,
allowedChildComponenents = {
"org.apache.myfaces.tobago.TreeNode",
"org.apache.myfaces.tobago.TreeData"
})
-public interface TreeTagDeclaration
+public interface TreeMenuTagDeclaration
extends HasIdBindingAndRendered, HasTreeNodeValue, IsRequired, IsGridLayoutComponent, HasMarkup {
- /**
- * Flag indicating whether or not this component should be render selectable items.
- * Possible values are:
- * <ul>
- * <li><strong>multi</strong> : a multi section tree is rendered</li>
- * <li><strong>single</strong> : a single section tree is rendered</li>
- * <li><strong>multiLeafOnly</strong> : a multi section tree is rendered,
- * only Leaf's are selectable</li>
- * <li><strong>singleLeafOnly</strong> : a single section tree is rendered,
- * only Leaf's are selectable</li>
- * </ul>
- * For any other value or if this attribute is omitted the items are not selectable.
- */
- @TagAttribute
- @UIComponentTagAttribute(defaultValue = "off",
- allowedValues = {"multi", "single", "multiLeafOnly", "singleLeafOnly", "off"})
- void setSelectable(String selectable);
-
- @TagAttribute
- @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
- void setShowRootJunction(String showRootJunction);
-
- @TagAttribute
- @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
- void setShowIcons(String showIcons);
-
- @TagAttribute
- @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
- void setShowJunctions(String showJunctions);
-
@TagAttribute
@UIComponentTagAttribute(type = "boolean", defaultValue = "false")
void setShowRoot(String showRoot);
/**
- * Display option: Normal tree or menu.
- */
- @TagAttribute
- @UIComponentTagAttribute(defaultValue = "tree", allowedValues = {"tree", "menu"})
- void setMode(String mode);
-
- /**
*
* <strong>ValueBindingExpression</strong> pointing to a object to save the
* component's state.
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeNodeTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeNodeTagDeclaration.java?rev=918593&r1=918592&r2=918593&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeNodeTagDeclaration.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeNodeTagDeclaration.java Wed Mar 3 17:25:34 2010
@@ -37,7 +37,7 @@
/**
* Creates a tree node. This component represents a single node inside a tree structure.
- * For interating over tree node use tc:treeData
+ * For interating over tree node use tc:treeData.
*/
@SuppressWarnings("ALL")
@Tag(name = "treeNode")
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeTagDeclaration.java?rev=918593&r1=918592&r2=918593&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeTagDeclaration.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/TreeTagDeclaration.java Wed Mar 3 17:25:34 2010
@@ -31,7 +31,8 @@
import org.apache.myfaces.tobago.taglib.decl.IsRequired;
/**
- * A tree which has to variants: as menu or normal tree.
+ * A tree with classical look.
+ * Usually used with icons and junction lines to open folder, etc.
*/
@Tag(name = "tree")
@BodyContentDescription(anyTagOf = "<tc:treeNode>|<tc:treeData>")
@@ -81,13 +82,6 @@
void setShowRoot(String showRoot);
/**
- * Display option: Normal tree or menu.
- */
- @TagAttribute
- @UIComponentTagAttribute(defaultValue = "tree", allowedValues = {"tree", "menu"})
- void setMode(String mode);
-
- /**
*
* <strong>ValueBindingExpression</strong> pointing to a object to save the
* component's state.
Modified: myfaces/tobago/trunk/example/demo/src/main/webapp/navigation.jsp
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/demo/src/main/webapp/navigation.jsp?rev=918593&r1=918592&r2=918593&view=diff
==============================================================================
--- myfaces/tobago/trunk/example/demo/src/main/webapp/navigation.jsp (original)
+++ myfaces/tobago/trunk/example/demo/src/main/webapp/navigation.jsp Wed Mar 3 17:25:34 2010
@@ -23,7 +23,7 @@
<tc:gridLayout rows="*"/>
</f:facet>
- <tc:tree id="nav" mode="menu" showRoot="true" state="#{navigation.state}">
+ <tc:treeMenu id="nav" state="#{navigation.state}">
<tc:treeData value="#{navigation.tree}" var="node" id="data">
<tc:treeNode label="#{node.userObject.title}"
action="#{node.userObject.action}"
@@ -31,7 +31,7 @@
value="#{node}"
expanded="true"/>
</tc:treeData>
- </tc:tree>
+ </tc:treeMenu>
</tc:panel>
</f:subview>
Modified: myfaces/tobago/trunk/example/demo/src/main/webapp/navigation.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/demo/src/main/webapp/navigation.xhtml?rev=918593&r1=918592&r2=918593&view=diff
==============================================================================
--- myfaces/tobago/trunk/example/demo/src/main/webapp/navigation.xhtml (original)
+++ myfaces/tobago/trunk/example/demo/src/main/webapp/navigation.xhtml Wed Mar 3 17:25:34 2010
@@ -28,7 +28,7 @@
<tc:gridLayout rows="*"/>
</f:facet>
- <tc:tree id="nav" mode="menu" showRoot="true" state="#{navigation.state}">
+ <tc:treeMenu id="nav" state="#{navigation.state}">
<tc:treeData value="#{navigation.tree}" var="node" id="data">
<tc:treeNode label="#{node.userObject.title}"
action="#{node.userObject.action}"
@@ -36,7 +36,7 @@
value="#{node}"
expanded="true"/>
</tc:treeData>
- </tc:tree>
+ </tc:treeMenu>
</tc:panel>
</f:subview>
Modified: myfaces/tobago/trunk/example/demo/src/main/webapp/overview/tree.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/demo/src/main/webapp/overview/tree.xhtml?rev=918593&r1=918592&r2=918593&view=diff
==============================================================================
--- myfaces/tobago/trunk/example/demo/src/main/webapp/overview/tree.xhtml (original)
+++ myfaces/tobago/trunk/example/demo/src/main/webapp/overview/tree.xhtml Wed Mar 3 17:25:34 2010
@@ -93,6 +93,33 @@
</tc:panel>
</tc:tab>
+ <tc:tab label="#{overviewBundle.treeLabel} as Menu"><!-- todo i18n -->
+ <f:facet name="layout">
+ <tc:gridLayout columns="2*;1*"/>
+ </f:facet>
+
+ <tc:treeMenu id="treeMenu" showRoot="#{demo.showRoot}">
+ <tc:treeData value="#{demo.tree}" var="node" id="data">
+ <tc:treeNode label="#{node.userObject.name}"
+ id="template"
+ expanded="true"
+ value="#{node}"
+ image="image/feather.png"/>
+ </tc:treeData>
+ </tc:treeMenu>
+
+ <tc:panel>
+ <f:facet name="layout">
+ <tc:gridLayout rows="fixed;*;fixed"/>
+ </f:facet>
+
+ <tc:selectBooleanCheckbox label="#{overviewBundle.treeShowRoot}"
+ value="#{demo.showRoot}"/>
+ <tc:cell/>
+ <tc:button action="redisplay" label="#{overviewBundle.submit}"/>
+ </tc:panel>
+
+ </tc:tab>
<tc:tab label="#{overviewBundle.treeListboxLabel} (todo)">
<tc:treeListbox id="tree">
Modified: myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-menu.jsp
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-menu.jsp?rev=918593&r1=918592&r2=918593&view=diff
==============================================================================
--- myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-menu.jsp (original)
+++ myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-menu.jsp Wed Mar 3 17:25:34 2010
@@ -21,28 +21,22 @@
<f:view>
<tc:loadBundle basename="demo" var="bundle"/>
- <tc:page label="Sandbox - Tree" id="page"
- width="500px" height="1000px">
+ <tc:page label="Sandbox - Tree" id="page" width="500px" height="1000px">
<f:facet name="layout">
<tc:gridLayout margin="10px" rows="*;*;*"/>
</f:facet>
- <tc:tree id="menu"
- showIcons="false"
- showJunctions="false"
- showRootJunction="false"
- showRoot="true"
- mode="menu">
+ <tc:treeMenu id="menu" showRoot="true">
<tc:treeNode label="Root" id="root" expanded="true">
<tc:treeData value="#{treeController.tree}" var="node" id="data">
<tc:treeNode label="#{node.userObject.name}"
- id="template"
- expanded="#{node.userObject.expanded}"
- markup="#{node.userObject.markup}"
- tip="#{node.userObject.tip}"
- action="#{node.userObject.action}"
- disabled="#{node.userObject.disabled}"
- value="#{node}"/>
+ id="template"
+ expanded="#{node.userObject.expanded}"
+ markup="#{node.userObject.markup}"
+ tip="#{node.userObject.tip}"
+ action="#{node.userObject.action}"
+ disabled="#{node.userObject.disabled}"
+ value="#{node}"/>
</tc:treeData>
<tc:treeNode label="2 Action 1" action="#{treeController.action1}" id="action1"/>
<tc:treeNode label="3 Action 2" action="#{treeController.action2}" id="action2"/>
@@ -55,37 +49,37 @@
<tc:treeNode label="5 Link" link="http://myfaces.apache.org/tobago/" id="link" tip="Subnode Link"/>
<tc:treeNode label="6 Target" action="#{treeController.action2}" target="Target Window"/>
</tc:treeNode>
- </tc:tree>
+ </tc:treeMenu>
- <tc:tree mode="menu">
+ <tc:treeMenu>
<tc:treeData value="#{treeController.tree}" var="node" id="data">
<tc:treeNode label="#{node.userObject.name}"
- id="template"
- expanded="#{node.userObject.expanded}"
- markup="#{node.userObject.markup}"
- tip="#{node.userObject.tip}"
- action="#{node.userObject.action}"
- disabled="#{node.userObject.disabled}"
- value="#{node}"/>
+ id="template"
+ expanded="#{node.userObject.expanded}"
+ markup="#{node.userObject.markup}"
+ tip="#{node.userObject.tip}"
+ action="#{node.userObject.action}"
+ disabled="#{node.userObject.disabled}"
+ value="#{node}"/>
</tc:treeData>
- </tc:tree>
+ </tc:treeMenu>
- <tc:tree mode="menu">
+ <tc:treeMenu>
<tc:treeNode label="Root" expanded="true">
- <tc:treeNode label="2 Action 1" />
- <tc:treeNode label="3 Action 2" />
- <tc:treeNode label="4 Action 3" >
- <tc:treeNode label="4.1 On Click 1" onclick="alert('On Click 1');" />
- <tc:treeNode label="4.2 On Click 2" onclick="alert('On Click 2');" >
- <tc:treeNode label="4.2.1 On Click 3" onclick="alert('On Click 3');" />
+ <tc:treeNode label="2 Action 1"/>
+ <tc:treeNode label="3 Action 2"/>
+ <tc:treeNode label="4 Action 3">
+ <tc:treeNode label="4.1 On Click 1" onclick="alert('On Click 1');"/>
+ <tc:treeNode label="4.2 On Click 2" onclick="alert('On Click 2');">
+ <tc:treeNode label="4.2.1 On Click 3" onclick="alert('On Click 3');"/>
</tc:treeNode>
</tc:treeNode>
<tc:treeNode label="5 Link" link="http://myfaces.apache.org/tobago/" tip="Subnode Link"/>
<tc:treeNode label="6 Target" target="Target Window"/>
</tc:treeNode>
- </tc:tree>
+ </tc:treeMenu>
- <tc:cell />
+ <tc:cell/>
</tc:page>
</f:view>
Copied: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuRenderer.java (from r917992, myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeRenderer.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuRenderer.java?p2=myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuRenderer.java&p1=myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeRenderer.java&r1=917992&r2=918593&rev=918593&view=diff
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuRenderer.java Wed Mar 3 17:25:34 2010
@@ -17,113 +17,6 @@
* limitations under the License.
*/
-import org.apache.myfaces.tobago.component.AbstractUITree;
-import org.apache.myfaces.tobago.context.TobagoFacesContext;
-import org.apache.myfaces.tobago.renderkit.LayoutComponentRendererBase;
-import org.apache.myfaces.tobago.renderkit.css.Style;
-import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
-import org.apache.myfaces.tobago.renderkit.html.HtmlConstants;
-import org.apache.myfaces.tobago.renderkit.html.util.HtmlRendererUtils;
-import org.apache.myfaces.tobago.renderkit.util.RenderUtil;
-import org.apache.myfaces.tobago.util.ComponentUtils;
-import org.apache.myfaces.tobago.util.FastStringWriter;
-import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
+public class TreeMenuRenderer extends TreeRenderer {
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
-import java.io.IOException;
-
-public class TreeRenderer extends LayoutComponentRendererBase {
-
- private static final String SCRIPT = "script/tobago-tree.js";
-
- public void prepareRender(FacesContext facesContext, UIComponent component) throws IOException {
- super.prepareRender(facesContext, component);
- if (facesContext instanceof TobagoFacesContext) {
- // todo: this may be removed, it is twice on the page 1. in the header 2. in the ScriptLoader
- ((TobagoFacesContext) facesContext).getScriptFiles().add(SCRIPT);
- }
- }
-
- @Override
- public void decode(FacesContext facesContext, UIComponent component) {
- if (ComponentUtils.isOutputOnly(component)) {
- return;
- }
-
- AbstractUITree tree = (AbstractUITree) component;
- tree.setValid(true);
- }
-
- public static boolean isSelectable(AbstractUITree tree) {
- return tree.isSelectableTree();
- }
-
- @Override
- public void encodeChildren(FacesContext context, UIComponent component) throws IOException {
- // will be rendered in encodeEnd()
- }
-
- @Override
- public void encodeEnd(FacesContext facesContext, UIComponent component) throws IOException {
-
- AbstractUITree tree = (AbstractUITree) component;
-
- String clientId = tree.getClientId(facesContext);
- UIComponent root = tree.getRoot();
-
- TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);
-
- writer.startElement(HtmlConstants.DIV, tree);
- writer.writeClassAttribute();
- Style style = new Style(facesContext, tree);
- writer.writeStyleAttribute(style);
-
- writer.startElement(HtmlConstants.INPUT, tree);
- writer.writeAttribute(HtmlAttributes.TYPE, "hidden", false);
- writer.writeNameAttribute(clientId);
- writer.writeIdAttribute(clientId);
- writer.writeAttribute(HtmlAttributes.VALUE, ";", false);
- writer.endElement(HtmlConstants.INPUT);
-
- writer.startElement(HtmlConstants.INPUT, tree);
- writer.writeAttribute(HtmlAttributes.TYPE, "hidden", false);
- writer.writeNameAttribute(clientId + AbstractUITree.MARKER);
- writer.writeIdAttribute(clientId + AbstractUITree.MARKER);
- writer.writeAttribute(HtmlAttributes.VALUE, "", false);
- writer.endElement(HtmlConstants.INPUT);
-
- if (isSelectable(tree)) {
- writer.startElement(HtmlConstants.INPUT, tree);
- writer.writeAttribute(HtmlAttributes.TYPE, "hidden", false);
- writer.writeNameAttribute(clientId + AbstractUITree.SELECT_STATE);
- writer.writeIdAttribute(clientId + AbstractUITree.SELECT_STATE);
- writer.writeAttribute(HtmlAttributes.VALUE, ";", false);
- writer.endElement(HtmlConstants.INPUT);
- }
-
- HtmlRendererUtils.writeScriptLoader(facesContext, SCRIPT);
-
- RenderUtil.encode(facesContext, root);
-
- writer.endElement(HtmlConstants.DIV);
- }
-
- // XXX can be removed?
- protected String getNodesAsJavascript(FacesContext facesContext, UIComponent root) throws IOException {
- ResponseWriter writer = facesContext.getResponseWriter();
- FastStringWriter stringWriter = new FastStringWriter();
- facesContext.setResponseWriter(writer.cloneWithWriter(stringWriter));
- RenderUtil.encode(facesContext, root);
- facesContext.setResponseWriter(writer);
- return stringWriter.toString();
- }
-
- // XXX can be removed?
- protected String nodeStateId(FacesContext facesContext, UIComponent node) {
- String clientId = node.getClientId(facesContext);
- int last = clientId.lastIndexOf(':') + 1;
- return clientId.substring(last);
- }
}
Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRenderer.java?rev=918593&r1=918592&r2=918593&view=diff
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRenderer.java Wed Mar 3 17:25:34 2010
@@ -26,6 +26,7 @@
import org.apache.myfaces.tobago.component.Facets;
import org.apache.myfaces.tobago.component.UITree;
import org.apache.myfaces.tobago.component.UITreeListbox;
+import org.apache.myfaces.tobago.component.UITreeMenu;
import org.apache.myfaces.tobago.component.UITreeNode;
import org.apache.myfaces.tobago.context.ResourceManagerUtil;
import org.apache.myfaces.tobago.context.ResourceUtils;
@@ -110,8 +111,8 @@
public void encodeBegin(FacesContext facesContext, UIComponent component) throws IOException {
UITreeNode node = (UITreeNode) component;
AbstractUITree tree = node.findTree();
- if (tree instanceof UITree) {
- encodeBeginMenuAndNormal(facesContext, node, (UITree)tree);
+ if (tree instanceof UITree || tree instanceof UITreeMenu) {
+ encodeBeginMenuAndNormal(facesContext, node, tree, tree instanceof UITreeMenu);
} else { // if (tree instanceof UITreeListbox)
encodeBeginListbox(facesContext, node, (UITreeListbox)tree);
}
@@ -183,7 +184,8 @@
}
}
- public void encodeBeginMenuAndNormal(FacesContext facesContext, UITreeNode node, UITree tree) throws IOException {
+ public void encodeBeginMenuAndNormal(FacesContext facesContext, UITreeNode node, AbstractUITree tree, boolean isMenu)
+ throws IOException {
String treeId = tree.getClientId(facesContext);
boolean folder = node.isFolder();
@@ -194,10 +196,14 @@
List<Boolean> junctions = node.getJunctions();
boolean expanded = isExpanded(tree, node);
- boolean menuMode = tree.getMode().equals("menu");
- boolean showIcons = tree.isShowIcons();
- boolean showJunctions = tree.isShowJunctions();
- boolean showRootJunction = tree.isShowRootJunction();
+ boolean showIcons = false;
+ boolean showJunctions = false;
+ boolean showRootJunction = false;
+ if (tree instanceof UITree) {
+ showIcons = ((UITree)tree).isShowIcons();
+ showJunctions = ((UITree)tree).isShowJunctions();
+ showRootJunction = ((UITree)tree).isShowRootJunction();
+ }
boolean showRoot = tree.isShowRoot();
if (!showRoot && junctions.size() > 0) {
@@ -249,7 +255,7 @@
// div class (css)
StyleClasses styleClasses = StyleClasses.ensureStyleClasses(node);
styleClasses.updateClassAttributeAndMarkup(node, "treeNode");
- if ("menu".equals(tree.getMode())) {
+ if (isMenu) {
styleClasses.addClass("treeNode", "menu");
if (marked) {
styleClasses.addClass("treeNode", "marker");
@@ -272,11 +278,11 @@
encodeExpandedHidden(writer, node, id, expanded);
}
- if (folder && menuMode) {
+ if (folder && isMenu) {
encodeMenuIcon(facesContext, writer, treeId, id, expanded, node);
}
- encodeIndent(facesContext, writer, menuMode, junctions);
+ encodeIndent(facesContext, writer, isMenu, junctions);
encodeTreeJunction(facesContext, writer, id, treeId, showJunctions, showRootJunction, showRoot, expanded,
folder, depth, hasNextSibling, openSource, closedSource);
@@ -474,7 +480,7 @@
public void encodeEnd(FacesContext facesContext, UIComponent component) throws IOException {
UITreeNode node = (UITreeNode) component;
AbstractUITree tree = node.findTree();
- if (tree instanceof UITree) {
+ if (tree instanceof UITree || tree instanceof UITreeMenu) {
encodeEndMenuAndNormal(facesContext, node);
} else { // if (tree instanceof UITreeListbox)
encodeEndListbox(facesContext, node);