我有两个意见:一个是TreeViewer
,另一个是SWT小部件。我希望使用小部件在视图中执行活动,以使视图中的变化与TreeViewer
一致。例如,在阅读有关该主题的各种资源时,他们都讨论了允许JFace查看者发布选择并接收通知,但他们没有谈到能够从Text小部件中触发这些选择。RCP SelectionService
我可以这样做吗,假设这个代码的视图是ISelectionProvider
?
Text someText = new Text(parent, SWT.BORDER) ;
someText.addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent e) {}
@Override
public void keyReleased(KeyEvent e) {
...
...
CellInfo cellInfo = new CellInfo(/*text collected while typing*/);
currentSelection = new StructuredSelection(cellInfo) ;
setSelection(currentSelection) ;
...
...
public void setSelection(ISelection selection) {
Object[] list = getListeners() ;//listeners.getListeners();
for (int i = 0; i < list.length; i++) {
((ISelectionChangedListener) list[i])
.selectionChanged(new SelectionChangedEvent(this, selection));
}
}
这似乎在选择方面的工作,但在另一边,我想消费的选择,没有任何反应。在观众我实现ISelectionListener
界面做的createPartControl()
方法的开头如下:
getSite().getPage().addSelectionListener(this);
但selectionChanged()
方法不会被调用。
我的猜测是我在生产者方面做了一些错误,因为消费者方面似乎非常简单。任何指针?
谢谢!
Jon