2 * (C) Copyright IBM Corp. 1998-2004. All Rights Reserved.
\r
4 * The program is provided "as is" without any warranty express or
\r
5 * implied, including the warranty of non-infringement and the implied
\r
6 * warranties of merchantibility and fitness for a particular purpose.
\r
7 * IBM will not be liable for any damages suffered by you as a result
\r
8 * of using the Program. In no event will IBM be liable for any
\r
9 * special, indirect or consequential damages or lost profits even if
\r
10 * IBM has been advised of the possibility of their occurrence. IBM
\r
11 * will not be liable for any third party claims against you.
\r
13 package com.ibm.richtext.swingui;
\r
15 import java.awt.Event;
\r
17 import javax.swing.JCheckBoxMenuItem;
\r
18 import javax.swing.JMenu;
\r
19 import javax.swing.JMenuItem;
\r
20 import javax.swing.JSeparator;
\r
21 import javax.swing.KeyStroke;
\r
23 import java.awt.event.ActionEvent;
\r
24 import java.awt.event.ActionListener;
\r
26 import com.ibm.richtext.uiimpl.resources.MenuData;
\r
27 import com.ibm.richtext.uiimpl.MItem;
\r
28 import com.ibm.richtext.uiimpl.MItem.ItemFactory;
\r
30 final class SwingMenuFactory implements ItemFactory {
\r
32 static final String COPYRIGHT =
\r
33 "(C) Copyright IBM Corp. 1998-1999 - All Rights Reserved";
\r
34 private final class SwingMItem extends MItem {
\r
36 private JMenuItem fItem;
\r
38 SwingMItem(JMenuItem item) {
\r
41 item.addActionListener(new ActionListener() {
\r
42 public void actionPerformed(ActionEvent e) {
\r
48 protected void handleSelected() {
\r
50 super.handleSelected();
\r
53 public final void setEnabled(boolean enabled) {
\r
55 fItem.setEnabled(enabled);
\r
58 public void setState(boolean checked) {
\r
61 JCheckBoxMenuItem item = (JCheckBoxMenuItem) fItem;
\r
62 item.setState(checked);
\r
64 catch(ClassCastException e) {
\r
65 throw new Error("Cannot perform setChecked on non-checkbox item");
\r
70 private JMenu fMenu;
\r
72 SwingMenuFactory(JMenu menu) {
\r
77 private MItem handleCreate(JMenuItem item,
\r
78 MenuData menuData) {
\r
80 if (menuData.hasShortcut()) {
\r
81 KeyStroke ks = KeyStroke.getKeyStroke(menuData.getShortcutKeyCode(),
\r
83 item.setAccelerator(ks);
\r
88 return new SwingMItem(item);
\r
91 public MItem createItem(MenuData menuData) {
\r
93 return handleCreate(new JMenuItem(menuData.getName()), menuData);
\r
96 public MItem createCheckboxItem(MenuData menuData) {
\r
98 return handleCreate(new JCheckBoxMenuItem(menuData.getName()), menuData);
\r
101 public void createSeparator() {
\r
103 fMenu.add(new JSeparator());
\r