2017-01-17 29 views
0

如果驗證保存操作失敗,如何重置Vaadin中的TextArea的值。我的代碼如下:Vaadin如果驗證保存失敗,如何重置Vaadin中的TextArea值

  1. 它給文本區域從文本「A」從DB檢索;
  2. 然後我想將文本區域更改爲文本「B」
  3. 當「B」hass驗證失敗且B未保存到數據庫我希望在文本區域中看到文本「A」,但文本「B」被展示。

VerticalLayout content = new VerticalLayout(); 
TextArea text = new TextArea(); 
text.setValue(controller.getFile().getName());  
text.setRequired(true); 
Button save = new Button("Save", event -> { 
      try { 
       newName.validate(); 
       if (controller.getFile().updateName((text.getValue()))){ 
        close();      
       } else{ 
        System.out.println("WRONG TEXT!"); 
       }  
      } catch (Validator.InvalidValueException ex) { 
       text.setValidationVisible(true);  
      } 
     }); 
     save.setSizeFull(); 
     content.addComponent(text); 
     content.addComponent(save); 
     setContent(content); 

這有什麼錯我的代碼?

回答

0

解決,只需簡單的Java在updateName()方法:

public boolean updateName(String newName) { 
     if (controller.getFile()!=null) { 
      controller.saveFileName(controller.getFile()); 
      file.setName(newName); // mistake was in this line. 
      }     
      return false; 
    }