마음에 온 첫 번째 솔루션은 직접 자바 스크립트 코드에서 사용자에 의해 choosed 할 무슨 옵션을 확인하는 것입니다 (미안 해요, 난 개찰구 1.4.20을 사용하고 있음을 포함해야).
@Override
protected IAjaxCallDecorator getAjaxCallDecorator() {
return new AjaxCallDecorator() {
@Override
public CharSequence decorateScript(Component c, CharSequence script) {
return "if (" + shouldUseDecoratorScript() + ") { /* Show the spinner icon */ } " + script;
}
@Override
public CharSequence decorateOnSuccessScript(Component c, CharSequence script) {
return "if (" + shouldUseDecoratorScript() + ") { /* Hide the spinner icon */ } " + script;
}
@Override
public CharSequence decorateOnFailureScript(Component c, CharSequence script) {
return "if (" + shouldUseDecoratorScript() + ") { /* Hide the spinner icon */ } " + script;
}
private CharSequence shouldUseDecoratorScript() {
return "this.value !== \"" + enterAddressManuallyItem.getId() + "\"";
}
};
}
여기 enterAddressManuallyItem 옵션을 "수동으로 주소를 입력"에 해당하는 항목입니다 :
여기 (이 AjaxCallDecorator와 마지막 버전 이후) 개찰구 1.5 코드입니다. 나는 getId() 게터이 있다고 가정하고, 당신은 당신의 DropDownChoice 생성자의 마지막 매개 변수로
new ChoiceRenderer<DropDownChoiceItem>("text", "id")
같은 것을 사용합니다.
아마도 더 좋은 해결책이 있습니다.