2011-10-13 28 views
0

問題:當您設置佈局可見性時,它會添加到DOM樹中或從其中刪除。 vaadin如何處理被刪除的部分?它是否會緩存它,或者在您將可見性設置爲再次顯示後重新創建?如果重新創建它的所有子組件都會重新連接?Vaadin可見性DOM樹

我問這個問題的原因是,當我使用一個表單的VerticalLayout和它自己的窗體使用下面的代碼時,我無法看到我的textfields的尺寸設置爲100%,當我從layout.setVisible (true) - > false - >並再次顯示。

private Form getAttachedForm() { 
    return new Form(){ 
     private static final long serialVersionUID = 1L; 

     @Override 
     protected void attachField(Object propertyId, Field field){ 
      if(field instanceof TextField){ 
       TextField tf = (TextField)field; 
       tf.setWidth("100%"); 
      }else if(field instanceof DateField){ 
       DateField df = (DateField)field; 
       df.setResolution(DateField.RESOLUTION_DAY); 
       df.setDateFormat("yyyy-MM-dd"); 
      } 
      super.attachField(propertyId, field); 
     } 
    }; 
} 

回答

0

Vaadin不會刪除從DOM元素,但設置元素(一個或多個)的display屬性(CSS)。但是,似乎大小信息也被刪除,並且可能會導致在再次使組件可見時不執行計算的錯誤。

一個錯誤報告dev.vaadin.com將不勝感激。