原创 爲首選項添加PropetyChange事件監聽

可以爲首選項添加PropetyChange事件監聽,設置了新的Property時更新UI部分的顯示。 eg: Activator.getDefault().getPreferenceStore() .addPropertyChan

原创 Eclipse源碼閱讀:GotoTypeAction

Go To Type是Eclipse的Navigate菜單下的一個子菜單的功能,如下所示: 大部分內容和{Eclipse源碼閱讀:Go To Resource點擊打開鏈接}一樣. 這裏直接貼同分析的核心代碼,重點部分添加了中文註釋. /

原创 Eclipse源碼閱讀:Choose Super Class

下午睡了一覺,起來後閱讀了New Java Class的部分的代碼,對應的嚮導爲org.eclipse.jdt.internal.ui.wizards.NewClassCreationWizard,從New Java Class的功能實現

原创 Eclipse Workbench Structure分析

IWorkbench public interface IWorkbenchextends IAdaptable, IServiceLocator A workbench is the root object for the Eclip

原创 Eclipse開發的一些原則

本文系轉載,這些原則在經典圖書Contributing to Eclipse中詳細論述。只是版本很老了,國內幾近絕版。在插件開發中,我個人最常用貢獻法則,有樣學樣法則,適配法則。 擴展者貢獻法則( Contribution Rule ):

原创 首選項中字體,顏色等屬性的存取

首選項中,如boolean,int,String等類型的保存都比較簡單,使用的是IPreferenceStore類。但字體,顏色等屬性的保存有一些特殊,要訪問與 SWT 對象有關的首選項(尤其是 RGB、Rectangle、FontDat

原创 IPartListener與IPartListener2[總結]

IIPartListener的應用場景? IPartListener監聽WorkbenchPart(包括ViewPart和EditorPart)和生命週期(打開,隱藏,關閉等), 當我們想在某WorkbenchPart在這些生命週期發生的

原创 從插件中獲取資源的幾種方式[總結]_FileLocator

方式一: public static URL getFile(String filename) throws IOException {   System.out.println("get file "  + filename);   /

原创 根據給定的IEditPar或IEditorInput獲取IFile實例。

  根據IEditorInput獲取IFile實例  public static IFile getFile(IEditorInput editorInput) { if (editorInput == null) { return nu

原创 How do I get a preference value?

ps:這篇博文的完成過程異常痛苦,對我來說, 這 塊的知識是基本弄明白了。但估計寫在這裏,能明瞭的人不是很多,應該是還沒有理解得更透徹的原因。不過,如果你真正懂插件,或許能看懂的。 1.針對有UI的插件(激活器繼承自AbstractUIP

原创 RCP:爲工具欄(CoolBar)貢獻右鍵菜單

羣裏有網友問到。剛好以前做過。 以爲RCP的工具欄貢獻鎖定和隱藏右鍵爲例吧。直接貼代碼了。搞插件的,看代碼就能明白吧?改寫一下ActionBarAdvisor實現類的fillCoolBar方法。 protected void fi

原创 StructuredViewer的SelectionAll功能是如何實現的

最近有時間就在閱讀eclipse源碼,今天讀了一下Package Explorer視圖 (所在類爲org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart)的內容.我們可以看看

原创 初始化首選項的方式[總結]

針對有UI(激活器繼承自AbstractUIPlugin)的插件,有2種方式. 1.在繼承自AbstractUIPlugin的子類中實現initializeDefaultPreferences(IPreferenceStore stor

原创 How do I set a preference value?

ps:內容來自Eclipse Preferences FAQ。代碼簡單,直接貼了。   1. Through the backwards compatibility layer. Again, all the old APIs exis

原创 Eclipse源碼閱讀:Add Interfaces

本文和Eclipse源碼閱讀:Choose Super Class類似,   廢話不說,直接看代碼吧:   protected void chooseSuperInterfaces() { IJavaProject project