vaadin 7:在打开/关闭对话框窗口

时间:2016-07-06 22:32:05

标签: layout vaadin

我是论坛和编程的新手,所以希望我能为您提供足够的细节和精确的信息来理解我的问题。

我正在使用java EE web应用程序中的vaadin 7,我有一个布局问题/ phanomena,我无法解释,我无法在网上找到解决方案。基本上,当我启动服务器并在localhost上测试我的应用程序时,一切看起来都是正确的。当我打开一个对话窗口并再次关闭它时,该网站的布局看起来有些变化。我找不到关于哪个点击导致此效果的模式。有时它也会在我只更改视图时发生。这是how it should look like,在应用程序中工作后为how it does look like

我查看了浏览器中的devloper工具,注意到在工作html中,属性" top"和"左"为gridlayout-slot设置。在移位布局中,未设置这些属性。此外,似乎问题更常发生在chrome中。它也会在Firefox中发生但不常发生。

我使用VerticalLayout,GridLayout和FormLayout。

你有类似的经历吗?我想知道如何以及何时从vaadin代码生成html文件,以找出它们为什么会发生变化以及如何解决它。

我不确定究竟是哪个代码导致了问题,所以我不确定要发布什么。如果你知道在哪里看,我可以添加更多代码。以下是对话框的设置方法:

public class Dialog extends Window implements ClickListener

public Dialog(CustomController controller, String title)
  {
    super(title);
    setModal(true);
    setStyleName("dialogWindow");

    this.controller = controller;
    setWidth("65.0%");
    setHeight("90.0%");

    // top level component properties
    panLayout = new GridLayout();
    panLayout.setWidth("100%");
    panLayout.setHeight("100%");

    buildPanToolbar();
    panLayout.addComponent(panToolbar);

    buildPanTop();
    panLayout.addComponent(panTop);

    buildPanTabs();
    panLayout.addComponent(tabsheet);
    panLayout.setComponentAlignment(tabsheet, Alignment.MIDDLE_CENTER);
    panLayout.setRowExpandRatio(2, 1.0f);

    tfThema.focus();

    setContent(panLayout);

  }

buildSomething()函数都是GridLayout,FormLayout,Horizo​​ntalLayout和VerticalLayout的组合。以下是buildPanToolbar()函数作为示例

  private void buildPanToolbar()
  {
    panToolbar = new HorizontalLayout();
    panToolbar.setImmediate(false);
    panToolbar.setWidth("100%");
    panToolbar.setHeight("25px");
    panToolbar.setMargin(false);
    panToolbar.setSpacing(true);
    panToolbar.setStyleName("toolbar");

    HorizontalLayout panHelpToolbar = new HorizontalLayout();
    panHelpToolbar.setImmediate(false);
    panHelpToolbar.setWidth("-1px");
    panHelpToolbar.setHeight("25px");
    panHelpToolbar.setMargin(false);
    panHelpToolbar.setSpacing(true);
    panHelpToolbar.setStyleName("toolbarButtons");
    panToolbar.addComponent(panHelpToolbar);


    pbButton1 = new Button();
    pbButton1.setCaption("Button1Text");
    pbButton1.setStyleName(BaseTheme.BUTTON_LINK);
    pbButton1.setImmediate(true);
    pbButton1.setWidth("100px");
    pbButton1.setHeight("-1px");
    pbButton1.setIcon(new ThemeResource("../images/pic1.gif"));
    pbButton1.addClickListener(controller);
    panHelpToolbar.addComponent(pbButton1);
    panHelpToolbar.setComponentAlignment(pbButton1, Alignment.MIDDLE_LEFT);

    pbButton2= new Button();
    pbButton2.setCaption("Button2 Text");
    pbButton2.setImmediate(true);
    pbButton2.setWidth("100%");
    pbButton2.setHeight("-1px");
    pbButton2.setStyleName(BaseTheme.BUTTON_LINK);
    pbButton2.setIcon(new ThemeResource("../images/pic.gif"));
    pbButton2.addClickListener(this);

    panHelpToolbar.addComponent(pbButton2);
    panHelpToolbar.setComponentAlignment(pbButton2, Alignment.MIDDLE_LEFT);

  }

0 个答案:

没有答案