--- FM2SQL/Attic/FM2SQL.java 2003/12/11 11:55:05 1.4 +++ FM2SQL/Attic/FM2SQL.java 2004/01/15 13:25:37 1.12 @@ -2,11 +2,8 @@ import javax.swing.*; import javax.swing.event.*; import javax.swing.table.TableModel; -import Convert.DataBase; - import java.awt.event.*; import java.awt.Dimension; -import java.awt.FlowLayout; import java.awt.*; import java.sql.*; import java.util.*; @@ -20,12 +17,16 @@ import java.io.*; *
* The Database access is made over DBBean class * all other classes are just for the visualization of the data - * @version 0.2( first stable release) + * @version 0.3( first stable release) * @author rogo * */ public class FM2SQL extends JFrame implements ActionListener, TableModelListener { + private JCheckBoxMenuItem convertItem; + private JCheckBoxMenuItem appendItem; + private JCheckBoxMenuItem updateItem; + int mode = -1; /** * The database Bean instance. * @@ -135,7 +136,7 @@ public class FM2SQL extends JFrame imple box4.setMaximumSize(new Dimension(550, 20)); box4.setPreferredSize(new Dimension(450, 20)); paneDest = new JScrollPane(tListDest); - tListDest.setPreferredSize(paneDest.getPreferredSize()); + // tListDest.setPreferredSize(paneDest.getPreferredSize()); // paneDest.setPreferredSize(new Dimension(350, 365)); Dimension dim = paneDest.getPreferredSize(); paneDest.setMinimumSize(dim); @@ -214,7 +215,7 @@ public class FM2SQL extends JFrame imple // topPanel.add(showTables1, gbc); JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS)); - buttonPanel.setMinimumSize(new Dimension(350, 30)); + buttonPanel.setMinimumSize(new Dimension(380, 30)); convert = new JButton("Convert Tables"); showTables = new JButton("show Tables"); dropTables = new JButton("drop Tables"); @@ -548,8 +549,29 @@ 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 - if (command.equals("export XML Config")) + if (command.equals("save XML Config")) { if (configExportFileChooser == null) { @@ -583,7 +605,7 @@ public class FM2SQL extends JFrame imple configExportFileChooser.showDialog(fmInstance, " Save "); } - if (command.equals("import XML Config")) + if (command.equals("open XML Config")) { if (configImportFileChooser == null) { @@ -619,7 +641,7 @@ public class FM2SQL extends JFrame imple } - if (command.equals("Convert Tables")) + if (command.equals("Convert Tables")||command.equals("Append Tables")) { Thread thread = new Thread() @@ -681,6 +703,13 @@ public class FM2SQL extends JFrame imple }; thread.start(); } + if(command.equals("Quit")) + { + fmInstance.dispose(); + System.exit(0); + + } + } /** * Copys the content of source to destination and makes new table if necessary @@ -697,7 +726,7 @@ 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]); + Convert.convert(bean.url, box4.getSelectedItem().toString(), vectors[0], vectors[1],vectors[2],vectors[3],mode); destBean.setConnection((String) box4.getSelectedItem()); DefaultListModel model = new DefaultListModel(); @@ -723,8 +752,14 @@ public class FM2SQL extends JFrame imple fmInstance.setEnabled(false); Vector vectors[] = getListFromTable(); - Convert.DataBase source = new Convert.DataBase(bean,vectors[0],vectors[1],vectors[2],vectors[3]); - Convert.DataBase destination = new Convert.DataBase(destBean,new Vector(),new Vector(),new Vector(),new Vector()); + if(convertItem.isSelected()) mode = Convert.DataBase.CONVERT_MODE; + 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],new Vector(),mode); + Convert.DataBase destination = new Convert.DataBase(destBean,new Vector(),new Vector(),new Vector(),new Vector(),new Vector(),-1); try { @@ -752,7 +787,7 @@ public class FM2SQL extends JFrame imple fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); fmInstance.setEnabled(false); Vector databases = Convert.getXMLConfig(file); - DataBase destBase = (DataBase) databases.lastElement(); + Convert.DataBase destBase = (Convert.DataBase) databases.lastElement(); //destBase.bean.getConnection(); noUserUpdate = true; destBean=destBase.bean; @@ -764,7 +799,28 @@ public class FM2SQL extends JFrame imple for (Iterator iter = databases.iterator(); iter.hasNext();) { 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(); + bean = database.bean; Object obj =bean.url; ((DefaultComboBoxModel) box3.getModel()).removeElement(obj); @@ -1059,20 +1115,65 @@ public class FM2SQL extends JFrame imple { JMenuBar menubar = new JMenuBar(); JMenu menu = new JMenu("File"); - - JMenuItem item = new JMenuItem("import XML Config"); + menu.setMnemonic('F'); + JMenuItem item = new JMenuItem("open XML Config"); + item.setToolTipText("opens a XML config file for batch conversion"); + item.setMnemonic('i'); + item.setAccelerator(KeyStroke.getKeyStroke('O',InputEvent.CTRL_DOWN_MASK)); + item.addActionListener(fm); menu.add(item); - item = new JMenuItem("export 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.setMnemonic('x'); + item.addActionListener(fm); menu.add(item); + item = new JMenuItem("Quit"); + item.setMnemonic('Q'); + item.setToolTipText("Quits the application"); + item.setAccelerator(KeyStroke.getKeyStroke('Q',InputEvent.CTRL_DOWN_MASK)); + item.addActionListener(fm); + menu.add(item); + menubar.add(menu); menu = new JMenu("Options"); - + 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(); + 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); menu.add(item); @@ -1081,6 +1182,7 @@ public class FM2SQL extends JFrame imple menu.setBackground(fm.getBackground()); menubar.setBackground(fm.getBackground()); + convertItem.doClick(); setJMenuBar(menubar); } /** @@ -1298,7 +1400,8 @@ public class FM2SQL extends JFrame imple 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++)