0

我正在尝试将应用程序从 vaadin 6.8 迁移到 vaadin 7。由于在 vaadin 7 中不推荐使用 Form 类,因此我正在尝试使用 FieldGroup 构建我的表单并使用 FormLayout 呈现它们。建筑不是问题,但布局不是那么顺利。现在我有两个问题。

  1. 如何在表单的整个宽度上显示表单描述?我希望它的宽度完全相同,既不宽也不只在第二列中。

  2. 如何添加按钮(确定和取消),使它们彼此相邻,而不仅仅是在第二列?就像旧 Form 类中的页脚一样。

这可以使用 FormLayout 还是我使用其他布局?

谢谢
拉斐尔

4

2 回答 2

3

注意:我实际上是在上周才开始调查 V7,所以请谨慎对待我的回应......

这两个问题都源于 FormLayout 从未提供页眉和页脚这一事实 - Form 类提供了。

我建议创建您自己的具有页眉布局、FormLayout 和页脚布局的 Form 等效项,例如(未尝试使用,可能需要对 mainLaout 使用 GridLayout 而不是 VerticalLayout)

public class FormComponent extends CustomComponent {
  private Layout mainLayout;

  protected Layout header;
  protected Layout central;
  protected Layout footer;

  public FormComponent() {
    init(new HorizontalLayout(), new FormLayout(), new HorizontalLayout());
  }

  protected void init(Layout header, Layout central, Layout footer) {
    this.footer = footer;
    this.header = header;
    this.central = central;

    mainLayout = new VerticalLayout();
    mainLayout.addComponent(header);
    mainLayout.addComponent(central);
    mainLayout.addComponent(footer);

    setCompositionRoot(mainLayout);
    setSizeUndefined();
  }

  public Layout getHeader() {
    return header;
  }

  public Layout getCentral() {
    return central;
  }

  public Layout getFooter() {
    return footer;
  }
}
于 2013-04-09T07:33:10.910 回答
2
  1. 在 Vaadin 7 中,没有与 Vaadin 6 Form 组件等效的内置组件。所以你必须创建你自己的。
  2. 创建新的 Horizo​​ntalLayout 并向其添加 OK 和 Cancel 按钮。然后将该 Horizo​​ntalLayout 添加到您的 FormLayout。
于 2013-04-24T06:46:25.880 回答