战斧tree2组件间距

时间:2010-08-01 12:20:27

标签: java jsf myfaces tomahawk

有没有办法改变节点的左边距? Tree2使用以下列来渲染这些边距:

<td height="100%" width="19" style=""><img height="18" border="0" width="19" src="/vwwinner/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/12806587/tree2.HtmlTreeRenderer/images/spacer.gif" alt="spacer"></td>

19 px宽度对我来说太大了,所以我很乐意找到如何改变这个值。

2 个答案:

答案 0 :(得分:0)

您始终可以使用css覆盖宽度值。

td { width: 100px; }

应该可以为treeNode指定styleClass。

在任何情况下,都不推荐使用td元素的width属性,而应使用css。

答案 1 :(得分:0)

好吧,由于未知原因,值在t:tree2渲染器类(HtmlTreeRenderer)中被硬编码:

protected void encodeCurrentNode(...) {
        .....
        out.writeAttribute(HTML.WIDTH_ATTR, "19", null);
        out.writeAttribute(HTML.HEIGHT_ATTR, "100%", null);
        ...
}

所以我只是扩展了那个类,覆盖了 encodeCurrentNode()方法并在faces-config.xml中注册了我的渲染器:

<render-kit>
  <render-kit-id>HTML_BASIC</render-kit-id>
  <renderer>
      <component-family>org.apache.myfaces.HtmlTree2 </component-family>
    <renderer-type>
        org.apache.myfaces.HtmlTree2 
    </renderer-type>
    <renderer-class>
        com.myapp.MyHtmlTreeRenderer
    </renderer-class>
 </renderer>
</render-kit>