smartGWT重复按钮

时间:2015-06-25 04:46:04

标签: gwt smartgwt

我有2个包含保存和取消按钮的smartGWT buttonLayouts。一个位于UI顶部,另一个位于底部以方便使用,因此用户无需向上/向下滚动以保存/取消表单。

当用户在任一地方选择保存/取消时,应禁用所有按钮,直到后台操作完成。

处理此问题的最佳方法是什么?

如果我这样做:

private Layout buildTopButtonBar() {
  saveButton = new Button("Save");
  saveButton.addClickHandler( ... );
  buttonLayout.addMember(saveButton);
}

private Layout buildBottomButtonBar() {
  saveButton = new Button("Save");
  saveButton.addClickHandler( ... );
  buttonLayout.addMember(saveButton);
}
我的clickHandler中的

saveButton操作(当用户选择save时,应禁用saveButton)仅对底栏中的按钮执行,但所有其他后台操作都有效。

如果我这样做:

 saveButton = new Button("Save");
 saveButton.addClickHandler( ... ); 
 buildTopButtonBar();  // adds saveButton to top bar
 buildBottomButtonBar();  // adds saveButton to bottom bar

仅显示底栏。

我可以创建4个单独的按钮:

 topSaveButton = new Button("Save");
 bottomSaveButton = new Button("Save");
 ... // add all required functionality and clickHandlers

但这只是感觉邪恶。 我还有其他选择吗? 这是smartGWT 4。

1 个答案:

答案 0 :(得分:1)

您无法重复使用小部件实例。

Button saveButton = new Button("Save"); // some more code saveButton.addClickHandler( ... ); buildTopButtonBar(); // adds saveButton to top bar buildBottomButtonBar(); // adds saveButton to bottom bar ;

不起作用。

Button topSaveButton = new Button("Save");
Button bottomSaveButton = new Button("Save");
... // add all required functionality and clickHandlers

会奏效。

每个小部件代表DOM树中的一个节点。您可以通过调用getElement()来访问该节点。再次添加按钮将删除顶部的按钮并将其添加到底部。

如果顶部和末尾有一个保存按钮,则需要两个实例。