87,997
社区成员




/**
* By www.865171.cn
* q q : 215288671
* Date : 2010.4.22
*/
/**
* 控件基类.
* 控件即是本包中已实现的控件对象.
*/
var CBase = {
//类型,保留作为Component标识.
type: 'CBase',
//代表该控件的DOM结点.
view: null,
draggable: false,
resizable: false,
id: 0,
title: '',
tleLen: 15,
//初始化.
initialize: function(opts) {
if ((typeof this.id) == 'undefined') {
this.id = CC.uniqueID();
}
//所有赋值给view的属性通过用viewAttr传递.
var viewAttr = null;
if (opts && opts.viewAttr) {
viewAttr = opts.viewAttr;
delete opts.viewAttr;
}
CC.extend(this, opts);
if (!this.view) {
this.view = CC. $C('DIV');
}
if (this.parent) {
this.parent.appendChild(this.view);
}
if (viewAttr) {
CC.extend(this.view, viewAttr);
}
//view附加一个控件本身的引用.
this.view.component = this;
}
,
//设置view的宽度.
setWidth: function(width) {
CC.style(this.view, 'width', width + 'px');
}
,
//设置view的高度.
setHeight: function(height) {
CC.style(this.view, 'width', height + 'px');
}
,
//设置view 的top.
setTop: function(top) {
CC.style(this.view, 'top', top + 'px');
}
,
setLeft: function(left) {
CC.style(this.view, 'left', left + 'px');
}
,
//是否禁用该控件的view,参数:true或false.
setDisabled: function(b) {
CC.disabled(this.view, b);
}
,
//设置view的className.
setClass: function(c) {
CC.setClass(this.view, c);
}
,
//设置控件view的属性.
//如设置高为setViewAttr('top',50);
setViewAttr: function(n, v) {
this.view[n] = v;
}
,
//设置view中任一子层id为childId的子结子的属性.
//属性也可以多层次.
//如存在一id为'_ico'子结点,设置其display属性为
//inspectAttr('_ico','style.display','block');
inspectViewAttr: function(childId, childAttrList, attrValue) {
var obj = CC.inspect(this.view, childId);
//??Shoud do this??
if (obj == null) {
return ;
}
CC.inspectAttr(obj, childAttrList, attrValue);
return obj;
}
,
//设置控件的图标,如果存在的话.
//图标结点id必须是'_ico'且在view中是唯一的.
setIcon: function(cssIco) {
this.inspectViewAttr('_ico', 'className', cssIco);
}
,
setVisible: function(b) {
CC.display(this.view, b);
}
,
//设置控件的标题,如果存在的话.
//标题结点id必须是'_tle'且在view中是唯一的.
setTitle: function(ss) {
this.title = ss;
var tle = CC.inspect(this.view, '_tle');
CC.style(tle.parentNode, 'title', tle);
tle.innerHTML = ss.truncate(this.tleLen);
}
,
//设置控件view的宽度高度.
setSize: function(width, height) {
CC.style(this.view, 'width', width + 'px');
CC.style(this.view, 'height', height + 'px');
}
,
setPosition: function(left, top) {
CC.style(this.view, 'left', left + 'px');
CC.style(this.view, 'top', top + 'px');
}
,
//控件view是否可见.
isVisible: function() {
return this.view.style.display != "none";
}
,
//为view添加DOM事件.
//useCapture:否是支持冒泡.
observe: function(name, observer, useCapture) {
Event.observe(this.view, name, observer, useCapture);
}
,
stopObserving: function(name, observer, useCapture) {
Event.stopObserving(this.view, observer, useCapture);
}
,
//设置控件是否可拖动.
//moveObj:发生拖动时要移动的结点.
setDragable: function(b, moveObj, fnOnMov, fnOnDrag, fnOnDrog) {
this.draggable = b;
(moveObj) ? Position.setDragable(this.view, moveObj, b, fnOnMov, fnOnDrag, fnOnDrog): Position.setDragable(this.view, this.view, b, fnOnMov, fnOnDrag, fnOnDrog);
}
,
//之前版本appendView已改为appendChild
//为view添加一个子DOM结点.
appendChild: function(v) {
this.view.appendChild(v);
}
,
removeChild: function(v) {
this.view.removeChild(v);
}
};