조치 클래스를 사용하면 UI의 명령 프리젠테이션과 관계 없이 사용자 명령을 정의할 수 있습니다. 이것은 일단 선택하면 실제로 명령을 수행하는 코드를 변경하지 않고도 플러그인의 조치에 대한 프리젠테이션을 변경하는 유연성을 제공합니다. 컨트리뷰션 클래스는 명령을 표시하는 실제 UI 항목을 관리하는 데 사용됩니다. 컨트리뷰션 클래스에 대해 프로그램하지는 않지만 일부 Workbench와 JFace API에서 이 클래스를 보게 됩니다.
조치(IAction)는 일반 사용자에 의해 트리거될 수 있는 명령을 표시합니다. 일반적으로 조치는 단추, 메뉴 항목, 도구 모음의 항목과 연관됩니다.
조치 자체가 UI로 배치되지는 않지만, 조치에는 UI 지향 특성(예: 도구 팁 텍스트, 레이블 텍스트, 이미지)이 있습니다. 이로 인해 다른 클래스가 조치 프리젠테이션에 대해 위지트(widget)를 구성할 수 있습니다.
사용자가 UI의 조치를 트리거하면, 실제 작업을 수행하기 위해 조치의 run 메소드가 호출됩니다. run 메소드의 공통 패턴은 Workbench 선택사항을 조회하고 선택한 오브젝트를 조작하는 것입니다. 또다른 공통 패턴은 조치를 선택하면 마법사나 대화 상자를 실행하는 것입니다.
IAction 인터페이스를 직접 구현해서는 안됩니다. 대신, Action 클래스를 서브클래스로 분류해야 합니다. 조치에 대한 여러 공통 패턴을 보려면 이 클래스의 서브클래스를 찾아보십시오. 아래의 코드는 "정보" 조치를 구현합니다. 이 조치는 Workbench의 일반 조치 중 하나입니다.
public void run() { new AboutDialog(workbenchWindow.getShell()).open(); }
앞서 Workbench 인터페이스 IViewActionDelegate 및 IEditorActionDelegate를 살펴 보았습니다. 이 인터페이스들은 Workbench에 보기 조치 또는 편집기 조치를 제공할 때 사용됩니다. Workbench 조치 위임은 연관된 보기 또는 편집기에 대해 초기화됩니다. 이 정보를 기반으로 Workbench 페이지나 창을 탐색하고 선택사항 또는 조치 수행에 필요한 기타 정보에 액세스할 수 있습니다.
사용자는 플러그인의 명령을 정의하려고 할 때마다 고유의 조치 클래스를 구현하게 됩니다. 기타 보기 및 편집기에 조치를 제공하는 경우에는 조치 위임을 구현하게 됩니다.
컨트리뷰션 항목(IContributionItem)은 조치의 UI 부분을 표시합니다. 보다 자세하게 말하면, 공유 자원(예: 메뉴 또는 도구 모음)에 제공된 항목을 표시합니다.
컨트리뷰션 항목은 지시문을 표시하는 관련 SWT 항목으로 특정 SWT 위지트(widget)를 채우는 방법을 보여줍니다.
Workbench UI에 조치를 제공하는 경우 지시문 항목의 작성을 걱정할 필요는 없습니다. 이 작업은 사용자가 정의한 조치에 대한 UI 항목을 Workbench가 작성할 때 사용자를 대신하여 수행됩니다.
컨트리뷰션 관리자(IContributionManager)는 UI에 제공될 컨트리뷰션 항목의 콜렉션을 표시합니다. 이름 지정된 컨트리뷰션 ID로 컨트리뷰션 항목을 추가 및 삽입하여 항목을 적절한 순서로 배치할 수 있습니다. 또한 ID로 항목을 찾아 개별 항목을 제거할 수도 있습니다.
각 IContributionManager 구현은 특정 SWT 위지트(widget)를 해당 항목으로 채우는 방법을 보여줍니다. JFace는 메뉴(IMenuManager), 도구 모음(IToolBarManager), 상태 표시줄(IStatusLineManager)에 대한 컨트리뷰션 관리자를 제공합니다.
플러그인 개발자는 이 인터페이스들을 구현하지 않아도 되지만, 이 관리자 중 일부에 대한 참조를 API 메소드에서 보게 됩니다.