2011-06-11 3 views
0

SWT UI를 Java의 테스트 모델에 바인딩하려고합니다. 바인딩이 작동합니다. 그러나이 값은 정확하게 모델의 값입니다. 따라서 모델이 부울 값이고 true를 반환하는 경우 사용자에게 보여주고 싶은 것이 아닌 UI 위젯에서 문자 그대로 "true"로 표시됩니다. UI 위젯을 넣기 전에 바인딩 된 값을 확인할 수있는 방법이 있습니까? 모델이 true를 반환하면 모델 값이 true인지 확인한 다음 내 라벨에 "맞다"로 표시하거나 그렇지 않으면 "틀리지 않습니다"라고 표시합니다.SWT/Jface에서 데이터 바인딩 값 확인

마찬가지로 레이블이 있고 계정의 신용 잔액 값을 반환하는 모델에 바인딩하려는 경우 내 레이블에 이미 "귀하의 계정"이라는 텍스트가있을 수 있으며 THE_BOUND_VALUE를 레이블에 추가 할 수 있으며 전체 레이블의 값을 모델 값으로 덮어 쓰지 않아도됩니다. 이 코드는 이클립스 프로 windowsbuilder에서 발생하지만, 어떻게 든, 나는 내 UI에 표시 할 방법에 가치를 결합하는 방식을 수정 아무것도 사용할 수 없습니다

IObservableValue tableViewer_myTestObserveSingleSelection = ViewersObservables.observeSingleSelection(tableViewer_myTest); 
    IObservableList tableViewer_myTestDataContentObserveDetailList = BeansObservables.observeDetailList(tableViewer_myTestObserveSingleSelection, "DataContent", TestModelData.class); 
    tableViewer_DataContent.setInput(tableViewer_myTestDataContentObserveDetailList); 

: 여기에 내 바인딩을 할 방법입니다.

도움 주셔서 감사합니다.

답변

3

Converters으로 유형 간의 변환을 할 수 있습니다. this example을보십시오.

+0

예를 들어 주셔서 감사합니다. 정말 도움이됩니다. 나는 Converters에 아주 새로운 사람이다. 그러나 테이블 뷰어 또는 마스터 - 세부 종류의 관계가 있고 해당 세부 정보가 목록 형식 인 구성 요소에 넣을 때 변환기를 배치하는 방법을 찾을 수없는 것 같습니다. 아니면 뭔가 빠져있는거야? 이 UpdateStrategy 관련 추가 사례가 있습니까? 나는 구글에 그것을 할 때 이것에 대한 예제가 거의 없다는 것을 알았다. – Carven

+1

@ Xenon : ViewerSupport를 사용하여 테이블 뷰어를 바인딩 할 수 있습니다. 뷰어의 레이블 공급자를 사용하여 모델의 값이 실제로 표시되는 방법을 설정합니다. 이것을보십시오 : http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet009TableViewer.java?view=markup – Sandman