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.Enemigo;
import org.sfsoft.hibernate.util.HibernateUtil;


/**
* 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("vida");
    modeloDatos.addColumn("puntos");
    modeloDatos.addColumn("armas");
   
    this.setModel(modeloDatos);
  }
 
  /**
   * Muestra una lista de enemigos en la tabla
   * @param enemigos
   */
  public void listar(List<Enemigo> enemigos) {
   
    modeloDatos.setNumRows(0);
    for (Enemigo enemigo : enemigos) {
     
      Object[] fila = new Object[]{enemigo.getId(),
          enemigo.getNombre(), enemigo.getVida(), enemigo.getPuntos(), enemigo.getNombreArmas()};
      modeloDatos.addRow(fila);
    }
  }
 
  /**
   * Obtiene el enemigo seleccionado de la tabla
   * @return
   */
  public Enemigo getEnemigoSeleccionado() {
   
    int filaSeleccionada = 0;
   
    filaSeleccionada = getSelectedRow();
    if (filaSeleccionada == -1)
      return null;
   
    int id = (Integer) getValueAt(filaSeleccionada, 0);
   
    Enemigo enemigo = (Enemigo) HibernateUtil.getCurrentSession().get(Enemigo.class, id);
    return enemigo;
  }
 
  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;
  }
 
  public List<Arma> getArmasEnemigoSeleccionado() {
   
    int filaSeleccionada = 0;
   
    filaSeleccionada = getSelectedRow();
    if (filaSeleccionada == -1)
      return null;
   
    String nombre = (String) getValueAt(filaSeleccionada, 1);
   
    Query query = HibernateUtil.getCurrentSession().createQuery("SELECT e.armas FROM Enemigo e WHERE e.nombre = :nombre");
    query.setParameter("nombre", nombre);
    List<Arma> armas = (List<Arma>) query.list();
   
    return armas;
  }
}
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.