2009-04-24 8 views
1

Eclipseプラグインとしてイメージエディタを構築しています。JFaceビューではないものに対してSelectionサービスを使用する

プロパティビューを使用して&画像の下にあるモデルのプロパティを編集したいとします。そこで私はcreatePartControl内..

getSite().setSelectionProvider(this); 

を呼び出し、そしてモデルは(したがって、ISelectionインタフェースを実装する必要があります)選択として返されるように、私のEditorPart実装でISelectionProviderインターフェースを実装しています。

次のステップは、エディタがIAdaptableを実装して、選択したオブジェクトのアダプタを提供することです。

ただし、getAdapterがIPropertySource.classで呼び出されることはないため、プロパティビューはイメージモデルを理解するために必要なものを取得できません。

あなたのヘルプははるかに高く評価されます。最後に

M.

答えて

2

答えは...いくつかの作品にダウン

1.を破った)あなたの選択は変更しない場合(例えば、ユーザが画像にズームしている場合)ことEclipseにこれを伝えてください。それ以外の場合は起こりません。

2. SelectionChangedEventを送信するときは、IAdaptableをStructuredSelectionオブジェクトにまとめます。そうしないと、プロパティビューで無視されます。

これは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.

関連する問題