--- FM2SQL/Attic/FM2SQL.java 2003/12/05 11:46:39 1.1 +++ FM2SQL/Attic/FM2SQL.java 2003/12/10 12:24:41 1.2 @@ -67,7 +67,8 @@ public class FM2SQL extends JFrame imple Vector tables = new Vector(); Vector layouts = new Vector(); JPanel listPanel; - JPanel topPanel, contentPanel; + JPanel topPanel,topPanel2, contentPanel; + JScrollPane paneDest; FM2SQL fm = this; boolean noDBUpdate = false; boolean noUserUpdate = false; @@ -102,6 +103,8 @@ public class FM2SQL extends JFrame imple */ public FM2SQL() throws Exception { + + initializeGUI();if(true)return; Image local = getToolkit().getImage(getClass().getResource("icons/fm.jpg")); if (local != null); setIconImage(local); @@ -140,7 +143,7 @@ public class FM2SQL extends JFrame imple tC.sizeToFit(450, 250); tC.tableModel.addTableModelListener(this); JPanel dataBasePanel = new JPanel(); - dataBasePanel.setLayout(new FlowLayout(FlowLayout.LEFT, 2, 2)); + dataBasePanel.setLayout(new BoxLayout(dataBasePanel,BoxLayout.LINE_AXIS)); dataBasePanel.add(Box.createRigidArea(new Dimension(10, 0))); dataBasePanel.add(new JLabel("Choose src database: ")); dataBasePanel.add(box3); @@ -278,6 +281,220 @@ public class FM2SQL extends JFrame imple // repaint(); } + public void initializeGUI() throws Exception + { + Image local = getToolkit().getImage(getClass().getResource("icons/fm.jpg")); + if (local != null); + setIconImage(local); + bean = new DBBean(); + destBean = new DBBean(); + box2 = new JComboBox(); + box3 = new JComboBox(new String[] { "jdbc:fmpro:http://141.14.237.74:8050", "jdbc:fmpro:http://localhost", "jdbc:postgresql://foxridge/test" }); + box3.setEditable(true); + box4 = new JComboBox(new String[] { "jdbc:postgresql://foxridge/test", "jdbc:postgresql://erebos/test1" }); + box4.setEditable(true); + box4.addActionListener(this); + table = new TableComponent(); + box = new JComboBox(tables); + box.addActionListener(this); + box2.addActionListener(this); + box3.addActionListener(this); + + contentPanel = new JPanel(); + contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS)); + + box3.setMinimumSize(new Dimension(450, 20)); + box3.setMaximumSize(new Dimension(550, 20)); + box3.setPreferredSize(new Dimension(450, 20)); + box4.setMinimumSize(new Dimension(450, 20)); + box4.setMaximumSize(new Dimension(550, 20)); + box4.setPreferredSize(new Dimension(450, 20)); + 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(box3, gbc); + + topPanel2.add(box4, 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(200, 20)); + 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); + + 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, dim.height - topPanel.getPreferredSize().height - 100)); + tC.tableScroller.setMaximumSize(getSize()); + paneDest.setMinimumSize(new Dimension(dim.width, dim.height - topPanel2.getPreferredSize().height - 100)); + paneDest.setMaximumSize(tC.tableScroller.getMaximumSize()); + paneDest.validate(); + // tC.tableScroller.setPreferredSize(getSize()); + 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(); + + } /** * @@ -468,7 +685,7 @@ public class FM2SQL extends JFrame imple thread.start(); } - setTitle("Filemaker To Postgres Conversion Tool "); + setTitle("Filemaker 2 SQL Conversion Tool "); // pack(); } catch (Exception e4) @@ -707,7 +924,6 @@ public class FM2SQL extends JFrame imple ((DefaultComboBoxModel) box4.getModel()).removeElement(destObj); ((DefaultComboBoxModel) box4.getModel()).insertElementAt(destObj,0); box4.setSelectedItem(destObj); - //@TODO comboBox action Events should do nothing on config file read+combox in table should be updated databases.remove(destBase); for (Iterator iter = databases.iterator(); iter.hasNext();) { @@ -731,6 +947,7 @@ public class FM2SQL extends JFrame imple String create =database.creates.get(i).toString(); tC.tableModel.setValueAt(new TableComponent.SQLCommand(create.equals("") ? create:" "+create),index,3); Object comboBox=tC.tableModel.getValueAt(index,1); + //@TODO load old selection Status if(comboBox!=null) ((JComboBox)comboBox).setSelectedItem(database.layouts.get(i)); tC.tableModel.fireTableDataChanged(); noDBUpdate = false;