Package org.sfsoft.hibernate.gui

Source Code of org.sfsoft.hibernate.gui.JTablaDatos

package org.sfsoft.hibernate.gui;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;

import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

import org.hibernate.Query;
import org.sfsoft.hibernate.Arma;
import org.sfsoft.hibernate.HibernateUtil;
import org.sfsoft.hibernate.Personaje;


/**
* Clase que muestra una lista en una JTable
* @author Santiago Faci
* @version 2.0
*/
public class JTablaDatos extends JTable {
 
  private Connection conexion;
  private DefaultTableModel modeloDatos;
 
  private static final boolean DEBUG = false;
 
  public JTablaDatos() {
    super();

    inicializar();
  }
 
  /**
   * Inicializa la estructura de la tabla
   */
  private void inicializar() {
   
    modeloDatos = new DefaultTableModel() {
      @Override
      public boolean isCellEditable(int fila, int columna) {
        return false;
      }
    };
   
    modeloDatos.addColumn("#");
    modeloDatos.addColumn("nombre");
    modeloDatos.addColumn("nivel");
    modeloDatos.addColumn("energia");
    modeloDatos.addColumn("puntos");
    modeloDatos.addColumn("arma");
   
    this.setModel(modeloDatos);
  }
 
  /**
   * Muestra una lista de personajes en la tabla
   * @param personajes
   */
  public void listar(List<Personaje> personajes) {
   
    modeloDatos.setNumRows(0);
    for (Personaje personaje : personajes) {
     
      Object[] fila = new Object[]{personaje.getId(),
          personaje.getNombre(), personaje.getNivel(), personaje.getEnergia(), personaje.getPuntos(), personaje.getArma().getNombre()};
      modeloDatos.addRow(fila);
    }
  }
 
  /**
   * Obtiene el personaje seleccionado de la tabla
   * @return
   */
  public Personaje getPersonajeSeleccionado() {
   
    int filaSeleccionada = 0;
   
    filaSeleccionada = getSelectedRow();
    if (filaSeleccionada == -1)
      return null;
   
    int id = (Integer) getValueAt(filaSeleccionada, 0);
   
    Personaje personaje = (Personaje) HibernateUtil.getCurrentSession().get(Personaje.class, id);
    return personaje;
  }
 
  public Arma getArmaSeleccionada() {
   
int filaSeleccionada = 0;
   
    filaSeleccionada = getSelectedRow();
    if (filaSeleccionada == -1)
      return null;
   
    String nombre = (String) getValueAt(filaSeleccionada, 4);
   
    Query query = HibernateUtil.getCurrentSession().createQuery("SELECT a FROM Arma a WHERE a.nombre = :nombre");
    query.setParameter("nombre", nombre);
    Arma arma = (Arma) query.uniqueResult();
   
    return arma;
  }
}
TOP

Related Classes of org.sfsoft.hibernate.gui.JTablaDatos

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.