* jsTreeの研究 [#u23c917a]
 #anno1(2011-01-18)
 
 ** コンテキストメニューハック [#m07b7e5c]
    2866                 was_sep = false;
    2867                 str += "<li class='" + (val._class || "") + (val._disabled ? " jstree-contextmenu-disabled " : "") + "'><ins ";
    2868                 if(val.icon && val.icon.indexOf("/") === -1) { str += " class='" + val.icon + "' "; }
 ってことなので、_disabledが設定されているとjstree-contextmenu-disabledがセットされて、そのメニューが使用できなくなる。~
 で、これは
    2846             $(document).triggerHandler("context_show.vakata");
 によりdocumentにcontext_show.vakataが投げられるので、
  $(document).bind("context_show.vakata", function(e) {
      var menuItem = $("#vakata-contextmenu a[rel=reset_name]").parent("li");
      var node = $("#treeview").jstree("get_selected");
      if(node.attr("id") == "Project_1"){ menuItem.addClass("jstree-contextmenu-disabled"); }
      else{ menuItem.removeClass("jstree-contextmenu-disabled"); }
  }
 こんな感じでコンテキストメニューが表示されてから無効化してやればよい。~
 かなりハックな感じ・・・
 
 ちなみに設定は以下のところにあった。~
 ただし、初回は初期設定からコピーするので効力はない。
  $.vakata.context.data._get_settings().contextmenu.items.rename._disabled = true;
 
 ** set_focus時に選択されているノードを取得 [#bda72790]
  $("#treeview").bind("set_focus.jstree", function(e, obj) {
      console.debug($("#treeview .jstree-hovered").parent("li"));
  });
 
 ** 編集時に編集文字列を自動的に変更 [#v5b73d23]
  $("#treeview").bind("set_text.jstree", function(e, obj) {
      $(obj.args[0]).children("input").val("POO");
  });
 
 ** renameはこんな感じ [#o711b617]
  $("#treeview").bind("rename.jstree", function(e, obj){
      var result = obj.rslt;
      var node = obj.rslt.obj;
      var rpcFunc;
      if(Leaf.nodeType(node, "MeasurementLog")) { rpcFunc = "mlog.rename"; }
      else{ rpcFunc = "project.rename"; }
      if(result.old_name != result.new_name){
          GLOBAL.rpc.call(rpcFunc, [result.obj.attr("id"), result.new_name]);
      }
  });