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.component.renderer.JPanelRenderer;
|
||||||
import org.jivesoftware.spark.util.ModelUtil;
|
import org.jivesoftware.spark.util.ModelUtil;
|
||||||
import org.jivesoftware.spark.util.ResourceUtils;
|
import org.jivesoftware.spark.util.ResourceUtils;
|
||||||
|
import org.jivesoftware.spark.util.SwingWorker;
|
||||||
import org.jivesoftware.spark.util.log.Log;
|
import org.jivesoftware.spark.util.log.Log;
|
||||||
import org.jivesoftware.sparkimpl.plugin.gateways.Gateway;
|
import org.jivesoftware.sparkimpl.plugin.gateways.Gateway;
|
||||||
import org.jivesoftware.sparkimpl.plugin.gateways.transports.Transport;
|
import org.jivesoftware.sparkimpl.plugin.gateways.transports.Transport;
|
||||||
import org.jivesoftware.sparkimpl.plugin.gateways.transports.TransportUtils;
|
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.BorderLayout;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
@ -46,18 +59,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Vector;
|
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.
|
* The RosterDialog is used to add new users to the users XMPP Roster.
|
||||||
@ -108,7 +109,7 @@ public class RosterDialog implements PropertyChangeListener, ActionListener {
|
|||||||
|
|
||||||
|
|
||||||
ComponentTitledBorder componentBorder = new ComponentTitledBorder(publicBox, networkPanel
|
ComponentTitledBorder componentBorder = new ComponentTitledBorder(publicBox, networkPanel
|
||||||
, BorderFactory.createEtchedBorder());
|
, BorderFactory.createEtchedBorder());
|
||||||
|
|
||||||
|
|
||||||
networkPanel.add(accountsLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 17, 2, new Insets(5, 5, 5, 5), 0, 0));
|
networkPanel.add(accountsLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 17, 2, new Insets(5, 5, 5, 5), 0, 0));
|
||||||
@ -158,7 +159,7 @@ public class RosterDialog implements PropertyChangeListener, ActionListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void focusLost(FocusEvent e) {
|
public void focusLost(FocusEvent e) {
|
||||||
String jid = jidField.getText();
|
String jid = getJID();
|
||||||
|
|
||||||
String nickname = nicknameField.getText();
|
String nickname = nicknameField.getText();
|
||||||
if (!ModelUtil.hasLength(nickname) && ModelUtil.hasLength(jid)) {
|
if (!ModelUtil.hasLength(nickname) && ModelUtil.hasLength(jid)) {
|
||||||
@ -257,7 +258,7 @@ public class RosterDialog implements PropertyChangeListener, ActionListener {
|
|||||||
mainPanel.setLayout(new BorderLayout());
|
mainPanel.setLayout(new BorderLayout());
|
||||||
mainPanel.add(titlePanel, BorderLayout.NORTH);
|
mainPanel.add(titlePanel, BorderLayout.NORTH);
|
||||||
Object[] options = {
|
Object[] options = {
|
||||||
Res.getString("add"), Res.getString("cancel")
|
Res.getString("add"), Res.getString("cancel")
|
||||||
};
|
};
|
||||||
pane = new JOptionPane(panel, -1, 2, null, options, options[0]);
|
pane = new JOptionPane(panel, -1, 2, null, options, options[0]);
|
||||||
mainPanel.add(pane, BorderLayout.CENTER);
|
mainPanel.add(pane, BorderLayout.CENTER);
|
||||||
@ -296,7 +297,8 @@ public class RosterDialog implements PropertyChangeListener, ActionListener {
|
|||||||
dialog.setVisible(false);
|
dialog.setVisible(false);
|
||||||
}
|
}
|
||||||
else if (Res.getString("add").equals(value)) {
|
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 nickname = nicknameField.getText();
|
||||||
String group = (String)groupBox.getSelectedItem();
|
String group = (String)groupBox.getSelectedItem();
|
||||||
|
|
||||||
@ -368,7 +370,7 @@ public class RosterDialog implements PropertyChangeListener, ActionListener {
|
|||||||
transport = item.getTransport();
|
transport = item.getTransport();
|
||||||
}
|
}
|
||||||
if (transport == null) {
|
if (transport == null) {
|
||||||
String jid = jidField.getText();
|
String jid = getJID();
|
||||||
if (jid.indexOf("@") == -1) {
|
if (jid.indexOf("@") == -1) {
|
||||||
jid = jid + "@" + SparkManager.getConnection().getServiceName();
|
jid = jid + "@" + SparkManager.getConnection().getServiceName();
|
||||||
}
|
}
|
||||||
@ -378,10 +380,10 @@ public class RosterDialog implements PropertyChangeListener, ActionListener {
|
|||||||
jid = UserManager.escapeJID(jid);
|
jid = UserManager.escapeJID(jid);
|
||||||
|
|
||||||
// Add as a new entry
|
// Add as a new entry
|
||||||
addEntry(jid, nickname, group);
|
addRosterEntry(jid, nickname, group);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
String jid = jidField.getText();
|
String jid = getJID();
|
||||||
try {
|
try {
|
||||||
jid = Gateway.getJID(transport.getServiceName(), jid);
|
jid = Gateway.getJID(transport.getServiceName(), jid);
|
||||||
}
|
}
|
||||||
@ -391,11 +393,36 @@ public class RosterDialog implements PropertyChangeListener, ActionListener {
|
|||||||
|
|
||||||
String nickname = nicknameField.getText();
|
String nickname = nicknameField.getText();
|
||||||
String group = (String)groupBox.getSelectedItem();
|
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.
|
* Adds a new entry to the users Roster.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -80,6 +80,7 @@
|
|||||||
## Added key: 'checkbox.tabs.on.top'
|
## Added key: 'checkbox.tabs.on.top'
|
||||||
## Added key: 'user.has.signed.in'
|
## Added key: 'user.has.signed.in'
|
||||||
## Added key: 'user.has.signed.off'
|
## Added key: 'user.has.signed.off'
|
||||||
|
## Added key: 'label.unable.to.add.contact'
|
||||||
|
|
||||||
|
|
||||||
ok = Ok
|
ok = Ok
|
||||||
@ -250,6 +251,7 @@ label.jabber.id = &Jabber ID
|
|||||||
label.group = &Group
|
label.group = &Group
|
||||||
label.enter.group.name = Enter new group name
|
label.enter.group.name = Enter new group name
|
||||||
label.network = Networ&k
|
label.network = Networ&k
|
||||||
|
label.unable.to.add.contact = Unable to add contact.
|
||||||
|
|
||||||
|
|
||||||
message.username.error = Specify a username for the account.
|
message.username.error = Specify a username for the account.
|
||||||
|
|||||||
Reference in New Issue
Block a user