2010-12-13-01-SVG と UML の話 - 14 - project-enigma

2010-12-13-01-SVG と UML の話 - 14

>> Site top >> weblog >> 月別アーカイブ >> 2010年12月のlog >> 2010-12-13-01-SVG と UML の話 - 14

最終更新日付:2013/12/31 07:35:44


SVG と UML の話 - 14

2010 年 12 月 13 日

今回は非コネクタ要素の共通属性について。

コネクタでない要素の共通属性には、大体以下のものがある。すでに説明した属性もあるが、ひとまず順番に。

position については以前詳しく書いたからいいだろう。まだ書いていないとすれば、式内で @svgwidth および @svgheight を使うことにより、図面の幅と高さを参照できるようになっている。しかし、これはいかにも取ってつけたような仕様なので、除去しようかと検討中だ。そもそも @svgwidth と @svgheight で参照できる値は svgwidth および svgheight の両属性で設定する値なのだから、$define で定義して参照すれば十分代替できる。

次。link はダイアグラム要素をハイパーリンクにするためのものだ。以下のようにリンク先を指定して使用する。

class
name:Foo
position:100 100
link:Bar.svg

これで、生成されたsvgファイル上でクラスFooをクリックすればリンク先のページ Bar.svg にジャンプする‥‥‥と、ここで問題だ。たとえば、svg ファイルは圧縮して svgz 形式で使用される場合があるし、Wiki ページの中に埋め込んで使用されるかもしれない。こういった使い方が変わると、link属性で指定すべきページ名も変わる。しかし、その度にファイル中に散らばった link 属性を書き換えるのは大変だ。そもそも、svgファイルができた後でどう使われるかによってデータファイル内の記述が変化するという事態はできるだけ避けたいものだ。

そのために、ツールの実行時オプションとして -link がある。これは link 属性で指定された名前を編集する方法を指定するもので、単純な svg ファイルへのリンクであればオプションを以下のように指定する。

-link:%s.svg

link属性で指定した名前は、%s の部分にはめ込まれる。実装が容易に思い浮かぶような単純愚直な実装だ。それはそれとして、以下のようにすれば先程の例と同等になる。

class
name:Foo
position:100 100
link:Bar

自分で使う時は FreeStyleWiki のページに埋め込んで使うことが多いが、その場合は以下のようにオプションを変更する。これにより、wiki ページへのリンクが生成されることになる。

-link:index.cgi?page=%s

link 属性と -link オプションはそれなりに便利だが、例外を設けたい場合もある。外部のサイトへの URL をリンク先に指定したい場合などがそうだ。その場合は exlink 属性を使う。これは -link オプションの影響を受けない。

text
position:100 100
description:
go to search
exlink:http://www.google.co.jp

‥‥‥と、長くなったのでこのへんで今回は終わりにしよう。続きは次回。

 

コメント

このページにコメントする

 

このページのタグ

Page tag : 開発

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.