2012-04-25 3 views
0

이벤트 후 다시로드되는 일부 vaadin 양식이 있습니다. 이 이벤트로 인해 일부 필드가 null이됩니다. 즉, 양식에 필드의 레이블과 "null"이 표시됩니다. 이벤트가로드 된 후 레이블과 "null"값이 모두 사라지길 바랍니다. 또한 폼을 null 값으로 바꾸기 위해 다른 폼을로드하지 않고이 작업을 수행하려고합니다.vaadin 양식은 null 필드를 숨길 수 없습니다.

public IInfoForm(Info info) { 
    List<Object> orderedProperties =Arrays.asList(InfoContainer.DISPLAYED_FIELDS); 
    setItemDataSource(new BeanItem(idInfo), orderedProperties); 

정보] 컨테이너가 웹 서비스에서 데이터를 검색하고 DISPLAYED_FIELDS 표시 할 필드를 나열

나는 양식에 대한 다음과 같은 생성자를 가지고있다.
양식 필드를 설정할 수있는 속성을 찾으려고했지만 아무 소용이 없습니다.

답변

1

모든 필드에 대해 null 값을 나타내는 특수 값을 설정할 수 있습니다. 예 :

TextField textfield = new TextField(); 
textfield.setNullRepresentation("abc"); 

null 대신 "abc"가 텍스트 필드에 표시됩니다.

필드를 직접 작성하여 폼에 추가하거나 FieldFactory를 폼에 추가하십시오.

Form form = new Form(); 
form.setFormFieldFactory(new FormFieldFactory() { 
    public Field createField(Item item, Object propertyId, 
      Component uiContext) { 
     Field field = DefaultFieldFactory.get().createField(item, 
       propertyId, uiContext); 
     if (field instanceof TextField) { 
      ((TextField) field).setNullRepresentation("abc"); 
     } 
     return field; 
    } 
}); 
0

그래서 나는 orderedProperties 목록에서 null 값을 가진 필드를 제거하고 그 목록을

setItemDataSource(new BeanItem(idInfo), orderedProperties); 

을 부르는 수행하려고 할 것입니다.

관련 문제