1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.log4j.chainsaw.xstream;
18
19 import javax.swing.table.TableColumn;
20
21 import com.thoughtworks.xstream.converters.Converter;
22 import com.thoughtworks.xstream.converters.MarshallingContext;
23 import com.thoughtworks.xstream.converters.UnmarshallingContext;
24 import com.thoughtworks.xstream.io.HierarchicalStreamReader;
25 import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
26
27
28
29
30
31
32
33
34
35
36 public class TableColumnConverter implements Converter {
37
38 public boolean canConvert(Class type) {
39 return TableColumn.class.equals(type);
40 }
41
42 public void marshal(Object source, HierarchicalStreamWriter writer,
43 MarshallingContext context) {
44 TableColumn column = (TableColumn) source;
45 writer.addAttribute("width", column.getWidth() + "");
46 writer.addAttribute("modelIndex", column.getModelIndex() + "");
47 writer.addAttribute("headerValue", column.getHeaderValue().toString());
48 }
49
50 public Object unmarshal(HierarchicalStreamReader reader,
51 UnmarshallingContext context) {
52 TableColumn column = new TableColumn();
53 column.setWidth(Integer.parseInt(reader.getAttribute("width")));
54 column.setPreferredWidth(column.getWidth());
55 column.setModelIndex(Integer
56 .parseInt(reader.getAttribute("modelIndex")));
57 column.setHeaderValue(reader.getAttribute("headerValue"));
58 return column;
59 }
60
61 }