Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / Exporter.html
1 <html>\r
2 <head>\r
3   <title>The source code</title>\r
4     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
5     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
6 </head>\r
7 <body  onload="prettyPrint();">\r
8     <pre class="prettyprint lang-js">tx.Exporter = function(){\r
9         var lists = tx.data.conn.query('select * from list');\r
10         \r
11         var doc = new runtime.flash.xml.XMLDocument();\r
12         \r
13         var root = doc.createElement('simple-tasks');\r
14         doc.appendChild(root);\r
15         \r
16         root.attributes['version'] = '2.0';\r
17         \r
18         for(var i = 0, len = lists.length; i < len; i++){\r
19                 var list = lists[i];\r
20                 \r
21                 var listNode = doc.createElement('list');\r
22                 root.appendChild(listNode);\r
23                 \r
24                 for(var k in list){\r
25                         if(list.hasOwnProperty(k)){\r
26                                 listNode.attributes[k] = String(list[k]);\r
27                         }\r
28                 }\r
29                 \r
30                 var tasks = tx.data.conn.queryBy('select * from task where listId = ?', [list.listId]);\r
31                 for(var j = 0, jlen = tasks.length; j < jlen; j++){\r
32                         var task = tasks[j];\r
33                         \r
34                         var taskNode = doc.createElement('task');\r
35                         listNode.appendChild(taskNode);\r
36                         \r
37                         for(var t in task){\r
38                                 if(task.hasOwnProperty(t)){\r
39                                         taskNode.attributes[t] = String(task[t]);\r
40                                 }\r
41                         }\r
42                 }\r
43         }\r
44         \r
45         var file = new air.File(air.File.documentsDirectory.nativePath + air.File.separator + 'tasks.xml');\r
46         \r
47         file.addEventListener('select', function(e){\r
48                 var target = e.target;\r
49                 var stream = new air.FileStream();\r
50         stream.open(target, air.FileMode.WRITE);\r
51                 stream.writeUTFBytes('<?xml version="1.0" encoding="UTF-8"?>');\r
52         stream.writeUTFBytes(doc.toString());\r
53         stream.close();\r
54         });\r
55         \r
56         // I wonder why no filter for Save As?\r
57         // var filter = new air.FileFilter("Tasks XML File", "*.xml");\r
58         file.browseForSave('Save As');\r
59 };\r
60 </pre>    \r
61 </body>\r
62 </html>