`

Eclipse插件开发

    博客分类:
  • Java
阅读更多

准备(使用Visual Editor开发)

1.下载eclipse-SDK-3.2-win32.zip,解压到C:\eclipse

2.下载emf-sdo-runtime-2.2.0.zip、GEF-runtime-3.2.zip、VE-runtime-1.2.1.zip、VE-SDK-1.2.1.zip,分别解压,将解压后的plugins和features文件夹下的文件分别复制到C:\eclipse\plugins和C:\eclipse\features文件夹中。

 

开始开发:

新建一个Java Project名字为myplugin,在myplugin.actions中新建一个WeatherAction 类,代码如下:

 

package myplugin.actions;

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;

public class WeatherAction implements IWorkbenchWindowActionDelegate 
{
	public WeatherAction() 
	{
		
	}

	public void run(IAction action) 
	{
		WeatherDialog wd = new WeatherDialog();
		wd.setSize(800, 520);
		wd.show();
	}

	public void selectionChanged(IAction action, ISelection selection) 
	{
		
	}

	public void dispose() 
	{
		
	}
	
	public void init(IWorkbenchWindow window) 
	{
		
	}
}

 

其中WeatherDialog类的代码如下(新建一个Visual Editor类):

package myplugin.actions;

import java.awt.Frame;
import java.awt.Color;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

import javax.swing.JDialog;
import javax.swing.JEditorPane;

public class WeatherDialog extends JDialog 
{
	private static final long serialVersionUID = 1L;
	private JEditorPane jEditorPane = null;

	public WeatherDialog()
	{
		super();
		initialize();
	}
	
	public WeatherDialog(Frame owner)
	{
		super(owner);
		initialize();
	}

	private void initialize() 
	{
		this.setContentPane(getJEditorPane());
		
		String line = "";
		
		URL url = null;
		URLConnection conn = null;
		
        try
        {
            url = new URL("http://tq.8684.cn/beijing_beijing");
           
            conn = url.openConnection(); 
			
            HttpURLConnection httpconn =(HttpURLConnection)conn;
			
			if(httpconn.getResponseCode() != HttpURLConnection.HTTP_OK) 
				return;
            
            BufferedReader br = new BufferedReader(new InputStreamReader(httpconn.getInputStream()));
            
            while(br.ready())
            {
            	line = br.readLine();
            	if(line.indexOf("北京 北京天气") >= 0)
            		break;
            }
            
            br.readLine();
            line = br.readLine();
            
            line = line.replaceAll("bgcolor=\"#6699cc\"", "bgcolor=\"#FF0000\"");
            line = "<html><body text=\"#0000FF\"><h2>天气预报:北京</h2>" + line + "</body></html>";
            
            br.close(); 
            httpconn.disconnect();
            
            this.jEditorPane .setText(line);
        } 
        catch (Exception e)
        {
            e.printStackTrace();
        } 
        
        this.setTitle("天气预报");
        this.setSize(400, 166);
	}

	private JEditorPane getJEditorPane() 
	{
		if (jEditorPane == null) 
		{
			jEditorPane = new JEditorPane();
			jEditorPane.setBackground(Color.BLUE);
			jEditorPane.setContentType( "text/html");
			jEditorPane.setEnabled(false);
			jEditorPane.setEditable(false);
		}
		
		return jEditorPane;
	}

} 

 

plugin.xml配置文件的内容为:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>

   <extension
         point="org.eclipse.ui.actionSets">
      <actionSet
            label="Sample Action Set"
            visible="true"
            id="myplugin.actionSet">
         <menu
               label="北京欢迎你"
               id="sampleMenu">
            <separator
                  name="sampleGroup">
            </separator>
         </menu>
         <action
               label="天气预报"
               icon="icons/sample.gif"
               class="myplugin.actions.WeatherAction"
               tooltip="Hello, Eclipse world"
               menubarPath="sampleMenu/sampleGroup"
               toolbarPath="sampleGroup"
               id="myplugin.actions.WeatherAction">
         </action>
          <action
               label="北京时间"
               icon="icons/sample.gif"
               class="myplugin.actions.BJTimeAction"
               tooltip="Hello, Eclipse world"
               menubarPath="sampleMenu/sampleGroup"
               toolbarPath="sampleGroup"
               id="myplugin.actions.BJTimeAction">
         </action>
         <action
               label="大中国"
               icon="icons/sample.gif"
               class="myplugin.actions.SampleAction"
               tooltip="Hello, Eclipse world"
               menubarPath="sampleMenu/sampleGroup"
               toolbarPath="sampleGroup"
               id="myplugin.actions.SampleAction">
         </action>
      </actionSet>
   </extension>

</plugin>

 

如下面的图片所示:

 

 

 

 

从程序中可以看到,这个天气预报是从http://tq.8684.cn/beijing_beijing获取的,每天更新。

 

插件部署:

点击File,选择export,选择Plug-in Development下面的Deployable plug-ins and fragments,点击next,选择一个输出目录即可。将这个jar包复制到C:\eclipse\plugins,重启eclipse即可看到自己的eclipse插件。

 

1
0
分享到:
评论

相关推荐

    eclipse插件开发指南.pdf

    ### Eclipse插件开发指南知识点概览 #### 一、Eclipse概述 **1.1 Eclipse简介** - **1.1.1 Eclipse的历史背景** - Eclipse最初由IBM于2001年11月发布,版本号为1.0。 - 随着时间的发展,Eclipse逐渐成为了一个...

    Eclipse插件开发学习笔记.pdf

    Eclipse插件开发学习笔记将带领我们深入了解Eclipse插件开发的方方面面。 首先,我们需要了解Eclipse插件的基础概念。在Eclipse中,插件主要由一系列的扩展点(Extension Points)组成,这些扩展点定义了插件可以...

    Eclipse插件开发学习笔记全篇+源码.rar

    本文将深入探讨Eclipse插件开发的相关知识点,结合提供的"全书分为4篇共24章"的学习笔记和源码,帮助你更全面地理解和实践Eclipse插件开发。 第一篇:基础篇 在这一篇中,你将学习到Eclipse插件开发的基础知识,...

    Eclipse插件开发(第3版 - 高清).pdf.zip

    《Eclipse插件开发(第3版 - 高清)》是关于Eclipse平台扩展开发的一本经典著作,由[美] Dan Rubel撰写,并由陈沛等人翻译,ISBN为978-7-111-30336-7。这本书深入浅出地介绍了如何利用Java、SWT和JFace技术来构建...

    Eclipse插件开发笔记—PDF—带目录

    《Eclipse插件开发》由浅入深、有重点、有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章。第一篇介绍Eclipse平台界面开发的基础知识,包括SWT控件的使用、界面布局、事件处理等内容;第二篇是插件开发核心...

    Eclipse插件开发教程PPT Eclipse插件开发教程PPT

    Eclipse插件开发教程PPT是针对开发者设计的一份详细教学材料,旨在帮助他们了解并掌握如何利用Eclipse平台进行插件开发,从而定制自己的开发环境。以下是基于这个教程的几个关键知识点: 1. **Eclipse插件体系结构*...

    Eclipse插件开发 第1篇到第4篇 开发基础 核心技术 高级进阶 综合实例 eclipse 插件安装方法.zip

    本资料包包含了从基础到高级的Eclipse插件开发教程,覆盖了开发过程中的关键知识点,旨在帮助开发者深入理解和实践Eclipse插件的开发。 首先,我们来看《Eclipse插件开发 学习笔记 第1篇 开发基础》。这一部分通常...

    Eclipse插件开发方法与实战 2006 pdf 464页

    Eclipse插件开发是提高工作效率和个性化开发环境的重要方式,因此掌握Eclipse插件开发方法具有重要的实用价值。 从提供的内容来看,书籍《Eclipse插件开发方法与实战》可能是一本系统地介绍Eclipse插件开发的实战...

    eclipse插件开发PDF

    从提供的文件内容中,我们可以提取出关于Eclipse插件开发的多个知识点。 首先,Eclipse是一个用Java编写的开源集成开发环境(IDE),而Eclipse插件开发是指通过编写插件来扩展Eclipse的功能,实现从一个基本的代码...

    使用 Eclipse 插件开发环境构建模板

    标题中的"使用Eclipse插件开发环境构建模板"是指在Eclipse中开发自定义模板,这些模板能够帮助开发者快速生成常见的代码片段或项目结构,从而节省手动编写的时间。模板系统是Eclipse IDE的一大特色,允许用户定制...

    ECLIPSE插件开发 原书第3版.part1

    《Eclipse插件开发(原书第3版)(畅销插件开发指南新版)》既包含了开发Eclipse插件的基础理论,也涵盖了大量关于Eclipse插件开发的细节。 《Eclipse插件开发(原书第3版)(畅销插件开发指南新版)》不仅适用于Eclipse插件...

    Eclipse插件开发方法与实战_2006.pdf

    标题中的“Eclipse插件开发方法与实战”告诉我们文档的主题是关于Eclipse这个集成开发环境(IDE)的插件开发。Eclipse是一个功能强大的开源IDE,最初由IBM开发,用于Java语言开发,但后来支持了其他多种编程语言和开发...

    Eclipse插件开发系列

    Eclipse插件开发系列主要涉及的是如何利用Eclipse平台进行扩展和定制,使其满足特定的开发需求。Eclipse作为一个开放源代码的集成开发环境(IDE),具有强大的可扩展性,其核心架构支持通过插件机制来增加新功能或...

    神州数码 Eclipse插件开发面试

    神州数码作为一家专注于IT服务的公司,可能会对Eclipse插件开发有深入的需求,因此在面试过程中,掌握Eclipse插件开发技术是非常重要的。下面将详细介绍Eclipse插件开发的相关知识点。 一、Eclipse插件体系结构 ...

    Eclipse插件开发学习笔记(ch0-3)

    本学习笔记主要涵盖了Eclipse插件开发的基础知识,旨在帮助初学者掌握如何利用Eclipse平台进行插件开发。 首先,我们需要理解Eclipse平台的核心架构。【1第1章 Eclipse平台简介.pdf】会详细讲解,Eclipse基于OSGI...

    Eclipse插件开发笔记源码

    Eclipse插件开发是Java开发领域中的一个重要分支,它允许开发者通过扩展Eclipse IDE的功能来创建自定义的工作环境。这份“Eclipse插件开发笔记源码”提供了丰富的学习材料,帮助开发者深入理解并实践Eclipse插件开发...

    《Eclipse 插件开发》源代码

    在Eclipse插件开发中,首先要了解的是Oxygen(早期版本称为PDE,Plugin Development Environment),这是Eclipse用于创建、调试和管理插件的工具集。通过PDE,开发者可以使用XML描述符(plugin.xml)定义插件的元...

    Eclipse 插件开发指南

    总之,Eclipse插件开发是一个充满挑战和机遇的领域,掌握了其核心原理和技术要点后,开发者可以为Eclipse添加无限可能,满足各种开发需求。无论是初学者还是经验丰富的开发者,都能在Eclipse插件开发中找到乐趣和...

Global site tag (gtag.js) - Google Analytics