123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- function AttributeTreeStreamer() {
- this.getAttributeTreeFromXML = function(xmlDoc) {
-
- var attrTree = new AttributeTree();
-
-
-
- var root = null;
- for (var i = 0; (i < xmlDoc.childNodes.length && root == null); i++) {
- if (xmlDoc.childNodes[i].nodeName == "admin")
- root = xmlDoc.childNodes[i];
- }
-
- if (root.childNodes[0].getAttribute("name") == "TreeRoot")
- root = root.childNodes[0];
-
- if (root) {
- for (var i = 0; i < root.childNodes.length; i++)
- createAttributeNode(root.childNodes[i], attrTree.getRoot());
- }
-
- return attrTree;
- }
-
- function createAttributeNode(domNode, parentAttNode) {
- var node = null;
- var name = domNode.getAttribute("name");
-
- if (domNode.getAttribute("type") == "folder") {
- node = new AttributeTreeNodeFolder(name);
-
- for (var i = 0; i < domNode.childNodes.length; i++)
- createAttributeNode(domNode.childNodes[i],node);
-
- } else if (domNode.getAttribute("type") == "int") {
- node = new AttributeTreeNodeInt(name,
- parseInt(domNode.getAttribute("value")),
- domNode.getAttribute("subtype"),
- (domNode.getAttribute("specialized") == '1'));
- } else if (domNode.getAttribute("type") == "string") {
- node = new AttributeTreeNodeString(name,
- domNode.getAttribute("value"),
- domNode.getAttribute("subtype"),
- (domNode.getAttribute("specialized") == '1'));
- }
-
- if (node) {
- parentAttNode.addChild(name,node);
- }
- }
-
- this.getXMLFromAttributeTree = function(attributeTree) {
-
-
- var xmlDoc;
-
- if (window.ActiveXObject)
- {
- xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
- }
-
- else if (document.implementation && document.implementation.createDocument)
- {
- xmlDoc=document.implementation.createDocument("","",null);
- }
-
-
-
- var admin = xmlDoc.createElement("admin");
- admin.setAttribute("version","1");
-
- var rootFolder = createXMLNode(xmlDoc, attributeTree.getRoot());
-
- admin.appendChild(rootFolder);
-
- xmlDoc.appendChild(admin);
-
- return xmlDoc;
- }
-
- function createXMLNode(doc, attTreeNode) {
-
- var node = doc.createElement("node");
- node.setAttribute("type",attTreeNode.type);
- node.setAttribute("name",attTreeNode.name);
- if (attTreeNode.type == "folder") {
-
- var children = attTreeNode.getChildren();
- for (var i = 0; i < children.length; i++)
- node.appendChild(createXMLNode(doc, children[i]));
-
- } else if (attTreeNode.type == "int") {
- node.setAttribute("subtype",attTreeNode.subType);
- node.setAttribute("specialized",(attTreeNode.specialized)? "1" : "0");
- node.setAttribute("value",attTreeNode.value);
-
- } else if (attTreeNode.type == "string") {
- node.setAttribute("subtype",attTreeNode.subType);
- node.setAttribute("specialized",(attTreeNode.specialized)? "1" : "0");
- node.setAttribute("value",attTreeNode.value);
-
- }
-
- return node;
-
- }
- }
|