📄 generalsettingspanel.java
字号:
package openicq.gui;import java.awt.BorderLayout;import javax.swing.*;import javax.swing.border.Border;import openicq.Start;import openicq.data.Default;import openicq.data.Resource;import openicq.management.Settings;import openicq.net.Flag;import openicq.net.SetPermsUserInfoRequest;import org.javalib.gui.SpringToolkit;import org.javalib.gui.model.SettingsDisplayPanel;import org.javalib.io.CryptFile;/** * The <code>GeneralSettingsPanel</code> class contains the panel with the * general settings. * @author Hansgeorg Schwibbe * @copyright 2004 */public class GeneralSettingsPanel extends SettingsDisplayPanel{ private JDialog parent; private JPanel jPanelAuth = new JPanel(); private JRadioButton jRadioButtonNoAuth = new JRadioButton(); private JRadioButton jRadioButtonAuth = new JRadioButton(); private ButtonGroup buttonGroupAuth = new ButtonGroup(); private JPanel jPanelAntiSpam = new JPanel(); private JCheckBox jCheckBoxDenyUnknown = new JCheckBox(); private JPanel jPanelSecurity = new JPanel(); private JRadioButton jRadioButtonLowSecurity = new JRadioButton(); private JRadioButton jRadioButtonMediumSecurity = new JRadioButton(); private JRadioButton jRadioButtonHighSecurity = new JRadioButton(); private ButtonGroup buttonGroupSecurity = new ButtonGroup(); /** * Initializes a new instance of the class <code>GeneralSettingsPanel</code>. * @param parent the parent dialog */ public GeneralSettingsPanel(JDialog parent) { this.parent = parent; String text; // Authorisation panel jPanelAuth.setLayout(new SpringLayout()); text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[0]; jPanelAuth.setBorder(BorderFactory.createTitledBorder(text)); text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[1]; jRadioButtonNoAuth.setText(text); text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[2]; jRadioButtonAuth.setText(text); buttonGroupAuth.add(jRadioButtonAuth); buttonGroupAuth.add(jRadioButtonNoAuth); jPanelAuth.add(jRadioButtonAuth); jPanelAuth.add(jRadioButtonNoAuth); SpringToolkit.makeCompactGrid(jPanelAuth, 2, 1, 5, 0, 5, 5); // Spam panel jPanelAntiSpam.setLayout(new SpringLayout()); text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[3]; jPanelAntiSpam.setBorder(BorderFactory.createTitledBorder(text)); text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[4]; jCheckBoxDenyUnknown.setText(text); jPanelAntiSpam.add(jCheckBoxDenyUnknown); SpringToolkit.makeCompactGrid(jPanelAntiSpam, 1, 1, 5, 0, 5, 5); // Visibility panel jPanelSecurity.setLayout(new SpringLayout()); text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[5]; jPanelSecurity.setBorder(BorderFactory.createTitledBorder(text)); text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[6]; jRadioButtonLowSecurity.setText(text); text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[7]; jRadioButtonMediumSecurity.setText(text); text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[8]; jRadioButtonHighSecurity.setText(text); buttonGroupSecurity.add(jRadioButtonLowSecurity); buttonGroupSecurity.add(jRadioButtonMediumSecurity); buttonGroupSecurity.add(jRadioButtonHighSecurity); jPanelSecurity.add(jRadioButtonLowSecurity); jPanelSecurity.add(jRadioButtonMediumSecurity); jPanelSecurity.add(jRadioButtonHighSecurity); SpringToolkit.makeCompactGrid(jPanelSecurity, 3, 1, 5, 0, 5, 5); // This panel Border innerBorder = BorderFactory.createLoweredBevelBorder(); Border outerBorder = BorderFactory.createEmptyBorder(10, 10, 10, 10); setBorder(BorderFactory.createCompoundBorder(innerBorder, outerBorder)); setLayout(new BorderLayout()); this.add(jPanelAuth, BorderLayout.NORTH); this.add(jPanelSecurity, BorderLayout.CENTER); this.add(jPanelAntiSpam, BorderLayout.SOUTH); } /** * (non-Javadoc) * @see org.javalib.gui.model.SettingsDisplayPanel#getContinueWithoutSavingMessage() */ public String getContinueWithoutSavingMessage() { return ((String[]) SettingsDialog.localized.get("warningMessages"))[0] + "\n" + ((String[]) SettingsDialog.localized.get("questionMessages"))[0]; } /** * (non-Javadoc) * @see org.javalib.gui.model.SettingsDisplayPanel#getContinueWithoutSavingTitle() */ public String getContinueWithoutSavingTitle() { return ((String[]) SettingsDialog.localized.get("messageTitles"))[2]; } /** * (non-Javadoc) * @see org.javalib.gui.model.SettingsDisplayPanel#getListIconPath() */ public String getListIconPath() { return Resource.ICON_SOURCE_SETTINGS[0]; } /** * (non-Javadoc) * @see org.javalib.gui.model.SettingsDisplayPanel#getListName() */ public String getListName() { return ((String[]) SettingsDialog.localized.get("settingsDialogList"))[0]; } /** * (non-Javadoc) * @see org.javalib.gui.model.SettingsDisplayPanel#getSaveButtonText() */ public String getSaveButtonText() { return ((String[]) SettingsDialog.localized.get("stdButtons"))[2] + " (" + ((String[]) SettingsDialog.localized.get("settingsDialogList"))[0] + ")"; } /** * (non-Javadoc) * @see org.javalib.gui.model.SettingsDisplayPanel#getSaveSettingsErrorTitle() */ public String getSaveSettingsErrorTitle() { return ((String[]) SettingsDialog.localized.get("messageTitles"))[0]; } /** * (non-Javadoc) * @see org.javalib.gui.model.SettingsDisplayPanel#hasChanged() */ public boolean hasChanged() { synchronized (Start.env) { int securityLevel = Start.env.getSecurityLevel(); if (Start.env.getDenyUnknown() != jCheckBoxDenyUnknown.isSelected() || Start.env.getOwnContact().getAuthorizationRequired() != jRadioButtonAuth.isSelected() || (jRadioButtonLowSecurity.isSelected() && securityLevel != Settings.LOW_SECURITY) || (jRadioButtonMediumSecurity.isSelected() && securityLevel != Settings.MEDIUM_SECURITY) || (jRadioButtonHighSecurity.isSelected() && securityLevel != Settings.HIGH_SECURITY)) { return true; } } return false; } /** * (non-Javadoc) * @see org.javalib.gui.model.SettingsDisplayPanel#loadSettings() */ public void loadSettings() { synchronized (Start.env) { if (Start.env.getOwnContact().getAuthorizationRequired() == true) { this.jRadioButtonAuth.setSelected(true); } else { this.jRadioButtonNoAuth.setSelected(true); } if (Start.env.getDenyUnknown() == true) { this.jCheckBoxDenyUnknown.setSelected(true); } else { this.jCheckBoxDenyUnknown.setSelected(false); } if (Start.env.getSecurityLevel() == Settings.LOW_SECURITY) { this.jRadioButtonLowSecurity.setSelected(true); } else if (Start.env.getSecurityLevel() == Settings.MEDIUM_SECURITY) { this.jRadioButtonMediumSecurity.setSelected(true); } else { this.jRadioButtonHighSecurity.setSelected(true); } } } /** * (non-Javadoc) * @see org.javalib.gui.model.SettingsDisplayPanel#saveSettings() */ public void saveSettings() throws Exception { synchronized (Start.env) { Object[] fileData = new Object[2]; fileData[0] = String.valueOf(this.jCheckBoxDenyUnknown.isSelected()); if (this.jRadioButtonLowSecurity.isSelected()) { fileData[1] = String.valueOf(Settings.LOW_SECURITY); } else if (this.jRadioButtonMediumSecurity.isSelected()) { fileData[1] = String.valueOf(Settings.MEDIUM_SECURITY); } else { fileData[1] = String.valueOf(Settings.HIGH_SECURITY); } try { CryptFile.write(Default.FOLDER_NAME_HOME + "/" + Start.env.getOwnContact().getContactId() + "/" + Default.FILE_NAME_GENERAL_DATA, fileData); Start.env.setDenyUnknown(Boolean.valueOf(fileData[0].toString()) .booleanValue()); Start.env.setSecurityLevel(Integer.parseInt(fileData[1].toString())); } catch (Exception ex) { String msg; msg = ((String[]) SettingsDialog.localized.get("errorMessages"))[8]; throw new Exception(msg); } } final int authorization; if (jRadioButtonAuth.isSelected()) { authorization = 0; } else { authorization = 1; } synchronized (Start.env) { new SetPermsUserInfoRequest(Start.env.getConnection(), Integer.parseInt(Start.env.getOwnContact() .getContactId()), authorization, 0, 0) { public void onResponse(int success) { if (success != Flag.SUCCESS) { String msg, title; msg = ((String[]) SettingsDialog.localized.get("errorMessages"))[23]; title = ((String[]) SettingsDialog.localized.get("messageTitles"))[0]; JOptionPane.showMessageDialog(parent, msg, title, JOptionPane.ERROR_MESSAGE); return; } synchronized (Start.env) { if (authorization == 0) { Start.env.getOwnContact().setAuthorizationRequired(true); } else if (authorization == 1) { Start.env.getOwnContact().setAuthorizationRequired(false); } } } }; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -