有人能夠在運行時正確更新單元格瀏覽器,即當您刪除節點或添加節點時,更改會立即反映在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. GWT Cell Browser實時更新問題
- 2. GWT WindowClosingHandler刷新瀏覽器刷新
- 3. GWT瀏覽器刷新問題
- 4. 瀏覽器更新腳本
- 5. GWT最後瀏覽器
- 6. GWT和PS3瀏覽器(Netfront)
- 7. GWT ListBox的跨瀏覽器
- 8. 在瀏覽器中的實時預覽
- 9. 瀏覽器不更新代碼更改?
- 10. 瀏覽器到瀏覽器的實時流式傳輸系統
- 11. 實時瀏覽器遊戲服務器
- 12. 實時電力bi儀表板更新,無需刷新瀏覽器
- 13. ASP.NET和會話 - 新的瀏覽器實例與新的瀏覽器窗口
- 14. 實現瀏覽器
- 15. 更新flash網站,瀏覽器何時下載新版本
- 16. 刷新瀏覽器?
- 17. 瀏覽器不會讀取更新CSS
- 18. WebClient說「更新您的瀏覽器」
- 19. jquery更新所有瀏覽器
- 20. 定期檢查瀏覽器更新
- 21. jQuery DOM跨瀏覽器更新問題
- 22. Silverlight 3退出瀏覽器更新
- 23. 瀏覽器滾動和更新面板
- 24. ASP.NET瀏覽器上限更新
- 25. 覆蓋/更新瀏覽器cookie
- 26. 檢測哪個瀏覽器在Java GWT
- 27. Chrome瀏覽器是否支持GWT 2.5?
- 28. 檢測GWT中的移動瀏覽器
- 29. 使用GWT檢測瀏覽器版本?
- 30. GWT對瀏覽器的排列