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

Side by Side Diff: chrome/browser/ui/views/payments/shipping_address_editor_view_controller.cc

Issue 2881643002: Focus first invalid field of payment request editor (Closed)
Patch Set: Rebase Created 3 years, 7 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 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 #include "chrome/browser/ui/views/payments/shipping_address_editor_view_controll er.h" 5 #include "chrome/browser/ui/views/payments/shipping_address_editor_view_controll er.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 ShippingAddressEditorViewController::ShippingAddressValidationDelegate:: 389 ShippingAddressEditorViewController::ShippingAddressValidationDelegate::
390 ShippingAddressValidationDelegate( 390 ShippingAddressValidationDelegate(
391 ShippingAddressEditorViewController* controller, 391 ShippingAddressEditorViewController* controller,
392 const EditorField& field) 392 const EditorField& field)
393 : field_(field), controller_(controller) {} 393 : field_(field), controller_(controller) {}
394 394
395 ShippingAddressEditorViewController::ShippingAddressValidationDelegate:: 395 ShippingAddressEditorViewController::ShippingAddressValidationDelegate::
396 ~ShippingAddressValidationDelegate() {} 396 ~ShippingAddressValidationDelegate() {}
397 397
398 bool ShippingAddressEditorViewController::ShippingAddressValidationDelegate:: 398 bool ShippingAddressEditorViewController::ShippingAddressValidationDelegate::
399 ValidateTextfield(views::Textfield* textfield) { 399 ValidateTextfield(views::Textfield* textfield, bool display_error) {
400 return ValidateValue(textfield->text()); 400 return ValidateValue(textfield->text(), display_error);
401 } 401 }
402 402
403 bool ShippingAddressEditorViewController::ShippingAddressValidationDelegate:: 403 bool ShippingAddressEditorViewController::ShippingAddressValidationDelegate::
404 ValidateCombobox(views::Combobox* combobox) { 404 ValidateCombobox(views::Combobox* combobox, bool display_error) {
405 return ValidateValue(combobox->GetTextForRow(combobox->selected_index())); 405 return ValidateValue(combobox->GetTextForRow(combobox->selected_index()),
406 display_error);
406 } 407 }
407 408
408 void ShippingAddressEditorViewController::ShippingAddressValidationDelegate:: 409 void ShippingAddressEditorViewController::ShippingAddressValidationDelegate::
409 ComboboxModelChanged(views::Combobox* combobox) { 410 ComboboxModelChanged(views::Combobox* combobox) {
410 controller_->OnComboboxModelChanged(combobox); 411 controller_->OnComboboxModelChanged(combobox);
411 } 412 }
412 413
413 bool ShippingAddressEditorViewController::ShippingAddressValidationDelegate:: 414 bool ShippingAddressEditorViewController::ShippingAddressValidationDelegate::
414 ValidateValue(const base::string16& value) { 415 ValidateValue(const base::string16& value, bool display_error) {
415 if (!value.empty()) { 416 if (!value.empty()) {
416 if (field_.type == autofill::PHONE_HOME_WHOLE_NUMBER && 417 if (field_.type == autofill::PHONE_HOME_WHOLE_NUMBER &&
417 !autofill::IsValidPhoneNumber( 418 !autofill::IsValidPhoneNumber(
418 value, 419 value,
419 controller_->country_codes_[controller_->chosen_country_index_])) { 420 controller_->country_codes_[controller_->chosen_country_index_])) {
420 controller_->DisplayErrorMessageForField( 421 if (display_error) {
421 field_, l10n_util::GetStringUTF16( 422 controller_->DisplayErrorMessageForField(
422 IDS_PAYMENTS_PHONE_INVALID_VALIDATION_MESSAGE)); 423 field_, l10n_util::GetStringUTF16(
424 IDS_PAYMENTS_PHONE_INVALID_VALIDATION_MESSAGE));
425 }
423 return false; 426 return false;
424 } 427 }
425 // As long as other field types are non-empty, they are valid. 428 // As long as other field types are non-empty, they are valid.
426 controller_->DisplayErrorMessageForField(field_, base::ASCIIToUTF16("")); 429 if (display_error)
430 controller_->DisplayErrorMessageForField(field_, base::ASCIIToUTF16(""));
427 return true; 431 return true;
428 } 432 }
429 bool is_required_valid = !field_.required; 433 bool is_required_valid = !field_.required;
430 const base::string16 displayed_message = 434 const base::string16 displayed_message =
431 is_required_valid ? base::ASCIIToUTF16("") 435 is_required_valid ? base::ASCIIToUTF16("")
432 : l10n_util::GetStringUTF16( 436 : l10n_util::GetStringUTF16(
433 IDS_PAYMENTS_FIELD_REQUIRED_VALIDATION_MESSAGE); 437 IDS_PAYMENTS_FIELD_REQUIRED_VALIDATION_MESSAGE);
434 controller_->DisplayErrorMessageForField(field_, displayed_message); 438 if (display_error)
439 controller_->DisplayErrorMessageForField(field_, displayed_message);
435 return is_required_valid; 440 return is_required_valid;
436 } 441 }
437 442
438 } // namespace payments 443 } // namespace payments
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698