SMALL

Jface 의 TableView Provider 에서는 table item 에 Button 등의 컴포넌트를 붙이기 어렵다. 

때문에 체크박스의 경우도 대부분 String 값으로 상태를 부분하여 Image를 교체하는 방식을 쓴다.

이러한 불편함 때문에 SWT 로 테이블을 만들게 되었다.



하지만 여기서 또 문제가 생겼다. 하나의 row 를 삭제하였을때 String Column 은 갱신이 바로되지만 체크박스, 버튼등의 Component Editor 가 있는 컬럼은 마우스를 클릭해야 갱신이 되는 현상이 발생했다.

이를 해결하기 위해 update(), redraw(boolean) 등의 명령어로 해결해보려 하였지만 모두 view 를 refresh 하는데 도움이 되진 않았다. 


그나마 .pack() 명령어가 view 를 갱신했지만 resize 과정에서 column 넓이가 번쩍인다거나 또는 테이블 높이에 변경이 생겨 보기 좋지 않았다. 

결국 refresh 는 테이블의 크기가 변경되어야 동작하는 것을 알게 되었고 한참을 고민하다가 결국 아래와 같이 해결하였다. 방법은 좋지 않아 보여도 효과는 탁월하다.

getTable().setSize(ppt.getTable().getSize().x, ppt.getTable().getSize().y-1); getTable().setSize(ppt.getTable().getSize().x, ppt.getTable().getSize().y+1);

데이터 갱신 후에 세로 높이를 1 줄였다가 다시 1을 늘리는 것이다. 


LIST