我正在开发一个 SmartGWT 项目,我希望通过树形网格完成我的主要导航。treegrid 呈现正确,其 DataSource 也正常运行。treegrid 正确地位于 mainView 画布的左侧。
我似乎想不通的是如何根据在 NavigationTree 中选择的内容来切换 mainView 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();
}
}
}