GWT CellTree に問題があり、この時点で、本当に準備が整っているかどうか疑問に思っています。多分私はデフォルトのユースケースを取得していません??
これまで Web で見られたほとんどの質問は、CellTree を使用した CRUD 操作に関連していますが、GWT - Add and remove nodes in celltreeなどの単純な ListDataProvider を使用しています。
私の場合、 AsyncDataProvider を使用して CellTree のノードを設定しています。ノードは、 RequestFactoryサービスを使用してオンデマンドでフェッチされます。
選択が与えられたら、子ノードを追加し、現在の選択を削除/更新したいと思います。私の意見では、GWT TreeViewModel インターフェースはあまりにも基本的です。
私の現在の理解では、DataProviders のマップを使用し、リモート呼び出しによって返された基になるリストの参照と、親のNodeInfoオブジェクトへの参照を保持することになります。
たとえば、現在の選択を削除するには、おそらく次のようにします。
TreeViewModel model = cellTree.getTreeViewModel();
TreeViewModel.NodeInfo nodeInfo = model.getNodeInfo(selectionFromChangeListener);
CustomNodeInfo parent = ((CustomNodeInfo) nodeInfo).getParent();
parent.getUnderLyingNodeListFromDataProvider().remove(selectionFromChangeListener);
// maybe force refresh using dataProvider???
parent.getDataProvider().refreshDisplayAsInRepopulateData()
より良い提案はありますか?私が間違っていない限り、それは挑戦的な仕事になりそうです...少しやり過ぎのように思えます。Swing では、ツリー ウィジェットを提供する他のほとんどの Web フレームワークでさえ、非常に簡単に実現できます。
デフォルトのTreeウィジェットを使用して、アイコンを「読み込み中」の画像に置き換える方が簡単でしょうか? 基本的な Tree では、TreeItemsとしてノードをより多く操作できるようです。