Display 클래스
Display 클래스는 코드에 있는 SWT/JFace 명령을 하위 수준의 호출로 바꾸어 운영체제에 전달하는 일을 합니다.
이 과정은 Display 클래스의 인스턴스를 생성하면 시작됩니다.
Display 객체는 플랫폼의 운영체제를 나타내는 OS 클래스의 인스턴스를 생성합니다. 또한 자바의 네이티브 메서드를 사용하여 컴퓨터의 하위 수준의 자원에 접근합니다. 이후 Display 객체는 아래와 같은 메서드를 이용하여 전화교환원처럼 명령을 운영체제에 전달하고, 사용자 입력을 애플리케이션에 전달합니다.
Display 클래스의 주요 메서드의 기능
- Display() 와 getCurrent() 는 SWT 기반의 GUI에서 사용합니다.
- Display() 는 Display 클래스의 인스턴스를 생성하여 GUI와 연결합니다.
- getCurrent()는 애플리케이션의 기본 스레드인 사용자 인터페이스 스레드를 반환합니다.
- getCurrent()는 dispose()로 Display의 작동을 끝내기 위해 주로 사용합니다.
readAndDispatch() 와 sleep() 는 사용자가 GUI 관련 작동을 할 때마다 애플리케이션이 운영체제로부터 통지를 받을 수 있게합니다. 사용자는 이러한 메서드를 사용하여 shell을 업애기로 했는지 알 수 있습니다. 만약 없애기로 했다면, readAdDispatch() 메서드는 true를 반환하고, 애플리케이션을 끝마치게 됩니다. shell을 없애지 않기로 했다면, Display 객체가 sleep() 를 호출하여 애플리케이션이 대기상태로 남아있게 됩니다.
Shell 클래스
Shell 클래스는 GUI의 기본 윈도우처럼 동작하며, 시각적인 부분을 구현합니다.
Shell 클래스는 OS 클래스를 통해 운영체제에 접근하기는 하지만, 주요 윈도우를 열거나, 활성화, 최대화, 최소화하거나 닫는 것을 추적할 때만 접근합니다.
Shell 클래스의 주요 기능은 컨테이너, 위젯, 이벤트와 GUI를 연동하기 위한 연결 고리를 제공하는 것이며, 이러한 구성요소의 부모(parent) 클래스로 역할을 합니다.
SWT 사용자 인터페이스의 클래스 통신 구조
모든 SWT/JFace 애플리케이션은 메인 Shell 객체 위에 위젯을 올리지만, 애플리케이션에 다른 Shell이 존재 할 수도 있습니다. 이러한 Shell은 Display 인스턴스에 바로 연결되지 않기 때문에, 부차적인 쉘로 취급합니다. Display 인스턴스에 바로 연결되는 Shell을 최상위 쉘이라 합니다.
Shell 인스턴스는 여러 속성을 갖추고 있어 사용자들이 상태를 변경하거나 정보를 읽을 수 있습니다. 이러한 속성들의 모음을 구성 요소의 스타일이라고 합니다. Shell의 스타일은 쉘 생성자에 두 번째 인자를 덧붙여서 제어할 수 있습니다.
Shell 선언의 유일한 인자는 display로, 최상위 윈도우를 위한 기본 스타일 값인 SHELL_TRIM을 받습니다. display는 여러가지의 스타일 요소를 결합하며, 애클리케이션에게 윈도우가 타이틀 바를 가져야 하는지(SWT.TITLE), 사용자가 윈도우를 최소화 하거나(SWT.MIN) 최대화 할 수 있는지(SWT.MAX), 크기를 재조정하거나(SWT.RESIZE), 종료할 수 있는지(SWT.CLOSE)를 쉘에게 전달합니다. 다른 기본 쉘 스타일인 DIALOG_TRIM은 대화상자 쉘이 타이틀 바나, 활성 영역의 경계선(SWT.BORDER), 종료 기능을 가지고 있습니다.
GUI에서 쉘, 웨젯 등의 스타일 비트를 설정할 수 있으며, 각 스타일 비트를 '|'연산자로 결합할 수 있습니다.
모든 플랫폼이 GUI 구성요소의 속성을 제공하지는 않으므로, SWT가 스타일 설정을 규정이 아닌 가이드라인으로만 다룹니다.
참고 서적 : SWT/JFace in Action
댓글 없음:
댓글 쓰기