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.awtui;
\r
15 import java.awt.CheckboxMenuItem;
\r
16 import java.awt.Menu;
\r
17 import java.awt.MenuItem;
\r
18 import java.awt.MenuShortcut;
\r
20 import java.awt.event.ActionEvent;
\r
21 import java.awt.event.ActionListener;
\r
22 import java.awt.event.ItemEvent;
\r
23 import java.awt.event.ItemListener;
\r
25 import com.ibm.richtext.uiimpl.resources.MenuData;
\r
26 import com.ibm.richtext.uiimpl.MItem;
\r
27 import com.ibm.richtext.uiimpl.MItem.ItemFactory;
\r
29 final class AwtMenuFactory implements ItemFactory {
\r
31 static final String COPYRIGHT =
\r
32 "(C) Copyright IBM Corp. 1998-1999 - All Rights Reserved";
\r
33 private final class AwtMItem extends MItem {
\r
35 private MenuItem fItem;
\r
37 AwtMItem(MenuItem item) {
\r
41 CheckboxMenuItem chItem = (CheckboxMenuItem) fItem;
\r
42 chItem.addItemListener(new ItemListener() {
\r
43 public void itemStateChanged(ItemEvent e) {
\r
48 catch(ClassCastException e) {
\r
49 item.addActionListener(new ActionListener() {
\r
50 public void actionPerformed(ActionEvent evt) {
\r
57 // Ack - how do you do this from inner classes??
\r
58 protected void handleSelected() {
\r
60 super.handleSelected();
\r
63 public final void setEnabled(boolean enabled) {
\r
65 fItem.setEnabled(enabled);
\r
68 public void setState(boolean checked) {
\r
71 CheckboxMenuItem item = (CheckboxMenuItem) fItem;
\r
72 item.setState(checked);
\r
74 catch(ClassCastException e) {
\r
75 throw new Error("Cannot perform setChecked on non-checkbox item");
\r
82 AwtMenuFactory(Menu menu) {
\r
87 private MItem handleCreate(MenuItem item,
\r
88 MenuData menuData) {
\r
90 if (menuData.hasShortcut()) {
\r
91 item.setShortcut(new MenuShortcut(menuData.getShortcutChar()));
\r
96 return new AwtMItem(item);
\r
99 public MItem createItem(MenuData menuData) {
\r
101 return handleCreate(new MenuItem(menuData.getName()), menuData);
\r
104 public MItem createCheckboxItem(MenuData menuData) {
\r
106 return handleCreate(new CheckboxMenuItem(menuData.getName()), menuData);
\r
109 public void createSeparator() {
\r
111 fMenu.add(new MenuItem("-"));
\r