1 package org.columba.mail.gui.frame; 19 20 import java.nio.charset.Charset ; 21 22 import javax.swing.event.EventListenerList ; 23 24 import org.columba.api.selection.ISelectionListener; 25 import org.columba.core.charset.CharsetEvent; 26 import org.columba.core.charset.CharsetListener; 27 import org.columba.core.charset.CharsetOwnerInterface; 28 import org.columba.core.config.ViewItem; 29 import org.columba.core.gui.frame.DockFrameController; 30 import org.columba.mail.command.IMailFolderCommandReference; 31 import org.columba.mail.command.MailFolderCommandReference; 32 import org.columba.mail.folderoptions.FolderOptionsController; 33 import org.columba.mail.folderoptions.IFolderOptionsController; 34 import org.columba.mail.gui.message.IMessageController; 35 import org.columba.mail.gui.message.MessageController; 36 import org.columba.mail.gui.table.selection.TableSelectionHandler; 37 import org.columba.mail.gui.tree.selection.TreeSelectionHandler; 38 39 43 public abstract class AbstractMailFrameController extends DockFrameController 44 implements MailFrameMediator, MessageViewOwner, CharsetOwnerInterface { 45 46 public MessageController messageController; 47 48 private IFolderOptionsController folderOptionsController; 49 50 protected EventListenerList listenerList = new EventListenerList (); 51 52 private Charset charset; 55 56 public AbstractMailFrameController(String id) { 57 super(id); 58 59 initComponents(); 60 61 } 62 63 67 public AbstractMailFrameController(ViewItem viewItem) { 68 super(viewItem); 69 70 initComponents(); 71 } 72 73 private void initComponents() { 74 messageController = new MessageController(this); 75 76 folderOptionsController = new FolderOptionsController(this); 77 } 78 79 90 91 public IMailFolderCommandReference getTableSelection() { 92 MailFolderCommandReference r = (MailFolderCommandReference) getSelectionManager() 93 .getSelection(TableSelectionHandler.HANDLER_ID); 94 95 return r; 96 } 97 98 public void setTableSelection(IMailFolderCommandReference r) { 99 getSelectionManager().setSelection(TableSelectionHandler.HANDLER_ID, r); 100 } 101 102 public IMailFolderCommandReference getTreeSelection() { 103 MailFolderCommandReference r = (MailFolderCommandReference) getSelectionManager() 104 .getSelection(TreeSelectionHandler.HANDLER_ID); 105 106 return r; 107 } 108 109 public void setTreeSelection(IMailFolderCommandReference r) { 110 getSelectionManager().setSelection(TreeSelectionHandler.HANDLER_ID, r); 111 } 112 113 public void registerTableSelectionListener(ISelectionListener l) { 114 getSelectionManager().registerSelectionListener( 115 TableSelectionHandler.HANDLER_ID, l); 116 } 117 118 public void registerTreeSelectionListener(ISelectionListener l) { 119 getSelectionManager().registerSelectionListener( 120 TreeSelectionHandler.HANDLER_ID, l); 121 } 122 123 126 public void removeTableSelectionListener(ISelectionListener l) { 127 getSelectionManager().removeSelectionListener( 128 TableSelectionHandler.HANDLER_ID, l); 129 } 130 131 134 public void removeTreeSelectionListener(ISelectionListener l) { 135 getSelectionManager().removeSelectionListener( 136 TreeSelectionHandler.HANDLER_ID, l); 137 } 138 139 142 public IFolderOptionsController getFolderOptionsController() { 143 return folderOptionsController; 144 } 145 146 149 public IMessageController getMessageController() { 150 return messageController; 151 } 152 153 public void setCharset(Charset charset) { 154 this.charset = charset; 155 fireCharsetChanged(new CharsetEvent(this, charset)); 156 } 157 158 public void removeCharsetListener(CharsetListener l) { 159 listenerList.remove(CharsetListener.class, l); 160 } 161 162 public Charset getCharset() { 163 return charset; 164 } 165 166 public void addCharsetListener(CharsetListener l) { 167 listenerList.add(CharsetListener.class, l); 168 } 169 170 protected void fireCharsetChanged(CharsetEvent e) { 171 Object [] listeners = listenerList.getListenerList(); 173 174 for (int i = listeners.length - 2; i >= 0; i -= 2) { 177 if (listeners[i] == CharsetListener.class) { 178 ((CharsetListener) listeners[i + 1]).charsetChanged(e); 179 } 180 } 181 } 182 183 184 185 } | Popular Tags |