Вот что я хотел бы сделать:
переопределив public void createPartControl(final Composite parent)
вы будете иметь родительский композит. Вызывая parent.getChildren(), вы можете перебирать доступные элементы управления. ExtendedMarkersView
«Default» - это MarkersTreeViewer, который является treeViewer, поэтому элемент управления будет деревом. У вас есть дерево, вы можете добавить любой слушатель вы хотите, вот фрагмент кода:
@Override
public void createPartControl(final Composite parent) {
super.createPartControl(parent);
for (final Control control : parent.getChildren()) {
if (!(control instanceof Tree)) {
continue;
}
tree = (Tree) control;
final Listener[] listeners = tree.getListeners(SWT.DefaultSelection);
if (listeners != null) {
for (final Listener listener : listeners) {
tree.removeListener(SWT.DefaultSelection, listener);
}
}
tree.addMouseListener(new MouseAdapter() {
@Override
public void mouseDoubleClick(final MouseEvent e) {
if (e.widget instanceof Tree) {
final Tree tree = (Tree) e.widget;
// do whatever you want
}
}
});
}
}
Спасибо за ваш ответ. Но я не могу использовать его в моем случае, потому что мой класс расширяет MarkerSupportView и перезаписывает метод createPartControl не допускается. – CSchulz
Я делаю то же самое, расширяя MarkerSupportView, который расширяет ExtendedMarkersView, проблема, о которой я знаю, заключается в том, что она находится во внутреннем пакете, однако это лучшее, что я мог бы придумать, если бы у кого-то была блестящая идея, чем я бы сделал то же самое это единственный способ, который я нашел до сих пор, чтобы решить это требование. –
Я нашел работу с помощью SelectionService, см. Мой ответ. :) Это не лучший способ ... – CSchulz