~ubuntu-branches/ubuntu/oneiric/tuxguitar/oneiric

« back to all changes in this revision

Viewing changes to TuxGuitar/src/org/herac/tuxguitar/gui/tools/browser/xml/TGBrowserWriter.java

  • Committer: Bazaar Package Importer
  • Author(s): Philippe Coval
  • Date: 2008-06-19 00:30:30 UTC
  • mto: (5.1.2 sid)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20080619003030-h719szrhsngou7c6
Tags: upstream-1.0
ImportĀ upstreamĀ versionĀ 1.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.herac.tuxguitar.gui.tools.browser.xml;
 
2
 
 
3
import java.io.File;
 
4
import java.io.FileNotFoundException;
 
5
import java.io.FileOutputStream;
 
6
import java.util.Iterator;
 
7
 
 
8
import javax.xml.parsers.DocumentBuilder;
 
9
import javax.xml.parsers.DocumentBuilderFactory;
 
10
import javax.xml.parsers.FactoryConfigurationError;
 
11
import javax.xml.parsers.ParserConfigurationException;
 
12
import javax.xml.transform.OutputKeys;
 
13
import javax.xml.transform.Result;
 
14
import javax.xml.transform.Source;
 
15
import javax.xml.transform.Transformer;
 
16
import javax.xml.transform.TransformerConfigurationException;
 
17
import javax.xml.transform.TransformerException;
 
18
import javax.xml.transform.TransformerFactory;
 
19
import javax.xml.transform.dom.DOMSource;
 
20
import javax.xml.transform.stream.StreamResult;
 
21
 
 
22
import org.herac.tuxguitar.gui.tools.browser.TGBrowserCollection;
 
23
import org.herac.tuxguitar.gui.tools.browser.TGBrowserManager;
 
24
import org.w3c.dom.Attr;
 
25
import org.w3c.dom.Document;
 
26
import org.w3c.dom.Node;
 
27
 
 
28
public class TGBrowserWriter {
 
29
        
 
30
        private static final String ITEM_LIST_TAG = "browser-collections";
 
31
        private static final String ITEM_TAG = "browser-collection";
 
32
        private static final String ATTRIBUTE_TYPE = "type";
 
33
        private static final String ATTRIBUTE_DATA = "data";
 
34
        
 
35
        public void saveCollections(TGBrowserManager manager,String fileName) {
 
36
                try{
 
37
                        Document doc = createDocument();
 
38
                        saveCollections(manager,doc);
 
39
                        saveDocument(doc,new File(fileName));
 
40
                }catch(Throwable throwable){
 
41
                        throwable.printStackTrace();
 
42
                }
 
43
        }
 
44
        
 
45
        private static void saveCollections(TGBrowserManager manager,Document document){
 
46
                //chords tag
 
47
                Node listNode = document.createElement(ITEM_LIST_TAG);
 
48
                
 
49
                Iterator collections = manager.getCollections();
 
50
                while(collections.hasNext()){
 
51
                        TGBrowserCollection collection = (TGBrowserCollection)collections.next();
 
52
                        
 
53
                        //chord tag
 
54
                        Node node = document.createElement(ITEM_TAG);
 
55
                        listNode.appendChild(node);
 
56
                        
 
57
                        //name attribute
 
58
                        Attr typeAttr = document.createAttribute(ATTRIBUTE_TYPE);
 
59
                        typeAttr.setNodeValue(collection.getType());
 
60
                        
 
61
                        //name attribute
 
62
                        Attr dataAttr = document.createAttribute(ATTRIBUTE_DATA);
 
63
                        dataAttr.setNodeValue(collection.getData().toString());
 
64
                        
 
65
                        node.getAttributes().setNamedItem(typeAttr);
 
66
                        node.getAttributes().setNamedItem(dataAttr);
 
67
                }
 
68
                
 
69
                document.appendChild(listNode);
 
70
        }
 
71
        
 
72
        public static Document createDocument() {
 
73
                Document document = null;
 
74
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 
75
                try {
 
76
                        DocumentBuilder builder = factory.newDocumentBuilder();
 
77
                        document = builder.newDocument();
 
78
                }catch (ParserConfigurationException pce) {
 
79
                        pce.printStackTrace();
 
80
                }
 
81
                return document;
 
82
        }
 
83
        
 
84
        public static void saveDocument(Document document,File file) {
 
85
                try {
 
86
                        FileOutputStream fs = new FileOutputStream(file);
 
87
                        
 
88
                        // Write it out again
 
89
                        TransformerFactory xformFactory = TransformerFactory.newInstance();
 
90
                        Transformer idTransform = xformFactory.newTransformer();
 
91
                        Source input = new DOMSource(document);
 
92
                        Result output = new StreamResult(fs);
 
93
                        idTransform.setOutputProperty(OutputKeys.INDENT, "yes");
 
94
                        idTransform.transform(input, output);
 
95
                        
 
96
                } catch (FactoryConfigurationError e) {
 
97
                        e.printStackTrace();
 
98
                } catch (TransformerConfigurationException e) {
 
99
                        e.printStackTrace();
 
100
                } catch (TransformerException e) {
 
101
                        e.printStackTrace();
 
102
                } catch (FileNotFoundException e) {
 
103
                        e.printStackTrace();
 
104
                }
 
105
        }
 
106
        
 
107
}