--- FM2SQL/Attic/FM2SQL.java 2004/05/26 11:37:32 1.35
+++ FM2SQL/Attic/FM2SQL.java 2004/11/18 11:17:42 1.46
@@ -32,6 +32,7 @@ import java.io.FileWriter;
import java.io.PrintStream;
import java.sql.SQLException;
import java.sql.Statement;
+import java.text.ParseException;
import java.util.Collections;
import java.util.Iterator;
import java.util.Vector;
@@ -63,1324 +64,1441 @@ import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.ListSelectionModel;
+import javax.swing.SwingConstants;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
/**
- *
+ *
*
*
FileMaker Test (JDBC Database Driver Test)
- * Main class :
- * contains the main Frame, all event handlers etc
- *
- * The Database access is made over DBBean class
- * all other classes are just for the visualization of the data
- * @version 0.3( first stable release)
- * @author rogo
- *
+ * Main class : contains the main Frame, all event handlers etc
+ * The Database access is made over DBBean class all other classes are just for
+ * the visualization of the data
+ *
+ * @version 0.3( first stable release)
+ * @author rogo
+ *
*/
public class FM2SQL extends JFrame implements ActionListener, TableModelListener
{
- private JMenuItem delimiterItem;
- private JCheckBoxMenuItem convertItem;
- private JCheckBoxMenuItem appendItem;
- private JCheckBoxMenuItem updateItem;
- private JCheckBoxMenuItem deleteItem;
-
- int mode = -1;
- final static int STATUS_INDEX = 0;
- final static int NAME_INDEX = 1;
- final static int ID_INDEX = 2;
- final static int SELECT_INDEX = 3;
- final static int CREATE_INDEX = 4;
- final static int LAYOUT_INDEX = 5;
-
-
-
- /**
- * The database Bean instance.
- *
- */
- DBBean bean;
- /**
- * The database destination Bean instance.
- *
- */
- DBBean destBean;
-
- /**
- * tList - Tablenames to choose from
- */
-
- JList tList = new JList(new String[] { "no database", "connection", "" });
- JList tListDest = new JList(new String[] { "no database connection", "", "" });
-
- /**
- * sourceUrl - Database URL ComboBox
- */
- JComboBox sourceURLBox;
- /**
- * destUrlBox - Database URL ComboBox
- */
- JComboBox destURLBox;
-
- TableComponent table, tC;
- Vector tables = new Vector();
- Vector layouts = new Vector();
- JPanel listPanel;
- JPanel topPanel,topPanel2, contentPanel;
- JScrollPane paneDest;
- FM2SQL fm = this;
- boolean noDBUpdate = false;
- boolean noUserUpdate = false;
- int id = 0;
- static boolean debug = false;
- /**
- * The result window used for query results
- */
- MultiResultWindow window;
- /**
- * The result window used for query results
- */
- MultiResultWindow windowDest;
-
- static FM2SQL fmInstance;
- static String url = "jdbc:fmpro:http://141.14.237.42";
- JButton showTables = new JButton(), showTables1 = new JButton();
- JButton convert = new JButton();
- JButton dropTables = new JButton();
-
- int oldWidth = 0, oldHeight = 0;
- boolean resize = true;
- static FileWriter logFile;
+ private JMenuItem delimiterItem;
+ private JCheckBoxMenuItem convertItem;
+ private JCheckBoxMenuItem appendItem;
+ private JCheckBoxMenuItem updateItem;
+ private JCheckBoxMenuItem deleteItem;
+ private JCheckBoxMenuItem useNormanToUnicodeMapper;
+ int mode = -1;
+ final static int STATUS_INDEX = 0;
+ final static int NAME_INDEX = 1;
+ final static int ID_INDEX = 2;
+ final static int SELECT_INDEX = 3;
+ final static int CREATE_INDEX = 4;
+ final static int LAYOUT_INDEX = 5;
+
+ /**
+ * The database Bean instance.
+ *
+ */
+ DBBean bean;
+ /**
+ * The database destination Bean instance.
+ *
+ */
+ DBBean destBean;
+
+ /**
+ * tList - Tablenames to choose from
+ */
+
+ JList tList = new JList(new String[]
+ {"no database", "connection", ""});
+ JList tListDest = new JList(new String[]
+ {"no database connection", "", ""});
+
+ /**
+ * sourceUrl - Database URL ComboBox
+ */
+ JComboBox sourceURLBox;
+ /**
+ * destUrlBox - Database URL ComboBox
+ */
+ JComboBox destURLBox;
+
+ TableComponent table, tC;
+ Vector tables = new Vector();
+ Vector layouts = new Vector();
+ JPanel listPanel;
+ JPanel topPanel, topPanel2, contentPanel;
+ JScrollPane paneDest;
+ FM2SQL fm = this;
+ boolean noDBUpdate = false;
+ boolean noUserUpdate = false;
+ int id = 0;
+ static boolean debug = false;
+ /**
+ * The result window used for query results
+ */
+ MultiResultWindow window;
+ /**
+ * The result window used for query results
+ */
+ MultiResultWindow windowDest;
+
+ static FM2SQL fmInstance;
+ static String url = "jdbc:fmpro:http://141.14.237.42";
+ JButton showTables = new JButton(), showTables1 = new JButton();
+ JButton convert = new JButton();
+ JButton dropTables = new JButton();
+
+ int oldWidth = 0, oldHeight = 0;
+ boolean resize = true;
+ static FileWriter logFile;
String delimiter = "";
- Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
- JFileChooser configExportFileChooser;
- JFileChooser configImportFileChooser;
-
- /**
- * tries to connect to database specified in url-Variable.
- * initializes all GUI components, then fails throws an exception
- *
- */
- public FM2SQL() throws Exception
- {
-
- initializeGUI();
- }
- public void initializeGUI() throws Exception
- {
- Image local = getToolkit().getImage(FM2SQL.class.getResource("icons/fm.jpg"));
- if (local != null);
- setIconImage(local);
- bean = new DBBean();
- destBean = new DBBean();
- sourceURLBox = new JComboBox(new String[] { "jdbc:fmpro:http://141.14.237.74:8050", "jdbc:fmpro:http://localhost", "jdbc:postgresql://foxridge/test" });
- sourceURLBox.setEditable(true);
- sourceURLBox.setFont(new Font("Times New Roman",Font.PLAIN,14));
- destURLBox = new JComboBox(new String[] { "jdbc:postgresql://foxridge/test", "jdbc:postgresql://erebos/test1" });
- destURLBox.setEditable(true);
- destURLBox.addActionListener(this);
- destURLBox.setFont(new Font("Times New Roman",Font.PLAIN,14));
- table = new TableComponent();
- //box = new JComboBox(tables);
- // box.addActionListener(this);
- // box2.addActionListener(this);
- sourceURLBox.addActionListener(this);
-
- contentPanel = new JPanel();
- contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS));
-
- sourceURLBox.setMinimumSize(new Dimension(450, 25));
- sourceURLBox.setMaximumSize(new Dimension(550, 25));
- sourceURLBox.setPreferredSize(new Dimension(450, 25));
- destURLBox.setMinimumSize(new Dimension(450, 25));
- destURLBox.setMaximumSize(new Dimension(550, 25));
- destURLBox.setPreferredSize(new Dimension(450, 25));
- paneDest = new JScrollPane(tListDest);
- // tListDest.setPreferredSize(paneDest.getPreferredSize());
- // paneDest.setPreferredSize(new Dimension(350, 365));
- Dimension dim = paneDest.getPreferredSize();
- paneDest.setMinimumSize(dim);
- //paneDest.setMaximumSize(new Dimension(dim.width + 50, dim.height + 50));
-
- tC = new TableComponent();
- tC.sizeToFit(450, 250);
- tC.tableModel.addTableModelListener(this);
- JPanel destPanel = new JPanel();
- destPanel.setLayout(new java.awt.GridBagLayout());
-
- listPanel = new JPanel();
- listPanel.setLayout(new java.awt.GridBagLayout());
- java.awt.GridBagConstraints gbc = new java.awt.GridBagConstraints();
- JScrollPane pane = new JScrollPane(tList);
- tC.tableScroller.setPreferredSize(new Dimension(450, 365));
- //tC.table.revalidate();
- tC.tableScroller.setMinimumSize(new Dimension(450, 250));
- // tC.tableScroller.setMaximumSize(tC.tableScroller.getPreferredSize());
- topPanel = new JPanel();
- topPanel.setLayout(new GridBagLayout());
- topPanel2 = new JPanel();
- topPanel2.setLayout(new GridBagLayout());
-
- gbc.gridx = 0;
- gbc.gridy = 0;
- gbc.weightx = 0.1;
- gbc.weighty = 0.1;
- gbc.gridwidth = 1;
- gbc.gridheight = 1;
- gbc.insets = new Insets(2, 2, 5, 5);
- gbc.ipadx = 1;
- gbc.ipady = 1;
-
- gbc.anchor = GridBagConstraints.WEST;
- listPanel.add(topPanel, gbc);
- destPanel.add(topPanel2, gbc);
-
- topPanel.add(new JLabel("Choose src database: ", JLabel.CENTER), gbc);
- topPanel2.add(new JLabel("Choose dest database : ", JLabel.CENTER), gbc);
-
- gbc.anchor = GridBagConstraints.NORTHWEST;
- gbc.gridy = 1;
- topPanel.add(sourceURLBox, gbc);
-
- topPanel2.add(destURLBox, gbc);
-
- //gbc.gridx=GridBagConstraints.RELATIVE;
- //dataBasePanel.add(new JLabel(" select Tables to Convert ", JLabel.LEFT));
- gbc.gridy = 1;
- gbc.anchor = GridBagConstraints.SOUTHWEST;
-
- listPanel.add(new JLabel(" select Tables to Convert ", JLabel.LEFT), gbc);
- destPanel.add(new JLabel(" Tables in database ", JLabel.LEFT), gbc);
-
- // gbc.anchor = GridBagConstraints.WEST;
- gbc.gridy = 2;
- gbc.gridx = 0;
- // gbc.weightx = 0.0;
- //dataBasePanel.add(tC);
- gbc.anchor = GridBagConstraints.NORTHWEST;
- gbc.gridheight = 1;
- gbc.fill = GridBagConstraints.BOTH;
- listPanel.add(tC.tableScroller, gbc);
- // gbc.fill = GridBagConstraints.VERTICAL;
- destPanel.add(paneDest, gbc);
- showTables1 = new JButton("show Tables");
- showTables1.setActionCommand("show Tables source");
- // gbc.anchor = GridBagConstraints.NORTH;
- // gbc.weightx = 0.0;
- gbc.fill = GridBagConstraints.NONE;
- gbc.gridheight = 1;
-
- gbc.gridx = 0;
- gbc.gridy = 2;
- // topPanel.add(showTables1, gbc);
- JPanel buttonPanel = new JPanel();
- buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS));
- buttonPanel.setMinimumSize(new Dimension(380, 30));
- convert = new JButton("Convert Tables");
- showTables = new JButton("show Tables");
- dropTables = new JButton("drop Tables");
- // System.out.println(convert.getPreferredSize());
- showTables.setMinimumSize(convert.getPreferredSize());
- dropTables.setMinimumSize(convert.getPreferredSize());
- showTables.setMaximumSize(convert.getPreferredSize());
- dropTables.setMaximumSize(convert.getPreferredSize());
- showTables.setPreferredSize(convert.getPreferredSize());
- dropTables.setPreferredSize(convert.getPreferredSize());
-
- showTables.addActionListener(fm);
- showTables1.addActionListener(fm);
-
- buttonPanel.add(showTables);
- buttonPanel.add(convert);
- convert.addActionListener(fm);
- dropTables.addActionListener(fm);
- buttonPanel.add(dropTables);
-
- JPanel buttonPanelSrc = new JPanel();
- buttonPanelSrc.setLayout(new BoxLayout(buttonPanelSrc, BoxLayout.X_AXIS));
- buttonPanelSrc.setMinimumSize(new Dimension(200, 30));
- buttonPanelSrc.add(showTables1);
-
- topPanel.add(buttonPanelSrc, gbc);
- topPanel2.add(buttonPanel, gbc);
-
- // gbc.anchor = GridBagConstraints.WEST;
- // gbc.gridy = 1;
- // gbc.gridx = 2;
- // gbc.weightx = 0.2;
-
- // gbc.gridx = 3;
- // gbc.anchor = GridBagConstraints.NORTHWEST;
- // gbc.gridy = 1;
- // gbc.weightx = 1.0;
- //listPanel.add(buttonPanel, gbc);
- JSplitPane splitter = new JSplitPane();
- splitter.setTopComponent(listPanel);
- splitter.setBottomComponent(destPanel);
-
- // contentPanel.add(dataBasePanel);
- // contentPanel.add(listPanel);
- listPanel.setMaximumSize(new Dimension(660, 750));
- listPanel.setMinimumSize(new Dimension(660, 250));
- listPanel.setPreferredSize(new Dimension(480, 500));
- paneDest.setPreferredSize(new Dimension(250, 285));
-
- getContentPane().add(splitter, "Center");
- this.addWindowListener(new WindowAdapter()
- {
- public void windowClosing(WindowEvent e)
- {
- System.exit(0);
- }
- });
- addComponentListener(new ComponentAdapter()
- {
- public void componentResized(ComponentEvent e)
- {
-
- if (oldWidth != getWidth() || oldHeight != getHeight())
- {
- //table.sizeToFit(getWidth(), getHeight());
-
- Dimension dim = table.table.getPreferredSize();
- int size = contentPanel.getPreferredSize().height + new JScrollBar().getPreferredSize().height + new JMenuBar().getPreferredSize().height + 10;
-
- table.tableScroller.setPreferredSize(new Dimension(getWidth() - 15, getHeight() - size));
- Dimension d2 = table.tableScroller.getPreferredSize();
-
- oldWidth = getWidth();
- oldHeight = getHeight();
-
- table.setPreferredSize(new Dimension(d2.width + 15, d2.height + 5));
- table.table.revalidate();
- table.tableScroller.revalidate();
- table.revalidate();
- if (getHeight() > table.table.getPreferredSize().height + (2 * size))
- setSize(getWidth(), table.table.getPreferredSize().height + 2 * size);
- // System.out.println("size" + size);
- }
- // listPanel.setMaximumSize(new Dimension(getPreferredSize().width - 5, 550));
- // listPanel.setMinimumSize(new Dimension(getPreferredSize().width - 5, 200));
- // listPanel.setPreferredSize(new Dimension(getPreferredSize().width - 5, 370));
- tC.tableScroller.revalidate();
- Dimension dim = getSize();
- tC.tableScroller.setMinimumSize(new Dimension(dim.width-400, dim.height - topPanel.getPreferredSize().height - 100));
- tC.tableScroller.setMaximumSize(getSize());
- tC.tableScroller.setPreferredSize(tC.tableScroller.getMinimumSize());
-
- paneDest.setMinimumSize(new Dimension(400, dim.height - topPanel2.getPreferredSize().height - 100));
- paneDest.setMaximumSize(tC.tableScroller.getMaximumSize());
- paneDest.setPreferredSize(new Dimension(400, dim.height - topPanel2.getPreferredSize().height - 100));
-
- paneDest.validate();
- // tC.tableScroller.setPreferredSize(getSize());
- // @TODO new sizeToFit method for listPanel table!!!
- tC.sizeToFit(getWidth(), getHeight());
- ((JPanel) getContentPane()).revalidate();
- repaint();
- setTitle("Filemaker 2 SQL Conversion Tool ");
-
- }
- });
-
- setMenu();
- //setSize(800, 600);
- pack();
- setLocation((screenSize.width - getWidth()) / 2, (screenSize.height - getHeight()) / 2);
- //setVisible(true);
- validate();
-
- // repaint();
-
- }
-
- /**
- *
- */
- public static void main(String[] args)
- {
- try
- {
- System.setErr(System.out);
-// Properties prop = System.getProperties();
- // Enumeration enum= prop.keys();
-// while(enum.hasMoreElements())
-//System.out.println(enum.nextElement());
-
- if (System.getProperty("os.name").startsWith("W"))
- // javax.swing.UIManager.setLookAndFeel(
- // new com.sun.java.swing.plaf.windows.WindowsLookAndFeel());
- javax.swing.UIManager.put("Table.focusCellHighlightBorder", new javax.swing.border.LineBorder(java.awt.Color.black));
- javax.swing.UIManager.put("Table.focusCellBackground", new java.awt.Color(227, 227, 227, 127));
-
- fmInstance = new FM2SQL();
- fmInstance.table.tableModel.addTableModelListener(fmInstance);
- fmInstance.setVisible(true);
- /* if (!new File("./html").exists())
- new File("./html").mkdirs();
- logFile = new FileWriter("./html/index.html");
- openLog();
- */
- } catch (Exception e)
- {
- JOptionPane pane = new JOptionPane(e.getMessage() + " \n URL: " + url, JOptionPane.ERROR_MESSAGE);
-
- JDialog dialog = pane.createDialog(null, " Exception occured while connecting");
- e.printStackTrace();
- dialog.addWindowListener(new WindowAdapter()
- {
- public void windowClosing(WindowEvent e)
- {
- System.exit(0);
- }
- });
- dialog.addComponentListener(new ComponentAdapter()
- {
-
- public void componentHidden(ComponentEvent e)
- {
-
- System.exit(0);
- }
- });
- dialog.show();
- }
- }
- public void actionPerformed(ActionEvent e)
- {
- String command = e.getActionCommand();
- if (debug)
- System.out.println("command " + command);
- if (command == "comboBoxEdited")
- {
- Object src = e.getSource();
- if (src == sourceURLBox)
- {
- if (debug)
- System.out.println("hey" + sourceURLBox.getSelectedItem());
- Object insObj =sourceURLBox.getSelectedItem();
- ((DefaultComboBoxModel) sourceURLBox.getModel()).removeElement(insObj);
-
- ((DefaultComboBoxModel) sourceURLBox.getModel()).insertElementAt(insObj, 0);
- sourceURLBox.setSelectedItem(insObj);
- } else if (src == destURLBox)
- {
- if (debug)
- System.out.println("hey" + destURLBox.getSelectedItem());
- //((DefaultComboBoxModel) box4.getModel()).insertElementAt(box4.getSelectedItem(), 0);
- try
- {
- String selected = (String) destURLBox.getSelectedItem();
- destBean.setConnection(selected);
- Vector catalogs = destBean.getCatalogs();
- Vector urls = new Vector();
- for (int i = 0; i < catalogs.size(); ++i)
- {
- urls.add(destBean.url.substring(0, destBean.url.lastIndexOf("/") + 1) + catalogs.get(i));
- }
- destURLBox.setModel(new DefaultComboBoxModel(urls));
- destURLBox.setSelectedItem(selected);
- } catch (Exception e5)
- {
- }
- }
- }
- if (command == "comboBoxChanged")
- {
- try
- {
- //System.out.println("hallo " + (e.getSource() == box3));
-
- Object src = e.getSource();
- if (src == sourceURLBox&&!noUserUpdate)
- {
- Thread thread = new Thread()
- {
- public void run()
- {
-
- try
- {
- PasswordDialog dialog = new PasswordDialog(fmInstance, bean);
- dialog.setLocationRelativeTo(sourceURLBox);
- dialog.thread = Thread.currentThread();
- fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- fmInstance.setEnabled(false);
- dialog.setVisible(true);
- String url = sourceURLBox.getSelectedItem().toString();
- bean.url = (url != null) ? url : bean.url;
- bean.connection = null;
- bean.getConnection();
- tables = bean.getTableNames();
- fillTable();
- fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
+ JFileChooser configExportFileChooser;
+ JFileChooser configImportFileChooser;
+ private JCheckBoxMenuItem synchronizeItem;
+
+ /**
+ * tries to connect to database specified in url-Variable. initializes all GUI
+ * components, then fails throws an exception
+ *
+ */
+ public FM2SQL() throws Exception
+ {
+
+ initializeGUI();
+ }
+ public void initializeGUI() throws Exception
+ {
+ Image local = getToolkit().getImage(FM2SQL.class.getResource("icons/fm.jpg"));
+ if (local != null)
+ ;
+ setIconImage(local);
+ bean = new DBBean();
+ destBean = new DBBean();
+ sourceURLBox = new JComboBox(new String[]
+ {"jdbc:fmpro:http://141.14.237.74:8050", "jdbc:fmpro:http://localhost", "jdbc:postgresql://foxridge/test", "jdbc:sequelink://r583-3:2399"});
+ sourceURLBox.setEditable(true);
+ sourceURLBox.setFont(new Font("Times New Roman", Font.PLAIN, 14));
+ destURLBox = new JComboBox(new String[]
+ {"jdbc:postgresql://foxridge/test", "jdbc:postgresql://erebos/test1"});
+ destURLBox.setEditable(true);
+ destURLBox.addActionListener(this);
+ destURLBox.setFont(new Font("Times New Roman", Font.PLAIN, 14));
+ table = new TableComponent();
+ //box = new JComboBox(tables);
+ // box.addActionListener(this);
+ // box2.addActionListener(this);
+ sourceURLBox.addActionListener(this);
+
+ contentPanel = new JPanel();
+ contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS));
+
+ sourceURLBox.setMinimumSize(new Dimension(450, 25));
+ sourceURLBox.setMaximumSize(new Dimension(550, 25));
+ sourceURLBox.setPreferredSize(new Dimension(450, 25));
+ destURLBox.setMinimumSize(new Dimension(450, 25));
+ destURLBox.setMaximumSize(new Dimension(550, 25));
+ destURLBox.setPreferredSize(new Dimension(450, 25));
+ paneDest = new JScrollPane(tListDest);
+ // tListDest.setPreferredSize(paneDest.getPreferredSize());
+ // paneDest.setPreferredSize(new Dimension(350, 365));
+ Dimension dim = paneDest.getPreferredSize();
+ paneDest.setMinimumSize(dim);
+ //paneDest.setMaximumSize(new Dimension(dim.width + 50, dim.height + 50));
+
+ tC = new TableComponent();
+ tC.sizeToFit(450, 250);
+ tC.tableModel.addTableModelListener(this);
+ JPanel destPanel = new JPanel();
+ destPanel.setLayout(new java.awt.GridBagLayout());
+
+ listPanel = new JPanel();
+ listPanel.setLayout(new java.awt.GridBagLayout());
+ java.awt.GridBagConstraints gbc = new java.awt.GridBagConstraints();
+ JScrollPane pane = new JScrollPane(tList);
+ tC.tableScroller.setPreferredSize(new Dimension(450, 365));
+ //tC.table.revalidate();
+ tC.tableScroller.setMinimumSize(new Dimension(450, 250));
+ // tC.tableScroller.setMaximumSize(tC.tableScroller.getPreferredSize());
+ topPanel = new JPanel();
+ topPanel.setLayout(new GridBagLayout());
+ topPanel2 = new JPanel();
+ topPanel2.setLayout(new GridBagLayout());
+
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ gbc.weightx = 0.1;
+ gbc.weighty = 0.1;
+ gbc.gridwidth = 1;
+ gbc.gridheight = 1;
+ gbc.insets = new Insets(2, 2, 5, 5);
+ gbc.ipadx = 1;
+ gbc.ipady = 1;
+
+ gbc.anchor = GridBagConstraints.WEST;
+ listPanel.add(topPanel, gbc);
+ destPanel.add(topPanel2, gbc);
+
+ topPanel.add(new JLabel("Choose src database: ", JLabel.CENTER), gbc);
+ topPanel2.add(new JLabel("Choose dest database : ", JLabel.CENTER), gbc);
+
+ gbc.anchor = GridBagConstraints.NORTHWEST;
+ gbc.gridy = 1;
+ topPanel.add(sourceURLBox, gbc);
+
+ topPanel2.add(destURLBox, gbc);
+
+ //gbc.gridx=GridBagConstraints.RELATIVE;
+ //dataBasePanel.add(new JLabel(" select Tables to Convert ", JLabel.LEFT));
+ gbc.gridy = 1;
+ gbc.anchor = GridBagConstraints.SOUTHWEST;
+
+ listPanel.add(new JLabel(" select Tables to Convert ", JLabel.LEFT), gbc);
+ destPanel.add(new JLabel(" Tables in database ", JLabel.LEFT), gbc);
+
+ // gbc.anchor = GridBagConstraints.WEST;
+ gbc.gridy = 2;
+ gbc.gridx = 0;
+ // gbc.weightx = 0.0;
+ //dataBasePanel.add(tC);
+ gbc.anchor = GridBagConstraints.NORTHWEST;
+ gbc.gridheight = 1;
+ gbc.fill = GridBagConstraints.BOTH;
+ listPanel.add(tC.tableScroller, gbc);
+ // gbc.fill = GridBagConstraints.VERTICAL;
+ destPanel.add(paneDest, gbc);
+ showTables1 = new JButton("show Tables");
+ showTables1.setActionCommand("show Tables source");
+ // gbc.anchor = GridBagConstraints.NORTH;
+ // gbc.weightx = 0.0;
+ gbc.fill = GridBagConstraints.NONE;
+ gbc.gridheight = 1;
+
+ gbc.gridx = 0;
+ gbc.gridy = 2;
+ // topPanel.add(showTables1, gbc);
+ JPanel buttonPanel = new JPanel();
+ buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS));
+ buttonPanel.setMinimumSize(new Dimension(380, 30));
+ convert = new JButton("Convert Tables");
+ showTables = new JButton("show Tables");
+ dropTables = new JButton("drop Tables");
+ // System.out.println(convert.getPreferredSize());
+ showTables.setMinimumSize(convert.getPreferredSize());
+ dropTables.setMinimumSize(convert.getPreferredSize());
+ showTables.setMaximumSize(convert.getPreferredSize());
+ dropTables.setMaximumSize(convert.getPreferredSize());
+ showTables.setPreferredSize(convert.getPreferredSize());
+ dropTables.setPreferredSize(convert.getPreferredSize());
+
+ showTables.addActionListener(fm);
+ showTables1.addActionListener(fm);
+
+ buttonPanel.add(showTables);
+ buttonPanel.add(convert);
+ convert.addActionListener(fm);
+ dropTables.addActionListener(fm);
+ buttonPanel.add(dropTables);
+
+ JPanel buttonPanelSrc = new JPanel();
+ buttonPanelSrc.setLayout(new BoxLayout(buttonPanelSrc, BoxLayout.X_AXIS));
+ buttonPanelSrc.setMinimumSize(new Dimension(200, 30));
+ buttonPanelSrc.add(showTables1);
+
+ topPanel.add(buttonPanelSrc, gbc);
+ topPanel2.add(buttonPanel, gbc);
+
+ // gbc.anchor = GridBagConstraints.WEST;
+ // gbc.gridy = 1;
+ // gbc.gridx = 2;
+ // gbc.weightx = 0.2;
+
+ // gbc.gridx = 3;
+ // gbc.anchor = GridBagConstraints.NORTHWEST;
+ // gbc.gridy = 1;
+ // gbc.weightx = 1.0;
+ //listPanel.add(buttonPanel, gbc);
+ JSplitPane splitter = new JSplitPane();
+ splitter.setTopComponent(listPanel);
+ splitter.setBottomComponent(destPanel);
+
+ // contentPanel.add(dataBasePanel);
+ // contentPanel.add(listPanel);
+ listPanel.setMaximumSize(new Dimension(660, 750));
+ listPanel.setMinimumSize(new Dimension(660, 250));
+ listPanel.setPreferredSize(new Dimension(480, 500));
+ paneDest.setPreferredSize(new Dimension(250, 285));
+
+ getContentPane().add(splitter, "Center");
+ this.addWindowListener(new WindowAdapter()
+ {
+ public void windowClosing(WindowEvent e)
+ {
+ bean.closeAllConnections();
+ destBean.closeAllConnections();
+ System.exit(0);
+ }
+ });
+ addComponentListener(new ComponentAdapter()
+ {
+ public void componentResized(ComponentEvent e)
+ {
+
+ if (oldWidth != getWidth() || oldHeight != getHeight())
+ {
+ //table.sizeToFit(getWidth(), getHeight());
+
+ Dimension dim = table.table.getPreferredSize();
+ int size = contentPanel.getPreferredSize().height + new JScrollBar().getPreferredSize().height + new JMenuBar().getPreferredSize().height + 10;
+
+ table.tableScroller.setPreferredSize(new Dimension(getWidth() - 15, getHeight() - size));
+ Dimension d2 = table.tableScroller.getPreferredSize();
+
+ oldWidth = getWidth();
+ oldHeight = getHeight();
+
+ table.setPreferredSize(new Dimension(d2.width + 15, d2.height + 5));
+ table.table.revalidate();
+ table.tableScroller.revalidate();
+ table.revalidate();
+ if (getHeight() > table.table.getPreferredSize().height + (2 * size))
+ setSize(getWidth(), table.table.getPreferredSize().height + 2 * size);
+ // System.out.println("size" + size);
+ }
+ // listPanel.setMaximumSize(new Dimension(getPreferredSize().width - 5,
+ // 550));
+ // listPanel.setMinimumSize(new Dimension(getPreferredSize().width - 5,
+ // 200));
+ // listPanel.setPreferredSize(new Dimension(getPreferredSize().width -
+ // 5, 370));
+ tC.tableScroller.revalidate();
+ Dimension dim = getSize();
+ tC.tableScroller.setMinimumSize(new Dimension(dim.width - 400, dim.height - topPanel.getPreferredSize().height - 100));
+ tC.tableScroller.setMaximumSize(getSize());
+ tC.tableScroller.setPreferredSize(tC.tableScroller.getMinimumSize());
+
+ paneDest.setMinimumSize(new Dimension(400, dim.height - topPanel2.getPreferredSize().height - 100));
+ paneDest.setMaximumSize(tC.tableScroller.getMaximumSize());
+ paneDest.setPreferredSize(new Dimension(400, dim.height - topPanel2.getPreferredSize().height - 100));
+
+ paneDest.validate();
+ // tC.tableScroller.setPreferredSize(getSize());
+ // @TODO new sizeToFit method for listPanel table!!!
+ tC.sizeToFit(getWidth(), getHeight());
+ ((JPanel) getContentPane()).revalidate();
+ repaint();
+ setTitle("Filemaker 2 SQL Conversion Tool ");
+
+ }
+ });
+
+ setMenu();
+ //setSize(800, 600);
+ pack();
+ setLocation((screenSize.width - getWidth()) / 2, (screenSize.height - getHeight()) / 2);
+ //setVisible(true);
+ validate();
+
+ // repaint();
+
+ }
+
+ /**
+ *
+ */
+ public static void main(String[] args)
+ {
+ try
+ {
+ System.setErr(System.out);
+ // Properties prop = System.getProperties();
+ // Enumeration enum= prop.keys();
+ // while(enum.hasMoreElements())
+ //System.out.println(enum.nextElement());
+
+ if (System.getProperty("os.name").startsWith("W"))
+ // javax.swing.UIManager.setLookAndFeel(
+ // new com.sun.java.swing.plaf.windows.WindowsLookAndFeel());
+ javax.swing.UIManager.put("Table.focusCellHighlightBorder", new javax.swing.border.LineBorder(java.awt.Color.black));
+ javax.swing.UIManager.put("Table.focusCellBackground", new java.awt.Color(227, 227, 227, 127));
+
+ fmInstance = new FM2SQL();
+ fmInstance.table.tableModel.addTableModelListener(fmInstance);
+ fmInstance.setVisible(true);
+ /*
+ * if (!new File("./html").exists()) new File("./html").mkdirs(); logFile =
+ * new FileWriter("./html/index.html"); openLog();
+ */
+ }
+ catch (Exception e)
+ {
+ JOptionPane pane = new JOptionPane(e.getMessage() + " \n URL: " + url, JOptionPane.ERROR_MESSAGE);
+
+ JDialog dialog = pane.createDialog(null, " Exception occured while connecting");
+ e.printStackTrace();
+ dialog.addWindowListener(new WindowAdapter()
+ {
+ public void windowClosing(WindowEvent e)
+ {
+ System.exit(0);
+ }
+ });
+ dialog.addComponentListener(new ComponentAdapter()
+ {
+
+ public void componentHidden(ComponentEvent e)
+ {
+
+ System.exit(0);
+ }
+ });
+ dialog.show();
+ }
+ }
+ public void actionPerformed(ActionEvent e)
+ {
+ String command = e.getActionCommand();
+ if (debug)
+ System.out.println("command " + command);
+ if (command == "comboBoxEdited")
+ {
+ Object src = e.getSource();
+ if (src == sourceURLBox)
+ {
+ if (debug)
+ System.out.println("hey" + sourceURLBox.getSelectedItem());
+ Object insObj = sourceURLBox.getSelectedItem();
+ ((DefaultComboBoxModel) sourceURLBox.getModel()).removeElement(insObj);
+
+ ((DefaultComboBoxModel) sourceURLBox.getModel()).insertElementAt(insObj, 0);
+ sourceURLBox.setSelectedItem(insObj);
+ }
+ else if (src == destURLBox)
+ {
+ if (debug)
+ System.out.println("hey" + destURLBox.getSelectedItem());
+ //((DefaultComboBoxModel)
+ // box4.getModel()).insertElementAt(box4.getSelectedItem(), 0);
+ try
+ {
+ String selected = (String) destURLBox.getSelectedItem();
+ destBean.setConnection(selected);
+ Vector catalogs = destBean.getCatalogs();
+ Vector urls = new Vector();
+ for (int i = 0; i < catalogs.size(); ++i)
+ {
+ urls.add(destBean.url.substring(0, destBean.url.lastIndexOf("/") + 1) + catalogs.get(i));
+ }
+ destURLBox.setModel(new DefaultComboBoxModel(urls));
+ destURLBox.setSelectedItem(selected);
+ }
+ catch (Exception e5)
+ {
+ }
+ }
+ }
+ if (command == "comboBoxChanged")
+ {
+ try
+ {
+ //System.out.println("hallo " + (e.getSource() == box3));
+
+ Object src = e.getSource();
+ if (src == sourceURLBox && !noUserUpdate)
+ {
+ Thread thread = new Thread()
+ {
+ public void run()
+ {
+
+ try
+ {
+ PasswordDialog dialog = new PasswordDialog(fmInstance, bean);
+ dialog.setLocationRelativeTo(sourceURLBox);
+ dialog.thread = Thread.currentThread();
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ fmInstance.setEnabled(false);
+ dialog.setVisible(true);
+ String url = sourceURLBox.getSelectedItem().toString();
+ bean.url = (url != null) ? url : bean.url;
+ bean.connection = null;
+ bean.getConnection();
+ tables = bean.getTableNames();
+ fillTable();
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
fmInstance.setEnabled(true);
- // System.out.println("hallo" + tables + " ");
- } catch (Exception e5)
- {
- ByteArrayOutputStream b = new ByteArrayOutputStream();
- PrintStream stream = new PrintStream(b);
- e5.printStackTrace(stream);
- fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ // System.out.println("hallo" + tables + " ");
+ }
+ catch (Exception e5)
+ {
+ ByteArrayOutputStream b = new ByteArrayOutputStream();
+ PrintStream stream = new PrintStream(b);
+ e5.printStackTrace(stream);
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
fmInstance.setEnabled(true);
- Vector header = new Vector();
- header.add("no database");
- header.add("connection");
- Vector rows = new Vector();
- //rows.add(header);
- noDBUpdate=true;
- tC.tableModel.setDataVector(rows, header);
- tC.tableModel.setRowCount(20);
- tC.revalidate();
- tC.tableModel.fireTableDataChanged();
- noDBUpdate=false;
- showErrorDialog(b.toString(), "Error occured !");
- }
- }
- };
- thread.start();
- } else if (src == destURLBox&&!noUserUpdate)
- {
- Thread thread = new Thread()
- {
- public void run()
- {
-
- try
- {
-
- PasswordDialog dialog = new PasswordDialog(fmInstance, destBean);
- dialog.setLocationRelativeTo(destURLBox);
- dialog.thread = Thread.currentThread();
- fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ Vector header = new Vector();
+ header.add("no database");
+ header.add("connection");
+ Vector rows = new Vector();
+ //rows.add(header);
+ noDBUpdate = true;
+ tC.tableModel.setDataVector(rows, header);
+ tC.tableModel.setRowCount(20);
+ tC.revalidate();
+ tC.tableModel.fireTableDataChanged();
+ noDBUpdate = false;
+ showErrorDialog(b.toString(), "Error occured !");
+ }
+ }
+ };
+ thread.start();
+ }
+ else if (src == destURLBox && !noUserUpdate)
+ {
+ Thread thread = new Thread()
+ {
+ public void run()
+ {
+
+ try
+ {
+
+ PasswordDialog dialog = new PasswordDialog(fmInstance, destBean);
+ dialog.setLocationRelativeTo(destURLBox);
+ dialog.thread = Thread.currentThread();
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
fmInstance.setEnabled(false);
- dialog.setVisible(true);
- destBean.setConnection((String) destURLBox.getSelectedItem());
- DefaultListModel model = new DefaultListModel();
- Vector tables = destBean.getTableNames();
- for (int j = 0; j < tables.size(); ++j)
- model.addElement(tables.get(j));
- // System.out.println("hallo" + tables + " ");
- tListDest.setModel(model);
- // System.out.println("hallo" + tables + " ");
- fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ dialog.setVisible(true);
+ destBean.setConnection((String) destURLBox.getSelectedItem());
+ DefaultListModel model = new DefaultListModel();
+ Vector tables = destBean.getTableNames();
+ for (int j = 0; j < tables.size(); ++j)
+ model.addElement(tables.get(j));
+ // System.out.println("hallo" + tables + " ");
+ tListDest.setModel(model);
+ // System.out.println("hallo" + tables + " ");
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
fmInstance.setEnabled(true);
- } catch (Exception e5)
- {
- ByteArrayOutputStream b = new ByteArrayOutputStream();
- PrintStream stream = new PrintStream(b);
- e5.printStackTrace(stream);
+ }
+ catch (Exception e5)
+ {
+ ByteArrayOutputStream b = new ByteArrayOutputStream();
+ PrintStream stream = new PrintStream(b);
+ e5.printStackTrace(stream);
fmInstance.setEnabled(true);
- fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
- DefaultListModel model = new DefaultListModel();
- model.addElement("no database connection");
- tListDest.setModel(model);
-
- showErrorDialog(b.toString(), "Error occured !");
- }
- }
- };
- thread.start();
-
- }
- setTitle("Filemaker 2 SQL Conversion Tool ");
- // pack();
-
- } catch (Exception e4)
- {
- ByteArrayOutputStream b = new ByteArrayOutputStream();
- PrintStream stream = new PrintStream(b);
- e4.printStackTrace(stream);
- showErrorDialog(b.toString(), "Open of table failed");
-
- }
- }
- if (command == "show Driver features")
- {
- ResultWindow result = new ResultWindow(this);
- try
- {
- Vector[] vecs = bean.TestDB(bean.getConnection().getMetaData());
- result.updateResult(vecs[0], vecs[1]);
- // result.pack();
- result.title = "Database features";
- result.setVisible(true);
- String name = result.writeResult();
- } catch (Exception e2)
- {
- }
- }
- if (command.equals("Delimiter"))
- {
- new DelimiterDialog(fmInstance).setVisible(true);
- //delimiter = JOptionPane.showInputDialog(fmInstance,"Enter delimiter String",delimiter);
-
- }
-
- if (command == "Convert Mode")
- {
- System.out.println("Convert Mode selected");
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ DefaultListModel model = new DefaultListModel();
+ model.addElement("no database connection");
+ tListDest.setModel(model);
+
+ showErrorDialog(b.toString(), "Error occured !");
+ }
+ }
+ };
+ thread.start();
+
+ }
+ setTitle("Filemaker 2 SQL Conversion Tool ");
+ // pack();
+
+ }
+ catch (Exception e4)
+ {
+ ByteArrayOutputStream b = new ByteArrayOutputStream();
+ PrintStream stream = new PrintStream(b);
+ e4.printStackTrace(stream);
+ showErrorDialog(b.toString(), "Open of table failed");
+
+ }
+ }
+ if (command == "show Driver features")
+ {
+ ResultWindow result = new ResultWindow(this);
+ try
+ {
+ Vector[] vecs = bean.TestDB(bean.getConnection().getMetaData());
+ result.updateResult(vecs[0], vecs[1]);
+ // result.pack();
+ result.title = "Database features";
+ result.setVisible(true);
+ String name = result.writeResult();
+ }
+ catch (Exception e2)
+ {
+ }
+ }
+ if (command.equals("Delimiter"))
+ {
+ new DelimiterDialog(fmInstance).setVisible(true);
+ //delimiter = JOptionPane.showInputDialog(fmInstance,"Enter delimiter
+ // String",delimiter);
+
+ }
+
+ if (command == "Convert Mode")
+ {
+ System.out.println("Convert Mode selected");
convert.setText("Convert Tables");
convert.setActionCommand("Convert Tables");
- convert.setToolTipText("Normal table conversion existing table will be deleted");
- mode = Convert.DataBase.CONVERT_MODE;
- }
- if (command == "Append Mode")
- {
- System.out.println("Append Mode selected");
+ convert.setToolTipText("Normal table conversion existing table will be deleted");
+ mode = Convert.DataBase.CONVERT_MODE;
+ }
+ if (command == "Append Mode")
+ {
+ System.out.println("Append Mode selected");
convert.setText("Append Tables");
convert.setActionCommand("Append Tables");
- convert.setToolTipText("Appends data to an existing table");
+ convert.setToolTipText("Appends data to an existing table");
- mode = Convert.DataBase.APPEND_MODE;
- }
- if (command == "Update Mode")
- {
- System.out.println("Update Mode selected");
+ mode = Convert.DataBase.APPEND_MODE;
+ }
+ if (command == "Update Mode")
+ {
+ System.out.println("Update Mode selected");
convert.setText("Update Tables");
convert.setActionCommand("Update Tables");
- convert.setToolTipText("Updates data that has been changed in source");
- 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
- if (command.equals("save XML Config"))
- {
- if (configExportFileChooser == null)
- {
- configExportFileChooser = new JFileChooser();
- configExportFileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
- configExportFileChooser.setFileFilter(new XMLFilter());
- configExportFileChooser.setDialogType(JFileChooser.SAVE_DIALOG);
- configExportFileChooser.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e2)
- {
- System.out.println(e2.getActionCommand());
- if (!e2.getActionCommand().toString().equals("ApproveSelection"))
- return;
-
- Thread thread = new Thread()
- {
- public void run()
- {
- File configFile = configExportFileChooser.getSelectedFile();
- writeConfig(configFile.toString());
-
- }
- };
- thread.start();
-
- }
- });
- }
- configExportFileChooser.rescanCurrentDirectory();
- configExportFileChooser.showDialog(fmInstance, " Save ");
-
- }
- if (command.equals("open XML Config"))
- {
- if (configImportFileChooser == null)
- {
- configImportFileChooser = new JFileChooser();
- configImportFileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
- configImportFileChooser.setFileFilter(new XMLFilter());
- configImportFileChooser.setDialogType(JFileChooser.OPEN_DIALOG);
- configImportFileChooser.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e2)
- {
- System.out.println(e2.getActionCommand());
- if (!e2.getActionCommand().toString().equals("ApproveSelection"))
- return;
-
- Thread thread = new Thread()
- {
- public void run()
- {
- File configFile = configImportFileChooser.getSelectedFile();
- readXMLConfig(configFile.toString());
-
- }
- };
- thread.start();
-
- }
- });
- }
- configImportFileChooser.rescanCurrentDirectory();
- configImportFileChooser.showDialog(fmInstance, " Open ");
-
- }
-
-
- if (command.equals("Convert Tables")||command.equals("Append Tables"))
- {
-
- Thread thread = new Thread()
- {
- public void run()
- {
- setEnabled(false);
- convert();
- setEnabled(true);
- }
-
- };
- thread.start();
- }
+ convert.setToolTipText("Updates data that has been changed in source");
+ 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;
+ }
+ if (command == "Synchronize Mode")
+ {
+ System.out.println("Synchronize Mode selected");
+ convert.setText("Synchronize Tables");
+ convert.setActionCommand("Synchronize Tables");
+ convert.setToolTipText("Synchronize data with destination table");
+ mode = Convert.DataBase.SYNCHRONIZE_MODE;
+ }
+
+ if (command.equals("use NormanToUnicodeMapper"))
+ {
+ if (bean != null)
+ bean.setUseNormanToUnicodeMapper(useNormanToUnicodeMapper.isSelected());
+ }
+ //writing config
+ if (command.equals("save XML Config"))
+ {
+ if (configExportFileChooser == null)
+ {
+ configExportFileChooser = new JFileChooser();
+ configExportFileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
+ configExportFileChooser.setFileFilter(new XMLFilter());
+ configExportFileChooser.setDialogType(JFileChooser.SAVE_DIALOG);
+ configExportFileChooser.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e2)
+ {
+ System.out.println(e2.getActionCommand());
+ if (!e2.getActionCommand().toString().equals("ApproveSelection"))
+ return;
+
+ Thread thread = new Thread()
+ {
+ public void run()
+ {
+ File configFile = configExportFileChooser.getSelectedFile();
+ writeConfig(configFile.toString());
+
+ }
+ };
+ thread.start();
+
+ }
+ });
+ }
+ configExportFileChooser.rescanCurrentDirectory();
+ configExportFileChooser.showDialog(fmInstance, " Save ");
+
+ }
+ if (command.equals("open XML Config"))
+ {
+ if (configImportFileChooser == null)
+ {
+ configImportFileChooser = new JFileChooser();
+ configImportFileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
+ configImportFileChooser.setFileFilter(new XMLFilter());
+ configImportFileChooser.setDialogType(JFileChooser.OPEN_DIALOG);
+ configImportFileChooser.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e2)
+ {
+ System.out.println(e2.getActionCommand());
+ if (!e2.getActionCommand().toString().equals("ApproveSelection"))
+ return;
+
+ Thread thread = new Thread()
+ {
+ public void run()
+ {
+ File configFile = configImportFileChooser.getSelectedFile();
+ readXMLConfig(configFile.toString());
+
+ }
+ };
+ thread.start();
+
+ }
+ });
+ }
+ configImportFileChooser.rescanCurrentDirectory();
+ configImportFileChooser.showDialog(fmInstance, " Open ");
+
+ }
+
+ if (command.equals("Convert Tables") || command.equals("Append Tables"))
+ {
+
+ Thread thread = new Thread()
+ {
+ public void run()
+ {
+ setEnabled(false);
+ convert();
+ setEnabled(true);
+ }
+
+ };
+ thread.start();
+ }
if (command.equals("Update Tables"))
- {
+ {
+
+ Thread thread = new Thread()
+ {
+ public void run()
+ {
+ setEnabled(false);
+ update();
+ setEnabled(true);
+ }
+
+ };
+ thread.start();
+ }
+ if (command.equals("Delete Tables"))
+ {
+
+ Thread thread = new Thread()
+ {
+ public void run()
+ {
+ setEnabled(false);
+ delete();
+ setEnabled(true);
+ }
+
+ };
+ thread.start();
+ }
+ if (command.equals("Synchronize Tables"))
+ {
+
+ Thread thread = new Thread()
+ {
+ public void run()
+ {
+ setEnabled(false);
+ synchronize();
+ setEnabled(true);
+ }
+
+ };
+ thread.start();
+ }
- Thread thread = new Thread()
- {
- public void run()
- {
- setEnabled(false);
- update();
- setEnabled(true);
- }
-
- };
- thread.start();
- }
- if (command.equals("Delete Tables"))
- {
-
- Thread thread = new Thread()
- {
- public void run()
- {
- setEnabled(false);
- delete();
- setEnabled(true);
- }
-
- };
- thread.start();
- }
-
- if (command.equals("show Tables"))
- {
- Thread thread = new Thread()
- {
- public void run()
- {
+ if (command.equals("show Tables"))
+ {
+ Thread thread = new Thread()
+ {
+ public void run()
+ {
fmInstance.setEnabled(false);
- boolean visible = showTable(1);
- window.validate();
- window.setVisible(visible);
+ boolean visible = showTable(1);
+ window.validate();
+ window.setVisible(visible);
fmInstance.setEnabled(true);
- }
- };
- thread.start();
- // System.out.println("hello");
-
- }
- if (command.equals("show Tables source"))
- {
- Thread thread = new Thread()
- {
- public void run()
- {
+ }
+ };
+ thread.start();
+ // System.out.println("hello");
+
+ }
+ if (command.equals("show Tables source"))
+ {
+ Thread thread = new Thread()
+ {
+ public void run()
+ {
fmInstance.setEnabled(false);
- boolean visible = showTable(0);
- window.validate();
- window.setVisible(visible);
+ boolean visible = showTable(0);
+ window.validate();
+ window.setVisible(visible);
fmInstance.setEnabled(true);
- }
- };
- thread.start();
- // System.out.println("hello"+thread);
-
- }
-
- if (command.equals("drop Tables"))
- {
- Thread thread = new Thread()
- {
- public void run()
- {
- dropTable();
- }
- };
- thread.start();
- }
- if(command.equals("Quit"))
- {
- fmInstance.dispose();
- System.exit(0);
-
- }
-
- }
+ }
+ };
+ thread.start();
+ // System.out.println("hello"+thread);
+
+ }
+
+ if (command.equals("drop Tables"))
+ {
+ Thread thread = new Thread()
+ {
+ public void run()
+ {
+ dropTable();
+ }
+ };
+ thread.start();
+ }
+ if (command.equals("Quit"))
+ {
+ bean.closeAllConnections();
+ destBean.closeAllConnections();
+ fmInstance.dispose();
+ System.exit(0);
+
+ }
+
+ }
+ /**
+ *
+ */
+ protected void synchronize()
+ {
+ 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);
+ // TODO indexList vector weiter reichen
+ Convert.synchronize(bean.url, destURLBox.getSelectedItem().toString(), vectors[0], vectors[1], vectors[2], vectors[3], vectors[4], mode, delimiter, new Vector());
+
+ 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(), "Synchronize of table failed");
+ fmInstance.setEnabled(true);
+ }
+
+ }
+ /**
+ * 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);
+ }
+
+ }
+ public void delete()
+ {
+ 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.delete(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(), "Delete of table failed");
+ fmInstance.setEnabled(true);
+ }
+
+ }
+
+ /**
+ * Copys the content of source to destination and makes new table if necessary
+ */
+ public void convert()
+ {
+
+ 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.convert(bean.url, destURLBox.getSelectedItem().toString(), vectors[0], vectors[1], vectors[2], vectors[3], vectors[4], mode, delimiter);
+ 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(), "Conversion of table failed");
+ fmInstance.setEnabled(true);
+ }
+ }
+ public void writeConfig(String file)
+ {
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ fmInstance.setEnabled(false);
+
+ Vector vectors[] = getListFromTable();
+ 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;
+ else if (deleteItem.isSelected())
+ mode = Convert.DataBase.DELETE_MODE;
+ else if (synchronizeItem.isSelected())
+ mode = Convert.DataBase.SYNCHRONIZE_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);
+ source.delimiter = delimiter;
+ source.useNormanToUnicodeMapper = useNormanToUnicodeMapper.isSelected();
+ try
+ {
+ Convert.writeConfig(file, source, destination);
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ fmInstance.setEnabled(true);
+
+ }
+ catch (Exception e)
+ {
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ fmInstance.setEnabled(true);
+
+ ByteArrayOutputStream b = new ByteArrayOutputStream();
+ PrintStream stream = new PrintStream(b);
+ e.printStackTrace(stream);
+ showErrorDialog(b.toString(), "Error while writing xml config !");
+ }
+
+ }
+ public void readXMLConfig(String file)
+ {
+
+ try
+ {
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ fmInstance.setEnabled(false);
+ Vector databases = Convert.getXMLConfig(file);
+ Convert.DataBase destBase = (Convert.DataBase) databases.lastElement();
+ //destBase.bean.getConnection();
+ noUserUpdate = true;
+ destBean = destBase.bean;
+ Object destObj = destBean.url;
+ ((DefaultComboBoxModel) destURLBox.getModel()).removeElement(destObj);
+ ((DefaultComboBoxModel) destURLBox.getModel()).insertElementAt(destObj, 0);
+ destURLBox.setSelectedItem(destObj);
+ databases.remove(destBase);
+ for (Iterator iter = databases.iterator(); iter.hasNext();)
+ {
+ Convert.DataBase database = (Convert.DataBase) iter.next();
+
+ if (database.mode == Convert.DataBase.CONVERT_MODE)
+ {
+ convertItem.doClick();
+ }
+ else if (database.mode == Convert.DataBase.APPEND_MODE)
+ {
+ appendItem.doClick();
+ }
+ else if (database.mode == Convert.DataBase.UPDATE_MODE)
+ {
+ updateItem.doClick();
+ }
+ else if (database.mode == Convert.DataBase.DELETE_MODE)
+ {
+ deleteItem.doClick();
+ }
+ else if (database.mode == Convert.DataBase.SYNCHRONIZE_MODE)
+ {
+ synchronizeItem.doClick();
+ }
+
+ delimiter = database.delimiter;
+ database.bean.getConnection();
+
+ bean = database.bean;
+ if (bean.isUseNormanToUnicodeMapper())
+ useNormanToUnicodeMapper.setSelected(true);
+ Object obj = bean.url;
+ ((DefaultComboBoxModel) sourceURLBox.getModel()).removeElement(obj);
+ ((DefaultComboBoxModel) sourceURLBox.getModel()).insertElementAt(obj, 0);
+ sourceURLBox.setSelectedItem(obj);
+ fillTable();
+ Vector tables = database.bean.getTableNames();
+ Collections.sort(tables, String.CASE_INSENSITIVE_ORDER);
+ int[] indices = new int[database.tables.size()];
+ for (int i = 0; i < database.tables.size(); ++i)
+ {
+ String table = (String) database.tables.get(i);
+ 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.");
+ noDBUpdate = true;
+ tC.tableModel.setValueAt(new TableComponent.SQLCommand(database.selects.get(i).toString()), index, SELECT_INDEX);
+
+ String create = database.creates.get(i).toString();
+ 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,ID_INDEX);
+
+ Object comboBox = tC.tableModel.getValueAt(index, LAYOUT_INDEX);
+ Object idcomboBox = tC.tableModel.getValueAt(index, ID_INDEX);
+
+ indices[i] = index;
+ if (comboBox != null)
+ {
+ String layout = database.layouts.get(i).toString();
+ ((JComboBox) comboBox).setSelectedItem(layout);
+ if (layout != "")
+ {
+ 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) idcomboBox).setModel(new DefaultComboBoxModel(idVec));
+ }
+
+ }
+ if (idcomboBox != null)
+ ((JComboBox) idcomboBox).setSelectedItem(bean.ids.get(i));
+ tC.tableModel.fireTableDataChanged();
+ noDBUpdate = false;
+ noUserUpdate = false;
+
+ }
+ // add Selections
+ ListSelectionModel lm = tC.table.getSelectionModel();
+ for (int i = 0; i < indices.length; ++i)
+ {
+ lm.addSelectionInterval(indices[i], indices[i]);
+ tC.tableModel.setValueAt(Boolean.TRUE, indices[i], STATUS_INDEX);
+ }
+ destBean.getConnection();
+
+ DefaultListModel model = new DefaultListModel();
+ tables = destBean.getTableNames();
+ for (int j = 0; j < tables.size(); ++j)
+ model.addElement(tables.get(j));
+ // System.out.println("hallo" + tables + " ");
+ tListDest.setModel(model);
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ fmInstance.setEnabled(true);
+
+ }
+
+ }
+ catch (Exception e)
+ {
+ noUserUpdate = false;
+ noDBUpdate = false;
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ fmInstance.setEnabled(true);
+
+ ByteArrayOutputStream b = new ByteArrayOutputStream();
+ PrintStream stream = new PrintStream(b);
+ e.printStackTrace(stream);
+ showErrorDialog(b.toString(), "Error while reading xml config !");
+ }
+
+ }
+ public boolean showTable(int list)
+ {
+ ProgressDialog dialog = new ProgressDialog(fm, bean);
+ dialog.setTitle("Preparing tables to be displayed");
+ dialog.thread = Thread.currentThread();
+ dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ String query = new String();
+ Object[] objs = tListDest.getSelectedValues();
+ Vector[] vectors = (list == 0) ? getListFromTable() : null;
+ Vector tables = (list == 0) ? vectors[0] : new Vector();
+ if (list > 0)
+ for (int i = 0; i < objs.length; ++i)
+ {
+ if (debug)
+ System.out.println(objs[i]);
+ tables.add(objs[i]);
+ }
+ if (window != null)
+ window.dispose();
+ if (windowDest != null)
+ windowDest.dispose();
+
+ window = new MultiResultWindow(fm);
+ if (list > 0)
+ {
+ windowDest = new MultiResultWindow(fm);
+ window = windowDest;
+ }
+ dialog.setLocation(FM2SQL.fmInstance.getLocationOnScreen().x + (FM2SQL.fmInstance.getWidth() - 500) / 2, FM2SQL.fmInstance.getLocationOnScreen().y + (FM2SQL.fmInstance.getHeight() - 250) / 2);
+ dialog.setSize(500, 250);
+ if (!tables.isEmpty())
+ dialog.show();
+ dialog.title.setText("Preparing tables to be diplayed");
+ for (int i = 0; i < tables.size(); ++i)
+ {
+ dialog.table.setText("Getting table " + tables.get(i));
+ dialog.status.setText("Table " + (i + 1) + " of " + tables.size());
+
+ if (list == 0)
+ query = "select * from " + bean.getQC() + tables.get(i).toString() + bean.getQC();
+ else
+ query = "select * from " + destBean.getQC() + tables.get(i).toString() + destBean.getQC();
+ if (list == 0)
+ query = vectors[2].get(i).toString();
+ if (list == 0 && vectors[1].get(i) != null)
+ if (vectors[1].get(i).toString() != "")
+ {
+ String layout = " layout " + bean.getQC() + vectors[1].get(i).toString() + bean.getQC();
+ String name = tables.get(i).toString();
+ StringBuffer queryLayout = new StringBuffer(query);
+ queryLayout.insert(queryLayout.indexOf(name) + name.length() + 1, " " + layout);
+ query = queryLayout.toString();
+ }
+ if (debug)
+ showErrorDialog("query in show tables is " + query, "Hello");
+ window.title = " Table ;-) " + (String) tables.get(i);
+ // break;
+ // } else
+ // window.title = "Error! - No valid tablename found";
+
+ try
+ {
+ if ((query.toLowerCase().indexOf("insert") >= 0) || (query.toLowerCase().indexOf("delete") >= 0) || (query.toLowerCase().indexOf("alter") >= 0) || (query.toLowerCase().indexOf("update") >= 0))
+ {
+ Statement stm = (list > 0) ? destBean.getConnection().createStatement() : bean.getConnection().createStatement();
+ stm.executeUpdate(query);
+ Vector vec = new Vector();
+ Vector vec2 = new Vector();
+ Vector vec3 = new Vector();
+ vec2.add(query);
+ vec3.add(vec2);
+ vec.add("Insert, update, etc done! No results available");
+ // vec.add("no Results were produced");
+
+ window.updateResult(vec3, vec);
+ //window.pack();
+ // window.setVisible(true);
+
+ }
+ else
+ {
+ Vector[] vecs = (list > 0) ? destBean.getQueryData(query, dialog, 50) : bean.getQueryData(query, dialog, 50);
+ if (vecs[1].isEmpty())
+ throw new Exception("Wrong columnname or Empty Layout");
+ window.updateResult(vecs[0], vecs[1]);
+
+ //window.pack();
+ //String name = window.writeResult();
+ //appendLog(window.title, name);
+ }
+
+ //window.setVisible(true);
+
+ }
+ catch (Exception e)
+ {
+ System.out.println("Exception occured");
+ e.printStackTrace();
+ Vector vec = new Vector();
+ Vector vec2 = new Vector();
+ Vector vec3 = new Vector();
+ vec2.add(e.getMessage());
+ vec3.add(vec2);
+ vec.add("Exception occured! No results available");
+ //vec.add("no Results were produced");
+
+ window.updateResult(vec3, vec);
+ //window.pack();
+ // window.setVisible(true);
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+
+ }
+ } // to for
+ window.pack();
+ window.setSize(700, 600);
+
+ window.oldTabCount = 10000;
+ dialog.dispose();
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+
+ return !tables.isEmpty();
+
+ }
+
+ public void dropTable()
+ {
+ String query = new String();
+ Object[] objs = tListDest.getSelectedValues();
+ Vector tables = new Vector();
+ for (int i = 0; i < objs.length; ++i)
+ {
+ System.out.println(objs[i]);
+ tables.add(objs[i]);
+ }
+
+ for (int i = 0; i < tables.size(); ++i)
+ {
+
+ query = "drop table " + destBean.getQC() + tables.get(i) + destBean.getQC();
+
+ try
+ {
+ Statement stm = destBean.getConnection().createStatement();
+ stm.executeUpdate(query);
+ }
+ catch (Exception e)
+ {
+ ByteArrayOutputStream b = new ByteArrayOutputStream();
+ PrintStream stream = new PrintStream(b);
+ e.printStackTrace(stream);
+ showErrorDialog(b.toString(), "Open of table failed");
+
+ }
+ } // to for
+ try
+ {
+ 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));
+ System.out.println("hallo" + tables + " ");
+ tListDest.setModel(model);
+ }
+ catch (Exception e4)
+ {
+ }
+
+ }
/**
- * Updates the content of source to destination and makes new table if necessary
+ * invoked then the user changes the table or the tableModel changes
*/
+ public void tableChanged(TableModelEvent e)
+ {
+ // if (e.getType() == e.INSERT)
+ //System.out.println("Insert done");
+ // if (e.getType() == e.UPDATE)
+ // System.out.println("Update done");
+ //if (e.getType() == e.DELETE)
+ // System.out.println("Delete done");
+ if (e.getType() == TableModelEvent.UPDATE && !noDBUpdate)
+ {
+ int row = e.getFirstRow(), col = e.getColumn();
+ System.out.println("Got in " + row + " " + col);
+ TableModel model = (TableModel) e.getSource();
+ String columnName = model.getColumnName(col);
+ Object test = model.getValueAt(row, col);
+ String idVal = (test == null) ? "" : test.toString();
+ String value = (test == null) ? "" : test.toString();
+ ;
+
+ System.out.println("Got in " + columnName + " " + idVal);
+ try
+ {
+ if (columnName.equals("select") || columnName.equals("Layouts"))
+ {
+ String table = model.getValueAt(row, NAME_INDEX).toString();
+ String layout = (model.getValueAt(row, LAYOUT_INDEX) != null) ? ((JComboBox) model.getValueAt(row, LAYOUT_INDEX)).getSelectedItem().toString() : "";
+ String query = model.getValueAt(row, SELECT_INDEX).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);
+ if (!create.equals(""))
+ {
+ Object[] options =
+ {"Yes", "No"};
+ int option = showDialog("Create Statement not empty! Do you want to overwrite?", "create statement", options);
+ if (option == 0)
+ 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);
+
+ tC.tableModel.fireTableCellUpdated(row, ID_INDEX);
+ }
- 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);
- }
-
- }
- public void delete()
- {
- 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.delete(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(), "Delete of table failed");
- fmInstance.setEnabled(true);
- }
-
- }
-
- /**
- * Copys the content of source to destination and makes new table if necessary
- */
- public void convert()
- {
-
- 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.convert(bean.url, destURLBox.getSelectedItem().toString(), vectors[0], vectors[1],vectors[2],vectors[3],vectors[4],mode,delimiter);
- 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(), "Conversion of table failed");
- fmInstance.setEnabled(true);
- }
- }
- public void writeConfig(String file)
- {
- fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- fmInstance.setEnabled(false);
-
- Vector vectors[] = getListFromTable();
- 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;
- else
- if(deleteItem.isSelected()) mode = Convert.DataBase.DELETE_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);
- source.delimiter =delimiter;
- try
- {
- Convert.writeConfig(file,source,destination);
- fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
- fmInstance.setEnabled(true);
-
- } catch (Exception e)
- {
- fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
- fmInstance.setEnabled(true);
-
- ByteArrayOutputStream b = new ByteArrayOutputStream();
- PrintStream stream = new PrintStream(b);
- e.printStackTrace(stream);
- showErrorDialog(b.toString(), "Error while writing xml config !");
- }
-
- }
- public void readXMLConfig(String file)
- {
-
- try
- {
- fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- fmInstance.setEnabled(false);
- Vector databases = Convert.getXMLConfig(file);
- Convert.DataBase destBase = (Convert.DataBase) databases.lastElement();
- //destBase.bean.getConnection();
- noUserUpdate = true;
- destBean=destBase.bean;
- Object destObj =destBean.url;
- ((DefaultComboBoxModel) destURLBox.getModel()).removeElement(destObj);
- ((DefaultComboBoxModel) destURLBox.getModel()).insertElementAt(destObj,0);
- destURLBox.setSelectedItem(destObj);
- databases.remove(destBase);
- for (Iterator iter = databases.iterator(); iter.hasNext();)
- {
- Convert.DataBase database = (Convert.DataBase) iter.next();
-
- if (database.mode == Convert.DataBase.CONVERT_MODE)
- {
- convertItem.doClick();
- } else if (database.mode == Convert.DataBase.APPEND_MODE)
- {
- appendItem.doClick();
- } else if (database.mode == Convert.DataBase.UPDATE_MODE)
- {
- updateItem.doClick();
- } else if (database.mode == Convert.DataBase.DELETE_MODE)
- {
- deleteItem.doClick();
- }
- delimiter=database.delimiter;
- database.bean.getConnection();
-
- bean = database.bean;
- Object obj =bean.url;
- ((DefaultComboBoxModel) sourceURLBox.getModel()).removeElement(obj);
- ((DefaultComboBoxModel) sourceURLBox.getModel()).insertElementAt(obj,0);
- sourceURLBox.setSelectedItem(obj);
- fillTable();
- Vector tables=database.bean.getTableNames();
- Collections.sort(tables,String.CASE_INSENSITIVE_ORDER);
- int[] indices = new int[database.tables.size()];
- for (int i =0;i 0)
- for (int i = 0; i < objs.length; ++i)
- {
- if (debug)
- System.out.println(objs[i]);
- tables.add(objs[i]);
- }
- if (window != null)
- window.dispose();
- if (windowDest != null)
- windowDest.dispose();
-
- window = new MultiResultWindow(fm);
- if (list > 0)
- {
- windowDest = new MultiResultWindow(fm);
- window = windowDest;
- }
- dialog.setLocation(FM2SQL.fmInstance.getLocationOnScreen().x + (FM2SQL.fmInstance.getWidth() - 500) / 2, FM2SQL.fmInstance.getLocationOnScreen().y + (FM2SQL.fmInstance.getHeight() - 250) / 2);
- dialog.setSize(500, 250);
- if (!tables.isEmpty())
- dialog.show();
- dialog.title.setText("Preparing tables to be diplayed");
- for (int i = 0; i < tables.size(); ++i)
- {
- dialog.table.setText("Getting table " + tables.get(i));
- dialog.status.setText("Table " + (i + 1) + " of " + tables.size());
-
- if(list==0)
- query = "select * from " + bean.getQC() +tables.get(i).toString() + bean.getQC();
- else
- query = "select * from " + destBean.getQC() +tables.get(i).toString() + destBean.getQC();
- if(list==0) query = vectors[2].get(i).toString();
- if (list == 0 && vectors[1].get(i) != null)
- if (vectors[1].get(i).toString() != "")
- {
- String layout =" layout " + bean.getQC() + vectors[1].get(i).toString() + bean.getQC();
- String name = tables.get(i).toString();
- StringBuffer queryLayout=new StringBuffer(query);
- queryLayout.insert(queryLayout.indexOf(name)+name.length()+1," "+layout);
- query=queryLayout.toString();
- }
- if(debug)
- showErrorDialog("query in show tables is "+query,"Hello");
- window.title = " Table ;-) " + (String) tables.get(i);
- // break;
- // } else
- // window.title = "Error! - No valid tablename found";
-
- try
- {
- if ((query.toLowerCase().indexOf("insert") >= 0)
- || (query.toLowerCase().indexOf("delete") >= 0)
- || (query.toLowerCase().indexOf("alter") >= 0)
- || (query.toLowerCase().indexOf("update") >= 0))
- {
- Statement stm = (list > 0) ? destBean.getConnection().createStatement() : bean.getConnection().createStatement();
- stm.executeUpdate(query);
- Vector vec = new Vector();
- Vector vec2 = new Vector();
- Vector vec3 = new Vector();
- vec2.add(query);
- vec3.add(vec2);
- vec.add("Insert, update, etc done! No results available");
- // vec.add("no Results were produced");
-
- window.updateResult(vec3, vec);
- //window.pack();
- // window.setVisible(true);
-
- } else
- {
- Vector[] vecs = (list > 0) ? destBean.getQueryData(query, dialog, 50) : bean.getQueryData(query, dialog, 50);
- if (vecs[1].isEmpty())
- throw new Exception("Wrong columnname or Empty Layout");
- window.updateResult(vecs[0], vecs[1]);
-
- //window.pack();
- //String name = window.writeResult();
- //appendLog(window.title, name);
- }
-
- //window.setVisible(true);
-
- } catch (Exception e)
- {
- System.out.println("Exception occured");
- e.printStackTrace();
- Vector vec = new Vector();
- Vector vec2 = new Vector();
- Vector vec3 = new Vector();
- vec2.add(e.getMessage());
- vec3.add(vec2);
- vec.add("Exception occured! No results available");
- //vec.add("no Results were produced");
-
- window.updateResult(vec3, vec);
- //window.pack();
- // window.setVisible(true);
- fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
-
- }
- } // to for
- window.pack();
- window.setSize(700, 600);
-
- window.oldTabCount = 10000;
- dialog.dispose();
- fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
-
- return !tables.isEmpty();
-
- }
-
- public void dropTable()
- {
- String query = new String();
- Object[] objs = tListDest.getSelectedValues();
- Vector tables = new Vector();
- for (int i = 0; i < objs.length; ++i)
- {
- System.out.println(objs[i]);
- tables.add(objs[i]);
- }
-
- for (int i = 0; i < tables.size(); ++i)
- {
-
- query = "drop table "+destBean.getQC() + tables.get(i) + destBean.getQC();
-
- try
- {
- Statement stm = destBean.getConnection().createStatement();
- stm.executeUpdate(query);
- } catch (Exception e)
- {
- ByteArrayOutputStream b = new ByteArrayOutputStream();
- PrintStream stream = new PrintStream(b);
- e.printStackTrace(stream);
- showErrorDialog(b.toString(), "Open of table failed");
-
- }
- } // to for
- try
- {
- 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));
- System.out.println("hallo" + tables + " ");
- tListDest.setModel(model);
- } catch (Exception e4)
- {
- }
-
- }
- /**
- * invoked then the user changes the table or the tableModel changes
- */
- public void tableChanged(TableModelEvent e)
- {
- // if (e.getType() == e.INSERT)
- //System.out.println("Insert done");
- // if (e.getType() == e.UPDATE)
- // System.out.println("Update done");
- //if (e.getType() == e.DELETE)
- // System.out.println("Delete done");
- if (e.getType() == e.UPDATE && !noDBUpdate)
- {
- int row = e.getFirstRow(), col = e.getColumn();
- System.out.println("Got in " + row + " " + col );
- TableModel model = (TableModel)e.getSource();
- String columnName = model.getColumnName(col);
- Object test = model.getValueAt(row, col);
- String idVal = (test == null) ? "" : test.toString();
- String value = (test == null) ? "" : test.toString();;
-
- System.out.println("Got in " + columnName +" "+idVal);
- try
- {
- if(columnName.equals("select")||columnName.equals("Layouts"))
- {
- String table = model.getValueAt(row,NAME_INDEX).toString();
- String layout = (model.getValueAt(row,LAYOUT_INDEX)!=null) ?((JComboBox)model.getValueAt(row,LAYOUT_INDEX)).getSelectedItem().toString():"";
- String query = model.getValueAt(row,SELECT_INDEX).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);
- if(!create.equals(""))
- {
- Object[] options = { "Yes","No"};
- int option=showDialog("Create Statement not empty! Do you want to overwrite?","create statement",options );
- if(option==0)
- 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);
-
- tC.tableModel.fireTableCellUpdated(row,ID_INDEX);
- }
-
- }
-/* Statement stm = bean.getConnection().createStatement();
- // stm.executeUpdate("DELETE FROM \""+fm.tables.get(0)+"\" WHERE \"erstellt von\"='rogo') ");
-
- if (idVal == "")
- stm.executeUpdate("INSERT INTO " + DBBean.quoteChar + box.getSelectedItem() + DBBean.quoteChar + " (" + DBBean.quoteChar + columnName + DBBean.quoteChar + ") VALUES ('" + value + "') ");
- else
- stm.executeUpdate(
- "UPDATE " + DBBean.quoteChar + box.getSelectedItem() + DBBean.quoteChar + " SET " + DBBean.quoteChar + columnName + DBBean.quoteChar + "='" + value + "' WHERE ID='" + idVal + "' ");
- */
- } catch (Exception e2)
- {
- fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
- ByteArrayOutputStream b = new ByteArrayOutputStream();
- PrintStream stream = new PrintStream(b);
- e2.printStackTrace(stream);
- showErrorDialog(b.toString(), "Error while updating table !");
- }
- }
- }
-
- /**
- * initialize the menubar
- */
- private void setMenu()
- {
- JMenuBar menubar = new JMenuBar();
- JMenu menu = new JMenu("File");
- menu.setMnemonic('F');
- JMenuItem item = new JMenuItem("open XML Config");
+ }
+ /*
+ * Statement stm = bean.getConnection().createStatement(); //
+ * stm.executeUpdate("DELETE FROM \""+fm.tables.get(0)+"\" WHERE
+ * \"erstellt von\"='rogo') ");
+ *
+ * if (idVal == "") stm.executeUpdate("INSERT INTO " + DBBean.quoteChar +
+ * box.getSelectedItem() + DBBean.quoteChar + " (" + DBBean.quoteChar +
+ * columnName + DBBean.quoteChar + ") VALUES ('" + value + "') "); else
+ * stm.executeUpdate( "UPDATE " + DBBean.quoteChar +
+ * box.getSelectedItem() + DBBean.quoteChar + " SET " + DBBean.quoteChar +
+ * columnName + DBBean.quoteChar + "='" + value + "' WHERE ID='" + idVal + "'
+ * ");
+ */
+ }
+ catch (Exception e2)
+ {
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ ByteArrayOutputStream b = new ByteArrayOutputStream();
+ PrintStream stream = new PrintStream(b);
+ e2.printStackTrace(stream);
+ showErrorDialog(b.toString(), "Error while updating table !");
+ }
+ }
+ }
+
+ /**
+ * initialize the menubar
+ */
+ private void setMenu()
+ {
+ JMenuBar menubar = new JMenuBar();
+ JMenu menu = new JMenu("File");
+ 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("save XML Config");
+ item.setMnemonic('i');
+ item.setAccelerator(KeyStroke.getKeyStroke('O', InputEvent.CTRL_DOWN_MASK));
+
+ item.addActionListener(fm);
+ menu.add(item);
+ 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.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');
-
- ButtonGroup bgrp = new ButtonGroup();
- convertItem = new JCheckBoxMenuItem("Convert Mode");
+ 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');
+
+ 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);
-
+
+ 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);
+ menu.add(appendItem);
+ menubar.add(menu);
updateItem = new JCheckBoxMenuItem("Update Mode");
updateItem.setToolTipText("Updates data in an existing table");
@@ -1389,167 +1507,181 @@ public class FM2SQL extends JFrame imple
bgrp.add(updateItem);
menu.add(updateItem);
- deleteItem = new JCheckBoxMenuItem("Delete Mode");
- deleteItem.setToolTipText("Deletes data in an existing table \n that has been deleted in source table");
- deleteItem.addActionListener(fm);
+ 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);
+ synchronizeItem = new JCheckBoxMenuItem("Synchronize Mode");
+ synchronizeItem.setToolTipText("Synchronizes data with an existing table \n Data wich has been added or removed will be deleted or addded to the destination table. The rest will be updated");
+ synchronizeItem.addActionListener(fm);
+
+ bgrp.add(synchronizeItem);
+
+ menu.add(synchronizeItem);
+ useNormanToUnicodeMapper = new JCheckBoxMenuItem("use NormanToUnicodeMapper");
+ useNormanToUnicodeMapper.setToolTipText("maps characters in norman encoding to unicode characters");
+ useNormanToUnicodeMapper.addActionListener(fm);
+ menu.add(useNormanToUnicodeMapper);
- bgrp.add(deleteItem);
+ menubar.add(menu);
+ item = new JMenuItem("show Driver features");
+ item.setToolTipText("shows the features of the selected driver");
+ item.addActionListener(fm);
+ 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);
- menu.add(deleteItem);
+ // item.addActionListener(fm);
+ // menu.add(item);
menubar.add(menu);
- item = new JMenuItem("show Driver features");
- item.setToolTipText("shows the features of the selected driver");
- item.addActionListener(fm);
- 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);
-
- menu.setBackground(fm.getBackground());
- menubar.setBackground(fm.getBackground());
- convertItem.doClick();
- setJMenuBar(menubar);
- }
- /**
- * open the log file (index.html)
- */
-
- public static void openLog() throws Exception
- {
-
- StringBuffer buff = new StringBuffer();
- buff.append("");
- buff.append("");
- buff.append("\n");
- buff.append("FileMaker Test");
- buff.append("\n");
- buff.append("\n");
-
- buff.append("\n");
- buff.append("\n");
- buff.append("\n");
- buff.append("FileMaker Test");
- buff.append("
\n");
-
- logFile.write(TableComponent.convertUml(buff).toString());
- logFile.flush();
- }
- /**
- * Append one entry to the log file(index.html)
- */
- public static void appendLog(String entry, String name) throws Exception
- {
- logFile.write("");
- logFile.write(entry + "");
- logFile.write("
\n
\n");
- logFile.flush();
- }
- /**
- * closes the log file invoked then the application closes
- */
- public static void closeLog() throws Exception
- {
- logFile.write("\n");
- logFile.write("\n");
-
- logFile.close();
- }
- public static void showErrorDialog(String message, String title)
- {
- JDialog dialog = new JDialog(fmInstance);
- dialog.setTitle(title);
- JTextArea text = new JTextArea();
- JScrollPane scroller = new JScrollPane(text);
- dialog.getContentPane().add(scroller);
- text.append(message);
- dialog.setSize(600, 300);
- dialog.setLocationRelativeTo(fmInstance);
- dialog.show();
- //JOptionPane.showMessageDialog(null, message, title, JOptionPane.ERROR_MESSAGE);
- }
- public static class ProgressDialog extends JDialog
- {
- JLabel table = new JLabel(" ");
- JLabel status = new JLabel(" ");
- JLabel title = new JLabel(" ");
- JPanel content = new JPanel();
- JPanel titlePanel = new JPanel();
- JPanel labelPanel = new JPanel();
- JPanel statusPanel = new JPanel();
- JPanel buttonPanel = new JPanel();
-
- JProgressBar progress = new JProgressBar();
- JButton cancel = new JButton("Cancel");
- Thread thread;
- DBBean bean;
- public ProgressDialog(JFrame frame,DBBean bean)
- {
- super(frame);
- this.bean = bean;
-
- content = new JPanel(true);
- //content.setBorder(BorderFactory.createRaisedBevelBorder());
- content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS));
- title = new JLabel("Progress of conversion");
- title.setHorizontalTextPosition(title.CENTER);
- titlePanel.add(title);
- buttonPanel.add(cancel);
- // content.add(titlePanel);
- content.add(Box.createRigidArea(new java.awt.Dimension(0, 15)));
- content.add(labelPanel);
- content.add(new JLabel(""));
- content.add(progress);
- content.add(statusPanel);
- content.add(buttonPanel);
- content.add(Box.createRigidArea(new java.awt.Dimension(0, 15)));
- labelPanel.add(table);
- statusPanel.add(status);
- getContentPane().add(titlePanel, "North");
- getContentPane().add(content, "Center");
- this.addWindowListener(new WindowAdapter()
- {
- public void windowClosing(WindowEvent e)
- {
- cancel.doClick();
- }
- });
-
- cancel.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+
+ menu.setBackground(fm.getBackground());
+ menubar.setBackground(fm.getBackground());
+ convertItem.doClick();
+ setJMenuBar(menubar);
+ }
+ /**
+ * open the log file (index.html)
+ */
+
+ public static void openLog() throws Exception
+ {
+
+ StringBuffer buff = new StringBuffer();
+ buff.append("");
+ buff.append("");
+ buff.append("\n");
+ buff.append("FileMaker Test");
+ buff.append("\n");
+ buff.append("\n");
+
+ buff.append("\n");
+ buff.append("\n");
+ buff.append("\n");
+ buff.append("FileMaker Test");
+ buff.append("
\n");
+
+ logFile.write(TableComponent.convertUml(buff).toString());
+ logFile.flush();
+ }
+ /**
+ * Append one entry to the log file(index.html)
+ */
+ public static void appendLog(String entry, String name) throws Exception
+ {
+ logFile.write("");
+ logFile.write(entry + "");
+ logFile.write("
\n
\n");
+ logFile.flush();
+ }
+ /**
+ * closes the log file invoked then the application closes
+ */
+ public static void closeLog() throws Exception
+ {
+ logFile.write("\n");
+ logFile.write("\n");
+
+ logFile.close();
+ }
+ public static void showErrorDialog(String message, String title)
+ {
+ JDialog dialog = new JDialog(fmInstance);
+ dialog.setTitle(title);
+ JTextArea text = new JTextArea();
+ JScrollPane scroller = new JScrollPane(text);
+ dialog.getContentPane().add(scroller);
+ text.append(message);
+ dialog.setSize(600, 300);
+ dialog.setLocationRelativeTo(fmInstance);
+ dialog.show();
+ //JOptionPane.showMessageDialog(null, message, title,
+ // JOptionPane.ERROR_MESSAGE);
+ }
+ public static class ProgressDialog extends JDialog
+ {
+ JLabel table = new JLabel(" ");
+ JLabel status = new JLabel(" ");
+ JLabel title = new JLabel(" ");
+ JPanel content = new JPanel();
+ JPanel titlePanel = new JPanel();
+ JPanel labelPanel = new JPanel();
+ JPanel statusPanel = new JPanel();
+ JPanel buttonPanel = new JPanel();
+
+ JProgressBar progress = new JProgressBar();
+ JButton cancel = new JButton("Cancel");
+ Thread thread;
+ DBBean bean;
+ public ProgressDialog(JFrame frame, DBBean bean)
+ {
+ super(frame);
+ this.bean = bean;
+
+ content = new JPanel(true);
+ //content.setBorder(BorderFactory.createRaisedBevelBorder());
+ content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS));
+ title = new JLabel("Progress of conversion");
+ title.setHorizontalTextPosition(SwingConstants.CENTER);
+ titlePanel.add(title);
+ buttonPanel.add(cancel);
+ // content.add(titlePanel);
+ content.add(Box.createRigidArea(new java.awt.Dimension(0, 15)));
+ content.add(labelPanel);
+ content.add(new JLabel(""));
+ content.add(progress);
+ content.add(statusPanel);
+ content.add(buttonPanel);
+ content.add(Box.createRigidArea(new java.awt.Dimension(0, 15)));
+ labelPanel.add(table);
+ statusPanel.add(status);
+ getContentPane().add(titlePanel, "North");
+ getContentPane().add(content, "Center");
+ this.addWindowListener(new WindowAdapter()
+ {
+ public void windowClosing(WindowEvent e)
+ {
+ cancel.doClick();
+ }
+ });
+
+ cancel.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
fmInstance.setEnabled(true);
- setVisible(false);
- try
- {
- ProgressDialog.this.bean.getConnection().close();
- } catch (SQLException e1)
- {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (Exception e1)
- {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- thread.stop();
- }
- });
- pack();
+ setVisible(false);
+ try
+ {
+ ProgressDialog.this.bean.getConnection().close();
+ }
+ catch (SQLException e1)
+ {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ catch (Exception e1)
+ {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ thread.stop();
+ }
+ });
+ pack();
- }
+ }
- }
+ }
public static class DelimiterDialog extends JDialog
{
JLabel table = new JLabel(" ");
@@ -1560,7 +1692,7 @@ public class FM2SQL extends JFrame imple
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;
@@ -1575,7 +1707,7 @@ public class FM2SQL extends JFrame imple
{
public void actionPerformed(ActionEvent e)
{
- fmInstance.delimiter=parseDelimiter(delimiter.getText());
+ fmInstance.delimiter = parseDelimiter(delimiter.getText());
setVisible(false);
}
@@ -1592,21 +1724,21 @@ public class FM2SQL extends JFrame imple
delimiter.addActionListener(al);
content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS));
title = new JLabel("Enter Delimiter ");
- title.setHorizontalTextPosition(title.CENTER);
+ title.setHorizontalTextPosition(SwingConstants.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(titlePanel, "North");
getContentPane().add(content, "Center");
ok.addActionListener(al);
cancel.addActionListener(new ActionListener()
@@ -1616,316 +1748,327 @@ public class FM2SQL extends JFrame imple
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
fmInstance.setEnabled(true);
setVisible(false);
- // thread.stop();
+ // thread.stop();
}
});
pack();
- setLocationRelativeTo(fmInstance);
+ setLocationRelativeTo(fmInstance);
}
- public String parseDelimiter(Object o)
- {
- String str = o.toString();
- StringBuffer sbuff = new StringBuffer();
- int length = str.length();
- for(int i = 0;i