Hello World

要为 Eclipse 创建 Hello World 插件,请单击: 文件新建其他…

StackOverflow 文档

选择 Plug-in Project 并单击 Next>

StackOverflow 文档

新插件项目向导将引导你通过选项来创建一个新的插件。

输入项目名称(如 HelloWorld),然后单击 Next>

StackOverflow 文档

在“ 内容” 页面上,你可以设置插件的 ID版本名称供应商

默认情况下,版本将为 1.0.0.qualifier 。你可以保持原样,但最好将其更改为有意义的内容。在日食维基建议像语法 vYYYYMMDD (年月日)。

StackOverflow 文档

在“ 模板” 页面上,你可以选择从任何模板创建插件,方法是选择它并单击“ 下一步>” 。或者,你可以通过选择自定义插件向导来组合这些模板,或者通过取消选择使用其中一个模板创建插件前面的复选框来创建没有模板的新插件。

StackOverflow 文档

对于 Hello,World Command 模板,还有其他设置:包名称,Handler 类名称和消息框的文本。

StackOverflow 文档

在创建插件,你可以通过运行右键单击 plugin.xml 中运行方式Eclipse 的应用

这将启动一个新的 Eclipse 实例(具有自己的工作空间),它将加载你的插件。

StackOverflow 文档

这个 Hello World 插件将为 Eclipse GUI 做出 3 个贡献:

1.示例菜单(带示例命令):

StackOverflow 文档

plugin.xml 中:

<extension
      point="org.eclipse.ui.menus">
   <menuContribution
         locationURI="menu:org.eclipse.ui.main.menu?after=additions">
      <menu
            label="Sample Menu"
            mnemonic="M"
            id="HelloWorld.menus.sampleMenu">
         <command
               commandId="HelloWorld.commands.sampleCommand"
               mnemonic="S"
               id="HelloWorld.menus.sampleCommand">
         </command>
      </menu>
   </menuContribution>
</extension>

2.工具栏图标:

StackOverflow 文档

plugin.xml 中:

<extension
      point="org.eclipse.ui.menus">
   <menuContribution
         locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
      <toolbar
            id="HelloWorld.toolbars.sampleToolbar">
         <command
               commandId="HelloWorld.commands.sampleCommand"
               icon="icons/sample.gif"
               tooltip="Say hello world"
               id="HelloWorld.toolbars.sampleCommand">
         </command>
      </toolbar>
   </menuContribution>
</extension>

3.一键快捷键(Ctrl + 6)

plugin.xml 中:

<extension
      point="org.eclipse.ui.bindings">
   <key
         commandId="HelloWorld.commands.sampleCommand"
         contextId="org.eclipse.ui.contexts.window"
         sequence="M1+6"
         schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
   </key>
</extension>

激活其中任何一个时,将执行 Handler 类:

plugin.xml 中:

<extension
      point="org.eclipse.ui.commands">
   <category
         name="Sample Category"
         id="HelloWorld.commands.category">
   </category>
   <command
         name="Sample Command"
         categoryId="HelloWorld.commands.category"
         id="HelloWorld.commands.sampleCommand">
   </command>
</extension>
<extension
      point="org.eclipse.ui.handlers">
   <handler
         commandId="HelloWorld.commands.sampleCommand"
         class="helloworld.handlers.SampleHandler">
   </handler>
</extension>

SampleHandler.java:

package helloworld.handlers;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.handlers.HandlerUtil;
import org.eclipse.jface.dialogs.MessageDialog;

/**
 * Our sample handler extends AbstractHandler, an IHandler base class.
 * @see org.eclipse.core.commands.IHandler
 * @see org.eclipse.core.commands.AbstractHandler
 */
public class SampleHandler extends AbstractHandler {

    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {
        IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
        MessageDialog.openInformation(
                window.getShell(),
                "HelloWorld",
                "Hello, Eclipse world");
        return null;
    }
}

执行 Handler 类时,MessageBox 将显示:

StackOverflow 文档

这就是 Hello World 的所有插件。

如果要创建具有更多功能的插件,可以选择最适合你需要的模板,或者通过 Custom 插件向导创建插件以组合这些模板:

StackOverflow 文档