//ツリー
treeEx=function(){
var BorderLayout=Ext.BorderLayout;
var ContentPanel=Ext.ContentPanel;
var TreePanel=Ext.tree.TreePanel;
var TreeNode=Ext.tree.TreeNode
var tree;//ツリー
return {
//初期化
init:function(){
//レイアウトの生成
var layout=new BorderLayout(document.body, {
//西領域
west: {
autoScroll :true,
collapsible:true,
initialSize:200,
split :true,
titlebar :true
},
//中央領域
center: {
autoScroll :true,
split :true,
titlebar :true
}
});
//ツリーの生成
treeEx.makeTree();
//レイアウトの更新開始
layout.beginUpdate();
//西パネル
layout.add('west', new ContentPanel('pnlWest',{
title:'フォルダ'
}));
//中央パネル
layout.add('center',new ContentPanel('pnlCenter',{
title:'コンテンツ'
}));
//レイアウトの更新完了
layout.endUpdate();
},
//ツリーの生成
makeTree:function(){
//ツリーの生成
tree=new TreePanel('pnlWest',{
animate :true,
containerScroll:true,
enableDD :true
});
//ルートの生成
var root=treeEx.makeTreeNode('root','ルート',false);
tree.setRootNode(root);
//クリックイベントの処理
tree.on('click',function(node,evt) {
if (node.data==null) return;
var pnlCenter=Ext.get('pnlCenter');
pnlCenter.dom.innerHTML=node.data;
});
//フォルダ1
var folder1=treeEx.makeTreeNode('folder1','フォルダ1',false);
root.appendChild(folder1);
//フォルダ2
var folder2=treeEx.makeTreeNode('folder2','フォルダ2',false);
root.appendChild(folder2);
//フォルダ3
var folder3=treeEx.makeTreeNode('folder3','フォルダ3',false);
root.appendChild(folder3);
//テキスト1
var text1=treeEx.makeTreeNode('text1','テキスト1',true,'テキスト1の本文です。');
folder1.appendChild(text1);
//テキスト2
var text2=treeEx.makeTreeNode('text2','テキスト2',true,'テキスト2の本文です。');
folder1.appendChild(text2);
//テキスト3
var text3=treeEx.makeTreeNode('text3','テキスト3',true,'テキスト3の本文です。');
folder1.appendChild(text3);
//ツリーの描画
tree.render();
//ツリーノードを開く
root.expand();
},
//ツリーノードの生成
makeTreeNode:function(id,text,leaf,data){
var icon
var node=new TreeNode({
draggable:leaf, //ドラッグ可
id :id, //ID
text :text, //テキスト
leaf :leaf, //リーフ
icon :(leaf)?'':'resources/images/default/tree/folder.gif'
});
node.data=data;
return node;
}
};
}();
Ext.onReady(treeEx.init,treeEx,true);
|