如果combobox中的值发生变化,如何在comboviewer中触发事件?不是每个选择都触发(addSelectionChangedListener)。我只想触发一个事件,如果当前选择了不同的值,而不是相同的值。
例如: combobox,value {1,2,3}。我设置为1。当我打开combobox并单击1时,它不会触发事件。但当我点击2或3时,它将触发事件。类似html的东西,它只触发事件,只是事件改变了。我已经用comboViewer.getCombo().addMofidyListener测试过了。但情况与上面的selectionChangedListener相同(在组合框中单击相同的值总是会触发事件)。
谢谢
发布于 2011-07-03 21:24:07
ComboViewer本身不能做到这一点。尝试编写一个记住旧值的选择侦听器。
abstract class CleverSelectionChangedListener implements ISelectionChangedListener {
private Object _oldSelection;
public void selectionChanged(SelectionChangedEvent event) {
Object newSelection = ((IStructuredSelection) event.getSelection()).getFirstElement();
if (newSelection != _oldSelection) {
selectionReallyChanged(event);
_oldSelection = newSelection;
}
}
public abstract void selectionReallyChanged(SelectionChangedEvent event);
}https://stackoverflow.com/questions/4290734
复制相似问题