mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 11:42:04 +08:00
Added DatePicker.minDate and DatePicker.maxDate.
This commit is contained in:
@ -12,6 +12,14 @@ export function getNativeDay(datePicker: datePickerModule.DatePicker): number {
|
||||
return datePicker.android.getDayOfMonth();
|
||||
}
|
||||
|
||||
export function getNativeMaxDate(datePicker: datePickerModule.DatePicker): Date {
|
||||
return new Date(datePicker.android.getMaxDate());
|
||||
}
|
||||
|
||||
export function getNativeMinDate(datePicker: datePickerModule.DatePicker): Date {
|
||||
return new Date(datePicker.android.getMinDate());
|
||||
}
|
||||
|
||||
export function setNativeYear(datePicker: datePickerModule.DatePicker, value: number): void {
|
||||
datePicker.android.updateDate(value, datePicker.android.getMonth(), datePicker.android.getDayOfMonth());
|
||||
}
|
||||
|
@ -4,6 +4,8 @@ import datePickerModule = require("ui/date-picker");
|
||||
export declare function getNativeYear(datePicker: datePickerModule.DatePicker): number;
|
||||
export declare function getNativeMonth(datePicker: datePickerModule.DatePicker): number;
|
||||
export declare function getNativeDay(datePicker: datePickerModule.DatePicker): number;
|
||||
export declare function getNativeMaxDate(datePicker: datePickerModule.DatePicker): Date;
|
||||
export declare function getNativeMinDate(datePicker: datePickerModule.DatePicker): Date;
|
||||
|
||||
export declare function setNativeYear(datePicker: datePickerModule.DatePicker, value: number): void;
|
||||
export declare function setNativeMonth(datePicker: datePickerModule.DatePicker, value: number): void;
|
||||
|
@ -12,6 +12,14 @@ export function getNativeDay(datePicker: datePickerModule.DatePicker): number {
|
||||
return NSCalendar.currentCalendar().componentsFromDate(NSCalendarUnit.NSCalendarUnitYear | NSCalendarUnit.NSCalendarUnitMonth | NSCalendarUnit.NSCalendarUnitDay, datePicker.ios.date).day;
|
||||
}
|
||||
|
||||
export function getNativeMaxDate(datePicker: datePickerModule.DatePicker): Date {
|
||||
return new Date(1000* NSDate.dateWithTimeIntervalSinceDate(0, datePicker.ios.maximumDate).timeIntervalSince1970);
|
||||
}
|
||||
|
||||
export function getNativeMinDate(datePicker: datePickerModule.DatePicker): Date {
|
||||
return new Date(1000* NSDate.dateWithTimeIntervalSinceDate(0, datePicker.ios.minimumDate).timeIntervalSince1970);
|
||||
}
|
||||
|
||||
export function setNativeYear(datePicker: datePickerModule.DatePicker, value: number): void {
|
||||
var comps = NSCalendar.currentCalendar().componentsFromDate(NSCalendarUnit.NSCalendarUnitYear | NSCalendarUnit.NSCalendarUnitMonth | NSCalendarUnit.NSCalendarUnitDay, datePicker.ios.date);
|
||||
comps.year = value;
|
||||
|
@ -31,6 +31,8 @@ export var test_DummyForCodeSnippet = function () {
|
||||
datePicker.year = 1980;
|
||||
datePicker.month = 2;
|
||||
datePicker.day = 9;
|
||||
datePicker.minDate = new Date(1975, 0, 29);
|
||||
datePicker.maxDate = new Date(2045, 4, 12);
|
||||
// ```
|
||||
// </snippet>
|
||||
});
|
||||
@ -93,6 +95,26 @@ export var testDayFromLocalToNative = function () {
|
||||
});
|
||||
}
|
||||
|
||||
export var testMaxDateFromLocalToNative = function () {
|
||||
helper.buildUIAndRunTest(_createDatePicker(), function (views: Array<viewModule.View>) {
|
||||
var datePicker = <datePickerModule.DatePicker>views[0];
|
||||
var expectedValue = new Date(1980, 1, 9);
|
||||
datePicker.maxDate = expectedValue;
|
||||
var actualValue = datePickerTestsNative.getNativeMaxDate(datePicker);
|
||||
TKUnit.assert(actualValue.getTime() === expectedValue.getTime(), "Actual: " + actualValue + "; Expected: " + expectedValue);
|
||||
});
|
||||
}
|
||||
|
||||
export var testMinDateFromLocalToNative = function () {
|
||||
helper.buildUIAndRunTest(_createDatePicker(), function (views: Array<viewModule.View>) {
|
||||
var datePicker = <datePickerModule.DatePicker>views[0];
|
||||
var expectedValue = new Date(1980, 1, 9);
|
||||
datePicker.minDate = expectedValue;
|
||||
var actualValue = datePickerTestsNative.getNativeMinDate(datePicker);
|
||||
TKUnit.assert(actualValue.getTime() === expectedValue.getTime(), "Actual: " + actualValue + "; Expected: " + expectedValue);
|
||||
});
|
||||
}
|
||||
|
||||
export var testYearFromNativeToLocal = function () {
|
||||
helper.buildUIAndRunTest(_createDatePicker(), function (views: Array<viewModule.View>) {
|
||||
var datePicker = <datePickerModule.DatePicker>views[0];
|
||||
@ -121,4 +143,21 @@ export var testDayFromNativeToLocal = function () {
|
||||
var actualValue = datePicker.day;
|
||||
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//export var testWTF = function () {
|
||||
// var picker = new UIDatePicker();
|
||||
// picker.datePickerMode = UIDatePickerMode.UIDatePickerModeDate;
|
||||
// var jsDate = new Date(1980, 1, 9);
|
||||
// var nsDate = NSDate.dateWithTimeIntervalSince1970(jsDate.getTime() / 1000);
|
||||
// console.log("nsDate: " + nsDate);
|
||||
// console.log("nsDate.timeIntervalSince1970: " + nsDate.timeIntervalSince1970);
|
||||
// console.log("------------------");
|
||||
// picker.maximumDate = nsDate;
|
||||
// console.log("------------------");
|
||||
// console.log("(picker.ios.maximumDate === nsDate): " + (picker.maximumDate === nsDate));
|
||||
// console.log("nsDate: " + nsDate);
|
||||
// console.log("nsDate.timeIntervalSince1970: " + nsDate.timeIntervalSince1970);
|
||||
// console.log("picker.ios.maximumDate: " + picker.maximumDate);
|
||||
// console.log("picker.ios.maximumDate.timeIntervalSince1970: " + picker.maximumDate.timeIntervalSince1970);
|
||||
//}
|
@ -7,6 +7,8 @@ export class DatePicker extends view.View implements definition.DatePicker {
|
||||
public static yearProperty = new dependencyObservable.Property("year", "DatePicker", new proxy.PropertyMetadata(undefined));
|
||||
public static monthProperty = new dependencyObservable.Property("month", "DatePicker", new proxy.PropertyMetadata(undefined));
|
||||
public static dayProperty = new dependencyObservable.Property("day", "DatePicker", new proxy.PropertyMetadata(undefined));
|
||||
public static maxDateProperty = new dependencyObservable.Property("maxDate", "DatePicker", new proxy.PropertyMetadata(undefined));
|
||||
public static minDateProperty = new dependencyObservable.Property("minDate", "DatePicker", new proxy.PropertyMetadata(undefined));
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
@ -32,4 +34,18 @@ export class DatePicker extends view.View implements definition.DatePicker {
|
||||
set day(value: number) {
|
||||
this._setValue(DatePicker.dayProperty, value);
|
||||
}
|
||||
|
||||
get maxDate(): Date {
|
||||
return this._getValue(DatePicker.maxDateProperty);
|
||||
}
|
||||
set maxDate(value: Date) {
|
||||
this._setValue(DatePicker.maxDateProperty, value);
|
||||
}
|
||||
|
||||
get minDate(): Date {
|
||||
return this._getValue(DatePicker.minDateProperty);
|
||||
}
|
||||
set minDate(value: Date) {
|
||||
this._setValue(DatePicker.minDateProperty, value);
|
||||
}
|
||||
}
|
@ -32,6 +32,28 @@ function onDayPropertyChanged(data: dependencyObservable.PropertyChangeData) {
|
||||
|
||||
(<proxy.PropertyMetadata>common.DatePicker.dayProperty.metadata).onSetNativeValue = onDayPropertyChanged;
|
||||
|
||||
function onMaxDatePropertyChanged(data: dependencyObservable.PropertyChangeData) {
|
||||
var picker = <DatePicker>data.object;
|
||||
|
||||
var newValue = (<Date>data.newValue).getTime();
|
||||
if (picker.android && picker.android.getMaxDate() !== newValue) {
|
||||
picker.android.setMaxDate(newValue);
|
||||
}
|
||||
}
|
||||
|
||||
(<proxy.PropertyMetadata>common.DatePicker.maxDateProperty.metadata).onSetNativeValue = onMaxDatePropertyChanged;
|
||||
|
||||
function onMinDatePropertyChanged(data: dependencyObservable.PropertyChangeData) {
|
||||
var picker = <DatePicker>data.object;
|
||||
|
||||
var newValue = (<Date>data.newValue).getTime();
|
||||
if (picker.android && picker.android.getMinDate() !== newValue) {
|
||||
picker.android.setMinDate(newValue);
|
||||
}
|
||||
}
|
||||
|
||||
(<proxy.PropertyMetadata>common.DatePicker.minDateProperty.metadata).onSetNativeValue = onMinDatePropertyChanged;
|
||||
|
||||
// merge the exports of the common file with the exports of this file
|
||||
declare var exports;
|
||||
require("utils/module-merge").merge(common, exports);
|
||||
|
10
ui/date-picker/date-picker.d.ts
vendored
10
ui/date-picker/date-picker.d.ts
vendored
@ -39,5 +39,15 @@ declare module "ui/date-picker" {
|
||||
* Gets or sets the day. The days start from 1.
|
||||
*/
|
||||
day: number;
|
||||
|
||||
/**
|
||||
* Gets or sets the max date.
|
||||
*/
|
||||
maxDate: Date;
|
||||
|
||||
/**
|
||||
* Gets or sets the min date.
|
||||
*/
|
||||
minDate: Date;
|
||||
}
|
||||
}
|
@ -38,6 +38,27 @@ function onDayPropertyChanged(data: dependencyObservable.PropertyChangeData) {
|
||||
|
||||
(<proxy.PropertyMetadata>common.DatePicker.dayProperty.metadata).onSetNativeValue = onDayPropertyChanged;
|
||||
|
||||
function onMaxDatePropertyChanged(data: dependencyObservable.PropertyChangeData) {
|
||||
var picker = <DatePicker>data.object;
|
||||
|
||||
if (picker.ios) {
|
||||
var nsDate = NSDate.dateWithTimeIntervalSince1970((<Date>data.newValue).getTime() / 1000);
|
||||
picker.ios.maximumDate = nsDate;
|
||||
}
|
||||
}
|
||||
|
||||
(<proxy.PropertyMetadata>common.DatePicker.maxDateProperty.metadata).onSetNativeValue = onMaxDatePropertyChanged;
|
||||
|
||||
function onMinDatePropertyChanged(data: dependencyObservable.PropertyChangeData) {
|
||||
var picker = <DatePicker>data.object;
|
||||
|
||||
if (picker.ios) {
|
||||
picker.ios.minimumDate = NSDate.dateWithTimeIntervalSince1970((<Date>data.newValue).getTime() / 1000);
|
||||
}
|
||||
}
|
||||
|
||||
(<proxy.PropertyMetadata>common.DatePicker.minDateProperty.metadata).onSetNativeValue = onMinDatePropertyChanged;
|
||||
|
||||
// merge the exports of the common file with the exports of this file
|
||||
declare var exports;
|
||||
require("utils/module-merge").merge(common, exports);
|
||||
|
Reference in New Issue
Block a user