JSUML(仮)
id:mopemopeさんに興味を持って頂けたようなので、今考えていることを思いつくままに書き出してみます。
作りたいツール
JSUML(仮称)
Webブラウザ上でクラス図が編集、保存、表示できるツール
できればWikiに組み込みたい
プロトタイプはこちら
http://www.nulab.co.jp/~agata/freedesign/index.html同種(?)のツールはこちら
ajaxio : http://jameslab.moveable.com/ajaxio/
JSGEN(仮称)
Webブラウザ上でER図が編集、保存、表示できて、その情報を元に、コードジェネレートが可能なツール(id:mopemopeさんより)
イメージはこれの編集出来る版
http://www.turbogears.org/preview/docs/toolbox/modeldesigner.html
逆算して、上記ツールを実現するために必要なものをざっくり洗い出してみます。
JSUML/JSGENで共通に必要なもの(必須)
1.グラフィックライブラリ
グラフィックを扱えるJavaScriptライブラリ
2.ドラッグ&ドロップライブラリ
ドラッグイベントをうまく扱えるライブラリ
- ドラッグして移動
- 選択状態
- 拡大縮小
- ドロップ時のターゲットとソース
3.GEFライブラリ
Eclipse GEFのようなフレームワーク・ライブラリ4.オブジェクトシリアライズ
JavaScriptのモデルをシリアライズできるライブラリ
JSUML/JSGENで共通に必要なもの(任意)
5.情報をDBなどに保存するための仕組み
- HTTPXMLRequestライブラリ
JSGENで共通に必要なもの
6.テンプレートライブラリ
JavaScriptのモデルからコードジェネレートするためのライブラリ(JSGENで必要)
(テンプレートエンジン?もしかするとJavaScriptでなくても良い?)
今考えている実現の方法
1.グラフィックライブラリ
wz_jsgraphics.jsを検討中。id:brazilさんがなんかおすすめいっていたけど失念。ioajaxも見てみる。
2.ドラッグ&ドロップライブラリ
スクラッチか?。プロトタイプはwz_dragdrop.jsで作成しています。wz_dragdrop.jsはちょっと古いライブラリで、今見るとAPIとかがあまり洗練されていないような気がします。Ricoとかも見てみましたが、ちょっと違う感じ。無理やり使うよりは、スクラッチのほうが融通が利きそうな気がしています。良いライブラリがあれば、できればそれを使いたいところなんです。
3.GEFライブラリ
スクラッチ。
4.オブジェクトシリアライズ
json.jsを利用。関連と元クラスの復元の部分のみ作成
5.情報をDBなどに保存するための仕組み
prototype.js。HTTPXMLRequestを使わなくても、ひとまずPOSTでも問題ないかも
6.テンプレートライブラリ
何か色々ありそうですが、調べていません。
その他、こんなライブラリあるよ、これ漏れてない?等々、ご意見いただければ嬉しいです。