⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 settingsdialog.java

📁 发送传真的program,发送传真的program,发送传真的program.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/** * JHylaFax - A java client for HylaFAX. * * Copyright (C) 2005 by Steffen Pingel <steffenp@gmx.de> * * 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., 675 Mass Ave, Cambridge, MA 02139, USA. */package net.sf.jhylafax;import static net.sf.jhylafax.JHylaFAX.i18n;import java.awt.Color;import java.util.Locale;import javax.swing.ButtonGroup;import javax.swing.DefaultComboBoxModel;import javax.swing.DefaultListCellRenderer;import javax.swing.JCheckBox;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JRadioButton;import javax.swing.JSpinner;import javax.swing.JTabbedPane;import javax.swing.JTextField;import javax.swing.SpinnerNumberModel;import org.xnap.commons.gui.DefaultDialog;import org.xnap.commons.gui.FileChooserPanel;import org.xnap.commons.gui.completion.CompletionModeFactory;import org.xnap.commons.gui.completion.CompletionModeFactory.CompletionModeInfo;import org.xnap.commons.gui.settings.SettingComponentMediator;import org.xnap.commons.gui.util.EnableListener;import org.xnap.commons.gui.util.WhatsThis;import org.xnap.commons.util.PortRange;import com.jgoodies.forms.builder.DefaultFormBuilder;import com.jgoodies.forms.layout.FormLayout;/** * A dialog for editing of global settings. *  * @author Steffen Pingel */public class SettingsDialog extends DefaultDialog implements LocaleChangeListener {	private JPanel connectionPanel;	private JLabel hostnameLabel;	private JTextField hostnameTextField;	private JPanel jobPanel;	private JobPanel jobParameterPanel;	private JTabbedPane mainTabbedPane;	private JLabel passwordLabel;	private JTextField passwordTextField;	private JLabel portLabel;	private JSpinner portSpinner;	private JLabel usernameLabel;	private JTextField usernameTextField;	private JLabel languageLabel;	private DefaultComboBoxModel languageModel;	private JCheckBox confirmNonPSCheckBox;	private JCheckBox confirmDeleteCheckBox;	private JRadioButton internalCoverRadionButton;	private JLabel viewerPathLabel;	private JLabel docViewerPathLabel;	private JPanel pathsPanel;	private JPanel monitorPanel;	private JRadioButton externalCoverRadionButton;	private FileChooserPanel externalCoverPathFileChooserPanel;	private ExecutableChooserPanel viewerPathFileChooserPanel;	private ExecutableChooserPanel docViewerPathFileChooserPanel;	private JLabel passwordInfoLabel;	private JCheckBox usePassiveCheckBox;	private JPanel generalPanel;	private SpinnerNumberModel portSpinnerModel;	private DefaultComboBoxModel completionModeModel;	private JLabel completionModeLabel;	private JCheckBox sendCoverAsDocumentCheckBox;	private JCheckBox updateOnStartupCheckBox;	private JCheckBox showPollqCheckBox;	private SettingComponentMediator settingMediator = new SettingComponentMediator();	private JCheckBox adminModeCheckBox;	private JPasswordField adminPasswordTextField;	private JCheckBox autoUpdateCheckBox;	private SpinnerNumberModel autoUpdateIntervalModel;	private JSpinner autoUpdateIntervalSpinner;	private JLabel autoUpdateIntervalLabel;	private JCheckBox monitorPathCheckBox;	private SpinnerNumberModel monitorPathIntervalModel;	private JSpinner monitorPathIntervalSpinner;	private JLabel monitorPathIntervalLabel;	private ExecutableChooserPanel monitorPathFileChooserPanel;	private JLabel monitorPathLabel;	private FileChooserPanel addressBookPathFileChooserPanel;	private JCheckBox customizeAddressBookCheckBox;		public SettingsDialog(JFrame owner) {		super(owner, BUTTON_OKAY | BUTTON_APPLY | BUTTON_CANCEL | BUTTON_CONTEXT_HELP);				mainTabbedPane = new JTabbedPane();		setMainComponent(mainTabbedPane);				initializeConnectionForm();		initializeGeneralForm();		initializeJobForm();		initializePathForm();		initializeMonitorForm();				updateLabels();		revert();				pack();	}		@Override	public boolean apply() {		settingMediator.apply();				Settings.LOCALE.setValue((Locale)languageModel.getSelectedItem());		Settings.DEFAULT_COMPLETION_MODE.setValue(((CompletionModeInfo)completionModeModel.getSelectedItem()).getClassName());				jobParameterPanel.applyToSettings();				Settings.VIEWER_PATH.setValue(viewerPathFileChooserPanel.getTextField().getText());		Settings.DOC_VIEWER_PATH.setValue(docViewerPathFileChooserPanel.getTextField().getText());		Settings.USE_INTERNAL_COVER.setValue(internalCoverRadionButton.isSelected());		Settings.COVER_PATH.setValue(externalCoverPathFileChooserPanel.getTextField().getText());		Settings.MONITOR_PATH_INTERVAL.setValue(monitorPathIntervalModel.getNumber().intValue());				// XXX this is so wrong		JHylaFAX.getInstance().settingsUpdated();				return true;	}	private DefaultFormBuilder createForm() {		FormLayout layout = new FormLayout("left:max(40dlu;pref), 3dlu, pref, pref:grow(0.5), pref:grow(0.5)", "");		DefaultFormBuilder builder = new DefaultFormBuilder(layout);		builder.setDefaultDialogBorder();		return builder;	}	public void initializeConnectionForm() {		DefaultFormBuilder builder = createForm();		connectionPanel = builder.getPanel();		mainTabbedPane.add(connectionPanel);				builder.appendSeparator(i18n.tr("HylaFAX Server"));				hostnameTextField = new JTextField(Constants.DEFAULT_COLUMNS);		settingMediator.add(Settings.HOSTNAME, hostnameTextField);		hostnameLabel = builder.append("", hostnameTextField, 3);		builder.nextLine();				portSpinnerModel = new SpinnerNumberModel();		portSpinnerModel.setMinimum(PortRange.MIN_PORT);		portSpinnerModel.setMaximum(PortRange.MAX_PORT);		settingMediator.add(Settings.PORT, portSpinnerModel);		portSpinner = new JSpinner(portSpinnerModel);		portSpinner.setEditor(new JSpinner.NumberEditor(portSpinner, "#"));		portLabel = builder.append("", portSpinner);		builder.nextLine();				usePassiveCheckBox = new JCheckBox();		settingMediator.add(Settings.USE_PASSIVE, usePassiveCheckBox);		builder.append("", usePassiveCheckBox, 3);		builder.nextLine();		builder.appendSeparator(i18n.tr("Authentication"));				usernameTextField = new JTextField(Constants.DEFAULT_COLUMNS);		settingMediator.add(Settings.USERNAME, usernameTextField);		usernameLabel = builder.append("", usernameTextField, 3);		builder.nextLine();		passwordInfoLabel = new JLabel();		passwordInfoLabel.setForeground(Color.RED);		builder.append(passwordInfoLabel, 5);		builder.nextLine();		passwordTextField = new JPasswordField(Constants.DEFAULT_COLUMNS);		settingMediator.add(Settings.PASSWORD, passwordTextField);		passwordLabel = builder.append("", passwordTextField, 3);		builder.nextLine();				adminModeCheckBox = new JCheckBox();		settingMediator.add(Settings.ADMIN_MODE, adminModeCheckBox);				adminPasswordTextField = new JPasswordField(Constants.DEFAULT_COLUMNS);		settingMediator.add(Settings.ADMIN_PASSWORD, adminPasswordTextField);		builder.append(adminModeCheckBox); builder.append(adminPasswordTextField, 3);		builder.nextLine();		adminModeCheckBox.addItemListener(new EnableListener(adminPasswordTextField));				builder.appendSeparator(i18n.tr("Status Update"));		updateOnStartupCheckBox = new JCheckBox();		settingMediator.add(Settings.UPDATE_ON_STARTUP, updateOnStartupCheckBox);		builder.append(updateOnStartupCheckBox, 4);		builder.nextLine();		autoUpdateCheckBox = new JCheckBox();		autoUpdateCheckBox.setEnabled(false);		settingMediator.add(Settings.DO_AUTO_UPDATE, autoUpdateCheckBox);		// the auto updater is error prone, therefore it has been disabled		// until fixed		//builder.append(autoUpdateCheckBox, 4);		builder.nextLine();				autoUpdateIntervalModel = new SpinnerNumberModel(1, 1, Integer.MAX_VALUE, 30);		settingMediator.add(Settings.AUTO_UPDATE_INTERVAL, autoUpdateIntervalModel);		autoUpdateIntervalSpinner = new JSpinner(autoUpdateIntervalModel);		autoUpdateIntervalSpinner.setEditor(new JSpinner.NumberEditor(autoUpdateIntervalSpinner, "# s"));		//autoUpdateIntervalLabel = builder.append("", autoUpdateIntervalSpinner);		autoUpdateIntervalLabel = new JLabel();		builder.nextLine();				autoUpdateCheckBox.addItemListener(new EnableListener(autoUpdateIntervalSpinner));	}		public void initializeGeneralForm() {		DefaultFormBuilder builder = createForm();		generalPanel = builder.getPanel();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -