org.eclipse.ui.viewActions

플러그인에서 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")); 
}

이 조치는 간단하지만 선택사항과 좀 더 기능적인 대화 상자를 사용하여 조치를 더 다양하게 만들 수 있는 방법을 생각해 볼 수 있습니다.