元件組織架構

藉由提供簡式 API 給視圖和編輯器(亦稱為組件)的方式,「元件組織架構」允許放置和編製現有組件。 「元件組織架構 API」可讓用戶端建立任意 SWT 組合內建立組件的實例、允許組件可直接在網站上和本端介面通訊(而不需呼叫廣域物件),藉以增加強度和避免洩漏、容許用戶端擴充網站上的介面組,並提供用戶端一個組織架構,讓他們可以使用視窗和編輯器中的相同 API,建立專屬的可重複使用元件。 「元件組織架構」也容許用原子作業建構和解構組件,讓現有組件也可以使用新的網站介面。

NameViewNew 視圖的影像

這個簡單的範例提供一個設定其名稱、標題、工具提示和影像的視圖,並示範如何使用元件組織架構來寫入編輯器或視圖。其中會顯示使用元件 API 的程式碼。 新的組件可以採用其建構子中的引數,而不需要實作任何特定的介面,或繼承自任何特定的基礎類別。

/**
 * 設定其名稱、工具提示、影像和內容說明的範例視圖。
 * 這個視圖使用其外掛程式所提供的自訂影像。
 *
 * @自 3.1
 */
public class NameViewNew {
    /**
     * 元件建構子。不要直接呼叫。
     */
    public NameViewNew(Composite parent, INameable name, IPluginImages images) {
        name.setName("Name View (New)");
        name.setContentDescription("content description");
        name.setTooltip("This is a tooltip");
        name.setImage(images.getImage("icons/sample.gif"));
       
        // 建立部分無效的視圖內容
        Label content = new Label(parent, SWT.NONE);
        content.setText("View contents go here");
    }
}

請注意,視圖之建構子的給定引數已經知道它們的環境定義。 例如,不需要將該視圖屬於哪個外掛程式的事情告知 IPluginImages 介面。 相同地,介面都是防洩漏的。在本例中,皆由 INameable 實作方式負責自動配置和取消配置視圖的影像,因此,視圖本身不需要實作刪除方法。

有趣的是,視圖和編輯器的 API 完全相同。換句話說,如果選擇要用 org.eclipse.ui.editors 延伸點來登錄 NameViewNew 類別,它也可以用來當作編輯器,而不需任何修改。