av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Eclipse重構(gòu)功能:擴(kuò)展點(diǎn)的使用

Eclipse中提供了幾個(gè)擴(kuò)展點(diǎn),方便擴(kuò)展重構(gòu)功能。

十多年專注成都網(wǎng)站制作,成都定制網(wǎng)頁(yè)設(shè)計(jì),個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識(shí)、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專注于成都定制網(wǎng)頁(yè)設(shè)計(jì),高端網(wǎng)頁(yè)制作,對(duì)成都戶外休閑椅等多個(gè)方面,擁有多年的營(yíng)銷推廣經(jīng)驗(yàn)。

基本的重構(gòu)功能有,

Rename,Move,Create,Delete,Copy。對(duì)應(yīng)擴(kuò)展點(diǎn)即為:

 
 
 
 
  1. org.eclipse.ltk.core.refactoring.renameParticipants    
  2. org.eclipse.ltk.core.refactoring.moveParticipants    
  3. org.eclipse.ltk.core.refactoring.createParticipants    
  4. org.eclipse.ltk.core.refactoring.deleteParticipants    
  5. org.eclipse.ltk.core.refactoring.copyParticipants   

以ReName為例,其余4項(xiàng)與ReName大同小異。

實(shí)現(xiàn)這個(gè)擴(kuò)展點(diǎn)的基本語(yǔ)法:

 
 
 
 
  1. < extension point="org.eclipse.ltk.core.refactoring.renameParticipants">    
  2. < renameParticipant    
  3.     id="jp.co.intramart.app.producer.refactoring.renameTypeParticipant"    
  4.     name="Ebuilder RenameTypeParticipant"     
  5.     class="jp.co.intramart.app.producer.refactoring.TypeRenameParticipant">     
  6.     < enablement>    
  7.     < /enablement>        
  8. < /renameParticipant>    
  9. < /extension>   

這里默認(rèn)對(duì)響應(yīng)所有改名事件,如果需要過(guò)濾可以在元素< enablement/>中加以定義。不贅述。實(shí)現(xiàn)改名擴(kuò)展的關(guān)鍵在實(shí)現(xiàn)類,必須是org.eclipse.ltk.core.refactoring.participants.RenameParticipant;的子類

下面代碼進(jìn)行了簡(jiǎn)單的Eclipse重構(gòu)功能實(shí)現(xiàn)。

 
 
 
 
  1. import org.eclipse.core.resources.IFile;    
  2. import org.eclipse.core.resources.ResourcesPlugin;    
  3. import org.eclipse.core.runtime.CoreException;    
  4. import org.eclipse.core.runtime.IProgressMonitor;    
  5. import org.eclipse.core.runtime.OperationCanceledException;    
  6. import org.eclipse.ltk.core.refactoring.Change;    
  7. import org.eclipse.ltk.core.refactoring.RefactoringStatus;    
  8. import org.eclipse.ltk.core.refactoring.TextFileChange;    
  9. import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;    
  10. import org.eclipse.ltk.core.refactoring.participants.RenameParticipant;    
  11. import org.eclipse.text.edits.ReplaceEdit;    
  12.     
  13. public class TypeRenameParticipant extends RenameParticipant {    
  14.     
  15.     public TypeRenameParticipant() {    
  16.     }    
  17.     
  18.     @Override    
  19.     public RefactoringStatus checkConditions(IProgressMonitor pm,    
  20.             CheckConditionsContext context) throws OperationCanceledException {    
  21.         return new RefactoringStatus();    
  22.     }    
  23.     
  24.     @Override    
  25.     public Change createChange(IProgressMonitor pm) throws CoreException,    
  26.             OperationCanceledException {    
  27.         IFile file = ResourcesPlugin.getWorkspace().getRoot().getProject("a")    
  28.                 .getFile("a");    
  29.         TextFileChange textFileChange = new TextFileChange("File Changed ",    
  30.                 file);    
  31.     
  32.         ReplaceEdit edit = new ReplaceEdit(0, 1, "haha");    
  33.         textFileChange.setEdit(edit);    
  34.         return textFileChange;    
  35.     }    
  36.     
  37.     @Override    
  38.     public String getName() {    
  39.         return "Ebuilder RenameTypeParticipant";    
  40.     }    
  41.     
  42.     @Override    
  43.     protected boolean initialize(Object element) {    
  44.         // need sub    
  45.         return true;    
  46.     }    
  47.     
  48. }   

CreateChange方法內(nèi)實(shí)現(xiàn)過(guò)于粗糙,僅僅是為了可以讓大家看到結(jié)果。

Eclipse重構(gòu)功能結(jié)果預(yù)覽

通過(guò)利用擴(kuò)展點(diǎn),我們就自然的將重構(gòu)時(shí)的差異比較,警告,preview,重構(gòu)history,redo/undo等,eclipse平臺(tái)提供的基本功能加以利用了。

Preview的結(jié)果如下圖。

Eclipse重構(gòu)功能:特殊需求

下面我來(lái)介紹,通過(guò)擴(kuò)展點(diǎn)實(shí)現(xiàn)特殊需求。

除了增,刪,改,移等基本重構(gòu)外,可以增加特殊需求的重構(gòu),比如JDT中對(duì)類,方法,變量名的重構(gòu)。

實(shí)現(xiàn)特殊需求,就要實(shí)現(xiàn)自己的Refactoring類,繼承類org.eclipse.ltk.core.refactoring.Refactoring實(shí)現(xiàn)相關(guān)方法,這個(gè)類的結(jié)構(gòu)與RenameParticipant等類的結(jié)構(gòu)基本一致,直接上代碼,不再贅述。

 
 
 
 
  1. import org.eclipse.core.runtime.CoreException;    
  2. import org.eclipse.core.runtime.IProgressMonitor;    
  3. import org.eclipse.core.runtime.OperationCanceledException;    
  4. import org.eclipse.ltk.core.refactoring.Change;    
  5. import org.eclipse.ltk.core.refactoring.Refactoring;    
  6. import org.eclipse.ltk.core.refactoring.RefactoringStatus;    
  7.     
  8. public class ProducerRefactoring extends Refactoring {    
  9.     
  10.     @Override    
  11.     public RefactoringStatus checkFinalConditions(IProgressMonitor pm)    
  12.             throws CoreException, OperationCanceledException {    
  13.         // need sub    
  14.         return new RefactoringStatus();    
  15.     }    
  16.     
  17.     @Override    
  18.     public RefactoringStatus checkInitialConditions(IProgressMonitor pm)    
  19.             throws CoreException, OperationCanceledException {    
  20.         // need sub    
  21.         return new RefactoringStatus();    
  22.     }    
  23.     
  24.     @Override    
  25.     public Change createChange(IProgressMonitor pm) throws CoreException,    
  26.             OperationCanceledException {    
  27.         // need sub    
  28.         return null;    
  29.     }    
  30.     
  31.     @Override    
  32.     public String getName() {    
  33.         return "ProducerRefactoring";    
  34.     }    
  35.     
  36. }   

這個(gè)類負(fù)責(zé)處理特殊需求與重構(gòu)的特殊邏輯。

除了邏輯層,還需要對(duì)表現(xiàn)層有實(shí)現(xiàn):

RefactoringWizard 及 RefactoringWizardPage。

實(shí)現(xiàn)了Refactoring,Wizard,WizardPage后,即完成了,UI到邏輯的實(shí)現(xiàn)。

通過(guò)相應(yīng)的Action的配置,使用RefactoringWizardOpenOperation。即完成了特殊重構(gòu)需求的開(kāi)發(fā)。

為了方便對(duì)特殊需求的Refactoring邏輯部分的重用,eclipse提供了一個(gè)擴(kuò)展點(diǎn):

org.eclipse.ltk.core.refactoring.refactoringContributions

通過(guò)擴(kuò)展點(diǎn)的配置,使用時(shí)通過(guò)ID即可隨時(shí)得到Refactoring對(duì)象。

本文來(lái)自站在eclipse的肩膀上:《簡(jiǎn)單介紹eclipse中的重構(gòu)》。

【編輯推薦】

  1. 在Eclipse中安裝pydev插件的經(jīng)驗(yàn)分享
  2. 自定義Eclipse菜單項(xiàng):去除多余的UI圖標(biāo)
  3. 六大便捷Eclipse JDT特性一覽
  4. 部署Eclipse RAP到Tomcat的步驟詳解
  5. Eclipse平臺(tái)應(yīng)用與開(kāi)發(fā)專題

名稱欄目:Eclipse重構(gòu)功能:擴(kuò)展點(diǎn)的使用
網(wǎng)站鏈接:http://uogjgqi.cn/article/djcessi.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流