ServiceUIFactory

ServiceUIFactory

서비스가 선택적으로 제공하는 UI 팩토리 클래스로, 다양한 역할에서 다른 스타일의 상호작용을 가능하게 해요. 한 역할은 최종 사용자의 탐색과 인쇄 옵션 설정이고, 다른 역할은 인쇄 서비스 관리를 담당해요.

출처: Java API Reference

본문

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이 이 팩토리가 지원하지 않는 비표준 역할인 경우

더 알아보기