Расстояние между компонентами томагавк-дерево2 - PullRequest
0 голосов
/ 01 августа 2010

Есть ли способ изменить левое поле для узлов?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 пикселей. Ширина слишком велика для меня, поэтому я был бы рад узнать, как изменить это значение.

Ответы [ 2 ]

0 голосов
/ 03 августа 2010

По неизвестным причинам это значение было жестко закодировано в классе визуализации t: tree2 (HtmlTreeRenderer):

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

Так что я просто расширил этот класс, переопределил метод encodeCurrentNode () и зарегистрировал мой рендерер в Face-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>
0 голосов
/ 02 августа 2010

Вы всегда можете переопределить значение ширины с помощью css.

td { width: 100px; }

Должна быть возможность указать styleClass для treeNode.

В любом случае атрибут width в элементе td имеет значениеустарел и вместо него следует использовать css.

...