您的位置:首页 >> 编程开发 >> Java >> Java基础 >> Eclipse >> 正文
Eclipse RSS
 

Eclipse入门—使用指南及开发Eclipse插件

http://www.rdxx.com 05年01月26日 12:12 Blog 我要投稿

关键词: 指南 , 插件 , Eclipse , 入门 , 开发 , IP


下面的代码是才真正实现了我们新插件的功能,假设这个插件名子是NoticeView:

package com.nidapeng.eclipse.plugin.pde;import org.eclipse.core.resources.*;import org.eclipse.core.resources.IResourceChangeEvent;import org.eclipse.core.runtime.CoreException;import java.util.ResourceBundle;import org.eclipse.swt.widgets.Label;import org.eclipse.swt.widgets.Composite;import org.eclipse.ui.part.ViewPart;import org.eclipse.swt.SWT;import org.eclipse.swt.widgets.Display;public class NoticeView extends ViewPart implements Runnable,IResourceChangeListener ,IResourceDeltaVisitor{	private ResourceBundle resourceBundle;	private Label label;	private Display disp; 	private String dispTxt;	public NoticeView() {    ResourcesPlugin.getWorkspace().addResourceChangeListener(this,      IResourceChangeEvent.PRE_CLOSE      | IResourceChangeEvent.PRE_DELETE      | IResourceChangeEvent.PRE_AUTO_BUILD      | IResourceChangeEvent.POST_AUTO_BUILD      | IResourceChangeEvent.POST_CHANGE);	}	public static IWorkspace getWorkspace() {		//ResourcesPlugin插件的主类! 		return ResourcesPlugin.getWorkspace(); 	}	public void createPartControl(Composite parent) {   		label = new Label(parent, SWT.WRAP);		label.setText("change your project status...");         disp = Display.getDefault(); 	}	public void setFocus() { 	}	// 实现IResourceChangeListener接口中的resourceChanged方法	public void resourceChanged(IResourceChangeEvent event) {  		IResource res = event.getResource();  		switch (event.getType()) {   			case IResourceChangeEvent.PRE_CLOSE :    				dispTxt = res.getFullPath() + " is about to closed!";    				break;   			case IResourceChangeEvent.PRE_DELETE :    				dispTxt = res.getFullPath() + " is about to be deleted!";   				break;   			case IResourceChangeEvent.POST_CHANGE :    				try {     				event.getDelta().accept(this);    				} catch (CoreException e) {    					 e.printStackTrace();    				}    				break;   			case IResourceChangeEvent.PRE_AUTO_BUILD :    				try {     				event.getDelta().accept(this);    				} catch (CoreException e) {	     				e.printStackTrace();    				}    				break;   			case IResourceChangeEvent.POST_AUTO_BUILD :    				try {     				event.getDelta().accept(this);    				} catch (CoreException e) {     					e.printStackTrace();    				}    				break;  		}  		disp.syncExec(this); 	} 	// 实现IResourceDeltaVisitor接口中的visit方法 	public boolean visit(IResourceDelta delta) {  		IResource res = delta.getResource();  		switch (delta.getKind()) {   		case IResourceDelta.ADDED :    			dispTxt = "Resource "+res.getFullPath()+" was added.";    			break;   		case IResourceDelta.REMOVED:    			dispTxt = "Resource "+res.getFullPath()+" was removed.";   			break;   		case IResourceDelta.CHANGED :    			dispTxt = "Resource "+res.getFullPath()+" has changed.";   			break;  		}  		return true; // visit the children 	}	// 实现Runnable接口中的run方法 	public void run() {  		try {   			label.setText(dispTxt);   		} catch (Exception e) {   			e.printStackTrace();  		}	}}


象上面的第一个Welcome插件,这个新插件同样继承了ViewPart,不同的是实现了三个接口:Runnable,IResourceChangeListener ,IResourceDeltaVisitor。其中的Runnable大家应该很熟悉:多线程的接口。而IResourceChangeListener和IResourceDeltaVisitor是Eclipse系统中的资源接口,这里的资源是指Eclipse中的项目或文件等。在下面运行NoticeView插件的过程中你可以通过添加、打开、删除项目或文件来触发这两个接口中的事件,并在我们的观察窗口中显示相关信息。

上一页 下一页


 
 
标签: 指南 , 插件 , Eclipse , 入门 , 开发 , IP 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved