SWT/JFace 기본 동작 구조

SWT/JFace 기본동작구조


기본동작 구조라는 제목을 달았지만 SWTDisplay, Shell 그리고 JFaceApplicationWindow에 대한 정리를 말한다. 사실 SWT/JFace에서는 그외에는 화면을 구성하는 Widget요소와 그 요소들에 연결되는 이벤트가 대부분인 프로그래밍이다. 그래서 SWT의 기본 골격을 이루는 Display, Shell. 그리고 JFace의 기본 골격을 이루는 ApplicationWindow에 대한 이야기 더욱 중요하다. 




SWT Display and Shell


org.eclipse.swt.widgets.Display

  • 화면 표시와는 무관하여 사용자에 눈에는 직접 보이지는 않지만 SWT 프로그래밍에 있어서 최상위(Parent) 객체다.
  • Application과 OS의 커뮤니케이션을 담당
  • 사용자의 입력을 Application에 전달하거나
  • Application에서의 명령을 OS로 전달한다.

 Display Method 

 기능

 Display()

 생성자. 플랫폼 자원을 할당하고 Display객체를 생성한다.

 getCurrent()

 사용자 인터페이스 스레드를 반환한다.

 readAndDispatch()

 Display객체가 사용자 이벤트를 캐치하여 리스너로 넘겨준다.

 (운영체제의 이벤트 큐에 접근하여 사용자 입력이 해당 GUI와 연관 있는지 결정)

 sleep()

 Display객체가 사용자 이벤트를 기다린다. 

 dispose()

 할당된 자원을 반납하고 Display의 동작을 종료한다.


-Display 클래스의 주요 메소드 기능-


org.eclipse.swt.widgets.Shell

  • 화면에 표시되는 눈으로 볼 수 있는 요소중 SWT프로그램의 최상위(Parent)객체다.
  • 화면에 표시되는 창을 컨트롤 한다.
  • Shell 또한 OS클래스를 통해 운영체제에 접근하기는 하지만 윈도우를 열거나, 활성화, 최대화, 최소화 하는 것을 추적하는 경우만 사용
  • 컨테이너, 위젯, 이벤트와 GUI를 연동하기 위한 연결고리를 제공 (Display와 Widget 사이에서 연결고리 역할)






JFace ApplicationWindow



org.eclipse.jface.window.ApplicationWindow


JFace는 기본 동작구조를 ApplicationWindow클래스를 상속받아 구현하지만, 내부적으로는 SWT와 동일하게 Shell과 Display를 가지고 있다. 대신 다른 점은 ApplicationWindow를 Shell과 Widget사이에 위치시켜 일부 기능들을 자동화 하고 있다는 점이다. 또한 ApplicationWindow는 Widget의 묶음인 Composite을 통해서 화면을 생성하다는 점이 다르다. (물론 SWT역시 Composite의 사용은 가능하다)

  • ApplicationWindow는 화면과 동작을 분리한다. (method 단위로 분리되어진 상위 클래스를 상속받아 구현하기 때문에)
  • ApplicationWindow는 Method호출을 통해서 Shell의 크기와 스타일 설정을 손쉽게 변경할 수 있다. (SWT에 비해서..)
  • 즉, SWT에서 제공하는 복잡한 기능들(노가다)를 자동화 하여 처리해주고 있다.

 ApplicationWindow 메소드

 기능

 addMenuBar()

 윈도우에 최상위 메뉴를 생성한다.

 addToolBar()

 주 메뉴 아래 툴바를 추가한다.

 addStatus(String)

 윈도우 하단에 상태표시줄을 만든다.

 getSeparator()

 윈도우의 메뉴를 구분하는 줄을 반환한다.

 setDefaultImage()

 어플리케이션에 쉘이 없는 경우 이미지를 보여준다.

 setExceptionHandler(IExceptionHandler)

 어플리케이션이 특정 인터페이스에 맞추어 예외 처리를 하도록 설정한다.


-ApplicationWindow 클래스의 주요 메소드 기능- 



이 글을 공유하기

댓글

Email by JB FACTORY