Diff for /FM2SQL/Attic/FM2SQL.java between versions 1.8 and 1.18

version 1.8, 2004/01/09 12:43:00 version 1.18, 2004/02/18 13:25:24
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 23  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 35  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 47  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 105  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 176  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 276  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 310  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 389  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 413  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 427  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 437  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 474  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 485  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 545  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 616  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 631  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 687  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 701  public class FM2SQL extends JFrame imple Line 821  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 727  public class FM2SQL extends JFrame imple Line 847  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 761  public class FM2SQL extends JFrame imple Line 887  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();)
       {        {
         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 784  public class FM2SQL extends JFrame imple Line 931  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);
           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));  
           tC.tableModel.fireTableDataChanged();            tC.tableModel.fireTableDataChanged();
Line 983  public class FM2SQL extends JFrame imple Line 1133  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 1022  public class FM2SQL extends JFrame imple Line 1172  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();
           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);
           }            }
                 
                 
Line 1065  public class FM2SQL extends JFrame imple Line 1215  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 1078  public class FM2SQL extends JFrame imple Line 1230  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 1087  public class FM2SQL extends JFrame imple Line 1240  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 1098  public class FM2SQL extends JFrame imple Line 1280  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 1310  public class FM2SQL extends JFrame imple Line 1493  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();
Line 1329  public class FM2SQL extends JFrame imple Line 1512  public class FM2SQL extends JFrame imple
       {        {
         layouts = new Vector();          layouts = new Vector();
       }        }
       Vector dataRow = new Vector();        Vector dataRow = new Vector(5);
       dataRow.add(name);        
         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.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 1349  public class FM2SQL extends JFrame imple Line 1546  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() : "";
       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], ID_INDEX).toString());
       
     }      }
     return vec;      return vec;
Line 1374  public class FM2SQL extends JFrame imple Line 1573  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.8  
changed lines
  Added in v.1.18


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