Я работаю над проектом SmartGWT, в котором я бы хотел, чтобы моя основная навигация осуществлялась через сетку деревьев. Древовидная сетка визуализируется правильно, и ее источник данных также функционирует надлежащим образом. Сетка дерева правильно расположена слева от холста mainView.
То, что я не могу понять, это то, как переключать содержимое холста mainView на основе того, что выбрано в NavigationTree. Я имитировал функциональность, которую хотел бы, добавляя новые окна к существующему Canvas, но я не могу найти пример, демонстрирующий, как полностью очистить холст и заменить его новым окном.
Я на правильном пути? Может кто-нибудь указать мне на пример, который показывает примерно то, что я пытаюсь сделать?
public class NavigationTree extends TreeGrid {
public NavigationTree(Canvas mainView)
{
setDataSource(NavigationDataSource.getInstance());
setAutoFetchData(true);
setShowHeader(false);
addNodeClickHandler(new NavClickHandler(mainView));
}
// Handler for clicking an item on the Navigation Tree.
private class NavClickHandler implements NodeClickHandler
{
private Canvas mainView;
public NavClickHandler(Canvas mainView)
{
super();
this.mainView = mainView;
}
@Override
public void onNodeClick(NodeClickEvent event)
{
Window window = new Window();
window.setWidth(300);
window.setHeight(230);
window.setCanDragReposition(true);
window.setCanDragResize(true);
window.setTitle(event.getNode().getAttribute("name"));
window.addItem(new Label("huzzah!"));
window.setParentElement(mainView);
window.redraw();
}
}
}