有一個good thread關於如何正確掛鉤右擊菜單到Jface TreeViewer
取決於所選項目。Jface TreeViewer添加右鍵單擊菜單,具體取決於點擊節點
我想顯示右鍵單擊菜單取決於:如果右鍵單擊在節點上或「空白空間」。問題在於,如果您單擊空白空間,TreeViewer不會自動清除選擇。有沒有什麼乾淨的方式如何實現這一目標?
我目前的做法是簡單地掛上一個MouseListener
樹具有以下鼠標按下方法:
@Override
public void mouseDown(MouseEvent e) {
TreeItem item = treeViewer.getTree().getItem(new Point(e.x, e.y));
if (item == null) {
treeViewer.getTree().deselectAll();
}
}
這似乎是工作得很好。你覺得這怎麼樣?
注意,可能沒有任何「空白空間」可言,這取決於'TreeViewer'多少項目包含的內容。所以這種情況與用戶體驗設計一樣糟糕。 – Baz 2014-09-05 10:08:32
@Baz我不確定我是否理解你的觀點。如果沒有空的空間,那麼一切都應該沒問題,因爲用戶總是點擊一個節點? – user3726374 2014-09-05 10:21:52
因此,您不需要在「空白空間」中使用上下文菜單,因爲用戶沒有右鍵單擊某個節點? – Baz 2014-09-05 10:23:28