1 | /* |
---|
2 | * Ext JS Library 0.30 |
---|
3 | * Copyright(c) 2006-2009, Ext JS, LLC. |
---|
4 | * licensing@extjs.com |
---|
5 | * |
---|
6 | * http://extjs.com/license |
---|
7 | */ |
---|
8 | |
---|
9 | tx.Exporter = function(){ |
---|
10 | var lists = tx.data.conn.query('select * from list'); |
---|
11 | |
---|
12 | var doc = new runtime.flash.xml.XMLDocument(); |
---|
13 | |
---|
14 | var root = doc.createElement('simple-tasks'); |
---|
15 | doc.appendChild(root); |
---|
16 | |
---|
17 | root.attributes['version'] = '2.0'; |
---|
18 | |
---|
19 | for(var i = 0, len = lists.length; i < len; i++){ |
---|
20 | var list = lists[i]; |
---|
21 | |
---|
22 | var listNode = doc.createElement('list'); |
---|
23 | root.appendChild(listNode); |
---|
24 | |
---|
25 | for(var k in list){ |
---|
26 | if(list.hasOwnProperty(k)){ |
---|
27 | listNode.attributes[k] = String(list[k]); |
---|
28 | } |
---|
29 | } |
---|
30 | |
---|
31 | var tasks = tx.data.conn.queryBy('select * from task where listId = ?', [list.listId]); |
---|
32 | for(var j = 0, jlen = tasks.length; j < jlen; j++){ |
---|
33 | var task = tasks[j]; |
---|
34 | |
---|
35 | var taskNode = doc.createElement('task'); |
---|
36 | listNode.appendChild(taskNode); |
---|
37 | |
---|
38 | for(var t in task){ |
---|
39 | if(task.hasOwnProperty(t)){ |
---|
40 | taskNode.attributes[t] = String(task[t]); |
---|
41 | } |
---|
42 | } |
---|
43 | } |
---|
44 | } |
---|
45 | |
---|
46 | var file = new air.File(air.File.documentsDirectory.nativePath + air.File.separator + 'tasks.xml'); |
---|
47 | |
---|
48 | file.addEventListener('select', function(e){ |
---|
49 | var target = e.target; |
---|
50 | var stream = new air.FileStream(); |
---|
51 | stream.open(target, air.FileMode.WRITE); |
---|
52 | stream.writeUTFBytes('<?xml version="1.0" encoding="UTF-8"?>'); |
---|
53 | stream.writeUTFBytes(doc.toString()); |
---|
54 | stream.close(); |
---|
55 | }); |
---|
56 | |
---|
57 | // I wonder why no filter for Save As? |
---|
58 | // var filter = new air.FileFilter("Tasks XML File", "*.xml"); |
---|
59 | file.browseForSave('Save As'); |
---|
60 | }; |
---|