DynamicForm を VLayout の中央に水平に配置する方法はありますか? このショーケース デモで行われていることを試してみましたが、フォームでは機能しません (IButton では正しく機能します)。
これが私のコードです:
public class PreferencesStackSection extends SectionStackSection {
private static final String SAVE_ICON = "icons/save.png";
private static final int COMPONENT_GAP = 10;
// Object used to get access to internationalization constants and messages
private BMSimulatorConstants constants = GWT.create(BMSimulatorConstants.class);
private DataSource ds;
private DynamicForm form;
private IButton saveBtn;
public PreferencesStackSection(String title) {
super(title);
ds = DataSource.get("preferences");
buildPreferencesLayout();
}
private void buildPreferencesLayout() {
VLayout layout = new VLayout(COMPONENT_GAP);
layout.setMargin(COMPONENT_GAP * 2);
layout.setDefaultLayoutAlign(Alignment.CENTER);
createPreferencesForm(layout);
createSaveButton(layout);
this.addItem(layout);
}
private void createPreferencesForm(VLayout layout) {
form = new DynamicForm();
form.setNumCols(1);
form.setTitleOrientation(TitleOrientation.TOP);
form.setDataSource(ds);
layout.addMember(form);
}
private void createSaveButton(VLayout layout) {
saveBtn = new IButton(constants.preferencesSaveButton());
saveBtn.setIcon(SAVE_ICON);
saveBtn.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
DSCallback callback = new DSCallback() {
public void execute(DSResponse response, Object rawData, DSRequest request){
SC.say(constants.preferencesSavedOK());
}
};
form.saveData(callback);
}
});
layout.addMember(saveBtn);
}
}