我有两个视图:一个带有 a TreeViewer
,另一个带有 SWT 小部件。我希望带有小部件的视图中的活动能够导致带有TreeViewer
. 在阅读有关该主题的各种资源时,他们都谈到了允许 JFace 查看器发出选择并接收通知,但他们没有谈到能够从文本小部件触发这些选择。
假设这段代码所在的视图是一个,我可以做这样的事情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()
方法永远不会被调用。
我的猜测是我在生产者方面做错了,因为消费者方面看起来很简单。任何指针?
谢谢!
乔恩