fix odl patches
[ccsdk/distribution.git] / dgbuilder / public / util / js / dgeToXml.js.imp
1 function getNodeToXml(){
2                 var nodeSet=[];
3                 var activeWorkspace=RED.view.getWorkspace();
4                 RED.nodes.eachNode(function(n) {
5                         if (n.z == activeWorkspace) {
6                                 nodeSet.push({n:n});
7                         }
8                 });
9
10                 var exportableNodeSet = RED.nodes.createExportableNodeSet(nodeSet);
11                 console.dir(exportableNodeSet);
12                 console.log(JSON.stringify(exportableNodeSet));
13
14                 function getDgStartNode(nodeList){
15                         for(var i=0;i<nodeList.length;i++){
16                                 if(nodeList[i].type == 'dgstart'){
17                                         return nodeList[i];
18                                 }       
19                         }
20                         return null;
21                 }
22                 function getNode(id){
23                         for(var i=0;i<exportableNodeSet.length;i++){
24                                 if(exportableNodeSet[i].id == id){
25                                         return exportableNodeSet[i];
26                                 }       
27                         }
28                         return null;
29                 }
30
31                 function getStartTag(node){
32                         var startTag="";
33                         var xmlStr="";
34                         if(node != null && node.type != 'dgstart'){
35                                 xmlStr=node.xml;
36                                 var regex = /(<)([\w-]+)(.*)?/;
37                                 var match = regex.exec(xmlStr);
38                                 if(match != null){
39                                         if(match[1] != undefined && match[2] != undefined){
40                                                 startTag = match[2];
41                                         }
42                                 }else{
43                                         console.log("startTag not found.");
44                                 }       
45                         }
46                         return startTag;
47                 }
48
49                 var dgstartNode = getDgStartNode(exportableNodeSet);
50
51                 var level=0;
52                 var fullXmlStr="";
53
54                 printXml(dgstartNode);
55                 
56
57                 function printXml(node){
58                         var xmlStr="";
59                         var startTag = "";
60                         if(node != null && node.type != 'dgstart'){
61                                 xmlStr=node.xml;
62                                 startTag = getStartTag(node);
63                                 if(level > 0){
64                                         var spacing = Array(level).join("  ");  
65                                         xmlStr=xmlStr.replace(/\n/g,spacing);
66                                         fullXmlStr +=xmlStr;
67                                         
68                                         console.log(xmlStr);
69                                 }else{
70                                         fullXmlStr +=xmlStr;
71                                         console.log(xmlStr);
72                                 }
73                         }
74
75                         //console.log("startTag:" + startTag);
76         
77                         var wiredNodes = [];
78                         if(node != null && node.wires != null && node.wires[0] != null &&  node.wires[0] != undefined && node.wires[0].length >0 ){
79                                 wiredNodes=node.wires[0];
80                                 //sort based on y position
81                                 wiredNodes.sort(function(a, b){
82                                         return a.y-b.y;
83                                 });
84                         }
85
86                         for(var k=0;wiredNodes != null && k<wiredNodes.length;k++){
87                                 level++;
88                                 var nd = getNode(wiredNodes[k]);
89                                 printXml(nd);
90                         }
91
92                         //append end tag
93                         if(startTag != ""){
94                                 if(level >0){
95                                         var spacing = Array(level).join("  ");  
96                                         fullXmlStr += spacing + "</" + startTag + ">";
97                                         console.log(spacing + "</" + startTag + ">");
98                                 }else{
99                                         fullXmlStr += "</" + startTag + ">";
100                                         console.log("</" + startTag + ">");
101                                 }
102                         }       
103
104                         if(level>0){
105                                 level=level-1;
106                         }
107                         console.log("endTag:" + startTag);
108                         //console.log("xml:" + fullXmlStr);
109                 }
110                 console.log("fullXmlStr:" + fullXmlStr);
111
112                 /*
113                 for (var link in allLinks){
114                         var nd = RED.nodes.node(link);
115                         console.dir(nd);                                                 
116                         var obj = RED.nodes.getNodeSet(RED.view.getWorkspace());
117                         console.dir(obj);
118                 }
119                 */
120
121
122                 //console.dir(RED.nodes.getAllFlowNodes());
123                 //console.dir(RED.nodes.getType());
124                 /*
125                 console.dir(RED.nodes.nodes);
126                 RED.nodes.nodes.forEach(function (node){
127                         console.dir(node);
128                 });
129                 */
130
131             /*var map = {68: false, 69: false, 86: false};
132             $("#node-input-validate").keydown(function(e) {
133                 if (e.keyCode in map) {
134                         map[e.keyCode] = true;
135                         if (map[68] && map[69] && map[86]) {
136                                 // FIRE EVENT
137                                 return "abcd";
138                         }
139                 }
140                 }).keyup(function(e) {
141                         if (e.keyCode in map) {
142                                 map[e.keyCode] = false;
143                         }
144                 });
145         */      
146         return fullXmlStr;
147 }