有人能够在运行时正确更新单元格浏览器,即当您删除节点或添加节点时,更改会立即反映在CEll浏览器中,因为我正在使用List当我正在进行更改时,它不会被当场更新GWT CEll浏览器实时更新
1
A
回答
1
您可以使用ListDataProvider setList(...)方法进行动态更新。这是我如何通过RPC更新单元浏览器为例:
private void loadAllData(final ListDataProvider<Data> dataProvider) {
dBservice.getAllData(new AsyncCallback<List<Data>>() {
public void onSuccess(List<Data> result) {
dataProvider.setList(result);
}
public void onFailure(Throwable caught) {
caught.printStackTrace();
}
});
}
0
刷新你有cellBrowser关闭所有孩子的根节点。 反正这样的事情
for (int i = 0; i < cellBrowser.getRootTreeNode().getChildCount(); i++) {
cellBrowser.getRootTreeNode().setChildOpen(i, false);
}
的AsyncDataProvider调用刷新数据
private final class Model implements TreeViewModel{
private List<ZonaProxy> zonaList = null;
private List<CategoriaProxy> categoriaList = null;
public void setCategoriaList(List<CategoriaProxy> categoriaList) {
this.categoriaList = categoriaList;
}
public void setListZona(List<ZonaProxy> zonaList) {
this.zonaList = zonaList;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public <T> NodeInfo<?> getNodeInfo(T value) {
CategoryDataProvider dataProvider1 = new CategoryDataProvider();
return new DefaultNodeInfo(dataProvider1, new CategoriaCell());
}
/**
* Check if the specified value represents a leaf node. Leaf nodes cannot be
* opened.
*/
public boolean isLeaf(Object value) {
if (value instanceof CategoriaProxy){
if (((CategoriaProxy) value).getLivello() == 3) {
return true;
}
}
return false;
}
}
private class CategoryDataProvider extends AsyncDataProvider<CategoriaProxy>
{
@Override
protected void onRangeChanged(HasData<CategoriaProxy> display)
{
requests.categoriaRequest().findAllCategorias(0, 8).with().fire(new Receiver<List<CategoriaProxy>>() {
@Override
public void onSuccess(List<CategoriaProxy> values) {
updateRowCount(values.size(), true);
updateRowData(0, values);
}
});
}
}
它的工作原理。
0
显然,仅仅改变数据提供者并刷新它是不够的。
你也需要给力的影响细胞在这个例子中关闭并重新打开它,因为
public void updateCellBrowser(String id) {
TreeNode node = getNode(cellBrowser.getRootTreeNode(),id);
if(node != null && ! node.isDestroyed()) {
TreeNode parent = node.getParent();
int index = node.getIndex();
parent.setChildOpen(index, false,true);
parent.setChildOpen(index, true, true);
}
}
在我的特殊例子中,小区ID路径名,因此以下 实施getNode的()。
private TreeNode getNode(TreeNode node, String id) {
for(int i=0; i < node.getChildCount(); i++)
if(node.isChildOpen(i)) {
Object value = node.getChildValue(i);
if(value instanceof String) {
String nodeId = ((String) value);
if(id.equals(nodeId))
return node.setChildOpen(i, true);
if(id.startsWith(nodeId))
getNode(node.setChildOpen(i, true),id);
}
}
return null;
}
相关问题
- 1. 实时服务器更新浏览器
- 2. GWT Cell Browser实时更新问题
- 3. GWT WindowClosingHandler刷新浏览器刷新
- 4. 新窗口中GWT,DOM,IE浏览器
- 5. GWT浏览器刷新问题
- 6. GWT中的“更改”浏览器事件
- 7. 谷歌浏览器更新
- 8. 浏览器更新脚本
- 9. GWT和PS3浏览器(Netfront)
- 10. GWT ListBox的跨浏览器
- 11. GWT最后浏览器
- 12. 在浏览器中的实时预览
- 13. GWT Cell List Ubinder
- 14. GWT Cell Callback
- 15. 浏览器不更新代码更改?
- 16. 浏览器到浏览器的实时流式传输系统
- 17. 实时浏览器游戏服务器
- 18. 实时电力bi仪表板更新,无需刷新浏览器
- 19. ASP.NET和会话 - 新的浏览器实例与新的浏览器窗口
- 20. 当硒浏览器在浏览器中更改url时检测
- 21. 实现浏览器
- 22. flask_moment当前时间刷新浏览器不更新
- 23. 更新flash网站,浏览器何时下载新版本
- 24. 更改HTML时自动更新浏览器
- 25. 更新浏览器在LightTable中更改文件时
- 26. 刷新浏览器?
- 27. C#web浏览器URL更新
- 28. 覆盖/更新浏览器cookie
- 29. 浏览器不会读取更新CSS
- 30. 谷歌浏览器更新CSS文件