2011-03-08 3 views
0

Eclipse Modeling Framework와 관련하여 질문이 있습니다. EMF 모델을 지정하고 EMF를 사용하여 해당 EMF 편집기를 작성했습니다. 이제 대화 상자 및 마법사의 형태로 사용자 지정 기능을이 편집기에 추가하려고합니다. 이렇게하기 위해 필자는 편집기의 plugin.xml에있는 컨텍스트 메뉴 그룹 및 항목에 따라 사용자가 이러한 대화 상자/마법사를 호출 할 수 있도록 정의했습니다. 편집기의 프리젠 테이션 패키지에서 대화 상자/마법사에 대한 새로운 클래스를 만들었습니다.사용자 정의 편집기 대화 상자에서 EMF 모델 인스턴스에 액세스

내 질문은 이제 어떻게 사용자가 현재이 대화 상자/마법사에서 작업중인 모델에 액세스 할 수 있습니까? 예를 들어 모델의 일부분을 대화 상자/마법사에로드하고 사용자가이를 변경할 수 있어야합니다.

나는 이것을 연구했지만 충분한 답을 찾을 수 없다. "편집자".getEditingDomain(). getResourceSet(). getResources(). get (0) .getContents(). get (0);을 통해 사용할 수있는 메커니즘으로 편집 도메인을 발견했습니다. 하지만 여기서 나는 "편집자"부분 (어디 까지나 추측 할 수있는 편집기의 인스턴스)을 얻을 수있는 곳을 모른다.

진행 방법에 대한 힌트를 얻게되어 기쁩니다.

환호,

에릭

답변

0

당신이, 당신은 사용자가 모델에서 무언가를 선택 할 때마다하는 방법을 트리거 할 ISelectionChangedListener을 구현할 수 JFace의를 사용하는 경우. 이것은 SelectionChangedEvent를 selectionChanged 메소드에 전달합니다. 거기에서 event.getSelection();을 사용하여 사용자의 현재 선택 항목을 ISelection으로 가져올 수 있습니다.

희망이 도움이됩니다.

+0

안녕 Weej, 의견을 보내 주셔서 감사합니다. 내가 이해한다면, 나는 event.getSelection() 메서드를 사용하여 모델의 하나의 (선택된) 객체를 얻고이를 모델의 다른 부분에도 접근하기위한 시작점으로 사용하게 될 것이다. 어쨌든 모델 인스턴스에 액세스하는 더 직접적인 방법은 없을까요? – Erik

관련 문제