2

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としてノードをより多く操作できるようです。

4

1 に答える 1

1

CellTree ウィジェットはFastTreeの元のコードに基づいているようです。

FastTreeには、Swing DefaultMutableTreeNodeのような何らかのsetUserObjectメソッドがなくても、必要なものが多かれ少なかれ既にあります。

回転するアイコンについては、過去に誰かが調査しました。

とりあえず、 CellTree から FastTree とFastTreeItemのカスタマイズされたバージョンに切り替えると思います。

getParentItem、remove(現在のノードまたは特定の子ノード) などのメソッドをすぐに使用できる機能?? ありがとうございます...

于 2012-05-03T11:27:18.647 に答える