实现上下文菜单扩展的方法和计算装置、计算机可读介质与流程

文档序号:20837780发布日期:2020-05-22 17:05阅读:239来源:国知局
实现上下文菜单扩展的方法和计算装置、计算机可读介质与流程

本发明涉及文档处理领域,尤其涉及一种文档程序中实现上下文菜单扩展的方法和系统、计算机可读介质。



背景技术:

办公软件(office)提供了大量的功能用来满足大部分用户的通用需求,但对于一些第三方系统的特定功能还无法完全满足。右键菜单(contextmenu,又称上下文菜单)集合了对当前选择的区域或对象的相关处理的命令,第三方系统在某些情况下需要提供额外的处理,一般第三方系统不仅需要额外编写一些程序,使用办公软件提供的二次开发接口将特定功能处理的命令添加到某些右键菜单中,并且在办公软件程序初始化时就需要执行上述程序。这样的方案不仅开发时费时费力,使用时也不方便。

因此,有必要提出一种改进的方案来克服上述问题。



技术实现要素:

本发明的目的在于提供一种文档程序中实现上下文菜单扩展的方法和计算装置、计算机可读介质,其不需要额外编写添加扩展功能的命令的程序,可以更简单方便的在文档程序中实现上下文菜单扩展。

根据本发明的另一个方面,本发明提供一种文档程序中实现上下文菜单扩展的方法,所述文档程序中定义了多个上下文菜单,每个上下文菜单具有唯一的身份标识,所述文档程序中包括有插件引擎,一个或多个插件程序与所述文档程序整合在一起,所述插件程序包括插件配置文件,所述插件配置文件包括有上下文菜单扩展信息,所述上下文菜单扩展信息包括扩展的上下文菜单的身份标识和关联的插件程序,所述方法包括:在文档程序启动时,所述插件引擎搜索所述插件程序,并从搜索到的插件程序的插件配置文件中解析出所述上下文菜单扩展信息,将解析出的上下文菜单扩展信息缓存待用;在所述文档程序需要显示一个目标上下文菜单时,所述插件引擎通过缓存的上下文菜单扩展信息确定该目标上下文菜单是否存在功能扩展,如果存在功能扩展,则根据对应的上下文菜单扩展信息生成相应的扩展菜单命令并添加到该目标上下文菜单的原有菜单命令中;显示添加有扩展菜单命令的目标上下文菜单;在该目标上下文菜单的扩展菜单命令被激发时,执行该扩展菜单命令关联的插件程序。

进一步的,所述上下文菜单扩展信息还包括扩展类型和扩展文本,基于所述扩展类型和扩展文本生成相应的扩展菜单命令。

进一步的,所述插件引擎搜索还会从搜索到的插件程序的插件配置文件中解析出其他功能扩展信息。

进一步的,所述插件引擎通过所述目标上下文菜单的身份标识在缓存的上下文菜单扩展信息中查找是否有该目标上下文菜单对应的上下文菜单扩展信息,如果有,则认为该目标上下文菜单存在功能扩展,否则,则认为不存在功能扩展。

进一步的,如果不存在功能扩展,则直接显示该目标上下文菜单。

进一步的,所述文档程序为文字处理程序、表格处理程序或简报处理程序。

进一步的,所述插件引擎定义有上下文菜单扩展点。

进一步的,所述插件引擎在插件目录下搜索所述插件程序,所述插件程序在与所述文档程序整合在一起后会在插件目录下形成插件文件,所述插件文件中包括插件配置文件。

根据本发明的另一个方面,本发明提供一种计算装置,其包括处理器和存储器,所述存储器中存储有程序指令,该程序指令由处理器执行以实现上述文档程序中实现上下文菜单扩展的方法。

根据本发明的另一个方面,本发明提供一种计算机可读介质,其内存储有程序指令,该程序指令被执行以实现上述文档程序中实现上下文菜单扩展的方法。

与现有技术相比,本发明使用插件配置方式对文档程序中的上下文菜单进行功能扩展,不需要额外编写添加扩展功能的命令的程序,更方便地将第三方功能整合到文档程序中。

附图说明

图1为本发明的文档程序中实现上下文菜单扩展的方法在一个实施例中的流程示意图;

图2为现有技术中的上下文菜单的一个示例;和

图3为采用了本发明中的上下文菜单扩展的方法后的上下文菜单的示例。

具体实施方式

为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如下。

本发明提供一种文档程序中实现上下文菜单扩展的方法,其使用插件配置方式对文档程序中的上下文菜单进行功能扩展,不需要额外编写添加扩展功能的命令的程序,更方便地将第三方功能整合到文档程序中。

本发明中的文档程序可以是文字处理程序,比如word,也可以是表格处理程序,比如excel,还可以是简报处理程序,比如ppt。当然也可以是其他文档处理程序,这里就不再一一列举了。

图1为本发明的文档程序中实现上下文菜单扩展的方法100在一个实施例中的流程示意图。

所述文档程序中定义了多个上下文菜单,每个上下文菜单具有唯一的身份标识(id)。以文字处理程序为例,其至少定义了文本上下文菜单、图片上下文菜单、表格上下文菜单等,所述身份标识用于识别各个不同的上下文菜单。所述身份标识可以是数值,也可以是文本。所述上下文菜单也可以被称为右键菜单。需要注意的是,由于各个用户使用习惯的不同,鼠标中的左键和右键是可以由用户自己设置的,这里的右键菜单可以是真实的鼠标右键所激发的菜单,也可以是鼠标左键所触发的菜单。

所述文档程序中包括有插件引擎,所述插件引擎定义有上下文菜单扩展点。所述插件引擎也可以被称为插件管理模块。一个或多个插件程序(plugin)与所述文档程序整合在一起,所述插件程序包括插件配置文件。所述插件配置文件包括有上下文菜单扩展信息,所述上下文菜单扩展信息包括扩展的上下文菜单的身份标识、扩展类型、扩展文本和关联的插件程序。具体的,所述插件程序在与所述文档程序整合在一起后会在插件目录下形成插件文件,所述插件文件中包括插件配置文件。

当然所述插件程序不仅仅可以进行上下文菜单扩展,还可以进行其他功能扩展,因此所述插件程序的插件配置文件还可以包括其他功能扩展信息。

如图1所示,所述方法100包括如下步骤。

步骤110,在文档程序启动时,所述插件引擎搜索所述插件程序,并从搜索到的插件程序的插件配置文件中解析出所述上下文菜单扩展信息,将解析出的上下文菜单扩展信息缓存待用。

具体的,所述插件引擎可以遍历搜索插件目录下插件文件,并从找到的插件配置文件中解析出所述上下文菜单扩展信息以及其他功能扩展信息。

这里解析出的信息只需要缓存待用,此时所述插件程序还未被启动,这样可以降低不必要的计算量。现有的上下文菜单扩展的第三方程序在所述文档程序被启动后会被一并启动,这样极大的浪费了计算资源。

步骤120,所述文档程序接收到显示一个目标上下文菜单的指令。比如,用户点击了鼠标的右键,所述文档程序收到该指令就需要显示一个目标上下文菜单。

步骤130,所述插件引擎通过缓存的上下文菜单扩展信息确定该目标上下文菜单是否存在功能扩展,如果存在功能扩展,所述方法进入步骤140,如果不存在功能扩展,则进入步骤170,直接显示该目标上下文菜单的原有菜单命令。具体的,所述插件引擎通过所述目标上下文菜单的身份标识在缓存的上下文菜单扩展信息中查找是否有该目标上下文菜单对应的上下文菜单扩展信息,如果有,则认为该目标上下文菜单存在功能扩展,否则,则认为不存在功能扩展。

步骤140,根据对应的上下文菜单扩展信息生成相应的扩展菜单命令并添加到该目标上下文菜单的原有菜单命令中。具体的,可以基于上下文菜单扩展信息的所述扩展类型和扩展文本生成相应的扩展菜单命令。

步骤150,显示添加有扩展菜单命令的目标上下文菜单。如图2所示,其为一个未添加有扩展菜单命令的目标上下文菜单的示例,如图3所示,其为已经添加有扩展菜单命令的目标上下文菜单的示例。

步骤160,在该目标上下文菜单的扩展菜单命令被激发时,执行该扩展菜单命令关联的插件程序。这样,在扩展菜单命令不被激发时,不需要执行关联的插件程序,在扩展菜单命令被激发时,才执行关联的插件程序,节省了计算量。使用插件配置方式对文档程序中的上下文菜单进行功能扩展,不需要额外编写添加扩展功能的命令的程序,更方便地将第三方功能整合到文档程序中。

下面为实现上下文菜单扩展的一个插件程序的插件配置文件(实现语言为java,xml格式)的有关上下文菜单扩展信息的片段:

在上述插件配置文件中,<contextmenuid=”normaltext”>表示该插件扩展了id为normaltext的下上文菜单,这里normaltext表示选择正文中的文本时弹出的下下文菜单。

<menutext=”扩展菜单1”>表示:

定义的是一个可以包含多个子菜单项的菜单(即扩展类型),其中指定了该菜单的文本;

<itemtext=”扩展功能1”action=”com.company.action.funcaaction”/>表示定义的是:

可以执行相关命令的菜单项,其中指定了该菜单项的文本(扩展文本)及其关联的程序(java语言实现时为实现action接口的类的名称)。

<seperator/>表示定义了一个菜单分隔线。

在不包含插件时,选择正文中文本时弹出的上下文菜单如图2所示,当文档程序应用了上述包含上下文菜单扩展的插件时,选择正文中文本时弹出的上下文键菜单如图3所示,即在原来上下文菜单的后面添加了定义的扩展菜单、扩展菜单项(扩展菜单命令)、扩展菜单分隔线等,在选择菜单时可以显示包含的子菜单项。

根据本发明的另一个方面,本发明提供一种计算机可读介质,其内存储有程序指令,该程序指令由处理器执行以实现上述的文档程序中实现上下文菜单扩展的方法100。

根据本发明的另一个方面,本发明提供一种计算装置,其包括处理器和存储器,所述存储器中存储有程序指令,该程序指令由处理器执行以实现上述的文档程序中实现上下文菜单扩展的方法100。

在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,除了包含所列的那些要素,而且还可包含没有明确列出的其他要素。

在本文中,所涉及的前、后、上、下等方位词是以附图中零部件位于图中以及零部件相互之间的位置来定义的,只是为了表达技术方案的清楚及方便。应当理解,所述方位词的使用不应限制本申请请求保护的范围。

在不冲突的情况下,本文中上述实施例及实施例中的特征可以相互结合。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1