How to subclass an ATContentType in 7 Minutes(その3)

引き続き、ArgoUMLで指示どおりのクラス図を作成します。終わったら[File]-[Export XML...]メニューで、XMIファイルに落とします。

指示は次のような簡単なものです。

  1. ATDocumentクラス
    1. ATDocumentクラスを作成する。
    2. 作成したクラスに、<>, <>の2つのステレオタイプを追加する。
    3. 作成したクラスに、次のタグ付き値("name"=>"value")を追加する。
      1. "import_from" => "Products.ATContentTypes.content.document"
  2. ZPTDocumentクラス
    1. ZPTDocumentクラスを作成し,ATDocumentの派生クラスとして、矢印で結ぶ。
    2. "text"属性を追加する。データ型は"ZPTField"
    3. ZPTDocumentクラス自体に、次のタグ付き値を追加する。
      1. "imports" => "from Products.TemplateFields import ZPTField"
    4. text属性に次のタグ付き値を追加する。
      1. "widget:type"=>"TextAreaWidget "
      2. "widget:label"=>"Page (ZPT)"
    5. ZPTDocumentクラス自体に、次のタグ付き値を追加する。
      1. "default_view" => "document_view"
      2. "immediate_view" => "document_view"


注意点を二、三挙げておきます。特にTaggedValueの作り方や、Stereotypeの作り方は、慣れないと戸惑うのではないかと思います。

  • 全体のモデル名(デフォルト:"untitiledModel")が、プロダクト名になるので、変更しといた方がいいです。
  • Stereotypeの作り方:
    • Class Diagram で、対象のクラスを選びます
      • 選択されたクラスのPropertiesタブが表示されます。
    • Propertiesタブで、"NewStereotype"ボタンをクリックします。
      • 作成されたStereotypeが選択され、そのPropertiesタブが表示されます。
    • 表示されたStereotypeのPropertiesタブで、nameフィールドに値("stub","archetype"とか)を入力します。
  • TaggedValueの作り方:
    • どれでも構わないので、何かクラスを選んでTagged Valuesタブを表示させます。
    • 表示されたTaggedValueタブの"New Tag Definition"ボタン("TD"ボタン)をクリックします。
      • 作成されたTaggedValue(Unnamed Tag Definition)が選択されますが、Tagged Valuesタブが表示されたままです。
    • Propertiesタブを選択して、選択されているTagのnameフィールドに名称を入力します。ここまでで、タグの定義が終わりです。
    • あらためてTaggedValueをつけるクラスを選択し、TaggedValuesタブを表示します。
    • TaggedValuesタブで、Tagを選択し、適切なValueを設定します。