View Javadoc

1   package org.apache.log4j.chainsaw.xstream;
2   
3   import javax.swing.table.TableColumn;
4   
5   import com.thoughtworks.xstream.converters.Converter;
6   import com.thoughtworks.xstream.converters.MarshallingContext;
7   import com.thoughtworks.xstream.converters.UnmarshallingContext;
8   import com.thoughtworks.xstream.io.HierarchicalStreamReader;
9   import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
10  
11  /***
12   * XStream Converter implementation that deals with TableColumns settings
13   * 
14   * @see Converter
15   * @see XStream
16   * @see TableColumn
17   * @author psmith
18   * 
19   */
20  public class TableColumnConverter implements Converter {
21  
22      public boolean canConvert(Class type) {
23          return TableColumn.class.equals(type);
24      }
25  
26      public void marshal(Object source, HierarchicalStreamWriter writer,
27              MarshallingContext context) {
28          TableColumn column = (TableColumn) source;
29          writer.addAttribute("width", column.getWidth() + "");
30          writer.addAttribute("modelIndex", column.getModelIndex() + "");
31          writer.addAttribute("headerValue", column.getHeaderValue().toString());
32      }
33  
34      public Object unmarshal(HierarchicalStreamReader reader,
35              UnmarshallingContext context) {
36          TableColumn column = new TableColumn();
37          column.setWidth(Integer.parseInt(reader.getAttribute("width")));
38          column.setPreferredWidth(column.getWidth());
39          column.setModelIndex(Integer
40                  .parseInt(reader.getAttribute("modelIndex")));
41          column.setHeaderValue(reader.getAttribute("headerValue"));
42          return column;
43      }
44  
45  }