📄 profileeditordialog.java
字号:
GnuPG gnupg = new GnuPG(); boolean check = true; if (BuddyList.getInstance().checkConnection() && !savepassphraseCheck.isSelected() && gnupgSecretKeyID.matches(tempgnupgSecretKeyID) == false) { PasswordDialog d = new PasswordDialog(this,resources .getString("gnupgKeyPassword")); gnupgTempPass = d.getText(); } else if (savepassphraseCheck.isSelected()) { gnupgTempPass = new String(gnupgpasswordField.getPassword()); } else { check = false; } if (!check || ((gnupgTempPass != null) && (gnupg.sign("1", gnupgSecretKeyID, gnupgTempPass)))) { BuddyList.getInstance().setGnuPGPassword(gnupgTempPass); } else { BuddyList.getInstance().setGnuPGPassword(null); Standard .warningMessage(null, "GnuPG Error", "Wrong GnuPG passphrase! Please, try entering it again again."); return; } Hashtable buddyStatuses = BuddyList.getInstance() .getBuddyStatuses(); if (buddyStatuses != null) { Iterator iterator = buddyStatuses.keySet().iterator(); while (iterator.hasNext()) { String user = (String) iterator.next(); BuddyStatus buddy = (BuddyStatus) buddyStatuses.get(user); if (buddy.getConversation() != null && buddy.getConversation() instanceof ChatPanel) { ((ChatPanel) buddy.getConversation()).enableEncrypt(); } } } if (gnupgSignPresenceCheck.isSelected()) { settings.setBoolean("gnupgSignPresence", true); } else { settings.remove("gnupgSignPresence"); } int variant = gnupgSecurityVariantBox.getSelectedIndex(); settings.setProperty("gnupgSecurityVariant", String .valueOf(variant)); settings.setProperty("gnupgSecretKeyID", gnupgSecretKeyID); if (savepassphraseCheck.isSelected()) { String pass = new String(gnupgpasswordField.getPassword()); if (!pass.equals("")) { settings.setBoolean("gnupgSavePassphrase", true); settings.setProperty("gnupgPassPhrase", SimpleXOR.encrypt( pass, "86753099672539")); } else { Standard.warningMessage(this, "GnuPG", resources .getString("gnupgEnterPassphrase")); return; } } else { settings.setBoolean("gnupgSavePassphrase", false); settings.remove("gnupgPassPhrase"); } } else { settings.remove("gnupgSecretKeyID"); } String profile = nameField.getText(); File profileDir = new File(profDir, profile); if (origProf == null) { // check to see if the profile already exists if (profileDir.exists()) { Standard.warningMessage(this, resources .getString("profileEditor"), resources .getString("profileExists")); return; } profileDir.mkdirs(); } else if (!profile.equals(origProf)) { File origProfDir = new File(profDir, origProf); origProfDir.renameTo(profileDir); } try { settings.saveSettings(profDir.getPath() + File.separatorChar + profile + File.separatorChar + "settings.properties", "JBother Settings File"); } catch (IOException ex) { Standard.warningMessage(this, resources.getString("profileEditor"), resources.getString("errorSavingSettings")); return; } if (defaultBox.isSelected()) { ProfileManager.setDefaultProfile(profile); } if (dialog != null) { dialog.loadProfileList(); } if (isCurrentProfile) { ProfileManager.setCurrentProfile(profile); Settings.loadSettings(profDir.getPath() + File.separatorChar + profile, "settings.properties"); ConnectorThread.getInstance().resetCredentials(); } if (exitOnClose) { ProfileManager.loadProfile(nameField.getText()); } dispose(); } /** * Calls the NewAccoutDialog to create a new account */ private void createAccountHandler() { if (serverField.getText().equals("")) { Standard.warningMessage(this, "createAccount", resources .getString("enterNewAccountServer")); return; } int port = -1; boolean ssl = sslBox.isSelected(); try { port = Integer.parseInt(portField.getText()); } catch (NumberFormatException e) { } if (port == -1) { if (ssl) { port = 5223; } else { port = 5222; } } String server = JOptionPane.showInputDialog(resources.getString("enterNewAccountServer")); if( server == null || server.equals("")) return; NewAccountDialog dialog = new NewAccountDialog(this, server, usernameField.getText(), new String(passwordField .getPassword()), port, ssl); dialog.getRegistrationInfo(); } /** * Sets the username * * @param username * The new username value */ public void setUsername(String username) { usernameField.setText(username); } /** * Sets the password * * @param password * The new password value */ public void setPassword(String password) { passwordField.setText(password); } public void setServer(String server) { serverField.setText(server); } /** * Creates the Account Panel */ private void createAccountPanel() { savePassword.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String text = new String(passwordField.getPassword()); passwordField.setEnabled(savePassword.isSelected()); if (!savePassword.isSelected()) { passwordField.setText(""); } else passwordField.setText(text); } }); AbstractOptionPanel panel = new AbstractOptionPanel(); panel.addComponent(resources.getString("username"), usernameField); passwordField.setFont(usernameField.getFont()); panel.addComponent(resources.getString("savePassword"), savePassword); panel.addComponent(resources.getString("password"), passwordField); panel.addComponent(resources.getString("resource"), resourceField); panel.addComponent(resources.getString("server"), serverField); panel.addComponent(createButton, 1, GridBagConstraints.EAST); panel.end(); pane.add(resources.getString("account"), panel); } /** * Creates the options panel */ private void createOptionsPanel() { AbstractOptionPanel panel = new AbstractOptionPanel(); panel.addComponent(resources.getString("useSsl"), sslBox); JPanel portPanel = new JPanel(new BorderLayout()); portPanel.add(portField, BorderLayout.WEST); portPanel.add(new JLabel(" " + resources.getString("leaveBlankForDefault")), BorderLayout.CENTER); panel.addComponent(resources.getString("logInAutomatically"), autoLoginBox); panel.addComponent(resources.getString("reconnectOnDisconnect"), reconnectBox); panel.addComponent(resources.getString("connectPort"), portPanel); panel.end(); pane.add(resources.getString("options"), panel); } /** * Creates the GnuPG Panel */ private void createGnuPGPanel() { JPanel main = new JPanel(new BorderLayout()); AbstractOptionPanel panel = new AbstractOptionPanel(); panel.addComponent(resources.getString("gnupgSecretKey"), keyinfoLabel); panel.addComponent(resources.getString("gnupgSavePassphrase"), savepassphraseCheck); panel.addComponent(resources.getString("gnupgPassphrase"), gnupgpasswordField); panel.addComponent("Sign Presence", gnupgSignPresenceCheck); panel.addComponent("Security Variant", gnupgSecurityVariantBox); savepassphraseCheck.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { gnupgpasswordField.setEnabled(savepassphraseCheck.isSelected()); if (savepassphraseCheck.isSelected()) { if (savepassphraseCheck.isEnabled()) { int result = JOptionPane.showConfirmDialog(null, resources.getString("gnupgInsecure"), "GnuPG", JOptionPane.YES_NO_OPTION); if (result != JOptionPane.YES_OPTION) { savepassphraseCheck.setSelected(false); } } else { gnupgpasswordField.setText(""); } gnupgpasswordField.setEnabled(savepassphraseCheck .isSelected()); } else { gnupgpasswordField.setText(""); } } }); JPanel buttons = new JPanel(); buttons.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); buttons.setLayout(new BoxLayout(buttons, BoxLayout.X_AXIS)); buttons.add(Box.createHorizontalGlue()); buttons.add(gnupgselectButton); buttons.add(gnupgusenoneButton); panel.end(); main.add(panel, BorderLayout.CENTER); main.add(buttons, BorderLayout.SOUTH); pane.add("GnuPG", main); } /** * Loads a certain profile * * @param profile * the profile to load, or null to create a new one */ private void loadProfile(String profile) { if (profile != null) { nameField.setText(profile); try { settings.loadSettings(profDir.getPath() + File.separatorChar + profile + File.separatorChar + "settings.properties"); } catch (Exception ex) { return; } } else { // copy the default file in to place InputStream stream = getClass().getClassLoader() .getResourceAsStream("defaultsettings.properties"); try { settings.load(stream); } catch (Exception ex) { return; } } usernameField.setText(settings.getProperty("username")); String pass = settings.getProperty("password"); savePassword.setSelected(pass != null); passwordField.setEnabled(savePassword.isSelected()); if (savePassword.isSelected()) { passwordField.setText(SimpleXOR.decrypt(settings .getProperty("password"), "JBother rules!")); } resourceField.setText(settings.getProperty("resource")); serverField.setText(settings.getProperty("defaultServer")); portField.setText(settings.getProperty("port")); sslBox.setSelected(settings.getBoolean("useSSL")); autoLoginBox.setSelected(settings.getBoolean("autoLogin")); reconnectBox.setSelected(settings.getBoolean("reconnectOnDisconnect")); String[] entries; String name; String id; GnuPG gnupg = new GnuPG(); id = settings.getProperty("gnupgSecretKeyID"); if (id != null) { if (gnupg.listSecretKeys(id)) { entries = gnupg.getResult().split("\n"); for (int i = 0; i < entries.length; i++) { name = entries[i] .replaceAll( "^sec:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:([^:]*):[^:]*:[^:]*:[^:]*$", "$1"); if (!name.equals(entries[i])) { keyinfoLabel.setText(name); gnupgSecretKeyID = id; if (id != null) { tempgnupgSecretKeyID = id; } } } } if (settings.getProperty("gnupgPassPhrase") != null) { gnupgpasswordField.setText(SimpleXOR.decrypt(settings .getProperty("gnupgPassPhrase"), "86753099672539")); savepassphraseCheck.setSelected(true); } gnupgSignPresenceCheck.setSelected(settings .getBoolean("gnupgSignPresence")); gnupgSignPresenceCheck.setEnabled(true); if (settings.getProperty("gnupgSecurityVariant") != null) { int variant; String vs = settings.getProperty("gnupgSecurityVariant"); if (vs != null) { if (vs.matches("0") == false && vs.matches("1") == false && vs.matches("2") == false) { variant = 0; } else { variant = Integer.parseInt(vs); } } else { variant = 0; } gnupgSecurityVariantBox.setSelectedIndex(variant); gnupgSecurityVariantBox.setEnabled(true); } } else { gnupgSecurityVariantBox.setEnabled(false); gnupgpasswordField.setText(""); gnupgpasswordField.setEnabled(false); savepassphraseCheck.setSelected(false); savepassphraseCheck.setEnabled(false); gnupgSignPresenceCheck.setEnabled(false); } String defaultProf = ProfileManager.getDefaultProfile(); com.valhalla.Logger.debug(defaultProf); if (defaultProf != null && defaultProf.equals(profile)) { defaultBox.setSelected(true); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -