/** * panel - jQuery EasyUI * * Licensed under the GPL: * http://www.gnu.org/licenses/gpl.txt * * Copyright 2010 stworthy [ stworthy@gmail.com ] * */ /** * 首先要了解面板的组成,面板由两部分组成,上面是header下面是body,使用时,我们只指定了body的元素,header元素和父元素都是自动生成的,首先生成父元素(.panel),然后根据设置组装header */ (($) { //删除指定节点 removeNode(node) { node.each(() { $().remove(); ($..msie) { .= ; } }); } //设置面板尺寸,最后会触发"_resize"事件 setSize(target, param) { opts = $.(target, ).; panel = $.(target, ).panel; pheader = panel.find(); pbody = panel.find(); (param) { (param.) opts.= paam.;
(param.) opts.= param.;
(param.!= ) opts.= param.;
(param.!= ) opts.= param.;
}
(opts.== ) {
p = panel.();
opts.= p.();
opts.= p.();
}
panel.({
: opts.,
: opts.});
panel.(opts.);
panel.addClass(opts.);
pheader.addClass(opts.);
pbody.addClass(opts.);
(!isNaN(opts.)) {
($.boxModel == ) {
panel.(opts.- (panel.outerWidth() - panel.()));
pheader.(panel.() - (pheader.outerWidth() - pheader.()));
pbody.(panel.() - (pbody.outerWidth() - pbody.()));
} {
panel.(opts.);
pheader.(panel.());
pbody.(panel.());
}
} {
panel.();
pbody.();
}
(!isNaN(opts.)) {
// var height = opts.height - (panel.outerHeight()-panel.height()) - pheader.outerHeight(); // if ($.boxModel == true){ // height -= pbody.outerHeight() - pbody.height(); // } // pbody.height(height); ($.boxModel == ) {
panel.(opts.- (panel.outerHeight() - panel.()));
pbody.(panel.() - pheader.outerHeight() - (pbody.outerHeight() - pbody.()));
} {
panel.(opts.);
pbody.(panel.() - pheader.outerHeight());
}
} {
pbody.();
}
panel.(, );
opts.onResize.apply(target, [opts., opts.]);
panel.find().triggerHandler();
}
//移动面板 movePanel(target, param) {
opts = $.(target, ).;
panel = $.(target, ).panel;
(param) {
(param.!= ) opts.= param.;
(param.!= ) opts.= param.;
}
panel.({
: opts.,
: opts.});
opts.onMove.apply(target, [opts., opts.]);
}
//包装面板 wrapPanel(target) {
//首先给用户指定的面板元素加一个父元素(div) panel = $(target).addClass().wrap().();
//然后给这个父元素绑定自定义事件("_resize"),从代码上看,这个事件只有在设置了面板自适应的时候才会真正起作用(去重绘尺寸) panel.bind(, () {
opts = $.(target, ).;
(opts.== ) {
setSize(target);
}
;
});
panel;
}
addHeader(target) {
//添加面板的标题栏 opts = $.(target, ).;
panel = $.(target, ).panel;
//首先移除掉面板的标题栏 removeNode(panel.find());
(opts.&& !opts.) {
//如果设置面板有title并且没用说明不能有标题头就加入面板标题块 header = $(+ opts.+ ).(panel);
(opts.) {
header.find().addClass();
$().addClass(opts.).(header);
}
tool = $().(header);
(opts.) {
$().(tool).bind(, onClose);
}
(opts.) {
$().(tool).bind(, onMax);
}
(opts.) {
$().(tool).bind(, onMin);
}
(opts.) {
$().(tool).bind(, onToggle);
}
(opts.) {
(i = opts..- 1; i >= 0; i--) {
t = $().addClass(opts.[i].).(tool);
(opts.[i].handler) {
t.bind(, eval(opts.[i].handler));
}
}
}
tool.find().(
() {
$().addClass();
},
() {
$().removeClass();
}
);
panel.find().removeClass();
} {
panel.find().addClass();
}
onToggle() {
($().hasClass()) {
expandPanel(target, );
} {
collapsePanel(target, );
}
;
}
onMin() {
minimizePanel(target);
;
}
onMax() {
($().hasClass()) {
restorePanel(target);
} {
maximizePanel(target);
}
;
}
onClose() {
closePanel(target);
;
}
}
/** * load content from remote site if the href attribute is defined */ loadData(target) {
state = $.(target, );
(state..&& (!state.|| !state..)) {
state.= ;
pbody = state..find();
pbody.($().(state..));
pbody.load(state.., , () {
($.) {
$..parse(pbody);
}
state..onLoad.apply(target, arguments);
state.= ;
});
}
}
openPanel(target, forceOpen) {
//打开面板,正常打开的话会去调用一个用户的方法,如果返回为false就不打开了,但如果设置了暴力打开参数的话就直接打开,不再去调用用户的方法 opts = $.(target, ).;
panel = $.(target, ).panel;
(forceOpen != ) {
(opts.onBeforeOpen.call(target) == ) ;
}
panel.show();
opts.= ;
opts.onOpen.call(target);
(opts.== ) maximizePanel(target);
(opts.== ) minimizePanel(target);
(opts.== ) collapsePanel(target);
(!opts.) {
loadData(target);
}
}
closePanel(target, forceClose) {
//关闭面板,同样处理面板的暴力关闭事件 opts = $.(target, ).;
panel = $.(target, ).panel;
(forceClose != ) {
(opts.onBeforeClose.call(target) == ) ;
}
panel.hide();
opts.= ;
opts.onClose.call(target);
}
destroyPanel(target, forceDestroy) {
//销毁面板,这将面板控件从dom元素中除去 opts = $.(target, ).;
panel = $.(target, ).panel;
(forceDestroy != ) {
(opts.onBeforeDestroy.call(target) == ) ;
}
removeNode(panel);
opts.onDestroy.call(target);
}
collapsePanel(target, animate) {
//折叠面板 opts = $.(target, ).;
panel = $.(target, ).panel;
body = panel.find();
tool = panel.find();
(tool.hasClass()) ;
body.stop(, ); // stop animation (opts.onBeforeCollapse.call(target) == ) ;
tool.addClass();
(animate == ) {
body.(, () {
opts.= ;
opts.onCollapse.call(target);
});
} {
body.hide();
opts.= ;
opts.onCollapse.call(target);
}
}
expandPanel(target, animate) {
//展开面板 opts = $.(target, ).;
panel = $.(target, ).panel;
body = panel.find();
tool = panel.find();
(!tool.hasClass()) ;
body.stop(, ); // stop animation (opts.onBeforeExpand.call(target) == ) ;
tool.removeClass();
(animate == ) {
body.(, () {
opts.= ;
opts.onExpand.call(target);
loadData(target);
});
} {
body.show();
opts.= ;
opts.onExpand.call(target);
loadData(target);
}
}
maximizePanel(target) {
//最大化面板 opts = $.(target, ).;
panel = $.(target, ).panel;
tool = panel.find();
(tool.hasClass()) ;
tool.addClass();
//最大化之前先存储现在的尺寸,方面后面的恢复 $.(target, ).= {
: opts.,
: opts.,
: opts.,
: opts.,
: opts.};
opts.= 0;
opts.= 0;
opts.= ;
setSize(target);
opts.= ;
opts.= ;
opts.onMaximize.call(target);
}
minimizePanel(target) {
//最小化面板 opts = $.(target, ).;
panel = $.(target, ).panel;
panel.hide();
opts.= ;
opts.= ;
opts.onMinimize.call(target);
}
restorePanel(target) {
opts = $.(target, ).;
panel = $.(target, ).panel;
tool = panel.find();
(!tool.hasClass()) ;
panel.show();
tool.removeClass();
original = $.(target, ).;
opts.= original.;
opts.= original.;
opts.= original.;
opts.= original.;
opts.= original.;
setSize(target);
opts.= ;
opts.= ;
opts.onRestore.call(target);
}
setBorder(target) {
opts = $.(target, ).;
panel = $.(target, ).panel;
(opts.== ) {
panel.find().removeClass();
panel.find().removeClass();
} {
panel.find().addClass();
panel.find().addClass();
}
}
setTitle(target, title) {
$.(target, )..= title;
$(target).panel().find().(title);
}
$().unbind().bind(, () {
//给窗体绑定大小改变事件,先去看body是否有布局,如果有就调用body的布局方法,如果没有就调用body下面的div面板,触发它的"_resize"事件 layout = $();
(layout.) {
layout.();
} {
$().triggerHandler();
}
});
$..panel = (options, param) {
(options == ) {
//如果是字符串就表示是在调用方法 (options) {
:
$.([0], ).;
:
$.
标签: optex激光位移传感器cd3