import java.awt.event.*; import java.awt.*; import java.io.*; import javax.swing.*; /** * Clase MenuArchivoGuardar * Permite guardar la disposicion de los bloques en el panel a un archivo. * @author Patricio A. Castillo Pizarro - Eric C. Maldonado Olguin * @version 1.0 - Jun 25th, 2007 */ class MenuArchivoGuardar implements MouseListener { private EditorPanel panel; /** * Constructor. * @param p Panel en que se encuentra el programa grafico a compilar */ public MenuArchivoGuardar(EditorPanel p) { panel = p; } /** *Metodo que define las acciones a realizar al presiona el boton del mouse *@param event Parametro que indica la accion realizada por el mouse */ public void mousePressed(MouseEvent event){ //Primero se escoge el archivo en el que se guardara. JFileChooser fcSave = new JFileChooser(); fcSave.setSelectedFile(new File("*.ljep")); fcSave.setFileFilter(new FileFilterLJEP()); int return_fcSave = fcSave.showSaveDialog(null); //Este codigo permite grabar el arreglo de formas que conforman el //programa basado en eventos representados por bloques a un archivo. File fileToSave = fcSave.getSelectedFile(); if (return_fcSave == JFileChooser.APPROVE_OPTION) { try { BufferedWriter salida =new BufferedWriter( new FileWriter(fileToSave.getAbsolutePath())); salida.write("//Programa Creado con Lego JEP\n\n"); for (int i=0; i < panel.getFormas().size(); i++) salida.append("->"+panel.getFormas().get(i).getData()); salida.append("->"); salida.close(); } catch (IOException e) { System.out.println("No se puede escribir el archivo"); JOptionPane.showMessageDialog(null, "No se puede escribir el archivo.", "Error", JOptionPane.ERROR_MESSAGE); } panel.nombrePrograma = fileToSave.getName().substring(0, fileToSave.getName().lastIndexOf(".")); }else{ JOptionPane.showMessageDialog(null, "Ningun archivo seleccionado.\nNo se grabo el programa.", "Advertencia", JOptionPane.WARNING_MESSAGE); } } /** *Implementacion de MouseListener cuando el boton del mouse hace click */ public void mouseClicked(MouseEvent event){} /** *Implementacion de MouseListener cuando el boton del mouse se libera */ public void mouseReleased(MouseEvent event){} /** *Implementacion de MouseListener cuando el mouse ingresa a un componente */ public void mouseEntered(MouseEvent event){} /** *Implementacion de MouseListener cuando el mouse sale de un componente */ public void mouseExited(MouseEvent event){} } //Fin clase MenuArchivoGuardar