본문 바로가기

JAVA/Eclipse plugin

네비게이터 뷰로부터 현재 선택된 프로젝트 알아내기

이클립스 플러그인 개발에서 현재 선택된 프로젝트를 알아내는 방법중에서 네이게이터 뷰(Project Explorer, Package Explorer, 등등)으로부터 현재 선택된 리소스에서 프로젝트를 얻어내는 방법이 가장 일반적인 방법이다. 

네이게이터 뷰에서 리소스가 선택되면 자동으로 셀랙션 서비스에 IStructureSelection 형태의 셀랙션 컨테이너 형태로 선택정보가 저장되는데 이를 잡아서 알아내면 된다.



// 셀랙션 서비스로부터 현재 선택된 셀랙션 객체를 얻는다. 
ISelection selection = Workbench.getInstance()
						.getActiveWorkbenchWindow()
						.getSelectionService()
						.getSelection();    

IProject project = null;    

// 선택된 객체가 셀랙션 컨테이너가 맞다면 
if(selection instanceof IStructuredSelection) {    
	// 첫번째 선택 요소를 얻고 
    Object element = ((IStructuredSelection)selection).getFirstElement();    
    // 해당 요소가 리소스 요소라면 
    if (element instanceof IResource)  
    	// 리소스 요소로 부터 프로젝트를 얻는다. 
        project= ((IResource)element).getProject();        
}