mirror of
https://github.com/igniterealtime/Spark.git
synced 2025-12-01 12:27:58 +00:00
Fix roster dialog.
git-svn-id: http://svn.igniterealtime.org/svn/repos/spark/trunk@6965 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
@ -24,11 +24,24 @@ import org.jivesoftware.spark.component.borders.ComponentTitledBorder;
|
||||
import org.jivesoftware.spark.component.renderer.JPanelRenderer;
|
||||
import org.jivesoftware.spark.util.ModelUtil;
|
||||
import org.jivesoftware.spark.util.ResourceUtils;
|
||||
import org.jivesoftware.spark.util.SwingWorker;
|
||||
import org.jivesoftware.spark.util.log.Log;
|
||||
import org.jivesoftware.sparkimpl.plugin.gateways.Gateway;
|
||||
import org.jivesoftware.sparkimpl.plugin.gateways.transports.Transport;
|
||||
import org.jivesoftware.sparkimpl.plugin.gateways.transports.TransportUtils;
|
||||
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTextField;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
@ -46,18 +59,6 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTextField;
|
||||
|
||||
|
||||
/**
|
||||
* The RosterDialog is used to add new users to the users XMPP Roster.
|
||||
@ -158,7 +159,7 @@ public class RosterDialog implements PropertyChangeListener, ActionListener {
|
||||
}
|
||||
|
||||
public void focusLost(FocusEvent e) {
|
||||
String jid = jidField.getText();
|
||||
String jid = getJID();
|
||||
|
||||
String nickname = nicknameField.getText();
|
||||
if (!ModelUtil.hasLength(nickname) && ModelUtil.hasLength(jid)) {
|
||||
@ -296,7 +297,8 @@ public class RosterDialog implements PropertyChangeListener, ActionListener {
|
||||
dialog.setVisible(false);
|
||||
}
|
||||
else if (Res.getString("add").equals(value)) {
|
||||
String contact = UserManager.escapeJID(jidField.getText());
|
||||
String jid = getJID();
|
||||
String contact = UserManager.escapeJID(jid);
|
||||
String nickname = nicknameField.getText();
|
||||
String group = (String)groupBox.getSelectedItem();
|
||||
|
||||
@ -368,7 +370,7 @@ public class RosterDialog implements PropertyChangeListener, ActionListener {
|
||||
transport = item.getTransport();
|
||||
}
|
||||
if (transport == null) {
|
||||
String jid = jidField.getText();
|
||||
String jid = getJID();
|
||||
if (jid.indexOf("@") == -1) {
|
||||
jid = jid + "@" + SparkManager.getConnection().getServiceName();
|
||||
}
|
||||
@ -378,10 +380,10 @@ public class RosterDialog implements PropertyChangeListener, ActionListener {
|
||||
jid = UserManager.escapeJID(jid);
|
||||
|
||||
// Add as a new entry
|
||||
addEntry(jid, nickname, group);
|
||||
addRosterEntry(jid, nickname, group);
|
||||
}
|
||||
else {
|
||||
String jid = jidField.getText();
|
||||
String jid = getJID();
|
||||
try {
|
||||
jid = Gateway.getJID(transport.getServiceName(), jid);
|
||||
}
|
||||
@ -391,11 +393,36 @@ public class RosterDialog implements PropertyChangeListener, ActionListener {
|
||||
|
||||
String nickname = nicknameField.getText();
|
||||
String group = (String)groupBox.getSelectedItem();
|
||||
addEntry(jid, nickname, group);
|
||||
|
||||
addRosterEntry(jid, nickname, group);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the trimmed version of the JID.
|
||||
*
|
||||
* @return the trimmed version.
|
||||
*/
|
||||
private String getJID() {
|
||||
return jidField.getText().trim();
|
||||
}
|
||||
|
||||
private void addRosterEntry(final String jid, final String nickname, final String group) {
|
||||
final SwingWorker rosterEntryThread = new SwingWorker() {
|
||||
public Object construct() {
|
||||
return addEntry(jid, nickname, group);
|
||||
}
|
||||
|
||||
public void finished() {
|
||||
if (get() == null) {
|
||||
JOptionPane.showMessageDialog(dialog, Res.getString("label.unable.to.add.contact"), Res.getString("title.error"), JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
rosterEntryThread.start();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a new entry to the users Roster.
|
||||
*
|
||||
|
||||
@ -80,6 +80,7 @@
|
||||
## Added key: 'checkbox.tabs.on.top'
|
||||
## Added key: 'user.has.signed.in'
|
||||
## Added key: 'user.has.signed.off'
|
||||
## Added key: 'label.unable.to.add.contact'
|
||||
|
||||
|
||||
ok = Ok
|
||||
@ -250,6 +251,7 @@ label.jabber.id = &Jabber ID
|
||||
label.group = &Group
|
||||
label.enter.group.name = Enter new group name
|
||||
label.network = Networ&k
|
||||
label.unable.to.add.contact = Unable to add contact.
|
||||
|
||||
|
||||
message.username.error = Specify a username for the account.
|
||||
|
||||
Reference in New Issue
Block a user