| // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #import "chrome/browser/autofill/autofill_address_model_mac.h" |
| #include "app/l10n_util.h" |
| #include "base/sys_string_conversions.h" |
| #include "chrome/browser/autofill/autofill_profile.h" |
| #include "grit/generated_resources.h" |
| |
| @implementation AutoFillAddressModel |
| |
| @synthesize fullName = fullName_; |
| @synthesize email = email_; |
| @synthesize companyName = companyName_; |
| @synthesize addressLine1 = addressLine1_; |
| @synthesize addressLine2 = addressLine2_; |
| @synthesize addressCity = addressCity_; |
| @synthesize addressState = addressState_; |
| @synthesize addressZip = addressZip_; |
| @synthesize addressCountry = addressCountry_; |
| @synthesize phoneWholeNumber = phoneWholeNumber_; |
| @synthesize faxWholeNumber = faxWholeNumber_; |
| |
| - (id)initWithProfile:(const AutoFillProfile&)profile { |
| if ((self = [super init])) { |
| [self setFullName:SysUTF16ToNSString( |
| profile.GetFieldText(AutoFillType(NAME_FULL)))]; |
| [self setEmail:SysUTF16ToNSString( |
| profile.GetFieldText(AutoFillType(EMAIL_ADDRESS)))]; |
| [self setCompanyName:SysUTF16ToNSString( |
| profile.GetFieldText(AutoFillType(COMPANY_NAME)))]; |
| [self setAddressLine1:SysUTF16ToNSString( |
| profile.GetFieldText(AutoFillType(ADDRESS_HOME_LINE1)))]; |
| [self setAddressLine2:SysUTF16ToNSString( |
| profile.GetFieldText(AutoFillType(ADDRESS_HOME_LINE2)))]; |
| [self setAddressCity:SysUTF16ToNSString( |
| profile.GetFieldText(AutoFillType(ADDRESS_HOME_CITY)))]; |
| [self setAddressState:SysUTF16ToNSString( |
| profile.GetFieldText(AutoFillType(ADDRESS_HOME_STATE)))]; |
| [self setAddressZip:SysUTF16ToNSString( |
| profile.GetFieldText(AutoFillType(ADDRESS_HOME_ZIP)))]; |
| [self setAddressCountry:SysUTF16ToNSString( |
| profile.GetFieldText(AutoFillType(ADDRESS_HOME_COUNTRY)))]; |
| [self setPhoneWholeNumber:SysUTF16ToNSString( |
| profile.GetFieldText(AutoFillType(PHONE_HOME_WHOLE_NUMBER)))]; |
| [self setFaxWholeNumber:SysUTF16ToNSString( |
| profile.GetFieldText(AutoFillType(PHONE_FAX_WHOLE_NUMBER)))]; |
| } |
| return self; |
| } |
| |
| - (void)dealloc { |
| [fullName_ release]; |
| [email_ release]; |
| [companyName_ release]; |
| [addressLine1_ release]; |
| [addressLine2_ release]; |
| [addressCity_ release]; |
| [addressState_ release]; |
| [addressZip_ release]; |
| [addressCountry_ release]; |
| [phoneWholeNumber_ release]; |
| [faxWholeNumber_ release]; |
| [super dealloc]; |
| } |
| |
| - (void)copyModelToProfile:(AutoFillProfile*)profile { |
| DCHECK(profile); |
| profile->SetInfo(AutoFillType(NAME_FULL), |
| base::SysNSStringToUTF16([self fullName])); |
| profile->SetInfo(AutoFillType(EMAIL_ADDRESS), |
| base::SysNSStringToUTF16([self email])); |
| profile->SetInfo(AutoFillType(COMPANY_NAME), |
| base::SysNSStringToUTF16([self companyName])); |
| profile->SetInfo(AutoFillType(ADDRESS_HOME_LINE1), |
| base::SysNSStringToUTF16([self addressLine1])); |
| profile->SetInfo(AutoFillType(ADDRESS_HOME_LINE2), |
| base::SysNSStringToUTF16([self addressLine2])); |
| profile->SetInfo(AutoFillType(ADDRESS_HOME_CITY), |
| base::SysNSStringToUTF16([self addressCity])); |
| profile->SetInfo(AutoFillType(ADDRESS_HOME_STATE), |
| base::SysNSStringToUTF16([self addressState])); |
| profile->SetInfo(AutoFillType(ADDRESS_HOME_ZIP), |
| base::SysNSStringToUTF16([self addressZip])); |
| profile->SetInfo(AutoFillType(ADDRESS_HOME_COUNTRY), |
| base::SysNSStringToUTF16([self addressCountry])); |
| profile->SetInfo(AutoFillType(PHONE_HOME_WHOLE_NUMBER), |
| base::SysNSStringToUTF16([self phoneWholeNumber])); |
| profile->SetInfo(AutoFillType(PHONE_FAX_WHOLE_NUMBER), |
| base::SysNSStringToUTF16([self faxWholeNumber])); |
| } |
| |
| @end |