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 com.thoughtworks.xstream.converters.Converter;
20 import com.thoughtworks.xstream.converters.MarshallingContext;
21 import com.thoughtworks.xstream.converters.UnmarshallingContext;
22 import com.thoughtworks.xstream.io.HierarchicalStreamReader;
23 import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
24
25 import javax.swing.table.TableColumn;
26
27
28
29
30
31
32
33
34
35 public class TableColumnConverter implements Converter {
36
37 public boolean canConvert(Class type) {
38 return TableColumn.class.equals(type);
39 }
40
41 public void marshal(Object source, HierarchicalStreamWriter writer,
42 MarshallingContext context) {
43 TableColumn column = (TableColumn) source;
44 writer.addAttribute("width", column.getWidth() + "");
45 writer.addAttribute("modelIndex", column.getModelIndex() + "");
46 writer.addAttribute("headerValue", column.getHeaderValue().toString());
47 }
48
49 public Object unmarshal(HierarchicalStreamReader reader,
50 UnmarshallingContext context) {
51 TableColumn column = new TableColumn();
52 column.setWidth(Integer.parseInt(reader.getAttribute("width")));
53 column.setPreferredWidth(column.getWidth());
54 column.setModelIndex(Integer
55 .parseInt(reader.getAttribute("modelIndex")));
56 column.setHeaderValue(reader.getAttribute("headerValue"));
57 return column;
58 }
59
60 }