我对 GWT CellTree 有疑问,此时,我想知道它是否真的准备好迎接黄金时段了。也许我没有得到默认用例?
到目前为止,在 Web 上看到的大多数问题都与使用 CellTree 的 CRUD 操作有关,但使用的是简单的ListDataProvider,例如GWT - 在 celltree 中添加和删除节点。
就我而言,我正在使用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 中很容易实现,甚至在大多数其他提供 Tree 小部件的 Web 框架中也是如此。
使用默认的Tree小部件并用“正在加载”图像替换我自己的图标会更直接吗?看起来基本 Tree 允许对节点进行更多操作,如TreeItems。