1

我在布局的第一个内容窗格中添加了一个带有树的手风琴布局容器。不,在加载应用程序时需要调用扩展并选择一个节点(它是一个模型)。

然后我将它添加到类的构造函数中,对应于 uibinder 布局:

widget = uiBinder.createAndBindUi(this);               // everything's bound

accordionLayoutContainer.setActiveWidget(firstPanel);  // OK, expands first pane
tree.getSelectionModel().select(mynode, true);        // no visible effect
tree.setExpanded(mynode, false);                       // no visible effect

这里缺少什么?设置状态后是否必须强制“某物”的布局,还是选择和展开节点的位置错误?

4

1 回答 1

3

找到了解决方案。必须推迟调用 tosetExpand直到树被附加。所以我向父小部件AttachEvent.Handler添加了一个- 将其直接添加到树中不起作用,因为在模型注册之前,处理程序被提前调用。

widget = uiBinder.createAndBindUi(this);               // everything's bound

accordionLayoutContainer.setActiveWidget(firstPanel);  // OK, expands first pane
accordionLayoutContainer.addAttachHandler(new AttachEvent.Handler() {

  @Override
  public void onAttachOrDetach(AttachEvent event) {
    clientsTree.getSelectionModel().select(mynode, true);
    clientsTree.setExpanded(mynode, true);              
  }
});
于 2012-05-16T10:20:32.983 回答