2017-10-03 9 views
0

다음 4 줄의 코드를 사용하여 vaadin java 웹 응용 프로그램에서 NativeSelect를 성공적으로 설정하고 NativeSelect 메뉴가 만들어져 내 enum (ApplicationStatus)에 의해 채워졌습니다.Vaadin8 선언문이 NativeSelect에서 예상대로 작동하지 않습니다.

선언 파일에서 같은 작업을 시도하면 NativeSelect 메뉴가 나타나고 비어 있습니다.

class Application extends VerticalLayout 
{ 
public Application() 
{ 
.. 
    //ApplicationStatus is an enum, these exact four lines of code work fine without declarative 

    private NativeSelect<ApplicationStatus> categorySelect = new NativeSelect<ApplicationStatus>("Application Status"); 

    categorySelect.setItems(ApplicationStatus.values()); 
    categorySelect.setItemCaptionGenerator(ApplicationStatus::getName); 
    categorySelect.setSelectedItem(ApplicationStatus.ACTIVE); 

.. 
} 

다음은 선언적 HTML 파일 (ATTEMPT1)가 // 메뉴가 비어

...
<row> 
     <column><vaadin-label><strong>Decline Reason</strong></vaadin-label></column> 
    <column><v-native-select _id="categorySelect"></v-native-select></column> 
    </row> 

...

**Here is the Declarative HTML FILE (ATTEMPT2)** //I tried populating it inline but the result was that the menu now has the word "Duplicate" showing 5 times. 
... 
     <row> 
     <column><vaadin-label><strong>Change Category</strong></vaadin-label></column> 
     <column><vaadin-native-select _id="categorySelect"> 
       <option value="D">Decline</option> 
       <option value="W">Waitlist</option> 
       <option value="R">Rejected by VCS</option> 
       <option value="P">Prospect</option> 
       <option value="C">Duplicate</option> 
       </vaadin-native-select></column> 
     </row> 

을 보여주고있다. ..

답변

0

당신은 선언적 구현을위한 자바 소스를 포함하지 않았으므로, 단지 찌르기 만 할 것입니다.

NativeSelect 변수가있는 레이아웃을 정의하는 데 사용되는 클래스 개체에서 선언합니다. 제공 한 _id를 사용하여 디자인에서 변수를 선언에 바인딩하십시오. 그런 다음 열거 형을 사용하여 컨트롤을 채우고 이전과 마찬가지로 기본값을 지정합니다.

NativeSelect<ApplicationStatus> categorySelect; 

public DemoView() 
{ 
    Design.read("DemoView.html", this); 

    categorySelect.setItems(ApplicationStatus.values()); 
    categorySelect.setSelectedItem(ApplicationStatus.ACTIVE); 

이렇게하면 원하는 캡션 및 열거 형 매핑이있는 선택 컨트롤이 생성됩니다.

enter image description here

본인은 angel이라는 코드의 일부를 추적, 나는 열거 순수 선언적 방법을 사용하여 컨트롤을 채울 수있는 방법이 확실하지 않다.

+0

감사합니다. - 해결했습니다! – user8716782