2012-10-29 37 views
0

我有一個應用程序使用Vaadin版本6.8.0(通過Grails Vaadin插件版本1.5.4)。如何爲具有聚合的域類(無JPA容器)創建Vaadin表單?

如果我有一個Java域類問題具有1:1的關係到另一個類文件,什麼是寫一個IssueForm創建新問題並編輯現有的最好方式,而(溢價)Vaadin JPA容器?

在表格中,我想顯示一個ComboBox來選擇一個文件所有可用的文件。 我已經知道我可以做這樣的事情在IssueForm構造:

setFormFieldFactory(new DefaultFieldFactory() { 
     @Override 
     public Field createField(Item item, Object propertyId, Component uiContext) { 
      if (propertyId.equals("cover")) { 
       ComboBox cb = new ComboBox("Cover") 
       for (FileListItem fileListItem : fileService.getAllFilesForCategory()) { 
        cb.addItem(fileListItem); 
       } 

       return cb; 
      } else { 
       Field field = super.createField(item, propertyId, uiContext); 
       return field; 
      } 
     } 
    }); 
  • 如果我使用的DTO到Vaadin豆連接到我的Java域類,將IssueListItem需要參考FileListItem?或直接文件?
  • 我可以自動在新的/編輯過的Issue中填充選定的文件(或FileListItem?)嗎?怎麼樣?如果沒有,如何解決這個問題?
+0

你是什麼意思的「自動填充選定的文件」?究竟應該發生與組合框或域類...? –

回答

0

如果您使用DTO,那麼是:IssueListItem需要引用FileListItem,然後在另一個位置將IssueListItem和FileListItem轉換爲域持久化類Issue和File。