基本的なカスタマイズ > ユーザーインタフェースのカスタマイズ > 操作の追加と UI への組み込み > Windchill クライアントアーキテクチャの操作フレームワーク > 新規操作モデルの定義
  
新規操作モデルの定義
操作モデルは、codebase/config/actions/actionsmodels.dtd による構造に従った XML ファイルで定義する必要があります。
ここでは、フォルダブラウザのツールバーで使用する操作モデル定義の例を簡単に示します。
<!-- default toolbar for the Folder page -->
<model name="folder_list_toolbar">
<action name="list_cut" type="object"/>
<action name="list_copy" type="object"/>
<action name="fbpaste" type="object"/>
<action name="pasteAsCopy" type="saveas"/>
<action name="list_paste_sharing" type="folder"/>
<action name="list_delete" type="object"/>
<action name="CONTAINERMOVE" type="pdmObject"/>
<action name="PAGERELOADINGMULTICHECKOUT" type="folder"/>
<action name="WFADDTOWORKSPACE" type="folder"/>
<action name="separator" type="separator"/>
<action name="create" type="folder"/>
<action name="create" type="document"/>
<action name="createMulti" type="document"/>
<action name="createPartWizard" type="part"/>
<action name="createMultiPart" type="part"/>
<action name="add_link" type="bookmark"/>
<action name="create" type="problemReport"/>
<action name="create" type="changeRequest"/>
<action name="create" type="changeNotice"/>
<action name="separator" type="separator"/>
</model>
objecttype の名前は、ネームスペースを作成する方法であるとともに、特定のオブジェクトまたは機能領域に関連した操作のパッケージングでもあります。上記の例では、"document" という名前によって、wt.doc.WTDocument に適用される操作用の一意のネームスペースが作成されます。
別の操作モデルを参照する操作モデルを作成することもできます。フォルダブラウザの「操作」メニューには、操作の「新規作成」グループ用のサブモデルが含まれています。たとえば、操作の「新規作成」グループの操作モデルは次のように定義できます。
<model name="folder_file_new" resourceBundle="com.ptc.core.ui.tableRB">
<action name="create" type="document" resourceBundle="com.ptc.core.ui.tableRB" />
<!-- More actions here --!>
</model>
次に、「操作」メニューの操作モデルにサブモデル "folder_file_new" を追加します。
<model name="folder_file">
<submodel name="folder_file_new"/>
<action name="create" type="document"/>
<!-- More actions here --!>
</model>
これがユーザーインタフェースでどのように表示されるかは、次の図を参照してください。
モデル属性
これらのパラメータの詳細は、codebase/config/actions/actionsmodels.dtd にも記載されています。
パラメータ
デフォルト値
有効な値
必須
説明
name
はい
操作モデルを参照する際に使用される名前。
menufor
任意の有効なクラス名。
いいえ
デフォルトでどの操作をハイライトするのかを指定します。モデルが第 3 レベルナビゲーションメニューとして使用される場合にのみ適用できます。
defaultActionName
モデル内の最初の操作がデフォルトで使用されます。
モデル内の 1 つの操作に使用する操作名。
デフォルトでどの操作をハイライトするのかを指定します。モデルが第 3 レベルナビゲーションメニューとして使用される場合にのみ適用できます。
defaultActionType
モデル内の最初の操作がデフォルトで使用されます。
モデル内の 1 つの操作に使用するオブジェクトタイプ。
resourceBundle
ローカライズされる操作モデルのプロパティに使用するリソースバンドルのクラス名。
操作属性
これらのパラメータの詳細は、codebase/config/actions/actionsmodels.dtd にも記載されています。
パラメータ
デフォルト値
有効な値
必須
説明
name
actions.xml ファイルで定義されている任意の action の名前
はい
actions.xml ファイルで定義されている操作の名前です。
type
actions.xml ファイルで定義されている任意の objecttype の名前
はい
actions.xml ファイルで定義されているオブジェクトタイプの名前です。
shortcut
true
false
いいえ
操作をショートカットアイコンとしてツールバーに表示するかどうかを指定します。
操作モデルの名前に適用されるネーミング規則は、英数字の任意の組み合わせとなります。ほとんどの操作モデル名には、操作モデルが使用されるコンポーネントの名前が含まれています。操作モデルには会社固有のプレフィックスを付けて、製品標準のほかの操作モデルと競合しないようにする必要があります。
* 
操作サービスは、システム内のどこかのツールバーで使われていないアイコンは操作メニュー (またはメニューバーのメニュー) に表示しないように設計されています。StandardNmActionService はサーバー開始時に既知のすべてのツールバーアイコンのリストを作成して保持します。
StandardNmActionService はツールバーかどうかをモデルの名前を元に判断しています。したがって、ツールバーとして使用されるモデルの名前には "toolbar" が含まれている必要があります。
ツールバーモデルの命名規則に従っていない場合、その操作サービスには設計どおりのアイコンが表示されません。ただし、命名規則に従っていない場合でも、機能は破綻しません。
"
属性 shortcut を指定して、一般的に使用されるショートカット操作 (推奨最大個数は 5) をツールバーのショートカット領域に表示するように設定できます。フォルダブラウザテーブルの設定例を次に示します。
<model name="folder_list_toolbar">
………………………………………..
<action name="CONTAINERMOVE"
type="pdmObject" shortcut = "true"/>
<action name="PAGERELOADINGMULTICHECKOUT"
type="folder" shortcut = "true"/>
<action name="WFADDTOWORKSPACE"
type="folder" shortcut = "true"/>
…………………………….
<action name="create"
type="folder" shortcut = "true"/>
<action name="create"
type="document" shortcut = "true"/>
…………………………………
</model>
ある操作は、その特定のモデルのコンテキスト内だけでショートカット操作になります。メニュー操作のアイコンは、その操作がツールバーにも表示される場合に表示されます。
サブモデル属性
これらのパラメータの詳細は、codebase/config/actions/actionsmodels.dtd にも記載されています。
パラメータ
デフォルト値
有効な値
必須
説明
name
actionmodels.xml ファイルで定義されている任意の操作モデルの名前
はい
actionmodels.xml ファイルで定義されている操作モデルの名前です。サブモデルを含む操作モデルが使用される場所の例としては、「フォルダコンテンツ」テーブルの「操作」 > 「新規」メニューがあります。
サンプルコード
サブタイプを設定する操作モデルのサンプルコードを次に示します。
<!-- Copied from ChangeManagement-actionModels.xml -->
<!-- Originally copied from menu for wt.change2.WTChangeRequest2 -->
<model name="sample change request actions" menufor="WCTYPE|
wt.change2.WTChangeRequest2|org.default.www.SampleChangeRequest">
<action name="view" type="object"/>
<action name="SETLIFECYCLESTATE" type="pdmObject"/>
<action name="createSubscription" type="subscription"/>
<action name="separator" type="separator"/>
<action name="reviseChangeItems" type="change"/>
<action name="editCapabilityPackage" type="capabilityPackage"/>
<action name="create" type="approach" />
<action name="create" type="capabilityImplementationProject" />
<action name="separator" type="separator"/>
<action name="sandboxAddToProject" type="object"/>
<action name="SBAddToPrj" type="sandbox"/>
<action name="removeShare" type="object"/>
<action name="separator" type="separator"/>
<action name="ManageSecurity" type="accessPermission"/>
<action name="renameObjectWizard" type="object"/>
<action name="delete" type="object"/>
<action name="separator" type="separator"/>
<action name="separator" type="separator"/>
<action name="discuss" type="forum"/>
<action name="copy" type="object"/>
</model>
ここで、org.default.www.SampleChangeRequest は「タイプおよび属性の管理」ユーティリティで入力したサブタイプの名前です。