Rational Developer for System z, 버전 7.6.1

조치 제공

CARMA 자원에서 조치를 실행할 수 있도록 CARMA 저장소 보기 컨텍스트 메뉴에 조치를 추가할 수 있습니다.

시작하기 전에

CARMA 조치를 제공하려면 먼저 System z용 Rational Developer CARMA 플러그인을 확장할 적절한 기반이 갖추어져 있어야 합니다. 플러그인 확장 개발을 시작하는 방법에 대한 정보는 Eclipse Platform Plug-in Developer Guide를 참조하십시오.

이 태스크 정보

CARMA 조치를 System z용 Rational Developer CARMA 플러그인에 제공하려면 다음 단계를 수행하십시오.

프로시저

  1. IResource 또는 CARMAContent 인터페이스를 구현하는 자원에 대한 오브젝트 위임 클래스를 정의하려면 org.eclipse.ui.popupMenus 확장점을 활용하도록 plugin.xml 파일을 갱신하십시오. 지정할 수 있는 두 개의 공통 자원 인터페이스는 IFile(IResource 인터페이스의 확장임) 및 CARMAContent입니다. 로컬 프로젝트 컨텐츠에서, IFile을 자원 오브젝트 클래스로 지정하면 네비게이터 보기의 컨텍스트 메뉴에 메뉴 항목이 나타나는 반면 CARMAContent를 자원 오브젝트 클래스로 지정하면 CARMA 저장소 보기의 컨텍스트 메뉴에 메뉴 항목이 나타납니다.

    네비게이터 보기에 메뉴 항목을 추가하기 위한 마크업 예제

    네비게이터 보기에 CARMA가 관리하는 파일에 대한 메뉴 항목이 나타나도록 정의한 경우 plugin.xml 파일에 다음과 같은 마크업을 포함시킬 수 있습니다.

    <extension point="org.eclipse.ui.popupMenus">
            	<objectContribution 
                    		id="com.ibm.carma.action.disconnected.iFile" 
                    		objectClass="org.eclipse.core.resources.IFile" 
                    		adaptable="true">
                    		<filter
                            			name="projectPersistentProperty"
                            			value="org.eclipse.team.core.repository=com.ibm.carma">
                    		</filter>
                    		<action 
                            			label="ABC Action" 
                            			class="com.xyz.ABCDelegate" 
                            			id="com.xyz.abc">
                    		</action>
            	</objectContribution>
    </extension>
    objectContribution 태그의 objectClass 속성이 org.eclipse.core.resources.IFile로 지정되었음을 유념하십시오. 이는 네비게이터 보기의 컨텍스트 메뉴에 메뉴 항목이 표시됨을 의미합니다. objectContribution 태그의 id 속성은 단순히 조치의 고유 ID입니다. 지정된 filter 태그는 CARMA가 관리하는 파일에 대해서만 네비게이터 보기에 메뉴 항목을 표시하도록 제한합니다. 필요한 경우, 추가로 filter 태그를 추가할 수도 있습니다. 마지막으로 action 태그는 해당 class 속성에 오브젝트 위임 클래스를 지정합니다.

    CARMA 저장소 보기에 메뉴 항목을 추가하기 위한 마크업 예제

    CARAM 저장소 보기에 자원에 대한 메뉴 항목이 나타나도록 정의한 경우 plugin.xml 파일에 다음과 같은 마크업을 포함시킬 수 있습니다.

    <extension point="org.eclipse.ui.popupMenus">
            	<objectContribution 
                    		id="com.ibm.carma.action.disconnected.carmaContent" 
                    objectClass="com.ibm.carma.model.CARMAContent
                    		adaptable="true">
                    		<filter
                            			name="repositoryManager"
                            			value="My RAM">
                    		</filter>
                    		<action 
                            			label="ABC Action" 
                            			class="com.xyz.ABCDelegate" 
                            			id="com.xyz.abc">
                    		</action>
            	</objectContribution>
    </extension>
    여기서, objectContribution 태그의 objectClass 속성이 com.ibm.carma.model.CARMAContent로 대신 지정되었습니다. 이는 CARMA 저장소 보기의 컨텍스트 메뉴에 해당 메뉴 항목이 나타남을 의미합니다. 이 예제에서는 다른 필터도 사용되었습니다. 이 필터는 "내 RAM"이라는 RAM 아래에 있는 자원에 대해서만 메뉴 항목을 표시하도록 제한합니다. filter 태그의 name 속성은 적용된 필터 유형을 지정하는 데 사용됩니다. name 속성에 관련된 기타 값에 대해서는 CarmaActionFilter를 참조하십시오. 마지막으로 action 태그는 해당 class 속성에 오브젝트 위임 클래스를 지정합니다.
  2. IObjectActionDelegate 인터페이스를 구현하거나 CarmaObjectActionDelegate (IObjectActionDelegate 인터페이스를 구현하는 편리한 클래스)를 확장하여 오브젝트 위임 클래스를 정의하십시오. CarmaObjectActionDelegate 오브젝트 위임 클래스에는 여러 가지 유용한 헬퍼 기능이 포함되어 있기 때문에 이 클래스를 확장하는 것이 좋습니다.

    ABCDelegate에 대한 코딩 예제:

    다음 코드를 자체 오브젝트 위임을 개발하기 위한 시작점으로 사용하십시오.
    public class ABCDelegate extends CarmaObjectActionDelegate {
    
            	public void run(IAction action) {
                    		CARMAContent[] members = (CARMAContent[]) getSelectedCarmaResources().toArray(new CARMAContent[0]);
    
                    		//perform task, schedule job, etc.
            }
    
            	public void selectionChanged(IAction action, ISelection selection) {
                    		super.selectionChanged(action, selection);
    
                    		//this is the ID assigned by the installation of the action
                    		action.setEnabled(!isUnsupported("101"));
            }
    }

    위의 run 메소드의 첫 번째 행은 선택된 CARMA 자원 배열을 확보하므로 조치를 수행할 때 사용할 수 있습니다. 예를 들어, 모든 선택된 자원을 반복(loop)하여 특정 메타데이터 특성을 설정할 수 있습니다. 실제로 run 메소드를 겹쳐써야 할 경우라도 위의 예제에 표시된 대로 조치의 사용가능성을 갱신하려면 selectionChanged 메소드를 겹쳐쓰는 것이 유용함을 알 수 있습니다.

    예제에 정의된 대로 새 오브젝트 선택사항이 조치를 지원할 경우, selectionChangedCarmaObjectActionDelegateisUnsupported 헬퍼 기능을 사용하여 조치 ID가 101인 조치를 사용할 수 있게 합니다. 예제 코드에 101이라는 값이 하드 코드되어 있으나 조치 이름을 알 경우 조치 ID를 동적으로 분석할 수 있습니다. 해당 RAM에 사용 가능한 조치 목록을 검색하고 조치 이름을 기본으로 목록에서 검색하여 해당 조치를 찾은 다음 getActionId 메소드를 사용하여 해당 action 오브젝트에서 조치 ID를 검색하려면 간단히 해당 RepositoryManager 오브젝트의 getActions 메소드를 사용하십시오. 조치의 조치 ID를 모를 경우 여러 동적 메소드를 사용하여 ID를 분석할 수 있습니다.

이용약관 | 피드백

이 Information Center는 Eclipse 기술을 기반으로 합니다. (http://www.eclipse.org 웹 사이트 참조)