<< 目次を表示 >> ページ位置: Enterprise Architectの拡張 > 描画スクリプト > 描画スクリプトの作成 > 問い合わせコマンド |
要素が、指定したタグ付き値や属性をもっているかどうかを確認することのできる「問い合わせ」のコマンドは3種類あります。これらのコマンドはif文の中で利用されます。
コマンド |
説明 |
boolean HasTag (string tagname, [string tagvalue]) |
HasTagコマンドは、tagnameの名前のタグ付き値が存在する場合にtrueを返します。 2番目の引数が指定された場合には、タグ付き値が存在して引数と同じ値の場合にtrueを返します。 |
boolean HasProperty (string propertyname, [string propertyvalue]) |
HasPropertyコマンドは、propertynameの名前のプロパティが存在する場合にtrueを返します。2番目の引数が指定された場合には、プロパティが存在して引数と同じ値の場合にtrueを返します。2番目の引数には、カンマ区切りで複数の値を指定できます。 プロパティ名として利用可能な値については「要素のプロパティを表示する」をご覧ください。 |
boolean isComposite() |
isCompositeコマンドは、要素が子ダイアグラムを持つコンポジット要素かどうかを判定します。 |
HasPropertyと図ごとの表示設定
HasProperty() を利用して、独自要素について図ごとに表示形式を変えるような処理を実現できます。つまり、利用者が該当の要素を図に配置した後、その要素を右クリックして独自のメニュー項目を表示させ、そのメニュー項目から外見を変更できます。つまり、その要素の外見(表示形式)を複数定義し、利用者が切り替えるようにすることができる、ということです。
これを実現するためには、まずUMLプロファイルでステレオタイプ要素を作成します。そして、利用者が選択可能な項目について、ステレオタイプ «diagram property» を追加した属性をステレオタイプ要素に追加します。その属性名は、コンテキストメニューに表示される名称を指定します。また、別名として、その項目を選択時に設定される独自プロパティの名前を指定します。この独自プロパティの名前を、HasPropertyで利用して処理を分岐させます。この属性の初期値として「1」を設定した場合には、コンテキストメニューから選択された状態を同じ状態を初期状態とします。それ以外の場合は、初期値は設定しないで下さい。
そして、以下の例のように、描画スクリプト内で描画処理を行います。HasPropertyで選択されているかどうかを判断できます。
shape main
{
if (HasProperty("IsRed","1"))
{
SetFillColor(255,128,128);
}
if (HasProperty("IsTriangle","0"))
{
Polygon(50,50,3,50,0);
}
else
{
DrawNativeShape();
}
}
独自のステレオタイプ要素を定義した後は、以下の例のようにメタクラス要素と結びます。
定義内容をMDGテクノロジーとして作成し配布した後は、以下の画像のように、右クリックメニューから該当の項目を選択し、表示形式を変更できます。