Java 範例編輯器從 AbstractTextEditor 繼承許多有用的預設行為。 文字編輯組織架構會處理數個其他責任,您可以藉由置換 AbstractTextEditor 中的方法, 來自訂這些責任。 瀏覽此類別及其子類別的實作方式,以查看如何在組織架構中自訂行為。
下列是一些可以配置的有用組織架構特性。
文字編輯器通常會提供若干使用者喜好設定,來控制編輯器的呈現方式和行為。 在文字組織架構中,每一個文字編輯器實例都具有一個用於存取使用者喜好設定的相關聯喜好設定儲存庫。 您的編輯器可以設定這個喜好設定儲存庫,或者, 您可以繼承已在組織架構中使用的喜好設定儲存庫。
在 Java 範例編輯器的情況中,它繼承由 TextEditor 起始設定的喜好設定儲存庫。 這是由工作台編輯器外掛程式定義的喜好設定儲存庫。
protected void initializeEditor() { ... setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore()); }您可以在工作台 > 編輯器,以及工作台 > 編輯器 > 文字編輯器喜好設定頁面中, 操作編輯器外掛程式喜好設定。
如果您不想要對編輯器使用標準工作台文字喜好設定,您可以設定不同的喜好設定儲存庫。通常,做法是置換 initializeEditor 並設定您自己的喜好設定儲存庫。 如果您真的使用自己的喜好設定儲存庫,也將需要置換每當更新喜好設定時就會觸發的 handlePreferenceStoreChanged() 方法。
快速鍵連結範圍有助於建立快速鍵連結的查閱次序。 具有環境定義範圍可減少不同外掛程式提供衝突的快速鍵順序的機會。 依預設,工作台是在廣域範圍中運作。 當文字編輯器變成作用中時,它負責將範圍重設為文字編輯器範圍, 以便將編輯器特有的快速鍵連結變成作用中。
在平台文字組織架構中,每一個文字編輯器實例都具有相關聯的快速鍵連結範圍。 當它變成作用中時,它負責設定這個範圍。 TextEditor 定義這個範圍並小心地讓它變成作用中。這個範圍是在從建構子呼叫的方法中指定的:
protected void initializeKeyBindingScopes() { setKeyBindingScopes(new String[] { "org.eclipse.ui.textEditorScope" }); }
方法的引數是字串快速鍵連結範圍 ID 的陣列。 如果想要編輯器定義它自己的快速鍵連結範圍,您可以在編輯器類別中置換這個方法,或使用 setKeybindingScopes,以動態方式設定範圍。
範圍本身必須以 org.eclipse.ui.commands 延伸點中的對應 ID 來加以定義。下列是文字編輯器範圍的定義。
<extension point="org.eclipse.ui.commands"> ... <scope name="%scope.text.name" parent="org.eclipse.ui.globalScope" description="%scope.text.description" id="org.eclipse.ui.textEditorScope"> </scope> </extension>