小編給大家分享一下Eclipse擴展點怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
“只有客戶發展了,才有我們的生存與發展!”這是創新互聯的服務宗旨!把網站當作互聯網產品,產品思維更注重全局思維、需求分析和迭代思維,在網站建設中就是為了建設一個不僅審美在線,而且實用性極高的網站。創新互聯對成都網站設計、成都網站制作、網站制作、網站開發、網頁設計、網站優化、網絡推廣、探索永無止境。
Eclipse中提供了幾個擴展點,方便擴展重構功能。
基本的重構功能有,
Rename,Move,Create,Delete,Copy。對應擴展點即為:
org.eclipse.ltk.core.refactoring.renameParticipants org.eclipse.ltk.core.refactoring.moveParticipants org.eclipse.ltk.core.refactoring.createParticipants org.eclipse.ltk.core.refactoring.deleteParticipants org.eclipse.ltk.core.refactoring.copyParticipants
以ReName為例,其余4項與ReName大同小異。
實現這個擴展點的基本語法:
< extension point="org.eclipse.ltk.core.refactoring.renameParticipants"> < renameParticipant id="jp.co.intramart.app.producer.refactoring.renameTypeParticipant" name="Ebuilder RenameTypeParticipant" class="jp.co.intramart.app.producer.refactoring.TypeRenameParticipant"> < enablement> < /enablement> < /renameParticipant> < /extension>
這里默認對響應所有改名事件,如果需要過濾可以在元素< enablement/>中加以定義。不贅述。實現改名擴展的關鍵在實現類,必須是org.eclipse.ltk.core.refactoring.participants.RenameParticipant;的子類
下面代碼進行了簡單的Eclipse重構功能實現。
import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.ltk.core.refactoring.Change; import org.eclipse.ltk.core.refactoring.RefactoringStatus; import org.eclipse.ltk.core.refactoring.TextFileChange; import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext; import org.eclipse.ltk.core.refactoring.participants.RenameParticipant; import org.eclipse.text.edits.ReplaceEdit; public class TypeRenameParticipant extends RenameParticipant { public TypeRenameParticipant() { } @Override public RefactoringStatus checkConditions(IProgressMonitor pm, CheckConditionsContext context) throws OperationCanceledException { return new RefactoringStatus(); } @Override public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException { IFile file = ResourcesPlugin.getWorkspace().getRoot().getProject("a") .getFile("a"); TextFileChange textFileChange = new TextFileChange("File Changed ", file); ReplaceEdit edit = new ReplaceEdit(0, 1, "haha"); textFileChange.setEdit(edit); return textFileChange; } @Override public String getName() { return "Ebuilder RenameTypeParticipant"; } @Override protected boolean initialize(Object element) { // need sub return true; } }
CreateChange方法內實現過于粗糙,僅僅是為了可以讓大家看到結果。
Eclipse重構功能結果預覽
通過利用擴展點,我們就自然的將重構時的差異比較,警告,preview,重構history,redo/undo等,eclipse平臺提供的基本功能加以利用了。
Preview的結果如下圖。
Eclipse重構功能:特殊需求
下面我來介紹,通過擴展點實現特殊需求。
除了增,刪,改,移等基本重構外,可以增加特殊需求的重構,比如JDT中對類,方法,變量名的重構。
實現特殊需求,就要實現自己的Refactoring類,繼承類org.eclipse.ltk.core.refactoring.Refactoring實現相關方法,這個類的結構與RenameParticipant等類的結構基本一致,直接上代碼,不再贅述。
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.ltk.core.refactoring.Change; import org.eclipse.ltk.core.refactoring.Refactoring; import org.eclipse.ltk.core.refactoring.RefactoringStatus; public class ProducerRefactoring extends Refactoring { @Override public RefactoringStatus checkFinalConditions(IProgressMonitor pm) throws CoreException, OperationCanceledException { // need sub return new RefactoringStatus(); } @Override public RefactoringStatus checkInitialConditions(IProgressMonitor pm) throws CoreException, OperationCanceledException { // need sub return new RefactoringStatus(); } @Override public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException { // need sub return null; } @Override public String getName() { return "ProducerRefactoring"; } }
這個類負責處理特殊需求與重構的特殊邏輯。
除了邏輯層,還需要對表現層有實現:
RefactoringWizard 及 RefactoringWizardPage。
實現了Refactoring,Wizard,WizardPage后,即完成了,UI到邏輯的實現。
通過相應的Action的配置,使用RefactoringWizardOpenOperation。即完成了特殊重構需求的開發。
為了方便對特殊需求的Refactoring邏輯部分的重用,eclipse提供了一個擴展點:
org.eclipse.ltk.core.refactoring.refactoringContributions
通過擴展點的配置,使用時通過ID即可隨時得到Refactoring對象。
以上是“Eclipse擴展點怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!
分享標題:Eclipse擴展點怎么用
URL鏈接:http://vcdvsql.cn/article46/pccceg.html
成都網站建設公司_創新互聯,為您提供網站策劃、網站營銷、全網營銷推廣、網站導航、動態網站、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯