플러그인은 org.eclipse.ui.actionSets 확장점을 사용하여 메뉴, 메뉴 항목 및 도구 모음 항목을 Workbench 메뉴와 도구 모음에 제공할 수 있습니다. 플러그인의 메뉴 지시문을 동시에 표시할 때 발생할 수 있는 혼란을 줄이기 위해 사용자 환경 설정에서 표시할 수 있는 조치 세트로 지시문을 그룹화합니다.
Workbench 메뉴에서 창->Perspective 사용자 정의...를 선택하여 Workbench에 제공된 조치 세트를 확인할 수 있습니다. 이 옵션은 조치 세트를 명령 그룹으로 나열하는 대화 상자를 표시합니다. 명령 그룹별 선택표시는 메뉴 및 도구 모음 조치가 Workbench에 표시됨을 의미합니다. 명령 그룹 이름을 선택하여 오른쪽에 사용 가능한 메뉴 및 도구 모음 조치 목록을 표시할 수 있습니다. 아래 그림은 Workbench에서 사용할 수 있는 명령 그룹 목록을 표시합니다. 설치한 플러그인과 활성화된 Perspective에 따라 Workbench 모양이 다를 수 있습니다.
readme 도구는 조치 세트를 사용하여 몇 개의 다른 "Readme 브라우저 열기" 조치를 Workbench 메뉴에 제공합니다. 유사한 조치를 자원 네비게이터의 팝업 메뉴에 제공했습니다. 마크업은 다음과 같습니다.
<extension point = "org.eclipse.ui.actionSets"> <actionSet id="org_eclipse_ui_examples_readmetool_actionSet" label="%ActionSet.name" visible="true"> <menu id="org_eclipse_ui_examples_readmetool" label="%ActionSet.menu" path="window/additions"> <separator name="slot1"/> <separator name="slot2"/> <separator name="slot3"/> </menu> <action id="org_eclipse_ui_examples_readmetool_readmeAction" menubarPath="window/org_eclipse_ui_examples_readmetool/slot1" toolbarPath="readme" label="%ReadmeAction.label" tooltip="%ReadmeAction.tooltip" helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context" icon="icons/ctool16/openbrwsr.png" class="org.eclipse.ui.examples.readmetool.WindowActionDelegate" enablesFor="1"> <selection class="org.eclipse.core.resources.IFile" name="*.readme"> </selection> </action> ... </actionSet> </extension>
여기에는 많은 항목이 있습니다. 한 번에 한 단계씩 진행해보겠습니다. 처음 조치부터 살펴봅니다.
먼저 조치 세트를 선언하고 label을 제공합니다. "ReadMe 조치" 레이블(플러그인의 특성 파일에 있는 %ActionSet.name 키에 대해 정의됨)을 사용하여 위에 표시된 대화 상자의 조치 세트를 표시합니다. visible을 true로 설정했기 때문에 초기 Workbench에는 조치 세트 목록에 선택된 조치 세트가 있으며 조치를 볼 수 있습니다.
조치 세트 선언의 나머지는 조치가 표시되는 메뉴 및 조치에 대한 정의에 관련되어 있습니다.
Workbench 메뉴에 나타나는 label의 메뉴를 정의합니다. 메뉴의 pass는 Workbench가 window 메뉴의 additions 슬롯에 새 메뉴를 놓도록 합니다. 메뉴 경로와 슬롯에 대한 설명은 메뉴 및 도구 모음 경로를 참조하십시오. 또한 조치가 메뉴의 특정 위치에 삽입되도록 새 메뉴의 일부 슬롯을 정의합니다.
이 마크업만으로 메뉴가 Workbench 창 메뉴에 나타납니다.
다음으로 조치 자체를 정의합니다.
조치 정의(id, label, icon, class)는 보기, 편집기 및 팝업에서 보았던 기타 조치와 유사합니다. 여기서는 그 차이점(조치가 이동하는 위치)에 대해 중점적으로 알아보겠습니다. menubarPath 및 toolbarPath를 사용하여 위치를 표시합니다. 먼저 menubarPath를 정의하여 지금 정의한 메뉴의 슬롯에 조치를 추가합니다("window/org_eclipse_ui_examples_readmetool/slot1").
그런 다음 Workbench 도구 모음에 조치를 삽입하도록 새 toolbarPath를 정의합니다. 새 도구 경로 "readme"를 정의했으므로 Workbench는 다른 플러그인의 도구 모음 지시문에 대한 적절한 위치를 결정합니다.
사용자가 조치를 선택할 경우 어떤 일이 발생합니까? 조치는 class 속성에 지정된 클래스에 의해 구현됩니다. 조치가 도구 모음에 풀다운 도구 항목으로 표시될 경우 조치 class에서 IWorkbenchWindowActionDelegate 또는 IWorkbenchWindowPulldownDelegate를 구현해야 합니다. 풀다운 도구 항목을 만들지 않았기 때문에 WindowActionDelegate를 제공합니다. 이 클래스는 ObjectActionDelegate와 유사합니다. 사용자가 조치를 선택하면 이 클래스는 readme 섹션 대화 상자를 실행합니다. 응용프로그램 대화 상자의 섹션 대화 상자에 대해 설명합니다.
조치는 메뉴 항목 및 도구 모음 항목에 대한 사용 조건도 제공합니다. 메뉴 및 도구 모음 항목은 하나(enablesFor="1")의 readme 파일(selectionClass ="org.eclipse.core.resources.IFile" name="*.readme")이 선택된 경우에만 사용 가능합니다. plugin.xml 파일의 마크업 때문에 이 조치의 메뉴 및 도구 모음 항목이 표시되고 사용 가능하게 됩니다. 사용자가 조치를 선택하고 Workbench가 조치 class를 실행할 때까지 플러그인 코드가 실행되지 않습니다.
나중에 새로 대상 지정 가능한 조치 컨텍스트에서 다른 두 조치를 살펴볼 것입니다.