Java tutorial
/* * Copyright (C) 2008 Michael Romankiewicz * microm at users.sourceforge.net * * 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 2 * of the License, or 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package net.sourceforge.squirrel_sql.plugins.firebirdmanager.gui; import com.jgoodies.forms.layout.CellConstraints; import com.jgoodies.forms.layout.FormLayout; import net.sourceforge.squirrel_sql.client.IApplication; import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.DialogWidget; import net.sourceforge.squirrel_sql.fw.util.StringManager; import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; import net.sourceforge.squirrel_sql.fw.util.log.ILogger; import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; import net.sourceforge.squirrel_sql.plugins.firebirdmanager.FirebirdManagerHelper; import net.sourceforge.squirrel_sql.plugins.firebirdmanager.pref.FirebirdManagerCreateDatabasePreferenceBean; import net.sourceforge.squirrel_sql.plugins.firebirdmanager.pref.FirebirdManagerPreferenceBean; import net.sourceforge.squirrel_sql.plugins.firebirdmanager.pref.PreferencesManager; import org.firebirdsql.management.FBMaintenanceManager; import org.firebirdsql.management.FBManager; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.*; import java.sql.SQLException; import java.util.Properties; /** * Internal frame for database creation * @author Michael Romankiewicz */ public class FirebirdManagerCreateDatabaseFrame extends DialogWidget implements IFirebirdManagerFrame, ActionListener, KeyListener { private static final long serialVersionUID = 218636820715664639L; private final String CR = System.getProperty("line.separator", "\n"); // variables // ======================================================================== // non visible // ------------------------------------------------------------------------ // Logger for this class private final static ILogger log = LoggerController.createLogger(FirebirdManagerCreateDatabaseFrame.class); private static final StringManager stringManager = StringManagerFactory .getStringManager(FirebirdManagerCreateDatabaseFrame.class); private FirebirdManagerPreferenceBean globalPreferencesBean; // session preferences private FirebirdManagerCreateDatabasePreferenceBean sessionPreferencesBean = null; // visible (gui) // ------------------------------------------------------------------------ private JLabel lblDirectory = new JLabel(); private JLabel lblFilename = new JLabel(); private JLabel lblServer = new JLabel(); private JLabel lblUsername = new JLabel(); private JLabel lblPassword = new JLabel(); private JLabel lblPort = new JLabel(); private JTextField jtextfieldServer = new JTextField(); private JTextField jtextfieldPort = new JTextField(); private JTextField jtextfieldDatabaseDirectory = new JTextField(); private JTextField jtextfieldFilename = new JTextField(); private JButton jbuttonDatabaseDirectory = new JButton(""); private JTextField jtextfieldUsername = new JTextField(); private JPasswordField jpasswordfield = new JPasswordField(); private JButton jbuttonCreate = new JButton("create"); private JSeparator horizontallinecomponent1 = new JSeparator(); private JLabel lblSQLDialect = new JLabel(); private JRadioButton radioButtonDialect1 = new JRadioButton(); private ButtonGroup buttongroup1 = new ButtonGroup(); private JRadioButton radioButtonDialect3 = new JRadioButton(); private JButton jbuttonLoadProp = new JButton(); private JButton jbuttonSaveProp = new JButton(); private IApplication _application; /** * Constructor * @param application */ public FirebirdManagerCreateDatabaseFrame(IApplication application) { super("Firebird manager - " + stringManager.getString("createdatabase.title"), true, true, true, true, application); _application = application; initLayout(); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setVisible(true); this.moveToFront(); } /** * I18n texts */ private interface i18n { // Labels String CREATEDB_LBL_DIRECTORY = stringManager.getString("createdatabase.label.directory"); String CREATEDB_TOOLTIP_DIRECTORY = stringManager.getString("createdatabase.tooltip.directory"); String CREATEDB_LBL_FILENAME = stringManager.getString("createdatabase.label.filename"); String CREATEDB_LBL_SERVER = stringManager.getString("createdatabase.label.server"); String CREATEDB_LBL_PORT = stringManager.getString("createdatabase.label.port"); String CREATEDB_LBL_USERNAME = stringManager.getString("createdatabase.label.username"); String CREATEDB_LBL_PASSWORD = stringManager.getString("createdatabase.label.password"); String CREATEDB_LBL_CREATE = stringManager.getString("createdatabase.label.create"); String CREATEDB_TOOLTIP_CREATE = stringManager.getString("createdatabase.tooltip.create"); String GLOBAL_TOOLTIP_BTN_PROP_LOAD = stringManager.getString("global.tooltip.btn.prop.load"); String GLOBAL_TOOLTIP_BTN_PROP_SAVE = stringManager.getString("global.tooltip.btn.prop.save"); // Messages String CREATEDB_MSG_WARNING = stringManager.getString("createdatabase.message.warning"); String CREATEDB_MSG_FILEEXISTS = stringManager.getString("createdatabase.message.fileexists"); String CREATEDB_MSG_CANCELED = stringManager.getString("createdatabase.message.canceled"); String CREATEDB_MSG_SUCCEDED = stringManager.getString("createdatabase.message.succeded"); String CREATEDB_MSG_FAILED = stringManager.getString("createdatabase.message.failed"); String LOAD_PROP_FAILED = stringManager.getString("global.error.prop.load"); String SAVE_PROP_FAILED = stringManager.getString("global.error.prop.save"); String CREATEDB_INFO_PROPFILE = stringManager.getString("createdatabase.info.properties.file"); String GLOBAL_WARNING_FILE_EXISTS = stringManager.getString("global.warning.file.exists"); String GLOBAL_TITLE_WARNING = stringManager.getString("global.title.warning"); // Errors String CREATEDB_ERROR_DIRECTORY_MISSING = stringManager.getString("createdatabase.error.directory.missing"); String CREATEDB_ERROR_DIRECTORY_DOESNOTEXISTS = stringManager .getString("createdatabase.error.directory.doesnotexists"); String CREATEDB_ERROR_FILENAME_MISSING = stringManager.getString("createdatabase.error.filename.missing"); String CREATEDB_ERROR_SERVER_MISSING = stringManager.getString("createdatabase.error.server.missing"); String CREATEDB_ERROR_PORT_MISSING = stringManager.getString("createdatabase.error.port.missing"); String CREATEDB_ERROR_PORT_NOINTEGER = stringManager.getString("createdatabase.error.port.nointeger"); String CREATEDB_ERROR_USERNAME_MISSING = stringManager.getString("createdatabase.error.username.missing"); } private void initLayout() { this.getContentPane().setLayout(new BorderLayout()); this.getContentPane().add(createPanelCreateDB()); initVisualObjects(); readPreferences(); } private JPanel createPanelCreateDB() { JPanel jpanelCreateDB = new JPanel(); FormLayout formlayout1 = new FormLayout( "FILL:5DLU:NONE,RIGHT:DEFAULT:NONE,FILL:3DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:3DLU:NONE,FILL:15DLU:NONE,FILL:3DLU:NONE,FILL:10DLU:NONE,FILL:3DLU:NONE,FILL:15DLU:NONE,FILL:3DLU:NONE,FILL:15DLU:NONE,FILL:5DLU:NONE", "CENTER:5DLU:NONE,CENTER:DEFAULT:NONE,CENTER:5DLU:NONE,CENTER:DEFAULT:NONE,CENTER:5DLU:NONE,CENTER:DEFAULT:NONE,CENTER:5DLU:NONE,CENTER:DEFAULT:NONE,CENTER:5DLU:NONE,CENTER:DEFAULT:NONE,CENTER:5DLU:NONE,CENTER:DEFAULT:NONE,CENTER:10DLU:NONE,CENTER:DEFAULT:NONE,CENTER:5DLU:NONE"); CellConstraints cc = new CellConstraints(); jpanelCreateDB.setLayout(formlayout1); lblDirectory.setName("lblDirectory"); lblDirectory.setText("directory"); jpanelCreateDB.add(lblDirectory, cc.xy(2, 2)); lblFilename.setName("lblFilename"); lblFilename.setText("filename"); jpanelCreateDB.add(lblFilename, cc.xy(2, 4)); lblServer.setName("lblServer"); lblServer.setText("server"); jpanelCreateDB.add(lblServer, cc.xy(2, 6)); lblUsername.setName("lblUsername"); lblUsername.setText("username"); jpanelCreateDB.add(lblUsername, cc.xy(2, 8)); lblPassword.setName("lblPassword"); lblPassword.setText("password"); jpanelCreateDB.add(lblPassword, cc.xy(2, 10)); jtextfieldDatabaseDirectory.setName("jtextfieldDatabaseDirectory"); jpanelCreateDB.add(jtextfieldDatabaseDirectory, cc.xy(4, 2)); jtextfieldFilename.setName("jtextfieldFilename"); jpanelCreateDB.add(jtextfieldFilename, cc.xywh(4, 4, 9, 1)); jtextfieldServer.setName("jtextfieldServer"); jpanelCreateDB.add(jtextfieldServer, cc.xy(4, 6)); jtextfieldUsername.setName("jtextfieldUsername"); jpanelCreateDB.add(jtextfieldUsername, cc.xywh(4, 8, 9, 1)); jpasswordfield.setName("jpasswordfield"); jpanelCreateDB.add(jpasswordfield, cc.xywh(4, 10, 9, 1)); lblPort.setName("lblPort"); lblPort.setText("port"); jpanelCreateDB.add(lblPort, new CellConstraints(6, 6, 3, 1, CellConstraints.RIGHT, CellConstraints.DEFAULT)); jbuttonDatabaseDirectory.setActionCommand("JButton"); jbuttonDatabaseDirectory.setName("jbuttonDatabaseDirectory"); jbuttonDatabaseDirectory.setText("JButton"); jpanelCreateDB.add(jbuttonDatabaseDirectory, cc.xy(6, 2)); jtextfieldPort.setName("jtextfieldPort"); jtextfieldPort.setSelectionEnd(4); jtextfieldPort.setSelectionStart(4); jtextfieldPort.setText("3050"); jpanelCreateDB.add(jtextfieldPort, cc.xywh(10, 6, 3, 1)); jbuttonCreate.setActionCommand("Create"); jbuttonCreate.setName("jbuttonCreate"); jbuttonCreate.setText("Create"); jpanelCreateDB.add(jbuttonCreate, cc.xywh(6, 14, 7, 1)); jpanelCreateDB.add(horizontallinecomponent1, cc.xywh(2, 13, 11, 1)); jpanelCreateDB.add(createPanelSQLDialect(), cc.xy(4, 12)); jbuttonLoadProp.setName("jbuttonLoadProp"); jbuttonLoadProp.setText("..."); jpanelCreateDB.add(jbuttonLoadProp, cc.xy(10, 2)); jbuttonSaveProp.setActionCommand("..."); jbuttonSaveProp.setText("..."); jpanelCreateDB.add(jbuttonSaveProp, cc.xy(12, 2)); return jpanelCreateDB; } public JPanel createPanelSQLDialect() { JPanel jpanelSQLDialect = new JPanel(); FormLayout formlayout1 = new FormLayout( "FILL:DEFAULT:NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE", "CENTER:DEFAULT:NONE"); CellConstraints cc = new CellConstraints(); jpanelSQLDialect.setLayout(formlayout1); lblSQLDialect.setName("lblSQLDialect"); lblSQLDialect.setText("sql dialect"); jpanelSQLDialect.add(lblSQLDialect, cc.xy(1, 1)); radioButtonDialect1.setActionCommand("1"); radioButtonDialect1.setName("radioButtonDialect1"); radioButtonDialect1.setText("1"); buttongroup1.add(radioButtonDialect1); jpanelSQLDialect.add(radioButtonDialect1, cc.xy(3, 1)); radioButtonDialect3.setActionCommand("3"); radioButtonDialect3.setName("radioButtonDialect3"); radioButtonDialect3.setText("3"); buttongroup1.add(radioButtonDialect3); jpanelSQLDialect.add(radioButtonDialect3, cc.xy(5, 1)); return jpanelSQLDialect; } public void setFocusToFirstEmptyInputField() { if (jtextfieldDatabaseDirectory.getText().length() == 0) { jtextfieldDatabaseDirectory.requestFocusInWindow(); } else { jtextfieldFilename.requestFocusInWindow(); } } /** * Configure the visual components with texts, icons and listeners */ private void initVisualObjects() { Dimension dim = new Dimension(300, 20); lblDirectory.setText(i18n.CREATEDB_LBL_DIRECTORY); jtextfieldDatabaseDirectory.addKeyListener(this); jtextfieldDatabaseDirectory.setToolTipText(i18n.CREATEDB_TOOLTIP_DIRECTORY); jbuttonDatabaseDirectory.setText(""); jbuttonDatabaseDirectory.setIcon(FirebirdManagerHelper.loadIcon("fileopen16x16.png")); jbuttonDatabaseDirectory.setEnabled(jtextfieldServer.getText().toUpperCase().trim().equals("LOCALHOST")); jbuttonDatabaseDirectory.setToolTipText(jtextfieldDatabaseDirectory.getToolTipText()); jbuttonDatabaseDirectory.addActionListener(this); jbuttonDatabaseDirectory.addKeyListener(this); lblFilename.setText(i18n.CREATEDB_LBL_FILENAME); jtextfieldFilename.setPreferredSize(dim); jtextfieldFilename.addKeyListener(this); lblServer.setText(i18n.CREATEDB_LBL_SERVER); jtextfieldServer.addKeyListener(this); lblPort.setText(i18n.CREATEDB_LBL_PORT); jtextfieldPort.addKeyListener(this); lblUsername.setText(i18n.CREATEDB_LBL_USERNAME); jtextfieldUsername.addKeyListener(this); lblPassword.setText(i18n.CREATEDB_LBL_PASSWORD); jtextfieldPort.setText("3050"); jpasswordfield.addKeyListener(this); radioButtonDialect1.setSelected(true); jbuttonCreate.setText(i18n.CREATEDB_LBL_CREATE); jbuttonCreate.setToolTipText(i18n.CREATEDB_TOOLTIP_CREATE); jbuttonCreate.setIcon(FirebirdManagerHelper.loadIcon("execute16x16.png")); jbuttonCreate.addActionListener(this); jbuttonCreate.addKeyListener(this); jbuttonLoadProp.setText(""); jbuttonLoadProp.setToolTipText(i18n.GLOBAL_TOOLTIP_BTN_PROP_LOAD); jbuttonLoadProp.setIcon(FirebirdManagerHelper.loadIcon("fileopen16x16.png")); jbuttonLoadProp.addActionListener(this); jbuttonLoadProp.addKeyListener(this); jbuttonSaveProp.setText(""); jbuttonSaveProp.setToolTipText(i18n.GLOBAL_TOOLTIP_BTN_PROP_SAVE); jbuttonSaveProp.setIcon(FirebirdManagerHelper.loadIcon("save16x16.png")); jbuttonSaveProp.addActionListener(this); jbuttonSaveProp.addKeyListener(this); } /** * Set input fields with the last saved session preferences when exists * <br>or otherwise with the global preferences */ private void readPreferences() { globalPreferencesBean = PreferencesManager.getGlobalPreferences(); jtextfieldServer.setText(globalPreferencesBean.getServer()); jtextfieldPort.setText(globalPreferencesBean.getPort()); jtextfieldUsername.setText(globalPreferencesBean.getUser()); // preferences from the last session sessionPreferencesBean = (FirebirdManagerCreateDatabasePreferenceBean) PreferencesManager .loadPreferences(PreferencesManager.PREFERENCES_BEAN_CREATE_DATABASE); if (sessionPreferencesBean.getUser().length() > 0) jtextfieldUsername.setText(sessionPreferencesBean.getUser()); if (sessionPreferencesBean.getServer().length() > 0) jtextfieldServer.setText(sessionPreferencesBean.getServer()); if (sessionPreferencesBean.getPort().length() > 0) jtextfieldPort.setText(sessionPreferencesBean.getPort()); if (sessionPreferencesBean.getSqlDialect() > 0) { if (sessionPreferencesBean.getSqlDialect() == 1) radioButtonDialect1.setSelected(true); else radioButtonDialect3.setSelected(true); } controlButtonDatabaseFolder(); } /** * Load properties from file */ private void loadProperties() { globalPreferencesBean = PreferencesManager.getGlobalPreferences(); File file = FirebirdManagerHelper.getPropertiesFile(false, globalPreferencesBean.getPropertiesFolder(), "fcp", i18n.CREATEDB_INFO_PROPFILE); if (file != null) { Properties prop = new Properties(); try { prop.load(new FileInputStream(file)); } catch (FileNotFoundException e) { JOptionPane.showMessageDialog(_application.getMainFrame(), i18n.LOAD_PROP_FAILED); log.error(e.getLocalizedMessage()); } catch (IOException e) { JOptionPane.showMessageDialog(_application.getMainFrame(), i18n.LOAD_PROP_FAILED); log.error(e.getLocalizedMessage()); } // load properties and fill missing entries with the global preferences jtextfieldServer.setText(prop.getProperty("server", globalPreferencesBean.getServer())); jtextfieldPort.setText(prop.getProperty("port", globalPreferencesBean.getPort())); jtextfieldDatabaseDirectory .setText(prop.getProperty("directory", globalPreferencesBean.getDatabaseFolder())); jtextfieldFilename.setText(""); jtextfieldUsername.setText(prop.getProperty("user", globalPreferencesBean.getUser())); if ("1".equals(prop.getProperty("dialect", "1"))) { radioButtonDialect1.setSelected(true); } else { radioButtonDialect3.setSelected(true); } controlButtonDatabaseFolder(); } } /** * Load properties from file */ private void saveProperties() { File file = FirebirdManagerHelper.getPropertiesFile(true, globalPreferencesBean.getPropertiesFolder(), "fcp", i18n.CREATEDB_INFO_PROPFILE); if (file != null) { boolean saveFile = true; if (file.exists()) { saveFile = JOptionPane.showConfirmDialog(_application.getMainFrame(), i18n.GLOBAL_WARNING_FILE_EXISTS, i18n.GLOBAL_TITLE_WARNING, JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION; } if (saveFile) { Properties prop = new Properties(); prop.put("server", jtextfieldServer.getText()); prop.put("port", jtextfieldPort.getText()); prop.put("directory", jtextfieldDatabaseDirectory.getText()); prop.put("user", jtextfieldUsername.getText()); prop.put("dialect", radioButtonDialect1.isSelected() ? "1" : "3"); try { prop.store(new FileOutputStream(file), "FirebirdManager - Create database properties"); } catch (FileNotFoundException e) { JOptionPane.showMessageDialog(_application.getMainFrame(), i18n.SAVE_PROP_FAILED); log.error(e.getLocalizedMessage()); } catch (IOException e) { JOptionPane.showMessageDialog(_application.getMainFrame(), i18n.SAVE_PROP_FAILED); log.error(e.getLocalizedMessage()); } } } } /** * Save the session preferences */ private void saveSessionPreferences() { sessionPreferencesBean.setUser(jtextfieldUsername.getText()); sessionPreferencesBean.setServer(jtextfieldServer.getText()); sessionPreferencesBean.setPort(jtextfieldPort.getText()); sessionPreferencesBean.setDatabaseFolder(jtextfieldDatabaseDirectory.getText()); sessionPreferencesBean.setSqlDialect(radioButtonDialect1.isSelected() ? 1 : 3); PreferencesManager.savePreferences(sessionPreferencesBean, PreferencesManager.PREFERENCES_BEAN_CREATE_DATABASE); } /** * Check for correct/missing input * @return true = allright, false = error */ private boolean isInputOK() { StringBuffer bufError = new StringBuffer(); boolean focusSet = false; if (jtextfieldDatabaseDirectory.getText().trim().length() == 0) { bufError.append(i18n.CREATEDB_ERROR_DIRECTORY_MISSING + CR); jtextfieldDatabaseDirectory.requestFocusInWindow(); focusSet = true; } else { File dir = new File(jtextfieldDatabaseDirectory.getText().trim()); if (!dir.exists()) { bufError.append(i18n.CREATEDB_ERROR_DIRECTORY_DOESNOTEXISTS + CR); } jtextfieldDatabaseDirectory.requestFocusInWindow(); focusSet = true; } if (jtextfieldFilename.getText().trim().length() == 0) { bufError.append(i18n.CREATEDB_ERROR_FILENAME_MISSING + CR); if (!focusSet) { jtextfieldFilename.requestFocusInWindow(); focusSet = true; } } if (jtextfieldServer.getText().trim().length() == 0) { bufError.append(i18n.CREATEDB_ERROR_SERVER_MISSING + CR); if (!focusSet) { jtextfieldServer.requestFocusInWindow(); focusSet = true; } } if (jtextfieldPort.getText().trim().length() == 0) { bufError.append(i18n.CREATEDB_ERROR_PORT_MISSING + CR); if (!focusSet) { jtextfieldPort.requestFocusInWindow(); focusSet = true; } } else { try { Integer.parseInt(jtextfieldPort.getText()); } catch (NumberFormatException e) { bufError.append(i18n.CREATEDB_ERROR_PORT_NOINTEGER + CR); if (!focusSet) { jtextfieldPort.requestFocusInWindow(); focusSet = true; } } } if (jtextfieldUsername.getText().trim().length() == 0) { bufError.append(i18n.CREATEDB_ERROR_USERNAME_MISSING + CR); if (!focusSet) { jtextfieldUsername.requestFocusInWindow(); focusSet = true; } } if (bufError.length() != 0) { JOptionPane.showMessageDialog(_application.getMainFrame(), bufError.toString()); } return bufError.length() == 0; } /** * Select a target directory */ private void selectDirectory() { if (jtextfieldServer.getText().trim().toUpperCase().equals("LOCALHOST")) { String sFilename = FirebirdManagerHelper.getFileOrDir(jtextfieldDatabaseDirectory.getText(), false); if (!sFilename.equals("")) jtextfieldDatabaseDirectory.setText(sFilename); } } /** * The create database working method */ private void createDatabase() { if (!isInputOK()) return; String filename = jtextfieldDatabaseDirectory.getText().trim() + "/" + jtextfieldFilename.getText(); File file = new File(filename); FBManager fbManager = new FBManager(); fbManager.setServer(jtextfieldServer.getText()); fbManager.setPort(Integer.parseInt(jtextfieldPort.getText())); if (file.exists()) { String msg = i18n.CREATEDB_MSG_FILEEXISTS.replaceAll("{0}", filename); if (JOptionPane.showConfirmDialog(_application.getMainFrame(), msg, i18n.CREATEDB_MSG_WARNING, JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) fbManager.setForceCreate(true); else { JOptionPane.showMessageDialog(_application.getMainFrame(), i18n.CREATEDB_MSG_CANCELED); return; } } // set dialog FBMaintenanceManager mm = new FBMaintenanceManager(); try { int sqlDialect = radioButtonDialect1.isSelected() ? 1 : 3; mm.setDatabaseDialect(sqlDialect); } catch (SQLException e) { log.error(e.getLocalizedMessage()); } try { fbManager.start(); fbManager.createDatabase(filename, jtextfieldUsername.getText(), new String(jpasswordfield.getPassword())); fbManager.stop(); JOptionPane.showMessageDialog(_application.getMainFrame(), i18n.CREATEDB_MSG_SUCCEDED); saveSessionPreferences(); } catch (Exception e) { JOptionPane.showMessageDialog(_application.getMainFrame(), i18n.CREATEDB_MSG_FAILED + CR + CR + e.getLocalizedMessage()); log.error(e.getLocalizedMessage()); } } /** * Enable the button if server = localhost, else disable the button */ private void controlButtonDatabaseFolder() { jbuttonDatabaseDirectory.setEnabled(jtextfieldServer.getText().toUpperCase().trim().equals("LOCALHOST")); setDatabaseFolder(); } /** * Set the database target folder from the global preferences */ private void setDatabaseFolder() { if (jbuttonDatabaseDirectory.isEnabled() && jtextfieldDatabaseDirectory.getText().trim().length() == 0) { if (sessionPreferencesBean.getDatabaseFolder().length() > 0) { jtextfieldDatabaseDirectory.setText(sessionPreferencesBean.getDatabaseFolder()); } else { jtextfieldDatabaseDirectory.setText(globalPreferencesBean.getDatabaseFolder()); } } } // ######################################################################## // ########## events // ######################################################################## // ------------------------------------------------------------------------ public void actionPerformed(ActionEvent e) { if (e.getSource() == jbuttonDatabaseDirectory) { selectDirectory(); } else if (e.getSource() == jbuttonCreate) { createDatabase(); } else if (e.getSource() == jbuttonLoadProp) { loadProperties(); } else if (e.getSource() == jbuttonSaveProp) { saveProperties(); } } // ------------------------------------------------------------------------ public void keyTyped(KeyEvent e) { } public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { if (e.getSource() == jtextfieldDatabaseDirectory || e.getSource() == jtextfieldFilename || e.getSource() == jtextfieldServer || e.getSource() == jtextfieldPort || e.getSource() == jtextfieldUsername || e.getSource() == jpasswordfield || e.getSource() == jbuttonCreate) createDatabase(); else if (e.getSource() == jbuttonDatabaseDirectory) selectDirectory(); } } public void keyReleased(KeyEvent e) { if (e.getSource() == jtextfieldServer) { controlButtonDatabaseFolder(); } } }