version 1.7, 2004/01/08 10:33:33
|
version 1.20, 2004/02/23 10:59:53
|
Line 1
|
Line 1
|
import javax.swing.*; |
import java.awt.Cursor; |
import javax.swing.event.*; |
|
import javax.swing.table.TableModel; |
|
|
|
import Convert.DataBase; |
|
|
|
import java.awt.event.*; |
|
import java.awt.Dimension; |
import java.awt.Dimension; |
import java.awt.*; |
import java.awt.Font; |
import java.sql.*; |
import java.awt.GridBagConstraints; |
import java.util.*; |
import java.awt.GridBagLayout; |
import java.io.*; |
import java.awt.Image; |
|
import java.awt.Insets; |
|
import java.awt.event.ActionEvent; |
|
import java.awt.event.ActionListener; |
|
import java.awt.event.ComponentAdapter; |
|
import java.awt.event.ComponentEvent; |
|
import java.awt.event.InputEvent; |
|
import java.awt.event.WindowAdapter; |
|
import java.awt.event.WindowEvent; |
|
import java.io.ByteArrayOutputStream; |
|
import java.io.File; |
|
import java.io.FileWriter; |
|
import java.io.PrintStream; |
|
import java.sql.SQLException; |
|
import java.sql.Statement; |
|
import java.util.Collections; |
|
import java.util.Iterator; |
|
import java.util.Vector; |
|
|
|
import javax.swing.Box; |
|
import javax.swing.BoxLayout; |
|
import javax.swing.ButtonGroup; |
|
import javax.swing.DefaultComboBoxModel; |
|
import javax.swing.DefaultListModel; |
|
import javax.swing.JButton; |
|
import javax.swing.JCheckBoxMenuItem; |
|
import javax.swing.JComboBox; |
|
import javax.swing.JDialog; |
|
import javax.swing.JFileChooser; |
|
import javax.swing.JFrame; |
|
import javax.swing.JLabel; |
|
import javax.swing.JList; |
|
import javax.swing.JMenu; |
|
import javax.swing.JMenuBar; |
|
import javax.swing.JMenuItem; |
|
import javax.swing.JOptionPane; |
|
import javax.swing.JPanel; |
|
import javax.swing.JPasswordField; |
|
import javax.swing.JProgressBar; |
|
import javax.swing.JScrollBar; |
|
import javax.swing.JScrollPane; |
|
import javax.swing.JSplitPane; |
|
import javax.swing.JTextArea; |
|
import javax.swing.JTextField; |
|
import javax.swing.KeyStroke; |
|
import javax.swing.ListSelectionModel; |
|
import javax.swing.event.TableModelEvent; |
|
import javax.swing.event.TableModelListener; |
|
import javax.swing.table.TableModel; |
/** |
/** |
* |
* |
* <br> |
* <br> |
Line 25 import java.io.*;
|
Line 67 import java.io.*;
|
*/ |
*/ |
public class FM2SQL extends JFrame implements ActionListener, TableModelListener |
public class FM2SQL extends JFrame implements ActionListener, TableModelListener |
{ |
{ |
|
private JCheckBoxMenuItem convertItem; |
|
private JCheckBoxMenuItem appendItem; |
|
private JCheckBoxMenuItem updateItem; |
|
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 37 public class FM2SQL extends JFrame imple
|
Line 90 public class FM2SQL extends JFrame imple
|
DBBean destBean; |
DBBean destBean; |
|
|
/** |
/** |
* box - Tablenames |
|
*/ |
|
|
|
JComboBox box; |
|
/** |
|
* tList - Tablenames to choose from |
* tList - Tablenames to choose from |
*/ |
*/ |
|
|
Line 49 public class FM2SQL extends JFrame imple
|
Line 97 public class FM2SQL extends JFrame imple
|
JList tListDest = new JList(new String[] { "no database connection", "", "" }); |
JList tListDest = new JList(new String[] { "no database connection", "", "" }); |
|
|
/** |
/** |
* box2 - Layout names |
* sourceUrl - Database URL ComboBox |
*/ |
|
|
|
JComboBox box2; |
|
/** |
|
* box3 - Database URLs |
|
*/ |
*/ |
JComboBox box3; |
JComboBox sourceURLBox; |
/** |
/** |
* box4 - Database URLs |
* destUrlBox - Database URL ComboBox |
*/ |
*/ |
JComboBox box4; |
JComboBox destURLBox; |
|
|
TableComponent table, tC; |
TableComponent table, tC; |
Vector tables = new Vector(); |
Vector tables = new Vector(); |
Line 107 public class FM2SQL extends JFrame imple
|
Line 150 public class FM2SQL extends JFrame imple
|
} |
} |
public void initializeGUI() throws Exception |
public void initializeGUI() throws Exception |
{ |
{ |
Image local = getToolkit().getImage(getClass().getResource("icons/fm.jpg")); |
Image local = getToolkit().getImage(FM2SQL.class.getResource("icons/fm.jpg")); |
if (local != null); |
if (local != null); |
setIconImage(local); |
setIconImage(local); |
bean = new DBBean(); |
bean = new DBBean(); |
destBean = new DBBean(); |
destBean = new DBBean(); |
box2 = new JComboBox(); |
sourceURLBox = new JComboBox(new String[] { "jdbc:fmpro:http://141.14.237.74:8050", "jdbc:fmpro:http://localhost", "jdbc:postgresql://foxridge/test" }); |
box3 = new JComboBox(new String[] { "jdbc:fmpro:http://141.14.237.74:8050", "jdbc:fmpro:http://localhost", "jdbc:postgresql://foxridge/test" }); |
sourceURLBox.setEditable(true); |
box3.setEditable(true); |
sourceURLBox.setFont(new Font("Times New Roman",Font.PLAIN,14)); |
box4 = new JComboBox(new String[] { "jdbc:postgresql://foxridge/test", "jdbc:postgresql://erebos/test1" }); |
destURLBox = new JComboBox(new String[] { "jdbc:postgresql://foxridge/test", "jdbc:postgresql://erebos/test1" }); |
box4.setEditable(true); |
destURLBox.setEditable(true); |
box4.addActionListener(this); |
destURLBox.addActionListener(this); |
|
destURLBox.setFont(new Font("Times New Roman",Font.PLAIN,14)); |
table = new TableComponent(); |
table = new TableComponent(); |
box = new JComboBox(tables); |
//box = new JComboBox(tables); |
box.addActionListener(this); |
// box.addActionListener(this); |
box2.addActionListener(this); |
// box2.addActionListener(this); |
box3.addActionListener(this); |
sourceURLBox.addActionListener(this); |
|
|
contentPanel = new JPanel(); |
contentPanel = new JPanel(); |
contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS)); |
contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS)); |
|
|
box3.setMinimumSize(new Dimension(450, 20)); |
sourceURLBox.setMinimumSize(new Dimension(450, 25)); |
box3.setMaximumSize(new Dimension(550, 20)); |
sourceURLBox.setMaximumSize(new Dimension(550, 25)); |
box3.setPreferredSize(new Dimension(450, 20)); |
sourceURLBox.setPreferredSize(new Dimension(450, 25)); |
box4.setMinimumSize(new Dimension(450, 20)); |
destURLBox.setMinimumSize(new Dimension(450, 25)); |
box4.setMaximumSize(new Dimension(550, 20)); |
destURLBox.setMaximumSize(new Dimension(550, 25)); |
box4.setPreferredSize(new Dimension(450, 20)); |
destURLBox.setPreferredSize(new Dimension(450, 25)); |
paneDest = new JScrollPane(tListDest); |
paneDest = new JScrollPane(tListDest); |
// tListDest.setPreferredSize(paneDest.getPreferredSize()); |
// tListDest.setPreferredSize(paneDest.getPreferredSize()); |
// paneDest.setPreferredSize(new Dimension(350, 365)); |
// paneDest.setPreferredSize(new Dimension(350, 365)); |
Line 178 public class FM2SQL extends JFrame imple
|
Line 222 public class FM2SQL extends JFrame imple
|
|
|
gbc.anchor = GridBagConstraints.NORTHWEST; |
gbc.anchor = GridBagConstraints.NORTHWEST; |
gbc.gridy = 1; |
gbc.gridy = 1; |
topPanel.add(box3, gbc); |
topPanel.add(sourceURLBox, gbc); |
|
|
topPanel2.add(box4, gbc); |
topPanel2.add(destURLBox, gbc); |
|
|
//gbc.gridx=GridBagConstraints.RELATIVE; |
//gbc.gridx=GridBagConstraints.RELATIVE; |
//dataBasePanel.add(new JLabel(" select Tables to Convert ", JLabel.LEFT)); |
//dataBasePanel.add(new JLabel(" select Tables to Convert ", JLabel.LEFT)); |
Line 278 public class FM2SQL extends JFrame imple
|
Line 322 public class FM2SQL extends JFrame imple
|
|
|
if (oldWidth != getWidth() || oldHeight != getHeight()) |
if (oldWidth != getWidth() || oldHeight != getHeight()) |
{ |
{ |
table.sizeToFit(getWidth(), getHeight()); |
//table.sizeToFit(getWidth(), getHeight()); |
|
|
Dimension dim = table.table.getPreferredSize(); |
Dimension dim = table.table.getPreferredSize(); |
int size = contentPanel.getPreferredSize().height + new JScrollBar().getPreferredSize().height + new JMenuBar().getPreferredSize().height + 10; |
int size = contentPanel.getPreferredSize().height + new JScrollBar().getPreferredSize().height + new JMenuBar().getPreferredSize().height + 10; |
Line 312 public class FM2SQL extends JFrame imple
|
Line 356 public class FM2SQL extends JFrame imple
|
|
|
paneDest.validate(); |
paneDest.validate(); |
// tC.tableScroller.setPreferredSize(getSize()); |
// tC.tableScroller.setPreferredSize(getSize()); |
|
// @TODO new sizeToFit method for listPanel table!!! |
tC.sizeToFit(getWidth(), getHeight()); |
tC.sizeToFit(getWidth(), getHeight()); |
((JPanel) getContentPane()).revalidate(); |
((JPanel) getContentPane()).revalidate(); |
repaint(); |
repaint(); |
Line 391 public class FM2SQL extends JFrame imple
|
Line 436 public class FM2SQL extends JFrame imple
|
if (command == "comboBoxEdited") |
if (command == "comboBoxEdited") |
{ |
{ |
Object src = e.getSource(); |
Object src = e.getSource(); |
if (src == box3) |
if (src == sourceURLBox) |
{ |
{ |
if (debug) |
if (debug) |
System.out.println("hey" + box3.getSelectedItem()); |
System.out.println("hey" + sourceURLBox.getSelectedItem()); |
Object insObj =box3.getSelectedItem(); |
Object insObj =sourceURLBox.getSelectedItem(); |
((DefaultComboBoxModel) box3.getModel()).removeElement(insObj); |
((DefaultComboBoxModel) sourceURLBox.getModel()).removeElement(insObj); |
|
|
((DefaultComboBoxModel) box3.getModel()).insertElementAt(insObj, 0); |
((DefaultComboBoxModel) sourceURLBox.getModel()).insertElementAt(insObj, 0); |
box3.setSelectedItem(insObj); |
sourceURLBox.setSelectedItem(insObj); |
} else if (src == box4) |
} else if (src == destURLBox) |
{ |
{ |
if (debug) |
if (debug) |
System.out.println("hey" + box4.getSelectedItem()); |
System.out.println("hey" + destURLBox.getSelectedItem()); |
//((DefaultComboBoxModel) box4.getModel()).insertElementAt(box4.getSelectedItem(), 0); |
//((DefaultComboBoxModel) box4.getModel()).insertElementAt(box4.getSelectedItem(), 0); |
try |
try |
{ |
{ |
String selected = (String) box4.getSelectedItem(); |
String selected = (String) destURLBox.getSelectedItem(); |
destBean.setConnection(selected); |
destBean.setConnection(selected); |
Vector catalogs = destBean.getCatalogs(); |
Vector catalogs = destBean.getCatalogs(); |
Vector urls = new Vector(); |
Vector urls = new Vector(); |
Line 415 public class FM2SQL extends JFrame imple
|
Line 460 public class FM2SQL extends JFrame imple
|
{ |
{ |
urls.add(destBean.url.substring(0, destBean.url.lastIndexOf("/") + 1) + catalogs.get(i)); |
urls.add(destBean.url.substring(0, destBean.url.lastIndexOf("/") + 1) + catalogs.get(i)); |
} |
} |
box4.setModel(new DefaultComboBoxModel(urls)); |
destURLBox.setModel(new DefaultComboBoxModel(urls)); |
box4.setSelectedItem(selected); |
destURLBox.setSelectedItem(selected); |
} catch (Exception e5) |
} catch (Exception e5) |
{ |
{ |
} |
} |
Line 429 public class FM2SQL extends JFrame imple
|
Line 474 public class FM2SQL extends JFrame imple
|
//System.out.println("hallo " + (e.getSource() == box3)); |
//System.out.println("hallo " + (e.getSource() == box3)); |
|
|
Object src = e.getSource(); |
Object src = e.getSource(); |
if (src == box3&&!noUserUpdate) |
if (src == sourceURLBox&&!noUserUpdate) |
{ |
{ |
Thread thread = new Thread() |
Thread thread = new Thread() |
{ |
{ |
Line 439 public class FM2SQL extends JFrame imple
|
Line 484 public class FM2SQL extends JFrame imple
|
try |
try |
{ |
{ |
PasswordDialog dialog = new PasswordDialog(fmInstance, bean); |
PasswordDialog dialog = new PasswordDialog(fmInstance, bean); |
dialog.setLocationRelativeTo(box3); |
dialog.setLocationRelativeTo(sourceURLBox); |
dialog.thread = Thread.currentThread(); |
dialog.thread = Thread.currentThread(); |
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
fmInstance.setEnabled(false); |
fmInstance.setEnabled(false); |
dialog.setVisible(true); |
dialog.setVisible(true); |
String url = box3.getSelectedItem().toString(); |
String url = sourceURLBox.getSelectedItem().toString(); |
bean.url = (url != null) ? url : bean.url; |
bean.url = (url != null) ? url : bean.url; |
bean.connection = null; |
bean.connection = null; |
bean.getConnection(); |
bean.getConnection(); |
Line 476 public class FM2SQL extends JFrame imple
|
Line 521 public class FM2SQL extends JFrame imple
|
} |
} |
}; |
}; |
thread.start(); |
thread.start(); |
} else if (src == box4&&!noUserUpdate) |
} else if (src == destURLBox&&!noUserUpdate) |
{ |
{ |
Thread thread = new Thread() |
Thread thread = new Thread() |
{ |
{ |
Line 487 public class FM2SQL extends JFrame imple
|
Line 532 public class FM2SQL extends JFrame imple
|
{ |
{ |
|
|
PasswordDialog dialog = new PasswordDialog(fmInstance, destBean); |
PasswordDialog dialog = new PasswordDialog(fmInstance, destBean); |
dialog.setLocationRelativeTo(box4); |
dialog.setLocationRelativeTo(destURLBox); |
dialog.thread = Thread.currentThread(); |
dialog.thread = Thread.currentThread(); |
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
fmInstance.setEnabled(false); |
fmInstance.setEnabled(false); |
dialog.setVisible(true); |
dialog.setVisible(true); |
destBean.setConnection((String) box4.getSelectedItem()); |
destBean.setConnection((String) destURLBox.getSelectedItem()); |
DefaultListModel model = new DefaultListModel(); |
DefaultListModel model = new DefaultListModel(); |
Vector tables = destBean.getTableNames(); |
Vector tables = destBean.getTableNames(); |
for (int j = 0; j < tables.size(); ++j) |
for (int j = 0; j < tables.size(); ++j) |
Line 547 public class FM2SQL extends JFrame imple
|
Line 592 public class FM2SQL extends JFrame imple
|
{ |
{ |
} |
} |
} |
} |
|
if (command == "Convert Mode") |
|
{ |
|
System.out.println("Convert Mode selected"); |
|
convert.setText("Convert Tables"); |
|
convert.setActionCommand("Convert Tables"); |
|
mode = Convert.DataBase.CONVERT_MODE; |
|
} |
|
if (command == "Append Mode") |
|
{ |
|
System.out.println("Append Mode selected"); |
|
convert.setText("Append Tables"); |
|
convert.setActionCommand("Append Tables"); |
|
mode = Convert.DataBase.APPEND_MODE; |
|
} |
|
if (command == "Update Mode") |
|
{ |
|
System.out.println("Update Mode selected"); |
|
convert.setText("Update Tables"); |
|
convert.setActionCommand("Update Tables"); |
|
mode = Convert.DataBase.UPDATE_MODE; |
|
} |
//writing config |
//writing config |
if (command.equals("save XML Config")) |
if (command.equals("save XML Config")) |
{ |
{ |
Line 618 public class FM2SQL extends JFrame imple
|
Line 684 public class FM2SQL extends JFrame imple
|
} |
} |
|
|
|
|
if (command.equals("Convert Tables")) |
if (command.equals("Convert Tables")||command.equals("Append Tables")) |
{ |
{ |
|
|
Thread thread = new Thread() |
Thread thread = new Thread() |
Line 633 public class FM2SQL extends JFrame imple
|
Line 699 public class FM2SQL extends JFrame imple
|
}; |
}; |
thread.start(); |
thread.start(); |
} |
} |
|
if (command.equals("Update Tables")) |
|
{ |
|
|
|
Thread thread = new Thread() |
|
{ |
|
public void run() |
|
{ |
|
setEnabled(false); |
|
update(); |
|
setEnabled(true); |
|
} |
|
|
|
}; |
|
thread.start(); |
|
} |
|
|
if (command.equals("show Tables")) |
if (command.equals("show Tables")) |
{ |
{ |
Thread thread = new Thread() |
Thread thread = new Thread() |
Line 689 public class FM2SQL extends JFrame imple
|
Line 771 public class FM2SQL extends JFrame imple
|
|
|
} |
} |
/** |
/** |
|
* Updates the content of source to destination and makes new table if necessary |
|
*/ |
|
|
|
public void update() |
|
{ |
|
Vector vectors[] = getListFromTable(); |
|
Convert.user = bean.user; |
|
Convert.passwd = bean.passwd; |
|
Convert.userDest = destBean.user; |
|
Convert.passwdDest = destBean.passwd; |
|
try |
|
{ |
|
|
|
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
|
fmInstance.setEnabled(false); |
|
Convert.update(bean.url, destURLBox.getSelectedItem().toString(), vectors[0], vectors[1], vectors[2], vectors[3],vectors[4], mode); |
|
|
|
destBean.setConnection((String) destURLBox.getSelectedItem()); |
|
DefaultListModel model = new DefaultListModel(); |
|
tables = destBean.getTableNames(); |
|
for (int j = 0; j < tables.size(); ++j) |
|
model.addElement(tables.get(j)); |
|
if (debug) |
|
System.out.println("hallo" + tables + " "); |
|
tListDest.setModel(model); |
|
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
|
} catch (Exception e4) |
|
{ |
|
ByteArrayOutputStream b = new ByteArrayOutputStream(); |
|
PrintStream stream = new PrintStream(b); |
|
e4.printStackTrace(stream); |
|
showErrorDialog(b.toString(), "Update of table failed"); |
|
fmInstance.setEnabled(true); |
|
} |
|
|
|
} |
|
/** |
* Copys the content of source to destination and makes new table if necessary |
* Copys the content of source to destination and makes new table if necessary |
*/ |
*/ |
public void convert() |
public void convert() |
Line 703 public class FM2SQL extends JFrame imple
|
Line 822 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, box4.getSelectedItem().toString(), vectors[0], vectors[1],vectors[2],vectors[3]); |
Convert.convert(bean.url, destURLBox.getSelectedItem().toString(), vectors[0], vectors[1],vectors[2],vectors[3],vectors[4],mode); |
|
|
destBean.setConnection((String) box4.getSelectedItem()); |
destBean.setConnection((String) destURLBox.getSelectedItem()); |
DefaultListModel model = new DefaultListModel(); |
DefaultListModel model = new DefaultListModel(); |
tables = destBean.getTableNames(); |
tables = destBean.getTableNames(); |
for (int j = 0; j < tables.size(); ++j) |
for (int j = 0; j < tables.size(); ++j) |
Line 729 public class FM2SQL extends JFrame imple
|
Line 848 public class FM2SQL extends JFrame imple
|
fmInstance.setEnabled(false); |
fmInstance.setEnabled(false); |
|
|
Vector vectors[] = getListFromTable(); |
Vector vectors[] = getListFromTable(); |
Convert.DataBase source = new Convert.DataBase(bean,vectors[0],vectors[1],vectors[2],vectors[3]); |
if(convertItem.isSelected()) mode = Convert.DataBase.CONVERT_MODE; |
Convert.DataBase destination = new Convert.DataBase(destBean,new Vector(),new Vector(),new Vector(),new Vector()); |
else |
|
if(appendItem.isSelected()) mode = Convert.DataBase.APPEND_MODE; |
|
else |
|
if(updateItem.isSelected()) mode = Convert.DataBase.UPDATE_MODE; |
|
// 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 destination = new Convert.DataBase(destBean,new Vector(),new Vector(),new Vector(),new Vector(),new Vector(),-1); |
|
|
try |
try |
{ |
{ |
Line 758 public class FM2SQL extends JFrame imple
|
Line 883 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); |
Vector databases = Convert.getXMLConfig(file); |
Vector databases = Convert.getXMLConfig(file); |
DataBase destBase = (DataBase) databases.lastElement(); |
Convert.DataBase destBase = (Convert.DataBase) databases.lastElement(); |
//destBase.bean.getConnection(); |
//destBase.bean.getConnection(); |
noUserUpdate = true; |
noUserUpdate = true; |
destBean=destBase.bean; |
destBean=destBase.bean; |
Object destObj =destBean.url; |
Object destObj =destBean.url; |
((DefaultComboBoxModel) box4.getModel()).removeElement(destObj); |
((DefaultComboBoxModel) destURLBox.getModel()).removeElement(destObj); |
((DefaultComboBoxModel) box4.getModel()).insertElementAt(destObj,0); |
((DefaultComboBoxModel) destURLBox.getModel()).insertElementAt(destObj,0); |
box4.setSelectedItem(destObj); |
destURLBox.setSelectedItem(destObj); |
databases.remove(destBase); |
databases.remove(destBase); |
for (Iterator iter = databases.iterator(); iter.hasNext();) |
for (Iterator iter = databases.iterator(); iter.hasNext();) |
{ |
{ |
Convert.DataBase database = (Convert.DataBase) iter.next(); |
Convert.DataBase database = (Convert.DataBase) iter.next(); |
|
|
|
if (database.mode == Convert.DataBase.CONVERT_MODE) |
|
{ |
|
convertItem.setSelected(true); |
|
convert.setText("Convert Tables"); |
|
convert.setActionCommand("Convert Tables"); |
|
mode = Convert.DataBase.CONVERT_MODE; |
|
} else if (database.mode == Convert.DataBase.APPEND_MODE) |
|
{ |
|
appendItem.setSelected(true); |
|
convert.setText("Append Tables"); |
|
convert.setActionCommand("Append Tables"); |
|
mode = Convert.DataBase.APPEND_MODE; |
|
} else if (database.mode == Convert.DataBase.UPDATE_MODE) |
|
{ |
|
updateItem.setSelected(true); |
|
convert.setText("Update Tables"); |
|
convert.setActionCommand("Update Tables"); |
|
mode = Convert.DataBase.UPDATE_MODE; |
|
} |
database.bean.getConnection(); |
database.bean.getConnection(); |
|
|
bean = database.bean; |
bean = database.bean; |
Object obj =bean.url; |
Object obj =bean.url; |
((DefaultComboBoxModel) box3.getModel()).removeElement(obj); |
((DefaultComboBoxModel) sourceURLBox.getModel()).removeElement(obj); |
((DefaultComboBoxModel) box3.getModel()).insertElementAt(obj,0); |
((DefaultComboBoxModel) sourceURLBox.getModel()).insertElementAt(obj,0); |
box3.setSelectedItem(obj); |
sourceURLBox.setSelectedItem(obj); |
fillTable(); |
fillTable(); |
Vector tables=database.bean.getTableNames(); |
Vector tables=database.bean.getTableNames(); |
Collections.sort(tables,String.CASE_INSENSITIVE_ORDER); |
Collections.sort(tables,String.CASE_INSENSITIVE_ORDER); |
Line 786 public class FM2SQL extends JFrame imple
|
Line 932 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); |
Object comboBox=tC.tableModel.getValueAt(index,1); |
// 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); |
|
|
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 985 public class FM2SQL extends JFrame imple
|
Line 1137 public class FM2SQL extends JFrame imple
|
} // to for |
} // to for |
try |
try |
{ |
{ |
destBean.setConnection((String) box4.getSelectedItem()); |
destBean.setConnection((String) destURLBox.getSelectedItem()); |
DefaultListModel model = new DefaultListModel(); |
DefaultListModel model = new DefaultListModel(); |
tables = destBean.getTableNames(); |
tables = destBean.getTableNames(); |
for (int j = 0; j < tables.size(); ++j) |
for (int j = 0; j < tables.size(); ++j) |
Line 1024 public class FM2SQL extends JFrame imple
|
Line 1176 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 1067 public class FM2SQL extends JFrame imple
|
Line 1233 public class FM2SQL extends JFrame imple
|
JMenu menu = new JMenu("File"); |
JMenu menu = new JMenu("File"); |
menu.setMnemonic('F'); |
menu.setMnemonic('F'); |
JMenuItem item = new JMenuItem("open XML Config"); |
JMenuItem item = new JMenuItem("open XML Config"); |
|
item.setToolTipText("opens a XML config file for batch conversion"); |
item.setMnemonic('i'); |
item.setMnemonic('i'); |
item.setAccelerator(KeyStroke.getKeyStroke('O',InputEvent.CTRL_DOWN_MASK)); |
item.setAccelerator(KeyStroke.getKeyStroke('O',InputEvent.CTRL_DOWN_MASK)); |
|
|
item.addActionListener(fm); |
item.addActionListener(fm); |
menu.add(item); |
menu.add(item); |
item = new JMenuItem("save XML Config"); |
item = new JMenuItem("save XML Config"); |
|
item.setToolTipText("saves the current selections in an XML config file for batch conversion"); |
item.setAccelerator(KeyStroke.getKeyStroke('S',InputEvent.CTRL_DOWN_MASK)); |
item.setAccelerator(KeyStroke.getKeyStroke('S',InputEvent.CTRL_DOWN_MASK)); |
item.setMnemonic('x'); |
item.setMnemonic('x'); |
|
|
Line 1080 public class FM2SQL extends JFrame imple
|
Line 1248 public class FM2SQL extends JFrame imple
|
menu.add(item); |
menu.add(item); |
item = new JMenuItem("Quit"); |
item = new JMenuItem("Quit"); |
item.setMnemonic('Q'); |
item.setMnemonic('Q'); |
|
item.setToolTipText("Quits the application"); |
item.setAccelerator(KeyStroke.getKeyStroke('Q',InputEvent.CTRL_DOWN_MASK)); |
item.setAccelerator(KeyStroke.getKeyStroke('Q',InputEvent.CTRL_DOWN_MASK)); |
item.addActionListener(fm); |
item.addActionListener(fm); |
menu.add(item); |
menu.add(item); |
Line 1089 public class FM2SQL extends JFrame imple
|
Line 1258 public class FM2SQL extends JFrame imple
|
menu.setMnemonic('O'); |
menu.setMnemonic('O'); |
|
|
item = new JMenuItem("show Driver features"); |
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); |
menubar.add(menu); |
|
|
|
ButtonGroup bgrp = new ButtonGroup(); |
|
convertItem = new JCheckBoxMenuItem("Convert Mode"); |
|
convertItem.setToolTipText("Normal table conversion existing table will be deleted"); |
|
convertItem.addActionListener(fm); |
|
|
|
bgrp.add(convertItem); |
|
|
|
menu.add(convertItem); |
|
menubar.add(menu); |
|
|
|
appendItem = new JCheckBoxMenuItem("Append Mode"); |
|
appendItem.setToolTipText("Appends data to an existing table"); |
|
appendItem.addActionListener(fm); |
|
|
|
bgrp.add(appendItem); |
|
|
|
menu.add(appendItem); |
|
menubar.add(menu); |
|
|
|
updateItem = new JCheckBoxMenuItem("Update Mode"); |
|
updateItem.setToolTipText("Updates data in an existing table"); |
|
updateItem.addActionListener(fm); |
|
|
|
bgrp.add(updateItem); |
|
|
|
menu.add(updateItem); |
|
menubar.add(menu); |
|
|
item.addActionListener(fm); |
item.addActionListener(fm); |
menu.add(item); |
menu.add(item); |
|
|
Line 1100 public class FM2SQL extends JFrame imple
|
Line 1298 public class FM2SQL extends JFrame imple
|
|
|
menu.setBackground(fm.getBackground()); |
menu.setBackground(fm.getBackground()); |
menubar.setBackground(fm.getBackground()); |
menubar.setBackground(fm.getBackground()); |
|
convertItem.doClick(); |
setJMenuBar(menubar); |
setJMenuBar(menubar); |
} |
} |
/** |
/** |
Line 1312 public class FM2SQL extends JFrame imple
|
Line 1511 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("Table"); |
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].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())); |
|
|
|
|
// create row |
|
dataRow.set(CREATE_INDEX,new TableComponent.SQLCommand("")); |
|
// id row |
|
dataRow.set(ID_INDEX,new TableComponent.IDComboBox(idVec));//new TableComponent.SQLCommand("")); |
|
bean.ids.add(""); |
data[0].add(dataRow); |
data[0].add(dataRow); |
dataRow.add(new TableComponent.SQLCommand("")); |
|
//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 |
|
//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 1351 public class FM2SQL extends JFrame imple
|
Line 1571 public class FM2SQL extends JFrame imple
|
} |
} |
public Vector[] getListFromTable() |
public Vector[] getListFromTable() |
{ |
{ |
Vector[] vec = new Vector[4]; |
Vector[] vec = new Vector[5]; |
vec[0] = new Vector(); |
vec[0] = new Vector(); |
vec[1] = new Vector(); |
vec[1] = new Vector(); |
vec[2] = new Vector(); |
vec[2] = new Vector(); |
vec[3] = new Vector(); |
vec[3] = new Vector(); |
|
vec[4] = new Vector(); |
int[] rows = tC.table.getSelectedRows(); |
int[] rows = tC.table.getSelectedRows(); |
for (int i = 0; i < rows.length; i++) |
for (int i = 0; i < rows.length; i++) |
{ |
{ |
//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(idName); |
|
|
} |
} |
return vec; |
return vec; |
Line 1376 public class FM2SQL extends JFrame imple
|
Line 1600 public class FM2SQL extends JFrame imple
|
showTables1.setEnabled(state); |
showTables1.setEnabled(state); |
convert.setEnabled(state); |
convert.setEnabled(state); |
dropTables.setEnabled(state); |
dropTables.setEnabled(state); |
box3.setEnabled(state); |
sourceURLBox.setEnabled(state); |
box4.setEnabled(state); |
destURLBox.setEnabled(state); |
|
|
} |
} |
public TableComponent.SQLCommand createStatement(String table,DBBean beanDest,String layout,String query) throws SQLException |
public TableComponent.SQLCommand createStatement(String table,DBBean beanDest,String layout,String query) throws SQLException |
{ |
{ |
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
|
|
if(beanDest.url.equals("")) beanDest.url=box4.getSelectedItem().toString(); |
if(beanDest.url.equals("")) beanDest.url=destURLBox.getSelectedItem().toString(); |
StringBuffer command = new StringBuffer(50); |
StringBuffer command = new StringBuffer(50); |
command.append("\n CREATE TABLE "); |
command.append("\n CREATE TABLE "); |
command.append(beanDest.getQC()); |
command.append(beanDest.getQC()); |