KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > antlr > xjlib > appkit > menu > XJMenuItem


1 /*
2
3 [The "BSD licence"]
4 Copyright (c) 2005 Jean Bovet
5 All rights reserved.
6
7 Redistribution and use in source and binary forms, with or without
8 modification, are permitted provided that the following conditions
9 are met:
10
11 1. Redistributions of source code must retain the above copyright
12 notice, this list of conditions and the following disclaimer.
13 2. Redistributions in binary form must reproduce the above copyright
14 notice, this list of conditions and the following disclaimer in the
15 documentation and/or other materials provided with the distribution.
16 3. The name of the author may not be used to endorse or promote products
17 derived from this software without specific prior written permission.
18
19 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
30 */

31
32 package org.antlr.xjlib.appkit.menu;
33
34 import javax.swing.*;
35 import java.awt.*;
36 import java.awt.event.ActionEvent JavaDoc;
37 import java.awt.event.ActionListener JavaDoc;
38
39 public class XJMenuItem {
40
41     protected JMenuItem jMenuItem = null;
42
43     protected int tag = 0;
44     protected Object JavaDoc object = null;
45     protected XJMenuItemDelegate delegate = null;
46
47     protected XJMenu parentMenu = null;
48
49     public XJMenuItem() {
50         init();
51     }
52
53     public XJMenuItem(String JavaDoc title, int accelerator, int tag, XJMenuItemDelegate delegate) {
54         init();
55         setTag(tag);
56         setTitle(title);
57         setAccelerator(accelerator);
58         setDelegate(delegate);
59     }
60
61     public XJMenuItem(String JavaDoc title, Icon icon, int accelerator, int tag, XJMenuItemDelegate delegate) {
62         init();
63         setTag(tag);
64         setTitle(title);
65         setIcon(icon);
66         setAccelerator(accelerator);
67         setDelegate(delegate);
68     }
69
70     public XJMenuItem(String JavaDoc title, int accelerator, int modifiers, int tag, XJMenuItemDelegate delegate) {
71         init();
72         setTag(tag);
73         setTitle(title);
74         setAccelerator(accelerator, modifiers);
75         setDelegate(delegate);
76     }
77
78     public XJMenuItem(String JavaDoc title, int tag, XJMenuItemDelegate delegate) {
79         init();
80         setTag(tag);
81         setTitle(title);
82         setDelegate(delegate);
83     }
84
85     public void init() {
86         jMenuItem = new JMenuItem();
87         jMenuItem.addActionListener(new MenuActionListener());
88     }
89
90     public void setMenu(XJMenu menu) {
91         this.parentMenu = menu;
92     }
93
94     public void setDelegate(XJMenuItemDelegate delegate) {
95         this.delegate = delegate;
96     }
97
98     public void setTag(int tag) {
99         this.tag = tag;
100     }
101
102     public int getTag() {
103         return tag;
104     }
105
106     public void setObject(Object JavaDoc object) {
107         this.object = object;
108     }
109
110     public Object JavaDoc getObject() {
111         return object;
112     }
113
114     public void setTitle(String JavaDoc title) {
115         jMenuItem.setText(title);
116     }
117
118     public String JavaDoc getTitle() {
119         return jMenuItem.getText();
120     }
121
122     public void setEnabled(boolean enabled) {
123         boolean previous = isEnabled();
124         if(enabled && !previous || !enabled && previous)
125             jMenuItem.setEnabled(enabled);
126     }
127
128     public boolean isEnabled() {
129         return jMenuItem.isEnabled();
130     }
131
132     public void setSelected(boolean selected) {
133         boolean previous = isSelected();
134         if(selected && !previous || !selected && previous)
135             jMenuItem.setSelected(selected);
136     }
137
138     public boolean isSelected() {
139         return jMenuItem.isSelected();
140     }
141
142     public void setAccelerator(int keystroke) {
143         int keyModifier = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
144         jMenuItem.setAccelerator(KeyStroke.getKeyStroke(keystroke, keyModifier));
145     }
146
147     public void setAccelerator(int keystroke, int modifiers) {
148         jMenuItem.setAccelerator(KeyStroke.getKeyStroke(keystroke, modifiers));
149     }
150
151     public void setIcon(Icon icon) {
152         jMenuItem.setIcon(icon);
153     }
154
155     public JComponent getSwingComponent() {
156         return jMenuItem;
157     }
158
159     public static int getKeyModifier() {
160         return Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
161     }
162
163     public class MenuActionListener implements ActionListener JavaDoc {
164         public void actionPerformed(ActionEvent JavaDoc e) {
165             if(delegate != null)
166                 delegate.handleMenuEvent(parentMenu, XJMenuItem.this);
167         }
168     }
169
170 }
171
Popular Tags