//CLASE GENERICA PARA EL MENU
import java.awt.*;
import java.awt.event.*;
public class MyMenu extends Menu {
public MyMenu(Object labels[],ActionListener al,ItemListener il) {
super((String)labels[0]);
String menuName = (String) labels[0];
char firstMenuChar = menuName.charAt(0);
if(firstMenuChar == '~' || firstMenuChar =='!'){
setLabel(menuName.substring(1));
if(firstMenuChar == '~') setEnabled(false);
}
for(int i=1;i<labels.length;++i) {
if(labels[i] instanceof String){
if("-".equals(labels[i])) addSeparator();
else{
String label = (String)labels[i];
char firstChar = label.charAt(0);
switch(firstChar){
case '+':
CheckboxMenuItem checkboxItem = new CheckboxMenuItem(label.substring(1));
checkboxItem.setState(true);
add(checkboxItem);
checkboxItem.addItemListener(il);
break;
case '#':
checkboxItem = new CheckboxMenuItem(label.substring(1));
checkboxItem.setState(true);
checkboxItem.setEnabled(false);
add(checkboxItem);
checkboxItem.addItemListener(il);
break;
case '-':
checkboxItem = new CheckboxMenuItem(label.substring(1));
checkboxItem.setState(false);
add(checkboxItem);
checkboxItem.addItemListener(il);
break;
case '=':
checkboxItem = new CheckboxMenuItem(label.substring(1));
checkboxItem.setState(false);
checkboxItem.setEnabled(false);
add(checkboxItem);
checkboxItem.addItemListener(il);
break;
case '~':
MenuItem menuItem = new MenuItem(label.substring(1));
menuItem.setEnabled(false);
add(menuItem);
menuItem.addActionListener(al);
break;
case '!':
menuItem = new MenuItem(label.substring(1));
add(menuItem);
menuItem.addActionListener(al);
break;
default:
menuItem = new MenuItem(label);
add(menuItem);
menuItem.addActionListener(al);
}
}
}else{
add(new MyMenu((Object[])labels[i],al,il));
}
}
}
public MenuItem getItem(String menuItem) {
int numItems = getItemCount();
for(int i=0;i<numItems;++i)
if(menuItem.equals(getItem(i).getLabel())) return getItem(i);
return null;
}
}