我想创建自己的问题的看法。
我发现下面的教程和一切工作正常。
但是否有可能增加一个自己的DoubleClickListener或类似的东西?
我想在用户操作,这是清单上执行的反应。
感谢您的任何建议。
我想创建自己的问题的看法。
我发现下面的教程和一切工作正常。
但是否有可能增加一个自己的DoubleClickListener或类似的东西?
我想在用户操作,这是清单上执行的反应。
感谢您的任何建议。
这里是我会做什么:
通过覆盖public void createPartControl(final Composite parent)
,你将有父复合。 通过调用parent.getChildren(),您可以在可用的控制迭代。 ExtendedMarkersView
“默认”控制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
}
}
});
}
}
我发现了一个解决方案,而不是最好的,但可以接受的方式。
我用的是SelectionService我ViewPart时注册一个新SelectionListener中 。
我的解决方案只接受在问题视图中选择,也许有更好的方式来不同的事件。
site.getWorkbenchWindow().getSelectionService().addSelectionListener(new ISelectionListener() {
@Override
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
IStructuredSelection s = (IStructuredSelection) selection;
if (s.getFirstElement() instanceof MarkerItem) {
MarkerItem marker = (MarkerItem) s.getFirstElement();
if (marker != null && marker.getMarker() != null) {
IMarker iMarker = marker.getMarker();
// More Code here ...
}
}
}
});