それが有効な質問かどうかはわかりませんが、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>");
}
他の考えはありますか?