それが有効な質問かどうかはわかりませんが、CompositeCell
構築するパラメータとして があります。DefaultNodeInfo
これは の一部ですTreeViewModel
。
基本的には、CompositeCell
次のようになります。
Tree item1[button1]
Tree item2[button2]
...
ここで、ツリー アイテムとボタンの間隔を設定します。
Tree item1 [button1]
これを達成する方法がわかりません。メソッドCompositeCell
がないので、私には適していないのsetSpacing
でしょうか?
しかし、とにかくNodeInfo
.
========================================
私の質問をより明確にさせてください。
Widget
私が持っているのはCellTreeだけです。を構築するCellTree
には、次を提供する必要がありますTreeViewModel
。
cellTree = new CellTree(
new SomeTreeViewModel(), null);
を構築するTreeViewModel
には、 を提供する必要がありますDefaultNodeInfo
。つまり、 で次のメソッドをオーバーライドするにはTreeViewModel
:
public <T> NodeInfo<?> getNodeInfo(final T value)
を構築するにはDefaultNodeInfo
:
public DefaultNodeInfo(AbstractDataProvider<T> dataProvider, Cell<T> cell)
提供する必要がありますCell
(最終的に私の質問になります...)
Cell
インターフェースではなく、Widget
単なるインターフェースです。
ここで、CompositeCell
を含む が必要ですAbstractCell
:
Tree item1
とButtonCell
:
[button1]
は次のCompositeCell
ようになります。
Tree item1[button1]
ButtonCell
どちらかCompositeCell
またはいずれかにスタイルを設定しCell
て間隔を追加したい:
Tree item1 [button1]
CellTree
ツリーのスタイルにのみ影響し、ツリー項目には影響しないため、css を適用しても効果がないと思います...
実際には回避策を見つけましたが、推奨されているとは思いません。これは、ButtonCell
のrender
メソッドをオーバーライドすることです。
public void render(final Context context, final SafeHtml data,
final SafeHtmlBuilder sb) {
sb.appendHtmlConstant("<button type=\"button\" tabindex=\"-1\" style=\"margin-left:10px;\">");
if (data != null) {
sb.append(data);
}
sb.appendHtmlConstant("</button>");
}
他の考えはありますか?