01: //The contents of this file are subject to the Mozilla Public License Version 1.1
02: //(the "License"); you may not use this file except in compliance with the
03: //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
04: //
05: //Software distributed under the License is distributed on an "AS IS" basis,
06: //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
07: //for the specific language governing rights and
08: //limitations under the License.
09: //
10: //The Original Code is "The Columba Project"
11: //
12: //The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13: //Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14: //
15: //All Rights Reserved.
16: package org.columba.mail.gui.composer.html.action;
17:
18: import java.awt.Toolkit;
19: import java.awt.event.ActionEvent;
20: import java.awt.event.KeyEvent;
21: import java.util.logging.Logger;
22:
23: import javax.swing.KeyStroke;
24:
25: import org.columba.api.gui.frame.IFrameMediator;
26: import org.columba.mail.gui.composer.ComposerController;
27: import org.columba.mail.gui.composer.html.HtmlEditorController2;
28: import org.columba.mail.resourceloader.MailImageLoader;
29: import org.columba.mail.util.MailResourceLoader;
30: import org.frapuccino.htmleditor.event.FormatChangedEvent;
31:
32: /**
33: * Format selected text as "<underline>"
34: *
35: * @author fdietz
36: */
37: public class UnderlineFormatAction extends AbstractComposerAction {
38:
39: /** JDK 1.4+ logging framework logger, used for logging. */
40: private static final Logger LOG = Logger
41: .getLogger("org.columba.mail.gui.composer.html.action");
42:
43: /**
44: * @param frameMediator
45: * @param name
46: */
47: public UnderlineFormatAction(IFrameMediator frameMediator) {
48: super (frameMediator, MailResourceLoader.getString("menu",
49: "composer", "menu_format_underline"));
50:
51: putValue(SHORT_DESCRIPTION, MailResourceLoader.getString(
52: "menu", "composer", "menu_format_underline_tooltip")
53: .replaceAll("&", ""));
54:
55: putValue(LARGE_ICON, MailImageLoader
56: .getIcon("format-text-underline.png"));
57: putValue(SMALL_ICON, MailImageLoader
58: .getSmallIcon("format-text-underline.png"));
59:
60: // shortcut key
61: putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_U,
62: Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
63:
64: }
65:
66: public void formatChanged(FormatChangedEvent event) {
67: setState(event.getInfo().isUnderline());
68: }
69:
70: /**
71: * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
72: */
73: public void actionPerformed(ActionEvent evt) {
74: // this action is disabled when the text/plain editor is used
75: // -> so, its safe to just cast to HtmlEditorController here
76: HtmlEditorController2 editorController = (HtmlEditorController2) ((ComposerController) frameMediator)
77: .getCurrentEditor();
78:
79: editorController.toggleUnderline();
80: }
81: }
|