2009-04-24 2 views
1

Eclipse 플러그인으로 이미지 편집기를 빌드 중입니다.JFace보기가 아닌 * 선택 서비스 사용

속성보기를 사용하여 & 이미지 아래의 모델 속성을 수정하고 싶습니다. 따라서 나는 createPartControl 내 .. ..

getSite().setSelectionProvider(this); 

를 호출하고 모델 (그러므로 ISelection 인터페이스를 구현해야합니다) 선택으로 반환 될 수 있도록, 내 EditorPart 구현에 ISelectionProvider 인터페이스를 구현하고있다.

다음 단계는 Editor가 IAdaptable을 구현하여 선택한 개체에 대한 어댑터를 제공하는 것입니다.

그러나 내 문제는 getAdapter는 IPropertySource.class와 함께 호출되지 않으므로 속성보기는 이미지 모델을 이해하는 데 필요한 정보를 얻지 못한다는 것입니다.

귀하의 도움에 감사드립니다.

M.

결국 답은 몇 조각으로 고장

답변

2

... 사용자가 예를 들어, 이미지로 확대 한 경우 선택 (변경 작업을 수행 할 때

1.

)) 수 이클립스에게 확실히 알려줘. 그렇지 않으면 발생하지 않습니다.

2. SelectionChangedEvent를 보낼 때 IAdaptable을 StructuredSelection 객체로 마무리하십시오. 그렇지 않으면 Properties 뷰가 무시할 것입니다.

은 ISelectionProvider &는 IAdaptable을 구현되는 클래스에 ... 다음과 같은 방법

public void fireSelectionChanged() 
{ 
    final SelectionChangedEvent event = new SelectionChangedEvent(this, new StructuredSelection(this )); 
    Object[] listeners = selectionChangedListeners.getListeners(); 
    for (int i = 0; i < listeners.length; ++i) 
    { 
     final ISelectionChangedListener l = (ISelectionChangedListener) listeners[i]; 
     SafeRunnable.run(new SafeRunnable() { 
      public void run() { 
       l.selectionChanged(event); 
      } 
     }); 
    } 
} 

까지 삶은.

M.