Eclipse插件-添加自定義右鍵插件

原文地址:http://www.cnblogs.com/skyme/archive/2012/01/12/2320128.html


1.1 簡介
 
在開發工具上添加自己需要的功能,可以基於eclipse的插件進行擴展以滿足新功能的需要。下面就說說如何在eclipse上如何添加菜單項。
 
1.2 建立工程
 
新建eclipse插件工程
 
 
 
工程名自定義一下,我的工程名是com.popmenu.extend
 
 
 
選擇下一步,在這裏可以用嚮導給我們自動生成的,也可以建立完成之後到擴展點自己添加,這裏我們選擇默認的模板。
 
選擇popup模板
 
 
 
點擊下一步
 
 
 
其中Target Object’s Class:這裏指定了目標對象,就是說在哪裏點擊右鍵能夠顯示對應的菜單。
 
Submenu Name:這個是指定你要顯示的菜單在右鍵彈出後的名稱,我們起名叫“構建系統”。
 
Action Label:這個指定了顯示的子菜單的名稱,這裏修改爲“模板構建”。
 
Java Package Name:這裏指定了點擊模板構建後的處理類的包名,使用默認。
 
Action Class:這個是處理類的名稱,改爲TemplateAddAction。
 
Action is enabled for:表示選擇的是單選還是多選,這裏用默認。
 
點擊完成。
 
生成的項目結構如下:
 
 
 
1.3 Eclipse的資源API
 
工作空間、項目、文件夾、文件對應的類型接口分別爲IWorkspace、IProject、IFolder、IFile。資源相關
 
的接口都繼承了IResource接口,由於工作空間並不只是資源的管理者,因此IWorkspace並沒有繼承IResource
 
接口,爲了將工作空間作爲資源的管理者這一功能體現出來,抽象出了IWorkspaceRoot 的接口(即工作空間
 
根目錄),通過IWorkspace的getRoot 就可以得到對應的工作空間根目錄。由於工作空間根目錄、項目、文件
 
夾都是可以容納其他資源的,因此爲它們抽取了一個基類接口IContainer。
 
類的層次結構圖如下:
 
 
 
資源接口的常見方法
 
(1) IResource
 
l  delete:刪除此資源。
 
l  getFileExtension:返回文件的擴展名。
 
l  getFullPath:返回此資源相對於工作空間根目錄的相對路徑,返回值類型是IPath。
 
l  getLocation:返回此資源在文件系統中的絕對路徑,返回值類型是IPath。
 
l  exists:判斷此資源是否存在。處理資源與使用Java.io.File 處理文件非常相似。IResource只是一個句柄。當調用像getProject、getFolder 這樣的方法時,會將句柄返回給資源,即使指定的資源並不存在。因此在必要的時候要使用exists 方法來確定資源是否存在。
 
l  getParent:得到父資源容器,返回值類型爲IContainer。
 
l  getProject:返回此資源所屬的項目,返回值類型爲IProject。
 
l  getProjectRelativePath:返回此資源在項目中的相對路徑,返回值類型是IPath。
 
l  getWorkspace:返回此資源所屬的工作空間,返回值類型爲IWorkspace。
 
l  isSynchronized:判斷資源是否與文件系統同步。
 
(2) IContainer
 
l  exists(IPath path):判斷指定的路徑path是否在本容器內存在。
 
l  findMember:返回指定路徑的資源,返回值類型爲IResource。
 
l  getDefaultCharset:返回此容器內資源的默認編碼。
 
l  getFile:返回指定路徑的文件,返回值類型爲IFile。
 
l  getFolder:返回指定路徑的文件夾,返回值類型爲IFolder。
 
l  members:返回容器下的所有直接資源,返回值類型爲IResource[]。
 
(3) IFolder
 
l  create:創建此文件夾所代表的資源。
 
l  getFile:返回此文件夾下指定路徑下的文件,返回值類型爲IFile。
 
l  getFolder:返回此文件夾下指定路徑下的文件夾,返回值類型爲IFolder。
 
(4) IFile
 
l  appendContents:向文件中附加數據流,方法中有一個參數是InputStream類型,要添加的數據流就是在此流中。
 
l  create:用數據流創建文件,方法中有一個參數是InputStream類型,要創建的文件的數據流就是在此流中。
 
l  getCharset:返回文件的編碼。
 
l  setCharset:設定文件的編碼。
 
l  getContents:返回文件的流,返回值類型爲InputStream。
 
l  setContents:用數據流設定文件的內容,方法中有一個參數是InputStream類型,要設定的文件的數據流就是在此流中。
 
(5) IWorkspaceRoot
 
l  getProject:返回指定名字的項目,返回值類型爲IProject。
 
l  getProjects:返回工作空間中所有的項目,返回值類型爲IProject[]。
 
1.4 設置工程
 
雙擊plugin.xml,選擇Dependencies,在eclipse的插件項目中如果想添加依賴,必須在此處添加不能通過工程右鍵進行添加,否則會找不到對應的jar提示錯誤。因爲這裏用到了org.eclipse.jdt.core包所以添加。
 
點擊添加:
 
 
 
然後點擊Extensions出現擴展點的選擇界面。
 
 
 
可以看到我們添加的菜單的內容。選中objectContribution將其它objectClass設置成 org.eclipse.jdt.core.IJavaElement 表示在java工程上邊能夠看到提示菜單,設置完成後就可以運行一下示例看看效果了。
 
右鍵選擇工程run as -> eclipse application。
 


如果想在其它視圖下也可以看到菜單,需要設置adaptable的屬性爲true,這樣在其它視圖就也可以看到右鍵的內容了。

發佈了26 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章