From c1c59400c9ebd4b3ba66c5e7d0416a03f53d0cd2 Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Mon, 14 Apr 2014 14:49:39 +0300 Subject: [PATCH] Adds mobile number to account details. --- resources/languages/resources.properties | 1 + ...nSetServerStoredAccountInfoJabberImpl.java | 3 ++ .../accountinfo/AccountDetailsPanel.java | 53 +++++++++++-------- 3 files changed, 35 insertions(+), 22 deletions(-) diff --git a/resources/languages/resources.properties b/resources/languages/resources.properties index 8ae72a74d..0e60b6f7f 100644 --- a/resources/languages/resources.properties +++ b/resources/languages/resources.properties @@ -921,6 +921,7 @@ plugin.accountinfo.EMAIL=E-mail: plugin.accountinfo.WORK_EMAIL=Work E-mail: plugin.accountinfo.PHONE=Phone: plugin.accountinfo.WORK_PHONE=Work Phone: +plugin.accountinfo.MOBILE_PHONE=Mobile Phone: plugin.accountinfo.ORGANIZATION=Organization Name: plugin.accountinfo.JOB_TITLE=Job Title: plugin.accountinfo.ABOUT_ME=About Me: diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetServerStoredAccountInfoJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetServerStoredAccountInfoJabberImpl.java index 26785bef8..04a0338d6 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetServerStoredAccountInfoJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetServerStoredAccountInfoJabberImpl.java @@ -66,6 +66,7 @@ public class OperationSetServerStoredAccountInfoJabberImpl supportedTypes.add(WorkEmailAddressDetail.class); supportedTypes.add(PhoneNumberDetail.class); supportedTypes.add(WorkPhoneDetail.class); + supportedTypes.add(MobilePhoneDetail.class); supportedTypes.add(VideoDetail.class); supportedTypes.add(WorkVideoDetail.class); supportedTypes.add(WorkOrganizationNameDetail.class); @@ -383,6 +384,8 @@ else if (detail.getClass().equals(PhoneNumberDetail.class)) vCard.setPhoneHome("VOICE", (String)detail.getDetailValue()); else if (detail.getClass().equals(WorkPhoneDetail.class)) vCard.setPhoneWork("VOICE", (String)detail.getDetailValue()); + else if (detail.getClass().equals(MobilePhoneDetail.class)) + vCard.setPhoneHome("CELL", (String)detail.getDetailValue()); else if (detail.getClass().equals(VideoDetail.class)) vCard.setPhoneHome("VIDEO", (String)detail.getDetailValue()); else if (detail.getClass().equals(WorkVideoDetail.class)) diff --git a/src/net/java/sip/communicator/plugin/accountinfo/AccountDetailsPanel.java b/src/net/java/sip/communicator/plugin/accountinfo/AccountDetailsPanel.java index bc740d720..d942b7828 100644 --- a/src/net/java/sip/communicator/plugin/accountinfo/AccountDetailsPanel.java +++ b/src/net/java/sip/communicator/plugin/accountinfo/AccountDetailsPanel.java @@ -21,28 +21,7 @@ import net.java.sip.communicator.plugin.desktoputil.presence.avatar.*; import net.java.sip.communicator.service.globaldisplaydetails.*; import net.java.sip.communicator.service.protocol.*; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.AboutMeDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.AddressDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.BirthDateDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.CityDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.CountryDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.DisplayNameDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.EmailAddressDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.FirstNameDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.GenderDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.GenericDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.ImageDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.JobTitleDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.LastNameDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.MiddleNameDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.NicknameDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.PhoneNumberDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.PostalCodeDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.ProvinceDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.URLDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.WorkEmailAddressDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.WorkOrganizationNameDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.WorkPhoneDetail; +import net.java.sip.communicator.service.protocol.ServerStoredDetails.*; import net.java.sip.communicator.util.Logger; @@ -118,6 +97,8 @@ public class AccountDetailsPanel private JTextField workPhoneField; + private JTextField mobilePhoneField; + private JTextField emailField; private JTextField workEmailField; @@ -177,6 +158,8 @@ public class AccountDetailsPanel private WorkPhoneDetail workPhoneDetail; + private MobilePhoneDetail mobilePhoneDetail; + private EmailAddressDetail emailDetail; private WorkEmailAddressDetail workEmailDetail; @@ -548,6 +531,17 @@ public void propertyChange(PropertyChangeEvent evt) detailToTextField.put( WorkPhoneDetail.class, workPhoneField); } + if (accountInfoOpSet.isDetailClassSupported(MobilePhoneDetail.class)) + { + mobilePhoneField = new JTextField(); + valuesPanel.add(new JLabel( + Resources.getString("plugin.accountinfo.MOBILE_PHONE")) + , first); + valuesPanel.add(mobilePhoneField, second); + first.gridy = ++second.gridy; + detailToTextField.put( + MobilePhoneDetail.class, mobilePhoneField); + } if (accountInfoOpSet.isDetailClassSupported( WorkOrganizationNameDetail.class)) { @@ -818,6 +812,8 @@ else if (detail.getClass().equals(PhoneNumberDetail.class)) phoneDetail = (PhoneNumberDetail) detail; else if (detail.getClass().equals(WorkPhoneDetail.class)) workPhoneDetail = (WorkPhoneDetail) detail; + else if (detail.getClass().equals(MobilePhoneDetail.class)) + mobilePhoneDetail = (MobilePhoneDetail) detail; else if (detail.getClass().equals(EmailAddressDetail.class)) emailDetail = (EmailAddressDetail) detail; else if (detail.getClass().equals(WorkEmailAddressDetail.class)) @@ -1105,6 +1101,19 @@ public void actionPerformed(ActionEvent e) if (workPhoneDetail != null || newDetail != null) changeDetail(workPhoneDetail, newDetail); } + if (accountInfoOpSet.isDetailClassSupported( + MobilePhoneDetail.class)) + { + String text = + detailToTextField.get(MobilePhoneDetail.class).getText(); + + MobilePhoneDetail newDetail = null; + if (!StringUtils.isNullOrEmpty(text, true)) + newDetail = new MobilePhoneDetail(text); + + if (mobilePhoneDetail != null || newDetail != null) + changeDetail(mobilePhoneDetail, newDetail); + } if (accountInfoOpSet.isDetailClassSupported( WorkOrganizationNameDetail.class)) {