当在GEF图中选择一个图形时,我需要触发一个方法。当我选择一个图形时,addSelectionChangedListener 运行良好,但是如果我再次单击同一图形("取消选择"),侦听器不会触发。
我该如何解决它?
final GraphicalViewer viewer = new ScrollingGraphicalViewer();
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
//Fired when figure is selected, but not when same figure is selected again
}
});
我认为您无法通过选择机制为GEF人物实现切换行为。当选择更改时,selectionChanged
事件会触发,因此在同一图形上单击两次不会成功。
考虑到当选择另一个图形时取消选择图形,并且您可以从传入的SelectionChangedEvent
对象中检索该元素,可能需要一种不同的方法。
此外,您应该只关心用户在图表中选择图形,而不是与任何其他工作台零件不同的元素。