[질문] SWT/JFace - TableViewer에서의 Element 핸들링
돌심보
안녕하세요.
이번에 SWT/JFace를 처음 써보는 회원인데요,
TableViewer를 사용하다 궁금한 점이 있어 질문 드립니다.
우선 TableViewer에 뿌려주어야 할 데이터는
Person 이라는 Bean(이름, 주소, 전화번호 등등) 객체의 집합(ArrayList)
persons 레퍼런스 변수가 있습니다. 이는 HashMap을 이용하여 관리하며,
persons 인스턴스는 여러개가 있을 수 있습니다.
물론 HashMap으로 관리하기 때문에 해당 인스턴스를 참조하기위한 키값이 존재합니다.
TableViewer에 persons 데이터를 표현하기 위한
contentProvider, labelProvider를 디자인하여 TableViewer에 제공하고
각각의 input 객체는 다음과 같습니다.
contentProvider의 input : HashMap의 key
labelProvider의 input : 이름, 주소, 전화번호 등을 의미하는 상수값(예 : Person.PERSON_NAME)
이후 TableColumn 등 몇가지 속성을 주어 제가원하는 형태로
TableViewer를 화면에 뿌려줄 수 있었습니다.
그런데 여기서 하나의 문제에 직면했는데요,
화면에 뿌려진 TableViewer에서 사용자가 임의로 데이터 값을 변경했을 때
(예를 들면 첫번째 사람의 이름을 변경) 변경된 값이 실제 데이터를 갖고 있는
persons 객체에 적용이 않되더라는 말이죠(당연히 핸들링 하는 부분이 없기에...)
저는 단순하게 TableViewer에서 데이터의 값이 변경되면 이를 알리는 이벤트가
있을 것이라 생각해서 이벤트목록을 찾아보았는데요.
제가 잘 못찾는건지, 아님 진짜로 없는건지 그에 관련 된 이벤트는 찾을 수 없었습니다.
이렇게 되면 인터넷 검색을 통해서 예제를 찾게 되는데, 꽤 많은 예제를 찾을 수 있었습니다.
하지만 TableViewer에 데이터를 표현하는 방법에 관한 예제는 많은데
데이터가 변경되었을 때 어떻게 핸들링하는지에 대한 부분은 없더라구요.
과연 이 부분은 어떻게 처리해야할까요?___________________________TableViewer 표현______________________________
Collection Providers
persons ---- contentProvider -------- TableViewer
person1 labelProvider
person2
person3
:
:그럼 반대로 TableViewer에서 데이터 변경 후 persons에 대한 적용은?