描画スクリプトの作成

<< 目次を表示 >>

ページ位置:  Enterprise Architectの拡張 > 描画スクリプト >

描画スクリプトの作成

この章では、描画スクリプトの作成に必要な情報を紹介しています。描画スクリプトを作成する場合には、「はじめに」 および  「サンプルスクリプト」 のページも役立ちます。

 

要素や接続に対して、独自の外見を定義して適用するためには、描画スクリプトを利用して描画内容・大きさ・色などを定義する必要があります。描画スクリプト内では、複数の項目に分けて記述できます。例えば、要素の場合には以下のような内容を含めることができます。

 

 

接続の場合には、以下の内容を定義できます。

 

 

描画スクリプトは、既定の描画内容を差し替えあるいは上書きする形になります。

 

 

描画スクリプトの中では、C言語のスタイルのコメントを利用できます。

 

// C Style Single Line comment

/* Multi Line

comment supported */

 

描画スクリプト内では、大文字小文字は区別されません。

 

 

描画スクリプトの構成

項目

説明

要素の場合の描画スクリプトの構成例

shape main

{

  // draw the object

}

 

shape label

{

    // draw a floating text label

}

 

decoration <identifier>

{

     // draw a 16x16 decoration inside the object

}

 

<identifier> はアルファベットで指定する名前です。

接続の場合の描画スクリプトの構成例

shape main

{

     // draw the line

}

 

shape target

{

     // draw the shape at the target end

}

 

shape source

{

     // draw the shape at the source end

}

 

label <positionLabel>

{

     // define the text for the label

}

 

<positionLabel>は以下のいずれかになります。

  • lefttoplabel
  • leftbottomlabel
  • middletoplabel
  • middlebottomlabel
  • righttoplabel
  • rightbottomlabel

サブシェイプ

描画スクリプト内では、サブシェイプという形で、別のスクリプト群を定義し、呼び出せます。以下の内容はサブシェイプの定義の例です。

 

shape main

    {

         // Initialisation Attributes - these must be before drawing commands

         noshadow = "true";

         h_align = "center";

         //drawing commands (Methods)

         rectangle (0,0,100,100);

         println ("foo bar");

         // call the sub-shape

         addsubshape ("red", 20, 70);

         // definition of a sub-shape

         shape red

         {

              setfillcolor (200,50,100);

              rectangle (50,50,100,100);

         }

    }

    //definition of a label

    shape label

    {

         setOrigin ("SW",0,0);

         println ("Object: #NAME#");

    }

    //definition of a Decoration

    decoration triangle

    {

         // Draw a triangle for the decoration

         startpath ();

         moveto (0,30);

         lineto (50,100);

         lineto (100,0);

         endpath ();

         setfillcolor (153,204,255);

         fillandstrokepath ();

    }

 

 

上記の内容の描画結果は以下のようになります。

内容の順序

描画スクリプト内では、属性定義・コマンド呼び出し・サブシェイプの定義が含まれます。これらの順序については、属性定義・コマンド呼び出し・サブシェイプの定義の順番でなければなりません。

 

 

参照: