1   /*  XJMenuItem.java
2    *
3    *  Copyright (c) 1998-2005, The University of Sheffield.
4    *
5    *  This file is part of GATE (see http://gate.ac.uk/), and is free
6    *  software, licenced under the GNU Library General Public License,
7    *  Version 2, June 1991 (in the distribution as file licence.html,
8    *  and also available at http://gate.ac.uk/gate/licence.html).
9    *
10   *  Valentin Tablan 02/04/2001
11   *
12   *  $Id: XJMenuItem.java,v 1.6 2005/01/11 13:51:37 ian Exp $
13   *
14   */
15  
16  package gate.swing;
17  
18  import java.awt.event.MouseAdapter;
19  import java.awt.event.MouseEvent;
20  
21  import javax.swing.*;
22  
23  import gate.event.StatusListener;
24  
25  public class XJMenuItem extends JMenuItem {
26  
27    public XJMenuItem(Icon icon, String description, StatusListener listener){
28      super(icon);
29      this.description = description;
30      this.listener = listener;
31      initListeners();
32    }// public XJMenuItem(Icon icon, String description, StatusListener listener)
33  
34    public XJMenuItem(String text, String description, StatusListener listener){
35      super(text);
36      this.description = description;
37      this.listener = listener;
38      initListeners();
39    }// XJMenuItem(String text, String description, StatusListener listener)
40  
41    public XJMenuItem(Action a, StatusListener listener){
42      super(a);
43      this.description = (String)a.getValue(Action.SHORT_DESCRIPTION);
44      this.listener = listener;
45      initListeners();
46    }// XJMenuItem(Action a, StatusListener listener)
47  
48    public XJMenuItem(String text, Icon icon,
49                      String description, StatusListener listener){
50      super(text, icon);
51      this.description = description;
52      this.listener = listener;
53      initListeners();
54    }// XJMenuItem
55  
56    public XJMenuItem(String text, int mnemonic,
57                      String description, StatusListener listener){
58      super(text, mnemonic);
59      this.description = description;
60      this.listener = listener;
61      initListeners();
62    }
63  
64    protected void initListeners(){
65      this.addMouseListener(new MouseAdapter() {
66        public void mouseEntered(MouseEvent e) {
67          listener.statusChanged(description);
68        }
69  
70        public void mouseExited(MouseEvent e) {
71          listener.statusChanged("");
72        }
73      });
74    }// void initListeners()
75  
76    private StatusListener listener;
77    String description;
78  }// class XJMenuItem extends JMenuItem