001 /*
002 * Copyright (c) Holger Pfaff - http://pfaff.ws
003 *
004 * This software maybe used for any purpose provided the
005 * above copyright notice is retained. It is supplied as is.
006 * No warranty expressed or implied - Use at your own risk.
007 */
008
009 import java.awt.*;
010 import java.awt.event.*;
011
012 /**
013 * (#)Tip.java
014 * @author Holger Pfaff
015 * @version 3.2 19-Mar-2004<br><br>
016 *
017 * A tip can be added to almost any widget, however it makes most sense
018 * for the static ones (Caption, non-editable textfields). If the user
019 * happens to click on the owning widget a helptext will pop up.
020 * Add with <component>.addMouseListener(new Tip("Helptext"));
021 */
022
023 public class Tip extends MouseAdapter {
024
025 /**
026 * The helptext (tip)
027 */
028 protected String tip;
029
030 /**
031 * Construct a new tip
032 *
033 * @param t helptext (tip)
034 */
035 public Tip(String t) {
036 tip = t == null ? "" : t;
037 }
038
039 /**
040 * React on mouse click event
041 *
042 * @param e MouseEvent
043 */
044 public void mouseClicked(MouseEvent e) {
045 Component c = e.getComponent();
046 if(tip.length() == 0) return;
047 if(c instanceof TextComponent) {
048 if(((TextComponent) c).isEditable()) return;
049 c = c.getParent();
050 }
051 DialogBox.infoDialog(tip).show(c);
052 }
053 }