Eclipse 插件开发

1.Eclipse的架构

Eclipse是java的IDE(集成开发环境)。

本质上,Eclipse只是一个平台(Runtime(OSGi)),在这个平台上可以集成插件(Plugin),插件提供开发功能。而插件可以再集成插件。如:

Runtime(OSGi)->SWT->JFace->UI

Runtime(OSGi)->Resources

每一个插件可以扩展(Extension)上一层插件,同时可以暴露自己的扩展点(Extension Point),供下层插件扩展自己。

 

2.如何扩展已有的扩展点

1>编写plugin.xml

<plugin>
<extension point="extension point id">
</extension>
</plugin>

只需将你要扩展的扩展点id写上,就可以按照该扩展点要求的格式(Schema),来扩展它的功能了。

如,想添加一个功能键,就需要扩展Eclipse暴露出来的扩展点org.eclipse.ui.actionSets,按照它规定的格式(Schema)来编写plugin.xml:

<plugin>
<extension point="org.eclipse.ui.actionSets"> //声明扩展点
<actionSet label="Sample Action Set" visible="true" id="HelloPlugIn.actionSet"> //声明功能键组
<menu label="Sample &amp;Menu" id="sampleMenu"> //声明功能键组的菜单
<separator name="sampleGroup"/>
</menu>
<action label="&amp;Sample Action"icon="icons/sample.gif"tooltip="Hello, Eclipse world" //声明该功能键

toolbarPath="sampleGroup"menubarPath="sampleMenu/sampleGroup"

id="helloplugin.actions.SampleAction"class="helloplugin.actions.SampleAction" //声明按下该功能键的响应类,需要编写

/>
</actionSet>
</extension>
</plugin>

接下来我们只需要编写响应类即可。

 

2>编写扩展点需要的类。

编写扩展点需要的类,如上面,我们想为Eclipse添加一个功能键,当然需要编写一个当按下功能键后,用于响应的类。

该类通常需要实现扩展点提供的接口,或继承扩展点提供的父类,我们只需要实现(implement)接口的方法即可。

如功能键的响应类,我们只需要实现IWorkbenchWindowActionDelegate接口,实现run()方法即可。

public void run(IAction action) {
MessageDialog.openInformation(window.getShell(),"Hello Plug In","Hello Plug In");
}

当按下该功能键后,会弹出框,上写"Hello Plug In"。

 

3. 扩展点介绍。

既然我们已经知道,编写插件,就是扩展已知扩展点,那如果想写一定功能的插件(Plug In),就需要了解,都有那些扩展点(Extension Point)供我们扩展(Extension)。

Eclipse已经给我们暴露出了足够多的扩展点(Extension Point),以便我们写出功能。大概分为两类:

一是UI,用于扩展Eclipse的用户界面的操作

一是Resource,用于扩展Eclipse的文件资源的操作。

 

1>UI扩展点

 

IWorkbench workbench = PlatformUI.getWorkbench();
IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
IWorkbenchPage page = window.getActivePage();
IEditorPart part = page.getActiveEditor();

 

 

2> Resource扩展点

 

IWorkspaceRoot wsroot = ResourcesPlugin.getWorkspace().getRoot();
IProject[] projects = wsroot.getProjects();

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值