Package org.indrasoftwarelabs.dialogs

Source Code of org.indrasoftwarelabs.dialogs.AgregarDialog

package org.indrasoftwarelabs.dialogs;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;

import org.indrasoftwarelabs.db.Query;
import org.indrasoftwarelabs.db.Sentence;
import org.indrasoftwarelabs.log.LogForDay;
import org.indrasoftwarelabs.main.QCS;

public class AgregarDialog extends JDialog {

  private static final long serialVersionUID = 1L;

  AgregarDialog frame;
  final  static int  NEW_PARAMETER  = 1;
  final  static int  EDIT_PARAMETER  = 2;

  public static final int MODULO  = 1;
  public static final int SENTENCE  = 2;
 
  private String[]  listaAux;
  private String[]  listaAuxSentences;
 
  public AgregarDialog(final int mode, final String name, final Properties prop, final JTextField  campoModulo, final String[] sentencesPrev, final JList listMod_Sen){
   
    frame = this;
   
    final ResultSet rs;
   
    String[] modules;
    String[] sentences;
    String[] listaValores = null;
   
    // General values
      setModalityType(ModalityType.APPLICATION_MODAL);
     
      switch(mode){
     
      case MODULO:
       
        setTitle("SELECCIONA UN MODULO");
       
        try {
           
            // CARGANDO TODOS LOS METODOS
            rs = Query.executeSelect(Sentence.GET_ALL_MODULES, prop);
           
            rs.last();
            modules = new String[rs.getRow()];
            rs.beforeFirst();
           
            int cont = 0;
            while (rs.next()){
              modules[cont] = rs.getString("MODULE_NAME");
              cont++; 
            }
           
            listaValores = modules;
           
        } catch (SQLException err) {
          LogForDay.writeToLog(" " + err.getLocalizedMessage() , QCS.logPath, LogForDay.ERROR);
        } catch (Exception err) {
          LogForDay.writeToLog(" " + err.getLocalizedMessage() , QCS.logPath, LogForDay.ERROR);
        }
       
        break;
       
      case SENTENCE:
       
        setTitle("SELECCIONA LAS SENTENCIAS");
       
        try {
           
            // CARGANDO TODOS LOS METODOS
            rs = Query.executeSelect(Sentence.GET_ALL_QUERIES, prop);
           
            rs.last();
            sentences = new String[rs.getRow()];
            rs.beforeFirst();
           
            int cont = 0;
            while (rs.next()){
              sentences[cont] = rs.getString("QUERY_NAME");
              cont++; 
            }
           
            listaValores = sentences;
           
        } catch (SQLException err) {
          LogForDay.writeToLog(" " + err.getLocalizedMessage() , QCS.logPath, LogForDay.ERROR);
        } catch (Exception err) {
          LogForDay.writeToLog(" " + err.getLocalizedMessage() , QCS.logPath, LogForDay.ERROR);
        }
       
        break;
     
      }
     
      setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setSize(300, 400);
       
        final JPanel panel = new JPanel();
        panel.setLayout(null);
       
        JLabel    etiqueta;
        JTextField  filtro;
        JButton    botonCancelar = new JButton();
        JButton    botonAceptar = new JButton();
        final JList    lista;
        JScrollPane  scroll;
        JPanel    panelScroll;
       
        etiqueta = new JLabel("Nombre: ");
        etiqueta.setBounds(20, 5, 100, 30); // x, y, ancho, alto
        panel.add(etiqueta);
       
        lista = new JList(listaValores);
       
        switch(mode){
     
      case MODULO:
        lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        break;
      case SENTENCE:
        lista.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        break;
    }
       
        scroll = new JScrollPane();
        scroll.getViewport().add(lista);
        scroll.setPreferredSize(new Dimension(250,260));
       
        panelScroll = new JPanel();
        panelScroll.add(scroll);
        panelScroll.setBounds(20, 50, 250, 260);
        panel.add(panelScroll);
       
        botonCancelar.setText("CANCELAR");
        botonCancelar.setBounds(180, 330, 100, 30); // x, y, ancho, alto
       
        botonCancelar.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent event) {
            frame.dispose();
          }
        });
        panel.add(botonCancelar);
       
        botonAceptar.setText("ACEPTAR");
        botonAceptar.setBounds(40, 330, 100, 30); // x, y, ancho, alto
       
        botonAceptar.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent event) {
           
            int count;
            switch(mode){
             
              case MODULO:
               
                campoModulo.setText((String)lista.getSelectedValue());
               
                break;
              case SENTENCE:
               
                listaAux      = sentencesPrev;
                listaAuxSentences   = sentencesPrev;
               
                int nuevos = lista.getSelectedValues().length;
                int limite = 0;
               
                Object[] nuevosValores = lista.getSelectedValues();
               
                listaAuxSentences = new String[listaAux.length + nuevos];
               
                for(count=0; count<listaAux.length;count++){
                  listaAuxSentences[count] = listaAux[count];
                  limite = count+1;
                }
               
                for(count=0; count<nuevos;count++){
                 
                  // Si ya existe salta una alerta...
                  for(int rec=0;rec<listaAux.length;rec++){
                    if( ((String)nuevosValores[count]).equals(listaAux[rec]) ){
                     
                      String msg = "La sentencia " + listaAux[rec] + " ya se encuentra a�adida. Por favor eliminila de la lista";
                           
                            JFrame popup = new JFrame();
                              popup.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                              popup.setSize(100, 100);
                             
                                JOptionPane.showConfirmDialog(frame,msg,"About us",JOptionPane.CLOSED_OPTION, JOptionPane.WARNING_MESSAGE);
                     
                      return;
                    }
                  }
                 
                  listaAuxSentences[limite+count] = (String)nuevosValores[count];
                }
               
                //sentencesPrev = listaAuxSentences;
                //listMod_Sen.setListData(sentencesPrev);
                listMod_Sen.setListData(listaAuxSentences);
               
                break;
            }
           
            frame.dispose();
          }
        });
        panel.add(botonAceptar);
       
        filtro = new JTextField();
        filtro.setBounds(100, 5, 180, 30); // x, y, ancho, alto
       
        filtro.addActionListener(new ActionListener() {
     
      public void actionPerformed(ActionEvent e) {
       
        ResultSet rs;
        String[] modulesAux    = null;
        String[] sentencesAux  = null;
        String query;
       
        // Al introducir algo se filtran los metodos por un like desde la izquierda
        String valor = e.getActionCommand();
        valor = valor.toUpperCase();
       
        System.out.println("FILTRO: *" + valor + "*");
       
        if(valor == null || valor.equals("") || valor.length() == 0 ){
         
          switch(mode){
           
            case MODULO:
             
              setTitle("SELECCIONA UN MODULO PARA EL METODO");
             
              try {
                 
                  // CARGANDO TODOS LOS METODOS
                  rs = Query.executeSelect(Sentence.GET_ALL_MODULES, prop);
                 
                  rs.last();
                  modulesAux = new String[rs.getRow()];
                  rs.beforeFirst();
                 
                  int cont = 0;
                  while (rs.next()){
                    modulesAux[cont] = rs.getString("MODULE_NAME");
                    cont++; 
                  }
                 
              } catch (SQLException err) {
                LogForDay.writeToLog(" " + err.getLocalizedMessage() , QCS.logPath, LogForDay.ERROR);
              } catch (Exception err) {
                LogForDay.writeToLog(" " + err.getLocalizedMessage() , QCS.logPath, LogForDay.ERROR);
              }
             
              lista.setListData(modulesAux);
             
              break;
             
            case SENTENCE:
             
              setTitle("SELECCIONA LAS SENTENCIAS PARA EL METODO");
             
              try {
                 
                  // CARGANDO TODOS LOS METODOS
                  rs = Query.executeSelect(Sentence.GET_ALL_QUERIES, prop);
                 
                  rs.last();
                  sentencesAux = new String[rs.getRow()];
                  rs.beforeFirst();
                 
                  int cont = 0;
                  while (rs.next()){
                    sentencesAux[cont] = rs.getString("QUERY_NAME");
                    cont++; 
                  }
                 
              } catch (SQLException err) {
                LogForDay.writeToLog(" " + err.getLocalizedMessage() , QCS.logPath, LogForDay.ERROR);
              } catch (Exception err) {
                LogForDay.writeToLog(" " + err.getLocalizedMessage() , QCS.logPath, LogForDay.ERROR);
              }
             
              lista.setListData(sentencesAux);
             
              break;
           
            }
         
        }else{
         
          switch(mode){
           
            case MODULO:
             
              setTitle("FILTRA LOS MODULOS");
             
              try {
                 
                  // FILTRANDO LOS MODULOS
                query = Sentence.GET_ALL_MODULES_FILTERED.replaceFirst("\\?",valor);
                  rs = Query.executeSelect(query, prop);
                 
                  rs.last();
                  modulesAux = new String[rs.getRow()];
                  rs.beforeFirst();
                 
                  int cont = 0;
                  while (rs.next()){
                    modulesAux[cont] = rs.getString("MODULE_NAME");
                    cont++; 
                  }
                 
              } catch (SQLException err) {
                LogForDay.writeToLog(" " + err.getLocalizedMessage() , QCS.logPath, LogForDay.ERROR);
              } catch (Exception err) {
                LogForDay.writeToLog(" " + err.getLocalizedMessage() , QCS.logPath, LogForDay.ERROR);
              }
             
              lista.setListData(modulesAux);
             
              break;
             
            case SENTENCE:
             
              setTitle("FILTRA LAS SENTENCIAS");
             
              try {
               
                // FILTRANDO LAS SENTENCIAS
                query = Sentence.GET_ALL_QUERIES_FILTERED.replaceFirst("\\?",valor);
                  rs = Query.executeSelect(query, prop);
                 
                  rs.last();
                  sentencesAux = new String[rs.getRow()];
                  rs.beforeFirst();
                 
                  int cont = 0;
                  while (rs.next()){
                    sentencesAux[cont] = rs.getString("QUERY_NAME");
                    cont++; 
                  }
                 
              } catch (SQLException err) {
                LogForDay.writeToLog(" " + err.getLocalizedMessage() , QCS.logPath, LogForDay.ERROR);
              } catch (Exception err) {
                LogForDay.writeToLog(" " + err.getLocalizedMessage() , QCS.logPath, LogForDay.ERROR);
              }
             
              lista.setListData(sentencesAux);
             
              break;
           
            }
         
        }
       
      }
    });
       
        panel.add(filtro);
       
        add(panel);
       
  }
 
}
TOP

Related Classes of org.indrasoftwarelabs.dialogs.AgregarDialog

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.