2013-06-10 1 views
1

Xtext와 GMF를 사용하고 있으므로 내 xtext 프로젝트의 활성 GMF 구획 노드에 액세스하고 싶습니다. 이 때문에, 나는 이클립스의 선택 서비스가 이것을 해결하는 좋은 방법이라고 생각했다.GMF : 선택 서비스를 통해 활성 gmf 노드에 액세스

선택 서비스를 구현하려했지만 GMF 관련 노드에 액세스하지 않은 것 같습니다. 오히려 GMT에 IXtextAwareEditPart를 구현했기 때문에 xtext 클래스 객체를 얻습니다. 활성 GMF 노드에 액세스하는 방법이 있습니까? 이 코드는 지금까지 나를 위해 작동하지 않은 대신 PartImpl의

ISelectionService selectionService = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService(); 
    ISelection selection = selectionService.getSelection(); 
    if (selection instanceof IStructuredSelection) { 
    IStructuredSelection iStructuredSelection = (IStructuredSelection) selection; 
    if (iStructuredSelection.getFirstElement() instanceof PartImpl) { 
     PartImpl partImpl = (PartImpl) iStructuredSelection; // <------ The xtext class? 
    } 
} 

답변

1

를, 객체는 GMF 편집 부분 (예를 들어 PartEditPart를) 예정) iStructuredSelection.getFirstElement (에서 돌아왔다. 다음과 같이 시도하십시오.

PartEditPart editPart = (PartEditPart) iStructuredSelection.getFirstElement(); 
ShapeImpl shapeImpl = (ShapeImpl) editPart.getModel(); 
PartImpl partImpl = (PartImpl) shapeImpl.getElement(); 
관련 문제