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

📄 applicationspreferencesdialog.java

📁 JBother是纯Java开发的Jabber(即时消息开源软件)客户端。支持群组聊天
💻 JAVA
字号:
/* Copyright (C) 2003 Adam Olsen 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 1, 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 com.valhalla.jbother.preferences;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.util.Locale;import java.util.ResourceBundle;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFileChooser;import javax.swing.JLabel;import javax.swing.JPanel;import com.valhalla.gui.MJTextField;import com.valhalla.gui.Standard;import com.valhalla.jbother.BuddyList;import com.valhalla.misc.GnuPG;import com.valhalla.settings.Settings;import com.valhalla.settings.TempSettings;/** * Allows the user to change default applications for hyperlinks in * ConversationArea *  * @author Adam Olsen * @version 1.0 */class ApplicationsPreferencesPanel extends JPanel implements PreferencesPanel {    private ResourceBundle resources = ResourceBundle.getBundle(            "JBotherBundle", Locale.getDefault());    private PreferencesDialog prefs;    private GridBagLayout grid = new GridBagLayout();    private GridBagConstraints c = new GridBagConstraints();    private MJTextField browserBox = new MJTextField(20);    private JLabel browserLabel = new JLabel(resources            .getString("internetBrowser")            + ": ");    private JButton browserChooser = new JButton(resources.getString("browse"));    private MJTextField emailBox = new MJTextField(20);    private JLabel emailLabel = new JLabel(resources.getString("emailClient")            + ": ");    private JButton emailChooser = new JButton(resources.getString("browse"));    private MJTextField gpgBox = new MJTextField(20);    private JLabel gpgLabel = new JLabel(resources.getString("gpgClient")            + ": ");    private JButton gpgChooser = new JButton(resources.getString("browse"));    private JFileChooser fc = new JFileChooser();    private boolean autoChecked = false;    /**     * Sets up the ApplicationPreferencesPanel     *      * @param dialog     *            the enclosing PreferencesDialog     */    public ApplicationsPreferencesPanel(PreferencesDialog dialog) {        this.prefs = dialog;        setBorder(BorderFactory.createTitledBorder(resources                .getString("applicationPreferences")));        setLayout(grid);        c.gridx = 0;        c.gridy = 0;        c.fill = GridBagConstraints.HORIZONTAL;        c.anchor = GridBagConstraints.WEST;        c.gridwidth = 1;        //display name stuff        browserLabel.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 5));        c.weightx = -.1;        c.fill = GridBagConstraints.NONE;        grid.setConstraints(browserLabel, c);        add(browserLabel);        c.gridx = 1;        grid.setConstraints(browserBox, c);        add(browserBox);        c.gridx = 2;        grid.setConstraints(browserChooser, c);        add(browserChooser);        c.gridy++;        c.gridx = 0;        //display name stuff        emailLabel.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 5));        grid.setConstraints(emailLabel, c);        add(emailLabel);        c.gridx = 1;        grid.setConstraints(emailBox, c);        add(emailBox);        c.gridx = 2;        grid.setConstraints(emailChooser, c);        add(emailChooser);        c.gridy++;        c.gridx = 0;        //display name stuff        gpgLabel.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 5));        grid.setConstraints(gpgLabel, c);        add(gpgLabel);        c.gridx = 1;        grid.setConstraints(gpgBox, c);        add(gpgBox);        c.gridx = 2;        grid.setConstraints(gpgChooser, c);        add(gpgChooser);        c.gridy++;        c.gridx = 1;        c.gridwidth = 2;        JLabel hintLabel = new JLabel(resources.getString("applicationHint"));        grid.setConstraints(hintLabel, c);        add(hintLabel);        //this is the space taker        JLabel blankLabel = new JLabel("");        c.weighty = 1;        c.weightx = 1;        c.gridx = 0;        c.gridwidth = 3;        c.gridy++;        grid.setConstraints(blankLabel, c);        add(blankLabel);        loadSettings();        initComponents();    }    /**     * Adds listeners to the different events in the panel     */    private void initComponents() {        ChooserActionListener listener = new ChooserActionListener();        browserChooser.addActionListener(listener);        emailChooser.addActionListener(listener);        gpgChooser.addActionListener(listener);    }    /**     * Listens for button events     */    class ChooserActionListener implements ActionListener {        public void actionPerformed(ActionEvent e) {            int result = fc.showOpenDialog(null);            if (result == JFileChooser.APPROVE_OPTION) {                File file = fc.getSelectedFile();                if (e.getSource() == browserChooser)                    browserBox.setText(file.getPath());                if (e.getSource() == emailChooser)                    emailBox.setText(file.getPath());                if (e.getSource() == gpgChooser)                    gpgBox.setText(file.getPath());            }        }    }    /**     * Loads settings from the settings file     */    private void loadSettings() {        if (Settings.getInstance().getProperty("browserApplication") != null)            browserBox.setText(Settings.getInstance().getProperty(                    "browserApplication"));        if (Settings.getInstance().getProperty("emailApplication") != null)            emailBox.setText(Settings.getInstance().getProperty(                    "emailApplication"));        if (Settings.getInstance().getProperty("gpgApplication") != null)            gpgBox                    .setText(Settings.getInstance().getProperty(                            "gpgApplication"));    }    /**     * Returns currently selected settings     *      * @return currently selected settings     */    public TempSettings getSettings() {        TempSettings tempSettings = new TempSettings();        tempSettings.setProperty("browserApplication", browserBox.getText());        tempSettings.setProperty("emailApplication", emailBox.getText());        tempSettings.setProperty("gpgApplication", gpgBox.getText());        if (browserBox.getText().equals(""))            tempSettings.setProperty("browserApplication", "!!EMPTY!!");        if (emailBox.getText().equals(""))            tempSettings.setProperty("emailApplication", "!!EMPTY!!");        if (gpgBox.getText().equals(""))            tempSettings.setProperty("gpgApplication", "!!EMPTY!!");        if( Settings.getInstance().getProperty("gpgApplication") == null) Settings.getInstance().setProperty("gpgApplication", "");                if ((Settings.getInstance().getProperty("gpgApplication").equals("") && !tempSettings                .getProperty("gpgApplication").equals("!!EMPTY!!"))                && (!Settings.getInstance().getProperty("gpgApplication")                        .equals(tempSettings.getProperty("gpgApplication")))) {            String command = tempSettings.getProperty("gpgApplication");            if (command.equals("!!EMPTY!!"))                command = "gpg";            // check to make sure GnuPG is executable            GnuPG gnupg = new GnuPG(command);            boolean enabled = gnupg.listKeys("");            if (!enabled) {                Standard.warningMessage(prefs, "GnuPG Error",                        "Invalid GPG path, GPG settings not applied.");                tempSettings.setProperty("gpgApplication", Settings                        .getInstance().getProperty("gpgApplication"));                gpgBox.setText(tempSettings.getProperty("gpgApplication"));                gpgBox.repaint();            } else {                if (BuddyList.getInstance().checkConnection()) {                    Standard.noticeMessage(prefs, resources                            .getString("applicationPreferences"), resources                            .getString("reconnectToEnableGPG"));                }            }        }        return tempSettings;    }}

⌨️ 快捷键说明

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