結局自分で作っちゃった。

昨日探してたJavaScriptのメニューですが、Tapestryで使用するにはちゃんとモジュール化されてないと辛いんです。いついつスクリプトをロードしろとか制約が多かったりするのもキツイ。っていうわけで作ったれと思い、日曜の午後を丸々つぶし、朝の4時までうらーって作ってたらなんとなくできてきました。


JavaScript便利だな。ツリー状のデータは、こんな感じでかけるんですよ。

var MENU_ITEMS = {
  left:200, 
  top:100, 
  width:100, 
  height:20,
  bgcolor:"#DDDDDD",
  clss: null,
  items:[
    {caption:"ルート1",
      sub:[
        {caption:"いちのいち", url:"#sectionName"},
        {caption:"----------", url:""},
        {caption:"いちのに", url:"other.html"},
        {caption:"いちの3", url:"../other_folder/file.html"}
      ]
    },
    {caption:"ルート2",
      sub:[
        {caption:"にの1", url:"?parameter1=value1",
          sub:[
            {caption:"にの1のいち", url:"#sectionName"},
            {caption:"にの1のtwo", url:"#sectionName"},
            {caption:"にの1のthree", url:"#sectionName"},
            {caption:"にの1のfour", url:"#sectionName"}
          ]
        },
        {caption:"にの2", url:"some_script.php?parameter2=value2",
          sub:[
            {caption:"にの2の1", url:"#sectionName"},
            {caption:"にの2の2", url:"#sectionName"},
            {caption:"にの2の3", url:"#sectionName"},
            {caption:"にの2の4", url:"#sectionName"}
          ]
        }
      ]  
    }
  ]
};


特にクラスを用意する必要なし!データだけならいきなり上記のようにかけちゃいます。んでこれを用意したメニュークラスのコンストラクタに渡してあげるわけです。するってーとメニューを生成してくれるっていう寸法になっています。まあ、自分で作ったんで、きっちり依存関係も分かってるんで、安心して使えます。


でもこういうのを自分で作るのってダサいっすよね。きっとどこかにあると思えば尚更。ものを書かずにシステムを作るっていうのが僕の理想なので。


もうちょっとできたら公開しようかな。