데이터 바인더 개요

Java Visual Editor는 비주얼 구성요소를 엔터프라이즈 Bean, Java Bean 팩토리 또는 웹 서비스 같은 데이터 소스에 바인드하는 데 도움이 되는 인터페이스 및 클래스의 일반 프레임워크입니다.

테이블 또는 텍스트 필드 같은 비주얼 구성요소는 데이터를 꺼내고 데이터를 넣을 수도 있는 데이터 소스가 필요합니다. Java Visual Editor는 비주얼 구성요소를 데이터 소스의 데이터와 빠르고 간단하게 바인드할 수 있도록 프로젝트에 생성할 수 있는 세 가지 유형의 헬퍼 클래스를 제공합니다. 이들 헬퍼 클래스의 목적은 데이터를 비주얼 구성요소에 바인드하기 위한 런타임 프레임워크를 제공하는 것이 아니라 클라이언트 응용프로그램의 비주얼 개발을 위한 빠른 시작점을 제공하는 것입니다.

헬퍼 클래스의 세 가지 유형은 데이터 소스, 데이터 오브젝트 및 바인더이며, 아래에 각각에 대해 자세히 설명되어 있습니다. Visual Editor가 다양한 Swing 구성요소를 지원하기 위한 Swing 특정 바인더 클래스를 생성하는 반면, 데이터 소스 및 데이터 오브젝트 클래스는 비주얼 구성요소와는 완전히 독립적이어서 향후 다른 위지트(widget) 라이브러리도 지원할 수 있습니다.

제공되는 일반 바인더 클래스에 대한 Javadoc의 자세한 정보는 바인더에 대한 API 참조를 참조하십시오.

데이터 소스에 연결하기 위한 Java Visual Editor 바인더 사용에 대해 알려면 다음 학습서를 연습하십시오.

학습서: 웹 서비스를 사용하는 리치 Java 클라이언트 빌드

다음은 비주얼 구성요소를 바인드할 때 Java Visual Editor가 생성하고 인스턴스화한 바인더 클래스의 몇 가지 이점에 대한 설명입니다.

데이터 소스 및 데이터 오브젝트에 비주얼 구성요소를 바인드할 때 바인더 코드가 필요한 대로 프로젝트 소스 디렉토리에 생성됩니다. 기본적으로 생성되는 클래스는 프로젝트의 jve.generated 패키지에 추가됩니다. 그런 다음 자유롭게 데이터 바인딩 논리를 확장, 대체 또는 다시 쓸 수 있습니다. Java Visual Editor는 제공된 인터페이스를 올바르게 구현하는 데이터 오브젝트, 데이터 소스 및 바인더를 위한 비주얼 지원을 제공합니다.

그림 1. Java Visual Editor가 비주얼 구성요소를 데이터 오브젝트 및 데이터 소스에 바인드하는 방법의 상위 레벨 개요
Java Visual Editor에서 사용되는 비주얼 구성요소, 바인더, 데이터 오브젝트 및 데이터 소스 사이의 관계를 보여주는 다이어그램

이 다이어그램은 비주얼 구성요소를 데이터에 바인드하기 위한 Java Visual Editor 프로세스의 다음 기본 파트를 보여줍니다.
데이터 소스

Visual Editor 팔레트의 데이터 소스

데이터 소스는 데이터 팩토리를 의미합니다. EJB 세션 Bean, 웹 서비스, Java Bean 팩토리 또는 IDataSource 인터페이스를 구현하는 모든 것의 기본이 됩니다. Visual Editor에 적절하게 구성된 데이터 소스는 실제 데이터 팩토리의 사용 가능한 서비스 세트를 리턴하여 응용프로그램에 사용 가능하게 합니다.

데이터 소스는 파사드(facade)를 위한 팩토리로 볼 수 있습니다. 데이터 소스는 데이터 소스 파사드(facade)의 인스턴스화 및 초기화를 허용하는 구성 등록 정보를 제공합니다. 파사드(facade)는 백엔드로부터 데이터 오브젝트를 작성하거나 일부 다른 비즈니스 기능을 제공할 수 있는 메소드 세트를 제공하는 클래스입니다. 런타임 중에 getDataSource() 인터페이스가 파사드(facade)의 인스턴스를 가져오는 데 사용됩니다. 파사드(facade)가 제대로 인스턴스화되는지 확인하는 것은 데이터 소스 구현자의 책임입니다. 예를 들어, EJB 데이터 소스는 getDataSource()가 호출되기 전에 지정된 세션 Bean을 작성하기 위해 홈 인터페이스를 호출합니다. getType()이 파사드(facade) 클래스의 유형(클래스)을 리턴해야 합니다. 이 API는 주로 메소드 자체 검사를 위해 디자인 시에 호출됩니다.

Java Visual Editor는 IDataSource 인터페이스를 구현하는 다음 유형의 데이터 소스를 위한 기본 지원을 제공합니다.
EJB 데이터 소스 Visual Editor 팔레트의 데이터 소스
EJB 데이터 소스는 Bean의 서비스가 사용할 응용프로그램의 메소드로서 사용 가능하게 하기 위해 엔터프라이즈 Bean에 대한 연결을 관리하는 쉬운 방법을 제공합니다.
주: EJB 데이터 소스를 작성할 때 serviceLocatorMgr.jar이 프로젝트 클래스 경로에 추가됩니다.
웹 서비스 데이터 소스Visual Editor 팔레트의 데이터 소스
웹 서비스 데이터 소스는 웹 서비스 프록시에 대한 연결을 구성하는 데 사용됩니다. 이 데이터 소스는 클라이언트 프록시의 위치 지정자 클래스의 완전한 클래스 이름과 위치 지정자 클래스에 get 서비스 메소드를 지정하여 구성됩니다.
Java Bean 데이터 소스 Visual Editor 팔레트의 데이터 소스
Java Bean 데이터 소스는 널(null) 생성자를 사용하여 Java Bean 팩토리를 인스턴스화합니다. 그러면 Bean의 public 메소드가 서비스 메소드로서 사용 가능하게 됩니다.
데이터 오브젝트

Visual Editor 팔레트의 데이터 오브젝트

데이터 오브젝트는 Java 오브젝트를 관리하고 이를 위한 이벤트 변경 지원을 제공하기 위해 Java 오브젝트를 랩합니다. 대상 오브젝트는 IBoundObject 인터페이스의 getObject() 메소드를 통해 액세스할 수 있습니다.

Java Visual Editor가 구현한 팔레트에서 사용 가능한 여러 가지 유형의 데이터 오브젝트가 있습니다.

데이터 소스 데이터 오브젝트 데이터 소스 데이터 오브젝트 아이콘
데이터 소스 데이터 오브젝트는 데이터 소스에 대해 서비스(메소드)를 호출하여 데이터를 직접 가져옵니다. 데이터 소스 및 데이터를 제공할 데이터 소스의 특정 서비스를 지정해야 합니다. 서비스가 매개변수를 사용하는 경우 데이터 소스 데이터 오브젝트에 서비스 인수를 정의할 수 있습니다.

그림 1에서 텍스트 필드는 Service2(param)로의 호출에 의해 리턴되는 데이터 오브젝트를 표시하는 데이터 소스 데이터 오브젝트의 특성에 바인드됩니다. 이 릴리스부터, 헬퍼 클래스는 1개 이하의 인수를 갖는 서비스만을 지원합니다. 해결책으로 인수 세트를 다른 서비스에 랩할 수 있습니다.

Java Bean 데이터 오브젝트 Java Bean 데이터 오브젝트 아이콘
Java Bean 데이터 오브젝트는 Java Bean 팩토리에서 제공되는 널(null) 생성자를 사용하여 Java 오브젝트를 작성합니다. Java Bean 데이터 오브젝트를 정의하려면 Java Bean 팩토리 및 Java 오브젝트를 위한 널(null) 생성자를 제공하는 팩토리의 특성을 지정하십시오.
기본 데이터 오브젝트 기본 데이터 오브젝트 아이콘
기본 데이터 오브젝트는 다른 데이터 오브젝트로부터 직접 검색되는 단일 데이터 오브젝트를 의미합니다. 기본 데이터 오브젝트를 구성하려면 간단하게 소스 오브젝트를 지정하고 선택적으로 소스 오브젝트의 특성을 지정하십시오.
데이터 소스 행 오브젝트 데이터 소스 행 오브젝트 아이콘
데이터 소스 행 오브젝트는 데이터 소스에 대한 서비스 호출이 검색한 오브젝트 행(오브젝트의 배열)을 의미합니다. 데이터 소스 행 오브젝트는 일반적으로 테이블에 바인드됩니다.

앞의 그림에서 비주얼 테이블은, 데이터 소스의 Service1을 호출하여 리턴되는 데이터 오브젝트의 배열을 표시하는 데이터 소스 행 오브젝트에 바인드됩니다. 테이블의 열은 데이터 소스 행 오브젝트의 필드에 맵핑됩니다.

바인더

Visual Editor 팔레트의 Swing 바인더
바인더는 비주얼 구성요소를 데이터 오브젝트나 데이터 소스에 바인드하는 메타 오브젝트입니다. 비주얼 구성요소와 그의 바인더 사이에는 일대일 관계가 있습니다. 데이터 오브젝트 및 그와 상호작용하는 바인더 사이에는 일대다 관계가 있습니다. 달리 말하면 둘 이상의 비주얼 구성요소를 주어진 데이터 오브젝트에 바인드할 수 있지만, 각 비주얼 구성요소는 고유한 바인더가 필요합니다.
행 테이블 바인더 행 테이블 바인더 아이콘
행 테이블 바인더는 비주얼 테이블을 요소 배열에 바인드하는 데 사용되는 메타 오브젝트입니다. 바인더는 나열할 열, 열 헤더 및 선택적 필터 같은 정보를 보유합니다. 테이블 바인더는 또한 행 테이블 바인더와 연관된 비주얼 테이블의 선택된 오브젝트를 표시하는 기본 데이터 오브젝트(IDataObject 인터페이스)를 구현합니다. 달리 말하면 테이블의 선택된 행이 기본 데이터 오브젝트로서 사용 가능하게 됩니다.

그림 1은 행 테이블 바인더가 비주얼 테이블의 선택된 행에 대해 청취하고 해당 행에 대한 기본 데이터 오브젝트를 제공함을 보여줍니다. 해당 기본 데이터 오브젝트는 데이터 소스 데이터 오브젝트를 리턴하기 위해 Service2(param)의 매개변수로 사용됩니다. 그림 1의 텍스트 필드가 이 데이터 소스 데이터 오브젝트에 바인드됩니다.

오브젝트 테이블 바인더 오브젝트 테이블 바인더 아이콘
오브젝트 테이블 바인더는 테이블을 소스 서비스가 아니라 다른 IDataObject의 배열 특성에 바인드합니다.

데이터 소스에 대한 서비스 호출로부터 직접 행 데이터를 가져오는 행 테이블 바인더와 비슷합니다.

텍스트 바인더 텍스트 바인더 아이콘
텍스트 바인더에는 데이터 오브젝트의 바인드된 특성의 문자열 텍스트 표시가 들어있습니다. 이 바인더는 비주얼 텍스트 필드를 데이터 오브젝트의 특성에 바인드하는 데 사용됩니다.

그림 1에서는 텍스트 바인더는, Service2(param)가 리턴하는 데이터 소스 데이터 오브젝트의 특성에 비주얼 텍스트 필드를 바인드합니다. 그림 1의 Service2 매개변수가 테이블의 선택한 행(아마도 ID 같은 키 필드)으로부터 수집됩니다. 이 예제에서 Service2는 비주얼 테이블의 선택된 행에 대한 자세한 특성을 리턴할 것입니다. 예를 들어, 비주얼 테이블은 모든 직원을 그들의 성 및 직원 ID와 함께 나열할 수 있습니다. 선택한 행의 직원 ID가 Service2의 매개변수로 사용되며, 이는 직원의 급여를 포함하여 직원에 대한 모든 레코드를 리턴할 수 있습니다. 그런 다음 텍스트 필드는 Service2에 의해 리턴되는 데이터 소스 데이터 오브젝트의 급여 특성에 바인드될 수 있습니다.

조치 바인더 조치 바인더 아이콘
조치 바인더는 단추를 데이터 소스에서 사용 가능한 특정 서비스(메소드)에 직접 바인드하는 데 사용됩니다. 조치 바인더는 또한 바인드된 비주얼 구성요소의 상태 및 작동을 제어할 수 있는 이벤트 리스너 및 필드를 포함합니다. 조치 바인더는 또한 beforeActionPerformed 및 afterActionPerformed 콜백에 대한 ActionBinderListener 지원을 제공합니다.

Java Visual Editor는 조치에 대한 JButtons 바인드를 지원합니다. 단추가 조치 바인더에 바인드되면 조치 바인더는 조치에 대한 인수가 변할 때 자동으로 단추의 사용 상태를 변경할 수 있습니다. 예를 들어, 서비스 호출을 호출하는 조치 바인더는 해당 서비스 호출에 대한 매개변수가 변경될 때 단추의 작동 상태를 변경할 수 있습니다.

예를 들어, 그림 1에서 단추에 대한 조치 바인더는 텍스트 필드가 바인드되는 동일한 데이터 오브젝트를 매개변수로 사용합니다. 따라서 텍스트 필드의 텍스트가 변경되는 경우 해당 단추에 대한 조치 바인더는 데이터 오브젝트가 변경되었음을 발견하고 조치 단추를 사용 가능하도록 만들 수 있습니다. 그런 다음 해당 단추를 누르면 조치 바인더가 텍스트 필드의 변경된 값과 함께 새 데이터 오브젝트를 취하고 데이터 소스에서 Service3(param)을 호출합니다.

텍스트 필터 바인더 텍스트 필터 바인더
필터 바인더는 텍스트 필드의 텍스트 입력을 기본으로 하는 테이블의 행을 필터링하기 위한 단순한 메커니즘을 제공합니다. 필터 바인더에서 텍스트 입력에 사용되는 비주얼 텍스트 필드를 설정하고 필터링되는 행 데이터 오브젝트에 특성(테이블 열)을 설정합니다.

그림 1에서 텍스트 필터 바인더는 텍스트 필드(다이어그램에 표시되지 않음)를 테이블의 특정 열에 바인드합니다.

다시, 생성된 클래스 및 인터페이스는 단순히 비주얼 구성요소를 데이터 오브젝트 및 서비스에 바인드할 수 있는 빠르고 쉬운 방법임을 기억해야 합니다. Java Visual Editor가 생성한 바인더는 프레임워크가 되는 것을 의미하는 것이 아니고 오히려 Java Visual Editor와 제대로 작업하는 일반적인 기본 구현입니다. 응용프로그램 및 데이터 소스의 특정 수요를 만족시키기 위해 생성된 패키지에 클래스 및 인터페이스를 향상시키고 사용자 정의할 수 있습니다. 클래스를 향상시키면 Visual Editor는 클래스가 제공된 인터페이스를 올바르게 구현하는 한은 계속해서 클래스에 대한 비주얼 지원을 제공합니다.

사용 조건 | 피드백
(C) Copyright IBM Corporation 1999, 2005. All Rights Reserved.