diff --git a/apps/tests/ui/date-picker/date-picker-tests.ts b/apps/tests/ui/date-picker/date-picker-tests.ts index 7451e44ac..493359104 100644 --- a/apps/tests/ui/date-picker/date-picker-tests.ts +++ b/apps/tests/ui/date-picker/date-picker-tests.ts @@ -2,6 +2,8 @@ import helper = require("../helper"); import viewModule = require("ui/core/view"); import datePickerTestsNative = require("./date-picker-tests-native"); +import color = require("color"); +import platform = require("platform"); // // # DatePicker @@ -51,6 +53,18 @@ export function test_DummyForCodeSnippet() { }); } +// Supported in iOS only. +if (platform.device.os === platform.platformNames.ios) { + exports.test_set_color = function () { + helper.buildUIAndRunTest(_createDatePicker(), function (views: Array) { + var datePicker = views[0]; + datePicker.color = new color.Color("red"); + TKUnit.assertEqual(datePicker.color.ios.CGColor, datePicker.ios.valueForKey("textColor").CGColor, "datePicker.color"); + }); + + } +} + export function test_WhenCreated_YearIsUndefined() { helper.buildUIAndRunTest(_createDatePicker(), function (views: Array) { var datePicker = views[0]; diff --git a/apps/tests/ui/time-picker/time-picker-tests.ts b/apps/tests/ui/time-picker/time-picker-tests.ts index c35ea6e13..2acb888bf 100644 --- a/apps/tests/ui/time-picker/time-picker-tests.ts +++ b/apps/tests/ui/time-picker/time-picker-tests.ts @@ -2,6 +2,8 @@ import helper = require("../helper"); import viewModule = require("ui/core/view"); import timePickerTestsNative = require("./time-picker-tests-native"); +import color = require("color"); +import platform = require("platform"); // // # TimePicker @@ -44,6 +46,18 @@ export function test_DummyForCodeSnippet() { }); } +// Supported in iOS only. +if (platform.device.os === platform.platformNames.ios) { + exports.test_set_color = function () { + helper.buildUIAndRunTest(_createTimePicker(), function (views: Array) { + var timePicker = views[0]; + timePicker.color = new color.Color("red"); + TKUnit.assertEqual(timePicker.color.ios.CGColor, timePicker.ios.valueForKey("textColor").CGColor, "timePicker.color"); + }); + + } +} + export function test_WhenCreated_HourIsUndefined() { helper.buildUIAndRunTest(_createTimePicker(), function (views: Array) { var timePicker = views[0]; diff --git a/ui/styling/stylers.ios.ts b/ui/styling/stylers.ios.ts index 08b413e8b..25e690d9e 100644 --- a/ui/styling/stylers.ios.ts +++ b/ui/styling/stylers.ios.ts @@ -814,6 +814,56 @@ export class TabViewStyler implements definition.stylers.Styler { } } +export class DatePickerStyler implements definition.stylers.Styler { + // color + private static setColorProperty(view: view.View, newValue: any) { + var picker = view._nativeView; + picker.setValueForKey(newValue, "textColor"); + } + + private static resetColorProperty(view: view.View, nativeValue: any) { + var picker = view._nativeView; + picker.setValueForKey(nativeValue, "textColor"); + } + + private static getColorProperty(view: view.View): any { + var picker = view._nativeView; + return picker.valueForKey("textColor"); + } + + public static registerHandlers() { + style.registerHandler(style.colorProperty, new stylersCommon.StylePropertyChangedHandler( + DatePickerStyler.setColorProperty, + DatePickerStyler.resetColorProperty, + DatePickerStyler.getColorProperty), "DatePicker"); + } +} + +export class TimePickerStyler implements definition.stylers.Styler { + // color + private static setColorProperty(view: view.View, newValue: any) { + var picker = view._nativeView; + picker.setValueForKey(newValue, "textColor"); + } + + private static resetColorProperty(view: view.View, nativeValue: any) { + var picker = view._nativeView; + picker.setValueForKey(nativeValue, "textColor"); + } + + private static getColorProperty(view: view.View): any { + var picker = view._nativeView; + return picker.valueForKey("textColor"); + } + + public static registerHandlers() { + style.registerHandler(style.colorProperty, new stylersCommon.StylePropertyChangedHandler( + TimePickerStyler.setColorProperty, + TimePickerStyler.resetColorProperty, + TimePickerStyler.getColorProperty), "TimePicker"); + } +} + function setTextAlignment(view: TextUIView, value: string) { switch (value) { case enums.TextAlignment.left: @@ -846,4 +896,6 @@ export function _registerDefaultStylers() { TextFieldStyler.registerHandlers(); ActivityIndicatorStyler.registerHandlers(); SliderStyler.registerHandlers(); + DatePickerStyler.registerHandlers(); + TimePickerStyler.registerHandlers(); }