1
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 }
34 public XJMenuItem(String text, String description, StatusListener listener){
35 super(text);
36 this.description = description;
37 this.listener = listener;
38 initListeners();
39 }
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 }
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 }
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 }
76 private StatusListener listener;
77 String description;
78 }