All Downloads are FREE. Search and download functionalities are using the official Maven repository.

static.scripts.dtree.js Maven / Gradle / Ivy

/*--------------------------------------------------|
| dTree 2.05 | www.destroydrop.com/javascript/tree/ |
|---------------------------------------------------|
| Copyright (c) 2002-2003 Geir Landr?               |
|                                                   |
| This script can be used freely as long as all     |
| copyright messages are intact.                    |
|                                                   |
| Updated: 17.04.2003                               |
|--------------------------------------------------*/

// Node object
function Node(id, pid, name, url, title, target, icon, iconOpen, open) {
  this.id = id;
  this.pid = pid;
  this.name = name;
  this.url = url;
  this.title = title;
  this.target = target;
  this.icon = icon;
  this.iconOpen = iconOpen;
  this._io = open || false;
  this._is = false;
  this._ls = false;
  this._hc = false;
  this._ai = 0;
  this._p;
};

// Tree object
function dTree(objName) {
  this.config = {
    target          : null,
    folderLinks      : true,
    useSelection    : true,
    useCookies      : true,
    useLines        : true,
    useIcons        : true,
    useStatusText    : false,
    closeSameLevel  : false,
    inOrder          : false
  };
  this.icon = {
    root        : '../static/images/base.gif',
    folder      : '../static/images/folder.gif',
    folderOpen  : '../static/images/folderopen.gif',
    node        : '../static/images/page.gif',
    empty        : '../static/images/empty.gif',
    line        : '../static/images/line.gif',
    join        : '../static/images/join.gif',
    joinBottom  : '../static/images/joinbottom.gif',
    plus        : '../static/images/plus.gif',
    plusBottom  : '../static/images/plusbottom.gif',
    minus        : '../static/images/minus.gif',
    minusBottom  : '../static/images/minusbottom.gif',
    nlPlus      : '../static/images/nolines_plus.gif',
    nlMinus      : '../static/images/nolines_minus.gif'
  };
  this.obj = objName;
  this.aNodes = [];
  this.aIndent = [];
  this.root = new Node(-1);
  this.selectedNode = null;
  this.selectedFound = false;
  this.completed = false;
};

// Adds a new node to the node array
dTree.prototype.add = function(id, pid, name, url, title, target, icon, iconOpen, open) {
  this.aNodes[this.aNodes.length] = new Node(id, pid, name, url, title, target, icon, iconOpen, open);
};

// Open/close all nodes
dTree.prototype.openAll = function() {
  this.oAll(true);
};
dTree.prototype.closeAll = function() {
  this.oAll(false);
};

// Outputs the tree to the page
dTree.prototype.toString = function() {
  var str = '
\n'; if (document.getElementById) { if (this.config.useCookies) this.selectedNode = this.getSelected(); str += this.addNode(this.root); } else str += 'Browser not supported.'; str += '
'; if (!this.selectedFound) this.selectedNode = null; this.completed = true; return str; }; // Creates the tree structure dTree.prototype.addNode = function(pNode) { var str = ''; var n=0; if (this.config.inOrder) n = pNode._ai; for (n; n'; } if (node.url) { str += ''; str += node.name; if (node.url || ((!this.config.folderLinks || !node.url) && node._hc)) str += ''; str += '
'; if (node._hc) { str += '
'; str += this.addNode(node); str += '
'; } this.aIndent.pop(); return str; }; // Adds the empty and line icons dTree.prototype.indent = function(node, nodeId) { var str = ''; if (this.root.id != node.pid) { for (var n=0; n'; (node._ls) ? this.aIndent.push(0) : this.aIndent.push(1); if (node._hc) { str += ''; } else str += ''; } return str; }; // Checks if a node has any children and if it is the last sibling dTree.prototype.setCS = function(node) { var lastId; for (var n=0; n



© 2015 - 2025 Weber Informatics LLC | Privacy Policy