めも、メモる

技術的メモ. VS Code Draw.io DOA

2021/5/8 開発日記

グループ化がうまくできない。図形ごとに設定できるstyleをしらみつぶしに見ていく。

最初はソースコードを見ていたのだが、画面上の設定を見たほうが良いことに今更ながら気づく。

containerという設定がある。autosizeもあって、このあたりをうまく使うと既存機能のみでそれなりにできそうである。

この辺、要調査。

2021/5/4 開発日記

日が空いてしまうと前回いつだったか忘れてしまうのだが、このブログの更新日をみれば前回いつだったかがわかる仕組みになっていることに気づく。

さて。draw.ioには選択状態からコネクションを伸ばして、エンティティ+関連を同時に書けるのだが、親子でグルーピングしているとき、子供の図形だけがコピーされてしまう。エンティティ名と、項目(主キーとその他)を別のmxCellにしたのだが、これだと、項目だけがコピーされてしまいこの機能が使えない。

前のように1つのmxCellにして文字サイズを変更すると一律変更されることを許容するか、グループにするか。

既定のERのシェイプを使うと全体がコピーされることもある。もう少し原理を調べてみる。

2021/4/25

前回の内容を開始前に書くという方式だと、1週間以上空いた後に思い出すのに苦労する。

Accessで書く機会があってというか、そっちに時間がとられているのだが、画面ファーストで新しいエンティティが出てきたとき、テーブルを追加するときに、まずER図で書きながら追加できるようにしたいと思い、そこでようやくツールにひさしぶりに戻ってきた。

そう、mxCellを2つに分割したのと、drawio本体でフォントを大きくしたときに対応できるようにしたいのだ。

で、今、まだそれが終わってなくて壊れて動かない。まず、そこを直すところから。

開発日記 2021/4/24

コネクションがエンティティにくっついている位置の指定方法だが、よく見ていくと、mxCellのstyleの中で、entryX, entryY,exitX,exitYが指定されている。styleはCSSと同じ書き方になっている。ソースコードを読んでいくと、読み書きするinterfaceがあって、これでようやくできた。

N本のコネクションを均等に割り振るアルゴリズムは色々考えてしまったが、1/N+1、2/N+1, ... N-1/N+1 という簡単なロジックで開発することに気づく。

エンティティとコネクションの順番が必ずしも一致していない状況で整理することもあるはずなので、次はここを作ることにする。

開発日記 2021/4/23

コネクションは、Edgeにgeomtry設定されているから、そこで両サイドの座標が設定されていると思いきや、Chrome開発モードで実データを確認すると何も指定されていない・・・状況によって指定されることがあるようだ。

drawioの前にvisioでアドインを色々書いていて、コネクションの座標設定をしても反応しないという状況に直面していて、APIはすべて公開されているわけでなく、内部構造もあまりきれそうでないことからdrawioに移ってきたのだがまさかという気持ちになる。

データを見るのでなくて、プロパティみてそれと思しき情報を与えて結果みる、ということが必要そうだ。

開発日記 2021/4/21

編集ウィンドウが表示される位置をクリックしたエンティティのすぐ横に変更。

右クリックで出てくるメニューに項目を追加。

次は、コネクションの位置を自動で調整する機能を作ろう。

開発日記 2021/4/18

vertexにマウスオーバーしたとき、矢印が出てきてそこでCTL+Clickすると、vertexがコピーされるのだが、その時、データが空白でコピーできるようにしたいと思って調査。

ソースコードを旅することになる。マウスオーバーのときに表示されるメッセージから検索。ただ、コピーが前提となっていて、深いところで呼び出しているので、これは無理とあきらめる。

ふむ。なかなか進まないが。次はもう少しモデリングの写経をしながら、機能の調整をやってみる。そろそろ、コネクションの自動調整かな。