플러그인에서 Workbench에 이미 존재하는 보기에 작동을 제공하는 것을 흔히 볼 수 있습니다. org.eclipse.ui.viewActions 확장점을 통해 이 작업이 수행됩니다. 이 확장점을 사용하면 플러그인에서 메뉴 항목, 서브메뉴 및 도구 모음 항목을 기존 보기의 로컬 풀다운 메뉴와 로컬 도구 모음에 제공할 수 있습니다.
readme 파일을 선택할 때마다 사용 가능하게 되는 네비게이터의 로컬 도구 모음에 있는 항목을 확인할 수 있습니다. 이 항목은 네비게이터의 로컬 풀다운 메뉴에도 나타납니다. readme 도구 플러그인에서 viewActions 확장을 사용하여 이 조치를 제공하기 때문에 나타납니다.
관련되는 plugin.xml 지시문은 다음과 같습니다.
<extension
point = "org.eclipse.ui.viewActions">
<viewContribution
id="org.eclipse.ui.examples.readmetool.vc1"
targetID="org.eclipse.ui.views.ResourceNavigator">
<action id="org.eclipse.ui.examples.readmetool.va1"
label="%PopupMenu.ResourceNav.label"
menubarPath="additions"
toolbarPath="additions"
icon="icons/obj16/editor.png"
tooltip="%PopupMenu.ResourceNav.tooltip"
helpContextId="org.eclipse.ui.examples.readmetool.view_action_context"
class="org.eclipse.ui.examples.readmetool.ViewActionDelegate"
enablesFor="1">
<selection class="org.eclipse.core.resources.IFile" name="*.readme"/>
</action>
</viewContribution>
</extension>
고유 ID를 가진 보기 지시문을 지정합니다. 조치를 추가하려는 보기를 targetID에 지정합니다. 자원 네비게이터의 메뉴에 대해 제공하고 있습니다. 새 조치에 대해 레이블, 메뉴 표시줄 및 도구 모음 위치를 지정합니다. 메뉴와 도구 모음 위치에 대한 전체 설명은 메뉴 및 도구 모음 경로를 참조하십시오.
조치가 활성화되는 조건도 지정합니다. 파일 확장자의 이름이 ".readme"(name="*.readme")인 IFile (class="org.eclipse.core.resources.IFile") 유형의 선택사항(enablesFor="1")이 하나 있을 경우 이 조치는 사용 가능합니다. 그리고 자원 네비게이터 주변을 클릭할 경우에도 마찬가지로 활성화됩니다.
플러그인 코드는 조치가 메뉴나 도구 모음에서 실제로 선택된 경우에만 실행되므로 메뉴와 도구 모음에 항목을 추가하는 데 plugin.xml 정보만 필요합니다. 조치 작동을 제공하려면 plugin.xml에 지정된 구현 클래스는 IViewActionDelegate 인터페이스를 구현해야 합니다.
이 예에서 readme 플러그인은 조치를 구현하기 위한 ViewActionDelegate를 제공합니다. 이 클래스를 찾아 보면 여기에 해당 보기를 기억하고 선택사항 변경을 처리하고 조치를 호출하는 메소드가 포함되어 있음을 알 수 있습니다. 호출될 때 조치 자체는 실행되었음을 알리는 대화 상자를 실행합니다.
public void run(org.eclipse.jface.action.IAction action) {
MessageDialog.openInformation(view.getSite().getShell(),
MessageUtil.getString("Readme_Editor"),
MessageUtil.getString("View_Action_executed"));
}
이 조치는 간단하지만 선택사항과 좀 더 기능적인 대화 상자를 사용하여 조치를 더 다양하게 만들 수 있는 방법을 생각해 볼 수 있습니다.