// uniCenta oPOS - Touch Friendly Point Of Sale // Copyright (c) 2009-2016 uniCenta // https://unicenta.com // // This file is part of uniCenta oPOS // // uniCenta oPOS is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // uniCenta oPOS is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with uniCenta oPOS. If not, see . package com.unicenta.pos.transfer; import com.unicenta.basic.BasicException; import com.unicenta.data.gui.JMessageDialog; import com.unicenta.data.gui.MessageInf; import com.unicenta.data.loader.BatchSentence; import com.unicenta.data.loader.BatchSentenceResource; import com.unicenta.data.loader.Session; import com.unicenta.data.user.DirtyManager; import com.unicenta.pos.config.PanelConfig; import com.unicenta.pos.forms.*; import com.unicenta.pos.util.AltEncrypter; import com.unicenta.pos.util.DirectoryEvent; import lombok.extern.slf4j.Slf4j; import javax.swing.*; import java.awt.*; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; import java.sql.*; import java.util.ArrayList; import java.util.List; import java.util.Properties; import java.util.regex.Matcher; /** * @author JG uniCenta */ @Slf4j public final class Transfer extends JPanel implements JPanelView { private DirtyManager dirty = new DirtyManager(); private AppConfig config; private AppProperties m_props; private Properties m_propsdb = null; private List m_panelconfig; private Connection con_source; private Connection con_target; private String sDB_source; private String sDB_target; private Session session_source; private Session session_target; private ResultSet rs; private Statement stmt_source; private Statement stmt_target; private PreparedStatement pstmt; private String SQL; private String source_version; private String ticketsnum; private String ticketsnumRefund; private String ticketsnumPayment; private String targetCreate = ""; private String targetFKadd = ""; private String targetFKdrop = ""; ArrayList stringList = new ArrayList<>(); public String strOut = ""; // the db connection session private Session s; private Connection con; private Session session; private boolean m_bInTransaction; String db_url = null; String db_schema = null; String db_options = null; String db_user = null; String db_password = null; /** * Creates new form JPaneldbTransfer * * @param oApp */ public Transfer(AppView oApp) { this(oApp.getProperties()); } /** * @param props */ public Transfer(AppProperties props) { initComponents(); config = new AppConfig(props.getConfigFile()); m_props = props; m_panelconfig = new ArrayList<>(); config.load(); m_panelconfig.stream().forEach((c) -> { c.loadProperties(config); }); jtxtDbDriverLib.getDocument().addDocumentListener(dirty); jtxtDbDriver.getDocument().addDocumentListener(dirty); jtxtDbType.getDocument().addDocumentListener(dirty); txtDbPass.getDocument().addDocumentListener(dirty); txtDbUser.getDocument().addDocumentListener(dirty); txtOut.getDocument().addDocumentListener(dirty); jbtnDbDriverLib.addActionListener(new DirectoryEvent(jtxtDbDriverLib)); cbSource.addActionListener(dirty); cbSource.addItem("MySQL"); cbSource.addItem("PostgreSQL"); cbSource.addItem("Derby"); stringList.add("Transfer Ready..." + "\n"); txtOut.setText(stringList.get(0)); webPBar.setIndeterminate(true); webPBar.setStringPainted(true); webPBar.setString("Waiting..."); webPBar.setVisible(false); jTransferPanel.setVisible(false); jbtnTransfer.setEnabled(false); jbtnReset.setEnabled(true); } /** * @return */ @Override public JComponent getComponent() { return this; } /** * @return */ @Override public String getTitle() { return AppLocal.getIntString("Menu.Transfer"); } /** * @return */ public Boolean getSource() { String db_url2 = jtxtDbType.getText() + jtxtDbServerPort.getText() + jtxtDbName.getText() + jtxtDbParams.getText(); String db_user2 = txtDbUser.getText(); char[] pass = txtDbPass.getPassword(); String db_password2 = new String(pass); Properties connectionProps = new Properties(); connectionProps.put("user", db_user2); connectionProps.put("password", db_password2); try { Class.forName(jtxtDbDriver.getText()); ClassLoader cloader = new URLClassLoader( new URL[]{ new File(jtxtDbDriverLib.getText()).toURI().toURL() }); DriverManager.registerDriver( new DriverWrapper((Driver) Class.forName(jtxtDbDriver.getText(), true, cloader).newInstance())); con_source = (Connection) DriverManager.getConnection( db_url2, db_user2, db_password2); session_source = new Session(db_url2, db_user2, db_password2); sDB_source = con_source.getMetaData().getDatabaseProductName(); txtOut.append("Connected to Source OK" + "\n"); jbtnTransfer.setEnabled(true); return (true); } catch (ClassNotFoundException | MalformedURLException | InstantiationException | IllegalAccessException | SQLException e) { JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_DANGER, AppLocal.getIntString("database.UnableToConnect"), e)); return (false); } } /** * @return */ @SuppressWarnings("empty-statement") public Boolean createTargetDB() { // Transfer is into current MySQL database in unicentaopos.properties targetCreate = "/com/unicenta/pos/scripts/" + sDB_target + "-create-transfer.sql"; targetFKadd = "/com/unicenta/pos/scripts/MySQL-FKeys.sql"; targetFKdrop = "/com/unicenta/pos/scripts/MySQL-dropFKeys.sql"; if ("".equals(targetCreate)) { return (false); } try { BatchSentence bsentence = new BatchSentenceResource(session_target, targetCreate); bsentence = new BatchSentenceResource(session_target, targetFKdrop); bsentence.putParameter("APP_ID", Matcher.quoteReplacement(AppLocal.APP_ID)); bsentence.putParameter("APP_NAME", Matcher.quoteReplacement(AppLocal.APP_NAME)); bsentence.putParameter("APP_VERSION", Matcher.quoteReplacement(AppLocal.APP_VERSION)); java.util.List l = bsentence.list(); if (l.size() > 0) { JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_WARNING, AppLocal.getIntString("transfer.warning"), l.toArray(new Throwable[l.size()]))); } else { txtOut.append("Connected to Target OK" + "\n"); txtOut.revalidate(); txtOut.repaint(); } } catch (BasicException e) { JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_DANGER, AppLocal.getIntString("transfer.warningnodefault"), e)); session_source.close(); } finally { } return (true); } /** * @return */ public Boolean FKeys() { if ("".equals(targetFKadd)) { return (false); } try { txtOut.append("Adding Foreign Keys" + "\n"); webPBar.setString("Adding Keys..."); webPBar.setBgBottom(Color.MAGENTA); BatchSentence bsentence = new BatchSentenceResource(session_target, targetFKadd); java.util.List l = bsentence.list(); if (l.size() > 0) { JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_WARNING, AppLocal.getIntString("transfer.warning"), l.toArray(new Throwable[l.size()]))); txtOut.append("Foreign Key error" + "\n"); } else { txtOut.append("Foreign Keys completed" + "\n"); } } catch (BasicException e) { JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_DANGER, AppLocal.getIntString("database.ScriptNotFound"), e)); session_source.close(); } finally { } txtOut.revalidate(); txtOut.repaint(); return (true); } /** * @throws BasicException */ @Override public void activate() throws BasicException { /* * Repeating this block as Transfer can be run externally */ if ("true".equals(m_props.getProperty("db.multi"))) { ImageIcon icon = new ImageIcon("/com/unicenta/images/unicentaopos.png"); Object[] dbs = { "0 - " + m_props.getProperty("db.name"), "1 - " + m_props.getProperty("db1.name")}; Object s = (Object) JOptionPane.showInputDialog( null, AppLocal.getIntString("message.databasechoose"), "Selection", JOptionPane.OK_OPTION, icon, dbs, m_props.getProperty("db.name")); if (s.toString().startsWith("1")) { db_url = (m_props.getProperty("db1.URL")); db_schema = (m_props.getProperty("db1.schema")); db_options = (m_props.getProperty("db1.options")); db_user = (m_props.getProperty("db1.user")); db_password = (m_props.getProperty("db1.password")); if (db_user != null && db_password != null && db_password.startsWith("crypt:")) { AltEncrypter cypher = new AltEncrypter("cypherkey" + db_user); db_password = cypher.decrypt(db_password.substring(6)); } String url = db_url + db_schema + db_options; try { session_target = new Session(url, db_user, db_password); con_target = DriverManager.getConnection(url, db_user, db_password); sDB_target = con_target.getMetaData().getDatabaseProductName(); jlblSource.setText(con_target.getCatalog()); } catch (SQLException e) { JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_DANGER, AppLocal.getIntString("database.UnableToConnect"), e)); } } else { db_url = (m_props.getProperty("db.URL")); db_schema = (m_props.getProperty("db.schema")); db_options = (m_props.getProperty("db.options")); db_user = (m_props.getProperty("db.user")); db_password = (m_props.getProperty("db.password")); if (db_user != null && db_password != null && db_password.startsWith("crypt:")) { AltEncrypter cypher = new AltEncrypter("cypherkey" + db_user); db_password = cypher.decrypt(db_password.substring(6)); } String url = db_url + db_schema + db_options; try { session_target = new Session(url, db_user, db_password); con_target = DriverManager.getConnection(url, db_user, db_password); sDB_target = con_target.getMetaData().getDatabaseProductName(); jlblSource.setText(con_target.getCatalog()); } catch (SQLException e) { JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_DANGER, AppLocal.getIntString("database.UnableToConnect"), e)); } } } else { db_url = (m_props.getProperty("db.URL")); db_schema = (m_props.getProperty("db.schema")); db_options = (m_props.getProperty("db.options")); db_user = (m_props.getProperty("db.user")); db_password = (m_props.getProperty("db.password")); if (db_user != null && db_password != null && db_password.startsWith("crypt:")) { AltEncrypter cypher = new AltEncrypter("cypherkey" + db_user); db_password = cypher.decrypt(db_password.substring(6)); } String url = db_url + db_schema + db_options; try { session_target = new Session(url, db_user, db_password); con_target = DriverManager.getConnection(url, db_user, db_password); sDB_target = con_target.getMetaData().getDatabaseProductName(); jlblSource.setText(con_target.getCatalog()); } catch (SQLException e) { JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_DANGER, AppLocal.getIntString("database.UnableToConnect"), e)); } } } /** * @return */ @Override public boolean deactivate() { return (true); } /** * @throws java.sql.SQLException */ public void clearData() throws SQLException { Statement stmt = null; try { this.con_target.setAutoCommit(false); stmt = this.con_target.createStatement(); stmt.addBatch("DELETE FROM attributesetinstance;"); stmt.addBatch("DELETE FROM attributeinstance;"); stmt.addBatch("DELETE FROM attributevalue"); stmt.addBatch("DELETE FROM attributeuse"); stmt.addBatch("DELETE FROM attributeset"); stmt.addBatch("DELETE FROM attribute"); stmt.addBatch("DELETE FROM people;"); stmt.addBatch("DELETE FROM categories;"); stmt.addBatch("DELETE FROM taxcategories;"); stmt.addBatch("DELETE FROM taxcustcategories;"); stmt.addBatch("DELETE FROM taxes;"); stmt.addBatch("DELETE FROM locations;"); stmt.addBatch("DELETE FROM floors;"); stmt.addBatch("DELETE FROM places;"); stmt.addBatch("DELETE FROM shifts;"); stmt.addBatch("DELETE FROM breaks;"); stmt.addBatch("DELETE FROM shift_breaks;"); stmt.addBatch("DELETE FROM closedcash;"); stmt.addBatch("DELETE FROM csvimport;"); stmt.addBatch("DELETE FROM customers;"); stmt.addBatch("DELETE FROM draweropened;"); stmt.addBatch("DELETE FROM leaves;"); stmt.addBatch("DELETE FROM lineremoved;"); stmt.addBatch("DELETE FROM payments;"); stmt.addBatch("DELETE FROM products_cat;"); stmt.addBatch("DELETE FROM products_com;"); stmt.addBatch("DELETE FROM products;"); stmt.addBatch("DELETE FROM receipts;"); stmt.addBatch("DELETE FROM roles WHERE NOT ID = '0';"); stmt.addBatch("DELETE FROM stockcurrent;"); stmt.addBatch("DELETE FROM stockdiary;"); stmt.addBatch("DELETE FROM stocklevel;"); stmt.addBatch("DELETE FROM suppliers;"); stmt.addBatch("DELETE FROM uom;"); stmt.addBatch("DELETE FROM vouchers;"); stmt.addBatch("SET autocommit=0;"); stmt.addBatch("SET unique_checks=0;"); stmt.addBatch("SET foreign_key_checks=0;"); int[] updateCounts = stmt.executeBatch(); this.con_target.commit(); } catch (BatchUpdateException b) { } catch (SQLException ex) { } finally { if (stmt != null) { stmt.close(); } this.con_target.setAutoCommit(true); } } public void doTransfer() throws SQLException { webPBar.setString("Starting..."); webPBar.setVisible(true); String Dbtname = ""; Double Dbtversion = Double.parseDouble(jlblVersion.getText().substring(0, 3)); if (getSource()) { txtOut.setVisible(true); txtOut.append("Transfer Started..." + "\n"); if (createTargetDB()) { jbtnTransfer.setEnabled(false); try { stmt_source = (Statement) con_source.createStatement(); stmt_target = (Statement) con_target.createStatement(); clearData(); this.con_target.setAutoCommit(false); webPBar.setString("Running..."); Dbtname = "attribute"; ResultSet rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Attribute" + "\n"); SQL = "SELECT ID, NAME FROM attribute"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO attribute (" + "ID, NAME) " + "VALUES (?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("NAME")); pstmt.executeUpdate(); } rs.close(); Dbtname = "attributevalue"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Attributevalue" + "\n"); SQL = "SELECT ID, ATTRIBUTE_ID, VALUE FROM attributevalue"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO attributevalue (" + "ID, ATTRIBUTE_ID, VALUE) " + "VALUES (?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("ATTRIBUTE_ID")); pstmt.setString(3, rs.getString("VALUE")); pstmt.executeUpdate(); } rs.close(); Dbtname = "attributeinstance"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Attributeinstance" + "\n"); SQL = "SELECT ID, ATTRIBUTESETINSTANCE_ID, ATTRIBUTE_ID, VALUE FROM attributeinstance"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO attributeinstance (" + "ID, ATTRIBUTESETINSTANCE_ID, ATTRIBUTE_ID, VALUE) " + "VALUES (?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("ATTRIBUTESETINSTANCE_ID")); pstmt.setString(3, rs.getString("ATTRIBUTE_ID")); pstmt.setString(4, rs.getString("VALUE")); pstmt.executeUpdate(); } rs.close(); Dbtname = "attributesetinstance"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Attributesetinstance" + "\n"); SQL = "SELECT ID, ATTRIBUTESET_ID, DESCRIPTION FROM attributesetinstance"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO attributesetinstance (" + "ID, ATTRIBUTESET_ID, DESCRIPTION) " + "VALUES (?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("ATTRIBUTESET_ID")); pstmt.setString(3, rs.getString("DESCRIPTION")); pstmt.executeUpdate(); } rs.close(); Dbtname = "attributeuse"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Attributeuse" + "\n"); SQL = "SELECT ID, ATTRIBUTESET_ID, ATTRIBUTE_ID FROM attributeuse"; rs = stmt_source.executeQuery(SQL); // removed LINENO as weird bug in MySQL causes Lock Timeout // only happens to this table, no other affected while (rs.next()) { SQL = "INSERT INTO attributeuse(" + "ID, ATTRIBUTESET_ID, ATTRIBUTE_ID) " + "VALUES (?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("ATTRIBUTESET_ID")); pstmt.setString(3, rs.getString("ATTRIBUTE_ID")); pstmt.executeUpdate(); } rs.close(); Dbtname = "attributeset"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Attributeset" + "\n"); SQL = "SELECT ID, NAME FROM attributeset"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO attributeset (" + "ID, NAME) " + "VALUES (?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("NAME")); pstmt.executeUpdate(); } rs.close(); // introduced in 3.00 if (Dbtversion >= 3.00) { Dbtname = "breaks"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Breaks" + "\n"); SQL = "SELECT * FROM breaks"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO breaks(" + "ID, NAME, NOTES, VISIBLE) " + "VALUES (?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("NAME")); pstmt.setString(3, rs.getString("NOTES")); pstmt.setBoolean(4, rs.getBoolean("VISIBLE")); pstmt.executeUpdate(); } } else { txtOut.append("Breaks... skipped" + "\n"); } rs.close(); Dbtname = "categories"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Categories" + "\n"); SQL = "SELECT * FROM categories"; rs = stmt_source.executeQuery(SQL); if (rs.getMetaData().getColumnCount() == 6) { while (rs.next()) { SQL = "INSERT INTO categories(" + "ID, NAME, PARENTID, IMAGE, " + "TEXTTIP, CATSHOWNAME) " + "VALUES (?, ?, ?, ?, " + "?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("NAME")); pstmt.setString(3, rs.getString("PARENTID")); pstmt.setBytes(4, rs.getBytes("IMAGE")); pstmt.setString(5, rs.getString("TEXTTIP")); pstmt.setBoolean(6, rs.getBoolean("CATSHOWNAME")); pstmt.executeUpdate(); } } else { while (rs.next()) { SQL = "INSERT INTO categories(" + "ID, NAME, PARENTID, IMAGE) " + "VALUES (?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("NAME")); pstmt.setString(3, rs.getString("PARENTID")); pstmt.setBytes(4, rs.getBytes("IMAGE")); pstmt.executeUpdate(); } } rs.close(); Dbtname = "closedcash"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("ClosedCash" + "\n"); SQL = "DELETE FROM closedcash"; pstmt = con_target.prepareStatement(SQL); pstmt.executeUpdate(); SQL = "SELECT * FROM closedcash"; rs = stmt_source.executeQuery(SQL); if (rs.getMetaData().getColumnCount() == 6) { while (rs.next()) { SQL = "INSERT INTO closedcash(" + "MONEY, HOST, HOSTSEQUENCE, " + "DATESTART, DATEEND, NOSALES) " + "VALUES (?, ?, ?, " + "?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("MONEY")); pstmt.setString(2, rs.getString("HOST")); pstmt.setInt(3, rs.getInt("HOSTSEQUENCE")); pstmt.setTimestamp(4, rs.getTimestamp("DATESTART")); pstmt.setTimestamp(5, rs.getTimestamp("DATEEND")); pstmt.setInt(6, rs.getInt("NOSALES")); pstmt.executeUpdate(); } } else { while (rs.next()) { SQL = "INSERT INTO closedcash(" + "MONEY, HOST, HOSTSEQUENCE, " + "DATESTART, DATEEND) " + "VALUES (?, ?, ?, " + "?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("MONEY")); pstmt.setString(2, rs.getString("HOST")); pstmt.setInt(3, rs.getInt("HOSTSEQUENCE")); pstmt.setTimestamp(4, rs.getTimestamp("DATESTART")); pstmt.setTimestamp(5, rs.getTimestamp("DATEEND")); pstmt.executeUpdate(); } } rs.close(); Dbtname = "customers"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Customers" + "\n"); SQL = "SELECT * FROM customers"; rs = stmt_source.executeQuery(SQL); if (rs.getMetaData().getColumnCount() == 27) { while (rs.next()) { SQL = "INSERT INTO customers(" + "ID, SEARCHKEY, TAXID, NAME, TAXCATEGORY, " + "CARD, MAXDEBT,ADDRESS, ADDRESS2, POSTAL, " + "CITY, REGION, COUNTRY, FIRSTNAME, LASTNAME," + "EMAIL, PHONE, PHONE2, FAX, NOTES, " + "VISIBLE, CURDATE, CURDEBT, IMAGE, ISVIP, " + "DISCOUNT, MEMODATE)" + " VALUES (" + "?, ?, ?, ?, ?, " + "?, ?, ?, ?, ?, " + "?, ?, ?, ?, ?, " + "?, ?, ?, ?, ?, " + "?, ?, ?, ?, ?, " + "?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("SEARCHKEY")); pstmt.setString(3, rs.getString("TAXID")); pstmt.setString(4, rs.getString("NAME")); pstmt.setString(5, rs.getString("TAXCATEGORY")); pstmt.setString(6, rs.getString("CARD")); pstmt.setDouble(7, rs.getDouble("MAXDEBT")); pstmt.setString(8, rs.getString("ADDRESS")); pstmt.setString(9, rs.getString("ADDRESS2")); pstmt.setString(10, rs.getString("POSTAL")); pstmt.setString(11, rs.getString("CITY")); pstmt.setString(12, rs.getString("REGION")); pstmt.setString(13, rs.getString("COUNTRY")); pstmt.setString(14, rs.getString("FIRSTNAME")); pstmt.setString(15, rs.getString("LASTNAME")); pstmt.setString(16, rs.getString("EMAIL")); pstmt.setString(17, rs.getString("PHONE")); pstmt.setString(18, rs.getString("PHONE2")); pstmt.setString(19, rs.getString("FAX")); pstmt.setString(20, rs.getString("NOTES")); pstmt.setBoolean(21, rs.getBoolean("VISIBLE")); pstmt.setTimestamp(22, rs.getTimestamp("CURDATE")); pstmt.setDouble(23, rs.getDouble("CURDEBT")); pstmt.setBytes(24, rs.getBytes("IMAGE")); pstmt.setBoolean(25, rs.getBoolean("ISVIP")); pstmt.setDouble(26, rs.getDouble("DISCOUNT")); pstmt.setTimestamp(27, rs.getTimestamp("MEMODATE")); pstmt.executeUpdate(); } } else { while (rs.next()) { SQL = "INSERT INTO customers(" + "ID, SEARCHKEY, TAXID, NAME, " + "TAXCATEGORY, CARD, MAXDEBT," + "ADDRESS, ADDRESS2, POSTAL, CITY, " + "REGION, COUNTRY, FIRSTNAME, LASTNAME, " + "EMAIL, PHONE, PHONE2, FAX, " + "NOTES, VISIBLE, CURDATE, CURDEBT)" + " VALUES (" + "?, ?, ?, ?, " + "?, ?, ?, " + "?, ?, ?, ?, " + "?, ?, ?, ?, " + "?, ?, ?, ?, " + "?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("SEARCHKEY")); pstmt.setString(3, rs.getString("TAXID")); pstmt.setString(4, rs.getString("NAME")); pstmt.setString(5, rs.getString("TAXCATEGORY")); pstmt.setString(6, rs.getString("CARD")); pstmt.setDouble(7, rs.getDouble("MAXDEBT")); pstmt.setString(8, rs.getString("ADDRESS")); pstmt.setString(9, rs.getString("ADDRESS2")); pstmt.setString(10, rs.getString("POSTAL")); pstmt.setString(11, rs.getString("CITY")); pstmt.setString(12, rs.getString("REGION")); pstmt.setString(13, rs.getString("COUNTRY")); pstmt.setString(14, rs.getString("FIRSTNAME")); pstmt.setString(15, rs.getString("LASTNAME")); pstmt.setString(16, rs.getString("EMAIL")); pstmt.setString(17, rs.getString("PHONE")); pstmt.setString(18, rs.getString("PHONE2")); pstmt.setString(19, rs.getString("FAX")); pstmt.setString(20, rs.getString("NOTES")); pstmt.setBoolean(21, rs.getBoolean("VISIBLE")); pstmt.setTimestamp(22, rs.getTimestamp("CURDATE")); pstmt.setDouble(23, rs.getDouble("CURDEBT")); pstmt.executeUpdate(); } } rs.close(); // introduced 3.50 if (Dbtversion >= 3.50) { Dbtname = "draweropened"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("DrawerOpened" + "\n"); SQL = "SELECT * FROM draweropened"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO draweropened(" + "OPENDATE, NAME, TICKETID) " + "VALUES (?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("OPENDATE")); pstmt.setString(2, rs.getString("NAME")); pstmt.setString(3, rs.getString("TICKETID")); pstmt.executeUpdate(); } } Dbtname = "floors"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Floors" + "\n"); SQL = "SELECT * FROM floors"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO floors (" + "ID, NAME, IMAGE) " + "VALUES (?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("NAME")); pstmt.setBytes(3, rs.getBytes("IMAGE")); pstmt.executeUpdate(); } rs.close(); // introduced in 3.00 if (Dbtversion >= 3.00) { Dbtname = "leaves"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Leaves" + "\n"); SQL = "SELECT * FROM leaves"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO leaves (" + "ID, PPLID, NAME, STARTDATE, " + "ENDDATE, NOTES) " + "VALUES (?, ?, ?, ?, " + "?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("PPLID")); pstmt.setString(3, rs.getString("NAME")); pstmt.setTimestamp(4, rs.getTimestamp("STARTDATE")); pstmt.setTimestamp(5, rs.getTimestamp("ENDDATE")); pstmt.setString(6, rs.getString("NOTES")); pstmt.executeUpdate(); } } else { txtOut.append("Leaves... skipped" + "\n"); } rs.close(); // introduced in 3.70 if (Dbtversion >= 3.70) { Dbtname = "lineremoved"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("LineRemoved" + "\n"); SQL = "SELECT * FROM lineremoved"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO lineremoved (" + "REMOVEDDATE, NAME, TICKETID, " + "PRODUCTID, PRODUCTNAME, UNITS) " + "VALUES (?, ?, ?, " + "?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setTimestamp(1, rs.getTimestamp("REMOVEDDATE")); pstmt.setString(2, rs.getString("NAME")); pstmt.setString(3, rs.getString("TICKETID")); pstmt.setString(4, rs.getString("PRODUCTID")); pstmt.setString(5, rs.getString("PRODUCTNAME")); pstmt.setDouble(6, rs.getDouble("UNITS")); pstmt.executeUpdate(); } } else { txtOut.append("Line Removed... skipped" + "\n"); } rs.close(); Dbtname = "locations"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Locations" + "\n"); SQL = "SELECT * FROM locations"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO locations(" + "ID, NAME, ADDRESS) " + "VALUES (?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("NAME")); pstmt.setString(3, rs.getString("ADDRESS")); pstmt.executeUpdate(); } rs.close(); // moorers introduced in 3.50 if (Dbtversion >= 3.50) { Dbtname = "moorers"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Moorers" + "\n"); SQL = "SELECT * FROM moorers"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO moorers(" + "VESSELNAME, SIZE, DAYS, POWER) " + "VALUES (?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("VESSELNAME")); pstmt.setInt(2, rs.getInt("SIZE")); pstmt.setInt(3, rs.getInt("DAYS")); pstmt.setBoolean(4, rs.getBoolean("POWER")); pstmt.executeUpdate(); } } else { txtOut.append("Moorers... skipped" + "\n"); } rs.close(); Dbtname = "payments"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Payments" + "\n"); SQL = "SELECT * FROM payments"; rs = stmt_source.executeQuery(SQL); if (Dbtversion >= 3.02) { while (rs.next()) { SQL = "INSERT INTO payments(" + "ID, RECEIPT, PAYMENT, TOTAL, " + "TRANSID, RETURNMSG, NOTES, TENDERED) " + "VALUES (?, ?, ?, ?, " + "?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("RECEIPT")); pstmt.setString(3, rs.getString("PAYMENT")); pstmt.setDouble(4, rs.getDouble("TOTAL")); pstmt.setString(5, rs.getString("TRANSID")); pstmt.setBytes(6, rs.getBytes("RETURNMSG")); pstmt.setString(7, rs.getString("NOTES")); pstmt.setDouble(8, rs.getDouble("TENDERED")); pstmt.executeUpdate(); } } else { while (rs.next()) { SQL = "INSERT INTO payments(" + "ID, RECEIPT, PAYMENT, TOTAL, " + "TRANSID, RETURNMSG) " + "VALUES (?, ?, ?, ?, " + "?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("RECEIPT")); pstmt.setString(3, rs.getString("PAYMENT")); pstmt.setDouble(4, rs.getDouble("TOTAL")); pstmt.setString(5, rs.getString("TRANSID")); pstmt.setBytes(6, rs.getBytes("RETURNMSG")); pstmt.executeUpdate(); } } SQL = "UPDATE payments SET payment='ccard' WHERE payment='magcard'"; pstmt.execute(SQL); SQL = "UPDATE payments SET payment='ccardrefund' WHERE payment='magcardrefund'"; pstmt.execute(SQL); SQL = "UPDATE payments SET tendered = ROUND(total,2) WHERE tendered is null"; pstmt.execute(SQL); rs.close(); Dbtname = "people"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("People" + "\n"); SQL = "SELECT * FROM people"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO people(" + "ID, NAME, APPPASSWORD, CARD, " + "ROLE, VISIBLE, IMAGE) " + "VALUES (?, ?, ?, ?, " + "?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("NAME")); pstmt.setString(3, rs.getString("APPPASSWORD")); pstmt.setString(4, rs.getString("CARD")); pstmt.setString(5, rs.getString("ROLE")); pstmt.setBoolean(6, rs.getBoolean("VISIBLE")); pstmt.setBytes(7, rs.getBytes("IMAGE")); pstmt.executeUpdate(); } rs.close(); // pickup_number introduced in 3.50 if (Dbtversion >= 3.50 && !jtxtDbType.getText().equals("jdbc:postgresql://")) { Dbtname = "pickup_number"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Pickup Number" + "\n"); SQL = "SELECT * FROM pickup_number"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO pickup_number(ID) " + "VALUES (?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.executeUpdate(); } } else { txtOut.append("Pickup Number... skipped" + "\n"); } // deliberately verbose chunk so can see diff's between PostgreSQL v9 & v10 sequence if (Dbtversion >= 3.50 && jtxtDbType.getText().equals("jdbc:postgresql://")) { Dbtname = "pickup_number"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Pickup Number" + "\n"); SQL = "SELECT * FROM pickup_number"; rs = stmt_source.executeQuery(SQL); String pickupNumber = null; while (rs.next()) { pickupNumber = rs.getString("last_value"); } if (pickupNumber != null) { SQL = "UPDATE pickup_number SET ID=" + pickupNumber; } else { SQL = "UPDATE pickup_number SET ID='1'"; } stmt_target.executeUpdate(SQL); } else { txtOut.append("Pickup Number... skipped" + "\n"); } rs.close(); Dbtname = "places"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Places" + "\n"); SQL = "SELECT * FROM places"; rs = stmt_source.executeQuery(SQL); if (rs.getMetaData().getColumnCount() == 9) { while (rs.next()) { SQL = "INSERT INTO places (" + "ID, NAME, X, Y, FLOOR, " + "CUSTOMER, WAITER, TICKETID, TABLEMOVED," + "WIDTH, HEIGHT, GUESTS, OCCUPIED) " + "VALUES (?, ?, ?, ?, ?, " + "?, ?, ?, ?, " + "?, ?, ?, ? )"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("NAME")); pstmt.setInt(3, rs.getInt("X")); pstmt.setInt(4, rs.getInt("Y")); pstmt.setString(5, rs.getString("FLOOR")); pstmt.setString(6, rs.getString("CUSTOMER")); pstmt.setString(7, rs.getString("WAITER")); pstmt.setString(8, rs.getString("TICKETID")); pstmt.setBoolean(9, rs.getBoolean("TABLEMOVED")); pstmt.setInt(10, 90); // Width pstmt.setInt(11, 45); // Height pstmt.setInt(12, 1); // Guests pstmt.setTimestamp(13, null); // Occupied pstmt.executeUpdate(); } } else { while (rs.next()) { SQL = "INSERT INTO places (" + "ID, NAME, X, Y, FLOOR) " + "VALUES (?, ?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("NAME")); pstmt.setInt(3, rs.getInt("X")); pstmt.setInt(4, rs.getInt("Y")); pstmt.setString(5, rs.getString("FLOOR")); pstmt.executeUpdate(); } } rs.close(); Dbtname = "products"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Products" + "\n"); SQL = "SELECT * FROM products"; rs = stmt_source.executeQuery(SQL); switch (rs.getMetaData().getColumnCount()) { case 30: while (rs.next()) { SQL = "INSERT INTO products(" + "ID, REFERENCE, CODE, CODETYPE, NAME, " + "PRICEBUY, PRICESELL, CATEGORY, TAXCAT, ATTRIBUTESET_ID, " + "STOCKCOST, STOCKVOLUME, IMAGE, ISCOM, ISSCALE, " + "ISCONSTANT, PRINTKB, SENDSTATUS, ISSERVICE, ATTRIBUTES, " + "DISPLAY, ISVPRICE, ISVERPATRIB, TEXTTIP, WARRANTY, " + "STOCKUNITS, PRINTTO, SUPPLIER, UOM, MEMODATE) " + "VALUES (?, ?, ?, ?, ?, " + "?, ?, ?, ?, ?," + "?, ?, ?, ?, ?," + "?, ?, ?, ?, ?, " + "?, ?, ?, ?, ?, " + "?, ?, ?, ? ,?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("REFERENCE")); pstmt.setString(3, rs.getString("CODE")); pstmt.setString(4, rs.getString("CODETYPE")); pstmt.setString(5, rs.getString("NAME")); pstmt.setDouble(6, rs.getDouble("PRICEBUY")); pstmt.setDouble(7, rs.getDouble("PRICESELL")); pstmt.setString(8, rs.getString("CATEGORY")); pstmt.setString(9, rs.getString("TAXCAT")); pstmt.setString(10, rs.getString("ATTRIBUTESET_ID")); pstmt.setDouble(11, rs.getDouble("STOCKCOST")); pstmt.setDouble(12, rs.getDouble("STOCKVOLUME")); pstmt.setBytes(13, rs.getBytes("IMAGE")); pstmt.setBoolean(14, rs.getBoolean("ISCOM")); pstmt.setBoolean(15, rs.getBoolean("ISSCALE")); pstmt.setBoolean(16, rs.getBoolean("ISCONSTANT")); pstmt.setBoolean(17, rs.getBoolean("PRINTKB")); pstmt.setBoolean(18, rs.getBoolean("SENDSTATUS")); pstmt.setBoolean(19, rs.getBoolean("ISSERVICE")); pstmt.setBytes(20, rs.getBytes("ATTRIBUTES")); pstmt.setString(21, rs.getString("DISPLAY")); pstmt.setBoolean(22, rs.getBoolean("ISVPRICE")); pstmt.setBoolean(23, rs.getBoolean("ISVERPATRIB")); pstmt.setString(24, rs.getString("TEXTTIP")); pstmt.setBoolean(25, rs.getBoolean("WARRANTY")); pstmt.setDouble(26, rs.getDouble("STOCKUNITS")); pstmt.setString(27, rs.getString("PRINTTO")); pstmt.setString(28, rs.getString("SUPPLIER")); pstmt.setString(29, rs.getString("UOM")); pstmt.setTimestamp(30, rs.getTimestamp("MEMODATE")); pstmt.executeUpdate(); } break; case 29: while (rs.next()) { SQL = "INSERT INTO products(" + "ID, REFERENCE, CODE, CODETYPE, NAME, " + "PRICEBUY, PRICESELL, CATEGORY, TAXCAT, ATTRIBUTESET_ID, " + "STOCKCOST, STOCKVOLUME, IMAGE, ISCOM, ISSCALE, " + "ISCONSTANT, PRINTKB, SENDSTATUS, ISSERVICE, ATTRIBUTES, " + "DISPLAY, ISVPRICE, ISVERPATRIB, TEXTTIP, WARRANTY, " + "STOCKUNITS, PRINTTO, SUPPLIER, UOM) " + "VALUES (?, ?, ?, ?, ?, " + "?, ?, ?, ?, ?," + "?, ?, ?, ?, ?," + "?, ?, ?, ?, ?, " + "?, ?, ?, ?, ?, " + "?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("REFERENCE")); pstmt.setString(3, rs.getString("CODE")); pstmt.setString(4, rs.getString("CODETYPE")); pstmt.setString(5, rs.getString("NAME")); pstmt.setDouble(6, rs.getDouble("PRICEBUY")); pstmt.setDouble(7, rs.getDouble("PRICESELL")); pstmt.setString(8, rs.getString("CATEGORY")); pstmt.setString(9, rs.getString("TAXCAT")); pstmt.setString(10, rs.getString("ATTRIBUTESET_ID")); pstmt.setDouble(11, rs.getDouble("STOCKCOST")); pstmt.setDouble(12, rs.getDouble("STOCKVOLUME")); pstmt.setBytes(13, rs.getBytes("IMAGE")); pstmt.setBoolean(14, rs.getBoolean("ISCOM")); pstmt.setBoolean(15, rs.getBoolean("ISSCALE")); pstmt.setBoolean(16, rs.getBoolean("ISCONSTANT")); pstmt.setBoolean(17, rs.getBoolean("PRINTKB")); pstmt.setBoolean(18, rs.getBoolean("SENDSTATUS")); pstmt.setBoolean(19, rs.getBoolean("ISSERVICE")); pstmt.setBytes(20, rs.getBytes("ATTRIBUTES")); pstmt.setString(21, rs.getString("DISPLAY")); pstmt.setBoolean(22, rs.getBoolean("ISVPRICE")); pstmt.setBoolean(23, rs.getBoolean("ISVERPATRIB")); pstmt.setString(24, rs.getString("TEXTTIP")); pstmt.setBoolean(25, rs.getBoolean("WARRANTY")); pstmt.setDouble(26, rs.getDouble("STOCKUNITS")); pstmt.setString(27, rs.getString("PRINTTO")); pstmt.setString(28, rs.getString("SUPPLIER")); pstmt.setString(29, rs.getString("UOM")); pstmt.executeUpdate(); } break; default: while (rs.next()) { SQL = "INSERT INTO products(" + "ID, REFERENCE, CODE, CODETYPE, NAME, " + "PRICEBUY, PRICESELL, CATEGORY, TAXCAT, " + "ATTRIBUTESET_ID, STOCKCOST, STOCKVOLUME, IMAGE, " + "ISCOM, ISSCALE, ATTRIBUTES, DISPLAY) " + "VALUES (?, ?, ?, ?, ?, " + "?, ?, ?, ?, " + "?, ?, ?, ?, " + "?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("REFERENCE")); pstmt.setString(3, rs.getString("CODE")); pstmt.setString(4, rs.getString("CODETYPE")); pstmt.setString(5, rs.getString("NAME")); pstmt.setDouble(6, rs.getDouble("PRICEBUY")); pstmt.setDouble(7, rs.getDouble("PRICESELL")); pstmt.setString(8, rs.getString("CATEGORY")); pstmt.setString(9, rs.getString("TAXCAT")); pstmt.setString(10, rs.getString("ATTRIBUTESET_ID")); pstmt.setDouble(11, rs.getDouble("STOCKCOST")); pstmt.setDouble(12, rs.getDouble("STOCKVOLUME")); pstmt.setBytes(13, rs.getBytes("IMAGE")); pstmt.setBoolean(14, rs.getBoolean("ISCOM")); pstmt.setBoolean(15, rs.getBoolean("ISSCALE")); pstmt.setBytes(16, rs.getBytes("ATTRIBUTES")); pstmt.setString(17, "
" + rs.getString("NAME")); pstmt.executeUpdate(); } break; } SQL = "UPDATE products set supplier = '0' WHERE supplier is null"; pstmt.execute(SQL); rs.close(); Dbtname = "products_cat"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Products_Cat" + "\n"); SQL = "SELECT * FROM products_cat"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO products_cat(" + "PRODUCT, CATORDER) " + "VALUES (?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("PRODUCT")); pstmt.setInt(2, rs.getInt("CATORDER")); pstmt.executeUpdate(); } rs.close(); Dbtname = "products_com"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Products_Com" + "\n"); SQL = "SELECT * FROM products_com"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO products_com(" + "ID, PRODUCT, PRODUCT2) " + "VALUES (?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("PRODUCT")); pstmt.setString(3, rs.getString("PRODUCT2")); pstmt.executeUpdate(); } rs.close(); Dbtname = "receipts"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Receipts" + "\n"); SQL = "SELECT * FROM receipts"; rs = stmt_source.executeQuery(SQL); if (rs.getMetaData().getColumnCount() == 5) { while (rs.next()) { SQL = "INSERT INTO receipts(" + "ID, MONEY, DATENEW, " + "ATTRIBUTES, PERSON) " + "VALUES (?, ?, ?, " + "?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("MONEY")); pstmt.setTimestamp(3, rs.getTimestamp("DATENEW")); pstmt.setBytes(4, rs.getBytes("ATTRIBUTES")); pstmt.setString(5, rs.getString("PERSON")); pstmt.executeUpdate(); } } else { while (rs.next()) { SQL = "INSERT INTO receipts(" + "ID, MONEY, DATENEW, ATTRIBUTES) " + "VALUES (?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("MONEY")); pstmt.setTimestamp(3, rs.getTimestamp("DATENEW")); pstmt.setBytes(4, rs.getBytes("ATTRIBUTES")); pstmt.executeUpdate(); } } rs.close(); Dbtname = "reservation_customers"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Reservation_Customers" + "\n"); SQL = "SELECT * FROM reservation_customers"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO reservation_customers(" + "ID, CUSTOMER) " + "VALUES (?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("CUSTOMER")); pstmt.executeUpdate(); } rs.close(); Dbtname = "reservations"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Reservations" + "\n"); SQL = "SELECT * FROM reservations"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO reservations(" + "ID, CREATED, DATENEW, TITLE, " + "CHAIRS, ISDONE, DESCRIPTION) " + "VALUES (?, ?, ?, ?, " + "?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setTimestamp(2, rs.getTimestamp("CREATED")); pstmt.setTimestamp(3, rs.getTimestamp("DATENEW")); pstmt.setString(4, rs.getString("TITLE")); pstmt.setInt(5, rs.getInt("CHAIRS")); pstmt.setBoolean(6, rs.getBoolean("ISDONE")); pstmt.setString(7, rs.getString("DESCRIPTION")); pstmt.executeUpdate(); } rs.close(); Dbtname = "roles"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Roles" + "\n"); SQL = "SELECT * FROM roles WHERE NOT ID='0' "; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO roles(" + "ID, NAME, PERMISSIONS) " + "VALUES (?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("NAME")); pstmt.setBytes(3, rs.getBytes("PERMISSIONS")); pstmt.executeUpdate(); } rs.close(); // introduced in 3.00 if (Dbtversion >= 3.00) { Dbtname = "shift_breaks"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Shift_breaks" + "\n"); SQL = "SELECT * FROM shift_breaks"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO shift_breaks(" + "ID, SHIFTID, BREAKID, " + "STARTTIME, ENDTIME) " + "VALUES (?, ?, ?, " + "?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("SHIFTID")); pstmt.setString(3, rs.getString("BREAKID")); pstmt.setTimestamp(4, rs.getTimestamp("STARTTIME")); pstmt.setTimestamp(5, rs.getTimestamp("ENDTIME")); pstmt.executeUpdate(); } } else { txtOut.append("Shift Breaks... skipped" + "\n"); } rs.close(); // introduced in 3.00 if (Dbtversion >= 3.00) { Dbtname = "shifts"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Shifts" + "\n"); SQL = "SELECT * FROM shifts"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO shifts(" + "ID, STARTSHIFT, ENDSHIFT, PPLID) " + "VALUES (?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setTimestamp(2, rs.getTimestamp("STARTSHIFT")); pstmt.setTimestamp(3, rs.getTimestamp("ENDSHIFT")); pstmt.setString(4, rs.getString("PPLID")); pstmt.executeUpdate(); } } else { txtOut.append("Shifts... skipped" + "\n"); } rs.close(); Dbtname = "stockcurrent"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Stockcurrent" + "\n"); SQL = "SELECT * FROM stockcurrent"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO stockcurrent(" + "LOCATION, PRODUCT, " + "ATTRIBUTESETINSTANCE_ID, UNITS) " + "VALUES (?, ?, " + "?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("LOCATION")); pstmt.setString(2, rs.getString("PRODUCT")); pstmt.setString(3, rs.getString("ATTRIBUTESETINSTANCE_ID")); pstmt.setDouble(4, rs.getDouble("UNITS")); pstmt.executeUpdate(); } rs.close(); Dbtname = "stockdiary"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Stockdiary" + "\n"); SQL = "SELECT * FROM stockdiary"; rs = stmt_source.executeQuery(SQL); if (rs.getMetaData().getColumnCount() == 9) { while (rs.next()) { SQL = "INSERT INTO stockdiary(" + "ID, DATENEW, REASON, LOCATION, " + "PRODUCT, ATTRIBUTESETINSTANCE_ID, UNITS, " + "PRICE, APPUSER) " + "VALUES (?, ?, ?, ?, " + "?, ?, ?, " + "?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setTimestamp(2, rs.getTimestamp("DATENEW")); pstmt.setInt(3, rs.getInt("REASON")); pstmt.setString(4, rs.getString("LOCATION")); pstmt.setString(5, rs.getString("PRODUCT")); pstmt.setString(6, rs.getString("ATTRIBUTESETINSTANCE_ID")); pstmt.setDouble(7, rs.getDouble("UNITS")); pstmt.setDouble(8, rs.getDouble("PRICE")); pstmt.setString(9, rs.getString("APPUSER")); pstmt.executeUpdate(); } } else { while (rs.next()) { SQL = "INSERT INTO stockdiary(" + "ID, DATENEW, REASON, LOCATION, " + "PRODUCT, ATTRIBUTESETINSTANCE_ID, UNITS, " + "PRICE) " + "VALUES (?, ?, ?, ?, " + "?, ?, ?, " + "?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setTimestamp(2, rs.getTimestamp("DATENEW")); pstmt.setInt(3, rs.getInt("REASON")); pstmt.setString(4, rs.getString("LOCATION")); pstmt.setString(5, rs.getString("PRODUCT")); pstmt.setString(6, rs.getString("ATTRIBUTESETINSTANCE_ID")); pstmt.setDouble(7, rs.getDouble("UNITS")); pstmt.setDouble(8, rs.getDouble("PRICE")); pstmt.executeUpdate(); } } rs.close(); Dbtname = "stocklevel"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Stocklevel" + "\n"); SQL = "SELECT * FROM stocklevel"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO stocklevel(" + "ID, LOCATION, PRODUCT, " + "STOCKSECURITY, STOCKMAXIMUM) " + "VALUES (?, ?, ?, " + "?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("LOCATION")); pstmt.setString(3, rs.getString("PRODUCT")); pstmt.setDouble(4, rs.getDouble("STOCKSECURITY")); pstmt.setDouble(5, rs.getDouble("STOCKMAXIMUM")); pstmt.executeUpdate(); } rs.close(); // introduced in 4 if (Dbtversion >= 4.00) { Dbtname = "suppliers"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Suppliers" + "\n"); SQL = "SELECT * FROM suppliers"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO suppliers(" + "ID, SEARCHKEY, TAXID, NAME, MAXDEBT," + "ADDRESS, ADDRESS2, POSTAL, CITY, " + "REGION, COUNTRY, FIRSTNAME, LASTNAME, " + "EMAIL, PHONE, PHONE2, FAX, " + "NOTES, VISIBLE, CURDATE, CURDEBT, VATID)" + " VALUES (" + "?, ?, ?, ?, ?," + "?, ?, ?, ?," + "?, ?, ?, ?, " + "?, ?, ?, ?, " + "?, ?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("SEARCHKEY")); pstmt.setString(3, rs.getString("TAXID")); pstmt.setString(4, rs.getString("NAME")); pstmt.setDouble(5, rs.getDouble("MAXDEBT")); pstmt.setString(6, rs.getString("ADDRESS")); pstmt.setString(7, rs.getString("ADDRESS2")); pstmt.setString(8, rs.getString("POSTAL")); pstmt.setString(9, rs.getString("CITY")); pstmt.setString(10, rs.getString("REGION")); pstmt.setString(11, rs.getString("COUNTRY")); pstmt.setString(12, rs.getString("FIRSTNAME")); pstmt.setString(13, rs.getString("LASTNAME")); pstmt.setString(14, rs.getString("EMAIL")); pstmt.setString(15, rs.getString("PHONE")); pstmt.setString(16, rs.getString("PHONE2")); pstmt.setString(17, rs.getString("FAX")); pstmt.setString(18, rs.getString("NOTES")); pstmt.setBoolean(19, rs.getBoolean("VISIBLE")); pstmt.setTimestamp(20, rs.getTimestamp("CURDATE")); pstmt.setDouble(21, rs.getDouble("CURDEBT")); pstmt.setString(22, rs.getString("VATID")); pstmt.executeUpdate(); } } else { SQL = "INSERT INTO suppliers(" + "ID, NAME, SEARCHKEY)" + " VALUES ('0', 'uniCenta', 'unicenta')"; pstmt.executeUpdate(SQL); txtOut.append("Added Supplier... uniCenta" + "\n"); } rs.close(); Dbtname = "taxcategories"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("TaxCategories" + "\n"); SQL = "SELECT * FROM taxcategories"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO taxcategories(" + "ID, NAME) " + "VALUES (?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("NAME")); pstmt.executeUpdate(); } rs.close(); Dbtname = "taxcustcategories"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Tax Customer Categories" + "\n"); SQL = "SELECT * FROM taxcustcategories"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO taxcustcategories(" + "ID, NAME) " + "VALUES (?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("NAME")); pstmt.executeUpdate(); } rs.close(); Dbtname = "taxes"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Taxes" + "\n"); SQL = "SELECT * FROM taxes"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO taxes(" + "ID, NAME, CATEGORY, CUSTCATEGORY, " + "PARENTID, RATE, RATECASCADE, RATEORDER) " + "VALUES (?, ?, ?, ?, " + "?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("NAME")); pstmt.setString(3, rs.getString("CATEGORY")); pstmt.setString(4, rs.getString("CUSTCATEGORY")); pstmt.setString(5, rs.getString("PARENTID")); pstmt.setDouble(6, rs.getDouble("RATE")); pstmt.setBoolean(7, rs.getBoolean("RATECASCADE")); pstmt.setInt(8, rs.getInt("RATEORDER")); pstmt.executeUpdate(); } rs.close(); Dbtname = "taxlines"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("TaxLines" + "\n"); SQL = "SELECT * FROM taxlines"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO taxlines(" + "ID, RECEIPT, TAXID, BASE, AMOUNT) " + "VALUES (?, ?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("RECEIPT")); pstmt.setString(3, rs.getString("TAXID")); pstmt.setDouble(4, rs.getDouble("BASE")); pstmt.setDouble(5, rs.getDouble("AMOUNT")); pstmt.executeUpdate(); } rs.close(); Dbtname = "thirdparties"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("ThirdParties" + "\n"); SQL = "SELECT * FROM thirdparties"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO thirdparties(" + "ID, CIF, NAME, ADDRESS, " + "CONTACTCOMM, CONTACTFACT, PAYRULE, FAXNUMBER, " + "PHONENUMBER, MOBILENUMBER, EMAIL, " + "WEBPAGE, NOTES) " + "VALUES (?, ?, ?, ?, " + "?, ?, ?, ?, " + "?, ?, ?, " + "?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setString(2, rs.getString("CIF")); pstmt.setString(3, rs.getString("NAME")); pstmt.setString(4, rs.getString("ADDRESS")); pstmt.setString(5, rs.getString("CONTACTCOMM")); pstmt.setString(6, rs.getString("CONTACTFACT")); pstmt.setString(7, rs.getString("PAYRULE")); pstmt.setString(8, rs.getString("FAXNUMBER")); pstmt.setString(9, rs.getString("PHONENUMBER")); pstmt.setString(10, rs.getString("MOBILENUMBER")); pstmt.setString(11, rs.getString("EMAIL")); pstmt.setString(12, rs.getString("WEBPAGE")); pstmt.setString(13, rs.getString("NOTES")); pstmt.executeUpdate(); } rs.close(); Dbtname = "ticketlines"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("TicketLines" + "\n"); SQL = "SELECT * FROM ticketlines"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO ticketlines(" + "TICKET, LINE, PRODUCT, ATTRIBUTESETINSTANCE_ID, " + "UNITS, PRICE, TAXID, ATTRIBUTES) " + "VALUES (?, ?, ?, ?, " + "?, ?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("TICKET")); pstmt.setInt(2, rs.getInt("LINE")); pstmt.setString(3, rs.getString("PRODUCT")); pstmt.setString(4, rs.getString("ATTRIBUTESETINSTANCE_ID")); pstmt.setDouble(5, rs.getDouble("UNITS")); pstmt.setDouble(6, rs.getDouble("PRICE")); pstmt.setString(7, rs.getString("TAXID")); pstmt.setBytes(8, rs.getBytes("ATTRIBUTES")); pstmt.executeUpdate(); } rs.close(); Dbtname = "tickets"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Tickets" + "\n"); SQL = "SELECT * FROM tickets"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO tickets(" + "ID, TICKETTYPE, TICKETID, " + "PERSON, CUSTOMER, STATUS) " + "VALUES (?, ?, ?, " + "?, ?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("ID")); pstmt.setInt(2, rs.getInt("TICKETTYPE")); pstmt.setInt(3, rs.getInt("TICKETID")); pstmt.setString(4, rs.getString("PERSON")); pstmt.setString(5, rs.getString("CUSTOMER")); pstmt.setInt(6, rs.getInt("STATUS")); pstmt.executeUpdate(); } rs.close(); if (Dbtversion >= 3.50 && !jtxtDbType.getText().equals("jdbc:postgresql://")) { Dbtname = "ticketsnum"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Tickets Number" + "\n"); SQL = "SELECT * FROM ticketsnum"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { ticketsnum = rs.getString("ID"); } if (ticketsnum != null) { SQL = "UPDATE ticketsnum SET ID= " + ticketsnum; } else { SQL = "UPDATE ticketsnum SET ID='1'"; } stmt_target.executeUpdate(SQL); } else { txtOut.append("Ticket Number... skipped" + "\n"); } // deliberately verbose chunk so can see diff's between PostgreSQL v9 & v10 if (Dbtversion >= 3.50 && jtxtDbType.getText().equals("jdbc:postgresql://")) { Dbtname = "ticketsnum"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Tickets Number" + "\n"); SQL = "SELECT * FROM ticketsnum"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { ticketsnum = rs.getString("last_value"); } if (ticketsnum != null) { SQL = "UPDATE ticketsnum SET ID= " + ticketsnum; } else { SQL = "UPDATE ticketsnum SET ID='1'"; } stmt_target.executeUpdate(SQL); } else { txtOut.append("Ticket Number... skipped" + "\n"); } rs.close(); if (Dbtversion >= 3.50 && !jtxtDbType.getText().equals("jdbc:postgresql://")) { Dbtname = "ticketsnum_payment"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Tickets Number Payments" + "\n"); SQL = "SELECT * FROM ticketsnum_payment"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { ticketsnumPayment = rs.getString("ID"); } if (ticketsnumPayment != null) { SQL = "UPDATE ticketsnum_payment SET ID= " + ticketsnumPayment; } else { SQL = "UPDATE ticketsnum_payment SET ID='1'"; } stmt_target.executeUpdate(SQL); } else { txtOut.append("Ticket Payment... skipped" + "\n"); } // deliberately verbose chunk so can see diff's between PostgreSQL v9 & v10 sequence if (Dbtversion >= 3.50 && jtxtDbType.getText().equals("jdbc:postgresql://")) { Dbtname = "ticketsnum_payment"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Tickets Number Payments" + "\n"); SQL = "SELECT * FROM ticketsnum_payment"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { ticketsnumPayment = rs.getString("last_value"); } if (ticketsnumPayment != null) { SQL = "UPDATE ticketsnum_payment SET ID= " + ticketsnumPayment; } else { SQL = "UPDATE ticketsnum_payment SET ID='1'"; } stmt_target.executeUpdate(SQL); } else { txtOut.append("Ticket Number Payments... skipped" + "\n"); } rs.close(); if (Dbtversion >= 3.50 && !jtxtDbType.getText().equals("jdbc:postgresql://")) { Dbtname = "ticketsnum_refund"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Tickets Number Refunds" + "\n"); SQL = "SELECT * FROM ticketsnum_refund"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { ticketsnumRefund = rs.getString("ID"); } if (ticketsnumRefund != null) { SQL = "UPDATE ticketsnum_refund SET ID= " + ticketsnumRefund; } else { SQL = "UPDATE ticketsnum_refund SET ID='1'"; } stmt_target.executeUpdate(SQL); } else { txtOut.append("Ticket Refund... skipped" + "\n"); } // deliberately verbose chunk so can see diff's between PostgreSQL v9 & v10 sequence if (Dbtversion >= 3.50 && jtxtDbType.getText().equals("jdbc:postgresql://")) { Dbtname = "ticketsnum_payment"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Tickets Number Refunds" + "\n"); SQL = "SELECT * FROM ticketsnum_refund"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { ticketsnumRefund = rs.getString("last_value"); } if (ticketsnumRefund != null) { SQL = "UPDATE ticketsnum_refund SET ID= " + ticketsnumRefund; } else { SQL = "UPDATE ticketsnum_refund SET ID='1'"; } stmt_target.executeUpdate(SQL); } else { txtOut.append("Ticket Refund... skipped" + "\n"); } rs.close(); // introduced in 4 if (Dbtversion >= 4.00) { Dbtname = "uom"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("UOM" + "\n"); SQL = "SELECT * FROM uom"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO uom(" + "id, name) " + "VALUES (?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("id")); pstmt.setString(2, rs.getString("name")); pstmt.executeUpdate(); } } else { SQL = "INSERT INTO uom(" + "ID, NAME)" + " VALUES ('0', 'Each')"; pstmt.executeUpdate(SQL); txtOut.append("Added UOM... Each" + "\n"); } if (Dbtversion >= 4.00) { Dbtname = "vouchers"; rs = con_source.getMetaData().getTables(null, null, Dbtname, null); txtOut.append("Vouchers" + "\n"); SQL = "SELECT * FROM vouchers"; rs = stmt_source.executeQuery(SQL); while (rs.next()) { SQL = "INSERT INTO vouchers(" + "id, voucher_number, customer, " + "amount, status) " + "VALUES (?, ?, ?, " + "?, ?)"; pstmt = con_target.prepareStatement(SQL); pstmt.setString(1, rs.getString("id")); pstmt.setString(2, rs.getString("voucher_number")); pstmt.setString(3, rs.getString("customer")); pstmt.setDouble(4, rs.getDouble("amount")); pstmt.setString(5, rs.getString("status")); pstmt.executeUpdate(); } } else { txtOut.append("Vouchers... skipped" + "\n"); } rs.close(); try { this.con_target.setAutoCommit(true); } catch (SQLException ex) { log.error(ex.getMessage()); } // Add ForeignKeys JOptionPane.showMessageDialog(this , AppLocal.getIntString("message.transfercomplete") , AppLocal.getIntString("message.transfermessage") , JOptionPane.WARNING_MESSAGE); FKeys(); txtOut.append("Data Transfer Complete" + "\n"); webPBar.setString("Finished!"); webPBar.setBgBottom(Color.GREEN); jbtnTransfer.setEnabled(true); JOptionPane.showMessageDialog(this , AppLocal.getIntString("message.indexcomplete") , AppLocal.getIntString("message.transfermessage") , JOptionPane.WARNING_MESSAGE); } catch (SQLException | HeadlessException e) { session_source.close(); JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_WARNING, SQL, e)); } } else { JFrame frame = new JFrame(); JOptionPane.showMessageDialog(frame , AppLocal.getIntString("message.transfernotsupported") , AppLocal.getIntString("message.transfermessage") , JOptionPane.WARNING_MESSAGE); } SQL = "COMMIT;\n" + "SET autocommit=1;\n" + "SET unique_checks=1;\n" + "SET foreign_key_checks=1;"; pstmt.executeUpdate(SQL); session_source.close(); } } public void fillSchema() { /* Use existing session credentials but declare new session and connection * to keep separated from current session instance as database could * be a different server */ if (jCBSchema.getItemCount() >= 1) { jCBSchema.removeAllItems(); } try { String driverlib = jtxtDbDriverLib.getText(); String driver = jtxtDbDriver.getText(); String url = jtxtDbType.getText() + jtxtDbServerPort.getText() + jtxtDbName.getText() + jtxtDbParams.getText(); String user = txtDbUser.getText(); String password = new String(txtDbPass.getPassword()); ClassLoader cloader = new URLClassLoader(new URL[]{ new File(driverlib).toURI().toURL() }); DriverManager.registerDriver( new DriverWrapper((Driver) Class.forName(driver, true, cloader).newInstance())); Session session1 = new Session(url, user, password); if (jtxtDbType.getText().equals("jdbc:postgresql://")) { Connection connection1 = DriverManager.getConnection(url, user, password); Statement st = connection1.createStatement(); ResultSet rs = st.executeQuery("SELECT datname FROM pg_database WHERE datistemplate = false;"); while (rs.next()) { jCBSchema.addItem(rs.getString("datname")); } } else { Connection connection1 = session1.getConnection(); ResultSet rs = connection1.getMetaData().getCatalogs(); while (rs.next()) { jCBSchema.addItem(rs.getString("TABLE_CAT")); } } jCBSchema.setEnabled(true); jCBSchema.setSelectedIndex(0); } catch (MalformedURLException | ClassNotFoundException | SQLException | InstantiationException | IllegalAccessException ex) { log.error(ex.getMessage()); } } public void reset() { // Main Panel jtxtDbDriver.setText("com.mysql.jdbc.Driver"); jtxtDbType.setText("jdbc:mysql://"); jtxtDbServerPort.setText("localhost:3306/"); txtDbUser.setText(null); txtDbPass.setText(null); jbtnConnect.setEnabled(true); // TransferPanel jCBSchema.removeAllItems(); jtxtDbName.setText(null); jtxtDbParams.setText("?zeroDateTimeBehavior=convertToNull"); jlblVersion.setText(null); jlblDBSize.setText(null); jTransferPanel.setVisible(false); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ // //GEN-BEGIN:initComponents private void initComponents() { jLabel5 = new javax.swing.JLabel(); jLabel18 = new javax.swing.JLabel(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); cbSource = new com.alee.laf.combobox.WebComboBox(); jtxtDbDriverLib = new com.alee.laf.text.WebTextField(); jbtnDbDriverLib = new javax.swing.JButton(); jtxtDbDriver = new com.alee.laf.text.WebTextField(); jtxtDbType = new com.alee.laf.text.WebTextField(); txtDbUser = new com.alee.laf.text.WebTextField(); txtDbPass = new com.alee.laf.text.WebPasswordField(); jScrollPane1 = new javax.swing.JScrollPane(); txtOut = new javax.swing.JTextArea(); jLabel8 = new javax.swing.JLabel(); jlblSource = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jbtnConnect = new javax.swing.JButton(); webPBar = new com.alee.laf.progressbar.WebProgressBar(); jtxtDbServerPort = new com.alee.laf.text.WebTextField(); jLabel12 = new javax.swing.JLabel(); jTransferPanel = new javax.swing.JPanel(); jLabel13 = new javax.swing.JLabel(); jCBSchema = new javax.swing.JComboBox<>(); jLabel14 = new javax.swing.JLabel(); jtxtDbParams = new com.alee.laf.text.WebTextField(); jLabel7 = new javax.swing.JLabel(); jlblVersion = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); jlblDBSize = new javax.swing.JLabel(); jtxtDbName = new com.alee.laf.text.WebTextField(); jbtnTransfer = new javax.swing.JButton(); webMemoryBar = new com.alee.extended.statusbar.WebMemoryBar(); jLabel10 = new javax.swing.JLabel(); jLabel15 = new javax.swing.JLabel(); jbtnSet = new javax.swing.JButton(); jbtnReset1 = new javax.swing.JButton(); jbtnReset = new javax.swing.JButton(); jLabel16 = new javax.swing.JLabel(); setBackground(new java.awt.Color(255, 255, 255)); setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N setPreferredSize(new java.awt.Dimension(900, 425)); jLabel5.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jLabel5.setForeground(new java.awt.Color(102, 102, 102)); java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("pos_messages"); // NOI18N jLabel5.setText(bundle.getString("label.DbType")); // NOI18N jLabel5.setMaximumSize(new java.awt.Dimension(150, 30)); jLabel5.setMinimumSize(new java.awt.Dimension(150, 30)); jLabel5.setPreferredSize(new java.awt.Dimension(160, 30)); jLabel18.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jLabel18.setForeground(new java.awt.Color(102, 102, 102)); jLabel18.setText(AppLocal.getIntString("label.dbdriverlib")); // NOI18N jLabel18.setMaximumSize(new java.awt.Dimension(150, 30)); jLabel18.setMinimumSize(new java.awt.Dimension(150, 30)); jLabel18.setPreferredSize(new java.awt.Dimension(160, 30)); jLabel1.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jLabel1.setForeground(new java.awt.Color(102, 102, 102)); jLabel1.setText(AppLocal.getIntString("label.DbDriver")); // NOI18N jLabel1.setMaximumSize(new java.awt.Dimension(150, 30)); jLabel1.setMinimumSize(new java.awt.Dimension(150, 30)); jLabel1.setPreferredSize(new java.awt.Dimension(160, 30)); jLabel2.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jLabel2.setForeground(new java.awt.Color(102, 102, 102)); jLabel2.setText("Type"); jLabel2.setMaximumSize(new java.awt.Dimension(150, 30)); jLabel2.setMinimumSize(new java.awt.Dimension(150, 30)); jLabel2.setPreferredSize(new java.awt.Dimension(160, 30)); jLabel3.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jLabel3.setForeground(new java.awt.Color(102, 102, 102)); jLabel3.setText(AppLocal.getIntString("label.DbUser")); // NOI18N jLabel3.setMaximumSize(new java.awt.Dimension(150, 30)); jLabel3.setMinimumSize(new java.awt.Dimension(150, 30)); jLabel3.setPreferredSize(new java.awt.Dimension(160, 30)); jLabel4.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jLabel4.setForeground(new java.awt.Color(102, 102, 102)); jLabel4.setText(AppLocal.getIntString("label.DbPassword")); // NOI18N jLabel4.setMaximumSize(new java.awt.Dimension(150, 30)); jLabel4.setMinimumSize(new java.awt.Dimension(150, 30)); jLabel4.setPreferredSize(new java.awt.Dimension(100, 30)); jLabel6.setFont(new java.awt.Font("Arial", 0, 18)); // NOI18N jLabel6.setForeground(new java.awt.Color(51, 51, 51)); jLabel6.setText("Currently connected to :"); jLabel6.setPreferredSize(new java.awt.Dimension(150, 30)); cbSource.setForeground(new java.awt.Color(51, 51, 51)); cbSource.setToolTipText(bundle.getString("tooltip.transferfromdb")); // NOI18N cbSource.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N cbSource.setPreferredSize(new java.awt.Dimension(150, 30)); cbSource.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cbSourceActionPerformed(evt); } }); jtxtDbDriverLib.setForeground(new java.awt.Color(51, 51, 51)); jtxtDbDriverLib.setToolTipText(bundle.getString("tootltip.transferlib")); // NOI18N jtxtDbDriverLib.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jtxtDbDriverLib.setPreferredSize(new java.awt.Dimension(360, 30)); jbtnDbDriverLib.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/unicenta/images/fileopen.png"))); // NOI18N jbtnDbDriverLib.setToolTipText(bundle.getString("tooltip.openfile")); // NOI18N jbtnDbDriverLib.setMaximumSize(new java.awt.Dimension(64, 32)); jbtnDbDriverLib.setMinimumSize(new java.awt.Dimension(64, 32)); jbtnDbDriverLib.setPreferredSize(new java.awt.Dimension(60, 30)); jtxtDbDriver.setForeground(new java.awt.Color(51, 51, 51)); jtxtDbDriver.setToolTipText(bundle.getString("tootltip.transferclass")); // NOI18N jtxtDbDriver.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jtxtDbDriver.setPreferredSize(new java.awt.Dimension(360, 30)); jtxtDbType.setForeground(new java.awt.Color(51, 51, 51)); jtxtDbType.setToolTipText(bundle.getString("tootltip.transferdbtype")); // NOI18N jtxtDbType.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jtxtDbType.setPreferredSize(new java.awt.Dimension(150, 30)); txtDbUser.setForeground(new java.awt.Color(51, 51, 51)); txtDbUser.setToolTipText(bundle.getString("tooltip.dbuser")); // NOI18N txtDbUser.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N txtDbUser.setPreferredSize(new java.awt.Dimension(125, 30)); txtDbPass.setForeground(new java.awt.Color(51, 51, 51)); txtDbPass.setToolTipText(bundle.getString("tooltip.dbpassword")); // NOI18N txtDbPass.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N txtDbPass.setPreferredSize(new java.awt.Dimension(125, 30)); jScrollPane1.setBorder(null); jScrollPane1.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); jScrollPane1.setViewportBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(204, 204, 204))); jScrollPane1.setFont(new java.awt.Font("Arial", 0, 13)); // NOI18N jScrollPane1.setHorizontalScrollBar(null); jScrollPane1.setPreferredSize(new java.awt.Dimension(200, 350)); txtOut.setColumns(20); txtOut.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N txtOut.setForeground(new java.awt.Color(0, 153, 255)); txtOut.setRows(5); txtOut.setToolTipText(bundle.getString("tooltip.transfertxtout")); // NOI18N txtOut.setBorder(null); jScrollPane1.setViewportView(txtOut); jLabel8.setFont(new java.awt.Font("Arial", 0, 18)); // NOI18N jLabel8.setForeground(new java.awt.Color(0, 153, 255)); jLabel8.setText("PROGRESS"); jLabel8.setPreferredSize(new java.awt.Dimension(150, 30)); jlblSource.setFont(new java.awt.Font("Arial", 0, 18)); // NOI18N jlblSource.setForeground(new java.awt.Color(0, 153, 255)); jlblSource.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); jlblSource.setPreferredSize(new java.awt.Dimension(150, 30)); jLabel9.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jLabel9.setForeground(new java.awt.Color(102, 102, 102)); jLabel9.setText(AppLocal.getIntString("label.DbUser")); // NOI18N jLabel9.setMaximumSize(new java.awt.Dimension(150, 30)); jLabel9.setMinimumSize(new java.awt.Dimension(150, 30)); jLabel9.setPreferredSize(new java.awt.Dimension(160, 30)); jbtnConnect.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jbtnConnect.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/unicenta/images/btn1.png"))); // NOI18N jbtnConnect.setText(bundle.getString("Button.Test")); // NOI18N jbtnConnect.setToolTipText(bundle.getString("tooltip.dbtest")); // NOI18N jbtnConnect.setActionCommand(bundle.getString("Button.Test")); // NOI18N jbtnConnect.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); jbtnConnect.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); jbtnConnect.setPreferredSize(new java.awt.Dimension(160, 45)); jbtnConnect.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jbtnConnectjButtonTestConnectionActionPerformed(evt); } }); webPBar.setFont(new java.awt.Font("Arial", 0, 13)); // NOI18N webPBar.setHighlightDarkWhite(new java.awt.Color(204, 0, 0)); webPBar.setPreferredSize(new java.awt.Dimension(240, 30)); webPBar.setProgressBottomColor(new java.awt.Color(0, 153, 255)); jtxtDbServerPort.setForeground(new java.awt.Color(51, 51, 51)); jtxtDbServerPort.setToolTipText(bundle.getString("tootltip.servernameport")); // NOI18N jtxtDbServerPort.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jtxtDbServerPort.setPreferredSize(new java.awt.Dimension(360, 30)); jLabel12.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jLabel12.setForeground(new java.awt.Color(102, 102, 102)); jLabel12.setText(bundle.getString("labelServerPort")); // NOI18N jLabel12.setMaximumSize(new java.awt.Dimension(150, 30)); jLabel12.setMinimumSize(new java.awt.Dimension(150, 30)); jLabel12.setPreferredSize(new java.awt.Dimension(160, 30)); jLabel13.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jLabel13.setForeground(new java.awt.Color(102, 102, 102)); jLabel13.setText(bundle.getString("label.DbSource")); // NOI18N jLabel13.setMaximumSize(new java.awt.Dimension(150, 30)); jLabel13.setMinimumSize(new java.awt.Dimension(150, 30)); jLabel13.setPreferredSize(new java.awt.Dimension(160, 30)); jCBSchema.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jCBSchema.setToolTipText(bundle.getString("tootltip.transferdbname")); // NOI18N jCBSchema.setEnabled(false); jCBSchema.setPreferredSize(new java.awt.Dimension(360, 30)); jLabel14.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jLabel14.setForeground(new java.awt.Color(102, 102, 102)); jLabel14.setText(bundle.getString("label.DBParameters")); // NOI18N jLabel14.setMaximumSize(new java.awt.Dimension(150, 30)); jLabel14.setMinimumSize(new java.awt.Dimension(150, 30)); jLabel14.setPreferredSize(new java.awt.Dimension(160, 30)); jtxtDbParams.setForeground(new java.awt.Color(51, 51, 51)); jtxtDbParams.setToolTipText(bundle.getString("tootltip.transferdbparams")); // NOI18N jtxtDbParams.setEnabled(false); jtxtDbParams.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jtxtDbParams.setPreferredSize(new java.awt.Dimension(360, 30)); jLabel7.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jLabel7.setForeground(new java.awt.Color(102, 102, 102)); jLabel7.setText("DB Version"); jLabel7.setMaximumSize(new java.awt.Dimension(150, 30)); jLabel7.setMinimumSize(new java.awt.Dimension(150, 30)); jLabel7.setPreferredSize(new java.awt.Dimension(160, 30)); jlblVersion.setFont(new java.awt.Font("Arial", 0, 16)); // NOI18N jlblVersion.setForeground(new java.awt.Color(0, 204, 255)); jlblVersion.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jlblVersion.setToolTipText(bundle.getString("tooltip.transferdbversion")); // NOI18N jlblVersion.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 204, 255))); jlblVersion.setEnabled(false); jlblVersion.setMaximumSize(new java.awt.Dimension(150, 30)); jlblVersion.setMinimumSize(new java.awt.Dimension(150, 30)); jlblVersion.setPreferredSize(new java.awt.Dimension(125, 30)); jLabel11.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jLabel11.setForeground(new java.awt.Color(102, 102, 102)); jLabel11.setText("DB Size"); jLabel11.setMaximumSize(new java.awt.Dimension(150, 30)); jLabel11.setMinimumSize(new java.awt.Dimension(150, 30)); jLabel11.setPreferredSize(new java.awt.Dimension(100, 30)); jlblDBSize.setFont(new java.awt.Font("Arial", 0, 16)); // NOI18N jlblDBSize.setForeground(new java.awt.Color(0, 204, 255)); jlblDBSize.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jlblDBSize.setToolTipText(bundle.getString("tooltip.transferdbsize")); // NOI18N jlblDBSize.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 204, 255))); jlblDBSize.setEnabled(false); jlblDBSize.setMaximumSize(new java.awt.Dimension(150, 30)); jlblDBSize.setMinimumSize(new java.awt.Dimension(150, 30)); jlblDBSize.setPreferredSize(new java.awt.Dimension(120, 30)); jtxtDbName.setForeground(new java.awt.Color(51, 51, 51)); jtxtDbName.setToolTipText(bundle.getString("tootltip.transferdbname")); // NOI18N jtxtDbName.setEnabled(false); jtxtDbName.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jtxtDbName.setOpaque(true); jtxtDbName.setPreferredSize(new java.awt.Dimension(0, 0)); jbtnTransfer.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jbtnTransfer.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/unicenta/images/btn3.png"))); // NOI18N jbtnTransfer.setText(AppLocal.getIntString("button.transfer")); // NOI18N jbtnTransfer.setToolTipText(bundle.getString("tooltip.transferdb")); // NOI18N jbtnTransfer.setEnabled(false); jbtnTransfer.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); jbtnTransfer.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); jbtnTransfer.setMaximumSize(new java.awt.Dimension(70, 33)); jbtnTransfer.setMinimumSize(new java.awt.Dimension(70, 33)); jbtnTransfer.setPreferredSize(new java.awt.Dimension(160, 45)); jbtnTransfer.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jbtnTransferActionPerformed(evt); } }); webMemoryBar.setBackground(new java.awt.Color(153, 153, 153)); webMemoryBar.setText("Text"); webMemoryBar.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N webMemoryBar.setPreferredSize(new java.awt.Dimension(150, 30)); webMemoryBar.setUsedBorderColor(new java.awt.Color(0, 204, 204)); webMemoryBar.setUsedFillColor(new java.awt.Color(0, 204, 255)); jLabel10.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N jLabel10.setForeground(new java.awt.Color(102, 102, 102)); jLabel10.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel10.setText("Memory State"); jLabel10.setMaximumSize(new java.awt.Dimension(150, 30)); jLabel10.setMinimumSize(new java.awt.Dimension(150, 30)); jLabel10.setPreferredSize(new java.awt.Dimension(160, 30)); jLabel15.setFont(new java.awt.Font("Arial", 0, 18)); // NOI18N jLabel15.setForeground(new java.awt.Color(0, 153, 255)); jLabel15.setText("CHOOSE DATABASE TO TRANSFER FROM"); jLabel15.setPreferredSize(new java.awt.Dimension(150, 30)); jbtnSet.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jbtnSet.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/unicenta/images/btn2.png"))); // NOI18N jbtnSet.setText(AppLocal.getIntString("button.setTransfer")); // NOI18N jbtnSet.setToolTipText(bundle.getString("tooltip.checkTransfer")); // NOI18N jbtnSet.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); jbtnSet.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); jbtnSet.setMaximumSize(new java.awt.Dimension(70, 33)); jbtnSet.setMinimumSize(new java.awt.Dimension(70, 33)); jbtnSet.setPreferredSize(new java.awt.Dimension(160, 45)); jbtnSet.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jbtnSetActionPerformed(evt); } }); jbtnReset1.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jbtnReset1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/unicenta/images/reload.png"))); // NOI18N jbtnReset1.setToolTipText(bundle.getString("tooltip.transferReset")); // NOI18N jbtnReset1.setMaximumSize(new java.awt.Dimension(70, 33)); jbtnReset1.setMinimumSize(new java.awt.Dimension(70, 33)); jbtnReset1.setPreferredSize(new java.awt.Dimension(80, 45)); jbtnReset1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jbtnReset1ActionPerformed(evt); } }); javax.swing.GroupLayout jTransferPanelLayout = new javax.swing.GroupLayout(jTransferPanel); jTransferPanel.setLayout(jTransferPanelLayout); jTransferPanelLayout.setHorizontalGroup( jTransferPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jTransferPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(jTransferPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jTransferPanelLayout.createSequentialGroup() .addGroup(jTransferPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jtxtDbName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(7, 7, 7) .addGroup(jTransferPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addGroup(jTransferPanelLayout.createSequentialGroup() .addComponent(jlblVersion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jlblDBSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jTransferPanelLayout.createSequentialGroup() .addComponent(jbtnSet, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jbtnTransfer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jbtnReset1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jTransferPanelLayout.createSequentialGroup() .addGroup(jTransferPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(jTransferPanelLayout.createSequentialGroup() .addComponent(jLabel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jCBSchema, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jLabel15, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jTransferPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(webMemoryBar, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE))) .addGroup(jTransferPanelLayout.createSequentialGroup() .addComponent(jLabel14, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jtxtDbParams, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap()) ); jTransferPanelLayout.setVerticalGroup( jTransferPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jTransferPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(jTransferPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel15, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jTransferPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jCBSchema, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(webMemoryBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jTransferPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jtxtDbParams, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jTransferPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jlblVersion, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel11, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel7, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jlblDBSize, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jTransferPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jTransferPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jbtnTransfer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jbtnSet, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jtxtDbName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jbtnReset1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap()) ); jbtnReset.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jbtnReset.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/unicenta/images/reload.png"))); // NOI18N jbtnReset.setToolTipText(bundle.getString("tooltip.transferReset")); // NOI18N jbtnReset.setMaximumSize(new java.awt.Dimension(70, 33)); jbtnReset.setMinimumSize(new java.awt.Dimension(70, 33)); jbtnReset.setPreferredSize(new java.awt.Dimension(80, 45)); jbtnReset.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jbtnResetActionPerformed(evt); } }); jLabel16.setFont(new java.awt.Font("Arial", 0, 18)); // NOI18N jLabel16.setForeground(new java.awt.Color(153, 153, 153)); jLabel16.setText("SET SERVER TO CONNECT TO"); jLabel16.setPreferredSize(new java.awt.Dimension(150, 30)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel9, 0, 0, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(cbSource, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel12, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jtxtDbType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jtxtDbServerPort, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel18, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jtxtDbDriver, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() .addComponent(jtxtDbDriverLib, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jbtnDbDriverLib, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGap(366, 366, 366) .addComponent(jbtnReset, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addGroup(layout.createSequentialGroup() .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jbtnConnect, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() .addComponent(txtDbUser, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtDbPass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jTransferPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(layout.createSequentialGroup() .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 202, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jlblSource, javax.swing.GroupLayout.PREFERRED_SIZE, 316, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, 278, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(webPBar, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGap(18, 18, 18) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap()))) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(webPBar, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel6, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jlblSource, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(cbSource, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(jLabel18, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jtxtDbDriverLib, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jbtnDbDriverLib, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jtxtDbDriver, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jtxtDbType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jtxtDbServerPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtDbUser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtDbPass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jbtnConnect, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jbtnReset, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTransferPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, Short.MAX_VALUE)) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); jLabel1.getAccessibleContext().setAccessibleName("DBDriver"); }// //GEN-END:initComponents private void jbtnTransferActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnTransferActionPerformed if (JOptionPane.showConfirmDialog(this, AppLocal.getIntString("message.transfer"), AppLocal.getIntString("message.transfertitle"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) { SwingWorker worker = new SwingWorker() { @Override protected Void doInBackground() throws Exception { webPBar.setString("Starting..."); doTransfer(); return null; } }; worker.execute(); } System.gc(); }//GEN-LAST:event_jbtnTransferActionPerformed private void jbtnResetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnResetActionPerformed reset(); deactivate(); }//GEN-LAST:event_jbtnResetActionPerformed private void jbtnConnectjButtonTestConnectionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnConnectjButtonTestConnectionActionPerformed if (!jtxtDbName.getText().equalsIgnoreCase(jlblSource.getText())) { try { String driverlib = jtxtDbDriverLib.getText(); String driver = jtxtDbDriver.getText(); if ("Derby".equals(cbSource.getSelectedItem())) { jtxtDbName.setText("/unicentaopos-database"); } String url = jtxtDbType.getText() + jtxtDbServerPort.getText() + jtxtDbName.getText() + jtxtDbParams.getText(); String user = txtDbUser.getText(); String password = new String(txtDbPass.getPassword()); ClassLoader cloader = new URLClassLoader(new URL[]{ new File(driverlib).toURI().toURL() }); DriverManager.registerDriver( new DriverWrapper((Driver) Class.forName(driver, true, cloader).newInstance())); Session session_source = new Session(url, user, password); Connection connection = session_source.getConnection(); boolean isValid = (connection == null) ? false : connection.isValid(1000); if (isValid) { if (!"Derby".equals(cbSource.getSelectedItem())) { jCBSchema.setEnabled(true); fillSchema(); } jtxtDbParams.setEnabled(true); jlblVersion.setEnabled(true); jlblDBSize.setEnabled(true); jtxtDbName.setEnabled(true); jbtnTransfer.setEnabled(true); jbtnConnect.setEnabled(false); jTransferPanel.setVisible(true); JOptionPane.showMessageDialog(this, AppLocal.getIntString("message.databaseconnectsuccess"), "Connection Test" , JOptionPane.INFORMATION_MESSAGE); } else { reset(); JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_WARNING, "Connection Error")); } } catch (InstantiationException | IllegalAccessException | MalformedURLException | ClassNotFoundException e) { JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_WARNING, AppLocal.getIntString("message.databasedrivererror"), e)); } catch (SQLException e) { JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_WARNING, AppLocal.getIntString("message.databaseconnectionerror"), e)); } catch (Exception e) { JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_WARNING, "Unknown exception", e)); } } else { JOptionPane.showMessageDialog(this , AppLocal.getIntString("message.transfercheck") , AppLocal.getIntString("message.transfertitle") , JOptionPane.WARNING_MESSAGE); jtxtDbName.setText(""); } }//GEN-LAST:event_jbtnConnectjButtonTestConnectionActionPerformed private void cbSourceActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSourceActionPerformed reset(); String dirname = System.getProperty("dirname.path"); dirname = dirname == null ? "./" : dirname; if ("Derby".equals(cbSource.getSelectedItem())) { jtxtDbDriverLib.setText(new File(new File(dirname) , "/lib/derby-10.10.2.0.jar").getAbsolutePath()); jtxtDbDriver.setText("org.apache.derby.jdbc.EmbeddedDriver"); jtxtDbType.setText("jdbc:derby:"); jtxtDbServerPort.setText("" + new File(new File(System.getProperty("user.home")) , "")); jtxtDbParams.setText(""); } else if ("PostgreSQL".equals(cbSource.getSelectedItem())) { jtxtDbDriverLib.setText(new File(new File(dirname) , "/lib/postgresql-9.4-1208.jdbc4.jar").getAbsolutePath()); jtxtDbDriver.setText("org.postgresql.Driver"); jtxtDbType.setText("jdbc:postgresql://"); jtxtDbServerPort.setText("localhost:5432/"); jtxtDbParams.setText(""); } else { jtxtDbDriverLib.setText(new File(new File(dirname) , "/lib/mysql-connector-java-5.1.39.jar").getAbsolutePath()); jtxtDbDriver.setText("com.mysql.jdbc.Driver"); jtxtDbType.setText("jdbc:mysql://"); jtxtDbServerPort.setText("localhost:3306/"); jtxtDbParams.setText("?zeroDateTimeBehavior=convertToNull"); } txtDbUser.setText(""); txtDbPass.setText(""); jlblVersion.setText(""); jlblDBSize.setText(""); }//GEN-LAST:event_cbSourceActionPerformed private void jbtnSetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnSetActionPerformed String driverlib; String driver; String url; String user; String password; String selected = null; driverlib = jtxtDbDriverLib.getText(); driver = jtxtDbDriver.getText(); if ("Derby".equals(cbSource.getSelectedItem())) { url = jtxtDbType.getText() + jtxtDbServerPort.getText() + jtxtDbParams.getText() + jtxtDbName.getText(); } else { url = jtxtDbType.getText() + jtxtDbServerPort.getText() + jCBSchema.getSelectedItem().toString() + jtxtDbParams.getText(); } user = txtDbUser.getText(); password = new String(txtDbPass.getPassword()); try { ClassLoader cloader = new URLClassLoader(new URL[]{ new File(driverlib).toURI().toURL() }); DriverManager.registerDriver( new DriverWrapper((Driver) Class.forName(driver, true, cloader).newInstance())); Session session_source1 = new Session(url, user, password); Connection connection = session_source1.getConnection(); if (!"Derby".equals(cbSource.getSelectedItem())) { selected = jCBSchema.getSelectedItem().toString(); if (selected != null) { jtxtDbName.setText(selected); } } SQL = "SELECT * FROM applications"; Statement stmt = (Statement) connection.createStatement(); rs = stmt.executeQuery(SQL); rs.next(); jlblVersion.setText(rs.getString(3)); if (null != jtxtDbType.getText() && jtxtDbName.getText() != null) { switch (jtxtDbType.getText()) { case "jdbc:mysql://": SQL = "SELECT sum(round(((data_length + index_length) " + "/ 1024 / 1024), 2)), LEFT(VERSION(),3) " + "FROM information_schema.TABLES " + "WHERE table_schema = " + "'" + selected + "'"; rs = stmt.executeQuery(SQL); rs.next(); jlblDBSize.setText(rs.getString(1) + "MB"); break; case "jdbc:derby:": SQL = "SELECT SUM((numallocatedpages * pagesize) /1024) /1024 " + "FROM SYS.SYSTABLES systabs, SYS.SYSSCHEMAS sysschemas, " + "TABLE (SYSCS_DIAG.SPACE_TABLE()) AS T2 " + "WHERE systabs.tabletype = 'T' " + "AND sysschemas.schemaid = systabs.schemaid " + "AND systabs.tableid = T2.tableid"; rs = stmt.executeQuery(SQL); rs.next(); jlblDBSize.setText(rs.getString(1) + "MB"); break; case "jdbc:postgresql://": SQL = "SELECT pg_size_pretty(pg_database_size(" + "'" + selected + "'" + "))"; rs = stmt.executeQuery(SQL); rs.next(); jlblDBSize.setText(rs.getString(1)); break; default: break; } } } catch (InstantiationException | IllegalAccessException | MalformedURLException | ClassNotFoundException e) { JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_WARNING, AppLocal.getIntString("message.databasedrivererror"), e)); } catch (SQLException e) { JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_WARNING, AppLocal.getIntString("message.databaseconnectionerror"), e)); } catch (Exception e) { JMessageDialog.showMessage(this, new MessageInf(MessageInf.SGN_WARNING, "Unknown exception", e)); } }//GEN-LAST:event_jbtnSetActionPerformed private void jbtnReset1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnReset1ActionPerformed reset(); deactivate(); }//GEN-LAST:event_jbtnReset1ActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private com.alee.laf.combobox.WebComboBox cbSource; private javax.swing.JComboBox jCBSchema; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel14; private javax.swing.JLabel jLabel15; private javax.swing.JLabel jLabel16; private javax.swing.JLabel jLabel18; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JPanel jTransferPanel; private javax.swing.JButton jbtnConnect; private javax.swing.JButton jbtnDbDriverLib; private javax.swing.JButton jbtnReset; private javax.swing.JButton jbtnReset1; private javax.swing.JButton jbtnSet; private javax.swing.JButton jbtnTransfer; private javax.swing.JLabel jlblDBSize; private javax.swing.JLabel jlblSource; private javax.swing.JLabel jlblVersion; private com.alee.laf.text.WebTextField jtxtDbDriver; private com.alee.laf.text.WebTextField jtxtDbDriverLib; private com.alee.laf.text.WebTextField jtxtDbName; private com.alee.laf.text.WebTextField jtxtDbParams; private com.alee.laf.text.WebTextField jtxtDbServerPort; private com.alee.laf.text.WebTextField jtxtDbType; private com.alee.laf.text.WebPasswordField txtDbPass; private com.alee.laf.text.WebTextField txtDbUser; private javax.swing.JTextArea txtOut; private com.alee.extended.statusbar.WebMemoryBar webMemoryBar; private com.alee.laf.progressbar.WebProgressBar webPBar; // End of variables declaration//GEN-END:variables }