How to subclass an ATContentType in 7 Minutes(その3)
引き続き、ArgoUMLで指示どおりのクラス図を作成します。終わったら[File]-[Export XML...]メニューで、XMIファイルに落とします。
指示は次のような簡単なものです。
- ATDocumentクラス
- ATDocumentクラスを作成する。
- 作成したクラスに、<
>, < >の2つのステレオタイプを追加する。 - 作成したクラスに、次のタグ付き値("name"=>"value")を追加する。
- "import_from" => "Products.ATContentTypes.content.document"
- ZPTDocumentクラス
- ZPTDocumentクラスを作成し,ATDocumentの派生クラスとして、矢印で結ぶ。
- "text"属性を追加する。データ型は"ZPTField"
- ZPTDocumentクラス自体に、次のタグ付き値を追加する。
- "imports" => "from Products.TemplateFields import ZPTField"
- text属性に次のタグ付き値を追加する。
- "widget:type"=>"TextAreaWidget "
- "widget:label"=>"Page (ZPT)"
- ZPTDocumentクラス自体に、次のタグ付き値を追加する。
- "default_view" => "document_view"
- "immediate_view" => "document_view"
注意点を二、三挙げておきます。特にTaggedValueの作り方や、Stereotypeの作り方は、慣れないと戸惑うのではないかと思います。
- 全体のモデル名(デフォルト:"untitiledModel")が、プロダクト名になるので、変更しといた方がいいです。
- Stereotypeの作り方:
- Class Diagram で、対象のクラスを選びます
- 選択されたクラスのPropertiesタブが表示されます。
- Propertiesタブで、"NewStereotype"ボタンをクリックします。
- 作成されたStereotypeが選択され、そのPropertiesタブが表示されます。
- 表示されたStereotypeのPropertiesタブで、nameフィールドに値("stub","archetype"とか)を入力します。
- Class Diagram で、対象のクラスを選びます
- TaggedValueの作り方:
- どれでも構わないので、何かクラスを選んでTagged Valuesタブを表示させます。
- 表示されたTaggedValueタブの"New Tag Definition"ボタン("TD"ボタン)をクリックします。
- 作成されたTaggedValue(Unnamed Tag Definition)が選択されますが、Tagged Valuesタブが表示されたままです。
- Propertiesタブを選択して、選択されているTagのnameフィールドに名称を入力します。ここまでで、タグの定義が終わりです。
- あらためてTaggedValueをつけるクラスを選択し、TaggedValuesタブを表示します。
- TaggedValuesタブで、Tagを選択し、適切なValueを設定します。