+++ /dev/null
-<html>\r
-<head>\r
- <title>The source code</title>\r
- <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
- <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
-</head>\r
-<body onload="prettyPrint();">\r
- <pre class="prettyprint lang-js">tx.Exporter = function(){\r
- var lists = tx.data.conn.query('select * from list');\r
- \r
- var doc = new runtime.flash.xml.XMLDocument();\r
- \r
- var root = doc.createElement('simple-tasks');\r
- doc.appendChild(root);\r
- \r
- root.attributes['version'] = '2.0';\r
- \r
- for(var i = 0, len = lists.length; i < len; i++){\r
- var list = lists[i];\r
- \r
- var listNode = doc.createElement('list');\r
- root.appendChild(listNode);\r
- \r
- for(var k in list){\r
- if(list.hasOwnProperty(k)){\r
- listNode.attributes[k] = String(list[k]);\r
- }\r
- }\r
- \r
- var tasks = tx.data.conn.queryBy('select * from task where listId = ?', [list.listId]);\r
- for(var j = 0, jlen = tasks.length; j < jlen; j++){\r
- var task = tasks[j];\r
- \r
- var taskNode = doc.createElement('task');\r
- listNode.appendChild(taskNode);\r
- \r
- for(var t in task){\r
- if(task.hasOwnProperty(t)){\r
- taskNode.attributes[t] = String(task[t]);\r
- }\r
- }\r
- }\r
- }\r
- \r
- var file = new air.File(air.File.documentsDirectory.nativePath + air.File.separator + 'tasks.xml');\r
- \r
- file.addEventListener('select', function(e){\r
- var target = e.target;\r
- var stream = new air.FileStream();\r
- stream.open(target, air.FileMode.WRITE);\r
- stream.writeUTFBytes('<?xml version="1.0" encoding="UTF-8"?>');\r
- stream.writeUTFBytes(doc.toString());\r
- stream.close();\r
- });\r
- \r
- // I wonder why no filter for Save As?\r
- // var filter = new air.FileFilter("Tasks XML File", "*.xml");\r
- file.browseForSave('Save As');\r
-};\r
-</pre> \r
-</body>\r
-</html>
\ No newline at end of file