Eclipse 插件开发 向导

回到顶部

  最近由于特殊需要,开始学习插件开发。

以前接触java也算有些时日,但是一直不知道有插件开发这样一种技术路径,本想着这开发工具都给你备好了,直接用不就行了。但是总有些IT工厂,为了要节约成本,开发自己的开发工具,但是又要节省时间,总不能一切都自己来。毕竟开发一个eclipse也要很长时间的。因此,插件开发出现在历史舞台。

  首先要了解插件开发,就得从SWT/JFACE说起了。SWT是一种开源的界面开发框架,以前学java的时候,总是用一些panel,就类似这个。JFace又是一种基于SWT的UI不见的API。Eclipse就是用这个开发出来的,它提供了Eclipse强大的扩展性,因此可以让用户任意的插入自己想要的插件,开发自己的IDE。

回到顶部

  下面就直接弄一个简单的插件吧!

  

首先认识一下Eclipse,这个大家应该很熟了!

  1 红色部分是我们的工具栏

  2 蓝色部分是视图

  3 黄色部分是编辑器

  通常我们使用编辑器,进行代码操作,或者业务操作。在视图,进行一些资源的查看等。红色引入一些常用的功能,辅助我们的操作。

我们先做一个简单的工具栏的控件,了解一下eclipse的插件开发流程!

回到顶部

  1 新建一个插件工程

回到顶部

  2 创建自己的插件名字,这个名字最好特殊一点,一遍融合到eclipse的时候,不会发生冲突。

  首先,写入自己的插件名字。

  source folder 是插件的代码路径。

  output folder是插件输出的目标路径。

  下面是开发插件的eclipse的版本。

回到顶部

  3 下一步,进行插件的具体详情设置

ID 是插件的标识

version 是插件的版本

Name是插件的名字

Provider是开发者的信息

 

下面的Activator,是插件的激活类,用来管理插件的生命周期。

 

最后是选择是否开发RCP,富客户端应用,暂且不用,选否就行了。

回到顶部

  4 使用插件模板,创建一个插件工具

选择hello world.这是一个工具栏的按钮。

回到顶部

 5 下一步,进行按钮的信息设置。

  默认会生成类的名字,路径(包名),以及工具栏按钮出发的消息提示。

回到顶部

  6 点击finish,完成插件的创建。


 

  这样,我们就完成了一个插件的创建,那么看一下,eclipse都为我们生成了什么。

1 导入了插件所需要用到的jar包

2 导入了插件依赖的库

3 源文件

4 插件按钮图片

5 插件的配置信息

回到顶部

  MANIFEST.MF 插件的捆绑信息

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

  

  Name 是我们之前设置的插件名字

  SymblicName 是我们插件的包名

  version 是插件的版本

  Activator 是插件的激活类

  Vendor 是插件开发者的信息

  Bundle 是插件以来的库

  这些信息都对应着插件的overview页面的信息。

  

回到顶部

  plugin.xml 插件的详细设置文档,包含插件的扩展点信息,以及插件自己的信息

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

  

  <plugin>元素清单的主体

  <extension>插件的功能扩展,里面包括 point 扩展点的标识、id 扩展实例的标识、name 提供的用户的名称等等

回到顶部

  build.properties 构建的元素列表

复制代码
source.. = src/
output.. = bin/
bin.includes = plugin.xml,\META-INF/,\.,\icons/
复制代码

  里面包括插件的源文件目录,生成文件目录,还有一些配置信息的引入。

回到顶部

  提供的插件类Activator.java

复制代码
 1 package com.test.myplugin;
 2 
 3 import org.eclipse.jface.resource.ImageDescriptor;
 4 import org.eclipse.ui.plugin.AbstractUIPlugin;
 5 import org.osgi.framework.BundleContext;
 6 
 7 /**
 8  * The activator class controls the plug-in life cycle
 9  */
10 public class Activator extends AbstractUIPlugin {
11 
12     // The plug-in ID
13     public static final String PLUGIN_ID = "com.test.myplugin";
14 
15     // The shared instance
16     private static Activator plugin;
17     
18     /**
19      * The constructor
20      */
21     public Activator() {
22     }
23 
24     /*
25      * (non-Javadoc)
26      * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
27      */
28     public void start(BundleContext context) throws Exception {
29         super.start(context);
30         plugin = this;
31     }
32 
33     /*
34      * (non-Javadoc)
35      * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
36      */
37     public void stop(BundleContext context) throws Exception {
38         plugin = null;
39         super.stop(context);
40     }
41 
42     /**
43      * Returns the shared instance
44      *
45      * @return the shared instance
46      */
47     public static Activator getDefault() {
48         return plugin;
49     }
50 
51     /**
52      * Returns an image descriptor for the image file at the given
53      * plug-in relative path
54      *
55      * @param path the path
56      * @return the image descriptor
57      */
58     public static ImageDescriptor getImageDescriptor(String path) {
59         return imageDescriptorFromPlugin(PLUGIN_ID, path);
60     }
61 }
复制代码

  start()和stop()分别用于插件开始与停止调用的函数。

  


 

 

  最后让我们运行一下这个插件吧!

 

  启动方式1 直接在overview界面点击;

   启动方式2 也可以点击运行或者DEBUG按钮,运行方式选择Eclipse Application。

  

  点击启动后,会为我们重新开启一个Eclipse,这个Eclipse就是带有我们创建的插件的新Eclipse。启动效果如下:

  这样一个简单的插件就开发完啦!让我们就此真正的起航吧!!!

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

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

相关文章

线性回归 假设_线性回归的假设

线性回归 假设Linear Regression is the bicycle of regression models. It’s simple yet incredibly useful. It can be used in a variety of domains. It has a nice closed formed solution, which makes model training a super-fast non-iterative process.线性回归是回…

solo

solo - 必应词典 美[soʊloʊ]英[səʊləʊ]n.【乐】独奏(曲)&#xff1b;独唱(曲)&#xff1b;单人舞&#xff1b;单独表演adj.独唱[奏]的&#xff1b;单独的&#xff1b;单人的v.独奏&#xff1b;放单飞adv.独网络梭罗&#xff1b;独奏曲&#xff1b;索罗变形复数&#xff1…

Eclipse 简介和插件开发天气预报

Eclipse 简介和插件开发 Eclipse 是一个很让人着迷的开发环境&#xff0c;它提供的核心框架和可扩展的插件机制给广大的程序员提供了无限的想象和创造空间。目前网上流传相当丰富且全面的开发工具方面的插件&#xff0c;但是 Eclipse 已经超越了开发环境的概念&#xff0c;可以…

趣味数据故事_坏数据的好故事

趣味数据故事Meet Julia. She’s a data engineer. Julia is responsible for ensuring that your data warehouses and lakes don’t turn into data swamps, and that, generally speaking, your data pipelines are in good working order.中号 EETJulia。 她是一名数据工程…

Linux 4.1内核热补丁成功实践

最开始公司运维同学反馈&#xff0c;个别宿主机上存在进程CPU峰值使用率异常的现象。而数万台机器中只出现了几例&#xff0c;也就是说万分之几的概率。监控产生的些小误差&#xff0c;不会造成宕机等严重后果&#xff0c;很容易就此被忽略了。但我们考虑到这个异常转瞬即逝、并…

python分句_Python循环中的分句,继续和其他子句

python分句Python中的循环 (Loops in Python) for loop for循环 while loop while循环 Let’s learn how to use control statements like break, continue, and else clauses in the for loop and the while loop.让我们学习如何在for循环和while循环中使用诸如break &#xf…

eclipse plugin 菜单

简介&#xff1a; 菜单是各种软件及开发平台会提供的必备功能&#xff0c;Eclipse 也不例外&#xff0c;提供了丰富的菜单&#xff0c;包括主菜单&#xff08;Main Menu&#xff09;&#xff0c;视图 / 编辑器菜单&#xff08;ViewPart/Editor Menu&#xff09;和上下文菜单&am…

python数据建模数据集_Python中的数据集

python数据建模数据集There are useful Python packages that allow loading publicly available datasets with just a few lines of code. In this post, we will look at 5 packages that give instant access to a range of datasets. For each package, we will look at h…

打开editor的接口讨论

【打开editor的接口讨论】 先来看一下workbench吧&#xff0c;workbench从静态划分应该大致如下&#xff1a; 从结构图我们大致就可以猜测出来&#xff0c;workbench page作为一个IWorkbenchPart&#xff08;无论是eidtor part还是view part&#…

网络攻防技术实验五

2018-10-23 实验五 学 号201521450005 中国人民公安大学 Chinese people’ public security university 网络对抗技术 实验报告 实验五 综合渗透 学生姓名 陈军 年级 2015 区队 五 指导教师 高见 信息技术与网络安全学院 2018年10月23日 实验任务总纲 2018—2019 …

usgs地震记录如何下载_用大叶草绘制USGS地震数据

usgs地震记录如何下载One of the many services provided by the US Geological Survey (USGS) is the monitoring and tracking of seismological events worldwide. I recently stumbled upon their earthquake datasets provided at the website below.美国地质调查局(USGS)…

Springboot 项目中 xml文件读取yml 配置文件

2019独角兽企业重金招聘Python工程师标准>>> 在xml文件中读取yml文件即可&#xff0c;代码如下&#xff1a; 现在spring-boot提倡零配置&#xff0c;但是的如果要集成老的spring的项目&#xff0c;涉及到的bean的配置。 <bean id"yamlProperties" clas…

无法获取 vmci 驱动程序版本: 句柄无效

https://jingyan.baidu.com/article/a3a3f811ea5d2a8da2eb8aa1.html 将 vmci0.present "TURE" 改为 “FALSE”; 转载于:https://www.cnblogs.com/limanjihe/p/9868462.html

数据可视化 信息可视化_更好的数据可视化的8个技巧

数据可视化 信息可视化Ggplot is R’s premier data visualization package. Its popularity can likely be attributed to its ease of use — with just a few lines of code you are able to produce great visualizations. This is especially great for beginners who are…

分布式定时任务框架Elastic-Job的使用

为什么80%的码农都做不了架构师&#xff1f;>>> 一、前言 Elastic-Job是一个优秀的分布式作业调度框架。 Elastic-Job是一个分布式调度解决方案&#xff0c;由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。 Elastic-Job-Lite定位为轻量级无中心化…

Memcached和Redis

Memcached和Redis作为两种Inmemory的key-value数据库&#xff0c;在设计和思想方面有着很多共通的地方&#xff0c;功能和应用方面在很多场合下(作为分布式缓存服务器使用等) 也很相似&#xff0c;在这里把两者放在一起做一下对比的介绍 基本架构和思想 首先简单介绍一下两者的…

第4章 springboot热部署 4-1 SpringBoot 使用devtools进行热部署

/imooc-springboot-starter/src/main/resources/application.properties #关闭缓存, 即时刷新 #spring.freemarker.cachefalse spring.thymeleaf.cachetrue#热部署生效 spring.devtools.restart.enabledtrue #设置重启的目录,添加那个目录的文件需要restart spring.devtools.r…

ibm python db_使用IBM HR Analytics数据集中的示例的Python独立性卡方检验

ibm python dbSuppose you are exploring a dataset and you want to examine if two categorical variables are dependent on each other.假设您正在探索一个数据集&#xff0c;并且想要检查两个分类变量是否相互依赖。 The motivation could be a better understanding of …

sql 左联接 全联接_通过了解自我联接将您SQL技能提升到一个新的水平

sql 左联接 全联接The last couple of blogs that I have written have been great for beginners ( Data Concepts Without Learning To Code or Developing A Data Scientist’s Mindset). But, I would really like to push myself to create content for other members of …

hadoop windows

1、安装JDK1.6或更高版本 官网下载JDK&#xff0c;安装时注意&#xff0c;最好不要安装到带有空格的路径名下&#xff0c;例如:Programe Files&#xff0c;否则在配置Hadoop的配置文件时会找不到JDK&#xff08;按相关说法&#xff0c;配置文件中的路径加引号即可解决&#xff…