Minor UI improvements for users not subscribed to.

git-svn-id: http://svn.igniterealtime.org/svn/repos/spark/trunk@9226 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
Derek DeMoro
2007-09-26 21:55:39 +00:00
committed by derek
parent 91548b3fcd
commit 6e42a8d9c5
2 changed files with 60 additions and 17 deletions

View File

@ -23,6 +23,7 @@ import org.jivesoftware.smack.packet.Presence;
import org.jivesoftware.smack.util.StringUtils;
import org.jivesoftware.smackx.debugger.EnhancedDebuggerWindow;
import org.jivesoftware.smackx.packet.DelayInformation;
import org.jivesoftware.smackx.packet.VCard;
import org.jivesoftware.spark.component.tabbedPane.SparkTabbedPane;
import org.jivesoftware.spark.filetransfer.SparkTransferManager;
import org.jivesoftware.spark.search.SearchManager;
@ -34,7 +35,7 @@ import org.jivesoftware.spark.ui.ContactItem;
import org.jivesoftware.spark.ui.ContactList;
import org.jivesoftware.spark.ui.conferences.ConferenceServices;
import org.jivesoftware.spark.ui.status.StatusBar;
import org.jivesoftware.spark.util.SwingTimerTask;
import org.jivesoftware.spark.util.ModelUtil;
import org.jivesoftware.spark.util.TaskEngine;
import org.jivesoftware.spark.util.log.Log;
import org.jivesoftware.sparkimpl.plugin.alerts.BroadcastPlugin;
@ -43,16 +44,6 @@ import org.jivesoftware.sparkimpl.plugin.gateways.GatewayPlugin;
import org.jivesoftware.sparkimpl.plugin.manager.Enterprise;
import org.jivesoftware.sparkimpl.plugin.transcripts.ChatTranscriptPlugin;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.TimerTask;
import javax.swing.AbstractAction;
import javax.swing.JComponent;
import javax.swing.JPanel;
@ -60,6 +51,14 @@ import javax.swing.JTabbedPane;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.util.TimerTask;
/**
* The inner Container for Spark. The Workspace is the container for all plugins into the Spark
@ -307,11 +306,11 @@ public class Workspace extends JPanel implements PacketListener {
boolean broadcast = message.getProperty("broadcast") != null;
if (body == null ||
isGroupChat ||
broadcast ||
message.getType() == Message.Type.normal ||
message.getType() == Message.Type.headline ||
message.getType() == Message.Type.error) {
isGroupChat ||
broadcast ||
message.getType() == Message.Type.normal ||
message.getType() == Message.Type.headline ||
message.getType() == Message.Type.error) {
return;
}
@ -386,6 +385,24 @@ public class Workspace extends JPanel implements PacketListener {
if (contact != null) {
nickname = contact.getNickname();
}
else {
// Attempt to load VCard from users who we are not subscribed to.
VCard vCard = SparkManager.getVCardManager().getVCard(bareJID);
if (vCard != null && vCard.getError() == null) {
String firstName = vCard.getFirstName();
String lastName = vCard.getLastName();
String userNickname = vCard.getNickName();
if (ModelUtil.hasLength(userNickname)) {
nickname = userNickname;
}
else if (ModelUtil.hasLength(firstName) && ModelUtil.hasLength(lastName)) {
nickname = firstName + " " + lastName;
}
else if (ModelUtil.hasLength(firstName)) {
nickname = firstName;
}
}
}
SparkManager.getChatManager().createChatRoom(bareJID, nickname, nickname);
try {

View File

@ -160,6 +160,31 @@ public class RosterDialog implements PropertyChangeListener, ActionListener {
public void focusLost(FocusEvent e) {
String jid = getJID();
String vcardNickname = null;
if (!publicBox.isSelected()) {
// This is not a transport.
String fullJID = getJID();
if (fullJID.indexOf("@") == -1) {
fullJID = fullJID + "@" + SparkManager.getConnection().getServiceName();
}
VCard vCard = SparkManager.getVCardManager().getVCard(fullJID);
if (vCard != null && vCard.getError() == null) {
String firstName = vCard.getFirstName();
String lastName = vCard.getLastName();
String nickname = vCard.getNickName();
if (ModelUtil.hasLength(nickname)) {
vcardNickname = nickname;
}
else if (ModelUtil.hasLength(firstName) && ModelUtil.hasLength(lastName)) {
vcardNickname = firstName + " " + lastName;
}
else if (ModelUtil.hasLength(firstName)) {
vcardNickname = firstName;
}
}
}
String nickname = nicknameField.getText();
if (!ModelUtil.hasLength(nickname) && ModelUtil.hasLength(jid)) {
@ -167,7 +192,8 @@ public class RosterDialog implements PropertyChangeListener, ActionListener {
if (!ModelUtil.hasLength(nickname)) {
nickname = jid;
}
nicknameField.setText(nickname);
nicknameField.setText(vcardNickname != null ? vcardNickname : nickname);
}
}
});