小编tor*_*tor的帖子

setSelectionProvider在两个不同的控件上工作

我正在尝试创建Eclipse插件,它具有两个TreeViewer并排的复合.点击每个TreeViewer内容Eclipse属性视图应该提供适当的信息.现在我想为这个树视图设置选择提供程序,因此我使用了

  setSelectionProvider(treeViewer1)
  setSelectionProvider(treeviewer2)
Run Code Online (Sandbox Code Playgroud)

但是只有第二个添加的树形图才会被设置,因为第一个被覆盖.我正在从Queue.java类开始这两个treeviewer.因此我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 …
Run Code Online (Sandbox Code Playgroud)

eclipse eclipse-plugin jface treeviewer

1
推荐指数
1
解决办法
581
查看次数

标签 统计

eclipse ×1

eclipse-plugin ×1

jface ×1

treeviewer ×1