Files
simrs-jatim/js/plugins/jquery.layout.js
2024-04-19 14:04:41 +07:00

481 lines
12 KiB
JavaScript

/**
* jQuery EasyUI 1.2.5
*
* Licensed under the GPL terms
* To use it on other terms please contact us
*
* Copyright(c) 2009-2011 stworthy [ stworthy@gmail.com ]
*
*/
(function($){
var _1=false;
function _2(_3){
var _4=$.data(_3,"layout").options;
var _5=$.data(_3,"layout").panels;
var cc=$(_3);
if(_4.fit==true){
var p=cc.parent();
cc.width(p.width()).height(p.height());
}
var _6={top:0,left:0,width:cc.width(),height:cc.height()};
function _7(pp){
if(pp.length==0){
return;
}
pp.panel("resize",{width:cc.width(),height:pp.panel("options").height,left:0,top:0});
_6.top+=pp.panel("options").height;
_6.height-=pp.panel("options").height;
};
if(_b(_5.expandNorth)){
_7(_5.expandNorth);
}else{
_7(_5.north);
}
function _8(pp){
if(pp.length==0){
return;
}
pp.panel("resize",{width:cc.width(),height:pp.panel("options").height,left:0,top:cc.height()-pp.panel("options").height});
_6.height-=pp.panel("options").height;
};
if(_b(_5.expandSouth)){
_8(_5.expandSouth);
}else{
_8(_5.south);
}
function _9(pp){
if(pp.length==0){
return;
}
pp.panel("resize",{width:pp.panel("options").width,height:_6.height,left:cc.width()-pp.panel("options").width,top:_6.top});
_6.width-=pp.panel("options").width;
};
if(_b(_5.expandEast)){
_9(_5.expandEast);
}else{
_9(_5.east);
}
function _a(pp){
if(pp.length==0){
return;
}
pp.panel("resize",{width:pp.panel("options").width,height:_6.height,left:0,top:_6.top});
_6.left+=pp.panel("options").width;
_6.width-=pp.panel("options").width;
};
if(_b(_5.expandWest)){
_a(_5.expandWest);
}else{
_a(_5.west);
}
_5.center.panel("resize",_6);
};
function _c(_d){
var cc=$(_d);
if(cc[0].tagName=="BODY"){
$("html").css({height:"100%",overflow:"hidden"});
$("body").css({height:"100%",overflow:"hidden",border:"none"});
}
cc.addClass("layout");
cc.css({margin:0,padding:0});
function _e(_f){
var pp=$(">div[region="+_f+"]",_d).addClass("layout-body");
var _10=null;
if(_f=="north"){
_10="layout-button-up";
}else{
if(_f=="south"){
_10="layout-button-down";
}else{
if(_f=="east"){
_10="layout-button-right";
}else{
if(_f=="west"){
_10="layout-button-left";
}
}
}
}
var cls="layout-panel layout-panel-"+_f;
if(pp.attr("split")=="true"){
cls+=" layout-split-"+_f;
}
pp.panel({cls:cls,doSize:false,border:(pp.attr("border")=="false"?false:true),width:(pp.length?parseInt(pp[0].style.width)||pp.outerWidth():"auto"),height:(pp.length?parseInt(pp[0].style.height)||pp.outerHeight():"auto"),tools:[{iconCls:_10,handler:function(){
_1c(_d,_f);
}}]});
if(pp.attr("split")=="true"){
var _11=pp.panel("panel");
var _12="";
if(_f=="north"){
_12="s";
}
if(_f=="south"){
_12="n";
}
if(_f=="east"){
_12="w";
}
if(_f=="west"){
_12="e";
}
_11.resizable({handles:_12,onStartResize:function(e){
_1=true;
if(_f=="north"||_f=="south"){
var _13=$(">div.layout-split-proxy-v",_d);
}else{
var _13=$(">div.layout-split-proxy-h",_d);
}
var top=0,_14=0,_15=0,_16=0;
var pos={display:"block"};
if(_f=="north"){
pos.top=parseInt(_11.css("top"))+_11.outerHeight()-_13.height();
pos.left=parseInt(_11.css("left"));
pos.width=_11.outerWidth();
pos.height=_13.height();
}else{
if(_f=="south"){
pos.top=parseInt(_11.css("top"));
pos.left=parseInt(_11.css("left"));
pos.width=_11.outerWidth();
pos.height=_13.height();
}else{
if(_f=="east"){
pos.top=parseInt(_11.css("top"))||0;
pos.left=parseInt(_11.css("left"))||0;
pos.width=_13.width();
pos.height=_11.outerHeight();
}else{
if(_f=="west"){
pos.top=parseInt(_11.css("top"))||0;
pos.left=_11.outerWidth()-_13.width();
pos.width=_13.width();
pos.height=_11.outerHeight();
}
}
}
}
_13.css(pos);
$("<div class=\"layout-mask\"></div>").css({left:0,top:0,width:cc.width(),height:cc.height()}).appendTo(cc);
},onResize:function(e){
if(_f=="north"||_f=="south"){
var _17=$(">div.layout-split-proxy-v",_d);
_17.css("top",e.pageY-$(_d).offset().top-_17.height()/2);
}else{
var _17=$(">div.layout-split-proxy-h",_d);
_17.css("left",e.pageX-$(_d).offset().left-_17.width()/2);
}
return false;
},onStopResize:function(){
$(">div.layout-split-proxy-v",_d).css("display","none");
$(">div.layout-split-proxy-h",_d).css("display","none");
var _18=pp.panel("options");
_18.width=_11.outerWidth();
_18.height=_11.outerHeight();
_18.left=_11.css("left");
_18.top=_11.css("top");
pp.panel("resize");
_2(_d);
_1=false;
cc.find(">div.layout-mask").remove();
}});
}
return pp;
};
$("<div class=\"layout-split-proxy-h\"></div>").appendTo(cc);
$("<div class=\"layout-split-proxy-v\"></div>").appendTo(cc);
var _19={center:_e("center")};
_19.north=_e("north");
_19.south=_e("south");
_19.east=_e("east");
_19.west=_e("west");
$(_d).bind("_resize",function(e,_1a){
var _1b=$.data(_d,"layout").options;
if(_1b.fit==true||_1a){
_2(_d);
}
return false;
});
return _19;
};
function _1c(_1d,_1e){
var _1f=$.data(_1d,"layout").panels;
var cc=$(_1d);
function _20(dir){
var _21;
if(dir=="east"){
_21="layout-button-left";
}else{
if(dir=="west"){
_21="layout-button-right";
}else{
if(dir=="north"){
_21="layout-button-down";
}else{
if(dir=="south"){
_21="layout-button-up";
}
}
}
}
var p=$("<div></div>").appendTo(cc).panel({cls:"layout-expand",title:"&nbsp;",closed:true,doSize:false,tools:[{iconCls:_21,handler:function(){
_22(_1d,_1e);
}}]});
p.panel("panel").hover(function(){
$(this).addClass("layout-expand-over");
},function(){
$(this).removeClass("layout-expand-over");
});
return p;
};
if(_1e=="east"){
if(_1f.east.panel("options").onBeforeCollapse.call(_1f.east)==false){
return;
}
_1f.center.panel("resize",{width:_1f.center.panel("options").width+_1f.east.panel("options").width-28});
_1f.east.panel("panel").animate({left:cc.width()},function(){
_1f.east.panel("close");
_1f.expandEast.panel("open").panel("resize",{top:_1f.east.panel("options").top,left:cc.width()-28,width:28,height:_1f.east.panel("options").height});
_1f.east.panel("options").onCollapse.call(_1f.east);
});
if(!_1f.expandEast){
_1f.expandEast=_20("east");
_1f.expandEast.panel("panel").click(function(){
_1f.east.panel("open").panel("resize",{left:cc.width()});
_1f.east.panel("panel").animate({left:cc.width()-_1f.east.panel("options").width});
return false;
});
}
}else{
if(_1e=="west"){
if(_1f.west.panel("options").onBeforeCollapse.call(_1f.west)==false){
return;
}
_1f.center.panel("resize",{width:_1f.center.panel("options").width+_1f.west.panel("options").width-28,left:28});
_1f.west.panel("panel").animate({left:-_1f.west.panel("options").width},function(){
_1f.west.panel("close");
_1f.expandWest.panel("open").panel("resize",{top:_1f.west.panel("options").top,left:0,width:28,height:_1f.west.panel("options").height});
_1f.west.panel("options").onCollapse.call(_1f.west);
});
if(!_1f.expandWest){
_1f.expandWest=_20("west");
_1f.expandWest.panel("panel").click(function(){
_1f.west.panel("open").panel("resize",{left:-_1f.west.panel("options").width});
_1f.west.panel("panel").animate({left:0});
return false;
});
}
}else{
if(_1e=="north"){
if(_1f.north.panel("options").onBeforeCollapse.call(_1f.north)==false){
return;
}
var hh=cc.height()-28;
if(_b(_1f.expandSouth)){
hh-=_1f.expandSouth.panel("options").height;
}else{
if(_b(_1f.south)){
hh-=_1f.south.panel("options").height;
}
}
_1f.center.panel("resize",{top:28,height:hh});
_1f.east.panel("resize",{top:28,height:hh});
_1f.west.panel("resize",{top:28,height:hh});
if(_b(_1f.expandEast)){
_1f.expandEast.panel("resize",{top:28,height:hh});
}
if(_b(_1f.expandWest)){
_1f.expandWest.panel("resize",{top:28,height:hh});
}
_1f.north.panel("panel").animate({top:-_1f.north.panel("options").height},function(){
_1f.north.panel("close");
_1f.expandNorth.panel("open").panel("resize",{top:0,left:0,width:cc.width(),height:28});
_1f.north.panel("options").onCollapse.call(_1f.north);
});
if(!_1f.expandNorth){
_1f.expandNorth=_20("north");
_1f.expandNorth.panel("panel").click(function(){
_1f.north.panel("open").panel("resize",{top:-_1f.north.panel("options").height});
_1f.north.panel("panel").animate({top:0});
return false;
});
}
}else{
if(_1e=="south"){
if(_1f.south.panel("options").onBeforeCollapse.call(_1f.south)==false){
return;
}
var hh=cc.height()-28;
if(_b(_1f.expandNorth)){
hh-=_1f.expandNorth.panel("options").height;
}else{
if(_b(_1f.north)){
hh-=_1f.north.panel("options").height;
}
}
_1f.center.panel("resize",{height:hh});
_1f.east.panel("resize",{height:hh});
_1f.west.panel("resize",{height:hh});
if(_b(_1f.expandEast)){
_1f.expandEast.panel("resize",{height:hh});
}
if(_b(_1f.expandWest)){
_1f.expandWest.panel("resize",{height:hh});
}
_1f.south.panel("panel").animate({top:cc.height()},function(){
_1f.south.panel("close");
_1f.expandSouth.panel("open").panel("resize",{top:cc.height()-28,left:0,width:cc.width(),height:28});
_1f.south.panel("options").onCollapse.call(_1f.south);
});
if(!_1f.expandSouth){
_1f.expandSouth=_20("south");
_1f.expandSouth.panel("panel").click(function(){
_1f.south.panel("open").panel("resize",{top:cc.height()});
_1f.south.panel("panel").animate({top:cc.height()-_1f.south.panel("options").height});
return false;
});
}
}
}
}
}
};
function _22(_23,_24){
var _25=$.data(_23,"layout").panels;
var cc=$(_23);
if(_24=="east"&&_25.expandEast){
if(_25.east.panel("options").onBeforeExpand.call(_25.east)==false){
return;
}
_25.expandEast.panel("close");
_25.east.panel("panel").stop(true,true);
_25.east.panel("open").panel("resize",{left:cc.width()});
_25.east.panel("panel").animate({left:cc.width()-_25.east.panel("options").width},function(){
_2(_23);
_25.east.panel("options").onExpand.call(_25.east);
});
}else{
if(_24=="west"&&_25.expandWest){
if(_25.west.panel("options").onBeforeExpand.call(_25.west)==false){
return;
}
_25.expandWest.panel("close");
_25.west.panel("panel").stop(true,true);
_25.west.panel("open").panel("resize",{left:-_25.west.panel("options").width});
_25.west.panel("panel").animate({left:0},function(){
_2(_23);
_25.west.panel("options").onExpand.call(_25.west);
});
}else{
if(_24=="north"&&_25.expandNorth){
if(_25.north.panel("options").onBeforeExpand.call(_25.north)==false){
return;
}
_25.expandNorth.panel("close");
_25.north.panel("panel").stop(true,true);
_25.north.panel("open").panel("resize",{top:-_25.north.panel("options").height});
_25.north.panel("panel").animate({top:0},function(){
_2(_23);
_25.north.panel("options").onExpand.call(_25.north);
});
}else{
if(_24=="south"&&_25.expandSouth){
if(_25.south.panel("options").onBeforeExpand.call(_25.south)==false){
return;
}
_25.expandSouth.panel("close");
_25.south.panel("panel").stop(true,true);
_25.south.panel("open").panel("resize",{top:cc.height()});
_25.south.panel("panel").animate({top:cc.height()-_25.south.panel("options").height},function(){
_2(_23);
_25.south.panel("options").onExpand.call(_25.south);
});
}
}
}
}
};
function _26(_27){
var _28=$.data(_27,"layout").panels;
var cc=$(_27);
if(_28.east.length){
_28.east.panel("panel").bind("mouseover","east",_1c);
}
if(_28.west.length){
_28.west.panel("panel").bind("mouseover","west",_1c);
}
if(_28.north.length){
_28.north.panel("panel").bind("mouseover","north",_1c);
}
if(_28.south.length){
_28.south.panel("panel").bind("mouseover","south",_1c);
}
_28.center.panel("panel").bind("mouseover","center",_1c);
function _1c(e){
if(_1==true){
return;
}
if(e.data!="east"&&_b(_28.east)&&_b(_28.expandEast)){
_28.east.panel("panel").animate({left:cc.width()},function(){
_28.east.panel("close");
});
}
if(e.data!="west"&&_b(_28.west)&&_b(_28.expandWest)){
_28.west.panel("panel").animate({left:-_28.west.panel("options").width},function(){
_28.west.panel("close");
});
}
if(e.data!="north"&&_b(_28.north)&&_b(_28.expandNorth)){
_28.north.panel("panel").animate({top:-_28.north.panel("options").height},function(){
_28.north.panel("close");
});
}
if(e.data!="south"&&_b(_28.south)&&_b(_28.expandSouth)){
_28.south.panel("panel").animate({top:cc.height()},function(){
_28.south.panel("close");
});
}
return false;
};
};
function _b(pp){
if(!pp){
return false;
}
if(pp.length){
return pp.panel("panel").is(":visible");
}else{
return false;
}
};
$.fn.layout=function(_29,_2a){
if(typeof _29=="string"){
return $.fn.layout.methods[_29](this,_2a);
}
return this.each(function(){
var _2b=$.data(this,"layout");
if(!_2b){
var _2c=$.extend({},{fit:$(this).attr("fit")=="true"});
$.data(this,"layout",{options:_2c,panels:_c(this)});
_26(this);
}
_2(this);
});
};
$.fn.layout.methods={resize:function(jq){
return jq.each(function(){
_2(this);
});
},panel:function(jq,_2d){
return $.data(jq[0],"layout").panels[_2d];
},collapse:function(jq,_2e){
return jq.each(function(){
_1c(this,_2e);
});
},expand:function(jq,_2f){
return jq.each(function(){
_22(this,_2f);
});
}};
})(jQuery);