--- FM2SQL/Attic/FM2SQL.java 2004/02/12 13:02:56 1.16 +++ FM2SQL/Attic/FM2SQL.java 2004/02/17 13:16:00 1.17 @@ -1,13 +1,57 @@ -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.table.TableModel; - -import java.awt.event.*; +import java.awt.Cursor; import java.awt.Dimension; -import java.awt.*; -import java.sql.*; -import java.util.*; -import java.io.*; +import java.awt.Font; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +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; /** * *
@@ -38,12 +82,7 @@ public class FM2SQL extends JFrame imple */ DBBean destBean; - /** - * box - Tablenames - */ - - JComboBox box; - /** + /** * tList - Tablenames to choose from */ @@ -51,18 +90,13 @@ public class FM2SQL extends JFrame imple JList tListDest = new JList(new String[] { "no database connection", "", "" }); /** - * box2 - Layout names - */ - - JComboBox box2; - /** - * box3 - Database URLs + * sourceUrl - Database URL ComboBox */ - JComboBox box3; + JComboBox sourceURLBox; /** - * box4 - Database URLs + * destUrlBox - Database URL ComboBox */ - JComboBox box4; + JComboBox destURLBox; TableComponent table, tC; Vector tables = new Vector(); @@ -109,34 +143,33 @@ public class FM2SQL extends JFrame imple } 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); setIconImage(local); bean = new DBBean(); destBean = new DBBean(); - box2 = new JComboBox(); - box3 = new JComboBox(new String[] { "jdbc:fmpro:http://141.14.237.74:8050", "jdbc:fmpro:http://localhost", "jdbc:postgresql://foxridge/test" }); - box3.setEditable(true); - box3.setFont(new Font("Times New Roman",Font.PLAIN,14)); - box4 = new JComboBox(new String[] { "jdbc:postgresql://foxridge/test", "jdbc:postgresql://erebos/test1" }); - box4.setEditable(true); - box4.addActionListener(this); - box4.setFont(new Font("Times New Roman",Font.PLAIN,14)); + sourceURLBox = new JComboBox(new String[] { "jdbc:fmpro:http://141.14.237.74:8050", "jdbc:fmpro:http://localhost", "jdbc:postgresql://foxridge/test" }); + sourceURLBox.setEditable(true); + sourceURLBox.setFont(new Font("Times New Roman",Font.PLAIN,14)); + destURLBox = new JComboBox(new String[] { "jdbc:postgresql://foxridge/test", "jdbc:postgresql://erebos/test1" }); + destURLBox.setEditable(true); + destURLBox.addActionListener(this); + destURLBox.setFont(new Font("Times New Roman",Font.PLAIN,14)); table = new TableComponent(); - box = new JComboBox(tables); - box.addActionListener(this); - box2.addActionListener(this); - box3.addActionListener(this); + //box = new JComboBox(tables); + // box.addActionListener(this); + // box2.addActionListener(this); + sourceURLBox.addActionListener(this); contentPanel = new JPanel(); contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS)); - box3.setMinimumSize(new Dimension(450, 20)); - box3.setMaximumSize(new Dimension(550, 20)); - box3.setPreferredSize(new Dimension(450, 20)); - box4.setMinimumSize(new Dimension(450, 20)); - box4.setMaximumSize(new Dimension(550, 20)); - box4.setPreferredSize(new Dimension(450, 20)); + sourceURLBox.setMinimumSize(new Dimension(450, 25)); + sourceURLBox.setMaximumSize(new Dimension(550, 25)); + sourceURLBox.setPreferredSize(new Dimension(450, 25)); + destURLBox.setMinimumSize(new Dimension(450, 25)); + destURLBox.setMaximumSize(new Dimension(550, 25)); + destURLBox.setPreferredSize(new Dimension(450, 25)); paneDest = new JScrollPane(tListDest); // tListDest.setPreferredSize(paneDest.getPreferredSize()); // paneDest.setPreferredSize(new Dimension(350, 365)); @@ -182,9 +215,9 @@ public class FM2SQL extends JFrame imple gbc.anchor = GridBagConstraints.NORTHWEST; gbc.gridy = 1; - topPanel.add(box3, gbc); + topPanel.add(sourceURLBox, gbc); - topPanel2.add(box4, gbc); + topPanel2.add(destURLBox, gbc); //gbc.gridx=GridBagConstraints.RELATIVE; //dataBasePanel.add(new JLabel(" select Tables to Convert ", JLabel.LEFT)); @@ -282,7 +315,7 @@ public class FM2SQL extends JFrame imple if (oldWidth != getWidth() || oldHeight != getHeight()) { - table.sizeToFit(getWidth(), getHeight()); + //table.sizeToFit(getWidth(), getHeight()); Dimension dim = table.table.getPreferredSize(); int size = contentPanel.getPreferredSize().height + new JScrollBar().getPreferredSize().height + new JMenuBar().getPreferredSize().height + 10; @@ -316,6 +349,7 @@ public class FM2SQL extends JFrame imple paneDest.validate(); // tC.tableScroller.setPreferredSize(getSize()); + // @TODO new sizeToFit method for listPanel table!!! tC.sizeToFit(getWidth(), getHeight()); ((JPanel) getContentPane()).revalidate(); repaint(); @@ -395,23 +429,23 @@ public class FM2SQL extends JFrame imple if (command == "comboBoxEdited") { Object src = e.getSource(); - if (src == box3) + if (src == sourceURLBox) { if (debug) - System.out.println("hey" + box3.getSelectedItem()); - Object insObj =box3.getSelectedItem(); - ((DefaultComboBoxModel) box3.getModel()).removeElement(insObj); + System.out.println("hey" + sourceURLBox.getSelectedItem()); + Object insObj =sourceURLBox.getSelectedItem(); + ((DefaultComboBoxModel) sourceURLBox.getModel()).removeElement(insObj); - ((DefaultComboBoxModel) box3.getModel()).insertElementAt(insObj, 0); - box3.setSelectedItem(insObj); - } else if (src == box4) + ((DefaultComboBoxModel) sourceURLBox.getModel()).insertElementAt(insObj, 0); + sourceURLBox.setSelectedItem(insObj); + } else if (src == destURLBox) { if (debug) - System.out.println("hey" + box4.getSelectedItem()); + System.out.println("hey" + destURLBox.getSelectedItem()); //((DefaultComboBoxModel) box4.getModel()).insertElementAt(box4.getSelectedItem(), 0); try { - String selected = (String) box4.getSelectedItem(); + String selected = (String) destURLBox.getSelectedItem(); destBean.setConnection(selected); Vector catalogs = destBean.getCatalogs(); Vector urls = new Vector(); @@ -419,8 +453,8 @@ public class FM2SQL extends JFrame imple { urls.add(destBean.url.substring(0, destBean.url.lastIndexOf("/") + 1) + catalogs.get(i)); } - box4.setModel(new DefaultComboBoxModel(urls)); - box4.setSelectedItem(selected); + destURLBox.setModel(new DefaultComboBoxModel(urls)); + destURLBox.setSelectedItem(selected); } catch (Exception e5) { } @@ -433,7 +467,7 @@ public class FM2SQL extends JFrame imple //System.out.println("hallo " + (e.getSource() == box3)); Object src = e.getSource(); - if (src == box3&&!noUserUpdate) + if (src == sourceURLBox&&!noUserUpdate) { Thread thread = new Thread() { @@ -443,12 +477,12 @@ public class FM2SQL extends JFrame imple try { PasswordDialog dialog = new PasswordDialog(fmInstance, bean); - dialog.setLocationRelativeTo(box3); + dialog.setLocationRelativeTo(sourceURLBox); dialog.thread = Thread.currentThread(); fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); fmInstance.setEnabled(false); dialog.setVisible(true); - String url = box3.getSelectedItem().toString(); + String url = sourceURLBox.getSelectedItem().toString(); bean.url = (url != null) ? url : bean.url; bean.connection = null; bean.getConnection(); @@ -480,7 +514,7 @@ public class FM2SQL extends JFrame imple } }; thread.start(); - } else if (src == box4&&!noUserUpdate) + } else if (src == destURLBox&&!noUserUpdate) { Thread thread = new Thread() { @@ -491,12 +525,12 @@ public class FM2SQL extends JFrame imple { PasswordDialog dialog = new PasswordDialog(fmInstance, destBean); - dialog.setLocationRelativeTo(box4); + dialog.setLocationRelativeTo(destURLBox); dialog.thread = Thread.currentThread(); fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); fmInstance.setEnabled(false); dialog.setVisible(true); - destBean.setConnection((String) box4.getSelectedItem()); + destBean.setConnection((String) destURLBox.getSelectedItem()); DefaultListModel model = new DefaultListModel(); Vector tables = destBean.getTableNames(); for (int j = 0; j < tables.size(); ++j) @@ -744,9 +778,9 @@ public class FM2SQL extends JFrame imple { fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); fmInstance.setEnabled(false); - Convert.update(bean.url, box4.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); - destBean.setConnection((String) box4.getSelectedItem()); + destBean.setConnection((String) destURLBox.getSelectedItem()); DefaultListModel model = new DefaultListModel(); tables = destBean.getTableNames(); for (int j = 0; j < tables.size(); ++j) @@ -780,9 +814,9 @@ public class FM2SQL extends JFrame imple { fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); fmInstance.setEnabled(false); - Convert.convert(bean.url, box4.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); - destBean.setConnection((String) box4.getSelectedItem()); + destBean.setConnection((String) destURLBox.getSelectedItem()); DefaultListModel model = new DefaultListModel(); tables = destBean.getTableNames(); for (int j = 0; j < tables.size(); ++j) @@ -846,9 +880,9 @@ public class FM2SQL extends JFrame imple noUserUpdate = true; destBean=destBase.bean; Object destObj =destBean.url; - ((DefaultComboBoxModel) box4.getModel()).removeElement(destObj); - ((DefaultComboBoxModel) box4.getModel()).insertElementAt(destObj,0); - box4.setSelectedItem(destObj); + ((DefaultComboBoxModel) destURLBox.getModel()).removeElement(destObj); + ((DefaultComboBoxModel) destURLBox.getModel()).insertElementAt(destObj,0); + destURLBox.setSelectedItem(destObj); databases.remove(destBase); for (Iterator iter = databases.iterator(); iter.hasNext();) { @@ -877,9 +911,9 @@ public class FM2SQL extends JFrame imple bean = database.bean; Object obj =bean.url; - ((DefaultComboBoxModel) box3.getModel()).removeElement(obj); - ((DefaultComboBoxModel) box3.getModel()).insertElementAt(obj,0); - box3.setSelectedItem(obj); + ((DefaultComboBoxModel) sourceURLBox.getModel()).removeElement(obj); + ((DefaultComboBoxModel) sourceURLBox.getModel()).insertElementAt(obj,0); + sourceURLBox.setSelectedItem(obj); fillTable(); Vector tables=database.bean.getTableNames(); Collections.sort(tables,String.CASE_INSENSITIVE_ORDER); @@ -1092,7 +1126,7 @@ public class FM2SQL extends JFrame imple } // to for try { - destBean.setConnection((String) box4.getSelectedItem()); + destBean.setConnection((String) destURLBox.getSelectedItem()); DefaultListModel model = new DefaultListModel(); tables = destBean.getTableNames(); for (int j = 0; j < tables.size(); ++j) @@ -1453,12 +1487,11 @@ public class FM2SQL extends JFrame imple Collections.sort(tableNames, String.CASE_INSENSITIVE_ORDER); Vector[] data = new Vector[2]; data[1] = new Vector(); - data[1].add("Table"); + data[1].add(" source Tablename "); data[1].add("Layouts"); data[1].add("select"); data[1].add("create"); data[1].add(" id "); - // TODO add id vector DBBean data[0] = new Vector(); for (int i = 0; i < tableNames.size(); i++) { @@ -1477,18 +1510,21 @@ public class FM2SQL extends JFrame imple dataRow.add(new JComboBox(layouts)); else dataRow.add(null); - dataRow.add(new TableComponent.SQLCommand("select * from "+bean.getQC()+name+bean.getQC())); - - data[0].add(dataRow); - - // create row - dataRow.add(new TableComponent.SQLCommand("")); - // id row + dataRow.add(new TableComponent.SQLCommand("select * from " + bean.getQC() + name + bean.getQC())); + + data[0].add(dataRow); + + // create row dataRow.add(new TableComponent.SQLCommand("")); - bean.ids.add(""); + // id row + dataRow.add(new TableComponent.SQLCommand("")); + bean.ids.add(""); //System.out.println(dataRow); } + tC.tableModel.setDataVector(data[0], data[1]); + //@TODO new sizeToFit method needed + // tC.sizeToFit(450, 250); tC.revalidate(); tC.tableModel.fireTableDataChanged(); noDBUpdate = false; @@ -1523,15 +1559,15 @@ public class FM2SQL extends JFrame imple showTables1.setEnabled(state); convert.setEnabled(state); dropTables.setEnabled(state); - box3.setEnabled(state); - box4.setEnabled(state); + sourceURLBox.setEnabled(state); + destURLBox.setEnabled(state); } public TableComponent.SQLCommand createStatement(String table,DBBean beanDest,String layout,String query) throws SQLException { 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); command.append("\n CREATE TABLE "); command.append(beanDest.getQC());