內部和外部編輯器

識別碼:org.eclipse.ui.editors

說明:這個延伸點用來在工作台中加入新的編輯器。 編輯器是工作台頁面內的視覺化元件。 它通常用來編輯或瀏覽文件或輸入物件。 若要開啟一個編輯器,使用者通常會在 IFile 上呼叫 "Open"。 當執行這個動作時,會參照工作台登錄來判斷檔案類型的適當編輯器,再建立一個編輯器類型的新實例。 實際的結果會隨著編輯器的類型而不同。 工作台支援建立緊密整合在工作台中的內部編輯器,以及從個別頁框視窗中啟動的外部編輯器。 另外亦提供這些內外部編輯器之間的各種層次的整合。

在內部編輯器中,工作台視窗與編輯器組件之間可以達到緊密的整合。 工作台功能表及工具列預先載入了若干共用動作,如剪下、複製和貼上。 作用中的組件、檢視畫面或編輯器應該提供這些動作的實作方式。 內部編輯器也可以定義會出現在工作台視窗中的新動作。 這些動作只有在編輯器作用中時才會出現。

工作台和外部編輯器之間的整合比較弱。 在這個情況中,工作台可啟動編輯器,但之後就沒有辦法判斷外部編輯器的狀態, 且除了檔案系統之外,也沒有任何方法可以與它合作。

配置標記:

   <!ELEMENT extension (editor*)>

   <!ATTLIST extension
     point CDATA #REQUIRED
     id    CDATA #IMPLIED
     name  CDATA #IMPLIED
   >

   <!ELEMENT editor EMPTY>

   <!ATTLIST editor
      id               CDATA #REQUIRED
     name             CDATA #REQUIRED
      icon             CDATA #IMPLIED
      extensions       CDATA #IMPLIED
     class            CDATA #IMPLIED
     command          CDATA #IMPLIED
     contributorClass CDATA #IMPLIED
     default          (true | false) "false"
     filenames        CDATA #IMPLIED
     launcher         CDATA #IMPLIED
     symbolicFontName CDATA #IMPLIED
   >

範例:以下是內部編輯器延伸定義的範例:

   <extension point="org.eclipse.ui.editors"> 
      <editor         id="com.xyz.XMLEditor" 
         name="Fancy XYZ XML editor" 
         icon="./icons/XMLEditor.gif" 
         extensions="xml" 
         class="com.xyz.XMLEditor" 
         contributorClass="com.xyz.XMLEditorContributor" 
         symbolicFontName="org.eclipse.jface.textfont"
         default="false"> 
      </editor> 
   </extension> 

API 資訊:如果使用 command 屬性的話,會將它當作以平台相依方式執行的外部程式指令行來處理。

如果使用 launcher 屬性,也會將編輯器當作外部程式來處理。 在這個情況中,指定的類別必須實作 org.eclipse.ui.IEditorLauncher。 啟動程式會產生實例,之後,會呼叫 open(IFile file) 來啟動編輯器。

如果使用 class 屬性,工作台將假設它是內部編輯器, 而且指定的類別必須實作 org.eclipse.ui.IEditorPart。 當定義新的編輯器類型時,建立 subclass org.eclipse.ui.EditorPart 的子類別是通用的作法。 另外也必須定義 contributorClass 屬性。 指定的類別必須實作 org.eclipse.ui.IEditorActionBarContributor, 且用來新增新動作到反映編輯器類型特性的工作台功能表及工具列中。

在工作台內,特定類型可能有多個開啟的編輯器。比方說,可能會有一或多個開啟的「Java 編輯器」。 為了避免建立重複的動作及動作影像,編輯器概念已分成兩個。 IEditorActionBarContributor 負責建立動作。 這個編輯器負責動作的實作方式。 此外,contributor 由每個開啟的編輯器來共用。 這個設計的結果是一或多個開啟的編輯器只有一組動作。

contributor 會將新動作新增到反映編輯器類型的工作台功能表和工具列中。 這些動作是共用的,在受到呼叫時,會作用於作用中的編輯器。 作用中的編輯器會因 IEditorActionBarContributor.setActiveEditor 受到呼叫而傳遞給 contributer。 工作台視窗內的動作和主要群組的識別碼定義在 org.eclipse.ui.IWorkbenchActionConstants 中。 這些應該作為加入新動作的參照點。最上層功能表是利用下列 path 屬性值來建立的:

新增到這些路徑的動作和功能表只有在相關編輯器在作用中時才會顯示。 當關閉編輯器時,會移除功能表和動作。

提供的實作:工作台提供一個「預設文字編輯器」。 一般使用者產品可含有其他編輯器作為出貨連結銷售的一部份。 在這個情況中,會利用上述語法將編輯器登錄為延伸項目。

Copyright (c) 2002,2003 IBM Corporation and others. All rights reserved. 這個程式和伴隨的素材可以根據伴隨這個分送,而且可在 http://www.eclipse.org/legal/cpl-v10.html 中取得的 Common Public License v1.0 的條款來使用