| Index: chrome/browser/autofill/autofill_credit_card_model_mac.mm
 | 
| ===================================================================
 | 
| --- chrome/browser/autofill/autofill_credit_card_model_mac.mm	(revision 0)
 | 
| +++ chrome/browser/autofill/autofill_credit_card_model_mac.mm	(revision 0)
 | 
| @@ -0,0 +1,86 @@
 | 
| +// 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_credit_card_model_mac.h"
 | 
| +#include "app/l10n_util.h"
 | 
| +#include "base/sys_string_conversions.h"
 | 
| +#include "chrome/browser/autofill/credit_card.h"
 | 
| +#include "grit/generated_resources.h"
 | 
| +
 | 
| +
 | 
| +@implementation AutoFillCreditCardModel
 | 
| +
 | 
| +@dynamic summary;
 | 
| +@synthesize label = label_;
 | 
| +@synthesize nameOnCard = nameOnCard_;
 | 
| +@synthesize creditCardNumber = creditCardNumber_;
 | 
| +@synthesize expirationMonth = expirationMonth_;
 | 
| +@synthesize expirationYear = expirationYear_;
 | 
| +@synthesize cvcCode = cvcCode_;
 | 
| +@synthesize billingAddress = billingAddress_;
 | 
| +@synthesize shippingAddress = shippingAddress_;
 | 
| +
 | 
| +// Sets up the KVO dependency between "summary" and dependent fields.
 | 
| ++ (NSSet*)keyPathsForValuesAffectingValueForKey:(NSString*)key {
 | 
| +  NSSet* keyPaths = [super keyPathsForValuesAffectingValueForKey:key];
 | 
| +
 | 
| +  if ([key isEqualToString:@"summary"]) {
 | 
| +    NSSet* affectingKeys = [NSSet setWithObjects:@"creditCardNumber",
 | 
| +                            @"expirationMonth", @"expirationYear", nil];
 | 
| +    keyPaths = [keyPaths setByAddingObjectsFromSet:affectingKeys];
 | 
| +  }
 | 
| +  return keyPaths;
 | 
| +}
 | 
| +
 | 
| +- (id)initWithCreditCard:(const CreditCard&)creditCard {
 | 
| +  if ((self = [super init])) {
 | 
| +    [self setLabel:SysUTF16ToNSString(creditCard.Label())];
 | 
| +    [self setNameOnCard:SysUTF16ToNSString(
 | 
| +          creditCard.GetFieldText(AutoFillType(CREDIT_CARD_NAME)))];
 | 
| +    [self setCreditCardNumber:SysUTF16ToNSString(
 | 
| +          creditCard.GetFieldText(AutoFillType(CREDIT_CARD_NUMBER)))];
 | 
| +    [self setExpirationMonth:SysUTF16ToNSString(
 | 
| +          creditCard.GetFieldText(AutoFillType(CREDIT_CARD_EXP_MONTH)))];
 | 
| +    [self setExpirationYear:SysUTF16ToNSString(
 | 
| +          creditCard.GetFieldText(AutoFillType(CREDIT_CARD_EXP_4_DIGIT_YEAR)))];
 | 
| +    [self setCvcCode:SysUTF16ToNSString(
 | 
| +          creditCard.GetFieldText(AutoFillType(CREDIT_CARD_VERIFICATION_CODE)))];
 | 
| +  }
 | 
| +  return self;
 | 
| +}
 | 
| +
 | 
| +- (void)dealloc {
 | 
| +  [label_ release];
 | 
| +  [nameOnCard_ release];
 | 
| +  [creditCardNumber_ release];
 | 
| +  [expirationMonth_ release];
 | 
| +  [expirationYear_ release];
 | 
| +  [cvcCode_ release];
 | 
| +  [billingAddress_ release];
 | 
| +  [shippingAddress_ release];
 | 
| +  [super dealloc];
 | 
| +}
 | 
| +
 | 
| +- (NSString*)summary {
 | 
| +  // TODO(dhollowa): This has been pulled into cross platform code.
 | 
| +  // Will hook up in separate CL.  See http://crbug.com/33029.
 | 
| +  return @"";
 | 
| +}
 | 
| +
 | 
| +- (void)copyModelToCreditCard:(CreditCard*)creditCard {
 | 
| +  DCHECK(creditCard);
 | 
| +  creditCard->set_label(base::SysNSStringToUTF16([self label]));
 | 
| +  creditCard->SetInfo(AutoFillType(CREDIT_CARD_NAME),
 | 
| +        base::SysNSStringToUTF16([self nameOnCard]));
 | 
| +  creditCard->SetInfo(AutoFillType(CREDIT_CARD_NUMBER),
 | 
| +        base::SysNSStringToUTF16([self creditCardNumber]));
 | 
| +  creditCard->SetInfo(AutoFillType(CREDIT_CARD_EXP_MONTH),
 | 
| +        base::SysNSStringToUTF16([self expirationMonth]));
 | 
| +  creditCard->SetInfo(AutoFillType(CREDIT_CARD_EXP_4_DIGIT_YEAR),
 | 
| +        base::SysNSStringToUTF16([self expirationYear]));
 | 
| +  creditCard->SetInfo(AutoFillType(CREDIT_CARD_VERIFICATION_CODE),
 | 
| +        base::SysNSStringToUTF16([self cvcCode]));
 | 
| +}
 | 
| +
 | 
| +@end
 | 
| 
 |