From eb2fadde3fd14b524c3d74fb817254e30a945457 Mon Sep 17 00:00:00 2001 From: Vladimir Enchev Date: Mon, 2 Nov 2015 15:46:27 +0200 Subject: [PATCH 1/3] DatePicker and TimePicker stylers added --- ui/styling/stylers.ios.ts | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/ui/styling/stylers.ios.ts b/ui/styling/stylers.ios.ts index 08b413e8b..9ded561c3 100644 --- a/ui/styling/stylers.ios.ts +++ b/ui/styling/stylers.ios.ts @@ -814,6 +814,44 @@ 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"); + } + + public static registerHandlers() { + style.registerHandler(style.colorProperty, new stylersCommon.StylePropertyChangedHandler( + DatePickerStyler.setColorProperty, + DatePickerStyler.resetColorProperty), "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"); + } + + public static registerHandlers() { + style.registerHandler(style.colorProperty, new stylersCommon.StylePropertyChangedHandler( + TimePickerStyler.setColorProperty, + TimePickerStyler.resetColorProperty), "TimePicker"); + } +} + function setTextAlignment(view: TextUIView, value: string) { switch (value) { case enums.TextAlignment.left: @@ -846,4 +884,6 @@ export function _registerDefaultStylers() { TextFieldStyler.registerHandlers(); ActivityIndicatorStyler.registerHandlers(); SliderStyler.registerHandlers(); + DatePickerStyler.registerHandlers(); + TimePickerStyler.registerHandlers(); } From 48973e2669b4b1ab947e775e2a9bf9cde776faf4 Mon Sep 17 00:00:00 2001 From: Vladimir Enchev Date: Mon, 2 Nov 2015 15:57:43 +0200 Subject: [PATCH 2/3] tests added --- apps/tests/ui/date-picker/date-picker-tests.ts | 14 ++++++++++++++ apps/tests/ui/time-picker/time-picker-tests.ts | 14 ++++++++++++++ 2 files changed, 28 insertions(+) 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]; From 7ce26ee54212893bb2be7b23759a223dcdf7496c Mon Sep 17 00:00:00 2001 From: Vladimir Enchev Date: Tue, 3 Nov 2015 10:48:16 +0200 Subject: [PATCH 3/3] stylers updated with get methods --- ui/styling/stylers.ios.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/ui/styling/stylers.ios.ts b/ui/styling/stylers.ios.ts index 9ded561c3..25e690d9e 100644 --- a/ui/styling/stylers.ios.ts +++ b/ui/styling/stylers.ios.ts @@ -826,10 +826,16 @@ export class DatePickerStyler implements definition.stylers.Styler { 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), "DatePicker"); + DatePickerStyler.resetColorProperty, + DatePickerStyler.getColorProperty), "DatePicker"); } } @@ -845,10 +851,16 @@ export class TimePickerStyler implements definition.stylers.Styler { 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), "TimePicker"); + TimePickerStyler.resetColorProperty, + TimePickerStyler.getColorProperty), "TimePicker"); } }