1 31 32 package org.antlr.xjlib.appkit.menu; 33 34 import javax.swing.*; 35 import java.awt.*; 36 import java.awt.event.ActionEvent ; 37 import java.awt.event.ActionListener ; 38 39 public class XJMenuItem { 40 41 protected JMenuItem jMenuItem = null; 42 43 protected int tag = 0; 44 protected Object 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 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 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 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 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 object) { 107 this.object = object; 108 } 109 110 public Object getObject() { 111 return object; 112 } 113 114 public void setTitle(String title) { 115 jMenuItem.setText(title); 116 } 117 118 public String 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 { 164 public void actionPerformed(ActionEvent e) { 165 if(delegate != null) 166 delegate.handleMenuEvent(parentMenu, XJMenuItem.this); 167 } 168 } 169 170 } 171 | Popular Tags |