TreeViewer
2つ並べて複合したEclipseプラグインを作成しようとしています。各コンテンツをクリックすると、TreeViewer
Eclipse プロパティ ビューに適切な情報が表示されます。今、このツリービューアーの両方に選択プロバイダーを設定したかったので、使用しました
setSelectionProvider(treeViewer1)
setSelectionProvider(treeviewer2)
ただし、最初のツリービューアーが上書きされるため、2 番目に追加されたツリービューアーのみが設定されます。クラス Queue.java からこの 2 つのツリービューアーを開始しています。したがってISelectionProvider
、次のように Queue.java を介してインターフェイスを実装しました。
public void addSelectionChangedListener(ISelectionChangedListener listener)
{
selectionChangedListeners.add(listener);
}
public void
removeSelectionChangedListener(ISelectionChangedListener listener)
{
selectionChangedListeners.remove(listener);
}
private void fireSelectionChanged(final SelectionChangedEvent event)
{
Object[] listeners = selectionChangedListeners.getListeners();
for (int i = 0; i < listeners.length; ++i)
{
final ISelectionChangedListener l =
(ISelectionChangedListener) listeners[i];
Platform.run(new SafeRunnable()
{
public void run()
{
l.selectionChanged(event);
}
@Override
public void handleException(Throwable e)
{
removeSelectionChangedListener(l);
}
});
}
}
public void setSelection(ISelection selection)
{
fireSelectionChanged(new SelectionChangedEvent(this, selection));
}
public ISelection getSelection()
{
ArrayList<Object> list = new ArrayList<Object>();
Object o = getProperties();
if (o instanceof IPropertySource)
list.add(o);
return new StructuredSelection(list);
}
この問題を解決する方法を教えてください。私は感謝するでしょう。前もって感謝します。トール。