Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(350)

Side by Side Diff: chrome/browser/autofill/autofill_credit_card_model_mac.mm

Issue 2673006: AutoFill Profiles dialog implemented according to new mocks on Mac (Closed)
Patch Set: Revisions based on review comments. Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "chrome/browser/autofill/autofill_credit_card_model_mac.h" 5 #import "chrome/browser/autofill/autofill_credit_card_model_mac.h"
6 #include "app/l10n_util.h" 6 #include "app/l10n_util.h"
7 #include "base/sys_string_conversions.h" 7 #include "base/sys_string_conversions.h"
8 #include "chrome/browser/autofill/credit_card.h" 8 #include "chrome/browser/autofill/credit_card.h"
9 #include "grit/generated_resources.h" 9 #include "grit/generated_resources.h"
10 10
11 11
12 @implementation AutoFillCreditCardModel 12 @implementation AutoFillCreditCardModel
13 13
14 @dynamic summary;
15 @synthesize label = label_; 14 @synthesize label = label_;
16 @synthesize nameOnCard = nameOnCard_; 15 @synthesize nameOnCard = nameOnCard_;
17 @synthesize creditCardNumber = creditCardNumber_; 16 @synthesize creditCardNumber = creditCardNumber_;
18 @synthesize expirationMonth = expirationMonth_; 17 @synthesize expirationMonth = expirationMonth_;
19 @synthesize expirationYear = expirationYear_; 18 @synthesize expirationYear = expirationYear_;
20 @synthesize cvcCode = cvcCode_; 19 @synthesize cvcCode = cvcCode_;
21 @synthesize billingAddress = billingAddress_; 20 @synthesize billingAddress = billingAddress_;
22 @synthesize shippingAddress = shippingAddress_;
23
24 // Sets up the KVO dependency between "summary" and dependent fields.
25 + (NSSet*)keyPathsForValuesAffectingValueForKey:(NSString*)key {
26 NSSet* keyPaths = [super keyPathsForValuesAffectingValueForKey:key];
27
28 if ([key isEqualToString:@"summary"]) {
29 NSSet* affectingKeys = [NSSet setWithObjects:@"creditCardNumber",
30 @"expirationMonth", @"expirationYear", nil];
31 keyPaths = [keyPaths setByAddingObjectsFromSet:affectingKeys];
32 }
33 return keyPaths;
34 }
35 21
36 - (id)initWithCreditCard:(const CreditCard&)creditCard { 22 - (id)initWithCreditCard:(const CreditCard&)creditCard {
37 if ((self = [super init])) { 23 if ((self = [super init])) {
38 [self setLabel:SysUTF16ToNSString(creditCard.Label())]; 24 [self setLabel:SysUTF16ToNSString(creditCard.Label())];
39 [self setNameOnCard:SysUTF16ToNSString( 25 [self setNameOnCard:SysUTF16ToNSString(
40 creditCard.GetFieldText(AutoFillType(CREDIT_CARD_NAME)))]; 26 creditCard.GetFieldText(AutoFillType(CREDIT_CARD_NAME)))];
41 [self setCreditCardNumber:SysUTF16ToNSString( 27 [self setCreditCardNumber:SysUTF16ToNSString(
42 creditCard.GetFieldText(AutoFillType(CREDIT_CARD_NUMBER)))]; 28 creditCard.GetFieldText(AutoFillType(CREDIT_CARD_NUMBER)))];
43 [self setExpirationMonth:SysUTF16ToNSString( 29 [self setExpirationMonth:SysUTF16ToNSString(
44 creditCard.GetFieldText(AutoFillType(CREDIT_CARD_EXP_MONTH)))]; 30 creditCard.GetFieldText(AutoFillType(CREDIT_CARD_EXP_MONTH)))];
45 [self setExpirationYear:SysUTF16ToNSString( 31 [self setExpirationYear:SysUTF16ToNSString(
46 creditCard.GetFieldText(AutoFillType(CREDIT_CARD_EXP_4_DIGIT_YEAR)))]; 32 creditCard.GetFieldText(AutoFillType(CREDIT_CARD_EXP_4_DIGIT_YEAR)))];
47 [self setCvcCode:SysUTF16ToNSString( 33 [self setCvcCode:SysUTF16ToNSString(
48 creditCard.GetFieldText(AutoFillType(CREDIT_CARD_VERIFICATION_CODE)))]; 34 creditCard.GetFieldText(AutoFillType(CREDIT_CARD_VERIFICATION_CODE)))];
49 [self setBillingAddress:SysUTF16ToNSString( 35 [self setBillingAddress:SysUTF16ToNSString(
50 creditCard.billing_address())]; 36 creditCard.billing_address())];
51 [self setShippingAddress:SysUTF16ToNSString(
52 creditCard.shipping_address())];
53 } 37 }
54 return self; 38 return self;
55 } 39 }
56 40
57 - (void)dealloc { 41 - (void)dealloc {
58 [label_ release]; 42 [label_ release];
59 [nameOnCard_ release]; 43 [nameOnCard_ release];
60 [creditCardNumber_ release]; 44 [creditCardNumber_ release];
61 [expirationMonth_ release]; 45 [expirationMonth_ release];
62 [expirationYear_ release]; 46 [expirationYear_ release];
63 [cvcCode_ release]; 47 [cvcCode_ release];
64 [billingAddress_ release]; 48 [billingAddress_ release];
65 [shippingAddress_ release];
66 [super dealloc]; 49 [super dealloc];
67 } 50 }
68 51
69 - (NSString*)summary {
70 // Create a temporary |creditCard| to generate summary string.
71 CreditCard creditCard(string16(), 0);
72 [self copyModelToCreditCard:&creditCard];
73 return SysUTF16ToNSString(creditCard.PreviewSummary());
74 }
75
76 - (void)copyModelToCreditCard:(CreditCard*)creditCard { 52 - (void)copyModelToCreditCard:(CreditCard*)creditCard {
77 DCHECK(creditCard); 53 DCHECK(creditCard);
78 creditCard->set_label(base::SysNSStringToUTF16([self label])); 54 creditCard->set_label(base::SysNSStringToUTF16([self label]));
79 creditCard->SetInfo(AutoFillType(CREDIT_CARD_NAME), 55 creditCard->SetInfo(AutoFillType(CREDIT_CARD_NAME),
80 base::SysNSStringToUTF16([self nameOnCard])); 56 base::SysNSStringToUTF16([self nameOnCard]));
81 creditCard->SetInfo(AutoFillType(CREDIT_CARD_NUMBER), 57 creditCard->SetInfo(AutoFillType(CREDIT_CARD_NUMBER),
82 base::SysNSStringToUTF16([self creditCardNumber])); 58 base::SysNSStringToUTF16([self creditCardNumber]));
83 creditCard->SetInfo(AutoFillType(CREDIT_CARD_EXP_MONTH), 59 creditCard->SetInfo(AutoFillType(CREDIT_CARD_EXP_MONTH),
84 base::SysNSStringToUTF16([self expirationMonth])); 60 base::SysNSStringToUTF16([self expirationMonth]));
85 creditCard->SetInfo(AutoFillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), 61 creditCard->SetInfo(AutoFillType(CREDIT_CARD_EXP_4_DIGIT_YEAR),
86 base::SysNSStringToUTF16([self expirationYear])); 62 base::SysNSStringToUTF16([self expirationYear]));
87 creditCard->SetInfo(AutoFillType(CREDIT_CARD_VERIFICATION_CODE), 63 creditCard->SetInfo(AutoFillType(CREDIT_CARD_VERIFICATION_CODE),
88 base::SysNSStringToUTF16([self cvcCode])); 64 base::SysNSStringToUTF16([self cvcCode]));
89 creditCard->set_billing_address( 65 creditCard->set_billing_address(
90 base::SysNSStringToUTF16([self billingAddress])); 66 base::SysNSStringToUTF16([self billingAddress]));
91 creditCard->set_shipping_address(
92 base::SysNSStringToUTF16([self shippingAddress]));
93 } 67 }
94 68
95 @end 69 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698