Package vista

Source Code of vista.AbmServicio

package vista;

import java.awt.Color;
import java.awt.Font;
import java.awt.Rectangle;
import java.util.LinkedList;
import javax.swing.ImageIcon;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
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 base.Servicio;
import base.ServicioDTO;

import javax.swing.JComboBox;
import javax.swing.BorderFactory;
import javax.swing.border.SoftBevelBorder;

import renderer.RendererServicio;

import editor.EditorServicio;

public class AbmServicio<M, I> extends PanelGeneral {

  private TableRowSorter<TableModel> modeloOrdenado;
  private static final long serialVersionUID = 1L;
  public Tabla table = new Tabla(5,7,9);
  DefaultTableModel dtm = (DefaultTableModel) table.getModel();

  JScrollPane scrollPane = new JScrollPane(table);
  String[] prueba = new String[8];

  private JPanel panelFiltro;
  private JPanel panelTabla;

  private JLabel etiquetaIcono;
  public JComboBox selectorTipoId = null;
  private JTextField textoTipoId;
  private JTextField textoIdFiscal;
  static JDialog dialog = new JDialog();
  Servicio s = new Servicio();

  private String textoId;

  private JLabel etiquetaNombreF;
  private JLabel etiquetaDescripcionF;
  private JTextField textoNombreF;
  private JTextField textoDescripcionF;
  private JButton botonSalir;

  @SuppressWarnings("unchecked")
  static private AbmServicio singletonAbmServicio = null;
 
  private JButton botonNuevo;

  /**
   * This is the default constructor
   */
  public AbmServicio() {
    super();
    initialize();
    inicializarTabla();
    this.getEtiquetaRutaNavegacion().setText("   Inicio - Gesti�n de Servicios");
    this.add(botonSalir, null);

  }

  @SuppressWarnings("unchecked")
  static public AbmServicio getSingletonAbmServicio() {

    if (singletonAbmServicio == null) {
      singletonAbmServicio = new AbmServicio();
    } else {
      singletonAbmServicio.limpiar(singletonAbmServicio);
      singletonAbmServicio.cargarTabla();
    }

    return singletonAbmServicio;
  }

  public void termino() {

    this.removeAll();
    this.add(getPanelFiltro(), null);
    this.add(getPanelRutaNavegacion());
    this.add(botonSalir, null);
    this.repaint();
    cargarTabla();
  }

  public void inicializarTabla() {

    dtm.addColumn("N�mero");
    dtm.addColumn("Nombre");
    dtm.addColumn("Costo M�nimo");
    dtm.addColumn("Tiempo de Ejecuci�n");
    dtm.addColumn("Descripci�n");
    dtm.addColumn("");
    dtm.addColumn("");
    dtm.addColumn("");
    dtm.addColumn("");
    dtm.addColumn("");
    dtm.addColumn("");
    table.setRowHeight(27);
    table.setShowVerticalLines(false);
   
    TableColumn columna;
    columna = table.getColumnModel().getColumn(0);
    columna.setMinWidth(40);
    columna.setPreferredWidth(60);
    columna.setMaxWidth(80);
    columna = table.getColumnModel().getColumn(1);
    columna.setPreferredWidth(5);
    columna = table.getColumnModel().getColumn(2);
    columna.setPreferredWidth(10);
    columna = table.getColumnModel().getColumn(3);
    columna.setPreferredWidth(10);
    columna = table.getColumnModel().getColumn(4);
    columna.setPreferredWidth(10);
   
   
    TableColumn agregarColumn;
    agregarColumn = table.getColumnModel().getColumn(5);
    agregarColumn.setCellEditor(new EditorServicio(this,5,7));
    agregarColumn.setCellRenderer(new RendererServicio(true,5,7));
    agregarColumn.setMaxWidth(40);
    agregarColumn.setMinWidth(40);
   
    TableColumn agregar2Column;
    agregar2Column = table.getColumnModel().getColumn(6);
    agregar2Column.setMaxWidth(10);
    agregar2Column.setMinWidth(10);
   
    TableColumn agregar3Column;
    agregar3Column = table.getColumnModel().getColumn(7);
    agregar3Column.setCellEditor(new EditorServicio(this,5,7));
    agregar3Column.setCellRenderer(new RendererServicio(true,5,7));
    agregar3Column.setMaxWidth(40);
    agregar3Column.setMinWidth(40);
    scrollPane.setVisible(true);
        scrollPane.setBounds(new Rectangle(10, 20, 770, 250));
   
        TableColumn agregar4Column;
    agregar4Column = table.getColumnModel().getColumn(8);
    agregar4Column.setMaxWidth(10);
    agregar4Column.setMinWidth(10);
   
    TableColumn agregar5Column;
    agregar5Column = table.getColumnModel().getColumn(9);
    agregar5Column.setCellEditor(new EditorServicio(this,5,7));
    agregar5Column.setCellRenderer(new RendererServicio(true,5,7));
    agregar5Column.setMaxWidth(40);
    agregar5Column.setMinWidth(40);
   
    TableColumn agregar6Column;
    agregar6Column = table.getColumnModel().getColumn(10);
    agregar6Column.setMaxWidth(10);
    agregar6Column.setMinWidth(10);
   
   
        table.getTableHeader().setReorderingAllowed(false); // no permite q se intercambien las columnas
        table.getTableHeader().setBackground(new Color(197,222,231));
        table.getTableHeader().setFont(new Font("Tahoma",Font.BOLD,12));
        table.setBackground(new Color(212,226,222));
    table.setCellSelectionEnabled(false);
    table.getTableHeader().setReorderingAllowed(false); // no permite q se intercambien las columnas
    table.setRowMargin(4);
   
    table.setShowHorizontalLines(false);
    modeloOrdenado = new TableRowSorter<TableModel>(dtm);
    table.setRowSorter(modeloOrdenado);
    table.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(java.awt.event.MouseEvent e) {
        clickEnTablaServicios();
      }
    });

    table.setRowSelectionAllowed(true); // realiza la seleccion de toda la
                      // fila

    cargarTabla();

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

    textoDescripcionF.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(textoDescripcionF.getText(), 2));
    RowFilter filtroAnd = RowFilter
        .andFilter((Iterable<? extends RowFilter<? super M, ? super I>>) lista);
    modeloOrdenado.setRowFilter(filtroAnd);

  }

  public void cargarTabla() {
    dtm.setNumRows(0);
    for (int i = 0; i < ServicioDTO.listaServicios().size(); i++) {
      s = (Servicio) ServicioDTO.listaServicios().get(i);
      insertarFila(s);
    }
    modeloOrdenado.setRowFilter(RowFilter.regexFilter(
        textoNombreF.getText(), 1));

  }

  public void insertarFila(Servicio s) {
    prueba[0] = s.getIdServicio().toString();
    prueba[1] = s.getNombre();
    String costoMinimo = s.getCostoMinimo().toString(); //convertimos el decimal a String
    prueba[2] = costoMinimo;
    prueba[3] = s.getTiempoEjecucion();
    prueba[4] = s.getDescripcion();
    dtm.addRow(prueba);
  }

  /**
   * This method initializes this
   *
   * @return void
   */
  private void initialize() {

    this.setBackground(new Color(209, 217, 237));
    this.add(getPanelFiltro(), null);
    this.add(getBotonSalir(), null);
  }

  /**
   * This method initializes panelFiltro
   *
   * @return javax.swing.JPanel
   */
  private JPanel getPanelFiltro() {
    if (panelFiltro == null) {
      panelFiltro = new JPanel();
      panelFiltro.setLayout(null);
      panelFiltro.setBounds(new Rectangle(30, 30, 800, 500));
      panelFiltro.setBorder(BorderFactory.createTitledBorder(
          new SoftBevelBorder(SoftBevelBorder.RAISED), "Gestion de Servicios",
          TitledBorder.DEFAULT_JUSTIFICATION,
          TitledBorder.DEFAULT_POSITION, new Font("Tahoma",
              Font.PLAIN, 14), Color.black));
      panelFiltro.setOpaque(false);

      etiquetaNombreF = new JLabel();
      etiquetaNombreF.setText("Nombre:");
      etiquetaNombreF.setBounds(new Rectangle(15, 35, 120, 20));
      textoNombreF = new JTextField();
      textoNombreF.setBounds(new Rectangle(150, 35, 140, 20));

      etiquetaDescripcionF = new JLabel();
      etiquetaDescripcionF.setBounds(new Rectangle(15, 70, 115, 16));
      etiquetaDescripcionF.setText("Descripci�n:");
      textoDescripcionF = new JTextField();
      textoDescripcionF.setBounds(new Rectangle(150, 70, 140, 20));

      etiquetaIcono = new JLabel();
      etiquetaIcono.setBounds(new Rectangle(384, 26, 64, 64));
      etiquetaIcono.setText("");
      etiquetaIcono.setIcon(new ImageIcon(getClass().getResource("/imagenes/buscar.png")));

      panelFiltro.add(etiquetaNombreF, null);
      panelFiltro.add(etiquetaDescripcionF, null);
      panelFiltro.add(textoNombreF, null);
      panelFiltro.add(textoDescripcionF, null);
      panelFiltro.add(etiquetaIcono, null);
      panelFiltro.add(getJPanelTabla(), null);
      panelFiltro.add(getBotonNuevo(), null);
    }
    return panelFiltro;
  }

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

  public void setearServicioSeleccionado() {
    textoId = "";

    textoTipoId.setText("");
    textoIdFiscal.setText("");
 
  }

  private void clickEnTablaServicios() {
    int id = Integer.parseInt((String) table.getValueAt(table.getSelectedRow(), 0));

    Servicio servicio = ServicioDTO.buscarServicio(id);

    textoId = String.valueOf(servicio.getIdServicio());
   
    servicio = null;
  }

  /**
   * This method initializes botonNuevo 
   *  
   * @return javax.swing.JButton 
   */
  private JButton getBotonNuevo() {
    if (botonNuevo == null) {
      botonNuevo = new JButton();
      botonNuevo.setText("Nuevo");
      botonNuevo.setBounds(new Rectangle(665, 31, 101, 34));
      botonNuevo.setIcon(new ImageIcon(getClass().getResource("/imagenes/nuevo.png")));
      botonNuevo.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
          AltaServicio a = new AltaServicio(AbmServicio.this);
         
          AbmServicio.this.removeAll();
          AbmServicio.this.add(a);
          AbmServicio.this.repaint();
        }
      });
    }
    return botonNuevo;
  }

  /**
   * This method initializes botonSalir 
   *  
   * @return javax.swing.JButton 
   */
  private JButton getBotonSalir() {
    if (botonSalir == null) {
      botonSalir = new JButton();
      botonSalir.setBounds(new Rectangle(712, 549, 117, 21));
      botonSalir.setText("Salir");
    }
    return botonSalir;
  }

}
TOP

Related Classes of vista.AbmServicio

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.