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
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
11 var doc = new runtime.flash.xml.XMLDocument();
\r
13 var root = doc.createElement('simple-tasks');
\r
14 doc.appendChild(root);
\r
16 root.attributes['version'] = '2.0';
\r
18 for(var i = 0, len = lists.length; i < len; i++){
\r
19 var list = lists[i];
\r
21 var listNode = doc.createElement('list');
\r
22 root.appendChild(listNode);
\r
25 if(list.hasOwnProperty(k)){
\r
26 listNode.attributes[k] = String(list[k]);
\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
34 var taskNode = doc.createElement('task');
\r
35 listNode.appendChild(taskNode);
\r
38 if(task.hasOwnProperty(t)){
\r
39 taskNode.attributes[t] = String(task[t]);
\r
45 var file = new air.File(air.File.documentsDirectory.nativePath + air.File.separator + 'tasks.xml');
\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
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