/* * This program 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. * * This program 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 * this program. If not, see . */ package com.l2jserver.tools.dbinstaller.gui; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.prefs.Preferences; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.SpringLayout; import javax.swing.SwingConstants; import com.l2jserver.tools.dbinstaller.RunTasks; import com.l2jserver.tools.dbinstaller.util.mysql.MySqlConnect; import com.l2jserver.tools.dbinstaller.util.swing.SpringUtilities; import com.l2jserver.tools.images.ImagesTable; /** * @author mrTJO */ public class DBConfigGUI extends JFrame { private static final long serialVersionUID = -8391792251140797076L; JTextField _dbHost; JTextField _dbPort; JTextField _dbUser; JPasswordField _dbPass; JTextField _dbDbse; String _db; String _dir; String _cleanUp; Preferences _prop; public DBConfigGUI(String db, String dir, String cleanUp) { super("L2J Database Installer"); setLayout(new SpringLayout()); setDefaultLookAndFeelDecorated(true); setIconImage(ImagesTable.getImage("l2j.png").getImage()); _db = db; _dir = dir; _cleanUp = cleanUp; int width = 260; int height = 220; Dimension resolution = Toolkit.getDefaultToolkit().getScreenSize(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds((resolution.width - width) / 2, (resolution.height - height) / 2, width, height); setResizable(false); _prop = Preferences.userRoot(); // Host JLabel labelDbHost = new JLabel("Host: ", SwingConstants.LEFT); add(labelDbHost); _dbHost = new JTextField(15); _dbHost.setText(_prop.get("dbHost_" + db, "localhost")); labelDbHost.setLabelFor(_dbHost); add(_dbHost); // Port JLabel labelDbPort = new JLabel("Port: ", SwingConstants.LEFT); add(labelDbPort); _dbPort = new JTextField(15); _dbPort.setText(_prop.get("dbPort_" + db, "3306")); labelDbPort.setLabelFor(_dbPort); add(_dbPort); // Username JLabel labelDbUser = new JLabel("Username: ", SwingConstants.LEFT); add(labelDbUser); _dbUser = new JTextField(15); _dbUser.setText(_prop.get("dbUser_" + db, "root")); labelDbUser.setLabelFor(_dbUser); add(_dbUser); // Password JLabel labelDbPass = new JLabel("Password: ", SwingConstants.LEFT); add(labelDbPass); _dbPass = new JPasswordField(15); _dbPass.setText(_prop.get("dbPass_" + db, "")); labelDbPass.setLabelFor(_dbPass); add(_dbPass); // Database JLabel labelDbDbse = new JLabel("Database: ", SwingConstants.LEFT); add(labelDbDbse); _dbDbse = new JTextField(15); _dbDbse.setText(_prop.get("dbDbse_" + db, db)); labelDbDbse.setLabelFor(_dbDbse); add(_dbDbse); ActionListener cancelListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }; // Cancel JButton btnCancel = new JButton("Cancel"); btnCancel.addActionListener(cancelListener); add(btnCancel); ActionListener connectListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { MySqlConnect connector = new MySqlConnect(_dbHost.getText(), _dbPort.getText(), _dbUser.getText(), new String(_dbPass.getPassword()), _dbDbse.getText(), false); if (connector.getConnection() != null) { _prop.put("dbHost_" + _db, _dbHost.getText()); _prop.put("dbPort_" + _db, _dbPort.getText()); _prop.put("dbUser_" + _db, _dbUser.getText()); _prop.put("dbDbse_" + _db, _dbDbse.getText()); boolean cleanInstall = false; DBInstallerGUI dbi = new DBInstallerGUI(connector.getConnection()); setVisible(false); Object[] options = { "Full Install", "Upgrade", "Exit" }; int n = JOptionPane.showOptionDialog(null, "Select Installation Type", "Installation Type", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[1]); if (n == 2 || n == -1) System.exit(0); if (n == 0) { int conf = JOptionPane.showConfirmDialog(null, "Do you really want to destroy your db?", "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE); if (conf == 1) System.exit(0); cleanInstall = true; } dbi.setVisible(true); RunTasks task = new RunTasks(dbi, _db, _dir, _cleanUp, cleanInstall); task.setPriority(Thread.MAX_PRIORITY); task.start(); } } }; // Connect JButton btnConnect = new JButton("Connect"); btnConnect.addActionListener(connectListener); add(btnConnect); SpringUtilities.makeCompactGrid(getContentPane(), 6, 2, 5, 5, 5, 5); setVisible(true); } }