1

gwt CellListの例を使用して、セルベースのリストボックスを実装しました。TextCellセルを使用してデータを表現しました。これは単なる textであり、完全に機能しました。

ここで、このリストを拡張して「ツリー」タイプの要素を含める必要があります (つまり、リストの一部の要素をクリックすると、それがリーフでない場合、その要素が開かれ、その子の情報が表示されます)。そこで、CellTree ベースのウィジェットを実装しました。(セルツリー)

私の問題は、実際にはCellTreeである「ツリー」タイプのアイテムをCellListに挿入する方法がわからないことです。

私が想像できる唯一のアプローチは、CellTree を表す新しいタイプのセルを作成し、「AbstractCell」を拡張して、それを CellList アイテムとして使用することでした。

私の実装は次のとおりです。

private class TreeCell extends AbstractCell<CellTreeListBox> {

    public TreeCell() {}

    @Override
    public void render(Context context, CellTreeListBox value,
        SafeHtmlBuilder sb)
    {
      sb.appendEscaped(value.getElement().getInnerHTML());
    }
}

これは、CellList に含まれると、ルート ノードのみが表示されますが、それらをクリックしても開かれません! したがって、このアプローチでは、イベントもselectionModelの機能も保持されません...

そのため、CellTree 全体を表し、そのイベントと機能を保持するセルを実装できるかどうかはわかりません (クリックすると、ノードが開かれ、その子の情報が表示されるなど...)。

これに関する情報をいただければ幸いです。

4

1 に答える 1

0

をに置き換える必要がCellListありますCellTree

それか、ウィジェット(、または)を(手動で)配置CellListするコンテナパネル(FlowPanel、 )に置き換え、それらの間に挿入して表示します。ただし、セル ウィジェットの他の機能は失われます: 、ページングなど。VerticalPanelLabelCellWidgetTextCellCellTreeSelectionModel

いずれにせよ、あなたのを捨ててくださいCellList。セル ウィジェット内にウィジェットを埋め込むことはできません。

于 2013-01-23T11:17:00.520 に答える