JS TREE资料讲解

treeHanlder //程序处理的一些公共方法
treeConfig //系统使用变量
1。TreeItem
方法:
add 添加子节点
remove 删除节点本身
setCaption修改节点标题
unselect:不选择单前节点
select:选择当前节点
_root:取得顶级节点
toggle:切换节点状态
expand:展开节点
collapse:收缩节点
collapseAll:全部收缩
collapseChildren:收缩当前节点的全部子节点
expandAll:展开所有子节点
expandChildRen:展开当前节点的子节点
getFirst:取得第一个子节点
getLast:取得当前节点递延的最后一个节点
getPreviousSibling:取得前一个节点
getNextSibling:取得后一个节点
属性
Text:节点文本
Action:节点行为
target:联接框架
OpenImage:节点图标
parent:上级节点
Nodes:子节点数组
id:节点id
_last:是否是父级节点的最后一个节点
rendered:HTML是否已经生成

事件
onSelected(oNode):选中节点
onUnSelected(oNode):不选中节点
onExpand(oNode):展开节点
onCollapse(oNode):收缩节点
onDrag(fromNode,toNode):拖动节点

 

rootIcon:顶级接点图标
openRootIcon:顶级节点展开时候的图标
folderIcon:有子节点的节点图标
openFolderIcon:有子节点节点展开时候的图标
fileIcon:末节点图标
iIcon:I型线
lIcon:L型线
lMinusIcon:L型收缩时候图标
lPlusIcon:L型展开时图标
tIcon:T型线
tMinusIcon:T型收缩图标
tPlusIcon:T型展开图标
blankIcon:空图标

defaultText:创建TreeItem时默认文字
allowDrag:Tree节点是否支持拖动(是否触发onDrag事件),默认不触发

css_ItemText:正常节点的样式
css_ItemTextHover:鼠标移入时节点样式
css_ItemTextSelected:节点选中时候的样式
css_ItemTextSelectedNoFocus:节点选中但是焦点不再时候的样式

css_ItemContainer:下级节点容器样式
css_ItemTextContainer:节点所在行容器的样式
注:建议不要修改这两个
css_ItemCheckBox:在TreeCheckItem里头复选框的样式
css_ItemDragTooltip:拖动的提示样式
css_ItemDragingOver:节点拖动的时候经过的节点显示的样式

变量:
treeHandler
说明:
包含一些处理方法处理的实现函数,主要是完成dom 到JavaScript Object的映射,本来打算写一个singleton,不过想想还是使用变
量简单
详细参数:
idCount:递增,记录节点数
idPrefix:HTML中id命名的前缀
getId:获取节点ID(用于编程控制的)
toggle:切换node的状态(展开或者收缩)
hover:处理鼠标移动到节点
restore:处理还原节点状态
select:处理选择节点
focus:处理节点或者焦点
keycode:处理键盘事件
mousedown:处理鼠标按下
mousemove:处理鼠标移动
mouseup:处理释放鼠标
contextmenu:处理节点右键
blur:处理节点失去焦点
all:存储所有创建的节点
selected:记录选择的节点
注:作为二次开发人员,完全可以不关心treeHanlder的内容,这里的说明只是为了帮助更好的理解我的处理模型

//2.TreeItem
///
说明:
这个是最重要的实现类,也是其他类继承实现的基础,里头提供的一些方法是内部调用的,在这里我只是提供对于二次开发人员经常
需要使用到的一些方法和事件,有兴趣的可以通读代码之后自己研究,或者写信和我一起探讨
详细介绍
方法
toString():覆盖object的默认方法,同时产生需要的html代码
add 添加子节点
参数oItem为TreeItem的事例或者继承类的实例
remove 删除节点本身
setCaption修改节点标题
rerender:重新产生HTML,对于开发人员而言,不要去调用,如果是扩展接口,必要的情况下可以调用
unselect:不选择单前节点
select:选择当前节点
blur:让其失去焦点
_root:取得顶级节点
toggle:切换节点状态
expand:展开节点
collapse:收缩节点
collapseAll:全部收缩
collapseChildren:收缩当前节点的全部子节点
expandAll:展开所有子节点
expandChildRen:展开当前节点的子节点
getFirst:取得第一个子节点
getLast:取得当前节点递延的最后一个节点
getPreviousSibling:取得前一个节点
getNextSibling:取得后一个节点
属性
Text:节点文本
Action:节点行为
target:联接框架
OpenImage:节点图标
parent:上级节点
Nodes:子节点数组
id:节点id
_last:是否是父级节点的最后一个节点
rendered:HTML是否已经生成
//
//3.TreeObject
/
说明;
Tree的主节点对象,创建一个tree,必须从这个对象开始创建
详细说明:
继承了TreeItem的所有方法

扩展方法如下:
write:输出html,这个是每个tree初始化必要的调用
selected:获取tree被选中的节点
事件
onSelected(oNode):选中节点
onUnSelected(oNode):不选中节点
onExpand(oNode):展开节点
onCollapse(oNode):收缩节点
onDrag(fromNode,toNode):拖动节点
这里的oNode都是JavaScript的TreeItem或者继承的实例
///
//4。TreeCheckItem
///
说明:
带有复选框的节点实现
详细说明:
继承所有TreeItem的方法
扩展方法
toString()这个方法重新写了,如果有兴趣的,可以调用看看具体的html
check:可以切换选择状态,true代码选中,false表示非选中
如果实现了TreeCheckItem,这个时候通过你的obj._root()得到顶级节点之后,可以调用etSelectedNodes,这样可以得到一个被选中
的TreeCheckItem的数组
注:这里我还没有提供oncheck这个事件,日后会考虑加入,另外对于treeItem还没有去考虑不是全部选中子节点的界面表现,就是说只是实现
了两个状态,应该有3个状态的

//5。TreeXLoadItem
///
说明:
通过xml源提供异步加载数据的能力
详细说明:
没有提供特殊的方法,就是创建的时候参数不同
注:
我还没有做到很好的和TreeCheckItem的结合,通过多个线程的情况下有些问题,还有可以考虑增加reload的方法

//其它说明
///
TreeItem.getXML,提供了将JS Nodes序列化成xml的接口,不过还没有提供加载的功能
我个人目前认为还需要改善的有如下:
1。支持节点图标的自定义
2。修改事件接口,最好能够使用命令模式,即addListener的方式
3。修改XLoadItem的实现,最好分离出DataSource,支持多种数据格式的加载
4。修正一些运行状态的bug
5。在IE5和Netscape下面调试通过
至于长远的打算
1.重新修改底层的实现,载接口设计方面尽量的完善
2.使用asp.net编写成Web Control
3.使用Java实现TagLib

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值