import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.beans.*; import java.util.ArrayList; import java.awt.geom.*; /** * Clase MenuLateralYsuperior * Clase que permite implementar el menu a la izquierda de la zona de trabajo. * @author Patricio A. Castillo Pizarro - Eric C. Maldonado Olguin * @version 1.2 - Jun 26th, 2007 */ public class MenuLateralYsuperior { private EditorPanel panel; private JTextArea textArea1; private JTextArea textArea2; private JEPdividedPanel splitPane; private String texto; public MenuLateralYsuperior() { } public JMenuBar createMenuBar(EditorPanel panel,JTextArea A1,JTextArea A2) { textArea1=A1; textArea2=A2; JMenuBar menuBar = new JMenuBar(); menuBar.setLayout(new BoxLayout(menuBar, BoxLayout.PAGE_AXIS)); //Items del menu Eventos JMenu TrasladarMostrar = new HorizontalMenu("Trasladar Mostrar"); JMenuItem TrasladarFiguras = new JMenuItem("Trasladar Codigo"); JMenuItem TrasladarMostrarI = new JMenuItem("Trasladar / Mostrar"); JMenu AccionBasica = new HorizontalMenu("Acciones Basicas"); //JMenu AccionBasica = new JMenu("Acciones Basicas"); JMenuItem Avanzar = new JMenuItem("Avanzar"); JMenuItem Retroceder = new JMenuItem("Retroceder"); JMenuItem CambiarDireccion = new JMenuItem("Cambiar Direccion"); JMenuItem EventoDetener = new JMenuItem("Detener"); JMenuItem Esperar = new JMenuItem("Esperar"); JMenu AccionAvanzada = new HorizontalMenu("Acciones Avanzadas"); //JMenu AccionAvanzada = new JMenu("Acciones Avanzadas"); JMenuItem PotenciaMotores = new JMenuItem("Potencia Motores"); JMenuItem EnviarMSG = new JMenuItem("Enviar MSG"); JMenuItem LimpiarMSG = new JMenuItem("Limpiar MSG"); JMenuItem NQCPersonal = new JMenuItem("NQC Personal"); JMenu Sonidos = new HorizontalMenu("Sonidos"); //JMenu Sonidos = new JMenu("Sonidos"); JMenuItem EmitirSonido = new JMenuItem("Emitir Sonido"); JMenuItem EmitirTono = new JMenuItem("Emitir Tono"); JMenu Variables = new HorizontalMenu("Variables"); //JMenu Variables = new JMenu("Variables"); JMenuItem NuevaVariable = new JMenuItem("Nueva Variable"); JMenuItem ModificarVariable = new JMenuItem("Modificar Variable"); JMenu Ciclos = new HorizontalMenu("Ciclos"); //JMenu Ciclos = new JMenu("Ciclos"); JMenuItem RepetirN = new JMenuItem("Repetir n veces"); JMenuItem RepetirMientras = new JMenuItem("Repetir Mientras"); JMenuItem RepetirSiempre = new JMenuItem("Repetir Siempre"); JMenu Condicional = new HorizontalMenu("Condicional"); //JMenu Condicional = new JMenu("Condicional"); JMenuItem SiNo = new JMenuItem("Si - No"); JMenu Eliminar =new HorizontalMenu("Eliminar"); JMenuItem EliminarI = new JMenuItem("Eliminar"); //Action Listeners TrasladarMostrarI.addActionListener(new HandlerTrasladarMostrar(panel)); TrasladarFiguras.addActionListener(new TrasladarFiguras(panel)); Avanzar.setActionCommand("Avanzar"); Avanzar.addActionListener(new HandlerObjetoEvento(panel)); Avanzar.addActionListener(new HandlerTrasladarMostrar(panel)); Retroceder.setActionCommand("Retroceder"); Retroceder.addActionListener(new HandlerObjetoEvento(panel)); Retroceder.addActionListener(new HandlerTrasladarMostrar(panel)); CambiarDireccion.setActionCommand("CambiarDireccion"); CambiarDireccion.addActionListener(new HandlerObjetoEvento(panel)); CambiarDireccion.addActionListener(new HandlerTrasladarMostrar(panel)); EventoDetener.setActionCommand("Detener"); EventoDetener.addActionListener(new HandlerObjetoEvento(panel)); EventoDetener.addActionListener(new HandlerTrasladarMostrar(panel)); Esperar.setActionCommand("Esperar"); Esperar.addActionListener(new HandlerObjetoEvento(panel)); Esperar.addActionListener(new HandlerTrasladarMostrar(panel)); PotenciaMotores.setActionCommand("PotenciaMotores"); PotenciaMotores.addActionListener(new HandlerObjetoEvento(panel)); PotenciaMotores.addActionListener(new HandlerTrasladarMostrar(panel)); EnviarMSG.setActionCommand("EnviarMSG"); EnviarMSG.addActionListener(new HandlerObjetoEvento(panel)); EnviarMSG.addActionListener(new HandlerTrasladarMostrar(panel)); LimpiarMSG.setActionCommand("LimpiarMSG"); LimpiarMSG.addActionListener(new HandlerObjetoEvento(panel)); LimpiarMSG.addActionListener(new HandlerTrasladarMostrar(panel)); NQCPersonal.setActionCommand("NQCPersonal"); NQCPersonal.addActionListener(new HandlerObjetoEvento(panel)); NQCPersonal.addActionListener(new HandlerTrasladarMostrar(panel)); EmitirSonido.setActionCommand("EmitirSonido"); EmitirSonido.addActionListener(new HandlerObjetoEvento(panel)); EmitirSonido.addActionListener(new HandlerTrasladarMostrar(panel)); EmitirTono.setActionCommand("EmitirTono"); EmitirTono.addActionListener(new HandlerObjetoEvento(panel)); EmitirTono.addActionListener(new HandlerTrasladarMostrar(panel)); NuevaVariable.setActionCommand("NuevaVariable"); NuevaVariable.addActionListener(new HandlerObjetoEvento(panel)); NuevaVariable.addActionListener(new HandlerTrasladarMostrar(panel)); ModificarVariable.setActionCommand("ModificarVariable"); ModificarVariable.addActionListener(new HandlerObjetoEvento(panel)); ModificarVariable.addActionListener(new HandlerTrasladarMostrar(panel)); RepetirN.setActionCommand("RepetirN"); RepetirN.addActionListener(new HandlerObjetoCondicion(panel)); RepetirN.addActionListener(new HandlerTrasladarMostrar(panel)); RepetirMientras.setActionCommand("RepetirMientras"); RepetirMientras.addActionListener(new HandlerObjetoCondicion(panel)); RepetirMientras.addActionListener(new HandlerTrasladarMostrar(panel)); RepetirSiempre.setActionCommand("RepetirSiempre"); RepetirSiempre.addActionListener(new HandlerObjetoCondicion(panel)); RepetirSiempre.addActionListener(new HandlerTrasladarMostrar(panel)); SiNo.setActionCommand("SiNo"); SiNo.addActionListener(new HandlerObjetoCondicion(panel)); SiNo.addActionListener(new HandlerTrasladarMostrar(panel)); EliminarI.addActionListener(new EliminarHandler(panel)); TrasladarMostrar.add(TrasladarFiguras); TrasladarMostrar.add(TrasladarMostrarI); AccionBasica.add(Avanzar); AccionBasica.add(Retroceder); AccionBasica.add(CambiarDireccion); AccionBasica.add(EventoDetener); AccionBasica.add(Esperar); menuBar.add(AccionBasica); AccionAvanzada.add(PotenciaMotores); AccionAvanzada.add(EnviarMSG); AccionAvanzada.add(LimpiarMSG); AccionAvanzada.add(NQCPersonal); menuBar.add(AccionAvanzada); Sonidos.add(EmitirSonido); Sonidos.add(EmitirTono); menuBar.add(Sonidos); Variables.add(NuevaVariable); Variables.add(ModificarVariable); menuBar.add(Variables); Ciclos.add(RepetirN); Ciclos.add(RepetirMientras); Ciclos.add(RepetirSiempre); menuBar.add(Ciclos); Condicional.add(SiNo); Eliminar.add(EliminarI); menuBar.add(Condicional); menuBar.add(TrasladarMostrar); menuBar.add(Eliminar); menuBar.setBorder(BorderFactory.createMatteBorder(0,0,0,1, Color.BLACK)); return menuBar; } public JMenuBar createControlPanel(EditorPanel panel, JTextArea A1,JTextArea A2) { textArea1=A1; textArea2=A2; JMenuBar menuBar = new JMenuBar(); JMenuBar menuBar2 = new JMenuBar(); JMenuBar menuBar3 = new JMenuBar(); //Menus que aparecen en la barra JMenu Archivo = new JMenu("Archivo"); JMenu Robot = new JMenu("Robot"); JMenu Programa = new JMenu("Programa"); JMenu Eventos = new JMenu("Eventos"); //Items del menu Archivo JMenuItem Nuevo = new JMenuItem("Nuevo"); JMenuItem Abrir = new JMenuItem("Abrir..."); JMenuItem Guardar = new JMenuItem("Guardar..."); JMenuItem Importar = new JMenuItem("Importar..."); //Items del menu Robot JMenu Tipo = new JMenu("Tipo"); ButtonGroup TipoGroup = new ButtonGroup(); JRadioButton RCX = new JRadioButton("RCX"); JRadioButton RCX2 = new JRadioButton("RCX2"); JRadioButton Scout = new JRadioButton("Scout"); JRadioButton CM = new JRadioButton("CyberMaster"); JRadioButton Spy = new JRadioButton("Spybotics"); JRadioButton Swan = new JRadioButton("Swan"); JMenu Slot = new JMenu("Slot"); ButtonGroup SlotGroup = new ButtonGroup(); JRadioButton n1 = new JRadioButton("1"); JRadioButton n2 = new JRadioButton("2"); JRadioButton n3 = new JRadioButton("3"); JRadioButton n4 = new JRadioButton("4"); JRadioButton n5 = new JRadioButton("5"); JMenu Puerto = new JMenu("Puerto"); ButtonGroup PuertoGroup = new ButtonGroup(); JRadioButton USB = new JRadioButton("USB"); JRadioButton COM1 = new JRadioButton("COM1"); JRadioButton COM2 = new JRadioButton("COM2"); JRadioButton COM3 = new JRadioButton("COM3"); JRadioButton COM4 = new JRadioButton("COM4"); JRadioButton COM5 = new JRadioButton("COM5"); JRadioButton COM6 = new JRadioButton("COM6"); JRadioButton COM7 = new JRadioButton("COM7"); JRadioButton COM8 = new JRadioButton("COM8"); JRadioButton COM9 = new JRadioButton("COM9"); JRadioButton COM10 = new JRadioButton("COM10"); JMenuItem Firmware = new JMenuItem("Firmware..."); JMenuItem Reloj = new JMenuItem("Reloj"); JMenuItem Prueba = new JMenuItem("Prueba"); //Items del menu Programa JMenuItem Compilar = new JMenuItem("Compilar..."); JMenuItem Cargar = new JMenuItem("Cargar"); JMenuItem Correr = new JMenuItem("Correr"); JMenuItem Detener = new JMenuItem("Detener"); Nuevo.addMouseListener(new MenuArchivoNuevo(panel)); Abrir.addMouseListener(new MenuArchivoAbrir(panel)); Guardar.addMouseListener(new MenuArchivoGuardar(panel)); Importar.addMouseListener(new MenuArchivoImportar(panel)); RCX.setActionCommand("RCX"); RCX.addActionListener(new MenuRobotTipo(panel)); RCX.setSelected(true); RCX2.setActionCommand("RCX2"); RCX2.addActionListener(new MenuRobotTipo(panel)); Scout.setActionCommand("Scout"); Scout.addActionListener(new MenuRobotTipo(panel)); CM.setActionCommand("CM"); CM.addActionListener(new MenuRobotTipo(panel)); Spy.setActionCommand("Spy"); Spy.addActionListener(new MenuRobotTipo(panel)); Swan.setActionCommand("Swan"); Swan.addActionListener(new MenuRobotTipo(panel)); n1.setActionCommand("1"); n1.addActionListener(new MenuRobotSlot(panel)); n1.setSelected(true); n2.setActionCommand("2"); n2.addActionListener(new MenuRobotSlot(panel)); n3.setActionCommand("3"); n3.addActionListener(new MenuRobotSlot(panel)); n4.setActionCommand("4"); n4.addActionListener(new MenuRobotSlot(panel)); n5.setActionCommand("5"); n5.addActionListener(new MenuRobotSlot(panel)); USB.setActionCommand("usb"); USB.addActionListener(new MenuRobotPuerto(panel)); USB.setSelected(true); COM1.setActionCommand("COM1"); COM1.addActionListener(new MenuRobotPuerto(panel)); COM2.setActionCommand("COM2"); COM2.addActionListener(new MenuRobotPuerto(panel)); COM3.setActionCommand("COM3"); COM3.addActionListener(new MenuRobotPuerto(panel)); COM4.setActionCommand("COM4"); COM4.addActionListener(new MenuRobotPuerto(panel)); COM5.setActionCommand("COM5"); COM5.addActionListener(new MenuRobotPuerto(panel)); COM6.setActionCommand("COM6"); COM6.addActionListener(new MenuRobotPuerto(panel)); COM7.setActionCommand("COM7"); COM7.addActionListener(new MenuRobotPuerto(panel)); COM8.setActionCommand("COM8"); COM8.addActionListener(new MenuRobotPuerto(panel)); COM9.setActionCommand("COM9"); COM9.addActionListener(new MenuRobotPuerto(panel)); COM10.setActionCommand("COM10"); COM10.addActionListener(new MenuRobotPuerto(panel)); Firmware.addMouseListener(new MenuRobotFirmware(panel)); Reloj.addMouseListener(new MenuRobotReloj(panel)); Prueba.addMouseListener(new MenuRobotPrueba(panel)); Compilar.addMouseListener(new MenuProgramaCompilar(panel,textArea1,textArea2)); Cargar.addMouseListener(new MenuProgramaCargar(panel)); Correr.addMouseListener(new MenuProgramaCorrer(panel)); Detener.addMouseListener(new MenuProgramaDetener(panel)); Archivo.add(Nuevo); Archivo.add(new JSeparator()); Archivo.add(Abrir); Archivo.add(Guardar); Archivo.add(new JSeparator()); Archivo.add(Importar); TipoGroup.add(RCX); TipoGroup.add(RCX2); TipoGroup.add(Scout); TipoGroup.add(CM); TipoGroup.add(Spy); TipoGroup.add(Swan); Tipo.add(RCX); Tipo.add(RCX2); Tipo.add(Scout); Tipo.add(CM); Tipo.add(Spy); Tipo.add(Swan); Robot.add(Tipo); SlotGroup.add(n1); SlotGroup.add(n2); SlotGroup.add(n3); SlotGroup.add(n4); SlotGroup.add(n5); Slot.add(n1); Slot.add(n2); Slot.add(n3); Slot.add(n4); Slot.add(n5); Robot.add(Slot); PuertoGroup.add(USB); PuertoGroup.add(COM1); PuertoGroup.add(COM2); PuertoGroup.add(COM3); PuertoGroup.add(COM4); PuertoGroup.add(COM5); PuertoGroup.add(COM6); PuertoGroup.add(COM7); PuertoGroup.add(COM8); PuertoGroup.add(COM9); PuertoGroup.add(COM10); Puerto.add(USB); Puerto.add(COM1); Puerto.add(COM2); Puerto.add(COM3); Puerto.add(COM4); Puerto.add(COM5); Puerto.add(COM6); Puerto.add(COM7); Puerto.add(COM8); Puerto.add(COM9); Puerto.add(COM10); Robot.add(Puerto); Robot.add(new JSeparator()); Robot.add(Firmware); Robot.add(new JSeparator()); Robot.add(Reloj); Robot.add(Prueba); Programa.add(Compilar); Programa.add(Cargar); Programa.add(new JSeparator()); Programa.add(Correr); Programa.add(Detener); menuBar.add(Archivo); menuBar.add(Robot); menuBar.add(Programa); return menuBar; } class HorizontalMenu extends JMenu { HorizontalMenu(String label) { super(label); JPopupMenu pm = getPopupMenu(); pm.setLayout(new BoxLayout(pm, BoxLayout.PAGE_AXIS)); } public Dimension getMinimumSize() { return getPreferredSize(); } public Dimension getMaximumSize() { return getPreferredSize(); } public void setPopupMenuVisible(boolean b) { boolean isVisible = isPopupMenuVisible(); if (b != isVisible) { if ((b==true) && isShowing()) { int x = 0; int y = 0; Container parent = getParent(); if (parent instanceof JPopupMenu) { x = 0; y = getHeight(); } else { x = getWidth(); y = 0; } getPopupMenu().show(this, x, y); } else { getPopupMenu().setVisible(false); } } } } } //Fin clase MenuLateralYsuperior