Package vista

Source Code of vista.AbmCliente

package vista;

import java.awt.Color;
import java.awt.Font;
import java.awt.Rectangle;
import java.util.LinkedList;
import java.util.List;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.SwingConstants;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.RowFilter;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;

import controllers.ControllerFactory;
import controllers.HalconController;
import base.Cliente;

import renderer.RendererCliente;
import editor.EditorCliente;

public class AbmCliente<M, I> extends PanelGeneral {

  private HalconController halconController = ControllerFactory
      .GetHalconController()//  @jve:decl-index=0:
  Cliente cliente = new Cliente()//  @jve:decl-index=0:
  private TableRowSorter<TableModel> modeloOrdenado;
  private static final long serialVersionUID = 1L;

  public Tabla tabla = new Tabla(6, 8, 10);// columnas editablas
  DefaultTableModel dtm = (DefaultTableModel) tabla.getModel();
  JScrollPane scrollPane = new JScrollPane(tabla);
  String[] registro = new String[8];
  private JPanel panelTabla;
  static JDialog dialog = new JDialog();

  private JLabel etiquetaNombreF;
  private JLabel etiquetaApellidoF;
  private JLabel etiquetaDocumentoF;
  private JTextField textoDocumentoF;
  private JTextField textoApellidoF;
  private JTextField textoNombreF;
  private JButton botonSalir;
  private JButton botonNuevo;
  private JSeparator separador;
  private JSeparator separador2;
  @SuppressWarnings("unchecked")
  static private AbmCliente singletonAbmCliente = null;
  private JLabel etiquetaAdmin = null;
  private JLabel etiquetaBusqueda = null;

  /**
   * This is the default constructor
   */
  public AbmCliente() {
    super();
    this.setEnabled(true);
    this.setVisible(true);
    initialize();

    inicializarTabla();
    this.getEtiquetaRutaNavegacion().setText(
        "   Inicio/Administraci�n de Clientes");
    this.add(botonSalir, null);
  }

  private void initialize() {

    etiquetaBusqueda = new JLabel();
    etiquetaBusqueda.setBounds(new Rectangle((int) (x * 90),
        (int) (y * 114), 271, 23));
    etiquetaBusqueda.setText("Criterios de busqueda");
    etiquetaBusqueda.setFont(new Font("Tahoma", Font.BOLD, 13));

    etiquetaAdmin = new JLabel();
    etiquetaAdmin.setBounds(new Rectangle((int) (x * 90), (int) (y * 7),
        298, 32));
    etiquetaAdmin.setText("Administraci�n de clientes");
    etiquetaAdmin.setFont(new Font("Tahoma", Font.BOLD, 16));
    separador = new JSeparator(SwingConstants.HORIZONTAL);
    separador.setBounds(new Rectangle((int) (x * 90), (int) (y * 50),
        (int) (x * 940), (int) (y * 5)));
    this.add(separador);
    separador2 = new JSeparator(SwingConstants.HORIZONTAL);
    separador2.setBounds(new Rectangle((int) (x * 90), (int) (y * 100),
        (int) (x * 940), (int) (y * 5)));
    this.add(separador2);
    etiquetaNombreF = new JLabel();
    etiquetaNombreF.setText("Nombre/s:");
    etiquetaNombreF.setBounds(new Rectangle((int) (x * 90),
        (int) (y * 150), 100, 20));
    etiquetaNombreF.setFont(new Font("Tahoma", Font.PLAIN, 12));
    textoNombreF = new JTextField();
    textoNombreF.setBounds(new Rectangle((int) (x * 220), (int) (y * 150),
        140, 20));

    etiquetaApellidoF = new JLabel();
    etiquetaApellidoF.setBounds(new Rectangle((int) (x * 90),
        (int) (y * 180), 100, 20));
    etiquetaApellidoF.setText("Apellido/s:");
    etiquetaApellidoF.setFont(new Font("Tahoma", Font.PLAIN, 12));
    textoApellidoF = new JTextField();
    textoApellidoF.setBounds(new Rectangle((int) (x * 220),
        (int) (y * 180), 140, 20));

    etiquetaDocumentoF = new JLabel();
    etiquetaDocumentoF.setBounds(new Rectangle((int) (x * 90),
        (int) (y * 210), 100, 20));
    etiquetaDocumentoF.setText("N� Documento:");
    etiquetaDocumentoF.setFont(new Font("Tahoma", Font.PLAIN, 12));
    textoDocumentoF = new JTextField();
    textoDocumentoF.setBounds(new Rectangle((int) (x * 220),
        (int) (y * 210), 140, 20));

    this.add(etiquetaNombreF, null);
    this.add(etiquetaApellidoF, null);
    this.add(etiquetaDocumentoF, null);
    this.add(textoNombreF, null);
    this.add(textoApellidoF, null);
    this.add(textoDocumentoF, null);

    this.add(getJPanelTabla(), null);
    this.add(getBotonNuevo(), null);

    this.add(getBotonSalir(), null);
    this.add(etiquetaAdmin, null);
    this.add(etiquetaBusqueda, null);
  }

  @SuppressWarnings("unchecked")
  static public AbmCliente getSingletonAbmCliente() {

    if (singletonAbmCliente == null) {
      singletonAbmCliente = new AbmCliente();
    } else {
      singletonAbmCliente.limpiar(singletonAbmCliente);
      singletonAbmCliente.cargarTabla();
    }
    return singletonAbmCliente;
  }

  public void termino() {
    this.removeAll();
    inicializarPanel();
    this.add(getPanelRutaNavegacion());
    this.add(separador);
    this.add(separador2);
    this.add(etiquetaNombreF, null);
    this.add(etiquetaApellidoF, null);
    this.add(etiquetaDocumentoF, null);
    this.add(textoNombreF, null);
    this.add(textoApellidoF, null);
    this.add(textoDocumentoF, null);

    this.add(getJPanelTabla(), null);
    this.add(getBotonNuevo(), null);

    this.add(getBotonSalir(), null);
    this.add(etiquetaAdmin, null);
    this.add(etiquetaBusqueda, null);
    this.add(botonSalir, null);
    this.repaint();
    cargarTabla();
  }

  public void inicializarTabla() {

    dtm.addColumn("N�mero");
    dtm.addColumn("Nombre/s");
    dtm.addColumn("Apellido/s");
    dtm.addColumn("Documento");
    dtm.addColumn("Telefono");
    dtm.addColumn("Direccion");
    dtm.addColumn("");
    dtm.addColumn("");
    dtm.addColumn("");
    dtm.addColumn("");
    dtm.addColumn("");
    dtm.addColumn("");

    TableColumn columna;
    columna = tabla.getColumnModel().getColumn(0);
    columna.setMinWidth(40);
    columna.setPreferredWidth(60);
    columna.setMaxWidth(80);

    columna = tabla.getColumnModel().getColumn(1);
    columna.setPreferredWidth(5);

    columna = tabla.getColumnModel().getColumn(2);
    columna.setPreferredWidth(10);

    columna = tabla.getColumnModel().getColumn(3);
    columna.setPreferredWidth(10);

    columna = tabla.getColumnModel().getColumn(4);
    columna.setPreferredWidth(10);

    columna = tabla.getColumnModel().getColumn(6);
    columna.setCellEditor(new EditorCliente(this, 6, 8));
    columna.setCellRenderer(new RendererCliente(true, 6, 8));
    columna.setMaxWidth(40);
    columna.setMinWidth(40);

    columna = tabla.getColumnModel().getColumn(7);
    columna.setMaxWidth(15);
    columna.setPreferredWidth(15);
    columna.setMinWidth(15);

    columna = tabla.getColumnModel().getColumn(8);
    columna.setCellEditor(new EditorCliente(this, 6, 8));
    columna.setCellRenderer(new RendererCliente(true, 6, 8));
    columna.setMaxWidth(40);
    columna.setMinWidth(40);

    columna = tabla.getColumnModel().getColumn(9);
    columna.setMaxWidth(15);
    columna.setPreferredWidth(15);
    columna.setMinWidth(15);

    columna = tabla.getColumnModel().getColumn(10);
    columna.setCellEditor(new EditorCliente(this, 6, 8));
    columna.setCellRenderer(new RendererCliente(true, 6, 8));
    columna.setMaxWidth(40);
    columna.setMinWidth(40);

    columna = tabla.getColumnModel().getColumn(11);
    columna.setMaxWidth(15);
    columna.setPreferredWidth(15);
    columna.setMinWidth(15);

    scrollPane.setVisible(true);
    scrollPane.setBounds(new Rectangle((int) (x * 5), (int) (y * 5),
        (int) (x * 940), (int) (y * 280)));
    tabla.setRowHeight(25);
    tabla.setShowVerticalLines(false);
    tabla.setShowHorizontalLines(false);
    tabla.getTableHeader().setReorderingAllowed(false); // no permite q se
                              // intercambien las
                              // columnas
    tabla.getTableHeader().setBackground(new Color(197, 222, 231));
    tabla.getTableHeader().setFont(new Font("Tahoma", Font.BOLD, 12));
    tabla.setBackground(new Color(212, 226, 222));
    tabla.setCellSelectionEnabled(false);
    tabla.setRowMargin(5);
    tabla.setFont(new Font("Tahoma", Font.BOLD, 12));
    tabla.setRowSelectionAllowed(true); // realiza la seleccion de toda la
                      // fila

    modeloOrdenado = new TableRowSorter<TableModel>(dtm);
    tabla.setRowSorter(modeloOrdenado);

    cargarTabla();

    textoNombreF.addKeyListener(new java.awt.event.KeyAdapter() {
      public void keyReleased(java.awt.event.KeyEvent e) {
        filtrarTabla();
      }
    });

    textoApellidoF.addKeyListener(new java.awt.event.KeyAdapter() {
      public void keyReleased(java.awt.event.KeyEvent e) {
        filtrarTabla();
      }
    });

    textoDocumentoF.addKeyListener(new java.awt.event.KeyAdapter() {
      public void keyReleased(java.awt.event.KeyEvent e) {
        filtrarTabla();
      }
    });
  }

  @SuppressWarnings("unchecked")
  public void filtrarTabla() {
    LinkedList<RowFilter> lista = new LinkedList<RowFilter>();
    lista.add(RowFilter.regexFilter(textoNombreF.getText(), 1));
    lista.add(RowFilter.regexFilter(textoApellidoF.getText(), 2));
    lista.add(RowFilter.regexFilter(textoDocumentoF.getText(), 3));
    RowFilter filtroAnd = RowFilter
        .andFilter((Iterable<? extends RowFilter<? super M, ? super I>>) lista);
    modeloOrdenado.setRowFilter(filtroAnd);

  }

  public void cargarTabla() {
    dtm.setNumRows(0);
    List<Cliente> listaClientes = halconController.GetListaClientes();

    for (Cliente cliente : listaClientes)
      insertarFila(cliente);
   
    modeloOrdenado.setRowFilter(RowFilter.regexFilter(textoNombreF
        .getText(), 1));
  }

  public void insertarFila(Cliente c) {
    registro[0] = c.getId().toString();
    registro[1] = c.getNombre();
    registro[2] = c.getApellido();
    registro[3] = c.getDocumento();
    registro[4] = c.getTelefono();
    registro[5] = c.getLocalidad().getPais().getDescrip();
   
    dtm.addRow(registro);
  }

  private void inicializarPanel() {

  }

  /**
   * This method initializes panelTabla
   *
   * @return javax.swing.JPanel
   */
  private JPanel getJPanelTabla() {
    if (panelTabla == null) {
      panelTabla = new JPanel();
      panelTabla.setLayout(null);
      panelTabla.setBounds(new Rectangle((int) (x * 90), (int) (y * 240),
          (int) (x * 950), (int) (y * 290)));
      panelTabla.add(scrollPane);
      panelTabla.setBorder(new TitledBorder(new LineBorder(Color.BLACK),
          "", 0, 0,
          new Font("TimesRoman", Font.BOLD, (int) (x * 18)),
          Color.BLACK));
      panelTabla.setOpaque(true);
      panelTabla.setBackground(Color.lightGray);
    }
    return panelTabla;
  }

  private JButton getBotonNuevo() {
    if (botonNuevo == null) {
      botonNuevo = new JButton();
      botonNuevo.setText("Agregar cliente");
      botonNuevo.setFont(new Font("Tahoma", Font.BOLD, 10));
      botonNuevo.setBounds(new Rectangle((int) (x * 870), (int) (y * 65),
          120, 20));
      botonNuevo.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
          AltaCliente a = new AltaCliente(AbmCliente.this);
          AbmCliente.this.removeAll();
          AbmCliente.this.add(a);
          AbmCliente.this.repaint();
        }
      });
    }
    return botonNuevo;
  }

  private JButton getBotonSalir() {
    if (botonSalir == null) {
      botonSalir = new JButton();
      botonSalir.setBounds(new Rectangle((int) (x * 870),
          (int) (y * 549), 120, 20));
      botonSalir.setText("Salir");
      botonSalir.setFont(new Font("Tahoma", Font.BOLD, 10));
    }
    return botonSalir;
  }
  public static void main(String[] args) {
    AbmCliente abm=new AbmCliente();
    //vista.pack();
    abm.setEnabled(true);
    abm.setVisible(true);
    //vista.show();
   
  }
}
TOP

Related Classes of vista.AbmCliente

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.