実行時に、ノードを削除したりノードを追加したときに、セルブラウザを正しく更新できる人がいました。リストを使用しているため、変更はすぐにCEllブラウザに反映されます私が変更を行っているときに、現場で更新されていません。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のDatePicker-Cell-Popup用のCSS
- 2. GWT Cellウィジェットはなぜですか?
- 3. GWTのクリック時にCellテーブルのヘッダ列名を取得
- 4. VBA Integer from Cell
- 5. iOSテーブルビューRefresh Cell
- 6. ボタンアクションin UITableView Cell
- 7. CSS3ディスプレイ:table-cell&float?
- 8. TTTableViewController with custom cell sample
- 9. プロトタイプCellからpushViewController
- 10. GridView OnRowDataBound、CellのText.Length
- 11. Java Swing GridLayout "Cell span"?
- 12. UItableviewcell "cell-identifier"メモリ管理
- 13. RCP/RAP:SWT/JFace-TableViewer-Cellのリンク
- 14. ディスプレイ:table-cell;テーブルの外側
- 15. 「display:table-cell」の間のパディング
- 16. apache poiを使ってA1(Cell Address)のCell値を取得する方法3.6
- 17. iPhone UITableView "More" Cell?実装方法
- 18. jQueryのTableRows/Table Cellによるループパフォーマンス
- 19. <img>要素とディスプレイ:table-cell
- 20. SilverlightでCellをハイライトする方法DataGrid
- 21. WPF汎用DataGrid CellTemplate - Bind to Cell値?
- 22. DIV over table cell(Firefoxの問題)
- 23. GWTセルテーブルの問題
- 24. GWTとExt-GWT:比較
- 25. GWTコードまたはGWTデザイナー?
- 26. GWTとExt-GWT:比較
- 27. GWT
- 28. GWT
- 29. GWT
- 30. gwtアプリケーションの複合セル