2012-10-01 34 views
1

我需要在GEF圖中選擇圖形時觸發一個方法。 addSelectionChangedListener在選擇圖形時效果很好,但如果再次點擊同一個圖形(「取消選擇」),偵聽器不會觸發。ScrollingGraphicalViewer選擇和取消選擇偵聽器

我該如何解決?

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 

    } 
}); 

回答

0

我不認爲你可以通過選擇機制實現GEF數字的切換行爲。當選擇更改時,selectionChanged事件被觸發,因此在同一個圖上單擊兩次不會生成該事件。

或許需要一個不同的方法,同時考慮到,當另一數字被選中的圖形被取消選中,那你可以從傳入的SelectionChangedEvent對象的該元素。

此外,你應該只關心用戶在圖表中選擇一個圖形,而不是與其他任何工作臺部件不同的元素。