「使用者介面」部分
物件的使用者介面是在規格檔案中物件定義內的 UserInterface 元素部分進行宣告的。在同一規格檔案中,可以有一個或多個 UserInterface 元素,這取決於檔案中所定義物件(例如,模型建置器節點、模型輸出物件和模型套用者節點)的數量。
在每個「使用者介面」部分中,您都可以定義以下內容:
- 在畫布或選用區中顯示的圖示
- 對話框或輸出視窗中顯示的控制項(自訂功能表和工具列項目)
- 定義內容控制項集的標籤(針對於對話框或輸出視窗)
注意:在下面的元素定義(通常由標題格式ID)中,除非指示為「(必要)」,否則元素屬性和子元素均為選用項。 有關所有元素的完整語法資訊,請參閱CLEF 元素參照及後續章節。
對於每一個使用者介面,可以指定要執行的處理操作。您可以通過動作處理程式或頁框類別屬性執行此項動作,這兩種方法都可以選擇。如果動作處理程式或頁框類別屬性都未作指定,將在檔案的其他位置指定要執行的處理動作。
格式
UserInterface 元素的基本格式為:
<UserInterface>
<Icons>
<Icon ... />
...
</Icons>
<Controls>
<Menu.
.. />
<MenuItem.
.. />
...
<ToolbarItem.
.. />
...
</Controls>
<Tabs>
<Tab 鍵。.. />
...
</Tabs>
</UserInterface>
延伸物件 UI 委派與節點對話框或者模型/文件輸出視窗相關聯,並使延伸能夠處理對該對話框呼叫的自訂動作。UI
委派指定了延伸提供的 Java 類別,該 Java 類別與 IBM® SPSS® Modeler 視窗同時建立,並且是 ExtensionObjectUIDelegate 類別的實作。請參閱用戶端 API 類別主題,以取得更多資訊。
除第一行以外,UI 委派的格式與基本格式相同:
<UserInterface uiDelegate="Java_class" >
...
</UserInterface>
其中 uiDelegate 是 UI 委派 Java 類別的名稱。
請注意,延伸不應假定 UI 可呼叫。例如,延伸可以在「遠端控制」(無 UI)環境中執行,例如以批次模式執行或者在應用程式伺服器中執行。
當您將自訂動作新增至標準 IBM SPSS Modeler 視窗時可使用動作處理程式。這與延伸物件 UI
委派類似,盡管不存在延伸節點或輸出視窗時(例如定義可以從 IBM SPSS Modeler
主視窗中直接呼叫的新工具時)還可以使用動作處理程式。動作處理程式可以指定 Java 類別,這些 Java 類別將在使用者選擇節點對話框、模型輸出視窗或文件輸出視窗中的自訂功能表選項或工具列按鈕時被呼叫。它可以實作 ExtensionObjectFrame 類別或 ActionHandler 類別。無論在何種情況下,都將自動包含標準視窗元件,如標準功能表、標籤以及工具列按鈕。請參閱用戶端 API 類別主題,以取得更多資訊。
動作處理程式的格式同樣與基本格式相同:
<UserInterface actionHandler="Java_class" >
...
</UserInterface>
其中 actionHandler 是動作處理程式 Java 類別的名稱。
建議的做法是,在延伸新增可以直接從 IBM SPSS Modeler 主視窗中呼叫的工具時使用動作處理程式,並將延伸物件 UI 委派用於與延伸所定義的節點和輸出相關聯的視窗,這是因為 UI 委派提供了對底層節點或輸出物件的更簡易存取。延伸不應在同一個
UserInterface 元素中同時定義 uiDelegate 和
actionHandler。
頁框類別可用於模型輸出或文件輸出物件,其中延伸將提供其自身的視窗而無需自訂標準 IBM SPSS Modeler 視窗。頁框類別是一種可完全指定整個視窗及其處理的 Java 類別。不會自動包含標準視窗元件 - 類別必須逐個指定這些元件。頁框類別只能用於模型輸出或文件輸出物件,而不能用於節點(其經常使用 IBM SPSS Modeler 對話框)。請參閱自訂輸出視窗主題,以取得更多資訊。
頁框類別的格式比較簡單:
<UserInterface frameClass="Java_class" />
其中 frameClass 是模型輸出或文件輸出物件的頁框類別名稱。任何圖示、控制項和標籤都由頁框類別自身指定,因此不以此格式使用那些元素。
UserInterface 元素的子元素將在隨後的章節中進行介紹。
範例
第一個範例顯示定義了 UI 委派的模型建置器節點的使用者介面:
<UserInterface uiDelegate="com.spss.myextension.MyNodeUIDelegate">
<Icons>
<Icon type="standardNode" imagePath="images/lg_discriminant.gif" />
<Icon type="smallNode" imagePath="images/sm_discriminant.gif" />
</Icons>
<Tabs defaultTab="1">
...
</Tabs>
</UserInterface>
對應的模型輸出物件部分為:
<UserInterface>
<Icons>
<Icon type="standardWindow" imagePath="images/browser_discriminant.gif" />
</Icons>
<Tabs>
<Tab label="Advanced" labelKey="advancedTab.LABEL"
helpLink="discriminant_output_advancedtab.htm">
<ExtensionObjectPanel id="DiscriminantPanel"
panelClass="com.spss.clef.discriminant.DiscriminantPanel"/>
</Tab>
</Tabs>
</UserInterface>
模型套用者節點的「使用者介面」部分如下所示:
<UserInterface>
<Icons>
<Icon type="standardNode" imagePath="images/lg_gm_discriminant.gif" />
<Icon type="smallNode" imagePath="images/sm_gm_discriminant.gif" />
</Icons>
<Tabs>
<Tab label="Advanced" labelKey="advancedTab.LABEL"
helpLink="discriminant_output_advancedtab.htm">
<ExtensionObjectPanel id="DiscriminantPanel"
panelClass="com.spss.clef.discriminant.DiscriminantPanel"/>
</Tab>
</Tabs>
</UserInterface>