Eclipse 插件开发 6 右键菜单

Eclipse 插件开发 6 右键菜单

  • 1 plugin.xml
  • 2 SampleHandler.java
  • 3 Activator.java

1 plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin><!-- 定义命令 --><extension point="org.eclipse.ui.commands"><command id="HelloWorldPlugin.commands.helloCommand" name="测试"></command></extension><!-- 定义右键菜单 --><extension point="org.eclipse.ui.menus"><menuContribution locationURI="popup:org.eclipse.ui.popup.any"><command commandId="HelloWorldPlugin.commands.helloCommand" label="测试" style="push"></command></menuContribution></extension><!-- 定义命令处理器 --><extension point="org.eclipse.ui.handlers"><handler class="com.xu.work04.handlers.SampleHandler" commandId="HelloWorldPlugin.commands.helloCommand"></handler></extension></plugin>

2 SampleHandler.java

package com.xu.work04.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;public class SampleHandler extends AbstractHandler {@Overridepublic Object execute(ExecutionEvent event) throws ExecutionException {IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);MessageDialog.openInformation( window.getShell(), "Work04", "右击菜单弹出框!");return null;}}

3 Activator.java

package com.xu.work04;import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;/*** The activator class controls the plug-in life cycle*/
public class Activator extends AbstractUIPlugin {// The plug-in IDpublic static final String PLUGIN_ID = "com.xu.work04"; //$NON-NLS-1$// The shared instanceprivate static Activator plugin;/*** The constructor*/public Activator() {}@Overridepublic void start(BundleContext context) throws Exception {super.start(context);plugin = this;}@Overridepublic void stop(BundleContext context) throws Exception {plugin = null;super.stop(context);}/*** Returns the shared instance** @return the shared instance*/public static Activator getDefault() {return plugin;}}

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/79712.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用vite脚手架建立 前端工程

​ 参考 开始 | Vite 官方中文文档 脚本 chcp 65001 echo 建立vite工程 set PRO_NAMEmy-vue-app call npm create vitelatest %PRO_NAME% --template vue cd ./%PRO_NAME%set NOW_PATH%cd% echo now_path %NOW_PATH% echo 点击回车启动vite工程&#xff0c;请访问ht…

ESP32C3连接wifi

文章目录 &#x1f527; 一、ESP32-C3 连接 Wi-Fi 的基本原理&#xff08;STA 模式&#xff09;✅ 二、完整代码 注释讲解&#xff08;适配 ESP32-C3&#xff09;&#x1f4cc; 三、几个关键点解释&#x1f51a; 四、小结 &#x1f527; 一、ESP32-C3 连接 Wi-Fi 的基本原理&a…

LangSmith 基本使用教程

LangSmith 是一个强大的工具&#xff0c;可以帮助开发者追踪、监控和分析语言模型应用程序的性能。下面我将介绍两种基本的追踪方式&#xff1a;追踪 OpenAI 调用和追踪整个应用程序。 1. 追踪 OpenAI 调用 (Trace OpenAI calls) 这种方法主要用于追踪对 OpenAI API 的调用&a…

Python基础学习-Day23

目录 基础概念转换器&#xff08;transformer&#xff09;估计器&#xff08;estimator&#xff09;管道&#xff08;pipeline&#xff09; 实例pipeline 基础概念 pipeline在机器学习领域可以翻译为“管道”&#xff0c;也可以翻译为“流水线”&#xff0c;是机器学习中一个重…

相对论速度叠加公式与双曲正切

复习下相对论速度叠加公式吧&#xff0c;物理&#xff0c;是不是很多人都忘了呀。假设速度为 u , v u,v u,v&#xff0c;那么叠加后的速度 w w w为&#xff1a; w u v 1 u v / c 2 w\frac{uv}{1uv/c^2} w1uv/c2uv​   这个公式告诉我们&#xff0c;在一个速度为2/3光速的…

【前缀和】和为 K 的子数组(medium)

【前缀和】和为 K 的子数组 题目描述算法原理和细节问题代码 题目描述 和为 K 的子数组 给定一个整数数组和一个整数 k &#xff0c;请找到该数组中和为 k 的连续子数组的个数。 示例 1&#xff1a; 输入:nums [1,1,1], k 2 输出: 2 解释: 此题 [1,1] 与 [1,1] 为两种不同的…

在Ubuntu服务器上部署Label Studio

一、拉取镜像 docker pull heartexlabs/label-studio:latest 二、启动容器 &#xff08;回到用户目录&#xff0c;例&#xff1a;输入pwd&#xff0c;显示 /home/<user>&#xff09; docker run -d --name label-studio -it -p 8081:8080 -v $(pwd)/mydata:/label-st…

MySQL 从入门到精通(三):日志管理详解 —— 从排错到恢复的核心利器

在 MySQL 数据库的日常运维中&#xff0c;日志是定位问题、优化性能、数据恢复的核心工具。无论是排查服务器启动异常&#xff0c;还是分析慢查询瓶颈&#xff0c;亦或是通过二进制日志恢复误删数据&#xff0c;日志都扮演着 “数据库黑匣子” 的角色。本文将深入解析 MySQL 的…

内存中的“BANK”

一、BANK的定义与物理结构 基本概念 BANK&#xff08;存储体&#xff09; 是内存芯片内部的一个逻辑或物理分区&#xff0c;每个BANK由存储单元阵列、地址解码电路和缓冲器组成&#xff0c;用于分块管理内存操作。 作用&#xff1a;通过并行操作减少访问冲突&#xff0c;提升内…

机器学习——聚类算法练习题

一、 随机创建不同二维数据集作为训练集 &#xff0c;并结合k-means算法将其聚类 &#xff0c;你可以尝试分别聚类不同数量的簇 &#xff0c;并观察聚类 效果&#xff1a; 聚类参数n_cluster传值不同 &#xff0c;得到的聚类结果不同 代码展示&#xff1a; from sklearn.da…

kafka----初步安装与配置

目录标题 ⭐kafka 与 zookeeper间的关系一.集群部署二.修改配置文件三.分发安装包四.启动与关闭 kafka 与 zookeeper 相同&#xff0c;是以集群的形式使用 ⭐kafka 与 zookeeper间的关系 kafka 的使用 要在 zookeeper 集群配置好的基础上 使用要想启动kafka 要先启动 zookeep…

进程与线程:07 CPU调度策略

一、课程内容概述 本节课程主要讲解操作系统的CPU调度策略&#xff0c;聚焦于基本操作系统上的调度算法&#xff0c;探讨其大致实现方式、需折中考虑的问题。CPU调度在不同场景下复杂程度不同&#xff0c;如卫星、导弹等实时性要求高的系统&#xff0c;需采用实时调度&#xf…

JPG与PDF格式转换器

该插件可实现JPG与PDF格式的互转。 MainForm.Designer.cs using System.Windows.Forms; namespace JpgToPdfConverter {partial class MainForm{private System.ComponentModel.IContainer components null;protected override void Dispose(bool disposing){if (disposing &…

LlamaIndex 第八篇 MilvusVectorStore

本指南演示了如何使用 LlamaIndex 和 Milvus 构建一个检索增强生成&#xff08;RAG&#xff09;系统。 RAG 系统将检索系统与生成模型相结合&#xff0c;根据给定的提示生成新的文本。该系统首先使用 Milvus 等向量相似性搜索引擎从语料库中检索相关文档&#xff0c;然后使用生…

浅聊一下数据库的索引优化

背景 这里的索引说的是关系数据库&#xff08;MSSQL&#xff09;中的索引。 本篇不是纯技术性的内容&#xff0c;只是聊一次性能调优的经历&#xff0c;包含到一些粗浅的实现和验证手段&#xff0c;所以&#xff0c;大神忽略即可。 额…对了&#xff0c;笔者对数据库的优化手段…

【android bluetooth 框架分析 02】【Module详解 7】【VendorSpecificEventManager 模块介绍】

1. 背景 我们在 gd_shim_module 介绍章节中&#xff0c;看到 我们将 VendorSpecificEventManager 模块加入到了 modules 中。 // system/main/shim/stack.cc modules.add<hci::VendorSpecificEventManager>();在 ModuleRegistry::Start 函数中我们对 加入的所有 module…

小刚说C语言刷题—1080质因子

1.题目描述 任意输入一正整数 N &#xff0c;求出它的所有质因子。如&#xff1a;10&#xff1d;25&#xff0c;20&#xff1d;225。 输入 输入只有一行&#xff0c;包括 11个整数 n (1≤n≤32768) 输出 输出若干行&#xff0c;按从小到大的顺序给出这个数的所有质因子&am…

C语言中的宏

1.防止头文件重复包含 1.#pragma once #pragma once 是一个编译器指令&#xff0c;用于防止头文件被重复包含。它的核心作用是通过简单语法替代传统的头文件保护宏&#xff08;#ifndef/#define/#endif&#xff09;&#xff0c;提升代码简洁性和可维护性。 作用详解 防止重复…

MapReduce 模型

‌引言‌ MapReduce 是分布式计算领域的里程碑式模型&#xff0c;由 Google 在 2004 年论文中首次提出&#xff0c;旨在简化海量数据处理的复杂性。其核心思想是通过函数式编程的 ‌Map‌ &#xff08;映射&#xff09;和 ‌Reduce‌ &#xff08;归约&#xff09;阶段&#x…

Linux文件编程——标准库函数fopen、fread、fwrite等函数

1. fopen — 打开文件 函数原型&#xff1a; FILE *fopen(const char *filename, const char *mode);参数&#xff1a; filename&#xff1a;要打开的文件名&#xff0c;可以是相对路径或绝对路径。 mode&#xff1a;文件打开模式&#xff0c;表示文件的操作方式&#xff08…