CellTree建议 - AsyncDataProvider添加/删除/更新

时间:2012-05-01 23:55:01

标签: gwt

我遇到了GWT CellTree的问题,此时,我想知道它是否真的准备好迎接黄金时段。也许我没有得到默认的用例?

到目前为止,通过Web看到的大多数问题都与使用CellTree的CRUD操作有关,但使用简单的ListDataProvider,例如GWT - Add and remove nodes in 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窗口小部件并用“加载”图像替换自己的图标会更简单吗?看起来基本的树允许更多地操作节点TreeItems

1 个答案:

答案 0 :(得分:1)

CellTree小部件似乎基于FastTree的原始代码。

FastTree已经或多或少地拥有了我需要的东西,没有某种 setUserObject 方法,就像在Swing DefaultMutableTreeNode

中一样

对于旋转图标,过去有人already investigated

我想现在,我将从CellTree切换到FastTree和FastTreeItem的自定义版本。

开箱即用的能力有getParentItem,remove(当前节点或特定的子节点)等方法?非常感谢先生......