软件中有些功能的使用很频繁,或者有些功能需要能够非常快速的响应,前者如查找,后者如锁住屏幕功能。这样的功能就需要提供可以帮助快速操作的快捷键。比如在很多软件中常见的CTRL+F,会打开查找对话框。
在ipass中需要实现按住CTRL+L立刻锁屏的功能,效果类似notes的F5。
定义ApplicationActionBarAdvisor类,继承ActionBarAdvisor,RCP的系统Action都在ApplicationActionBarAdvisor中定义,创建。实现protected void makeActions(final IWorkbenchWindow window),在其中创建自己定义的类,例如: ActionlockAction = new LockAction(window);
register(lockAction);
第二句必须执行,它是将此Action注册到系统的键盘帮定服务上,同时保存此Action,在系统关闭的时候释放此Action资源。LockAction的代码如下:
public class LockPassGateViewAction extends Action {
public static final String ID = "com.mi.pwdgate.action.LockPassGateViewAction";
public LockPassGateViewAction() {
setText("Lock");
// The id is used to refer to the action in a menu or toolbar
setId(ID);
// Associate the action with a pre-defined command, to allow key bindings.
setActionDefinitionId("pwdgate.lock.passgateview");
setImageDescriptor(ImageShop.getDescriptor("security"));
ImageShop.getDescriptor("Lock PassGate View");
}
public void run() {
//locks the screen
}
}
在plugin.xml文件中加入如下部分:
<extension
point="org.eclipse.ui.commands">
<category
name="PassGate"
id="passgate.category">
</category>
<command
name="Lock Screen"
description=""
id="pwdgate.lock.passgateview">
</command>
</extension>
<extension
point="org.eclipse.ui.bindings">
<key
commandId="pwdgate.lock.passgateview"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="CTRL+L">
</key>
</extension>
bindings中,key项的commandId指向要绑定的command的id,同时Action要设定自己指向的command的id.即 setActionDefinitionId("pwdgate.lock.passgateview");
这样就可以在程序运行时,按住CTRL+L锁住屏幕。
此方法只是在rcp开发时可用,如果开发plugin,应为无法取到ActionBarAdvisor,也就无法将自己的Action注册到系统中。这是就要利用ActionSet的extension来实现此功能。在eclipse中生成Plug-in with a popup menu 的example,就可以看到怎样用ActionSet的extension来为自己的Action绑定快捷键。
分享到:
相关推荐
任何优秀的软件都离不开快捷键功能,如Ctrl+C复制,Ctrl+V粘贴,F5刷新,此文讲述了自定义的Action(不是Command),如何绑定快捷键的方法。此方法进本人亲自试验,绝对可行。
操作(Action)是Eclipse RCP中的一个重要概念,它可以绑定到菜单、工具栏或快捷键上。 6. **实现业务逻辑** 在RCP应用中,业务逻辑通常由命令(Command)和控制器(Handler)实现。命令定义了用户可以执行的操作...
在 RCP 应用中,Actions 是实现用户交互的核心,它们可以绑定到菜单、工具栏或快捷键上。Actions 可以是简单的命令,如打开、保存,也可以是复杂的业务逻辑。 4.2. 通过编码添加 开发者可以直接编写代码创建 Action...
- **RCP与PLUGIN**:解释RCP和普通插件的区别,以及它们在应用程序中的作用。 2. **创建第一个RCP程序** - **创建一个RCP程序**:指导读者创建基本的RCP项目,包括设置项目结构和编写启动类。 - **启动RCP程序**...
- **关系**: 在RCP中,应用由多个插件组成。每个插件可以提供特定的功能或服务。 - **区别**: 插件是构建RCP应用的基本模块;而RCP则是一种架构框架,它规定了这些插件如何协同工作以形成完整应用的方式。 #### 2. ...
4. **Action**:动作是用户界面中可执行的操作,可以绑定到菜单、工具栏或快捷键上。 5. **Command Framework**:命令框架是Eclipse RCP中处理用户操作的核心机制,它将动作和UI元素解耦,使代码更易于维护和扩展。...
在Eclipse IDE中创建一个新的RCP项目。 2. 定义项目的结构,包括插件、视图、编辑器等。 3. 配置项目的启动配置。 - **关键概念**: - **插件(plugin.xml)**: 描述插件元数据的XML文件。 - **视图(View)**: 提供...
4. **Command**:命令是用户可执行的操作,可以绑定到菜单、工具栏或快捷键上。 5. **Action**:命令的具体实现,处理用户的操作请求。 **五、调试与测试** 1. **运行配置**:Eclipse允许开发者设置运行时环境,...
你可以直接在代码中创建和注册Action,将其绑定到UI元素。例如,你可以创建一个`Action`对象,设置其图标、文本、快捷键等属性,然后使用`IContributionItem`将其添加到菜单或工具栏。 本教程的后续章节将深入讲解...
- JFace是在SWT之上的抽象层,简化了UI开发,提供了数据绑定和事件处理等功能。 3. **第4章 使用基本控件与对话框**: - 学习如何创建和使用SWT的基本控件,如按钮、文本框、列表和树等。 - 掌握对话框的使用,...
在Eclipse RCP(Rich Client Platform)开发中,创建用户界面是至关重要的,而JFace是Eclipse提供的一种用于构建用户界面的高级API,它简化了 SWT(Standard Widget Toolkit)的使用,使得开发者能更专注于业务逻辑...
3.4.2 Action+Command+Binding绑定 .......................................................................................... 33 4 系统托盘 .................................................................
通过实现`Action`接口,开发者可以创建具有特定功能的用户操作,并在图形编辑器中调用。 **十一、属性页** 属性页是展示和修改模型元素属性的一种方式。GEF提供了`PropertySheet`来展示属性,并且可以自定义属性页...
在 JFace 中,TableViewer 和 TreeViewer 扩展了这些功能,添加了数据绑定和自定义列渲染等功能。 8. **Layout Managers**:SWT 提供了多种布局管理器,如 FillLayout、GridLayout、FormLayout 等,用于控制组件在...
JFace的`Action`类和贡献点机制使得在菜单、工具栏或快捷键中添加自定义命令变得简单。 8. **MVC设计模式**:JFace鼓励开发者遵循MVC模式,分离视图、模型和控制器的职责。`Snippet`中的例子展示了如何使用`Display...
4. **Actions and Menus**:JFace的Action类和MenuManager类帮助开发者轻松管理菜单、工具栏和快捷键,使得创建用户操作变得简单。 在下载的源码中,`org.eclipse.jface`包下包含了JFace的全部源代码。这个包下面有...