1 19 package org.columba.mail.gui.messageframe; 20 21 import java.awt.BorderLayout ; 22 import java.io.IOException ; 23 import java.io.InputStream ; 24 25 import javax.swing.JComponent ; 26 import javax.swing.JPanel ; 27 28 import org.columba.api.gui.frame.IContainer; 29 import org.columba.api.gui.frame.IDock; 30 import org.columba.api.gui.frame.IDockable; 31 import org.columba.core.gui.frame.FrameManager; 32 import org.columba.core.io.DiskIO; 33 import org.columba.mail.command.IMailFolderCommandReference; 34 import org.columba.mail.gui.frame.AbstractMailFrameController; 35 import org.columba.mail.gui.frame.TableViewOwner; 36 import org.columba.mail.gui.frame.ThreePaneMailFrameController; 37 import org.columba.mail.gui.table.ITableController; 38 import org.columba.mail.util.MailResourceLoader; 39 40 53 public class MessageFrameController extends AbstractMailFrameController 54 implements TableViewOwner { 55 56 IMailFolderCommandReference treeReference; 57 58 IMailFolderCommandReference tableReference; 59 60 FixedTableSelectionHandler tableSelectionHandler; 61 62 private ThreePaneMailFrameController parentController; 63 64 private IDockable messageViewerDockable; 65 66 69 public MessageFrameController() { 70 super(FrameManager.getInstance().createCustomViewItem("Messageframe")); 71 72 76 tableSelectionHandler = new FixedTableSelectionHandler(tableReference); 77 getSelectionManager().addSelectionHandler(tableSelectionHandler); 78 79 } 80 81 85 public MessageFrameController(ThreePaneMailFrameController parent) { 86 this(); 87 88 this.parentController = parent; 89 90 } 91 92 96 public IMailFolderCommandReference getTableSelection() { 97 return tableReference; 98 } 99 100 104 public IMailFolderCommandReference getTreeSelection() { 105 return treeReference; 106 } 107 108 111 public void setTreeSelection(IMailFolderCommandReference references) { 112 treeReference = references; 113 } 114 115 118 public void setTableSelection(IMailFolderCommandReference references) { 119 tableReference = references; 120 121 133 134 tableSelectionHandler.setSelection(tableReference); 135 } 136 137 140 public ITableController getTableController() { 141 if (parentController == null) 142 return null; 143 144 return parentController.getTableController(); 146 } 147 148 151 162 166 public String getString(String sPath, String sName, String sID) { 167 return MailResourceLoader.getString(sPath, sName, sID); 168 } 169 170 173 public void loadDefaultPosition() { 174 175 177 } 178 179 180 181 182 185 public void extendMenu(IContainer container) { 186 try { 187 InputStream is = DiskIO 188 .getResourceStream("org/columba/mail/action/messageframe_menu.xml"); 189 190 container.extendMenu(this, is); 191 192 } catch (IOException e) { 193 e.printStackTrace(); 194 } 195 } 196 197 200 public void extendToolBar(IContainer container) { 201 try { 202 InputStream is = DiskIO 203 .getResourceStream("org/columba/mail/config/messageframe_toolbar.xml"); 204 205 container.extendToolbar(this, is); 206 207 } catch (IOException e) { 208 e.printStackTrace(); 209 } 210 } 211 212 @Override 213 public JPanel getContentPane() { 214 JPanel panel = new JPanel (); 215 panel.setLayout(new BorderLayout ()); 216 217 panel.add(messageController, BorderLayout.CENTER); 218 219 220 221 return panel; 222 } 223 224 } | Popular Tags |