plugin.xml改名,plugin.xml文件作用
org.eclipse.ui.perspectives
平台本身定义了一个视角,即资源视角。其他平台插件,如帮助系统和爪哇工具,定义了附加的透视图。您的插件可以通过贡献给org.eclipse.ui.perspectives扩展点来定义自己的透视图。
plugin.xml中的透视图规范非常简单。工作台使用下面的标记来定义自己的资源透视图。
延长
point= org。月食。ui。“视角”
远景
name= % perspective。资源视角
icon= icons/full/cview 16/resource _ persp。巴布亚新几内亚
id= org。月食。ui。资源视角
/视角
/扩展
插件必须为透视图提供一个编号和名称,以及实现透视图的类名。也可以指定图标视角。类应实现IPerspectiveFactory .
你好世界清单
在运行新视图之前,让我们看一下为我们生成的清单文件。首先,双击plugin.xml文件打开插件编辑器并选择plugin.xml选项卡。
?可扩展标记语言版本=1.0 编码=UTF八号?
?黯然失色版本=3.0 ?
插件
扩展点=org.eclipse.ui.views
种类
name=你好类别
id=com.example.helloworld
/类别
视角
name=Hello View
icon=icons/sample.gif
类别= com。举例。“你好,世界”
id= com。举例。你好世界。“你好,世界观点”
/查看
/扩展
/插件
我们在创建插件项目时提供的关于视图的信息被用来在plugin.xml文件中生成一个条目,该条目定义了我们的视图扩展。在扩展定义中,我们为视图定义了一个类别,包括它的名称和身份证.然后,我们定义视图本身,包括它的名称和id,并使用我们为类别定义的编号将它与类别相关联。我们还指定了实现我们的视图HelloWorldView的类。
如您所见,插件清单文件将关于我们的扩展以及如何运行它的所有信息打包成一个漂亮、简洁的包。
偏微分方程(Partial Differential Equation的缩写)生成的另一个清单文件是开放服务网关协议清单显化。MF .这个文件创建在插件项目的元信息目录中,但是通过单击清单可以很容易地查看它。插件编辑器的中频选项卡106 . OSGi清单使用开放服务网关协议包术语描述了插件打包的底层信息。它包含诸如插件(包)的名称和它所需要的包的信息。
org.eclipse.ui.viewActions
插件将行为贡献给已经存在于工作台中的视图是很常见的。这是通过org.eclipse.ui.viewActions扩展点完成的。这个扩展点允许插件向现有视图的本地下拉菜单和本地工具栏提供菜单项、子菜单和工具栏条目。
您可能已经注意到,只要选择了一个自述文件,导航器的本地工具栏中就会有一个项目被启用。此项目也会出现在导航器的本地下拉菜单中。出现这些操作是因为自述文件工具插件使用视图操作扩展提供了这些操作。
相关的plugin.xml贡献如下。
延长
point= org。月食。ui。查看操作
视图贡献
id= org。月食。ui。例子。自述工具。vc1
targetID= org。月食。ui。观点。资源导航器
操作id= org。月食。ui。例子。自述工具。va1
label=%PopupMenu .ResourceNav.label
menubarPath=additions
toolbarPath=additions
icon=icons/obj16/editor.png
工具提示=%PopupMenu .资源导航工具提示
helpContextId= org。月食。ui。例子。自述工具。查看_操作_上下文
enablesFor=1
选择名称=*。自述文件/
/操作
/查看贡献
/扩展
指定了具有唯一编号的视图贡献。我们要添加操作的视图是在targetID中指定的。我们正在为资源导航器的菜单做贡献。我们为新操作指定标签、菜单栏和工具栏的位置。(有关菜单和工具栏位置的完整讨论,请参见菜单和工具栏路径)。
我们还指定了应该启用该操作的条件。您可以看到,当有一个IFile()类型的选择(enables for=“1”)时,该操作将被启用,其名称为。文件扩展名中的“自述文件”(name= * .自述文件)。果然,这正是当您在资源导航器中单击时所发生的情况。
plugin.xml中的信息是将项目添加到菜单和工具栏所需的全部信息,因为插件代码只有在从菜单或工具栏中实际选择操作时才会运行。为了提供动作行为,plugin.xml中指定的实现类必须实现IViewActionDelegate接口。
在本例中,自述文件插件提供了视图操作代表来实现操作。如果你浏览这个类,你会发现它包含了记忆视图、处理选择变化和调用动作的方法。当被调用时,动作本身只是启动一个对话框,宣布它已被执行。
公共无效运行(组织。月食。jface。行动。I action action){
消息对话框。打开信息(查看。获取站点().getShell(),
消息实用程序。getstring( Readme _ Editor ),
消息实用程序。getstring( View _ Action _ executed );
}
虽然这个动作很简单,但是我们可以想象使用选择和更多的功能对话框会使这个动作变得更有趣。
贡献资源筛选器
资源筛选器扩展允许插件定义过滤器,这些过滤器对于在资源导航器视图中过滤文件类型非常有用。当使用特殊的文件类型来表示内部插件信息,但是您不希望这些文件显示在工作台中或者被用户操作时,这个扩展非常有用。
工作台过滤掉模式。* "排除内部文件,如。资源导航器中的元数据。同样,JDT插件过滤掉 *。“类”文件来隐藏已编译的类。
资源过滤器扩展的标记很简单。以下来自工作台插件. xml .
延长
point= org。月食。ui。ide。资源筛选器
过滤器
selected=false
模式=。*
/过滤器
/扩展
用户可以使用资源导航器的本地下拉菜单来启用过滤器。
除了声明过滤器模式之外,插件还可以使用挑选属性来指定是否应该在资源导航器中启用过滤器。该属性仅决定过滤器模式的初始状态。用户可以控制哪些滤波器模式是活动的。
添加首选项页面
如果不需要进一步定制,产品属性和默认首选项值的组合可以完全配置通用欢迎。对于希望允许用户自定义欢迎的产品,可以使用首选项页面。应将以下代码添加到产品的plugin.xml中:
延长
point= org。月食。ui。首选页面
页,面,张,版
类别=组织。月食。ui。首选项页面。工作台
id= com。举例。介绍。介绍定制
name= % introcustomizationpreference。名称
关键字引用id= org。月食。ui。ide。外观/
/页面
/扩展
这段代码将添加欢迎定制首选项页面。该页面允许用户选择演示主题。最初的选择是由plugin_customization.ini文件中的主题首选项提供的。此外,用户可以从可用根页面列表中进行选择。选中根页面会导致相关选项卡出现在对话框的顶部。
当% 20保存% 2C %此% 20首选项% 20页面% 20将% 20前缀% 20变量% 20与% 20产品% 20id % 20so %该% 20 it % 20不干涉% 20设置% 20制作% 20用于% 20其他% 20产品% 20中的% 20相同% 20工作台。% 20或者% 2C % 20选择% 20上面的% 20复选框% 20将% 20不% 20前缀% 20变量% 2C % 20使% 20存储% 20设置% 20可见% 20到% 20所有% 20产品。%20 %正在完成% 20% 20插件% 20狂欢节% 0AWe %已开始% 20此% 20示例% 20由% 20创建% 20我们的% 20插件% 20和% 20文档% 20文件。% 20下一个% 20我们% 20创建了% 20个文件% 20到% 20描述% 20组织% 20的% 20我们% 20内容。% 20剩余% 20件% 20件% 20件% 20件% 20工作% 20是% 20将% 20所有内容% 20整合% 20到% 20a %主控% 20文档% 20和% 20更新% 20我们的% 20plugin.xml % 20to到实际上% 20贡献% 20主控% 20文档%20 % 0AWe % 20start % 20by %创建% 20a % 20目录。 XML % 20到% 20贡献% 20三% 20 TOC % 20 we % 20最初创建% 20。提供% 20 an % 20 href % 20 for % 20 each % 20主题% 2C % 20 we % 20使用% 20链接% 20属性% 20 to % 20 refer % 20 our % 20现有的% 20目录% 20文件% 20% 0A % 20 TOC % 20标签% 3D % 27在线% 20帮助% 20示例% 27% 20主题% 3D % 27 html % 2f图书。html % 27% 20% 0A % 20主题% 20标签% 3D % 27概念% 27% 20% 0A % 20链接% 20目录% 3D % 27目录_概念。XML % 27% 20% 20% 2F % 20% 0A % 20% 2f主题% 20% 0A % 20主题%% 20设置% 20此% 20属性% 20为% 20 true % 20表示% 20% 20to c %应该% 20始终%出现在% 20中% 20导航% 2C % 20 even % 20 if % 20 it % 20 is % 20 not % 20 referenced % 20 by % 20 any % 20 other % 20 TOC .%20此% 20方式% 2C % 20我们的% 20% 27主% 27% 20主题% 20总是% 20担保% 20到% 20显示% 20上% 20在% 20主题% 20列表中20It %出现在% 20 at % 20% 20 top % 20 level % 20 list % 20 of % 20 books % 20 from % 20 no % 20 other % 20 TOC % 20 references % 20 it .% 3A注意% 3A % 20If如果% 20更多% 20文件% 20与% 20关联% 20此% 20主题% 20但% 20不存在% 20导航% 2C % 20但% 20仅% 20链接% 20来自% 20其他% 20主题% 2C % 20当% 20到% 20有% 20这些% 20主题% 20可用% 20到% 20% 0a最终% 2C % 20we我们% 20贡献% 20我们% 20个人% 20总% 20文件20% 0A % 20扩展% 20点% 3D % 27组织。月食。救命啊。目录% 27% 20% 0A % 20目录% 20文件% 3D % 27目录_概念。XML % 27% 20% 2F % 20% 0A % 20目录% 20文件% 3D % 27目录任务。XML % 27% 20% 20% 2F % 20% 0A % 20目录% 20文件% 3D % 27目录_引用。XML % 27% 20% 2F % 20% 0A% 20文档% 20web % 20if如果% 20他们被% 20引用% 20到% 20从% 20一些% 20文档% 20将% 20指定为% 20主要% 20将% 20仅% 20出现% 20在% 20文档% 20web % 20if如果% 20他们被% 20引用% 20到% 20从% 20一些% 20文档% 20主要% 20或% 20被% 20链接% 20% 0at % 27s % 20it .% 20如果% 20你% 20复制% 20你% 20插件% 20目录% 20到% 20平台% 27s %插件% 20目录% 2C % 20开始% 20平台% 2C % 20和% 20选择% 20帮助-% 20帮助% 20内容% 2C % 20you %应该% 20查看% 20您的% 20示例% 20出现% 20中的% 20%20如果% 20您% 20在% 20上单击% 20% 20% 20联机% 20帮助% 20示例% 27% 2C % 20您% 27 ll % 20查看% 20您的% 20% 20结构% 3A %命令% 0AA %命令% 20是% 20the声明% 20a %中的% 20%用户% 20操作%20by%20id .% 20命令% 20被% 20使用% 20到% 20声明% 20语义% 20操作% 20so % 20that %操作% 20实现% 20定义% 20中的% 20操作% 20集合% 20和% 20编辑器% 20可以% 20将% 20自身% 20与% 20a %特定% 20语义% 20命令相关联。% 20分离第% 20页,共% 20页命令来自% 20的% 20操作% 20实现% 20允许% 20多个% 20插件% 20定义% 20操作% 20实现% 20相同% 20语义% 20命令。% 20命令% 20是% 20什么% 20获取% 20关联% 20与% 20a %特定% 20密钥% 20绑定100% 0a工作台% 20定义% 20任何% 20常见% 20命令% 20在其% 20插件% 20中。XML % 20文件% 2C % 20和% 20插件% 20被% 20鼓励% 20将% 20自己% 20操作% 20与% 20这些% 20命令% 20where % 20it %使% 20有意义% 20 in % 20 this % 20 way % 2C % 20语义% 20相似% 20操作% 20实现% 20中的% 20不同% 20插件% 20路% 2C共享% 20相同% 20密钥% 20绑定100% 20a定义% 20a命令% 20a命令% 20使用% 20a %命令% 20a命令% 20是扩展% 20点% 20定义% 20。%20以下%20来自%20工作台%20标记% 20 % 0A % 20扩展% 0A % 20点% 3D % 27组织。月食。ui。命令% 27% 20% 0A % 20命令% 0A % 20名称% 3D % 27% 25命令。保存。名称% 27% 0A % 20描述% 3D % 27% 25命令。保存。描述% 27% 0A % 20类别id % 3D % 27
/类别
请注意,没有为命令指定实现。只有当插件将其动作与命令编号相关联时,命令才变得具体。
将动作与命令相关联
动作可以与代码或动作集的plugin.xml中的命令相关联。您的选择取决于操作的定义位置。
代码中实例化的动作也可以使用接口协议与动作定义相关联。这通常在创建动作时完成SaveAction。在初始化自身时使用这种技术。
公共保存操作(IWorkbenchWindow窗口){
设置文本.
setToolTipText.
setImageDescriptor.
setActionDefinitionId( org。月食。ui。文件。保存’);
(注意:方法名setActionDefinitionID可以更恰当地命名为setCommandID .方法名反映了键绑定的原始实现,并使用了过时的术语。)
通过调用setActionDefinitionID,实现操作(保存操作)与命令定义标记中使用的命令身份相关联。为您的动作定义定义常数是一个很好的实践,这样它们在代码中很容易被引用。
如果在动作集中定义一个动作,那么通常不需要自己实例化一个动作。当用户从菜单或键盘调用您的操作时,工作台会为您完成这项工作。在这种情况下,您可以将操作与可扩展置标语言标记中的命令身份相关联。下面显示了一个动作集的假设标记:
扩展点=org.eclipse.ui.actionSets
actionSet id= com。举例。行动。动作集
标签=示例操作
visible=true
操作id= com。举例。行动。行动1
menubarPath=additions
标签=保存操作示例
定义id= org。月食。ui。文件。保存
/操作
/actionSet
/扩展
定义ID属性用于声明操作的命令身份证.
无论使用哪种技术,将您的操作与命令身份相关联都会导致为命令org.eclipse.ui.file.save定义的任何键绑定在适当的时候调用您的操作。
现在让我们看看这些键绑定是如何定义的。