1 package org.columba.mail.folderoptions; 17 18 import java.util.Enumeration ; 19 20 import javax.swing.table.TableColumn ; 21 22 import org.columa.core.config.IDefaultItem; 23 import org.columba.core.config.DefaultItem; 24 import org.columba.core.xml.XmlElement; 25 import org.columba.mail.folder.IMailbox; 26 import org.columba.mail.gui.frame.MailFrameMediator; 27 import org.columba.mail.gui.frame.TableViewOwner; 28 import org.columba.mail.gui.table.ITableController; 29 30 35 public class ColumnOptionsPlugin extends AbstractFolderOptionsPlugin { 36 public final static String [] COLUMNS = { "Status", "Attachment", "Flagged", 37 "Priority", "Subject", "From", "Date", "Size", "Spam", "To", "Cc", "MultiLine" }; 38 39 45 public ColumnOptionsPlugin(MailFrameMediator mediator) { 46 super("columns", "ColumnOptions", mediator); 47 } 48 49 54 public static String [] getColumns() { 55 return COLUMNS; 56 } 57 58 61 public void saveOptionsToXml(IMailbox folder) { 62 XmlElement columns = getConfigNode(folder); 63 64 ITableController tableController = ((ITableController) ((TableViewOwner) getMediator()) 65 .getTableController()); 66 67 Enumeration enumeration = tableController.getColumnModel().getColumns(); 68 69 if ( tableController.getColumnModel().getColumnCount() == 0) 71 return; 72 73 columns.removeAllElements(); 75 76 while (enumeration.hasMoreElements()) { 77 TableColumn tc = (TableColumn ) enumeration.nextElement(); 78 String name = (String ) tc.getHeaderValue(); 79 80 XmlElement column = new XmlElement("column"); 81 column.addAttribute("name", name); 82 83 int size = tc.getWidth(); 85 column.addAttribute("width", Integer.toString(size)); 86 87 columns.addElement(column); 88 } 89 } 90 91 94 public void loadOptionsFromXml(IMailbox folder) { 95 XmlElement columns = getConfigNode(folder); 96 97 104 105 ITableController tableController = ((ITableController) ((TableViewOwner) getMediator()) 106 .getTableController()); 107 tableController.resetColumnModel(); 108 109 110 for (int i = 0; i < columns.count(); i++) { 112 XmlElement column = columns.getElement(i); 113 IDefaultItem columnItem = new DefaultItem(column); 114 115 String name = columnItem.get("name"); 116 int size = columnItem.getInteger("width"); 117 118 tableController.getHeaderTableModel().addColumn(name); 121 122 TableColumn tc = tableController.createTableColumn(name, size); 124 125 tc.setModelIndex(i); 127 128 tc.setPreferredWidth(size); 130 131 tableController.addColumn(tc); 132 } 133 134 135 } 136 137 140 public XmlElement createDefaultElement(boolean global) { 141 XmlElement columns = super.createDefaultElement(global); 142 143 columns.addElement(createColumn("Status", "23")); 145 columns.addElement(createColumn("Attachment", "23")); 146 columns.addElement(createColumn("Flagged", "23")); 147 columns.addElement(createColumn("Priority", "23")); 148 columns.addElement(createColumn("Subject", "200")); 149 columns.addElement(createColumn("From", "150")); 150 columns.addElement(createColumn("Date", "60")); 151 columns.addElement(createColumn("Size", "30")); 152 columns.addElement(createColumn("Spam", "23")); 153 154 return columns; 155 } 156 157 168 private static XmlElement createColumn(String name, String width) { 169 XmlElement column = new XmlElement("column"); 170 column.addAttribute("name", name); 171 column.addAttribute("width", width); 172 173 return column; 174 } 175 176 181 public void restoreUISettings() { 182 183 } 184 } | Popular Tags |