version 1.17, 2004/02/17 13:16:00
|
version 1.25, 2004/03/04 11:30:11
|
Line 67 import javax.swing.table.TableModel;
|
Line 67 import javax.swing.table.TableModel;
|
*/ |
*/ |
public class FM2SQL extends JFrame implements ActionListener, TableModelListener |
public class FM2SQL extends JFrame implements ActionListener, TableModelListener |
{ |
{ |
|
private JMenuItem delimiterItem; |
private JCheckBoxMenuItem convertItem; |
private JCheckBoxMenuItem convertItem; |
private JCheckBoxMenuItem appendItem; |
private JCheckBoxMenuItem appendItem; |
private JCheckBoxMenuItem updateItem; |
private JCheckBoxMenuItem updateItem; |
|
private JCheckBoxMenuItem deleteItem; |
|
|
int mode = -1; |
int mode = -1; |
|
final static int ID_INDEX = 1; |
|
final static int SELECT_INDEX = 2; |
|
final static int CREATE_INDEX = 3; |
|
final static int LAYOUT_INDEX = 4; |
|
|
|
|
|
|
/** |
/** |
* The database Bean instance. |
* The database Bean instance. |
* |
* |
Line 127 public class FM2SQL extends JFrame imple
|
Line 137 public class FM2SQL extends JFrame imple
|
int oldWidth = 0, oldHeight = 0; |
int oldWidth = 0, oldHeight = 0; |
boolean resize = true; |
boolean resize = true; |
static FileWriter logFile; |
static FileWriter logFile; |
|
String delimiter = ""; |
|
|
Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); |
Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); |
JFileChooser configExportFileChooser; |
JFileChooser configExportFileChooser; |
JFileChooser configImportFileChooser; |
JFileChooser configImportFileChooser; |
Line 585 public class FM2SQL extends JFrame imple
|
Line 597 public class FM2SQL extends JFrame imple
|
{ |
{ |
} |
} |
} |
} |
|
if (command.equals("Delimiter")) |
|
{ |
|
delimiter = JOptionPane.showInputDialog(fmInstance,"Enter delimiter String",delimiter); |
|
|
|
} |
|
|
if (command == "Convert Mode") |
if (command == "Convert Mode") |
{ |
{ |
System.out.println("Convert Mode selected"); |
System.out.println("Convert Mode selected"); |
convert.setText("Convert Tables"); |
convert.setText("Convert Tables"); |
convert.setActionCommand("Convert Tables"); |
convert.setActionCommand("Convert Tables"); |
|
convert.setToolTipText("Normal table conversion existing table will be deleted"); |
mode = Convert.DataBase.CONVERT_MODE; |
mode = Convert.DataBase.CONVERT_MODE; |
} |
} |
if (command == "Append Mode") |
if (command == "Append Mode") |
Line 597 public class FM2SQL extends JFrame imple
|
Line 616 public class FM2SQL extends JFrame imple
|
System.out.println("Append Mode selected"); |
System.out.println("Append Mode selected"); |
convert.setText("Append Tables"); |
convert.setText("Append Tables"); |
convert.setActionCommand("Append Tables"); |
convert.setActionCommand("Append Tables"); |
|
convert.setToolTipText("Appends data to an existing table"); |
|
|
mode = Convert.DataBase.APPEND_MODE; |
mode = Convert.DataBase.APPEND_MODE; |
} |
} |
if (command == "Update Mode") |
if (command == "Update Mode") |
Line 604 public class FM2SQL extends JFrame imple
|
Line 625 public class FM2SQL extends JFrame imple
|
System.out.println("Update Mode selected"); |
System.out.println("Update Mode selected"); |
convert.setText("Update Tables"); |
convert.setText("Update Tables"); |
convert.setActionCommand("Update Tables"); |
convert.setActionCommand("Update Tables"); |
|
convert.setToolTipText("Updates data that has been changed in source"); |
mode = Convert.DataBase.UPDATE_MODE; |
mode = Convert.DataBase.UPDATE_MODE; |
} |
} |
|
if (command == "Delete Mode") |
|
{ |
|
System.out.println("Delete Mode selected"); |
|
convert.setText("Delete Tables"); |
|
convert.setActionCommand("Delete Tables"); |
|
convert.setToolTipText("Deletes data that has been deleted in source"); |
|
mode = Convert.DataBase.DELETE_MODE; |
|
} |
|
|
//writing config |
//writing config |
if (command.equals("save XML Config")) |
if (command.equals("save XML Config")) |
{ |
{ |
Line 776 public class FM2SQL extends JFrame imple
|
Line 807 public class FM2SQL extends JFrame imple
|
Convert.passwdDest = destBean.passwd; |
Convert.passwdDest = destBean.passwd; |
try |
try |
{ |
{ |
|
|
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
fmInstance.setEnabled(false); |
fmInstance.setEnabled(false); |
Convert.update(bean.url, destURLBox.getSelectedItem().toString(), vectors[0], vectors[1], vectors[2], vectors[3],vectors[4], mode); |
Convert.update(bean.url, destURLBox.getSelectedItem().toString(), vectors[0], vectors[1], vectors[2], vectors[3],vectors[4], mode); |
Line 794 public class FM2SQL extends JFrame imple
|
Line 826 public class FM2SQL extends JFrame imple
|
ByteArrayOutputStream b = new ByteArrayOutputStream(); |
ByteArrayOutputStream b = new ByteArrayOutputStream(); |
PrintStream stream = new PrintStream(b); |
PrintStream stream = new PrintStream(b); |
e4.printStackTrace(stream); |
e4.printStackTrace(stream); |
showErrorDialog(b.toString(), "Conversion of table failed"); |
showErrorDialog(b.toString(), "Update of table failed"); |
fmInstance.setEnabled(true); |
fmInstance.setEnabled(true); |
} |
} |
|
|
Line 814 public class FM2SQL extends JFrame imple
|
Line 846 public class FM2SQL extends JFrame imple
|
{ |
{ |
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
fmInstance.setEnabled(false); |
fmInstance.setEnabled(false); |
Convert.convert(bean.url, destURLBox.getSelectedItem().toString(), vectors[0], vectors[1],vectors[2],vectors[3],vectors[4],mode); |
Convert.convert(bean.url, destURLBox.getSelectedItem().toString(), vectors[0], vectors[1],vectors[2],vectors[3],vectors[4],mode,delimiter); |
|
|
destBean.setConnection((String) destURLBox.getSelectedItem()); |
destBean.setConnection((String) destURLBox.getSelectedItem()); |
DefaultListModel model = new DefaultListModel(); |
DefaultListModel model = new DefaultListModel(); |
tables = destBean.getTableNames(); |
tables = destBean.getTableNames(); |
Line 848 public class FM2SQL extends JFrame imple
|
Line 879 public class FM2SQL extends JFrame imple
|
// TODO add id vector in table and write it out |
// TODO add id vector in table and write it out |
Convert.DataBase source = new Convert.DataBase(bean,vectors[0],vectors[1],vectors[2],vectors[3],vectors[4],mode); |
Convert.DataBase source = new Convert.DataBase(bean,vectors[0],vectors[1],vectors[2],vectors[3],vectors[4],mode); |
Convert.DataBase destination = new Convert.DataBase(destBean,new Vector(),new Vector(),new Vector(),new Vector(),new Vector(),-1); |
Convert.DataBase destination = new Convert.DataBase(destBean,new Vector(),new Vector(),new Vector(),new Vector(),new Vector(),-1); |
|
source.delimiter =delimiter; |
try |
try |
{ |
{ |
Convert.writeConfig(file,source,destination); |
Convert.writeConfig(file,source,destination); |
Line 907 public class FM2SQL extends JFrame imple
|
Line 938 public class FM2SQL extends JFrame imple
|
convert.setActionCommand("Update Tables"); |
convert.setActionCommand("Update Tables"); |
mode = Convert.DataBase.UPDATE_MODE; |
mode = Convert.DataBase.UPDATE_MODE; |
} |
} |
|
delimiter=database.delimiter; |
database.bean.getConnection(); |
database.bean.getConnection(); |
|
|
bean = database.bean; |
bean = database.bean; |
Line 924 public class FM2SQL extends JFrame imple
|
Line 956 public class FM2SQL extends JFrame imple
|
int index=tables.indexOf(table); |
int index=tables.indexOf(table); |
if(index<0) throw new RuntimeException("Error table \""+table+"\" does no longer exist\n at server "+bean.url +"\n or you mispelled the tablename."); |
if(index<0) throw new RuntimeException("Error table \""+table+"\" does no longer exist\n at server "+bean.url +"\n or you mispelled the tablename."); |
noDBUpdate = true; |
noDBUpdate = true; |
tC.tableModel.setValueAt(new TableComponent.SQLCommand(database.selects.get(i).toString()),index,2); |
tC.tableModel.setValueAt(new TableComponent.SQLCommand(database.selects.get(i).toString()),index,SELECT_INDEX); |
|
|
String create =database.creates.get(i).toString(); |
String create =database.creates.get(i).toString(); |
tC.tableModel.setValueAt(new TableComponent.SQLCommand(create.equals("") ? create:" "+create),index,3); |
tC.tableModel.setValueAt(new TableComponent.SQLCommand(create.equals("") ? create:" "+create),index,CREATE_INDEX); |
tC.tableModel.setValueAt(new TableComponent.SQLCommand(bean.ids.get(i).toString()),index,4); |
// tC.tableModel.setValueAt(new TableComponent.SQLCommand(bean.ids.get(i).toString()),index,ID_INDEX); |
|
|
|
Object comboBox=tC.tableModel.getValueAt(index,LAYOUT_INDEX); |
|
Object idcomboBox=tC.tableModel.getValueAt(index,ID_INDEX); |
|
|
Object comboBox=tC.tableModel.getValueAt(index,1); |
|
indices[i] = index; |
indices[i] = index; |
if(comboBox!=null) ((JComboBox)comboBox).setSelectedItem(database.layouts.get(i)); |
if(comboBox!=null) ((JComboBox)comboBox).setSelectedItem(database.layouts.get(i)); |
|
if(idcomboBox!=null)((JComboBox)idcomboBox).setSelectedItem(bean.ids.get(i)); |
tC.tableModel.fireTableDataChanged(); |
tC.tableModel.fireTableDataChanged(); |
noDBUpdate = false; |
noDBUpdate = false; |
noUserUpdate = false; |
noUserUpdate = false; |
Line 1165 public class FM2SQL extends JFrame imple
|
Line 1200 public class FM2SQL extends JFrame imple
|
if(columnName.equals("select")||columnName.equals("Layouts")) |
if(columnName.equals("select")||columnName.equals("Layouts")) |
{ |
{ |
String table = model.getValueAt(row,0).toString(); |
String table = model.getValueAt(row,0).toString(); |
String layout = (model.getValueAt(row,1)!=null) ?((JComboBox)model.getValueAt(row,1)).getSelectedItem().toString():""; |
String layout = (model.getValueAt(row,LAYOUT_INDEX)!=null) ?((JComboBox)model.getValueAt(row,LAYOUT_INDEX)).getSelectedItem().toString():""; |
String query = model.getValueAt(row,2).toString(); |
String query = model.getValueAt(row,SELECT_INDEX).toString(); |
String create = model.getValueAt(row,3).toString(); |
String create = model.getValueAt(row,CREATE_INDEX).toString(); |
|
String id = (model.getValueAt(row,ID_INDEX)!=null) ?((JComboBox)model.getValueAt(row,ID_INDEX)).getSelectedItem().toString():""; |
|
|
System.out.println("table" +table+" layout "+layout+" query "+query); |
System.out.println("table" +table+" layout "+layout+" query "+query); |
if(!create.equals("")) |
if(!create.equals("")) |
{ |
{ |
Object[] options = { "Yes","No"}; |
Object[] options = { "Yes","No"}; |
int option=showDialog("Create Statement not empty! Do you want to overwrite?","create statement",options ); |
int option=showDialog("Create Statement not empty! Do you want to overwrite?","create statement",options ); |
if(option==0) |
if(option==0) |
model.setValueAt(createStatement(table,destBean,layout,query),row,3); |
model.setValueAt(createStatement(table,destBean,layout,query),row,CREATE_INDEX); |
} |
} |
|
if (columnName.equals("Layouts")) |
|
{ |
|
|
|
bean.makeQuery("select * from"+bean.getQC()+table+bean.getQC(),1); |
|
|
|
Vector idVec = bean.getColumnNames(); |
|
if (idVec == null) |
|
idVec = new Vector(); |
|
idVec.add(0, ""); |
|
JComboBox box = ((JComboBox) model.getValueAt(row, ID_INDEX)); |
|
box.setModel(new DefaultComboBoxModel(idVec)); |
|
box.setSelectedItem(id); |
|
} |
|
|
} |
} |
/* Statement stm = bean.getConnection().createStatement(); |
/* Statement stm = bean.getConnection().createStatement(); |
Line 1232 public class FM2SQL extends JFrame imple
|
Line 1281 public class FM2SQL extends JFrame imple
|
menu = new JMenu("Options"); |
menu = new JMenu("Options"); |
menu.setMnemonic('O'); |
menu.setMnemonic('O'); |
|
|
item = new JMenuItem("show Driver features"); |
|
item.setToolTipText("shows the features of the selected driver"); |
|
item.addActionListener(fm); |
|
menu.add(item); |
|
menubar.add(menu); |
|
|
|
ButtonGroup bgrp = new ButtonGroup(); |
ButtonGroup bgrp = new ButtonGroup(); |
convertItem = new JCheckBoxMenuItem("Convert Mode"); |
convertItem = new JCheckBoxMenuItem("Convert Mode"); |
convertItem.setToolTipText("Normal table conversion existing table will be deleted"); |
convertItem.setToolTipText("Normal table conversion existing table will be deleted"); |
Line 1264 public class FM2SQL extends JFrame imple
|
Line 1307 public class FM2SQL extends JFrame imple
|
bgrp.add(updateItem); |
bgrp.add(updateItem); |
|
|
menu.add(updateItem); |
menu.add(updateItem); |
menubar.add(menu); |
deleteItem = new JCheckBoxMenuItem("Delete Mode"); |
|
deleteItem.setToolTipText("Deletes data in an existing table \n that has been deleted in source table"); |
|
deleteItem.addActionListener(fm); |
|
|
|
bgrp.add(deleteItem); |
|
|
|
menu.add(deleteItem); |
|
|
|
menubar.add(menu); |
|
item = new JMenuItem("show Driver features"); |
|
item.setToolTipText("shows the features of the selected driver"); |
item.addActionListener(fm); |
item.addActionListener(fm); |
menu.add(item); |
menu.add(item); |
|
menubar.add(menu); |
|
delimiterItem = new JMenuItem("Delimiter"); |
|
delimiterItem.setToolTipText("Delimiter for FM Arrayfields"); |
|
delimiterItem.addActionListener(fm); |
|
menu.add(delimiterItem); |
|
menubar.add(menu); |
|
|
|
// item.addActionListener(fm); |
|
// menu.add(item); |
|
|
menubar.add(menu); |
menubar.add(menu); |
|
|
Line 1486 public class FM2SQL extends JFrame imple
|
Line 1547 public class FM2SQL extends JFrame imple
|
Vector tableNames = bean.getTableNames(); |
Vector tableNames = bean.getTableNames(); |
Collections.sort(tableNames, String.CASE_INSENSITIVE_ORDER); |
Collections.sort(tableNames, String.CASE_INSENSITIVE_ORDER); |
Vector[] data = new Vector[2]; |
Vector[] data = new Vector[2]; |
data[1] = new Vector(); |
data[1] = new Vector(5); |
data[1].add(" source Tablename "); |
data[1].setSize(5); |
data[1].add("Layouts"); |
data[1].set(0," source Tablename "); |
data[1].add("select"); |
data[1].set(LAYOUT_INDEX,"Layouts"); |
data[1].add("create"); |
data[1].set(SELECT_INDEX,"select"); |
data[1].add(" id "); |
data[1].set(CREATE_INDEX,"create"); |
|
data[1].set(ID_INDEX," id "); |
data[0] = new Vector(); |
data[0] = new Vector(); |
for (int i = 0; i < tableNames.size(); i++) |
for (int i = 0; i < tableNames.size(); i++) |
{ |
{ |
String name = tableNames.get(i).toString(); |
String name = tableNames.get(i).toString(); |
Vector layouts = new Vector(); |
Vector layouts = new Vector(); |
|
Vector idVec = new Vector(); |
|
|
try |
try |
{ |
{ |
|
bean.makeQuery("select * from"+bean.getQC()+name+bean.getQC(),1); |
layouts = bean.getLayoutNames(name); |
layouts = bean.getLayoutNames(name); |
} catch (SQLException e) |
} catch (SQLException e) |
{ |
{ |
layouts = new Vector(); |
layouts = new Vector(); |
} |
} |
Vector dataRow = new Vector(); |
|
dataRow.add(name); |
idVec = bean.getColumnNames(); |
|
if(idVec==null) idVec=new Vector(); |
|
idVec.add(0,""); |
|
Vector dataRow = new Vector(5); |
|
|
|
dataRow.setSize(5); |
|
dataRow.set(0,name); |
|
|
|
dataRow.set(SELECT_INDEX,new TableComponent.SQLCommand("select * from " + bean.getQC() + name + bean.getQC())); |
if (!layouts.isEmpty()) |
if (!layouts.isEmpty()) |
dataRow.add(new JComboBox(layouts)); |
dataRow.set(LAYOUT_INDEX,new JComboBox(layouts)); |
else |
else |
dataRow.add(null); |
dataRow.set(LAYOUT_INDEX,null); |
dataRow.add(new TableComponent.SQLCommand("select * from " + bean.getQC() + name + bean.getQC())); |
|
|
|
data[0].add(dataRow); |
|
|
|
// create row |
// create row |
dataRow.add(new TableComponent.SQLCommand("")); |
dataRow.set(CREATE_INDEX,new TableComponent.SQLCommand("")); |
// id row |
// id row |
dataRow.add(new TableComponent.SQLCommand("")); |
dataRow.set(ID_INDEX,new TableComponent.IDComboBox(idVec));//new TableComponent.SQLCommand("")); |
bean.ids.add(""); |
bean.ids.add(""); |
|
data[0].add(dataRow); |
|
|
//System.out.println(dataRow); |
//System.out.println(dataRow); |
} |
} |
|
|
tC.tableModel.setDataVector(data[0], data[1]); |
tC.tableModel.setDataVector(data[0], data[1]); |
//@TODO new sizeToFit method needed |
//@TODO new sizeToFit method needed |
// tC.sizeToFit(450, 250); |
// tC.sizeToFit(450, 250); |
|
Dimension dim=listPanel.getPreferredSize(); |
|
tC.sizeToFit(dim.width,dim.height); |
tC.revalidate(); |
tC.revalidate(); |
tC.tableModel.fireTableDataChanged(); |
tC.tableModel.fireTableDataChanged(); |
noDBUpdate = false; |
noDBUpdate = false; |
Line 1543 public class FM2SQL extends JFrame imple
|
Line 1618 public class FM2SQL extends JFrame imple
|
{ |
{ |
//System.out.println(tC.tableModel.getValueAt(rows[i],1)); |
//System.out.println(tC.tableModel.getValueAt(rows[i],1)); |
vec[0].add(tC.tableModel.getValueAt(rows[i], 0)); |
vec[0].add(tC.tableModel.getValueAt(rows[i], 0)); |
JComboBox box = ((JComboBox) tC.tableModel.getValueAt(rows[i], 1)); |
JComboBox box = ((JComboBox) tC.tableModel.getValueAt(rows[i], LAYOUT_INDEX)); |
String layoutName = (box != null) ? box.getSelectedItem().toString() : ""; |
String layoutName = (box != null) ? box.getSelectedItem().toString() : ""; |
|
|
|
String idName = ((JComboBox)tC.tableModel.getValueAt(rows[i], ID_INDEX)).getSelectedItem().toString(); |
vec[1].add(layoutName); |
vec[1].add(layoutName); |
vec[2].add(tC.tableModel.getValueAt(rows[i], 2).toString()); |
vec[2].add(tC.tableModel.getValueAt(rows[i],SELECT_INDEX ).toString()); |
vec[3].add(tC.tableModel.getValueAt(rows[i], 3).toString()); |
vec[3].add(tC.tableModel.getValueAt(rows[i], CREATE_INDEX).toString()); |
vec[4].add(tC.tableModel.getValueAt(rows[i], 4).toString()); |
vec[4].add(idName); |
|
|
} |
} |
return vec; |
return vec; |