You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sc...@apache.org on 2006/05/08 21:02:49 UTC
svn commit: r405131 - in /myfaces:
shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/
tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/
tomahawk/trunk/core/src/test/java/org/apache/myfaces/custom/tree2/
Author: schof
Date: Mon May 8 12:02:47 2006
New Revision: 405131
URL: http://svn.apache.org/viewcvs?rev=405131&view=rev
Log:
Fixes TOMAHAWK-47
Added:
myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/custom/tree2/HtmlTreeTest.java
Modified:
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/HtmlTree.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/HtmlTreeRenderer.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/TreeTag.java
myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/custom/tree2/HtmlTreeRendererTest.java
Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java
URL: http://svn.apache.org/viewcvs/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java?rev=405131&r1=405130&r2=405131&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java Mon May 8 12:02:47 2006
@@ -116,13 +116,6 @@
String VAR_ATTR = "var";
String FIRST_ATTR = "first";
- // Tree2 attributes
- String SHOW_NAV = "org.apache.myfaces.tree2.SHOW_NAV";
- String SHOW_LINES = "org.apache.myfaces.tree2.SHOW_LINES";
- String CLIENT_SIDE_TOGGLE = "org.apache.myfaces.tree2.CLIENT_SIDE_TOGGLE";
- String SHOW_ROOT_NODE = "org.apache.myfaces.tree2.SHOW_ROOT_NODE";
- String PRESERVE_TOGGLE = "org.apache.myfaces.tree2.PRESERVE_TOGGLE";
-
// dataTable (extended) attributes
String ROW_ID = "org.apache.myfaces.dataTable.ROW_ID";
String ROW_STYLECLASS_ATTR = "org.apache.myfaces.dataTable.ROW_STYLECLASS";
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/HtmlTree.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/HtmlTree.java?rev=405131&r1=405130&r2=405131&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/HtmlTree.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/HtmlTree.java Mon May 8 12:02:47 2006
@@ -19,6 +19,7 @@
import javax.faces.component.html.HtmlCommandLink;
import javax.faces.context.FacesContext;
import javax.faces.el.MethodBinding;
+import javax.faces.el.ValueBinding;
import java.util.Map;
/**
@@ -26,7 +27,6 @@
* state of the nodes in the tree.
*
* @author Sean Schofield
- * @version $Revision$ $Date$
*/
public class HtmlTree extends UITreeData
{
@@ -34,7 +34,13 @@
private static final String DEFAULT_RENDERER_TYPE = "org.apache.myfaces.HtmlTree2";
private UICommand _expandControl;
private String _varNodeToggler;
- //private String _selectedNodeId;
+ private Boolean _showNav;
+ private Boolean _showLines;
+ private Boolean _clientSideToggle;
+ private Boolean _showRootNode;
+ private Boolean _preserveToggle;
+ private String _javascriptLocation;
+ private String _imageLocation;
/**
* Constructor
@@ -44,17 +50,28 @@
setRendererType(DEFAULT_RENDERER_TYPE);
_expandControl = new HtmlCommandLink();
_expandControl.setParent(this);
+ _clientSideToggle = Boolean.TRUE;
+ _preserveToggle = Boolean.TRUE;
+ _showRootNode = Boolean.TRUE;
+ _showNav = Boolean.TRUE;
+ _showLines = Boolean.TRUE;
}
// see superclass for documentation
public Object saveState(FacesContext context)
{
- Object values[] = new Object[2];
+ Object values[] = new Object[9];
values[0] = super.saveState(context);
values[1] = _varNodeToggler;
- //values[2] = _selectedNodeId;
+ values[2] = _showLines;
+ values[3] = _showNav;
+ values[4] = _clientSideToggle;
+ values[5] = _showRootNode;
+ values[6] = _preserveToggle;
+ values[7] = _javascriptLocation;
+ values[8] = _imageLocation;
- return ((Object) (values));
+ return (Object)values;
}
// see superclass for documentation
@@ -63,7 +80,13 @@
Object values[] = (Object[])state;
super.restoreState(context, values[0]);
setVarNodeToggler((String)values[1]);
- //_selectedNodeId = (String)values[2];
+ setShowLines(((Boolean)values[2]).booleanValue());
+ setShowNav(((Boolean)values[3]).booleanValue());
+ setClientSideToggle(((Boolean)values[4]).booleanValue());
+ setShowRootNode(((Boolean)values[5]).booleanValue());
+ setPreserveToggle(((Boolean)values[6]).booleanValue());
+ setJavascriptLocation((String)values[7]);
+ setImageLocation((String)values[8]);
}
// see superclass for documentation
@@ -100,24 +123,108 @@
_expandControl.setAction(actionBinding);
}
-// /**
-// * Implements the {@link javax.faces.event.ActionListener} interface. Basically, this
-// * method is used to listen for node selection events (when a user has clicked on a
-// * leaf node.)
-// *
-// * @param event ActionEvent
-// */
-// public void setNodeSelected(ActionEvent event)
-// {
-// _selectedNodeId = getNodeId();
-// }
-//
-// /**
-// * Indicates whether or not the current {@link TreeNode} is selected.
-// * @return boolean
-// */
-// public boolean isNodeSelected()
-// {
-// return (getNodeId() != null) ? getNodeId().equals(_selectedNodeId) : false;
-// }
+ public void setShowNav(boolean showNav)
+ {
+ _showNav = Boolean.valueOf(showNav);
+ }
+
+ public boolean isShowNav()
+ {
+ if (_showNav != null) return _showNav.booleanValue();
+ ValueBinding vb = getValueBinding("showNav");
+ Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
+ return v == null || v.booleanValue();
+ }
+
+ public void setShowLines(boolean showLines)
+ {
+ _showLines = Boolean.valueOf(showLines);
+ }
+
+ public boolean isShowLines()
+ {
+ if (_showLines != null) return _showLines.booleanValue();
+ ValueBinding vb = getValueBinding("showLines");
+ Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
+ return v == null || v.booleanValue();
+ }
+
+ public void setClientSideToggle(boolean clientSideToggle)
+ {
+ _clientSideToggle = Boolean.valueOf(clientSideToggle);
+ }
+
+ public boolean isClientSideToggle()
+ {
+ if (_clientSideToggle != null) return _clientSideToggle.booleanValue();
+ ValueBinding vb = getValueBinding("clientSideToggle");
+ Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
+ return v == null || v.booleanValue();
+ }
+
+ public void setShowRootNode(boolean showRootNode)
+ {
+ _showRootNode = Boolean.valueOf(showRootNode);
+ }
+
+ public boolean isShowRootNode()
+ {
+ if (_showRootNode != null) return _showRootNode.booleanValue();
+ ValueBinding vb = getValueBinding("showRootNode");
+ Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
+ return v == null || v.booleanValue();
+ }
+
+ public void setPreserveToggle(boolean preserveToggle)
+ {
+ _preserveToggle = Boolean.valueOf(preserveToggle);
+ }
+
+ public boolean isPreserveToggle()
+ {
+ if (_preserveToggle != null) return _preserveToggle.booleanValue();
+ ValueBinding vb = getValueBinding("preserveToggle");
+ Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
+ return v == null || v.booleanValue();
+ }
+
+ public void setJavascriptLocation(String javascriptLocation)
+ {
+ _javascriptLocation = javascriptLocation;
+ }
+
+ public String getJavascriptLocation()
+ {
+ if (_javascriptLocation != null) return _javascriptLocation;
+
+ ValueBinding vb = getValueBinding("javascriptLocation");
+ if (vb == null)
+ {
+ return null;
+ }
+ else
+ {
+ return (String)vb.getValue(getFacesContext());
+ }
+ }
+
+ public void setImageLocation(String imageLocation)
+ {
+ _imageLocation = imageLocation;
+ }
+
+ public String getImageLocation()
+ {
+ if (_imageLocation != null) return _imageLocation;
+
+ ValueBinding vb = getValueBinding("imageLocation");
+ if (vb == null)
+ {
+ return null;
+ }
+ else
+ {
+ return (String)vb.getValue(getFacesContext());
+ }
+ }
}
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/HtmlTreeRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/HtmlTreeRenderer.java?rev=405131&r1=405130&r2=405131&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/HtmlTreeRenderer.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/HtmlTreeRenderer.java Mon May 8 12:02:47 2006
@@ -21,7 +21,6 @@
import org.apache.myfaces.renderkit.html.util.AddResourceFactory;
import org.apache.myfaces.shared_tomahawk.renderkit.html.HTML;
import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRendererUtils;
-import org.apache.myfaces.shared_tomahawk.renderkit.JSFAttr;
import org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils;
import javax.faces.component.NamingContainer;
@@ -121,7 +120,7 @@
String nodeId = null;
HtmlTree tree = (HtmlTree)component;
- if (getBoolean(component, JSFAttr.CLIENT_SIDE_TOGGLE, true))
+ if (tree.isClientSideToggle())
{
restoreStateFromCookies(context, component);
}
@@ -142,8 +141,12 @@
{
HtmlTree tree = (HtmlTree)component;
// try to restore the tree state from cookies if no session scoped TreeState is supplied and preserveToggle is true in client mode
- if (!tree.getDataModel().getTreeState().isTransient() && getBoolean(component, JSFAttr.CLIENT_SIDE_TOGGLE, true) && getBoolean(component, JSFAttr.PRESERVE_TOGGLE, true))
+ if (!tree.getDataModel().getTreeState().isTransient()
+ && tree.isClientSideToggle()
+ && tree.isPreserveToggle())
+ {
restoreStateFromCookies(context, component);
+ }
// write javascript functions
encodeJavascript(context, component);
@@ -182,8 +185,8 @@
out.writeAttribute("id", clientId, "id");
}
- boolean clientSideToggle = getBoolean(tree, JSFAttr.CLIENT_SIDE_TOGGLE, true);
- boolean showRootNode = getBoolean(tree, JSFAttr.SHOW_ROOT_NODE, true);
+ boolean clientSideToggle = tree.isClientSideToggle();
+ boolean showRootNode = tree.isShowRootNode();
TreeState state = tree.getDataModel().getTreeState();
TreeWalker walker = tree.getDataModel().getTreeWalker();
@@ -244,7 +247,7 @@
protected void encodeTree(FacesContext context, ResponseWriter out, HtmlTree tree, TreeWalker walker)
throws IOException
{
- boolean clientSideToggle = getBoolean(tree, JSFAttr.CLIENT_SIDE_TOGGLE, true);
+ boolean clientSideToggle = tree.isClientSideToggle();
// encode the current node
HtmlRendererUtils.writePrettyLineSeparator(context);
@@ -301,10 +304,10 @@
TreeNode node = tree.getNode();
// set configurable values
- boolean showRootNode = getBoolean(tree, JSFAttr.SHOW_ROOT_NODE, true);
- boolean showNav = getBoolean(tree, JSFAttr.SHOW_NAV, true);
- boolean showLines = getBoolean(tree, JSFAttr.SHOW_LINES, true);
- boolean clientSideToggle = getBoolean(tree, JSFAttr.CLIENT_SIDE_TOGGLE, true);
+ boolean showRootNode = tree.isShowRootNode();
+ boolean showNav = tree.isShowNav();
+ boolean showLines = tree.isShowLines();
+ boolean clientSideToggle = tree.isClientSideToggle();
if (clientSideToggle)
{
@@ -391,8 +394,8 @@
TreeNode node = tree.getNode();
String nodeId = tree.getNodeId();
String spanId = TOGGLE_SPAN + ":" + tree.getId() + ":" + nodeId;//TOGGLE_SPAN + nodeId;
- boolean showLines = getBoolean(tree, JSFAttr.SHOW_LINES, true);
- boolean clientSideToggle = getBoolean(tree, JSFAttr.CLIENT_SIDE_TOGGLE, true);
+ boolean showLines = tree.isShowLines();
+ boolean clientSideToggle = tree.isClientSideToggle();
UIComponent nodeTypeFacet = tree.getFacet(node.getType());
String navSrc = null;
String altSrc = null;
@@ -604,7 +607,7 @@
private void encodeJavascript(FacesContext context, UIComponent component) throws IOException
{
// render javascript function for client-side toggle (it won't be used if user has opted for server-side toggle)
- String javascriptLocation = (String)component.getAttributes().get(JSFAttr.JAVASCRIPT_LOCATION);
+ String javascriptLocation = ((HtmlTree)component).getJavascriptLocation();
AddResource addResource = AddResourceFactory.getInstance(context);
if (javascriptLocation == null)
{
@@ -622,7 +625,7 @@
* Get the appropriate image src location. Uses the extension filter mechanism for images if no image
* location has been specified.
*
- * @param context The {@link FacesContex}. NOTE: If <code>null</code> then context path information
+ * @param context The {@link FacesContext}. NOTE: If <code>null</code> then context path information
* will not be used with extensions filter (assuming no imageLocation specified.)
* @param component UIComponent
* @param imageName The name of the image file to use.
@@ -630,7 +633,7 @@
*/
private String getImageSrc(FacesContext context, UIComponent component, String imageName, boolean withContextPath)
{
- String imageLocation = (String)component.getAttributes().get(JSFAttr.IMAGE_LOCATION);
+ String imageLocation = ((HtmlTree)component).getImageLocation();
AddResource addResource = AddResourceFactory.getInstance(context);
if (imageLocation == null)
{
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/TreeTag.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/TreeTag.java?rev=405131&r1=405130&r2=405131&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/TreeTag.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree2/TreeTag.java Mon May 8 12:02:47 2006
@@ -20,7 +20,6 @@
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
-import org.apache.myfaces.shared_tomahawk.renderkit.JSFAttr;
/**
* @author Sean Schofield
@@ -37,6 +36,8 @@
private String _clientSideToggle;
private String _showRootNode;
private String _preserveToggle;
+ private String _javascriptLocation;
+ private String _imageLocation;
public void release()
{
@@ -50,6 +51,8 @@
_clientSideToggle = null;
_showRootNode = null;
_preserveToggle = null;
+ _javascriptLocation = null;
+ _imageLocation = null;
}
public String getComponentType()
@@ -105,6 +108,28 @@
_preserveToggle = preserveToggle;
}
+ /**
+ * Overrides the super class method since we cannot store these properties in the component's attribute
+ * map and still have things work with facelets.
+ *
+ * @param javascriptLocation
+ */
+ public void setJavascriptLocation(String javascriptLocation)
+ {
+ _javascriptLocation = javascriptLocation;
+ }
+
+ /**
+ * Overrides the super class method since we cannot store these properties in the component's attribute
+ * map and still have things work with facelets.
+ *
+ * @param imageLocation
+ */
+ public void setImageLocation(String imageLocation)
+ {
+ _imageLocation = imageLocation;
+ }
+
protected void setProperties(UIComponent component)
{
super.setProperties(component);
@@ -127,10 +152,39 @@
((HtmlTree)component).setVarNodeToggler(_varNodeToggler);
}
- setBooleanProperty(component, JSFAttr.SHOW_NAV, _showNav);
- setBooleanProperty(component, JSFAttr.SHOW_LINES, _showLines);
- setBooleanProperty(component, JSFAttr.CLIENT_SIDE_TOGGLE, _clientSideToggle);
- setBooleanProperty(component, JSFAttr.SHOW_ROOT_NODE, _showRootNode);
- setBooleanProperty(component, JSFAttr.PRESERVE_TOGGLE, _preserveToggle);
+ if (_showNav != null)
+ {
+ ((HtmlTree)component).setShowNav(Boolean.getBoolean(_showNav));
+ }
+
+ if (_showLines != null)
+ {
+ ((HtmlTree)component).setShowLines(Boolean.getBoolean(_showLines));
+ }
+
+ if (_clientSideToggle != null)
+ {
+ ((HtmlTree)component).setClientSideToggle(Boolean.getBoolean(_clientSideToggle));
+ }
+
+ if (_showRootNode != null)
+ {
+ ((HtmlTree)component).setShowRootNode(Boolean.getBoolean(_showRootNode));
+ }
+
+ if (_preserveToggle != null)
+ {
+ ((HtmlTree)component).setPreserveToggle(Boolean.getBoolean(_preserveToggle));
+ }
+
+ if (_javascriptLocation != null)
+ {
+ ((HtmlTree)component).setJavascriptLocation(_javascriptLocation);
+ }
+
+ if (_imageLocation != null)
+ {
+ ((HtmlTree)component).setImageLocation(_imageLocation);
+ }
}
}
Modified: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/custom/tree2/HtmlTreeRendererTest.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/custom/tree2/HtmlTreeRendererTest.java?rev=405131&r1=405130&r2=405131&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/custom/tree2/HtmlTreeRendererTest.java (original)
+++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/custom/tree2/HtmlTreeRendererTest.java Mon May 8 12:02:47 2006
@@ -83,8 +83,8 @@
*/
public void testHideRootNodeServer() throws Exception
{
- tree.getAttributes().put(JSFAttr.CLIENT_SIDE_TOGGLE, Boolean.FALSE);
- tree.getAttributes().put(JSFAttr.SHOW_ROOT_NODE, Boolean.FALSE);
+ tree.setClientSideToggle(false);
+ tree.setShowRootNode(false);
HtmlTreeRenderer treeRenderer = new HtmlTreeRenderer();
treeRenderer.encodeChildren(facesContext, tree);
@@ -113,8 +113,8 @@
*/
public void testHideRootNodeClient() throws Exception
{
- tree.getAttributes().put(JSFAttr.CLIENT_SIDE_TOGGLE, Boolean.TRUE);
- tree.getAttributes().put(JSFAttr.SHOW_ROOT_NODE, Boolean.FALSE);
+ tree.setClientSideToggle(true);
+ tree.setShowRootNode(false);
HtmlTreeRenderer treeRenderer = new HtmlTreeRenderer();
treeRenderer.encodeChildren(facesContext, tree);
Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/custom/tree2/HtmlTreeTest.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/custom/tree2/HtmlTreeTest.java?rev=405131&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/custom/tree2/HtmlTreeTest.java (added)
+++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/custom/tree2/HtmlTreeTest.java Mon May 8 12:02:47 2006
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.myfaces.custom.tree2;
+
+import org.apache.shale.test.base.AbstractJsfTestCase;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * TestCase for HtmlTree
+ *
+ * @author Sean Schofield
+ */
+public class HtmlTreeTest extends AbstractTreeTestCase
+{
+ //private HtmlTree tree;
+
+ /**
+ * Constructor
+ * @param name Test name
+ */
+ public HtmlTreeTest(String name)
+ {
+ super(name);
+ }
+
+// public void setUp()
+// {
+// super.setUp();
+// tree = new HtmlTree();
+// }
+//
+// public void tearDown()
+// {
+// super.tearDown();
+// }
+
+ // Return the tests included in this test case.
+ public static Test suite()
+ {
+ return new TestSuite(HtmlTreeTest.class);
+ }
+
+ /**
+ * Test default values of the tree
+ */
+ public void testDefaults()
+ {
+ assertTrue("clientSideToggle default should be true", tree.isClientSideToggle());
+ assertTrue("showNav default should be true", tree.isShowNav());
+ assertTrue("showLines default should be true", tree.isShowLines());
+ assertTrue("showRootNode default should be true", tree.isShowRootNode());
+ assertTrue("preserveToggle default should be true", tree.isPreserveToggle());
+ }
+
+ /**
+ *
+ */
+ public void testSaveAndRestore()
+ {
+
+ }
+}