package com.GestDB.sql;
import com.GestDB.general.Trackbug;
import com.utils.*;
import java.awt.*;
import java.sql.*;
import java.util.StringTokenizer;
import java.util.Properties;
import java.util.Enumeration;
import java.util.Vector;
import java.io.File;
import java.io.FileInputStream;
public class Exportar extends javax.swing.JDialog
{
private String jdbcDriverURL = "";
private String jdbcDriverClass = "";
private String user = "";
private String password = "";
private Vector vCampos = new Vector(100,100);
private java.util.Map mTiposSql = java.util.Collections.synchronizedMap(new java.util.TreeMap());
public Exportar(Frame parent)
{
super(parent);
TipoDeGestores.addElement("AdabasD");
TipoDeGestores.addElement("DB2");
TipoDeGestores.addElement("ODBC");
TipoDeGestores.addElement("Oracle");
TipoDeGestores.addElement("Informix");
// define los tipos SQL
mTiposSql.put(Integer.toString(Types.ARRAY),"ARRAY");
mTiposSql.put(Integer.toString(Types.BIGINT),"BIGINT");
mTiposSql.put(Integer.toString(Types.BINARY),"BINARY");
mTiposSql.put(Integer.toString(Types.BIT),"BIT");
mTiposSql.put(Integer.toString(Types.BLOB),"BLOB");
mTiposSql.put(Integer.toString(Types.CHAR),"CHAR");
mTiposSql.put(Integer.toString(Types.CLOB),"CLOB");
mTiposSql.put(Integer.toString(Types.DATE),"DATE");
mTiposSql.put(Integer.toString(Types.DECIMAL),"DECIMAL");
mTiposSql.put(Integer.toString(Types.DISTINCT),"DISTINCT");
mTiposSql.put(Integer.toString(Types.DOUBLE),"DOUBLE");
mTiposSql.put(Integer.toString(Types.FLOAT),"FLOAT");
mTiposSql.put(Integer.toString(Types.INTEGER),"INTEGER");
mTiposSql.put(Integer.toString(Types.JAVA_OBJECT),"JAVA_OBJECT");
mTiposSql.put(Integer.toString(Types.LONGVARBINARY),"LONGVARBINARY");
mTiposSql.put(Integer.toString(Types.LONGVARCHAR),"LONGVARCHAR");
mTiposSql.put(Integer.toString(Types.NULL),"NULL");
mTiposSql.put(Integer.toString(Types.NUMERIC),"NUMERIC");
mTiposSql.put(Integer.toString(Types.OTHER),"OTHER");
mTiposSql.put(Integer.toString(Types.REAL),"REAL");
mTiposSql.put(Integer.toString(Types.REF),"REF");
mTiposSql.put(Integer.toString(Types.SMALLINT),"SMALLINT");
mTiposSql.put(Integer.toString(Types.STRUCT),"STRUCT");
mTiposSql.put(Integer.toString(Types.TIME),"TIME");
mTiposSql.put(Integer.toString(Types.TIMESTAMP),"TIMESTAMP");
mTiposSql.put(Integer.toString(Types.TINYINT),"TINYINT");
mTiposSql.put(Integer.toString(Types.VARBINARY),"VARBINARY");
mTiposSql.put(Integer.toString(Types.VARCHAR),"VARCHAR");
setModal(true);
setTitle("Exportaci�n de datos");
getContentPane().setLayout(null);
setSize(541,540);
setVisible(false);
JPanel1.setBorder(titledBorder1);
JPanel1.setLayout(null);
getContentPane().add(JPanel1);
JPanel1.setBounds(12,0,516,108);
gExportar.setLayout(new GridLayout(3,0,0,0));
JPanel1.add(gExportar);
gExportar.setBounds(15,21,126,75);
JRadioButton1.setSelected(true);
JRadioButton1.setToolTipText("Exporta los resultados de la Query lanzada en la pantalla");
JRadioButton1.setText("Resultados Query");
JRadioButton1.setActionCommand("Resultados Query");
JRadioButton1.setMnemonic((int)'R');
gExportar.add(JRadioButton1);
JRadioButton1.setBounds(0,0,0,0);
JRadioButton2.setToolTipText("Exporta todos los datos de la tabla seleccionada");
JRadioButton2.setText("Tabla");
JRadioButton2.setActionCommand("Tabla");
JRadioButton2.setMnemonic((int)'T');
gExportar.add(JRadioButton2);
JRadioButton2.setBounds(0,0,0,0);
JRadioButton3.setToolTipText("Exporta la Base de Datos que estamos utilizando en estos momentos");
JRadioButton3.setText("Base de datos");
JRadioButton3.setActionCommand("Base de datos");
JRadioButton3.setMnemonic((int)'B');
gExportar.add(JRadioButton3);
JRadioButton3.setBounds(0,0,0,0);
jtQuery.setToolTipText("Tabla a crear en el destino. S�lo si se selecciona en tabla destino \"Nueva\"");
JPanel1.add(jtQuery);
jtQuery.setBounds(156,24,348,23);
jcTabla1.setModel(TablasActuales);
jcTabla1.setToolTipText("Tablas disponibles en la base de datos para exportar");
jcTabla1.setEnabled(false);
JPanel1.add(jcTabla1);
jcTabla1.setBounds(156,48,180,23);
JLabel10.setText("Filtro de tablas");
JPanel1.add(JLabel10);
JLabel10.setBounds(156,72,90,23);
jtFiltro.setToolTipText("Campo clave que se utiliza en la condici�n");
jtFiltro.setText("%");
jtFiltro.setEnabled(false);
JPanel1.add(jtFiltro);
jtFiltro.setBounds(252,72,252,23);
JPanel2.setBorder(titledBorder2);
JPanel2.setLayout(null);
getContentPane().add(JPanel2);
JPanel2.setBounds(12,108,516,216);
JLabel1.setText("Separador de campos");
JPanel2.add(JLabel1);
JLabel1.setBounds(32,40,130,23);
jtSeparador.setToolTipText("Caracter de texto utilizado para separar los campos. Ej |");
jtSeparador.setText("|");
JPanel2.add(jtSeparador);
jtSeparador.setBounds(170,40,40,23);
JLabel2.setText("Delimitador de cadenas");
JPanel2.add(JLabel2);
JLabel2.setBounds(230,40,135,23);
jtCadenas.setToolTipText("Car�cter de texto utilizado para delimitar las cadenas de texto. Ej. \"");
JPanel2.add(jtCadenas);
jtCadenas.setBounds(375,40,40,23);
chConNombres.setToolTipText("S�lo valido para destino del tipo Archivo de texto");
chConNombres.setText("Primera l�nea con nombres de campos");
chConNombres.setActionCommand("Primera l�nea con nombres de campos");
chConNombres.setMnemonic((int)'P');
JPanel2.add(chConNombres);
chConNombres.setForeground(new java.awt.Color(102,102,153));
chConNombres.setBounds(32,62,240,23);
JLabel11.setText("Tabla destino:");
JPanel2.add(JLabel11);
JLabel11.setBounds(180,106,80,23);
jtTablaDestino.setEnabled(false);
JPanel2.add(jtTablaDestino);
jtTablaDestino.setBounds(264,106,240,23);
JLabel3.setText("Origen: Clave 1");
JPanel2.add(JLabel3);
JLabel3.setBounds(36,158,90,23);
jcClave1.setModel(Campos);
jcClave1.setToolTipText("Campo clave que se utiliza en la condici�n");
jcClave1.setEnabled(false);
JPanel2.add(jcClave1);
jcClave1.setBounds(132,158,150,23);
JLabel4.setText("Clave 2");
JPanel2.add(JLabel4);
JLabel4.setBounds(305,158,45,23);
jcClave2.setModel(Campos2);
jcClave2.setToolTipText("Segundo campo clave que se utiliza en la condici�n");
jcClave2.setEnabled(false);
JPanel2.add(jcClave2);
jcClave2.setBounds(354,158,150,23);
gTipo.setLayout(null);
JPanel2.add(gTipo);
gTipo.setBounds(15,21,153,183);
JRadioButton4.setSelected(true);
JRadioButton4.setToolTipText("Texto separado por caracteres de delimitaci�n");
JRadioButton4.setText("Texto plano delimitado");
JRadioButton4.setActionCommand("Texto plano delimitado");
JRadioButton4.setMnemonic((int)'X');
gTipo.add(JRadioButton4);
JRadioButton4.setBounds(0,0,153,23);
JRadioButton5.setToolTipText("Genera tantas sentencias insert como registros tenga que exportar");
JRadioButton5.setText("Insert");
JRadioButton5.setActionCommand("Insert");
JRadioButton5.setMnemonic((int)'I');
gTipo.add(JRadioButton5);
JRadioButton5.setBounds(0,65,60,23);
JRadioButton6.setToolTipText("Genera tantas sentencias como registros tenga que exportar");
JRadioButton6.setText("Update");
JRadioButton6.setActionCommand("Update");
JRadioButton6.setMnemonic((int)'U');
gTipo.add(JRadioButton6);
JRadioButton6.setBounds(0,88,60,23);
JRadioButton7.setToolTipText("Genera tantas sentencias como registros tenga que eliminar");
JRadioButton7.setText("Delete");
JRadioButton7.setActionCommand("Delete");
JRadioButton7.setMnemonic((int)'D');
gTipo.add(JRadioButton7);
JRadioButton7.setBounds(0,110,60,23);
JRadioButton8.setToolTipText("Genera la sentencia CREATE TABLE");
JRadioButton8.setText("Estructura");
JRadioButton8.setActionCommand("Estructura");
JRadioButton8.setMnemonic((int)'S');
JRadioButton8.setEnabled(false);
gTipo.add(JRadioButton8);
JRadioButton8.setBounds(0,161,80,23);
JPanel3.setBorder(titledBorder3);
JPanel3.setLayout(null);
getContentPane().add(JPanel3);
JPanel3.setBounds(12,324,516,60);
JLabel7.setText("Gestor de Bases de datos de destino");
JPanel3.add(JLabel7);
JLabel7.setForeground(java.awt.Color.black);
JLabel7.setBounds(15,24,215,23);
jcGdbs.setModel(TipoDeGestores);
jcGdbs.setToolTipText("Tipo de base de datos");
jcGdbs.setEnabled(false);
JPanel3.add(jcGdbs);
jcGdbs.setBounds(240,24,168,24);
JPanel4.setBorder(titledBorder4);
JPanel4.setLayout(null);
getContentPane().add(JPanel4);
JPanel4.setBounds(12,384,516,120);
JPanel4.add(jtArchivo);
jtArchivo.setBounds(132,28,336,23);
jbSelArchivo.setToolTipText("Buscar un archivo");
jbSelArchivo.setText("...");
jbSelArchivo.setActionCommand("...");
JPanel4.add(jbSelArchivo);
jbSelArchivo.setBounds(469,28,35,23);
jcDatabase.setModel(Gestores);
jcDatabase.setToolTipText("Base de datos destino");
jcDatabase.setEnabled(false);
JPanel4.add(jcDatabase);
jcDatabase.setBounds(132,56,168,23);
JLabel8.setText("Tabla des.");
JPanel4.add(JLabel8);
JLabel8.setBounds(310,56,60,23);
jcTabla2.setModel(TablasGestor);
jcTabla2.setToolTipText("Tabla de destino");
jcTabla2.setEnabled(false);
JPanel4.add(jcTabla2);
jcTabla2.setBounds(374,56,130,23);
JLabel9.setText("Nueva tabla");
JPanel4.add(JLabel9);
JLabel9.setBounds(170,84,90,23);
jtNuevaTabla.setToolTipText("Tabla a crear en el destino. S�lo si se selecciona en tabla destino \"Nueva\"");
jtNuevaTabla.setEnabled(false);
JPanel4.add(jtNuevaTabla);
jtNuevaTabla.setBounds(240,84,264,23);
gDestino.setLayout(new GridLayout(2,1,0,0));
JPanel4.add(gDestino);
gDestino.setBounds(15,26,110,50);
JRadioButton10.setSelected(true);
JRadioButton10.setToolTipText("Genera un archivo de texto en la ruta indicada");
JRadioButton10.setText("Archivo de texto");
JRadioButton10.setActionCommand("Archivo de texto");
JRadioButton10.setMnemonic((int)'A');
gDestino.add(JRadioButton10);
JRadioButton10.setBounds(0,0,0,0);
JRadioButton9.setToolTipText("Actualiza la informaci�n en la base de datos indicada");
JRadioButton9.setText("Base de Datos");
JRadioButton9.setActionCommand("Base de Datos");
JRadioButton9.setMnemonic((int)'O');
JRadioButton9.setEnabled(false);
gDestino.add(JRadioButton9);
JRadioButton9.setBounds(0,0,0,0);
JPanel5.setLayout(new FlowLayout(FlowLayout.RIGHT,10,5));
getContentPane().add(JPanel5);
JPanel5.setBounds(12,504,516,36);
jbExportar.setText("Exportar");
jbExportar.setActionCommand("Exportar");
jbExportar.setMnemonic((int)'E');
JPanel5.add(jbExportar);
jbExportar.setBounds(0,0,0,0);
jbCancelar.setText("Cancelar");
jbCancelar.setActionCommand("Cancelar");
jbCancelar.setMnemonic((int)'C');
JPanel5.add(jbCancelar);
jbCancelar.setBounds(0,0,0,0);
// REGISTER_LISTENERS
SymAction lSymAction = new SymAction();
jbSelArchivo.addActionListener(lSymAction);
SymItem lSymItem = new SymItem();
JRadioButton2.addItemListener(lSymItem);
JRadioButton4.addItemListener(lSymItem);
JRadioButton6.addItemListener(lSymItem);
JRadioButton7.addItemListener(lSymItem);
JRadioButton10.addItemListener(lSymItem);
JRadioButton9.addItemListener(lSymItem);
jcClave1.addItemListener(lSymItem);
jcClave2.addItemListener(lSymItem);
jcDatabase.addItemListener(lSymItem);
jcTabla2.addItemListener(lSymItem);
JRadioButton3.addItemListener(lSymItem);
jbExportar.addActionListener(lSymAction);
jbCancelar.addActionListener(lSymAction);
JRadioButton1.addItemListener(lSymItem);
JRadioButton5.addItemListener(lSymItem);
// FIN REGISTER_LISTENERS
}
public Exportar()
{
this((Frame)null);
}
public Exportar(String sTitle)
{
this();
setTitle(sTitle);
}
public void Inicializar(String jdbcDriverURL1, String jdbcDriverClass1, String user1, String password1)
{
jdbcDriverURL = jdbcDriverURL1;
jdbcDriverClass = jdbcDriverClass1;
user = user1;
password = password1;
Cancelar = true;
}
public void setVisible(boolean b)
{
if (b)
setLocation(50, 50);
super.setVisible(b);
}
static public void main(String args[])
{
(new Exportar()).setVisible(true);
}
public void addNotify()
{
// Record the size of the window prior to calling parents addNotify.
Dimension size = getSize();
super.addNotify();
if (frameSizeAdjusted)
return;
frameSizeAdjusted = true;
// Adjust size of frame according to the insets
Insets insets = getInsets();
setSize(insets.left + insets.right + size.width, insets.top + insets.bottom + size.height);
}
boolean frameSizeAdjusted = false;
javax.swing.JPanel JPanel1 = new javax.swing.JPanel();
// javax.swing.JButtonGroupPanel gExportar = new javax.swing.JButtonGroupPanel();
javax.swing.JPanel gExportar = new javax.swing.JPanel();
javax.swing.JRadioButton JRadioButton1 = new javax.swing.JRadioButton();
javax.swing.JRadioButton JRadioButton2 = new javax.swing.JRadioButton();
javax.swing.JRadioButton JRadioButton3 = new javax.swing.JRadioButton();
javax.swing.JTextField jtQuery = new javax.swing.JTextField();
javax.swing.JComboBox jcTabla1 = new javax.swing.JComboBox();
javax.swing.JLabel JLabel10 = new javax.swing.JLabel();
javax.swing.JTextField jtFiltro = new javax.swing.JTextField();
javax.swing.JPanel JPanel2 = new javax.swing.JPanel();
javax.swing.JLabel JLabel1 = new javax.swing.JLabel();
javax.swing.JTextField jtSeparador = new javax.swing.JTextField();
javax.swing.JLabel JLabel2 = new javax.swing.JLabel();
javax.swing.JTextField jtCadenas = new javax.swing.JTextField();
javax.swing.JCheckBox chConNombres = new javax.swing.JCheckBox();
javax.swing.JLabel JLabel11 = new javax.swing.JLabel();
javax.swing.JTextField jtTablaDestino = new javax.swing.JTextField();
javax.swing.JLabel JLabel3 = new javax.swing.JLabel();
javax.swing.JComboBox jcClave1 = new javax.swing.JComboBox();
javax.swing.JLabel JLabel4 = new javax.swing.JLabel();
javax.swing.JComboBox jcClave2 = new javax.swing.JComboBox();
// javax.swing.JButtonGroupPanel gTipo = new javax.swing.JButtonGroupPanel();
javax.swing.JPanel gTipo = new javax.swing.JPanel();
javax.swing.JRadioButton JRadioButton4 = new javax.swing.JRadioButton();
javax.swing.JRadioButton JRadioButton5 = new javax.swing.JRadioButton();
javax.swing.JRadioButton JRadioButton6 = new javax.swing.JRadioButton();
javax.swing.JRadioButton JRadioButton7 = new javax.swing.JRadioButton();
javax.swing.JRadioButton JRadioButton8 = new javax.swing.JRadioButton();
javax.swing.JPanel JPanel3 = new javax.swing.JPanel();
javax.swing.JLabel JLabel7 = new javax.swing.JLabel();
javax.swing.JComboBox jcGdbs = new javax.swing.JComboBox();
javax.swing.JPanel JPanel4 = new javax.swing.JPanel();
javax.swing.JTextField jtArchivo = new javax.swing.JTextField();
javax.swing.JButton jbSelArchivo = new javax.swing.JButton();
javax.swing.JComboBox jcDatabase = new javax.swing.JComboBox();
javax.swing.JLabel JLabel8 = new javax.swing.JLabel();
javax.swing.JComboBox jcTabla2 = new javax.swing.JComboBox();
javax.swing.JLabel JLabel9 = new javax.swing.JLabel();
javax.swing.JTextField jtNuevaTabla = new javax.swing.JTextField();
// javax.swing.JButtonGroupPanel gDestino = new javax.swing.JButtonGroupPanel();
javax.swing.JPanel gDestino = new javax.swing.JPanel();
javax.swing.JRadioButton JRadioButton10 = new javax.swing.JRadioButton();
javax.swing.JRadioButton JRadioButton9 = new javax.swing.JRadioButton();
javax.swing.JPanel JPanel5 = new javax.swing.JPanel();
javax.swing.JButton jbExportar = new javax.swing.JButton();
javax.swing.JButton jbCancelar = new javax.swing.JButton();
javax.swing.border.EtchedBorder etchedBorder1 = new javax.swing.border.EtchedBorder();
javax.swing.border.TitledBorder titledBorder1 = new javax.swing.border.TitledBorder(etchedBorder1,"Exportar");
javax.swing.border.TitledBorder titledBorder2 = new javax.swing.border.TitledBorder(etchedBorder1,"Tipo");
javax.swing.border.TitledBorder titledBorder3 = new javax.swing.border.TitledBorder(etchedBorder1,"Formato");
javax.swing.border.TitledBorder titledBorder4 = new javax.swing.border.TitledBorder(etchedBorder1,"Destino");
javax.swing.DefaultComboBoxModel TablasActuales = new javax.swing.DefaultComboBoxModel();
javax.swing.DefaultComboBoxModel TipoDeGestores = new javax.swing.DefaultComboBoxModel();
javax.swing.DefaultComboBoxModel Gestores = new javax.swing.DefaultComboBoxModel();
javax.swing.DefaultComboBoxModel TablasGestor = new javax.swing.DefaultComboBoxModel();
javax.swing.DefaultComboBoxModel Campos = new javax.swing.DefaultComboBoxModel();
javax.swing.DefaultComboBoxModel Campos2 = new javax.swing.DefaultComboBoxModel();
java.awt.FileDialog DialogoGuardar = new java.awt.FileDialog(new java.awt.Frame());
public Vector vConexiones = new Vector();
public boolean Cancelar = true;
class SymAction implements java.awt.event.ActionListener
{
public void actionPerformed(java.awt.event.ActionEvent event)
{
Object object = event.getSource();
if (object == jbSelArchivo)
jbSelArchivo_actionPerformed(event);
else if (object == jbExportar)
jbExportar_actionPerformed(event);
else if (object == jbCancelar)
jbCancelar_actionPerformed(event);
}
}
void jbSelArchivo_actionPerformed(java.awt.event.ActionEvent event)
{
try {
DialogoGuardar.setMode(FileDialog.SAVE);
DialogoGuardar.setTitle("Exportar Datos");
DialogoGuardar.setVisible(true);
if(DialogoGuardar.getFile() != null)
jtArchivo.setText(DialogoGuardar.getDirectory() + DialogoGuardar.getFile());
} catch (Exception e) {
Trackbug.error(e, e.getMessage());
}
}
class SymItem implements java.awt.event.ItemListener
{
public void itemStateChanged(java.awt.event.ItemEvent event)
{
Object object = event.getSource();
if (object == JRadioButton2)
JRadioButton2_itemStateChanged(event);
else if (object == JRadioButton4)
JRadioButton4_itemStateChanged(event);
else if (object == JRadioButton6)
JRadioButton6_itemStateChanged(event);
else if (object == JRadioButton7)
JRadioButton7_itemStateChanged(event);
else if (object == JRadioButton10)
JRadioButton10_itemStateChanged(event);
else if (object == JRadioButton9)
JRadioButton9_itemStateChanged(event);
else if (object == jcClave1)
jcClave1_itemStateChanged(event);
else if (object == jcClave2)
jcClave2_itemStateChanged(event);
else if (object == jcDatabase)
jcDatabase_itemStateChanged(event);
else if (object == jcTabla2)
jcTabla2_itemStateChanged(event);
else if (object == JRadioButton3)
JRadioButton3_itemStateChanged(event);
else if (object == JRadioButton1)
JRadioButton1_itemStateChanged(event);
else if (object == JRadioButton5)
JRadioButton5_itemStateChanged(event);
}
}
void JRadioButton2_itemStateChanged(java.awt.event.ItemEvent event)
{
if(JRadioButton2.isSelected())
{
if(jcTabla1.getModel().getSize() == 0)
jcTabla1.setModel(CargarTablas(false));
jcTabla1.setEnabled(true);
JRadioButton8.setEnabled(true);
}
else
jcTabla1.setEnabled(false);
}
void JRadioButton4_itemStateChanged(java.awt.event.ItemEvent event)
{
if(JRadioButton4.isSelected())
{
jtSeparador.setEnabled(true);
jtCadenas.setEnabled(true);
chConNombres.setEnabled(true);
jcGdbs.setEnabled(false);
JRadioButton10.setSelected(true);
JRadioButton9.setEnabled(false);
}
else
{
jtSeparador.setEnabled(false);
jtCadenas.setEnabled(false);
chConNombres.setEnabled(false);
jcGdbs.setEnabled(true);
JRadioButton9.setEnabled(true);
}
}
void JRadioButton6_itemStateChanged(java.awt.event.ItemEvent event)
{
if(JRadioButton6.isSelected() || JRadioButton7.isSelected())
{
jcClave1.setEnabled(true);
jcClave2.setEnabled(true);
if(JRadioButton1.isSelected() || JRadioButton2.isSelected())
jtTablaDestino.setEnabled(true);
if(JRadioButton2.isSelected())
{
CargarCampos(Campos, Campos2, (String)jcTabla1.getSelectedItem());
}
else if(JRadioButton1.isSelected())
{
// tiene que cargar los datos para tener la referecia de los campos
// busca la tabla.
String tabla = jtQuery.getText();
int inicio=0,fin=0;
tabla = tabla.toLowerCase();
inicio = tabla.indexOf("from");
if(inicio != -1)
{
inicio += 5;
tabla = tabla.substring(inicio);
fin = tabla.indexOf("where");
if(fin == -1) fin = tabla.indexOf("order by");
if(fin != -1) tabla = tabla.substring(0, fin).trim();
// Ya tengo la tabla
CargarCampos(Campos, Campos2, tabla);
}
}
else
{
Campos.removeAllElements();
Campos2.removeAllElements();
Campos.addElement("No disponibles");
Campos2.addElement("No disponibles");
}
}
else
{
jcClave1.setEnabled(false);
jcClave2.setEnabled(false);
if(JRadioButton5.isSelected() == false || JRadioButton3.isSelected())
jtTablaDestino.setEnabled(false);
}
}
void JRadioButton7_itemStateChanged(java.awt.event.ItemEvent event)
{
JRadioButton6_itemStateChanged(event);
}
void JRadioButton10_itemStateChanged(java.awt.event.ItemEvent event)
{
if(JRadioButton10.isSelected())
{
jtArchivo.setEnabled(true);
jbSelArchivo.setEnabled(true);
}
else
{
jtArchivo.setEnabled(false);
jbSelArchivo.setEnabled(false);
}
}
void JRadioButton9_itemStateChanged(java.awt.event.ItemEvent event)
{
if (true) return;
if(JRadioButton9.isSelected())
{
jcDatabase.setEnabled(true);
jcTabla2.setEnabled(true);
if(jcTabla2.getSelectedIndex() != -1 && jcTabla2.getSelectedItem().equals("Nueva"))
jtNuevaTabla.setEnabled(true);
else
jtNuevaTabla.setEnabled(false);
if(Gestores.getSize() == 0)
{
Gestores.addElement("GSDB Actual");
// Tiene que cargar los datos de las conexiones.
Properties Propiedades = new Properties();
File fl = new File(".", "GestDB.ini");
if ( fl.exists() )
{
try{
FileInputStream fls = new FileInputStream("./GestDB.ini");
Propiedades.load(fls);
}catch(java.io.IOException e) {
Trackbug.error(e, e.getMessage());
}
}
vConexiones.removeAllElements();
String stemp = "", stemp2 = "", us = "", pas= "", si = "";
int pos = 1;
StringTokenizer st1;
for (Enumeration e = Propiedades.elements() ; e.hasMoreElements() ;)
{
stemp = (String)e.nextElement();
vConexiones.addElement(stemp);
// En Gestores s�lo hay que meter ges gestor, la ip, el id y el usuario
st1 = new StringTokenizer(stemp, ":", false);
stemp2 = "" + Integer.toString(pos);
if(st1.hasMoreTokens())
stemp2 += " [" + st1.nextToken() + "] ";
if(st1.hasMoreTokens())
us = st1.nextToken();
if(st1.hasMoreTokens())
pas = st1.nextToken();
if(st1.hasMoreTokens())
si = st1.nextToken();
if(st1.hasMoreTokens())
stemp2 += st1.nextToken() + ", ";
stemp2 += ", " + si + ", " + us;
Gestores.addElement(stemp2);
++pos;
}
}
}
else
{
jcDatabase.setEnabled(false);
jcTabla2.setEnabled(false);
jtNuevaTabla.setEnabled(false);
}
}
public javax.swing.DefaultComboBoxModel CargarTablas( boolean elenuevo)
{
Connection connection;
Statement statement;
ResultSet rs;
String query = "Select ";
try
{
Class.forName(jdbcDriverClass);
connection = DriverManager.getConnection(jdbcDriverURL, user, password);
statement = connection.createStatement();
DatabaseMetaData dbmd = connection.getMetaData();
String tabla = null;
String tiposdetabla[] = new String[1];
int numTiposTablas = 1;
tiposdetabla[0] = "TABLE";
int conta = 0;
Vector vprueba = new Vector();
// coge los datos
rs = dbmd.getTables(null, null, null,tiposdetabla);
while (rs.next())
{
tabla = rs.getString("TABLE_NAME");
vprueba.addElement(tabla);
conta++;
}
rs.close();
statement.close();
connection.close();
if(elenuevo)
vprueba.addElement("Nueva");
javax.swing.DefaultComboBoxModel modelo = new javax.swing.DefaultComboBoxModel(vprueba);
return modelo;
}
catch (ClassNotFoundException ex)
{
Trackbug.error(ex, "No se encuentra la clase driver del gestor de base de datos: " + ex.toString());
}
catch (SQLException ex)
{
Trackbug.error(ex, ex.getMessage());
}
javax.swing.DefaultComboBoxModel modelo = new javax.swing.DefaultComboBoxModel();
return modelo;
}
private void CargarCampos(javax.swing.DefaultComboBoxModel modelo,
javax.swing.DefaultComboBoxModel modelo2, String Tabla)
{
// limpio el modelo de elementos
if(modelo.getSize() > 0)
{
modelo.removeAllElements();
modelo2.removeAllElements();
}
Connection connection;
if(Tabla == null || Tabla.length() == 0)
return;
try
{
connection = DriverManager.getConnection(jdbcDriverURL, user, password);
DatabaseMetaData dbmd = connection.getMetaData();
// coge los datos
ResultSet r2 = dbmd.getColumns(null, null, Tabla, null);
Vector vtemp2 = null;
vCampos.removeAllElements();
int itemp = 0;
String stemp ="";
String columna = "";
while (r2.next())
{
vtemp2 = new Vector(14,10);
columna = r2.getString("COLUMN_NAME");
vtemp2.addElement(columna);
vtemp2.addElement((String) mTiposSql.get(Short.toString(r2.getShort("DATA_TYPE"))));
vtemp2.addElement(r2.getString("TYPE_NAME"));
vtemp2.addElement("" + r2.getInt("COLUMN_SIZE"));
vtemp2.addElement("" + r2.getInt("DECIMAL_DIGITS"));
vtemp2.addElement("" + r2.getInt("NUM_PREC_RADIX"));
itemp = r2.getInt("NULLABLE");
switch(itemp)
{
case 0: stemp = "No null";break;
case 1: stemp = "Permite null";break;
case 2: stemp = "desconocido";break;
default: stemp = Integer.toString(itemp);
}
vtemp2.addElement(stemp);
vtemp2.addElement(r2.getString("REMARKS"));
vtemp2.addElement(r2.getString("COLUMN_DEF"));
vtemp2.addElement("" + r2.getInt("CHAR_OCTET_LENGTH"));
vtemp2.addElement("" + r2.getInt("ORDINAL_POSITION"));
vtemp2.addElement(r2.getString("IS_NULLABLE"));
vCampos.addElement(vtemp2);
modelo.addElement(columna);
modelo2.addElement(columna);
}
r2.close();
connection.close();
} catch(Exception e)
{
Trackbug.error(e, e.getMessage());
}
}
void jcClave1_itemStateChanged(java.awt.event.ItemEvent event)
{
}
void jcClave2_itemStateChanged(java.awt.event.ItemEvent event)
{
}
void jcDatabase_itemStateChanged(java.awt.event.ItemEvent event)
{
if(jcDatabase.getSelectedItem().equals("GSDB Actual"))
{
// TablasGestor.removeAllElements();
Vector vges = new Vector();
javax.swing.ComboBoxModel modelo1 = jcTabla1.getModel();
int i = modelo1.getSize();
// int i = TablasActuales.size();
for(int j = 0; j < i ; j++)
vges.addElement(modelo1.getElementAt(j));
// TablasGestor.addElement(TablasActuales.elementAt(j));
// TablasGestor.addElement("Nueva");
vges.addElement("Nueva");
javax.swing.ComboBoxModel modeloGes = new javax.swing.DefaultComboBoxModel(vges);
jcTabla2.setModel(modeloGes);
}
else
{
if(jcDatabase.getSelectedIndex() != -1)
{
String stemp = (String)vConexiones.elementAt(jcDatabase.getSelectedIndex());
StringTokenizer st1 = new StringTokenizer(stemp, ":", false);
String gsdb = null,sid = null,ip = null,puerto = null,user = null,pass = null;
if(st1.hasMoreTokens())
gsdb = st1.nextToken();
if(st1.hasMoreTokens())
user = st1.nextToken();
if(st1.hasMoreTokens())
pass = st1.nextToken();
if(st1.hasMoreTokens())
sid = st1.nextToken();
if(st1.hasMoreTokens())
ip = st1.nextToken();
if(st1.hasMoreTokens())
puerto = st1.nextToken();
jcTabla2.setModel(CargarTablas(true));
}
}
}
void jcTabla2_itemStateChanged(java.awt.event.ItemEvent event)
{
if(jcTabla2.getModel().getSelectedItem().equals("Nueva"))
jtNuevaTabla.setEnabled(true);
else
jtNuevaTabla.setEnabled(false);
}
void JRadioButton3_itemStateChanged(java.awt.event.ItemEvent event)
{
// to do: code goes here.
if(JRadioButton3.isSelected())
{
JRadioButton8.setEnabled(true);
jtFiltro.setEnabled(true);
}
else
jtFiltro.setEnabled(false);
}
void jbExportar_actionPerformed(java.awt.event.ActionEvent event)
{
String sMensaje = "";
// Si esta seleccionada la opci�n datos query
// tiene que estar rellena la query
if (JRadioButton1.isSelected() && jtQuery.getText().length() == 0)
sMensaje += "- Tiene que rellenar la Query.\n\n";
// Si esta seleccionada la opci�n de exportar la base de datos
// tiene que ser a una distinta a la actual
if (JRadioButton3.isSelected() && jcDatabase.getSelectedIndex() != -1 &&
jcDatabase.getSelectedItem().equals("GSDB Actual"))
sMensaje += "- No puede exportar la base de datos sobre si misma.\n\n";
// si son deletes, no se pueden lanzar sobre una tabla nueva
if(JRadioButton7.isSelected() && jtNuevaTabla.isEnabled())
sMensaje += "- No puede borrar registros de una tabla que no existe.\n\n";
// Si se selecciona estructura s�lo puede ser a un archivo o a una tabla nueva.
if(JRadioButton8.isSelected() && JRadioButton9.isSelected() &&
jtNuevaTabla.isEnabled() == false)
sMensaje += "- Si se selecciona la opci�n de 'estructura', s�lo puede exportarla a un archivo o a una tabla nueva.\n\n";
// Si se indica tabla origen, tiene que estar seleccionada alguna.
if(JRadioButton2.isSelected() && jcTabla1.getSelectedIndex() == -1)
sMensaje += "- Tiene que indicar una tabla origen.\n\n";
// Si esta seleccionado update o delete al menos tiene que tener una clave indicada
if((JRadioButton6.isSelected() || JRadioButton6.isSelected()) &&
jcClave1.getSelectedIndex() == -1)
sMensaje += "- Tiene que indicar al menos una clave principal por la se compar�n los campos.\n\n";
// Tiene que indicar un tipo gestor de base de datos si no se exportan datos a un archivo de texto.
if((JRadioButton4.isSelected() && JRadioButton10.isSelected()) == false &&
jcGdbs.getSelectedIndex() == -1)
sMensaje += "- Tiene que indicar el tipo de gestor de base de datos.\n\n";
if (JRadioButton9.isSelected() && jcDatabase.getSelectedIndex() == -1)
sMensaje += "- Tiene que indicar la base de datos de destino.\n\n";
if (JRadioButton1.isSelected() && JRadioButton9.isSelected() &&
jcTabla2.getSelectedIndex() == -1)
sMensaje += "- Tiene que indicar la tabla de destino.\n\n";
if(jtNuevaTabla.isEnabled() && jtNuevaTabla.getText().length() == 0)
sMensaje += "- Tiene que indicar el nombre de la tabla nueva.\n\n";
if(sMensaje.length() > 0)
{
Mensaje msj = new Mensaje("Error");
msj.setMensaje(sMensaje);
msj.setVisible(true);
Cancelar = false;
}
else
{
Cancelar = false;
try {
// Exportar Hide the Exportar
this.setVisible(false);
} catch (java.lang.Exception e) {
Trackbug.error(e, e.getMessage());
}
}
}
void jbCancelar_actionPerformed(java.awt.event.ActionEvent event)
{
jbCancelar_actionPerformed_Interaction1(event);
}
void jbCancelar_actionPerformed_Interaction1(java.awt.event.ActionEvent event)
{
try {
// Exportar Hide the Exportar
this.setVisible(false);
} catch (java.lang.Exception e) {
Trackbug.error(e, e.getMessage());
}
}
void JRadioButton1_itemStateChanged(java.awt.event.ItemEvent event)
{
if(JRadioButton1.isSelected())
{
JRadioButton8.setEnabled(false);
jtQuery.setEnabled(true);
}
else
jtQuery.setEnabled(false);
}
void JRadioButton5_itemStateChanged(java.awt.event.ItemEvent event)
{
if(JRadioButton5.isSelected() &&
(JRadioButton1.isSelected() || JRadioButton2.isSelected()))
jtTablaDestino.setEnabled(true);
else
jtTablaDestino.setEnabled(false);
}
}