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 全体を表し、そのイベントと機能を保持するセルを実装できるかどうかはわかりません (クリックすると、ノードが開かれ、その子の情報が表示されるなど...)。
これに関する情報をいただければ幸いです。