2016-10-17 1 views
0

확인란을 선택하면 필수 입력 필드로 토글하려는 텍스트 필드가 있습니다. ValueChangeEventListener를 멋지게 재생할 수 없습니다.확인란 선택시 텍스트 필드 토글 필요/불필요 선택

private TextField myTextField = new TextField("Name"); 
myTextField.setRequired(true); 

private CheckBox myCheckBox; 
myCheckBox = createCheckBox(); 


private CheckBox createCheckbox() { 
    CheckBox checkBox = new CheckBox("My checkbox"); 
    checkBox.setImmediate(true); 
    checkBox.addValueChangeListener(new ValueChangeListener() { 
     @Override 
     public void valueChange(ValueChangeEvent event) { 
      toggleRequired(); 
     } 
    }); 
    return checkBox; 
} 


private void toggleRequired() { 
    if (myCheckBox.getValue() != true) { 
     myTextField.setRequired(false); 
    } else { 
     myTextField.setRequired(true) 
    } 
} 

valueChangeListener는 너무 많은 시간이 true로 다시 true에서 false로가는 트리거됩니다 :

이것은 내가 지금까지있는 것입니다. 내가 여기서 뭘 잘못하고 있는지 정말 잘 모르겠다.

고맙습니다.

+0

이'else' 분기'myTextField.setRequired를 읽을해야 진정한 : 내가 변경 한 모든

checkBox.addValueChangeListener(new CheckBox.ValueChangeListener() {}); 

내가 대신 몇 가지 다음과 같은 속성 클래스를 참조하고 매우 쉬운 솔루션이었다); 대신'myCheckBox.setRequired (true)'? 아마도 간단하게하기 위해'myTextField.setRequired (myCheckBox.getValue());'라고 쓸 수 있습니다. – Morfic

+0

지적 해 주셔서 고맙습니다. 그 오타입니다. 나는 질문을 편집 할 것입니다! – Tkingovr

답변

0

좋습니다. 알아 냈습니다. (

properties.ValueChangeListener(); 
관련 문제