From a3109d7cb6adffbfde317dc20c06697be2add632 Mon Sep 17 00:00:00 2001 From: Yana Stamcheva Date: Tue, 12 Feb 2013 17:44:27 +0000 Subject: [PATCH] Fills display name when adding contacts from contact sources such as Outlook, Google Contacts or MacOSX Contacts. Patch provided by Hristo Terezov. --- .../main/contactlist/AddContactDialog.java | 9 +++++++++ .../ContactListTreeCellRenderer.java | 4 +++- .../gui/main/contactlist/TreeContactList.java | 19 ++++++++++++++----- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/AddContactDialog.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/AddContactDialog.java index 109583236..36cf00f4e 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/AddContactDialog.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/AddContactDialog.java @@ -148,6 +148,15 @@ public void setContactAddress(String contactAddress) contactAddressField.setText(contactAddress); } + /** + * Sets the display name of the contact to add. + * @param displayName the display name of the contact to add + */ + public void setDisplayName(String displayName) + { + displayNameField.setText(displayName); + } + /** * Initializes the dialog. */ diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java index 3f5f51574..ce8aed475 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java @@ -1404,7 +1404,9 @@ private void addContact(SourceUIContact contact) } else if (details.size() == 1) { - TreeContactList.showAddContactDialog(details.get(0)); + TreeContactList.showAddContactDialog( + details.get(0), + sourceContact.getDisplayName()); } } diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java index 38fa245ef..97dbf908a 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java @@ -1921,6 +1921,7 @@ public static JMenuItem createAddContactMenu(SourceContact sourceContact) JMenuItem addContactComponentTmp = null; List details = sourceContact.getContactDetails(); + final String displayName = sourceContact.getDisplayName(); if (details.size() == 1) { @@ -1936,7 +1937,7 @@ public static JMenuItem createAddContactMenu(SourceContact sourceContact) { public void actionPerformed(ActionEvent e) { - showAddContactDialog(detail); + showAddContactDialog(detail, displayName); } }); } @@ -1962,7 +1963,7 @@ else if (details.size() > 1) { public void actionPerformed(ActionEvent e) { - showAddContactDialog(detail); + showAddContactDialog(detail, displayName); } }); } @@ -1975,8 +1976,11 @@ public void actionPerformed(ActionEvent e) * Creates and shows an AddContactDialog with a predefined * contactAddress and protocolProvider. * @param contactDetail the contact detail to be added + * @param displayName the display name of the contact */ - public static void showAddContactDialog(ContactDetail contactDetail) + public static void showAddContactDialog( + ContactDetail contactDetail, + String displayName) { AddContactDialog dialog = new AddContactDialog( GuiActivator.getUIService().getMainFrame()); @@ -1994,8 +1998,13 @@ public static void showAddContactDialog(ContactDetail contactDetail) } if (preferredProvider != null) dialog.setSelectedAccount(preferredProvider); - - dialog.setContactAddress(contactDetail.getDetail()); + + String contactAddress = contactDetail.getDetail(); + dialog.setContactAddress(contactAddress); + if(displayName != null && !displayName.equalsIgnoreCase(contactAddress)) + { + dialog.setDisplayName(displayName); + } dialog.setVisible(true); }