source: trunk/org/expeditee/io/TXTWriter.java@ 4

Last change on this file since 4 was 4, checked in by davidb, 16 years ago

Starting source code to Expeditee

File size: 1.9 KB
Line 
1package org.expeditee.io;
2
3import java.io.IOException;
4import java.util.List;
5
6import org.expeditee.gui.Frame;
7import org.expeditee.items.Item;
8import org.expeditee.items.ItemUtils;
9import org.expeditee.items.Text;
10
11public class TXTWriter extends DefaultTreeWriter implements FrameWriter {
12
13 private boolean _join = false;
14
15 private int _indent = 0;
16
17 @Override
18 protected void initialise(Frame start) throws IOException {
19 _format = ".txt";
20 super.initialise(start);
21 }
22
23 @Override
24 protected void writeStartFrame(Frame toParse) throws IOException {
25 if (ItemUtils.ContainsTag(toParse.getItems(), "@join"))
26 _join = !_join;
27
28 if (ItemUtils.ContainsTag(toParse.getItems(), "@indent"))
29 _indent++;
30
31 super.writeStartFrame(toParse);
32 }
33
34 @Override
35 protected void writeTitle(Text title, List<Item> items) throws IOException {
36 int indent = 0;
37
38 if (_indent > 0)
39 indent = _indent - 1;
40
41 for (String s : title.getText()) {
42
43 for (int i = 0; i < indent; i++)
44 _writer.write("\t");
45
46 _writer.write(s);
47 _writer.write(ItemWriter.NEW_LINE);
48 }
49
50 if (!_join)
51 _writer.write(ItemWriter.NEW_LINE);
52 }
53
54 @Override
55 protected void writeEndFrame(Frame toParse) throws IOException {
56 if (ItemUtils.ContainsTag(toParse.getItems(), "@indent"))
57 if (_indent > 0)
58 _indent--;
59
60 if (ItemUtils.ContainsTag(toParse.getItems(), "@join"))
61 _join = !_join;
62
63 _writer.write(ItemWriter.NEW_LINE);
64 }
65
66 @Override
67 protected void resumeFrame(Frame resuming) {
68 _join = ItemUtils.ContainsTag(resuming.getItems(), "@join");
69 }
70
71 @Override
72 protected void writeText(Text text) throws IOException {
73 for (String s : text.getText()) {
74
75 for (int i = 0; i < _indent; i++)
76 _writer.write("\t");
77
78 _writer.write(s);
79 _writer.write(ItemWriter.NEW_LINE);
80 }
81
82 if (!_join)
83 _writer.write(ItemWriter.NEW_LINE);
84 }
85
86 @Override
87 protected void writeAnnotationText(Text toWrite) throws IOException {
88 if (toWrite.startsWith("@BlankLine"))
89 _writer.write(ItemWriter.NEW_LINE);
90 }
91}
Note: See TracBrowser for help on using the repository browser.