diff --git a/apps/TelerikNEXT/main-page.xml b/apps/TelerikNEXT/main-page.xml index 141904a3f..46498d55c 100644 --- a/apps/TelerikNEXT/main-page.xml +++ b/apps/TelerikNEXT/main-page.xml @@ -45,7 +45,7 @@ - + diff --git a/ui/list-view/list-view-common.ts b/ui/list-view/list-view-common.ts index 7b18128c2..b0de612ee 100644 --- a/ui/list-view/list-view-common.ts +++ b/ui/list-view/list-view-common.ts @@ -5,6 +5,7 @@ import definition = require("ui/list-view"); import dependencyObservable = require("ui/core/dependency-observable"); import builder = require("ui/builder"); import label = require("ui/label"); +import color = require("color"); var ITEMS = "items"; var ITEMTEMPLATE = "itemTemplate"; @@ -12,6 +13,7 @@ var ISSCROLLING = "isScrolling"; var LISTVIEW = "ListView"; var ITEMSCHANGED = "_itemsChanged"; var CHANGE = "change"; +var SEPARATORCOLOR = "separatorColor"; export module knownEvents { export var itemLoading = "itemLoading"; @@ -45,6 +47,11 @@ function onItemTemplatePropertyChanged(data: dependencyObservable.PropertyChange export class ListView extends view.View implements definition.ListView { + public static separatorColorProperty = new dependencyObservable.Property( + SEPARATORCOLOR, + LISTVIEW, + new proxy.PropertyMetadata(undefined)); + public static itemsProperty = new dependencyObservable.Property( ITEMS, LISTVIEW, @@ -102,6 +109,14 @@ export class ListView extends view.View implements definition.ListView { this._setValue(ListView.isScrollingProperty, value); } + get separatorColor(): color.Color { + return this._getValue(ListView.separatorColorProperty); + } + set separatorColor(value: color.Color) { + this._setValue(ListView.separatorColorProperty, + value instanceof color.Color ? value : new color.Color(value)); + } + public refresh() { // } diff --git a/ui/list-view/list-view.android.ts b/ui/list-view/list-view.android.ts index cf043c171..c94fb8af1 100644 --- a/ui/list-view/list-view.android.ts +++ b/ui/list-view/list-view.android.ts @@ -3,6 +3,10 @@ import common = require("ui/list-view/list-view-common"); import viewModule = require("ui/core/view"); import layout = require("ui/layouts/layout"); import stackLayout = require("ui/layouts/stack-layout"); +import proxy = require("ui/core/proxy"); +import dependencyObservable = require("ui/core/dependency-observable"); +import color = require("color"); +import utils = require("utils/utils"); var ITEMLOADING = common.knownEvents.itemLoading; var LOADMOREITEMS = common.knownEvents.loadMoreItems; @@ -13,6 +17,21 @@ var REALIZED_INDEX = "realizedIndex"; declare var exports; require("utils/module-merge").merge(common, exports); +function onSeparatorColorPropertyChanged(data: dependencyObservable.PropertyChangeData) { + var bar = data.object; + if (!bar.android) { + return; + } + + if (data.newValue instanceof color.Color) { + bar.android.setDivider(new android.graphics.drawable.ColorDrawable((data.newValue).android)); + bar.android.setDividerHeight(1); + } +} + +// register the setNativeValue callbacks +(common.ListView.separatorColorProperty.metadata).onSetNativeValue = onSeparatorColorPropertyChanged; + export class ListView extends common.ListView { private _android: android.widget.ListView; public _realizedItems = {}; @@ -161,6 +180,10 @@ class ListViewAdapter extends android.widget.BaseAdapter { return true; } + public areAllItemsEnabled (): boolean { + return true; + } + public getView(index: number, convertView: android.view.View, parent: any): android.view.View { if (!this._listView) { return null; diff --git a/ui/list-view/list-view.d.ts b/ui/list-view/list-view.d.ts index da3e5743e..c66a56be8 100644 --- a/ui/list-view/list-view.d.ts +++ b/ui/list-view/list-view.d.ts @@ -5,6 +5,7 @@ declare module "ui/list-view" { import observable = require("data/observable"); import dependencyObservable = require("ui/core/dependency-observable"); import view = require("ui/core/view"); + import color = require("color"); /** * Known event names. @@ -81,6 +82,11 @@ declare module "ui/list-view" { */ itemTemplate: string; + /** + * Gets or set the items separator line color of the ListView. + */ + separatorColor: color.Color; + /** * Forces the ListView to reload all its items. */ diff --git a/ui/list-view/list-view.ios.ts b/ui/list-view/list-view.ios.ts index ea4276b0a..4a2bb8ba2 100644 --- a/ui/list-view/list-view.ios.ts +++ b/ui/list-view/list-view.ios.ts @@ -3,6 +3,9 @@ import definition = require("ui/list-view"); import common = require("ui/list-view/list-view-common"); import utils = require("utils/utils"); import view = require("ui/core/view"); +import proxy = require("ui/core/proxy"); +import dependencyObservable = require("ui/core/dependency-observable"); +import color = require("color"); var CELLIDENTIFIER = "cell"; var ITEMLOADING = common.knownEvents.itemLoading; @@ -116,6 +119,20 @@ class UITableViewDelegateImpl extends NSObject implements UITableViewDelegate { } } +function onSeparatorColorPropertyChanged(data: dependencyObservable.PropertyChangeData) { + var bar = data.object; + if (!bar.ios) { + return; + } + + if (data.newValue instanceof color.Color) { + bar.ios.separatorColor = (data.newValue).ios; + } +} + +// register the setNativeValue callbacks +(common.ListView.separatorColorProperty.metadata).onSetNativeValue = onSeparatorColorPropertyChanged; + export class ListView extends common.ListView { private _ios: UITableView; private _dataSource;