📄 treeview.htc
字号:
prop_treeNodeSrc = value;
_tvpropTreeNodeSrc.fireChange();
}
}
function getTreeNodeXsltSrc()
{
return prop_treeNodeXsltSrc;
}
function setTreeNodeXsltSrc(value)
{
if (prop_treeNodeXsltSrc != value)
{
prop_treeNodeXsltSrc = value;
_tvpropTreeNodeXsltSrc.fireChange();
}
}
function getSelectExpands()
{
return prop_selectExpands;
}
function setSelectExpands(value)
{
var boolval = makeBoolean(value)
if (boolval != null && boolval != prop_selectExpands)
{
prop_selectExpands = value;
if (g_bCreated)
_tvpropSelectExpands.fireChange();
}
}
function getExpandLevel()
{
return prop_expandLevel;
}
function setExpandLevel(value)
{
if (prop_expandLevel != value)
{
prop_expandLevel = value - 0;
if (g_bCreated)
{
expandNodes(contentNode, value);
_tvpropExpandLevel.fireChange();
}
}
}
function getAutoSelect()
{
return prop_autoSelect;
}
function setAutoSelect(value)
{
var boolval = makeBoolean(value)
if (boolval != null && boolval != prop_autoSelect)
{
prop_autoSelect = value;
if (g_bCreated)
_tvpropAutoSelect.fireChange();
}
}
function getTreeNodeTypeSrc()
{
return prop_treeNodeTypeSrc;
}
function setTreeNodeTypeSrc(value)
{
if (prop_treeNodeTypeSrc != value)
{
prop_treeNodeTypeSrc = value;
if (g_bCreated)
{
_tvpropTreeNodeTypeSrc.fireChange();
}
}
}
function getShowLines()
{
return prop_showLines;
}
function setShowLines(value)
{
var boolval = makeBoolean(value);
if (prop_showLines != boolval && boolval != null)
{
prop_showLines = boolval;
if (g_bCreated)
{
buildTreeFromRoot();
_tvpropShowLines.fireChange();
}
}
}
function getShowPlus()
{
return prop_showPlus;
}
function setShowPlus(value)
{
var boolval = makeBoolean(value);
if (prop_showPlus != boolval && boolval != null)
{
prop_showPlus = boolval;
if (g_bCreated)
{
modifyNodesByType(contentNode, null, "_showplus");
_tvpropShowPlus.fireChange();
}
}
}
function getShowToolTip()
{
return prop_showToolTip;
}
function setShowToolTip(value)
{
var boolval = makeBoolean(value);
if (prop_showToolTip != boolval && boolval != null)
{
prop_showToolTip = boolval;
if (g_bCreated)
{
_tvpropShowToolTip.fireChange();
}
}
}
function getIndent()
{
return prop_indent;
}
function setIndent(value)
{
if (prop_indent != value)
{
if (typeof value == "string")
{
var i = parseInt(value);
if (i == NaN)
return;
else
prop_indent = i;
}
else if (typeof value == "number")
prop_indent = value;
else
return;
if (g_bCreated)
{
if (getShowLines() != true)
modifyNodesByType(contentNode, null, "_indent");
_tvpropShowLines.fireChange();
}
}
}
function getSelectedNodeIndex()
{
return prop_selectedNodeIndex;
}
function setSelectedNodeIndex(value)
{
if (prop_selectedNodeIndex != value && typeof value == "string")
{
if (value.length == 0)
return;
if (value.search(/[^0-9.]/) != -1)
return;
if (value[0] == '.')
return;
if (value.indexOf("..") != -1)
return;
if (g_bCreated)
{
var node = getNodeFromIndex(value);
if (node != null && node.subtree != null)
{
selectNode(node);
_tvpropSelectedNodeIndex.fireChange();
}
else
{
if (value != "0")
selectedNodeIndex = "0";
else
prop_selectedNodeIndex = "";
}
}
else
prop_selectedNodeIndex = value;
}
}
function getSystemImagesPath()
{
return prop_systemImagesPath;
}
function setSystemImagesPath(value)
{
if (prop_systemImagesPath != value && typeof value == "string")
{
prop_systemImagesPath = value;
if (g_bCreated)
{
buildTreeFromRoot();
_tvpropSystemImagesPath.fireChange();
}
}
}
function expandNodes(root, level)
{
if (root != contentNode)
{
var exp = root.getAttribute("expanded");
if (exp != true)
{
doNodePlusMinusClick(root);
}
}
if (level > 0)
{
var col = root.children.tags("treenode");
for (var i = 0; i < col.length; i++)
{
expandNodes(col[i], level - 1);
}
}
}
function databind()
{
if (g_typesNode == null)
g_typesNode = element.document.createElement("DIV");
g_typesNode.innerHTML = getNodeTypeHtml();
element.nodeTypes = g_typesNode.children.tags("TREENODETYPE");
treeviewNode.subtree.removeNode(true);
contentNode.innerText = "";
databindNode(element);
}
function getTreeNodeType(key)
{
var tnt = null;
var len = element.nodeTypes.length;
if (typeof key == "number")
{
if (key >= 0 && key < len)
tnt = element.nodeTypes[key];
}
else
{
for (var i = 0; i < len; i++)
{
var temp = element.nodeTypes[i];
if (temp.getAttribute("Type") == key)
{
tnt = temp;
break;
}
}
}
if (tnt != null)
return private_getTreeNodeType(tnt);
else
return null;
}
function createTreeNodeType()
{
var realtnt = element.document.createElement("treenodetype");
return private_getTreeNodeType(realtnt);
}
function private_getTreeNodeType(tnt)
{
var obj = new Object();
obj.addTo = function(tree)
{
if (tree.nodeTypes == null || tree.nodeTypes.length == 0)
{
g_typesNode = element.document.createElement("DIV");
g_typesNode.appendChild(tnt);
tree.nodeTypes = g_typesNode.children.tags("TREENODETYPE");
}
else
{
g_typesNode.appendChild(tnt);
tree.nodeTypes = g_typesNode.children.tags("TREENODETYPE");
}
modifyNodesByType(contentNode, tnt.getAttribute("type"), "type");
}
obj.remove = function(bRedraw) { private_removeTreeNodeType(tnt, bRedraw); };
obj.getAttribute = function(name) { return private_getNodeTypeAttribute(tnt, name); };
obj.setAttribute = function(name, value) { private_setNodeTypeAttribute(tnt, name, value); };
return obj;
}
function addTreeNodeType(tnt)
{
tnt.addTo(element);
}
function private_removeTreeNodeType(tnt, bRedraw)
{
var name = tnt.getAttribute("Type");
tnt.removeNode(false);
if (bRedraw != false)
{
modifyNodesByType(contentNode, null, "type");
}
else
{
modifyNodesByType(contentNode, null, "_nodetypeIndex");
}
}
function modifyNodesByType(node, type, att)
{
if (node != contentNode)
{
if (node.subtree == null)
return;
if (type == null || getNodeAttribute(node, "Type") == type)
{
modifyNode(node, att, null, type);
if (att == "type" || att == "childtype")
return;
}
}
var col = node.children.tags("treenode");
for (var i = 0; i < col.length; i++)
{
modifyNodesByType(col[i], type, att);
}
}
function modifyNodesInheritingFromRoot(root, att, value)
{
if (root != contentNode)
{
if (root.subtree == null)
return;
if (inheritsFromRoot(root, att))
{
modifyNode(root, att, value, null);
if (att == "type" || att == "childtype")
return;
}
}
var col = root.children.tags("treenode");
for (var i = 0; i < col.length; i++)
{
modifyNodesInheritingFromRoot(col[i], att, value);
}
}
function inheritsFromRoot(node, att)
{
if (node.getAttribute(att) != null)
return false;
if (getNodeTypeAttribute(node, att) != null)
return false;
return true;
}
function private_getNodeTypeAttribute(tnt, name)
{
return tnt.getAttribute(name.toLowerCase());
}
function private_setNodeTypeAttribute(tnt, name, value)
{
var lname = name.toLowerCase();
if (lname == "outerhtml")
return;
var old = tnt.getAttribute(name, value);
tnt.setAttribute(name, value, 0);
if (tnt.parentElement == null)
return;
switch (lname)
{
case "text":
case "innertext":
break;
case "expandable":
if (verifyExpandableValue(value) == true)
modifyNodesByType(contentNode, tnt.getAttribute("type"), lname);
else
tnt.setAttribute(name, old, 0);
break;
default:
modifyNodesByType(contentNode, tnt.getAttribute("type"), lname);
break;
}
}
function createTreeNode()
{
var realNode = element.document.createElement("treenode");
return private_getTreeNode(realNode);
}
function getTreeNode(index)
{
var node = getNodeFromIndex(index);
if (node == null)
return null;
return private_getTreeNode(node);
}
function private_getTreeNode(node)
{
var obj = new Object();
obj.addAt = function(index, newnode)
{
if (newnode._real != null)
private_addAt(node, index, newnode._real);
else
{
var temp = private_getTreeNode(node);
temp._real = node;
newnode.addTo(index, temp);
}
};
obj.addTo = function(index, parent)
{
if (parent._real != null)
private_addAt(parent._real, index, node);
else
{
var temp = private_getTreeNode(node);
temp._real = node;
parent.addAt(index, temp);
}
};
obj.add = function(newnode) { obj.addAt(node.children.tags("treenode").length, newnode); };
obj.remove = function() { private_remove(node); };
obj.databind = function() { private_databind(node); };
obj.getAttribute = function(name) { return private_getAttribute(node, name); };
obj.setAttribute = function(name, value) { private_setAttribute(node, name, value); };
obj._real = null;
obj.findAttribute = function(name) { return getNodeAttribute(node, name); };
obj.getNodeIndex = function()
{
var index = getNodeIndex(node);
if (index == "")
return null;
return index;
};
obj.getParent = function()
{
if (node.parentElement == null || node.parentElement.tagName.toLowerCase() != "treenode")
return null;
else
return private_getTreeNode(node.parentElement);
};
obj.getChildren = function() { return private_getChildren(node); };
return obj;
}
function addAt(index, node)
{
node.addTo(index, private_getTreeNode(contentNode));
}
function add(node)
{
node.addTo(contentNode.children.tags("treenode").length, private_getTreeNode(contentNode));
}
function private_addAt(parent, index, child)
{
if (child.parentElement != null)
return;
var col = parent.children.tags("treenode");
var iCount = col.length;
if (index < 0 || index > iCount)
return;
var selectedNode = getNodeFromIndex(selectedNodeIndex);
if (index == iCount)
parent.appendChild(child);
else
{
col[index].insertAdjacentElement("beforeBegin", child);
}
child.sibIndex = index;
for (var i = index; i <= iCount; i++)
col[i].sibIndex = i;
if (selectedNode != null && index < selectedNode.sibIndex)
prop_selectedNodeIndex = getNodeIndex(selectedNode);
var p = parent;
while (p != null && p.tagName.toLowerCase() == "treenode")
p = p.parentElement;
if (p != null && p.tagName.toLowerCase() != "treeview")
return;
if (parent.getAttribute("expanded") == true || parent == contentNode)
{
var disptree = buildTree(child, getNodeLevel(child));
if (index == iCount)
{
if (parent.subtree == null)
{
if (parent == contentNode)
tryToBuildTreeFromRoot();
else
parent.subtree = disptree;
}
else
{
if (parent == contentNode)
treeviewNode.subtree.appendChild(disptree);
else
parent.subtree.appendChild(disptree);
}
}
else
col[index + 1].subtree.insertAdjacentElement("beforeBegin", disptree);
if (element.getAttribute("showlines") != false && index > 0 && col[index - 1].getAttribute("expanded") == true)
{
buildTree(col[index - 1], getNodeLevel(col[index - 1]));
if (selectedNodeIndex.indexOf(getNodeIndex(col[index - 1])) == 0)
reselectNode(getNodeFromIndex(selectedNodeIndex));
}
}
if (iCount == 0)
{
if (parent != contentNode)
replaceJunctionNode(parent);
}
else if (index == iCount)
replaceJunctionNode(col[index - 1]);
else if (index == 0)
replaceJunctionNode(col[1]);
if (selectedNode != null)
prop_selectedNodeIndex = getNodeIndex(selectedNode);
else
selectNode(child);
}
function private_remove(node)
{
if (node.parentElement == null)
return null;
var parent = node.parentElement;
var col = parent.children.tags("treenode");
var iCount = col.length;
var sibindex = node.sibIndex;
var selectedNode = getNodeFromIndex(selectedNodeIndex);
var nodeIndex = getNodeIndex(node);
node.subtree.removeNode(true);
node.subtree = null;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -