chcę odpalić „węzła głównego otwarte” wydarzenie w moim obecnym CellTree roboczego, który ma teraz następujące zachowanie:Programowo odświeżyć GWT CellTree
@Override
public <T> NodeInfo<?> getNodeInfo(final T value) {
return new DefaultNodeInfo<Categoria>(
(value instanceof Categoria) ?
createBranchDataProvider((Categoria)value) :
rootDataProvider,
new CategoriaCell()
);
}
private AsyncDataProvider<Categoria> createRootDataProvider() {
AsyncDataProvider<Categoria> dataProvider = new AsyncDataProvider<Categoria>() {
@Override
protected void onRangeChanged(HasData<Categoria> display) {
AsyncCallback<Categoria[]> cb = new AsyncCallback<Categoria[]>() {
@Override
public void onSuccess(Categoria[] result) {
updateRowCount(result.length, true);
updateRowData(0, Arrays.asList(result));
}
@Override
public void onFailure(Throwable caught) {
Window.alert(caught.toString());
}
};
rpcService.getCategorie(cb);
}
};
return dataProvider;
}
Jak mogę pożar, który „onRangeChanged” zdarzenie, aby odświeżyć moje węzły poziomu 1?
Jaka jest moja metoda nieobecności?
private void updateTree() {
TreeNode rootTreeNode = cellTree.getRootTreeNode();
for (int i = 0; i < rootTreeNode.getChildCount(); i++) {
rootTreeNode.setChildOpen(i, false);
}
// HOW TO REFRESH LEVEL-1 NODES?
}
<< Później po odświeżeniu listy trzeba zaktualizować zapisany dataProvider na swój poziom-1 węzłów. >> Dobry!^___^ale ... JAK?!? -.- "Chodzi mi o to, że jedyną dostępną metodą dla dostawcy jest updateRowData(), czy muszę zduplikować kod rpc obecny w onRangeChanged(), czy mogę po prostu wywołać w jakiś sposób zdarzenie" range changed "? dzięki –
zobacz moją zaktualizowaną odpowiedź –