/** * Método que se ejecuta cuando el usuario selecciona la opción de guardar con versación del * formulario apropiado. Intenta guardar la conversación en cola boración con el controlador de * las conversaciones. * * @param e El evento que produce la ejecución del método. */ @Override public void actionPerformed(ActionEvent e) { // Recuperar los campos introducidos en el formulario String[] campos = gcf.getCampos(); String ruta = campos[0]; String nombre = campos[1]; // Comprobar si los campos son correctos if (ruta.compareTo("") == 0 || nombre.compareTo("") == 0) { new MensajeError(gcf, "campos_invalidos_error", MensajeError.WARNING); return; } // Recuperar el texto de la conversación String texto = vc.getConversacion(); // Llamar al controlador para que realice la operación try { cvc.guardarConversacion(nombre, ruta, texto); // Cerrar el formulario gcf.dispose(); } catch (FicheroNoEncontradoException fnee) { new MensajeError(gcf, "fichero_no_encontrado_error", MensajeError.ERR); } catch (ImposibleGuardarConversacionException igce) { new MensajeError(gcf, "imposible_guardar_conversacion_error", MensajeError.ERR); } }
/** * Constructor de la clase. Inicializa las variables necesarias. Crea la inter faz de usuario. * * <p> * * @param vc La ventana de la conversación. */ public GuardarConversacionFormulario(VentanaConversacion vc) { // Inicialización de variables super(vc, true); // Creación de la interfaz Container cp = this.getContentPane(); // Añadir etiqueta principal principal = new JLabel(cadenaPrincipal); principal.setHorizontalAlignment(JLabel.CENTER); principal.setBorder(BorderFactory.createEmptyBorder(15, 10, 15, 10)); cp.add(BorderLayout.NORTH, principal); // Añadir el panel del formulario JPanel panelFormulario = new JPanel(new GridLayout(etiquetas.length, 2, 5, 10)); panelFormulario.setBorder(BorderFactory.createEmptyBorder(0, 10, 15, 10)); for (int i = 0; i < etiquetas.length; i++) { cadenasEtiquetas[i] = new JLabel(etiquetas[i]); panelFormulario.add(cadenasEtiquetas[i]); if (i == 0) { JPanel textoYBoton = new JPanel(new BorderLayout()); camposDeTexto[i] = new JTextField(); botonRuta = new JButton(new ImageIcon(ClassLoader.getSystemResource("icons/ruta.png"))); botonRuta.setActionCommand("ruta"); botonRuta.addActionListener(this); textoYBoton.add(BorderLayout.CENTER, camposDeTexto[i]); textoYBoton.add(BorderLayout.EAST, botonRuta); panelFormulario.add(textoYBoton); } else { camposDeTexto[i] = new JTextField(); panelFormulario.add(camposDeTexto[i]); } } cp.add(BorderLayout.CENTER, panelFormulario); // Añadir los botones JPanel botones = new JPanel(); botones.setLayout(new FlowLayout(FlowLayout.RIGHT)); botones.setBorder(BorderFactory.createEmptyBorder(0, 10, 6, 10)); botonAceptar = new JButton(OK); botonAceptar.addActionListener(new GuardarConversacionActionListener(this, vc, vc.getCvc())); botonCancelar = new JButton(cancelar); botonCancelar.setActionCommand("cancelar"); botonCancelar.addActionListener(this); botones.add(botonAceptar); botones.add(botonCancelar); cp.add(BorderLayout.SOUTH, botones); // Opciones del cuadro de diálogo this.setTitle(texto.getString("guardar_conversacion_formulario_title")); this.setSize(300, 180); this.setResizable(false); this.setLocationRelativeTo(vc); this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); this.setVisible(true); }