首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Eclipse 插件開發實戰(二):菜單、命令與處理器的完整綁定流程

     編輯:Java 綜合教學

Eclipse 插件開發實戰(二):菜單、命令與處理器的完整綁定流程

接上篇《Eclipse 插件開發實戰(一):創建首個插件專案》,本文詳細講解如何在插件中添加菜單欄菜單、工具欄按鈕、右鍵彈出菜單,並通過 Commands 框架 實現聲明式處理器綁定。

核心三大擴展點

擴展點 ID職責關鍵屬性
org.eclipse.ui.menus定義菜單結構與位置menuContribution、menu、command
org.eclipse.ui.commands聲明語義命令(做什麼)command、id、name
org.eclipse.ui.handlers提供命令具體實現(怎麼做)handler、commandId、class

關係鏈:Menu →(引用)Command →(綁定)Handler。一個 Command 可被多個 Menu 引用,一個 Command 僅綁定一個 Handler(可通過 activeWhen 切換)。

步驟 1:創建處理器實現類

package com.example.menu.handler;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.dialogs.MessageDialog;

public class SampleHandler extends AbstractHandler {
    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {
        MessageDialog.openInformation(
            null, "測試插件", "測試右鍵彈出菜單成功!");
        return null;
    }
}

步驟 2:配置 plugin.xml(通過 PDE 可視化編輯器)

  1. 打開 plugin.xml → Extensions 頁籤 → Add... → 搜索並添加三個擴展點。
  2. Commands:New Command → id=com.example.cmd.popup, name=彈出測試。
  3. Handlers:New Handler → commandId=com.example.cmd.popup, class=com.example.menu.handler.SampleHandler。
  4. Menus:New MenuContribution → locationURI=popup:common.new.menu?after=additions(右鍵菜單) → New Menu → id=com.example.menu.popup, label=測試菜單 → New Command → commandId=com.example.cmd.popup。

常用 locationURI:

  • 菜單欄:menu:org.eclipse.ui.main.menu
  • 工具欄:toolbar:org.eclipse.ui.main.toolbar
  • 右鍵彈出:popup:common.new.menu 或特定視圖 ID(如 popup:org.eclipse.ui.navigator.ProjectExplorer)。

步驟 3:運行驗證

  1. 插件專案右鍵 → Run As → Eclipse Application。
  2. 新 Eclipse 實例中,任意視圖/編輯器右鍵,出現「測試菜單」。
  3. 點擊彈出 MessageDialog,證明 Handler 執行成功。

進階技巧

  • 動態啟用/禁用:在 Handler 上添加 enabledWhen / activeWhen,結合 with、iterate、adapt 表達式,根據選中資源類型控制菜單可見性。
  • 圖標設置:Command 節點添加 icon 屬性指向插件內圖標路徑(icons/sample.png)。
  • 快捷鍵綁定:擴展 org.eclipse.ui.bindings,為 Command 分配默認快捷鍵(如 Ctrl+Shift+T)。

常見坑點

  • Handler 類必須有無參公共構造器,且不可為內部類(除非 static)。
  • locationURI 拼寫錯誤導致菜單不顯示,建議用 Plugin Spy (Alt+Shift+F1) 定位目標容器 ID。
  • 多 Handler 綁定同一 Command 時需通過 activeWhen 互斥,否則啟動報錯。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved