ServiceUIFactory
ServiceUIFactory
서비스가 선택적으로 제공하는 UI 팩토리 클래스로, 다양한 역할에서 다른 스타일의 상호작용을 가능하게 해요. 한 역할은 최종 사용자의 탐색과 인쇄 옵션 설정이고, 다른 역할은 인쇄 서비스 관리를 담당해요.
본문
javax.print 패키지에 속하는 추상 클래스로, java.lang.Object를 상속해요. 기본 설계 의도는 응용 프로그램이 필요한 때에만 서비스를 지연해서(lazily) 찾고 초기화하도록 하는 것이에요. Swing UI는 더 일관된 L&F를 제공하고 접근성 API를 지원할 수 있어서 선호돼요.
ServiceUIFactory factory = printService.getServiceUIFactory();
if (factory != null) {
JComponent swingui = (JComponent)factory.getUI(
ServiceUIFactory.MAIN_UIROLE,
ServiceUIFactory.JCOMPONENT_UI);
if (swingui != null) {
tabbedpane.add("Custom UI", swingui);
}
}
필드
JCOMPONENT_UI: Swing 컴포넌트로 구현된 UI를 나타내요. 값은 "javax.swing.JComponent"예요.PANEL_UI: AWT 패널로 구현된 UI를 나타내요. 값은 "java.awt.Panel"이에요.DIALOG_UI: AWT 대화상자로 구현된 UI를 나타내요. 값은 "java.awt.Dialog"예요.JDIALOG_UI: Swing 대화상자로 구현된 UI를 나타내요. 값은 "javax.swing.JDialog"예요.ABOUT_UIROLE: 정보 제공 "About" 역할을 수행하는 UI를 나타내요.ADMIN_UIROLE: 관리 역할을 수행하는 UI를 나타내요.MAIN_UIROLE: 일반 최종 사용자 역할을 수행하는 UI를 나타내요.RESERVED_UIROLE: 유효한 역할은 아니지만, 이보다 큰 역할 id는 서비스가 지원하는 개인(private) 역할에 사용할 수 있어요.
생성자
protected ServiceUIFactory()
하위 클래스가 호출하는 생성자예요.
getUI
public abstract Object getUI(int role, String ui)
응용 프로그램이 요청된 UI 타입으로 캐스팅해서 사용자 인터페이스에서 사용할 수 있는 UI 객체를 얻어요.
- 파라미터
role: 요청된 역할. 표준 역할이나 이 팩토리가 지원하는 개인 역할이어야 해요. - 파라미터
ui: 역할이 요청되는 타입 - 반환값: UI 역할. 이 팩토리에서 요청된 역할을 얻을 수 없으면
null - 예외
IllegalArgumentException: role 또는 ui가 표준도 아니고 팩토리가 지원하는 개인 것도 아닌 경우
getUIClassNamesForRole
public abstract String[] getUIClassNamesForRole(int role)
이 팩토리에서 얻은 UI 역할이 주어졌을 때, 그 역할을 구현하는 이 팩토리에서 사용 가능한 UI 타입들을 얻어요. 반환된 String들은 이 클래스에 정의된 정적 변수를 가리켜서 응용 프로그램이 참조 동일성("==")을 사용할 수 있어야 해요.
- 파라미터
role: 조회할 역할 - 반환값: 지정된 역할에 대해 이 클래스가 지원하는 UI 타입들. 역할에 대해 UI가 없으면
null - 예외
IllegalArgumentException: role이 이 팩토리가 지원하지 않는 비표준 역할인 경우