Added DatePicker.minDate and DatePicker.maxDate.

This commit is contained in:
Rossen Hristov
2015-03-18 13:00:20 +02:00
parent 6b2623d1d5
commit 2adac392af
8 changed files with 127 additions and 1 deletions

View File

@@ -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);
}
}

View File

@@ -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);

View File

@@ -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;
}
}

View File

@@ -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);