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

version 1.17, 2004/02/17 13:16:00 version 1.28, 2004/03/09 12:34:09
Line 67  import javax.swing.table.TableModel; Line 67  import javax.swing.table.TableModel;
  */   */
 public class FM2SQL extends JFrame implements ActionListener, TableModelListener  public class FM2SQL extends JFrame implements ActionListener, TableModelListener
 {  {
     private JMenuItem delimiterItem;
   private JCheckBoxMenuItem convertItem;    private JCheckBoxMenuItem convertItem;
   private JCheckBoxMenuItem appendItem;    private JCheckBoxMenuItem appendItem;
   private JCheckBoxMenuItem updateItem;    private JCheckBoxMenuItem updateItem;
     private JCheckBoxMenuItem deleteItem;
     
   int mode = -1;    int mode = -1;
     final static int ID_INDEX = 1;
     final static int SELECT_INDEX = 2;
     final static int CREATE_INDEX = 3;
     final static int LAYOUT_INDEX = 4;
     
     
    
   /**    /**
   * The database Bean instance.    * The database Bean instance.
   *    *
Line 127  public class FM2SQL extends JFrame imple Line 137  public class FM2SQL extends JFrame imple
   int oldWidth = 0, oldHeight = 0;    int oldWidth = 0, oldHeight = 0;
   boolean resize = true;    boolean resize = true;
   static FileWriter logFile;    static FileWriter logFile;
       String delimiter = "";
   
   Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();    Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
   JFileChooser configExportFileChooser;    JFileChooser configExportFileChooser;
   JFileChooser configImportFileChooser;    JFileChooser configImportFileChooser;
Line 585  public class FM2SQL extends JFrame imple Line 597  public class FM2SQL extends JFrame imple
       {        {
       }        }
     }      }
       if (command.equals("Delimiter"))
       {
               new DelimiterDialog(fmInstance).setVisible(true); 
         //delimiter =  JOptionPane.showInputDialog(fmInstance,"Enter delimiter String",delimiter); 
         
       }
   
     if (command == "Convert Mode")      if (command == "Convert Mode")
     {      {
       System.out.println("Convert Mode selected");        System.out.println("Convert Mode selected");
             convert.setText("Convert Tables");              convert.setText("Convert Tables");
             convert.setActionCommand("Convert Tables");              convert.setActionCommand("Convert Tables");
         convert.setToolTipText("Normal table conversion  existing table will be deleted");
       mode = Convert.DataBase.CONVERT_MODE;        mode = Convert.DataBase.CONVERT_MODE;
     }      }
     if (command == "Append Mode")      if (command == "Append Mode")
Line 597  public class FM2SQL extends JFrame imple Line 617  public class FM2SQL extends JFrame imple
       System.out.println("Append Mode selected");        System.out.println("Append Mode selected");
             convert.setText("Append Tables");              convert.setText("Append Tables");
             convert.setActionCommand("Append Tables");              convert.setActionCommand("Append Tables");
        convert.setToolTipText("Appends data to an existing table");
   
       mode = Convert.DataBase.APPEND_MODE;         mode = Convert.DataBase.APPEND_MODE; 
     }      }
     if (command == "Update Mode")      if (command == "Update Mode")
Line 604  public class FM2SQL extends JFrame imple Line 626  public class FM2SQL extends JFrame imple
       System.out.println("Update Mode selected");        System.out.println("Update Mode selected");
             convert.setText("Update Tables");              convert.setText("Update Tables");
             convert.setActionCommand("Update Tables");              convert.setActionCommand("Update Tables");
         convert.setToolTipText("Updates data that has been changed in source");
       mode = Convert.DataBase.UPDATE_MODE;         mode = Convert.DataBase.UPDATE_MODE; 
     }      }
       if (command == "Delete Mode")
       {
         System.out.println("Delete Mode selected");
         convert.setText("Delete Tables");
         convert.setActionCommand("Delete Tables");
         convert.setToolTipText("Deletes data that has been deleted in source");
         mode = Convert.DataBase.DELETE_MODE; 
       }
   
    //writing config     //writing config
     if (command.equals("save XML Config"))      if (command.equals("save XML Config"))
     {      {
Line 776  public class FM2SQL extends JFrame imple Line 808  public class FM2SQL extends JFrame imple
     Convert.passwdDest = destBean.passwd;      Convert.passwdDest = destBean.passwd;
     try      try
     {      {
         
       fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));        fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
       fmInstance.setEnabled(false);        fmInstance.setEnabled(false);
       Convert.update(bean.url, destURLBox.getSelectedItem().toString(), vectors[0], vectors[1], vectors[2], vectors[3],vectors[4], mode);        Convert.update(bean.url, destURLBox.getSelectedItem().toString(), vectors[0], vectors[1], vectors[2], vectors[3],vectors[4], mode);
Line 794  public class FM2SQL extends JFrame imple Line 827  public class FM2SQL extends JFrame imple
       ByteArrayOutputStream b = new ByteArrayOutputStream();        ByteArrayOutputStream b = new ByteArrayOutputStream();
       PrintStream stream = new PrintStream(b);        PrintStream stream = new PrintStream(b);
       e4.printStackTrace(stream);        e4.printStackTrace(stream);
       showErrorDialog(b.toString(), "Conversion of table failed");        showErrorDialog(b.toString(), "Update of table failed");
       fmInstance.setEnabled(true);        fmInstance.setEnabled(true);
     }      }
   
Line 814  public class FM2SQL extends JFrame imple Line 847  public class FM2SQL extends JFrame imple
     {      {
       fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));        fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
       fmInstance.setEnabled(false);        fmInstance.setEnabled(false);
       Convert.convert(bean.url, destURLBox.getSelectedItem().toString(), vectors[0], vectors[1],vectors[2],vectors[3],vectors[4],mode);        Convert.convert(bean.url, destURLBox.getSelectedItem().toString(), vectors[0], vectors[1],vectors[2],vectors[3],vectors[4],mode,delimiter);
   
       destBean.setConnection((String) destURLBox.getSelectedItem());        destBean.setConnection((String) destURLBox.getSelectedItem());
       DefaultListModel model = new DefaultListModel();        DefaultListModel model = new DefaultListModel();
       tables = destBean.getTableNames();        tables = destBean.getTableNames();
Line 848  public class FM2SQL extends JFrame imple Line 880  public class FM2SQL extends JFrame imple
     // TODO add id vector in table and write it out      // TODO add id vector in table and write it out
     Convert.DataBase source = new Convert.DataBase(bean,vectors[0],vectors[1],vectors[2],vectors[3],vectors[4],mode);      Convert.DataBase source = new Convert.DataBase(bean,vectors[0],vectors[1],vectors[2],vectors[3],vectors[4],mode);
     Convert.DataBase destination = new Convert.DataBase(destBean,new Vector(),new Vector(),new Vector(),new Vector(),new Vector(),-1);      Convert.DataBase destination = new Convert.DataBase(destBean,new Vector(),new Vector(),new Vector(),new Vector(),new Vector(),-1);
          source.delimiter =delimiter;
     try      try
     {      {
       Convert.writeConfig(file,source,destination);        Convert.writeConfig(file,source,destination);
Line 907  public class FM2SQL extends JFrame imple Line 939  public class FM2SQL extends JFrame imple
           convert.setActionCommand("Update Tables");            convert.setActionCommand("Update Tables");
           mode = Convert.DataBase.UPDATE_MODE;            mode = Convert.DataBase.UPDATE_MODE;
         }          }
           delimiter=database.delimiter;
         database.bean.getConnection();          database.bean.getConnection();
                   
         bean = database.bean;          bean = database.bean;
Line 924  public class FM2SQL extends JFrame imple Line 957  public class FM2SQL extends JFrame imple
           int index=tables.indexOf(table);            int index=tables.indexOf(table);
           if(index<0) throw new RuntimeException("Error table \""+table+"\" does no longer exist\n at server "+bean.url +"\n or you mispelled the tablename.");            if(index<0) throw new RuntimeException("Error table \""+table+"\" does no longer exist\n at server "+bean.url +"\n or you mispelled the tablename.");
           noDBUpdate = true;            noDBUpdate = true;
           tC.tableModel.setValueAt(new TableComponent.SQLCommand(database.selects.get(i).toString()),index,2);            tC.tableModel.setValueAt(new TableComponent.SQLCommand(database.selects.get(i).toString()),index,SELECT_INDEX);
                                           
           String create =database.creates.get(i).toString();            String create =database.creates.get(i).toString();
           tC.tableModel.setValueAt(new TableComponent.SQLCommand(create.equals("") ? create:"           "+create),index,3);            tC.tableModel.setValueAt(new TableComponent.SQLCommand(create.equals("") ? create:"           "+create),index,CREATE_INDEX);
                     tC.tableModel.setValueAt(new TableComponent.SQLCommand(bean.ids.get(i).toString()),index,4);                      // tC.tableModel.setValueAt(new TableComponent.SQLCommand(bean.ids.get(i).toString()),index,ID_INDEX);
   
             Object comboBox=tC.tableModel.getValueAt(index,LAYOUT_INDEX);
             Object idcomboBox=tC.tableModel.getValueAt(index,ID_INDEX);
   
           Object comboBox=tC.tableModel.getValueAt(index,1);  
           indices[i] = index;            indices[i] = index;
           if(comboBox!=null) ((JComboBox)comboBox).setSelectedItem(database.layouts.get(i));              if(comboBox!=null) ((JComboBox)comboBox).setSelectedItem(database.layouts.get(i));  
             if(idcomboBox!=null)((JComboBox)idcomboBox).setSelectedItem(bean.ids.get(i));
           tC.tableModel.fireTableDataChanged();            tC.tableModel.fireTableDataChanged();
           noDBUpdate = false;            noDBUpdate = false;
           noUserUpdate = false;            noUserUpdate = false;
Line 1165  public class FM2SQL extends JFrame imple Line 1201  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()+" layout "+bean.getQC()+layout+bean.getQC(),1);
   
               Vector idVec = bean.getColumnNames();
               if (idVec == null)
                 idVec = new Vector();
               idVec.add(0, "");
               JComboBox box = ((JComboBox) model.getValueAt(row, ID_INDEX));
               box.setModel(new DefaultComboBoxModel(idVec));
               box.setSelectedItem(id);
             }
                 
         }          }
 /*        Statement stm = bean.getConnection().createStatement();  /*        Statement stm = bean.getConnection().createStatement();
Line 1232  public class FM2SQL extends JFrame imple Line 1282  public class FM2SQL extends JFrame imple
     menu = new JMenu("Options");      menu = new JMenu("Options");
     menu.setMnemonic('O');      menu.setMnemonic('O');
         
     item = new JMenuItem("show Driver features");  
         item.setToolTipText("shows the features of the selected driver");  
     item.addActionListener(fm);  
     menu.add(item);  
     menubar.add(menu);  
   
     ButtonGroup bgrp = new ButtonGroup();      ButtonGroup bgrp = new ButtonGroup();
     convertItem = new JCheckBoxMenuItem("Convert Mode");      convertItem = new JCheckBoxMenuItem("Convert Mode");
         convertItem.setToolTipText("Normal table conversion  existing table will be deleted");          convertItem.setToolTipText("Normal table conversion  existing table will be deleted");
Line 1264  public class FM2SQL extends JFrame imple Line 1308  public class FM2SQL extends JFrame imple
         bgrp.add(updateItem);          bgrp.add(updateItem);
   
         menu.add(updateItem);          menu.add(updateItem);
         menubar.add(menu);      deleteItem = new JCheckBoxMenuItem("Delete Mode");
       deleteItem.setToolTipText("Deletes data in an existing table \n that has been deleted in source table");
       deleteItem.addActionListener(fm);
   
       bgrp.add(deleteItem);
   
       menu.add(deleteItem);
       
           menubar.add(menu);
       item = new JMenuItem("show Driver features");
       item.setToolTipText("shows the features of the selected driver");
     item.addActionListener(fm);      item.addActionListener(fm);
     menu.add(item);      menu.add(item);
       menubar.add(menu);
       delimiterItem = new JMenuItem("Delimiter");
       delimiterItem.setToolTipText("Delimiter for FM Arrayfields");
       delimiterItem.addActionListener(fm);
       menu.add(delimiterItem);
       menubar.add(menu);
   
    //   item.addActionListener(fm);
   //    menu.add(item);
       
     menubar.add(menu);      menubar.add(menu);
       
Line 1392  public class FM2SQL extends JFrame imple Line 1454  public class FM2SQL extends JFrame imple
     }      }
   
   }    }
       public static class DelimiterDialog extends JDialog
       {
           JLabel table = new JLabel("    ");
           JLabel status = new JLabel("    ");
           JLabel title = new JLabel("     ");
           JPanel content = new JPanel();
           JPanel titlePanel = new JPanel();
           JPanel delimiterPanel = new JPanel();
           JPanel buttonPanel = new JPanel();
           JTextField delimiter = new JTextField(10);
       
           JButton cancel = new JButton("Cancel");
           JButton ok = new JButton("Ok");
           Thread thread;
           public DelimiterDialog(JFrame frame)
           {
               super(frame);
               setTitle("Delimiter Editor");
               setModal(true);
               content = new JPanel(true);
               delimiter.setText(fmInstance.delimiter);
               ActionListener al = new ActionListener()
               {
                   public void actionPerformed(ActionEvent e)
                   {
                       fmInstance.delimiter=parseDelimiter(delimiter.getText());
                       setVisible(false);
                   }
   
               };
               this.addWindowListener(new WindowAdapter()
               {
                   public void windowClosing(WindowEvent e)
                   {
                       cancel.doClick();
                   }
               });
   
               //delimiter.setText(fmInstance.delimiter);
               delimiter.addActionListener(al);
               content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS));
               title = new JLabel("Enter Delimiter ");
               title.setHorizontalTextPosition(title.CENTER);
               titlePanel.add(title);
               buttonPanel.add(ok);
               buttonPanel.add(cancel);
               content.add(titlePanel);
               content.add(Box.createRigidArea(new java.awt.Dimension(0, 15)));
           
               content.add(new JLabel(""));
               content.add(delimiterPanel);
               content.add(buttonPanel);
               content.add(Box.createRigidArea(new java.awt.Dimension(0, 15)));
               
               delimiterPanel.add(new JLabel("Delimiter:  "));
               delimiterPanel.add(delimiter);
           getContentPane().add(titlePanel, "North");
               getContentPane().add(content, "Center");
               ok.addActionListener(al);
               cancel.addActionListener(new ActionListener()
               {
                   public void actionPerformed(ActionEvent e)
                   {
                       fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
                       fmInstance.setEnabled(true);
                       setVisible(false);
                   //  thread.stop();
                   }
   
               });
               pack();
         setLocationRelativeTo(fmInstance);
           }
       public String parseDelimiter(Object o)
       {
         String str = o.toString();
         StringBuffer sbuff = new StringBuffer();
         int length = str.length();
         for(int i = 0;i<length;++i)
         {
                   
                   if(str.charAt(i)=='\\')
           {
             System.out.println(str.charAt(i));
             if (str.charAt(i + 1) == 'r')
             {
               sbuff.append("\r");
             }
             if (str.charAt(i + 1) == 't')
             {
               sbuff.append("\t");
             }  
               if (str.charAt(i + 1) == 'n')
               {
                 sbuff.append("\n");
               } 
                 if (str.charAt(i + 1) == '\\')
                 {
                   sbuff.append("\\");
                 }
                       
                       if(i<length-1) ++i;
           
           } else sbuff.append(str.charAt(i));
               }
       
         return sbuff.toString();
       }
       }
   
   
   public static class PasswordDialog extends JDialog    public static class PasswordDialog extends JDialog
   {    {
     JLabel table = new JLabel("    ");      JLabel table = new JLabel("    ");
Line 1486  public class FM2SQL extends JFrame imple Line 1659  public class FM2SQL extends JFrame imple
     Vector tableNames = bean.getTableNames();      Vector tableNames = bean.getTableNames();
     Collections.sort(tableNames, String.CASE_INSENSITIVE_ORDER);      Collections.sort(tableNames, String.CASE_INSENSITIVE_ORDER);
     Vector[] data = new Vector[2];      Vector[] data = new Vector[2];
     data[1] = new Vector();      data[1] = new Vector(5);
     data[1].add(" source Tablename  ");      data[1].setSize(5)
     data[1].add("Layouts");      data[1].set(0," source Tablename  ");
         data[1].add("select");      data[1].set(LAYOUT_INDEX,"Layouts");
     data[1].add("create");          data[1].set(SELECT_INDEX,"select");
     data[1].add(" id ");      data[1].set(CREATE_INDEX,"create");
       data[1].set(ID_INDEX," id ");
     data[0] = new Vector();      data[0] = new Vector();
     for (int i = 0; i < tableNames.size(); i++)      for (int i = 0; i < tableNames.size(); i++)
     {      {
       String name = tableNames.get(i).toString();        String name = tableNames.get(i).toString();
       Vector layouts = new Vector();        Vector layouts = new Vector();
         Vector idVec = new Vector();
      
       try        try
       {        {
           bean.makeQuery("select * from"+bean.getQC()+name+bean.getQC(),1);
         layouts = bean.getLayoutNames(name);          layouts = bean.getLayoutNames(name);
       } catch (SQLException e)        } catch (SQLException e)
       {        {
         layouts = new Vector();          layouts = new Vector();
       }        }
       Vector dataRow = new Vector();        
       dataRow.add(name);        idVec = bean.getColumnNames(); 
         if(idVec==null) idVec=new Vector();
         idVec.add(0,"");
         Vector dataRow = new Vector(5);
         
         dataRow.setSize(5);
         dataRow.set(0,name);
         
         dataRow.set(SELECT_INDEX,new TableComponent.SQLCommand("select * from " + bean.getQC() + name + bean.getQC()));
       if (!layouts.isEmpty())        if (!layouts.isEmpty())
         dataRow.add(new JComboBox(layouts));               dataRow.set(LAYOUT_INDEX,new JComboBox(layouts));
       else        else
         dataRow.add(null);               dataRow.set(LAYOUT_INDEX,null);
       dataRow.add(new TableComponent.SQLCommand("select * from " + bean.getQC() + name + bean.getQC()));  
   
       data[0].add(dataRow);  
   
       // create row        // create row
       dataRow.add(new TableComponent.SQLCommand(""));        dataRow.set(CREATE_INDEX,new TableComponent.SQLCommand(""));
       // id row        // id row
       dataRow.add(new TableComponent.SQLCommand(""));        dataRow.set(ID_INDEX,new TableComponent.IDComboBox(idVec));//new TableComponent.SQLCommand(""));
       bean.ids.add("");        bean.ids.add("");
         data[0].add(dataRow);
   
       //System.out.println(dataRow);        //System.out.println(dataRow);
     }      }
         
     tC.tableModel.setDataVector(data[0], data[1]);      tC.tableModel.setDataVector(data[0], data[1]);
    //@TODO new sizeToFit method needed     //@TODO new sizeToFit method needed
    // tC.sizeToFit(450, 250);     // tC.sizeToFit(450, 250);
       Dimension dim=listPanel.getPreferredSize();
       tC.sizeToFit(dim.width,dim.height);
     tC.revalidate();      tC.revalidate();
     tC.tableModel.fireTableDataChanged();      tC.tableModel.fireTableDataChanged();
     noDBUpdate = false;      noDBUpdate = false;
Line 1543  public class FM2SQL extends JFrame imple Line 1730  public class FM2SQL extends JFrame imple
     {      {
       //System.out.println(tC.tableModel.getValueAt(rows[i],1));        //System.out.println(tC.tableModel.getValueAt(rows[i],1));
       vec[0].add(tC.tableModel.getValueAt(rows[i], 0));        vec[0].add(tC.tableModel.getValueAt(rows[i], 0));
       JComboBox box = ((JComboBox) tC.tableModel.getValueAt(rows[i], 1));        JComboBox box = ((JComboBox) tC.tableModel.getValueAt(rows[i], LAYOUT_INDEX));
       String layoutName = (box != null) ? box.getSelectedItem().toString() : "";        String layoutName = (box != null) ? box.getSelectedItem().toString() : "";
         
         String idName = ((JComboBox)tC.tableModel.getValueAt(rows[i], ID_INDEX)).getSelectedItem().toString();
       vec[1].add(layoutName);        vec[1].add(layoutName);
       vec[2].add(tC.tableModel.getValueAt(rows[i], 2).toString());        vec[2].add(tC.tableModel.getValueAt(rows[i],SELECT_INDEX ).toString());
       vec[3].add(tC.tableModel.getValueAt(rows[i], 3).toString());        vec[3].add(tC.tableModel.getValueAt(rows[i], CREATE_INDEX).toString());
             vec[4].add(tC.tableModel.getValueAt(rows[i], 4).toString());              vec[4].add(idName);
       
     }      }
     return vec;      return vec;

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


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