Diff for /FM2SQL/Attic/FM2SQL.java between versions 1.16 and 1.17

version 1.16, 2004/02/12 13:02:56 version 1.17, 2004/02/17 13:16:00
Line 1 Line 1
 import javax.swing.*;  import java.awt.Cursor;
 import javax.swing.event.*;  
 import javax.swing.table.TableModel;  
   
 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 39  public class FM2SQL extends JFrame imple Line 83  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 51  public class FM2SQL extends JFrame imple Line 90  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 sourceURLBox;
   JComboBox box2;  
   /**    /**
   *  box3 - Database URLs    *  destUrlBox - Database URL ComboBox
   */    */
   JComboBox box3;    JComboBox destURLBox;
   /**  
   *  box4 - Database URLs  
   */  
   JComboBox box4;  
   
   TableComponent table, tC;    TableComponent table, tC;
   Vector tables = new Vector();    Vector tables = new Vector();
Line 109  public class FM2SQL extends JFrame imple Line 143  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));
     box3.setFont(new Font("Times New Roman",Font.PLAIN,14));      destURLBox = new JComboBox(new String[] { "jdbc:postgresql://foxridge/test", "jdbc:postgresql://erebos/test1" });
     box4 = new JComboBox(new String[] { "jdbc:postgresql://foxridge/test", "jdbc:postgresql://erebos/test1" });      destURLBox.setEditable(true);
     box4.setEditable(true);      destURLBox.addActionListener(this);
     box4.addActionListener(this);      destURLBox.setFont(new Font("Times New Roman",Font.PLAIN,14));
     box4.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 182  public class FM2SQL extends JFrame imple Line 215  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 282  public class FM2SQL extends JFrame imple Line 315  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 316  public class FM2SQL extends JFrame imple Line 349  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 395  public class FM2SQL extends JFrame imple Line 429  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 419  public class FM2SQL extends JFrame imple Line 453  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 433  public class FM2SQL extends JFrame imple Line 467  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 443  public class FM2SQL extends JFrame imple Line 477  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 480  public class FM2SQL extends JFrame imple Line 514  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 491  public class FM2SQL extends JFrame imple Line 525  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 744  public class FM2SQL extends JFrame imple Line 778  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.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();        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 780  public class FM2SQL extends JFrame imple Line 814  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],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();        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 846  public class FM2SQL extends JFrame imple Line 880  public class FM2SQL extends JFrame imple
       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();)
       {        {
Line 877  public class FM2SQL extends JFrame imple Line 911  public class FM2SQL extends JFrame imple
                   
         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 1092  public class FM2SQL extends JFrame imple Line 1126  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 1453  public class FM2SQL extends JFrame imple Line 1487  public class FM2SQL extends JFrame imple
     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();
     data[1].add("Table");      data[1].add(" source Tablename  ");
     data[1].add("Layouts");      data[1].add("Layouts");
         data[1].add("select");          data[1].add("select");
     data[1].add("create");      data[1].add("create");
     data[1].add(" id ");      data[1].add(" id ");
    // TODO add id vector DBBean  
     data[0] = new Vector();      data[0] = new Vector();
     for (int i = 0; i < tableNames.size(); i++)      for (int i = 0; i < tableNames.size(); i++)
     {      {
Line 1488  public class FM2SQL extends JFrame imple Line 1521  public class FM2SQL extends JFrame imple
         bean.ids.add("");          bean.ids.add("");
       //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);
     tC.revalidate();      tC.revalidate();
     tC.tableModel.fireTableDataChanged();      tC.tableModel.fireTableDataChanged();
     noDBUpdate = false;      noDBUpdate = false;
Line 1523  public class FM2SQL extends JFrame imple Line 1559  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());

Removed from v.1.16  
changed lines
  Added in v.1.17


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>