⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xbcollapsiblelists.js

📁 jboss规则引擎
💻 JS
字号:
/*xbCollapsibleLists.js 2001-02-26Contributor(s): Michael Bostock, Netscape Communications, Copyright 1997                Bob Clary, Netscape Communications, Copyright 2001                Seth Dillingham, Macrobyte Resources, Copyright 2001                Mark Filanowicz, Amdahl IT Services, Copyright 2002                Netscape grants you a royalty free license to use, modify or distribute this software provided that this copyright notice appears on all copies.  This software is provided "AS IS," without a warranty of any kind.See xbCollapsibleLists.js.changelog.html for details of changes.*/var xbcl__id = 0;var xbcl_item_id = 0;var xbcl_mLists = new Array();var xbcl_parentElement = null;document.lists = xbcl_mLists;function List(visible, width, height, bgColor, collapsedImageURL, expandedImageURL) {  this.lists   = new Array();  // sublists  this.items   = new Array();  // layers  this.types   = new Array();  // type  this.strs    = new Array();  // content  this.visible = visible;  this.id      = xbcl__id;  this.width   = width || 350;  this.height  = height || 22;    this.collapsedImageURL = collapsedImageURL || 'false.gif';  this.expandedImageURL  = expandedImageURL || 'true.gif';    if (bgColor)     this.bgColor = bgColor;  xbcl_mLists[xbcl__id++] = this;}function xbcl_SetFont(i,j) {  this.fontIntro = i;  this.fontOutro = j;}function xbcl_GetFont() {  return [this.fontIntro, this.fontOutro];}function xbcl_setIndent(indent) {   this.i = indent;   if (this.i < 0)   {     this.i = 0;     this.space = false;   }  else    this.space = true;}function xbcl_getIndent(indent){  return this.i;}function xbcl_writeItemDOMHTML( obj, s, flList, listObj ){  var styleObj;  var outerDiv, innerLeft, innerRight;  var str;  var leftEdge = 0;    styleObj = new xbStyle(obj);  styleObj.setVisibility('hidden');  outerDiv = document.createElement( "DIV" );  outerDiv.id = "DIV_" + obj.id;  styleObj = new xbStyle( outerDiv );  styleObj.setWidth( this.width );    if ( flList )  {    innerLeft = document.createElement( "DIV" );    innerLeft.style.position = "absolute";    innerLeft.style.valign = "middle";    leftEdge = 15;        styleObj = new xbStyle( innerLeft );    styleObj.setWidth( 15 );    styleObj.setBackgroundColor( "transparent" );        if ( listObj.visible )      str = '<A TARGET="_self" HREF="javascript:xbcl_expand(' + listObj.id + ');"><IMG BORDER="0" SRC="' + this.expandedImageURL + '" ID="_img' + listObj.id + '" NAME="_img' + listObj.id + '"></A>';    else      str = '<A TARGET="_self" HREF="javascript:xbcl_expand(' + listObj.id + ');"><IMG BORDER="0" SRC="' + this.collapsedImageURL + '" ID="_img' + listObj.id + '" NAME="_img' + listObj.id + '"></A>';        innerLeft.innerHTML = str;    outerDiv.appendChild( innerLeft );  }  else if ( this.space )    leftEdge = 15;    innerRight = document.createElement( "DIV" );  innerRight.noWrap = true;  innerRight.style.position = "absolute";    styleObj = new xbStyle( innerRight );  styleObj.setLeft( leftEdge + ( this.l * this.i ) );  styleObj.setWidth( this.width - 15 - this.l * this.i );  styleObj.setBackgroundColor( "transparent" );    // start of change by Mark Filanowicz  02-22-2002  if ( flList ) 	{	  s = this.fontIntro + '<A TARGET="_self" STYLE="text-decoration: none;" HREF="javascript:xbcl_expand(' + listObj.id + ');">' + s + this.fontOutro;	}	else	{  s = this.fontIntro + s + this.fontOutro;	}  // end of change by Mark Filanowicz  02-22-2002      innerRight.innerHTML = s;  outerDiv.appendChild( innerRight );  obj.appendChild( outerDiv );    return;}function xbcl_writeItem( obj, s, flList, listObj ){  var cellStyle = '';  var str = '';  var styleObj = new xbStyle( obj );    styleObj.setVisibility( 'hidden' );    if ( document.body && document.body.style )    cellStyle = ' style="background-color: transparent;"';    str += '<TABLE WIDTH='+this.width+' NOWRAP BORDER="0" CELLPADDING="0" CELLSPACING="0"><TR>';  if ( flList )   {    str += '<TD WIDTH="15" NOWRAP VALIGN="MIDDLE"' + cellStyle + '>';    str += '<A TARGET="_self" HREF="javascript:xbcl_expand(' + listObj.id + ');">';        if ( listObj.visible )      str += '<IMG BORDER="0" SRC="' + this.expandedImageURL + '" ID="_img' +  listObj.id + '" NAME="_img' + listObj.id + '">';    else      str += '<IMG BORDER="0" SRC="' + this.collapsedImageURL + '" ID="_img' +  listObj.id + '" NAME="_img' + listObj.id + '">';        str += '</A></TD>';  }   else if (this.space)    str += '<TD WIDTH="15" NOWRAP' + cellStyle + '>&nbsp;</TD>';    if (this.l>0 && this.i>0)     str += '<TD WIDTH="' + this.l*this.i+ '" NOWRAP' + cellStyle + '>&nbsp;</TD>';  str += '<TD HEIGHT="' + ( this.height - 3) + '" WIDTH="' + ( this.width - 15 - this.l * this.i ) + '" VALIGN="MIDDLE" ALIGN="LEFT"' + cellStyle + '>';    // start of change by Mark Filanowicz  02-22-2002  if ( flList ) 	{	  str += this.fontIntro + '<A TARGET="_self" STYLE="text-decoration: none;" HREF="javascript:xbcl_expand(' + listObj.id + ');">' + s + this.fontOutro;	}	else	{  str += this.fontIntro + s + this.fontOutro;	}  // end of change by Mark Filanowicz  02-22-2002    str += '</TD></TR></TABLE>';    styleObj.setInnerHTML( str );    return;}function xbcl_writeList(){  var item;  var i;  var flList;    for ( i = 0; i < this.types.length; i++ )  {    item = this.items[ i ];    flList = ( this.types[ i ] == 'list' );        this._writeItem( item, this.strs[ i ], flList, this.lists[ i ] );        if ( flList && this.lists[ i ].visible )      this.lists[ i ]._writeList();  }    this.built = true;  this.needsRewrite = false;  self.status = '';}function xbcl_showList() {  var item;  var styleObj;  var i;  for (i = 0; i < this.types.length; i++)   {     item = this.items[i];    styleObj = new xbStyle(item);    styleObj.setClipLeft(0);    styleObj.setClipRight(this.width);    styleObj.setClipTop(0);    if (item.height)    {      styleObj.setClipBottom(item.height);      styleObj.setHeight(item.height);    }    else    {      styleObj.setClipBottom(this.height);      styleObj.setHeight(this.height);    }        if ( this.visible )      styleObj.setVisibility( 'visible' );    var bg = item.oBgColor || this.bgColor;    if ((bg == null) || (bg == 'null'))       bg = '';    styleObj.setBackgroundColor(bg);    if (this.types[i] == 'list' && this.lists[i].visible)      this.lists[i]._showList();  }  this.shown = true;  this.needsUpdate = false;}function xbcl_setImage(list, item, file){  var id = '_img' + list.id;  var img = null;    // for DOMHTML or IE4 use cross browser getElementById from xbStyle  // can't use it for NN4 since it only works for layers in NN4  if (document.layers)     img = item.document.images[0];  else     img = xbGetElementById(id);      if (img)    img.src = file;}function xbcl_getHeight() {  var totalHeight = 0;  var i;    if (!this.visible)    return 0;    for (i = 0; i < this.types.length; i++)   {    if (this.items[i].height)      totalHeight += this.items[i].height;    else      totalHeight += this.height;        if ((this.types[i] == 'list') && this.lists[i].visible)    {      totalHeight += this.lists[i].getHeight();    }  }    return totalHeight;}function xbcl_updateList(pVis, x, y) {  var currTop = y;   var item;  var styleObj;  var i;  for (i = 0; i < this.types.length; i++)   {     item = this.items[i];    styleObj = new xbStyle(item);    if (this.visible && pVis)     {      styleObj.moveTo(x, currTop);      if (item.height)  // allow custom heights for each item        currTop += item.height;      else        currTop += this.height;            styleObj.setVisibility('visible');    }     else     {      styleObj.setVisibility('hidden');    }    if (this.types[i] == 'list')     {      if (this.lists[i].visible)       {        if (!this.lists[i].built || this.lists[i].needsRewrite)           this.lists[i]._writeList();        if (!this.lists[i].shown || this.lists[i].needsUpdate)           this.lists[i]._showList();        xbcl_setImage(this.lists[i], item, this.expandedImageURL );      }       else         xbcl_setImage(this.lists[i], item, this.collapsedImageURL );      if (this.lists[i].built)        currTop = this.lists[i]._updateList(this.visible && pVis, x, currTop);    }  }  return currTop;}function xbcl_updateParent( pid, l ) {  var i;  if ( !l )     l = 0;  this.pid = pid;  this.l = l;  for ( i = 0; i < this.types.length; i++ )  {    if ( this.types[ i ] == 'list' )    {      this.lists[ i ]._updateParent( pid, l + 1 );    }  }}function xbcl_expand(i) {  xbcl_mLists[i].visible = !xbcl_mLists[i].visible;  if (xbcl_mLists[i].onexpand != null)     xbcl_mLists[i].onexpand(xbcl_mLists[i].id);  xbcl_mLists[xbcl_mLists[i].pid].rebuild();  if (xbcl_mLists[i].postexpand != null)     xbcl_mLists[i].postexpand(xbcl_mLists[i].id);}function xbcl_build(x, y) {  this._updateParent(this.id);  this._writeList();  this._showList();  this._updateList(true, x, y);  this.x = x;   this.y = y;}function xbcl_rebuild() {   this._updateList(true, this.x, this.y); }function xbcl_getNewItem(){  var newItem = null;  newItem = xbGetElementById('lItem' + xbcl_item_id);  if (!newItem)   {    if (document.all && !document.getElementById)    {      var parentElement = this.parentElement;      if (!parentElement)        parentElement = document.body;              parentElement.insertAdjacentHTML('beforeEnd', '<div id="lItem' + xbcl_item_id + '" style="position:absolute;"></div>');      newItem = xbGetElementById('lItem' + xbcl_item_id);    }    else if (document.layers)    {      if (this.parentElement)        newItem = new Layer(this.width, this.parentElement);      else        newItem = new Layer(this.width);    }    else if (document.createElement)    {      newItem = document.createElement('div');      newItem.id= 'lItem' + xbcl_item_id;      newItem.style.position = 'absolute';      if (this.parentElement)        this.parentElement.appendChild(newItem);      else         document.body.appendChild(newItem);    }  }  return newItem;}function xbcl_addItem(str, bgColor, item) {  if (!item)     item = this._getNewItem();    if (!item)    return;  if (bgColor)     item.oBgColor = bgColor;  this.items[this.items.length] = item;  this.types[this.types.length] = 'item';  this.strs[this.strs.length] = str;  ++xbcl_item_id;    if ( this.built )  {    this._writeItem( item, str, false );    xbcl_mLists[this.pid].rebuild();    if ( this.visible )      this._showList();    else      this.needsUpdate = true;  }    return item;}function xbcl_addList(list, str, bgColor, item) {  if (!item)     item = this._getNewItem();  if (!item)    return;  if (bgColor)     item.oBgColor = bgColor;  this.lists[this.items.length] = list;  this.items[this.items.length] = item;  this.types[this.types.length] = 'list';  this.strs[this.strs.length] = str;  ++xbcl_item_id;    list.parentList = this;    list.pid = this.pid;  list.l = this.l + 1;    if ( this.built )  {    this._writeItem( item, str, true, list );    xbcl_mLists[ this.pid ].rebuild();    if ( this.visible )      this._showList();    else      this.needsUpdate = true;  }    return item;}List.prototype.setIndent     = xbcl_setIndent;List.prototype.getIndent     = xbcl_getIndent;List.prototype.addItem       = xbcl_addItem;List.prototype.addList       = xbcl_addList;List.prototype.build         = xbcl_build;List.prototype.rebuild       = xbcl_rebuild;List.prototype.setFont       = xbcl_SetFont;List.prototype.getFont       = xbcl_GetFont;List.prototype.getHeight     = xbcl_getHeight;List.prototype._writeList    = xbcl_writeList;List.prototype._getNewItem   = xbcl_getNewItem;if ( document.getElementById && document.createElement )  List.prototype._writeItem  = xbcl_writeItemDOMHTML;else  List.prototype._writeItem  = xbcl_writeItem;List.prototype._showList     = xbcl_showList;List.prototype._updateList   = xbcl_updateList;List.prototype._updateParent = xbcl_updateParent;List.prototype.onexpand      = null;List.prototype.postexpand    = null;List.prototype.lists         = null;  // sublistsList.prototype.items         = null;  // layersList.prototype.types         = null;  // typeList.prototype.strs          = null;  // contentList.prototype.x             = 0;List.prototype.y             = 0;List.prototype.visible       = false;List.prototype.id            = -1;List.prototype.i             = 18;List.prototype.space         = true;List.prototype.pid           = 0;List.prototype.fontIntro     = '';List.prototype.fontOutro     = '';List.prototype.width         = 350;List.prototype.height        = 22;List.prototype.built         = false;List.prototype.shown         = false;List.prototype.needsUpdate   = false;List.prototype.needsRewrite  = false;List.prototype.l             = 0;List.prototype.bgColor       = null;List.prototype.parentList    = null;List.prototype.parentElement = null;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -