Rational Developer for System z

프로젝트 네이처별로 조치 및 특성 페이지 필터링

이 샘플에서는 사용자 정의 프로젝트 네이처를 하위 프로젝트에 추가하는 방법을 보여줍니다. 프로젝트 네이처의 유무를 통해 메뉴 항목의 가시성을 제어할 수 있습니다.

샘플 시나리오

다음 주제의 지시사항에 따라 새 z/OS® 프로젝트 및 MVS 하위 프로젝트를 작성하십시오.

하위 프로젝트에 샘플 프로젝트 네이처를 추가하려면 하위 프로젝트를 마우스 오른쪽 단추로 클릭하고 API 샘플 조치 > 프로젝트 네이처 추가 조치를 선택하십시오.

샘플 코드 설명

하위 프로젝트 네이처 정의

Rational® Developer for System z®의 하위 프로젝트 네이처는 개념상 기본 Eclipse의 IProjectNature와 비슷합니다. 이 네이처는 각 하위 프로젝트에서 사용 가능한 기능을 기반으로 원격 하위 프로젝트를 구별하는 방법을 제공합니다.

원격 하위 프로젝트의 사용자 정의 프로젝트 네이처를 정의하려면 ILogicalSubProjectNature 인터페이스를 구현하는 클래스를 작성해야 합니다. 그러면 SampleNature 클래스에 다음과 같은 코드가 포함됩니다.

public class SampleNature implements ILogicalSubProjectNature {
   ......
}

ILogicalSubProjectNature 인터페이스는 비교적 간단합니다. SampleNature에서 프로젝트 특성의 개인 필드 project를 추가하면 됩니다.

전체 소스 코드는 SampleNature.java에 있습니다.

프로젝트 네이처 정의를 완료하려면, 다음과 같이 플러그인 Manifest에 SampleNature 클래스를 선언하십시오.

   <extension
         id=“samplenature”
         name=“
         point=“com.ibm.ftt.projects.core.natures”>
      <nature class=“com.ibm.ftt.api.samples.natures.SampleNature”/>
   </extension>

이 스니펫은 ID com.ibm.ftt.api.samples.samplenature를 사용하여 프로젝트 네이처를 정의합니다. 이 ID는 확장 ID samplenature에 플러그인 정의 ID com.ibm.ftt.api.samples를 추가하여 얻을 수 있습니다.

프로젝트 네이처 추가

Add Project Nature 메뉴 항목은 AddSubProjectNatureAction 클래스를 통해 구현됩니다. run(IAction) 메소드가 ILogicalSubProjectaddNatureId(String) 메소드에 네이처 ID를 전달하여 SampleNature를 추가합니다.

  try {
			getSubProject().addNatureId("com.ibm.ftt.api.samples.samplenature");
		} catch (CoreException e) {
			// TODO: in production code exception should be handled for real
			e.printStackTrace();
		}

전체 소스 코드는 AddSubProjectNatureAction.java에 있습니다.

표준 Eclipse 컨트리뷰션 메커니즘을 사용하여 조치가 컨트리뷰션됩니다.

      <objectContribution
            adaptable=“false”
            objectClass=“com.ibm.ftt.projects.core.logical.ILogicalSubProject”
            id=“com.ibm.ftt.api.samples.addnature”>
         <action
               label=“
               class=“com.ibm.ftt.api.samples.natures.AddSubProjectNatureAction”
               id=“com.ibm.ftt.api.samples.addnatureaction”/>
      </objectContribution>

프로젝트 네이처 제거 및 프로젝트 네이처별로 필터링된 메뉴 항목 컨트리뷰션

Remove Project Nature 메뉴 항목은 RemoveSubProjectNatureAction 클래스를 통해 구현됩니다. run(IAction) 메소드가 ILogicalSubProjectremoveNatureId(String) 메소드에 네이처 ID를 전달하여 SampleNature를 제거합니다.

  try {
			getSubProject().removeNatureId(“com.ibm.ftt.api.samples.samplenature”);
		} catch (CoreException e) {
			// TODO: in production code exception should be handled for real
			e.printStackTrace();
		}

전체 소스 코드는 RemoveSubProjectAction.java에 있습니다.

Add Project Nature 메뉴 항목과 마찬가지로, 조치 필터를 추가로 사용하여 표준 Eclipse 컨트리뷰션 메커니즘을 통해 조치가 컨트리뷰션됩니다. 따라서 SampleNature가 해당 프로젝트에 추가된 경우에만 프로젝트 네이처 제거 조치가 나타납니다.

      <objectContribution
            adaptable=“false”
            objectClass=“com.ibm.ftt.projects.core.logical.ILogicalSubProject”
            id=“com.ibm.ftt.api.samples.removenature”>
         <filter
               value=“com.ibm.ftt.api.samples.samplenature”
               name=“projectNature”/>
         <action
               label=“
               class=“com.ibm.ftt.api.samples.natures.RemoveSubProjectNatureAction”
               id=“com.ibm.ftt.api.samples.removenatureaction”/>
      </objectContribution>

이용 약관 | 피드백

이 Information Center는 Eclipse 기술로 구현됩니다. (http://www.eclipse.org 웹사이트 참조)