JAVA/SWT_JFACE
SashForm을 활용한 보조영역 펼침 접힘 구현
this?
2015. 11. 11. 11:26
UI 작업을 하다보면 아래와 같이 보조 영역에 대한 펼침과 접힘을 구현해야 할 경우가 생긴다. 이경우 SWT SashForm을 활용하는 것이 가장 깔끔하게 작업을 마무리 할 수 있다.
▼ 예제의 UI 구성
SashForm을 구성하는 컴포지트를 생성하고 각 컴포지트의 비중을 설정하는 것은 아래의 코드로 구현된다.
// SashForm 생성 SashForm sashForm = new SashForm(compositeBody, SWT.NONE); // 메인 컴포지트 생성 Composite compositeMain = new Composite(sashForm, SWT.NONE); compositeMain.setBackground(SWTResourceManager.getColor(SWT.COLOR_GREEN)); compositeMain.setLayout(new FormLayout()); // 보조 컴포지트 생성 Composite compositeSub = new Composite(sashForm, SWT.NONE); compositeSub.setBackground(SWTResourceManager.getColor(SWT.COLOR_BLUE)); compositeSub.setLayout(new FormLayout()); // sashform의 비중 설정 (메인 : 2, 보조 : 1) sashForm.setWeights(new int[] {2, 1});
닫기버튼으로 보조 컴포지트의 영역을 감추는 기능은 아래의 코드로 구현된다. SashForm의 비중 설정에서 보조 컴포지트 영역을 '0'으로 설정하여 기능을 수행한다.
// 닫기버튼 btnClose.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { // sashform의 비중 설정 (메인 : 1, 보조 : 0) => 보조 컴포지트가 감춰진다. sashForm.setWeights(new int[] {1, 0}); } });