次のコードは機能し、ボタンのクリック時に SelectItem の可視性を切り替えます。
ただし、他のフォーム コントロールがギャップを埋めるために出入りするため、UI が不安定になる可能性があることに注意してください。
より良いアプローチは、コメントに示されているようにコンポーネントを有効/無効にすることです。これには再描画は必要ありません。
final DynamicForm form = new DynamicForm();
form.setWidth100();
form.setHeight100();
final SelectItem selectItem = new SelectItem("sel", "Select");
selectItem.setValueMap("First", "Second", "Third");
ButtonItem buttonItem = new ButtonItem("btn", "Set");
buttonItem.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
selectItem.setVisible(!selectItem.getVisible());
form.redraw();
// uncomment following two lines and comment above two lines to enable/disable
// boolean isDisabled = Boolean.TRUE.equals(selectItem.getDisabled());
// selectItem.setDisabled(!isDisabled);
}
});
form.setFields(selectItem, buttonItem);
フォーム レイアウトを処理するその他の方法:
http://www.smartclient.com/smartgwt/showcase/#layout_form_sections
http://www.smartclient.com/smartgwt/showcase/#layout_form_splitting