我正在构建一个Eclipse应用程序,我试图在按F5时创建一个启动操作的快捷方式,并使其成为Tab
/ViewPart
具有焦点时的默认操作。
我读到过这是不可能的,或者是非常复杂的。有没有简单/直接的方法来做到这一点?
我试过:
Display.getCurrent().addFilter(...)
this.addKeyListener(new KeyAdapter() {...})
字符串
...
在constructor中做这个是我最好的:
this.getShell().addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if(e.keyCode == SWT.F5) {
//doAnything()
}
}
});
型
这在加载时不工作,但如果我从这个切换到另一个View
/Tab
开始工作。但当其他人有焦点时(我不想要),它也工作。
有没有办法让这个工作在一开始,只有当重点是在View
?
4条答案
按热度按时间9vw9lbht1#
你应该看看RetargetableActions。我认为这是Eclipse的做法:
rpppsulh2#
您需要查看扩展名
org.eclipse.ui.bindings
和org.eclipse.ui.contexts
。1.定义命令及其处理程序
1.定义命令的绑定
1.定义上下文(cxtId)
1.将上下文与命令相关联,以便命令仅在上下文处于活动状态时可用
1.打开视图或窗体时激活上下文。
km0tfn4u3#
如果你得到了组件的事件监听器,它会监听事件。如果这个组件发生了事件,它会得到通知。
要在
ViewPart
上添加键事件的侦听器,我们应该创建能够侦听事件的控件。字符串
cld4siwp4#
你应该在handler中定义工作,然后应该使用这个例子中给出的键绑定。你可以找到一个很好的例子here。希望它能解决你的需要。