Scripting 使用者介面

平台 Scripting 外掛程式可讓您利用 JavaScript 開發各種工作台延伸項目。 提供的這個支援是使用 Rhino JavaScript 引擎。您可以使用 JavaScript 來提供下列資料給工作台:

下列區段假設您熟悉 JavaScript、工作台延伸項目及 SWT。

概念

Script 在工作台內管理為一般專案檔。通常您建立一個別專案來包含您的 Script。提供專用編輯器來編輯 Script。

平台支援的 Script 有兩種類型:

  1. 批次 Script 使用 JavaScript 對各種工作台物件呼叫方法及操作結 果。 這些 Script 非常適合建立新的重複動作,它們不屬於基本工作台功能的一部份。
  2. UI Script 類似具有 Script 型 UI 事件的從屬站端 HTML 頁面。 這些 Script 非常適合建立那些需要與使用者更詳細交談的 Script。
Script 寫出器透過一些表示為本端 JavaScript 變數的平台物件,取得工作台環境 的存取權。Script 也可使用 JavaScript 機能來建立 Java 物件及呼叫它們的方法 。

一旦建立含有 Script 的檔案後,便可透過喜好設定對話框向工作台登錄它( 視窗->喜好設定->Script)。 在喜好設定頁面展開這個項目,會顯示可 Script 的工作台延伸點清單。在喜好設定樹狀結構中選取延伸點,然後按喜好設定頁面中對應的新增按鈕 ,將 Script 新增到每一個延伸點。

第一次登錄每一個 Script 後必須重 新啟動工作台。 一旦登錄後,便可修改及立刻執行 Script,而不需要重新啟動工作台。

從 Script 的所有主控台輸出,以及執行 Script 時偵測到的任何錯誤都會寫入 Script 主控台中。您可以新增 Script 主控台檢視畫面到其他任何視景,或從 Scripting 視景固定執行您的 Script(依預設包括主控台檢視畫面)。

Script 的限制

新增到工作台的 Script 只能存取下列外掛程式中定義的 API 方法:

未來的版次將會取消這個限制,使任何外掛程式皆可被 Script 化。

撰寫批次 Script

「批次」Script 就是呼叫平台物件的 API 方法及操作結果來使用平台物件的 JavaScript 陳述式集成。呈現給 Script 寫出器的三個平台物件:
  1. 工具箱 - 實作 org.eclipse.scripting.IToolkit 的公用程式物件。它提供基本工作區資源操作、提示及載入持續 Script 狀態的合適 方法。
  2. 外掛程式 - org.eclipse.core.runtime.Plugin 的預設實例。 它提供外掛程式方法的存取權。所有使用者 Script 執行為平台 Scripting 支援所 管理的單一外掛程式部份。
  3. 平台 - 具有對應於 org.eclipse.core.runtime.Platform 的方法之便利物件。它提供一般平台功能的存取權。
方法 toolkit.print(String) 用來將輸出寫入 Script 主控台。

除了預定的區域變數之外,JavaScript 語言可讓您建立 Java 物件及使用它們的 公開 API。JavaScript 內容 Packages 可作為此用途。下列 片段使用 Packages 內容來取得安裝 URL 和誇示點陣圖物件。

 

var install = Packages.org.eclipse.core.boot.BootLoader.getInstallURL();
var splash = new Packages.java.net.URL(install,"splash.bmp");

撰寫使用者介面 Script

SWT 型使用者介面可透過平台 Scripting 支援建立。結果 Script 非常類似 從屬站端 HTML 頁面,但有一些異常狀況: Scripting 外掛程式提供 Scripting 編輯器。這個編輯器支援來源檢視和預 覽,顯示來源頁面執行時的展現方式。編輯器使用概要檢視畫面和內容檢視畫面,所以您應該在編輯 UI Script 時顯示這些檢視畫面。

UI Script 編輯器登錄為檔案類型 xhtml 的預設編輯器。

從範例中最容易瞭解 UI Script。有關特定技巧,請參閱 Scripting 範例。下列導覽圖說明 Script 中的可用元素,以及它們支援的屬性和事 件區塊。

主體

套表

UI 元素

佈置控制項

Scripting

一般而言,所有 UI 元素皆可指定 id 屬性。這會定義相同名稱的區域 Script 變數。此 Script 可透過這些區域變數來操作 UI 元素。可用的方法 通常是那些 SWT 小組件的方法。

在 UI 元素群組間插入換行 <br /> 來啟動新佈置列,可最有效地執 行簡單 UI 佈置。Script 展現支援執行大部份簡單案例中足夠的預設佈置。

使用表格來控制 UI 元素位置,可達成更複雜的佈置。此外,個別的 UI 元素可 利用 <fieldset> 元素來分組(有效的 HTML,但不常用於網頁設計)。

實際 Script 函數本體使用 <script> 元素定義。當對應 UI 元素 (僅在 html 頁面中)的 "onXXX" 屬性(例如 onloadonreset)內指定的呼叫結果產生,便會觸發這些函數。

以 UI Script 而言,toolkit 區域變數是 org.eclipse.scripting.IToolkitUI 介面的物件實例。它含有在呈現給批次 Script 的 toolkit 物件中不適用的 其他方法。

向工作台登錄 Script

一旦建立為工作台資源後,Script 便可使用工作台喜好設定對話框在適當的工作台 延伸點登錄。

Script 使用新增對話框來新增。此對話框提示下列資訊:

搭配使用 UI Scripting 與 Java

UI Scripting 機能支援 Java 作為它的 Scripting 語言,代替 JavaScript。 當 Java 作為 Scripting 語言時,您必須建立 org.eclipse.scripting.Renderer 的實例。 這個物件將用來展現 UI 且可與一或多個事件處理程式物件產生關聯,也是以 Java 撰寫。使用 render 的 addObject(String,Object) 方法來 新增事件處理程式。

JavaScript 事件模型甚至可在透過 Java 來 Scripting 時 使用。如先前指定各種 "onXXX" 子句。 在這個案例中,它們實作為登錄事件處理程式上方法的反射回呼,而非「行內的」 JavaScript 函數呼叫。

明確使用 Script 配接器

我們已瞭解工作台使用者如何新增及管理 Script。Script 也可由外掛程式 提供為延伸項目。作法是指定 Script 配接器代替實作類別作為延伸項目定義 中的 class 屬性。配接器規格加入了要執行的實際 Script 名稱。 例如,下列 Scripting 範例 plugin.xml 中的標記提供動作集資料並 指定具有 Script 名稱的 ScriptAdapterWorkbenchActionclass。相關標記以粗體顯示。


<extension point = "org.eclipse.ui.actionSets">
    <actionSet 
        id="scriptActionSet" 
        label="%S_Script_Examples"
        visible="true">
        ...
        <action id = "scriptaction1"
            menubarPath = "window/org_eclipse_scripting_examples/slot1"
            toolbarPath = "%S_Script_Examples"
            label = "%S_Scripted_Action_Example"
            tooltip = "%S_Perform_Scripted_JavaScript_Action"
            icon = "icons/full/ctool16/script_scp.gif"
            class=
            "org.eclipse.scripting/org.eclipse.scripting.ScriptAdapterWorkbenchAction:file=platform:/plugin/org.eclipse.scripting.examples/excalibur.js language=javascript">
       
</action>
        ...

標準 Script 配接器可直接參照為任何外掛程式的 plugin.xml 規格部份。 您可以在 org.eclipse.scripting 套件中找到支援的配接器清單。

Scripting 範例顯示這些配接器的其他用法。Script 範例外掛程式利用預先定義的 配接器實作每一個 Script 延伸項目。其他詳細資料,請參閱 plugin.xml 檔。

參照

org.eclipse.scripting 的「API 規格」含有關於 Scripting 支援的其餘資訊。

Scripting 範例也提供說明和用法資訊。如需進一步資訊,請參閱 Scripting 範例