
net.sourceforge.squirrel_sql.client.preferences.SQLPreferencesPanel Maven / Gradle / Ivy
package net.sourceforge.squirrel_sql.client.preferences;
/*
* Copyright (C) 2001-2003 Colin Bell
* [email protected]
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
import net.sourceforge.squirrel_sql.fw.gui.IntegerField;
import net.sourceforge.squirrel_sql.fw.gui.OutputLabel;
import net.sourceforge.squirrel_sql.fw.util.StringManager;
import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
import net.sourceforge.squirrel_sql.client.IApplication;
import net.sourceforge.squirrel_sql.client.gui.mainframe.MainFrame;
import net.sourceforge.squirrel_sql.client.util.ApplicationFiles;
/**
* This preferences panel allows maintenance of SQL preferences.
* @author Colin Bell
*/
public class SQLPreferencesPanel implements IGlobalPreferencesPanel
{
/** Internationalized strings for this class. */
private static final StringManager s_stringMgr =
StringManagerFactory.getStringManager(SQLPreferencesPanel.class);
/** Panel to be displayed in preferences dialog. */
private SQLPrefsPanel _myPanel;
private JScrollPane _myScrollPane;
/** Application API. */
private IApplication _app;
private MainFrame _mainFrame;
/**
* Default ctor.
* @param mainFrame
*/
public SQLPreferencesPanel(MainFrame mainFrame)
{
super();
_mainFrame = mainFrame;
}
/**
* Initialize this panel. Called prior to it being displayed.
*
* @param app Application API.
*
* @throws IllegalArgumentException
* if null IApplication passed.
*/
public void initialize(IApplication app)
{
if (app == null)
{
throw new IllegalArgumentException("Null IApplication passed");
}
_app = app;
getPanelComponent();
_myPanel.loadData(_app, _app.getSquirrelPreferences());
_myPanel._fileOpenInPreviousDir.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
updateFilePanel(_myPanel);
}
});
_myPanel._fileOpenInSpecifiedDir.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
updateFilePanel(_myPanel);
}
});
updateFilePanel(_myPanel);
_myPanel._fileChooseDir.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
onChooseDir(_myPanel);
}
});
}
public void uninitialize(IApplication app)
{
}
public void onChooseDir(SQLPrefsPanel pnl)
{
JFileChooser chooser = new JFileChooser(pnl._fileSpecifiedDir.getText());
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int returnVal = chooser.showOpenDialog(_mainFrame);
if (returnVal == JFileChooser.APPROVE_OPTION)
{
pnl._fileSpecifiedDir.setText(chooser.getSelectedFile().getAbsolutePath());
}
}
private void updateFilePanel(SQLPrefsPanel pnl)
{
pnl._fileChooseDir.setEnabled(pnl._fileOpenInSpecifiedDir.isSelected());
pnl._fileSpecifiedDir.setEnabled(pnl._fileOpenInSpecifiedDir.isSelected());
}
public synchronized Component getPanelComponent()
{
if (_myPanel == null)
{
_myPanel = new SQLPrefsPanel();
_myScrollPane = new JScrollPane(_myPanel);
}
return _myScrollPane;
}
public void applyChanges()
{
_myPanel.applyChanges(_app.getSquirrelPreferences());
}
public String getTitle()
{
return s_stringMgr.getString("SQLPreferencesPanel.title");
}
public String getHint()
{
return s_stringMgr.getString("SQLPreferencesPanel.hint");
}
private static final class SQLPrefsPanel extends JPanel
{
private IntegerField _loginTimeout = new IntegerField();
private IntegerField _largeScriptStmtCount = new IntegerField();
// private JCheckBox _debugJdbc = new JCheckBox(s_stringMgr.getString("SQLPreferencesPanel.jdbcdebug"));
private JRadioButton _debugJdbcDont = new JRadioButton(s_stringMgr.getString("SQLPreferencesPanel.jdbcdebugdont"));
private JRadioButton _debugJdbcStream = new JRadioButton(s_stringMgr.getString("SQLPreferencesPanel.jdbcdebugstream"));
private JRadioButton _debugJdbcWriter = new JRadioButton(s_stringMgr.getString("SQLPreferencesPanel.jdbcdebugwriter"));
private JLabel _jdbcDebugLogFileNameLbl = new OutputLabel(" ");
private JRadioButton _fileOpenInPreviousDir = new JRadioButton(s_stringMgr.getString("SQLPreferencesPanel.fileOpenInPreviousDir"));
private JRadioButton _fileOpenInSpecifiedDir = new JRadioButton(s_stringMgr.getString("SQLPreferencesPanel.fileOpenInSpecifiedDir"));;
private JTextField _fileSpecifiedDir = new JTextField();
private JButton _fileChooseDir = new JButton("...");
SQLPrefsPanel()
{
super(new GridBagLayout());
createUserInterface();
}
void loadData(IApplication app, SquirrelPreferences prefs)
{
final ApplicationFiles appFiles = new ApplicationFiles();
_loginTimeout.setInt(prefs.getLoginTimeout());
_largeScriptStmtCount.setInt(prefs.getLargeScriptStmtCount());
_debugJdbcStream.setSelected(prefs.isJdbcDebugToStream());
_debugJdbcWriter.setSelected(prefs.isJdbcDebugToWriter());
_debugJdbcDont.setSelected(prefs.isJdbcDebugDontDebug());
_jdbcDebugLogFileNameLbl.setText(appFiles.getJDBCDebugLogFile().getPath());
_fileOpenInPreviousDir.setSelected(prefs.isFileOpenInPreviousDir());
_fileOpenInSpecifiedDir.setSelected(prefs.isFileOpenInSpecifiedDir());
_fileSpecifiedDir.setText(prefs.getFileSpecifiedDir());
}
void applyChanges(SquirrelPreferences prefs)
{
prefs.setLoginTimeout(_loginTimeout.getInt());
prefs.setLargeScriptStmtCount(_largeScriptStmtCount.getInt());
if (_debugJdbcStream.isSelected())
{
prefs.doJdbcDebugToStream();
}
else if (_debugJdbcWriter.isSelected())
{
prefs.doJdbcDebugToWriter();
}
else
{
prefs.dontDoJdbcDebug();
}
prefs.setFileOpenInPreviousDir(_fileOpenInPreviousDir.isSelected());
prefs.setFileOpenInSpecifiedDir(_fileOpenInSpecifiedDir.isSelected());
String specDir = _fileSpecifiedDir.getText();
prefs.setFileSpecifiedDir(null == specDir ? "" : specDir);
}
private void createUserInterface()
{
final GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets(4, 4, 4, 4);
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1;
add(createGeneralPanel(), gbc);
++gbc.gridy;
add(createDebugPanel(), gbc);
++gbc.gridy;
add(createFilePanel(), gbc);
}
private JPanel createGeneralPanel()
{
JPanel pnl = new JPanel(new GridBagLayout());
pnl.setBorder(BorderFactory.createTitledBorder(s_stringMgr.getString("SQLPreferencesPanel.general")));
_loginTimeout.setColumns(4);
GridBagConstraints gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.WEST;
gbc.fill = GridBagConstraints.NONE;
gbc.insets = new Insets(4, 4, 4, 4);
gbc.gridx = 0;
gbc.gridy = 0;
pnl.add(new JLabel(s_stringMgr.getString("SQLPreferencesPanel.logintimeout")), gbc);
++gbc.gridx;
pnl.add(_loginTimeout, gbc);
++gbc.gridx;
gbc.weightx = 1;
pnl.add(new JLabel(s_stringMgr.getString("SQLPreferencesPanel.zerounlimited")), gbc);
_largeScriptStmtCount.setColumns(4);
gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.WEST;
gbc.fill = GridBagConstraints.NONE;
gbc.insets = new Insets(4, 4, 4, 4);
gbc.gridx = 0;
gbc.gridy = 1;
// i18n[SQLPreferencesPanel.largeScriptStmtCount=Large Script Statement Count: ]
pnl.add(new JLabel(s_stringMgr.getString("SQLPreferencesPanel.largeScriptStmtCount")), gbc);
++gbc.gridx;
pnl.add(_largeScriptStmtCount, gbc);
return pnl;
}
private JPanel createDebugPanel()
{
final ButtonGroup btnGroup = new ButtonGroup();
btnGroup.add(_debugJdbcDont);
btnGroup.add(_debugJdbcStream);
btnGroup.add(_debugJdbcWriter);
JPanel pnl = new JPanel(new GridBagLayout());
pnl.setBorder(BorderFactory.createTitledBorder(s_stringMgr.getString("SQLPreferencesPanel.debug")));
final GridBagConstraints gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.WEST;
gbc.insets = new Insets(4, 4, 4, 4);
gbc.gridx = 0;
gbc.gridy = 0;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridx = 0;
++gbc.gridy;
gbc.gridwidth = GridBagConstraints.REMAINDER;
pnl.add(_debugJdbcDont, gbc);
++gbc.gridy;
pnl.add(_debugJdbcStream, gbc);
++gbc.gridy;
pnl.add(_debugJdbcWriter, gbc);
gbc.gridx = 0;
++gbc.gridy;
gbc.gridwidth = 1;
pnl.add(new JLabel(s_stringMgr.getString("SQLPreferencesPanel.jdbcdebugfile"), SwingConstants.RIGHT), gbc);
++gbc.gridx;
gbc.weightx = 1;
gbc.gridwidth = GridBagConstraints.REMAINDER;
pnl.add(_jdbcDebugLogFileNameLbl, gbc);
return pnl;
}
private Component createFilePanel()
{
final ButtonGroup btnGroup = new ButtonGroup();
btnGroup.add(_fileOpenInPreviousDir);
btnGroup.add(_fileOpenInSpecifiedDir);
JPanel pnl = new JPanel(new GridBagLayout());
pnl.setBorder(BorderFactory.createTitledBorder(s_stringMgr.getString("SQLPreferencesPanel.file")));
GridBagConstraints gbc;
gbc = new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0);
pnl.add(_fileOpenInPreviousDir, gbc);
gbc = new GridBagConstraints(1,0,2,1,1,0,GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(5,5,5,5),0,0);
pnl.add(new JPanel(), gbc);
gbc = new GridBagConstraints(0,1,1,1,0,0,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0,5,5,5),0,0);
pnl.add(_fileOpenInSpecifiedDir, gbc);
gbc = new GridBagConstraints(1,1,1,1,1,0,GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0,5,5,5),0,0);
pnl.add(_fileSpecifiedDir, gbc);
gbc = new GridBagConstraints(2,1,1,1,0,0,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0,5,5,5),0,0);
pnl.add(_fileChooseDir, gbc);
return pnl;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy