1 package org.columba.mail.gui.table.action; 17 18 import java.awt.Toolkit ; 19 import java.awt.event.ActionEvent ; 20 import java.awt.event.KeyEvent ; 21 import java.util.Observable ; 22 import java.util.Observer ; 23 24 import javax.swing.KeyStroke ; 25 26 import org.columba.api.gui.frame.IFrameMediator; 27 import org.columba.api.selection.ISelectionListener; 28 import org.columba.api.selection.SelectionChangedEvent; 29 import org.columba.core.command.CommandProcessor; 30 import org.columba.core.gui.action.AbstractColumbaAction; 31 import org.columba.core.xml.XmlElement; 32 import org.columba.mail.command.IMailFolderCommandReference; 33 import org.columba.mail.config.MailConfig; 34 import org.columba.mail.gui.composer.command.ForwardCommand; 35 import org.columba.mail.gui.composer.command.ForwardInlineCommand; 36 import org.columba.mail.gui.frame.MailFrameMediator; 37 import org.columba.mail.gui.table.selection.TableSelectionChangedEvent; 38 import org.columba.mail.resourceloader.MailImageLoader; 39 import org.columba.mail.util.MailResourceLoader; 40 41 42 49 public class ForwardAction extends AbstractColumbaAction 50 implements ISelectionListener, Observer { 51 private XmlElement forward; 52 private String forwardStyle; 53 54 public ForwardAction(IFrameMediator frameMediator) { 55 super(frameMediator, 56 MailResourceLoader.getString("menu", "mainframe", 57 "menu_message_forward")); 58 59 putValue(SHORT_DESCRIPTION, 61 MailResourceLoader.getString("menu", "mainframe", 62 "menu_message_forward_tooltip").replaceAll("&", "")); 63 64 putValue(SMALL_ICON, MailImageLoader.getSmallIcon("mail-forward.png")); 66 67 putValue(LARGE_ICON, MailImageLoader.getIcon("mail-forward.png")); 69 70 putValue(ACCELERATOR_KEY, 72 KeyStroke.getKeyStroke(KeyEvent.VK_L, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); 73 74 putValue(TOOLBAR_NAME, 76 MailResourceLoader.getString("menu", "mainframe", 77 "menu_message_forward_toolbar")); 78 setEnabled(false); 79 ((MailFrameMediator) frameMediator).registerTableSelectionListener(this); 80 81 XmlElement composerOptions = MailConfig.getInstance().getComposerOptionsConfig() 82 .getRoot().getElement("/options"); 83 84 forward = composerOptions.getElement("forward"); 85 86 if (forward == null) { 87 forward = composerOptions.addSubElement("forward"); 88 } 89 90 forward.addObserver(this); 92 93 forwardStyle = forward.getAttribute("style", "attachment"); 94 } 95 96 99 public void actionPerformed(ActionEvent evt) { 100 IMailFolderCommandReference r = ((MailFrameMediator) getFrameMediator()).getTableSelection(); 101 102 if (forwardStyle.equals("attachment")) { 103 CommandProcessor.getInstance().addOp(new ForwardCommand(r)); 104 } else { 105 CommandProcessor.getInstance().addOp(new ForwardInlineCommand(r)); 106 } 107 } 108 109 112 public void selectionChanged(SelectionChangedEvent e) { 113 setEnabled(((TableSelectionChangedEvent) e).getUids().length > 0); 114 } 115 116 123 public void update(Observable arg0, Object arg1) { 124 forwardStyle = forward.getAttribute("style", "attachment"); 125 } 126 } 127 | Popular Tags |