1

それが有効な質問かどうかはわかりませんが、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 を適用しても効果がないと思います...

実際には回避策を見つけましたが、推奨されているとは思いません。これは、ButtonCellrenderメソッドをオーバーライドすることです。

                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>");
                }

他の考えはありますか?

4

1 に答える 1

1

CSS クラスをセル、またはそれを含むウィジェットに追加します。例えば:

.myCell input, .myCell div {
    margin-left: 10px;
}

それで

cellTree.setStyleName("myCell");
于 2012-10-16T05:25:48.030 に答える