PreferencesDialog.java
| Index Score | ||
|---|---|---|
![]() |
![]() |
xnap.gui |
![]() |
![]() |
XNap |
View: Reasons, Metrics, Source Code
These are the metrics that contribute to the Enerjy Score for this file, ranked by impact. So the metrics listed at the top influence the score to a greater extent that the metrics listed at the bottom.
/*
* Java Napster version x.yz (for current version number as well as for
* additional information see version.txt)
*
* Previous versions of this program were written by Florian Student
* and Michael Ransburg available at www.weblicity.de/jnapster and
* http://www.tux.org/~daneel/content/projects/10.shtml respectively.
*
*
* 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
* (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, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package xnap.gui;
import xnap.util.*;
import xnap.util.audio.*;
import xnap.*;
// import xnap.net.limewire.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
// import com.limegroup.gnutella.*;
public class PreferencesDialog extends JDialog implements ActionListener {
//--- Data field(s) ---
private static PreferencesDialog me = null;
private Preferences prefs = Preferences.getInstance();
// private SettingsManager setmanager = Limewire.getSettingsManager();
// general tab
private JTextField jteUsername;
private JPasswordField jtePassword;
private JTextField jteEmail;
private JTextField jteMaxConsoleLines;
private JCheckBox jcShowSplash;
private JCheckBox jcShowCloseDialog;
private JCheckBox jcShowIcons;
private JCheckBox jcAutoVersionCheck;
// files tab
private JTextField jteIncompleteDir;
private JButton jbIncompleteDir;
private JCheckBox jcDelIncompleteFiles;
private JTextField jteDownloadDir;
private JButton jbDownloadDir;
private JTextField jteUploadDirs;
private JButton jbUploadDirs;
private ButtonGroup bgMP3PlayerType;
private JTextField jteMP3PlayerCmd;
private JCheckBox jcUseOpenFileAction;
// transfer tab
private JCheckBox jcRemoveDuplicateResults;
private JCheckBox jcFilterResults;
private JTextField jteMaxDownloads;
private JTextField jteMaxUploads;
private JTextField jteMaxSearchResults;
// network tab
private JComboBox jcLinkSpeed;
private JCheckBox jcUseHttpProxy;
private JTextField jteHttpProxyHost;
private JTextField jteHttpProxyPort;
private JCheckBox jcUseSocksProxy;
private JTextField jteSocksProxyHost;
private JTextField jteSocksProxyPort;
// gift tab
private JTextField jteGiftDaemon;
private JButton jbGiftDaemon;
private JTextField jteGiftHost;
private JTextField jteGiftPort;
// nap tab
private JTextField jteClient;
private JCheckBox jcAutoFetchNapigator;
private JTextField jteLocalPort;
private JCheckBox jcUseSinglePort;
private JTextField jteMaxSearchServers;
private JTextField jteMaxAutoconnectServers;
private JCheckBox jcUseAutoconnector;
// limewire tab
// private JCheckBox jcUseLimewire;
// private JTextField jteMaxIncoming;
//--- Constructor(s) ---
private PreferencesDialog() {
setTitle("Preferences");
/* general tab */
JPanel jpGeneral = new JPanel();
GridBagLayout gbGeneral = new GridBagLayout();
jpGeneral.setLayout(gbGeneral);
GridBagHelper.addLabel(jpGeneral, gbGeneral, "Username");
jteUsername = new JTextField(prefs.getUsername(), 20);
GridBagHelper.addComponent(jpGeneral, gbGeneral, jteUsername);
GridBagHelper.addLabel(jpGeneral, gbGeneral, "Password");
jtePassword = new JPasswordField(prefs.getPassword(), 20);
GridBagHelper.addComponent(jpGeneral, gbGeneral, jtePassword);
GridBagHelper.addLabel(jpGeneral, gbGeneral, "Email");
jteEmail = new JTextField(prefs.getEmail(), 20);
GridBagHelper.addComponent(jpGeneral, gbGeneral, jteEmail);
GridBagHelper.addLabel(jpGeneral, gbGeneral,
"Max Lines Of Console Output");
jteMaxConsoleLines =
new ValidatedTextField(prefs.getMaxConsoleLines() + "",
ValidatedTextField.NUMBERS_INT);
GridBagHelper.addComponent(jpGeneral, gbGeneral, jteMaxConsoleLines);
GridBagHelper.addLabel(jpGeneral, gbGeneral, "");
jcShowSplash = new JCheckBox("Show Splash Screen",
prefs.getShowSplash());
GridBagHelper.addComponent(jpGeneral, gbGeneral, jcShowSplash);
GridBagHelper.addLabel(jpGeneral, gbGeneral, "");
jcShowIcons = new JCheckBox("Display Icons instead of Text Buttons",
prefs.getShowIcons());
GridBagHelper.addComponent(jpGeneral, gbGeneral, jcShowIcons);
GridBagHelper.addLabel(jpGeneral, gbGeneral, "");
jcShowCloseDialog = new JCheckBox("Show CloseDialog",
prefs.getShowCloseDialog());
GridBagHelper.addComponent(jpGeneral, gbGeneral, jcShowCloseDialog);
GridBagHelper.addLabel(jpGeneral, gbGeneral, "");
jcAutoVersionCheck = new JCheckBox("Check For New Version On Startup",
prefs.getAutoVersionCheck());
GridBagHelper.addComponent(jpGeneral, gbGeneral, jcAutoVersionCheck);
GridBagHelper.addVerticalSpacer(jpGeneral, gbGeneral);
/* files tab */
JPanel jpFiles = new JPanel();
GridBagLayout gbFiles = new GridBagLayout();
jpFiles.setLayout(gbFiles);
GridBagHelper.addLabel(jpFiles, gbFiles, "Incomplete Directory");
jteIncompleteDir = new JTextField(prefs.getIncompleteDir(), 20);
jbIncompleteDir = new JButton(new FileChooserAction(jteIncompleteDir));
GridBagHelper.addFileChooser
(jpFiles, gbFiles, jteIncompleteDir, jbIncompleteDir);
GridBagHelper.addLabel(jpFiles, gbFiles, "");
jcDelIncompleteFiles = new JCheckBox("Delete incomplete files",
prefs.getDelIncompleteFiles());
GridBagHelper.addComponent(jpFiles, gbFiles, jcDelIncompleteFiles);
GridBagHelper.addLabel(jpFiles, gbFiles, "Download Directory");
jteDownloadDir = new JTextField(prefs.getDownloadDir(), 20);
jbDownloadDir = new JButton(new FileChooserAction(jteDownloadDir));
GridBagHelper.addFileChooser
(jpFiles, gbFiles, jteDownloadDir, jbDownloadDir);
GridBagHelper.addLabel(jpFiles, gbFiles, "Upload Directory");
jteUploadDirs = new JTextField(prefs.getUploadDirs(), 20);
jbUploadDirs = new JButton(new FileChooserAction(jteUploadDirs));
GridBagHelper.addFileChooser
(jpFiles, gbFiles, jteUploadDirs, jbUploadDirs);
GridBagHelper.addLabel(jpFiles, gbFiles, "MP3 Player");
bgMP3PlayerType = new ButtonGroup();
JPanel jpMP3Players = new JPanel();
jpMP3Players.setLayout(new GridLayout(3, 2));
JRadioButton jrJMF = new JRadioButton("Java Media Framework");
jrJMF.setActionCommand("jmf");
bgMP3PlayerType.add(jrJMF);
jpMP3Players.add(jrJMF);
JRadioButton jrXMMS = new JRadioButton("XMMS");
jrXMMS.setActionCommand("xmms");
bgMP3PlayerType.add(jrXMMS);
jpMP3Players.add(jrXMMS);
JRadioButton jrNoatun = new JRadioButton("Noatun");
jrNoatun.setActionCommand("noatun");
bgMP3PlayerType.add(jrNoatun);
jpMP3Players.add(jrNoatun);
JRadioButton jrWinamp = new JRadioButton("Winamp");
jrWinamp.setActionCommand("winamp");
bgMP3PlayerType.add(jrWinamp);
jpMP3Players.add(jrWinamp);
JRadioButton jrOtherPlayer = new JRadioButton("Other");
jrOtherPlayer.setActionCommand("other");
bgMP3PlayerType.add(jrOtherPlayer);
jpMP3Players.add(jrOtherPlayer);
if (prefs.getMP3PlayerType().equals(jrJMF.getActionCommand()))
jrJMF.setSelected(true);
else if (prefs.getMP3PlayerType().equals(jrXMMS.getActionCommand()))
jrXMMS.setSelected(true);
else if (prefs.getMP3PlayerType().equals(jrWinamp.getActionCommand()))
jrWinamp.setSelected(true);
else if (prefs.getMP3PlayerType().equals(jrNoatun.getActionCommand()))
jrNoatun.setSelected(true);
else
jrOtherPlayer.setSelected(true);
if (!JMFPlayer.isAvailable())
jrJMF.setEnabled(false);
// fix me, just implement winamp support...
jrWinamp.setEnabled(false);
GridBagHelper.addComponent(jpFiles, gbFiles, jpMP3Players);
// add these now to not overwrite the command text
jrJMF.addActionListener(this);
jrXMMS.addActionListener(this);
jrNoatun.addActionListener(this);
jrWinamp.addActionListener(this);
jrOtherPlayer.addActionListener(this);
GridBagHelper.addLabel(jpFiles, gbFiles, "Command");
jteMP3PlayerCmd = new JTextField(prefs.getMP3PlayerCmd(), 20);
GridBagHelper.addComponent(jpFiles, gbFiles, jteMP3PlayerCmd);
GridBagHelper.addLabel(jpFiles, gbFiles, "");
jcUseOpenFileAction = new JCheckBox("Use kfmclient to open files.",
prefs.getUseOpenFileAction());
GridBagHelper.addComponent(jpFiles, gbFiles, jcUseOpenFileAction);
GridBagHelper.addVerticalSpacer(jpFiles, gbFiles);
/* transfer tab */
JPanel jpTransfer = new JPanel();
GridBagLayout gbTransfer = new GridBagLayout();
jpTransfer.setLayout(gbTransfer);
GridBagHelper.addLabel(jpTransfer, gbTransfer, "Max Search Results");
jteMaxSearchResults = new ValidatedTextField(
prefs.getMaxSearchResults() + "",
ValidatedTextField.NUMBERS_INT);
GridBagHelper.addComponent(jpTransfer, gbTransfer, jteMaxSearchResults);
GridBagHelper.addLabel(jpTransfer, gbTransfer, "");
jcRemoveDuplicateResults = new JCheckBox(
"Remove duplicate search results",
prefs.getRemoveDuplicateResults());
GridBagHelper.addComponent
(jpTransfer, gbTransfer, jcRemoveDuplicateResults);
GridBagHelper.addLabel(jpTransfer, gbTransfer, "");
jcFilterResults = new JCheckBox
("Filter results through search text", prefs.getFilterResults());
GridBagHelper.addComponent
(jpTransfer, gbTransfer, jcFilterResults);
GridBagHelper.addLabel(jpTransfer, gbTransfer, "");
GridBagHelper.addComponent(jpTransfer, gbTransfer, new JLabel
("For The Following 0 Equals Unlimited"));
GridBagHelper.addLabel(jpTransfer, gbTransfer, "Max Downloads");
jteMaxDownloads = new ValidatedTextField(
prefs.getMaxDownloads() + "",
ValidatedTextField.NUMBERS_INT);
GridBagHelper.addComponent(jpTransfer, gbTransfer, jteMaxDownloads);
GridBagHelper.addLabel(jpTransfer, gbTransfer, "Max Uploads");
jteMaxUploads = new ValidatedTextField(
prefs.getMaxUploads() + "",
ValidatedTextField.NUMBERS_INT);
GridBagHelper.addComponent(jpTransfer, gbTransfer, jteMaxUploads);
GridBagHelper.addVerticalSpacer(jpTransfer, gbTransfer);
/* network tab */
JPanel jpNetwork = new JPanel();
GridBagLayout gbNetwork = new GridBagLayout();
jpNetwork.setLayout(gbNetwork);
Object[] items = {"unknown", "14.4 kbps", "28.8 kbps",
"33.6 kbps", "56.7 kbps", "64K ISDN", "128K ISDN",
"Cable", "DSL", "T1", "T3 or greater"};
GridBagHelper.addLabel(jpNetwork, gbNetwork, "Link Type");
jcLinkSpeed = new JComboBox(items);
jcLinkSpeed.setSelectedIndex(prefs.getLinkType());
GridBagHelper.addComponent(jpNetwork, gbNetwork, jcLinkSpeed);
GridBagHelper.addLabel(jpNetwork, gbNetwork, "");
jcUseHttpProxy = new JCheckBox("Use Http Proxy",
prefs.getUseHttpProxy());
GridBagHelper.addComponent(jpNetwork, gbNetwork, jcUseHttpProxy);
GridBagHelper.addLabel(jpNetwork, gbNetwork, "Http Proxy Host");
jteHttpProxyHost = new JTextField(prefs.getHttpProxyHost(), 30);
GridBagHelper.addComponent(jpNetwork, gbNetwork, jteHttpProxyHost);
GridBagHelper.addLabel(jpNetwork, gbNetwork, "Http Proxy Port");
jteHttpProxyPort
= new ValidatedTextField(prefs.getHttpProxyPort() + "",
ValidatedTextField.NUMBERS_INT);
GridBagHelper.addComponent(jpNetwork, gbNetwork, jteHttpProxyPort);
GridBagHelper.addLabel(jpNetwork, gbNetwork, "");
jcUseSocksProxy = new JCheckBox("Use Socks 4 Proxy",
prefs.getUseSocksProxy());
GridBagHelper.addComponent(jpNetwork, gbNetwork, jcUseSocksProxy);
GridBagHelper.addLabel(jpNetwork, gbNetwork, "Socks Proxy Host");
jteSocksProxyHost = new JTextField(prefs.getSocksProxyHost(), 30);
GridBagHelper.addComponent(jpNetwork, gbNetwork, jteSocksProxyHost);
GridBagHelper.addLabel(jpNetwork, gbNetwork, "Socks Proxy Port");
jteSocksProxyPort
= new ValidatedTextField(prefs.getSocksProxyPort() + "",
ValidatedTextField.NUMBERS_INT);
GridBagHelper.addComponent(jpNetwork, gbNetwork, jteSocksProxyPort);
GridBagHelper.addVerticalSpacer(jpNetwork, gbNetwork);
/* gift tab */
JPanel jpGift = new JPanel();
GridBagLayout gbGift = new GridBagLayout();
jpGift.setLayout(gbGift);
GridBagHelper.addLabel(jpGift, gbGift, "");
GridBagHelper.addComponent(jpGift, gbGift, new JLabel
("Leave empty if not installed"));
GridBagHelper.addLabel(jpGift, gbGift,
"Daemon Command");
jteGiftDaemon = new JTextField(prefs.getGiftDaemon(), 30);
jbGiftDaemon = new JButton(new FileChooserAction(jteGiftDaemon));
GridBagHelper.addFileChooser
(jpGift, gbGift, jteGiftDaemon, jbGiftDaemon);
GridBagHelper.addLabel(jpGift, gbGift, "Host");
jteGiftHost = new JTextField(prefs.getGiftHost(), 30);
GridBagHelper.addComponent(jpGift, gbGift, jteGiftHost);
GridBagHelper.addLabel(jpGift, gbGift, "Port");
jteGiftPort
= new ValidatedTextField(prefs.getGiftPort() + "",
ValidatedTextField.NUMBERS_INT);
GridBagHelper.addComponent(jpGift, gbGift, jteGiftPort);
GridBagHelper.addVerticalSpacer(jpGift, gbGift);
/* nap tab */
JPanel jpNap = new JPanel();
GridBagLayout gbNap = new GridBagLayout();
jpNap.setLayout(gbNap);
GridBagHelper.addLabel(jpNap, gbNap, "Client Info");
jteClient = new JTextField(prefs.getClientInfo(), 30);
GridBagHelper.addComponent(jpNap, gbNap, jteClient);
GridBagHelper.addLabel(jpNap, gbNap,
"Local Port (0 if firewalled)");
jteLocalPort
= new ValidatedTextField(prefs.getLocalPort() + "",
ValidatedTextField.NUMBERS_INT);
GridBagHelper.addComponent(jpNap, gbNap, jteLocalPort);
GridBagHelper.addLabel(jpNap, gbNap, "");
jcUseSinglePort = new JCheckBox("Use Single Port",
prefs.getUseSinglePort());
GridBagHelper.addComponent(jpNap, gbNap, jcUseSinglePort);
GridBagHelper.addLabel(jpNap, gbNap, "");
jcAutoFetchNapigator
= new JCheckBox("Download Napigator List On Startup",
prefs.getAutoFetchNapigator());
GridBagHelper.addComponent(jpNap, gbNap, jcAutoFetchNapigator);
GridBagHelper.addLabel(jpNap, gbNap, "");
jcUseAutoconnector = new JCheckBox("Use Autoconnector On Startup",
prefs.getUseAutoconnector());
GridBagHelper.addComponent(jpNap, gbNap, jcUseAutoconnector);
GridBagHelper.addLabel(jpNap, gbNap, "Autoconnector Threshold");
jteMaxAutoconnectServers =
new ValidatedTextField(prefs.getMaxAutoconnectServers() + "",
ValidatedTextField.NUMBERS_INT);
GridBagHelper.addComponent(jpNap, gbNap, jteMaxAutoconnectServers);
GridBagHelper.addLabel(jpNap, gbNap, "");
GridBagHelper.addComponent(jpNap, gbNap, new JLabel
("For The Following 0 Equals Unlimited"));
GridBagHelper.addLabel(jpNap, gbNap, "Max Search Servers");
jteMaxSearchServers
= new ValidatedTextField(prefs.getMaxSearchServers() + "",
ValidatedTextField.NUMBERS_INT);
GridBagHelper.addComponent(jpNap, gbNap, jteMaxSearchServers);
GridBagHelper.addVerticalSpacer(jpNap, gbNap);
/* lime tab */
// JPanel jpLime = new JPanel();
// GridBagLayout gbLime = new GridBagLayout();
// jpLime.setLayout(gbLime);
// GridBagHelper.addLabel(jpLime, gbLime, "");
// jcUseLimewire = new JCheckBox("Use Limewire",
// prefs.getUseLimewire());
// GridBagHelper.addComponent(jpLime, gbLime, jcUseLimewire);
// GridBagHelper.addLabel(jpLime, gbLime, "Max Incoming Connections");
// jteMaxIncoming =
// new ValidatedTextField(setmanager.getMaxIncomingConnections() + "",
// ValidatedTextField.NUMBERS_INT);
// GridBagHelper.addComponent(jpLime, gbLime, jteMaxIncoming);
// GridBagHelper.addVerticalSpacer(jpLime, gbLime);
/* tabbed pane */
JTabbedPane pane = new JTabbedPane();
pane.addTab("General", jpGeneral);
pane.addTab("Files", jpFiles);
pane.addTab("Transfer", jpTransfer);
pane.addTab("Network", jpNetwork);
pane.addTab("OpenNap", jpNap);
// pane.addTab("Limewire", jpLime);
pane.addTab("giFT", jpGift);
/* button panel */
JPanel jpButtons = new JPanel();
jpButtons.setLayout(new FlowLayout(FlowLayout.RIGHT));
JButton jbOkay = new JButton(new OkayAction());
jpButtons.add(jbOkay);
JButton jbCancel = new JButton(new CancelAction());
jpButtons.add(jbCancel);
/* content */
GridBagLayout gb = new GridBagLayout();
getContentPane().setLayout(gb);
GridBagHelper.addPanel(getContentPane(), gb, pane);
GridBagHelper.addComponent(getContentPane(), gb, jpButtons);
pack();
addWindowListener (
new WindowAdapter () {
public void windowClosing (java.awt.event.WindowEvent evt) {
dispose();
me = null;
}
}
);
}
// --- Methods ---
public static void showDialog(Component c)
{
if (me == null) {
me = new PreferencesDialog();
if (c != null)
me.setLocationRelativeTo(c);
}
me.show();
}
public void actionPerformed(ActionEvent event)
{
String a = event.getActionCommand();
if (a.equals("jmf")) {
jteMP3PlayerCmd.setEnabled(false);
jteMP3PlayerCmd.setText("");
}
else if (a.equals("xmms")) {
jteMP3PlayerCmd.setEnabled(true);
jteMP3PlayerCmd.setText("xmms");
jteMP3PlayerCmd.grabFocus();
}
else if (a.equals("noatun")) {
jteMP3PlayerCmd.setEnabled(false);
jteMP3PlayerCmd.setText("");
}
else if (a.equals("winamp")) {
jteMP3PlayerCmd.setEnabled(true);
jteMP3PlayerCmd.setText("C:\\Programme\\Winamp\\Winamp.exe");
jteMP3PlayerCmd.grabFocus();
}
else if (a.equals("other")) {
jteMP3PlayerCmd.setEnabled(true);
jteMP3PlayerCmd.setText("");
jteMP3PlayerCmd.grabFocus();
}
}
/**
* Handle the Okay button.
*/
private class OkayAction extends AbstractAction {
public OkayAction() {
// set the name, description, and mnemonic key
putValue(Action.NAME, "Okay");
putValue(Action.SHORT_DESCRIPTION, "Save Preferences");
putValue(Action.MNEMONIC_KEY, new Integer('O'));
putValue(Action.ACCELERATOR_KEY, new Integer('O'));
}
public void actionPerformed(ActionEvent event) {
// "General" Tab
prefs.setUsername(jteUsername.getText().trim());
prefs.setPassword((new String(jtePassword.getPassword())).trim());
prefs.setEmail(jteEmail.getText());
try {
prefs.setMaxConsoleLines
(Integer.parseInt(jteMaxConsoleLines.getText()));
} catch (NumberFormatException nfe) {
}
prefs.setShowSplash(jcShowSplash.isSelected());
prefs.setShowCloseDialog(jcShowCloseDialog.isSelected());
prefs.setShowIcons(jcShowIcons.isSelected());
prefs.setAutoVersionCheck(jcAutoVersionCheck.isSelected());
prefs.setAutoFetchNapigator(jcAutoFetchNapigator.isSelected());
// "Files" Tab
prefs.setDownloadDir(jteDownloadDir.getText());
/* give limewire the downloaddir too */
// try {
// setmanager.setSaveDirectory(new File(jteDownloadDir.getText()));
// }
// catch (IOException e) {
// }
// catch (NullPointerException npe) {
// }
prefs.setIncompleteDir(jteIncompleteDir.getText());
prefs.setDelIncompleteFiles(jcDelIncompleteFiles.isSelected());
prefs.setUseOpenFileAction(jcUseOpenFileAction.isSelected());
prefs.setUploadDirs(jteUploadDirs.getText());
prefs.setMP3PlayerType
(bgMP3PlayerType.getSelection().getActionCommand());
prefs.setMP3PlayerCmd(jteMP3PlayerCmd.getText());
// "Transfer" Tab
try {
prefs.setMaxSearchResults
(Integer.parseInt(jteMaxSearchResults.getText()));
} catch (NumberFormatException nfe) {
}
prefs.setRemoveDuplicateResults
(jcRemoveDuplicateResults.isSelected());
prefs.setFilterResults(jcFilterResults.isSelected());
try {
prefs.setMaxDownloads
(Integer.parseInt(jteMaxDownloads.getText()) );
} catch (NumberFormatException nfe) {
}
try {
prefs.setMaxUploads
(Integer.parseInt(jteMaxUploads.getText()) );
} catch (NumberFormatException nfe) {
}
// "Network" Tab
prefs.setLinkType(jcLinkSpeed.getSelectedIndex());
prefs.setUseHttpProxy(jcUseHttpProxy.isSelected());
prefs.setHttpProxyHost(jteHttpProxyHost.getText().trim());
try {
prefs.setHttpProxyPort
(Integer.parseInt(jteHttpProxyPort.getText()));
} catch (NumberFormatException e) {
}
prefs.setUseSocksProxy(jcUseSocksProxy.isSelected());
prefs.setSocksProxyHost(jteSocksProxyHost.getText().trim());
try {
prefs.setSocksProxyPort
(Integer.parseInt(jteSocksProxyPort.getText()));
} catch (NumberFormatException e) {
}
// gift tab
prefs.setGiftDaemon(jteGiftDaemon.getText());
prefs.setGiftHost(jteGiftHost.getText());
try {
prefs.setGiftPort
(Integer.parseInt(jteGiftPort.getText()));
} catch (NumberFormatException e) {
}
// nap tab
prefs.setClientInfo(jteClient.getText().trim());
try {
prefs.setLocalPort(Integer.parseInt(jteLocalPort.getText()));
} catch (NumberFormatException e) { }
prefs.setUseSinglePort(jcUseSinglePort.isSelected());
prefs.setUseAutoconnector(jcUseAutoconnector.isSelected());
try {
prefs.setMaxSearchServers
(Integer.parseInt(jteMaxSearchServers.getText()));
} catch (NumberFormatException nfe) {
}
try {
prefs.setMaxAutoconnectServers
(Integer.parseInt(jteMaxAutoconnectServers.getText()));
} catch (NumberFormatException e) { }
// lime tab
// prefs.setUseLimewire(jcUseLimewire.isSelected());
// try {
// setmanager.setMaxIncomingConnections
// (Integer.parseInt(jteMaxIncoming.getText()));
// }
// catch (NumberFormatException e) {
// }
// catch (IllegalArgumentException iae) {
// }
// save the preferences to file
if (!prefs.write()) {
JOptionPane.showMessageDialog
(null, "Could not write " + prefs.getFilename() + ".",
"Preferences", JOptionPane.ERROR_MESSAGE);
} else {
dispose();
me = null;
}
} // actionPerformed()
} // class OkayAction
/**
* Handle the Cancel button.
*/
private class CancelAction extends AbstractAction {
public CancelAction() {
// set the name, description, and mnemonic key
putValue(Action.NAME, "Cancel");
putValue(Action.SHORT_DESCRIPTION, "Cancel Changes");
putValue(Action.MNEMONIC_KEY, new Integer('C'));
putValue(Action.ACCELERATOR_KEY, new Integer('C'));
}
public void actionPerformed( ActionEvent event ) {
dispose();
me = null;
}
} // class CancelAction
// -- Action class to handle the FileChooser button commands
private class FileChooserAction extends AbstractAction {
private JTextField source;
public FileChooserAction(JTextField source) {
this.source = source;
// set the name, description, and mnemonic key
// putValue( Action.NAME, "..." );
putValue(Action.SMALL_ICON, XNap.getSmallIcon("fileopen.png"));
putValue( Action.SHORT_DESCRIPTION, "Choose a file" );
//putValue( Action.MNEMONIC_KEY, new Integer('F') );
//putValue( Action.ACCELERATOR_KEY, new Integer('F') );
}
public void actionPerformed( ActionEvent event ) {
JFileChooser chooser = new JFileChooser(source.getText());
if (source == jteGiftDaemon) {
chooser.setDialogTitle("Choose File");
}
else {
chooser.setDialogTitle("Choose Directory");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
}
chooser.setApproveButtonText("Okay");
if (chooser.showSaveDialog(PreferencesDialog.this)
== JFileChooser.APPROVE_OPTION) {
String f = chooser.getSelectedFile().getAbsolutePath();
if (source == jteUploadDirs) {
if (source.getText().equals(""))
source.setText(f);
else
source.setText(source.getText() + ";" + f);
} else {
source.setText(f);
}
}
}
} // class FileChooserAction
}
The table below shows all metrics for PreferencesDialog.java.




