【发布时间】:2012-05-01 23:55:01
【问题描述】:
我对 GWT CellTree 有疑问,此时我想知道它是否真的准备好迎接黄金时段了。也许我没有得到默认用例??
到目前为止,在 Web 上看到的大多数问题都与使用 CellTree 但使用简单的ListDataProvider(例如GWT - Add and remove nodes in celltree)的 CRUD 操作有关。
在我的例子中,我使用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。
【问题讨论】:
标签: gwt