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.core.gui.frame;
17:
18: import java.awt.event.MouseAdapter;
19: import java.awt.event.MouseEvent;
20:
21: import javax.swing.AbstractButton;
22: import javax.swing.Action;
23:
24: import org.columba.api.gui.frame.IFrameMediator;
25:
26: /**
27: * @author Timo Stich (tstich@users.sourceforge.net)
28: *
29: */
30: public class TooltipMouseHandler extends MouseAdapter {
31: private IFrameMediator frameMediator;
32:
33: /**
34: * Constructor for MouseHandler.
35: */
36: public TooltipMouseHandler(IFrameMediator frameMediator) {
37: super ();
38: this .frameMediator = frameMediator;
39: }
40:
41: /**
42: * Called when the mouse is placed over e.g. a menu or a toolbar
43: * button. Either the tooltip text (preferred) or SHORT_DESCRIPTION
44: * is fetched from the action associated with the menu/button if
45: * possible, and displayed in the status bar.
46: */
47: public void mouseEntered(MouseEvent evt) {
48: if (evt.getSource() instanceof AbstractButton) {
49: AbstractButton button = (AbstractButton) evt.getSource();
50: Action action = button.getAction();
51:
52: if (action != null) {
53: String message = (String) action
54: .getValue(Action.SHORT_DESCRIPTION);
55: frameMediator.fireStatusMessageChanged(message);
56: }
57: }
58: }
59:
60: /**
61: * Called when the mouse is moved away from e.g. a menu or a toolbar
62: * button. Clears the text displayed in the status bar.
63: */
64: public void mouseExited(MouseEvent e) {
65: // clear the tooltip message previously displayed in the status bar
66: frameMediator.fireStatusMessageChanged("");
67: }
68:
69: /**
70: * Called when the mouse is pressed on e.g. a menu or a toolbar
71: * button. Clears the text displayed in the status bar.
72: */
73: public void mousePressed(MouseEvent e) {
74: // clear the tooltip message previously displayed in the status bar
75: frameMediator.fireStatusMessageChanged("");
76: }
77: }
|