@@ -18,11 +18,10 @@ import observable = require("data/observable");
18
18
import definition = require( "nativescript-grid-view" ) ;
19
19
import common = require( "./grid-view-common" ) ;
20
20
import utils = require( "utils/utils" ) ;
21
- import layout = require( "ui/layouts/layout" ) ;
21
+ import layoutBase = require( "ui/layouts/layout-base " ) ;
22
22
import stackLayout = require( "ui/layouts/stack-layout" ) ;
23
23
import view = require( "ui/core/view" ) ;
24
- import style = require( "ui/styling" ) ;
25
- import stylingStyle = require( "ui/styling/style" ) ;
24
+ import style = require( "ui/styling/style" ) ;
26
25
27
26
const ITEMLOADING = common . GridView . itemLoadingEvent ;
28
27
const LOADMOREITEMS = common . GridView . loadMoreItemsEvent ;
@@ -71,7 +70,7 @@ export class GridView extends common.GridView
71
70
72
71
let that = new WeakRef ( this ) ;
73
72
74
- this . android . setOnScrollListener ( new android . widget . AbsListView . OnScrollListener ( {
73
+ this . android . setOnScrollListener ( new android . widget . AbsListView . OnScrollListener ( < utils . Owned & android . widget . AbsListView . IOnScrollListener > {
75
74
onScrollStateChanged :
76
75
function ( view : android . widget . AbsListView , scrollState : number )
77
76
{
@@ -92,7 +91,8 @@ export class GridView extends common.GridView
92
91
{
93
92
owner . notify ( < observable . EventData > { eventName : LOADMOREITEMS , object : owner } ) ;
94
93
}
95
- }
94
+ } ,
95
+ get owner ( ) { return that . get ( ) ; }
96
96
} ) ) ;
97
97
98
98
this . android . setOnItemClickListener ( new android . widget . AdapterView . OnItemClickListener ( {
@@ -216,11 +216,13 @@ class GridViewAdapter extends android.widget.BaseAdapter
216
216
217
217
if ( view )
218
218
{
219
+ this . _gridView . _prepareItem ( view , index ) ;
219
220
if ( ! view . parent )
220
221
{
221
- if ( view instanceof layout . Layout )
222
+ if ( view instanceof layoutBase . LayoutBase )
222
223
{
223
- ( < layout . Layout > view ) . height = this . _gridView . rowHeight ;
224
+ view . height = this . _gridView . rowHeight ;
225
+ view . width = this . _gridView . colWidth ;
224
226
this . _gridView . _addView ( view ) ;
225
227
convertView = view . android ;
226
228
}
@@ -236,105 +238,116 @@ class GridViewAdapter extends android.widget.BaseAdapter
236
238
237
239
}
238
240
239
- convertView . setLayoutParams ( new android . widget . GridView . LayoutParams ( this . _gridView . colWidth * utils . layout . getDisplayDensity ( ) , this . _gridView . rowHeight * utils . layout . getDisplayDensity ( ) ) ) ;
240
-
241
241
this . _gridView . _realizedItems [ convertView . hashCode ( ) ] = view ;
242
242
view [ REALIZED_INDEX ] = index ;
243
-
244
- this . _gridView . _prepareItem ( view , index ) ;
245
243
}
246
244
247
245
return convertView ;
248
246
}
249
247
}
250
248
251
249
//#region Styling
252
- interface Padding
253
- {
254
- top ?: number ;
255
- right ?: number ;
256
- bottom ?: number ;
257
- left ?: number ;
258
- }
259
- function setPadding ( gridView : GridView , padding : Padding )
250
+ export class GridViewStyler implements style . Styler
260
251
{
261
- let finalPadding : Padding =
262
- {
252
+ private static setPadding ( gridView : GridView , padding : common . Padding )
253
+ {
254
+ let finalPadding : common . Padding = {
263
255
top : padding . top !== undefined ? padding . top * utils . layout . getDisplayDensity ( ) : gridView . android . getPaddingTop ( )
264
256
, right : padding . right !== undefined ? padding . right * utils . layout . getDisplayDensity ( ) : gridView . android . getPaddingRight ( )
265
257
, bottom : padding . bottom !== undefined ? padding . bottom * utils . layout . getDisplayDensity ( ) : gridView . android . getPaddingBottom ( )
266
258
, left : padding . left !== undefined ? padding . left * utils . layout . getDisplayDensity ( ) : gridView . android . getPaddingLeft ( )
267
259
} ;
268
260
269
- gridView . android . setPadding ( finalPadding . left , finalPadding . top , finalPadding . right , finalPadding . bottom ) ;
270
- }
261
+ gridView . android . setPadding ( finalPadding . left , finalPadding . top , finalPadding . right , finalPadding . bottom ) ;
262
+ }
271
263
272
- //#region Padding Top Property
273
- function setPaddingTop ( gridView : GridView , newValue : number )
274
- {
275
- setPadding ( gridView , { top : newValue } ) ;
276
- }
277
- function resetPaddingTop ( gridView : GridView , nativeValue : number )
278
- {
279
- setPaddingTop ( gridView , nativeValue ) ;
280
- }
281
- function getNativePaddingTopValue ( gridView : GridView ) : any
282
- {
283
- return gridView . android . getPaddingTop ( ) ;
284
- }
285
- let paddingTopChangedHandler = new style . stylers . StylePropertyChangedHandler ( setPaddingTop , resetPaddingTop , getNativePaddingTopValue ) ;
286
- style . stylers . registerHandler ( stylingStyle . paddingTopProperty , paddingTopChangedHandler , "GridView" ) ;
287
- //#endregion
264
+ //#region Padding Top Property
265
+ private static setPaddingTop ( gridView : GridView , newValue : number )
266
+ {
267
+ GridViewStyler . setPadding ( gridView , { top : newValue } ) ;
268
+ }
269
+ private static resetPaddingTop ( gridView : GridView , nativeValue : number )
270
+ {
271
+ GridViewStyler . setPaddingTop ( gridView , nativeValue ) ;
272
+ }
273
+ private static getNativePaddingTopValue ( gridView : GridView ) : any
274
+ {
275
+ return gridView . android . getPaddingTop ( ) ;
276
+ }
277
+ //#endregion
288
278
289
- //#region Padding Right Property
290
- function setPaddingRight ( gridView : GridView , newValue : number )
291
- {
292
- setPadding ( gridView , { right : newValue } ) ;
293
- }
294
- function resetPaddingRight ( gridView : GridView , nativeValue : number )
295
- {
296
- setPaddingRight ( gridView , nativeValue ) ;
297
- }
298
- function getNativePaddingRightValue ( gridView : GridView ) : any
299
- {
300
- return gridView . android . getPaddingRight ( ) ;
301
- }
302
- let paddingRightChangedHandler = new style . stylers . StylePropertyChangedHandler ( setPaddingRight , resetPaddingRight , getNativePaddingRightValue ) ;
303
- style . stylers . registerHandler ( stylingStyle . paddingRightProperty , paddingRightChangedHandler , "GridView" ) ;
304
- //#endregion
279
+ //#region Padding Right Property
280
+ private static setPaddingRight ( gridView : GridView , newValue : number )
281
+ {
282
+ GridViewStyler . setPadding ( gridView , { right : newValue } ) ;
283
+ }
284
+ private static resetPaddingRight ( gridView : GridView , nativeValue : number )
285
+ {
286
+ GridViewStyler . setPaddingRight ( gridView , nativeValue ) ;
287
+ }
288
+ private static getNativePaddingRightValue ( gridView : GridView ) : any
289
+ {
290
+ return gridView . android . getPaddingRight ( ) ;
291
+ }
292
+ //#endregion
305
293
306
- //#region Padding Bottom Property
307
- function setPaddingBottom ( gridView : GridView , newValue : number )
308
- {
309
- setPadding ( gridView , { bottom : newValue } ) ;
310
- }
311
- function resetPaddingBottom ( gridView : GridView , nativeValue : number )
312
- {
313
- setPaddingBottom ( gridView , nativeValue ) ;
314
- }
315
- function getNativePaddingBottomValue ( gridView : GridView ) : any
316
- {
317
- return gridView . android . getPaddingBottom ( ) ;
318
- }
319
- let paddingBottomChangedHandler = new style . stylers . StylePropertyChangedHandler ( setPaddingBottom , resetPaddingBottom , getNativePaddingBottomValue ) ;
320
- style . stylers . registerHandler ( stylingStyle . paddingBottomProperty , paddingBottomChangedHandler , "GridView" ) ;
321
- //#endregion
294
+ //#region Padding Bottom Property
295
+ private static setPaddingBottom ( gridView : GridView , newValue : number )
296
+ {
297
+ GridViewStyler . setPadding ( gridView , { bottom : newValue } ) ;
298
+ }
299
+ private static resetPaddingBottom ( gridView : GridView , nativeValue : number )
300
+ {
301
+ GridViewStyler . setPaddingBottom ( gridView , nativeValue ) ;
302
+ }
303
+ private static getNativePaddingBottomValue ( gridView : GridView ) : any
304
+ {
305
+ return gridView . android . getPaddingBottom ( ) ;
306
+ }
307
+ //#endregion
322
308
323
- //#region Padding Left Property
324
- function setPaddingLeft ( gridView : GridView , newValue : number )
325
- {
326
- setPadding ( gridView , { left : newValue } ) ;
327
- }
328
- function resetPaddingLeft ( gridView : GridView , nativeValue : number )
329
- {
330
- setPaddingLeft ( gridView , nativeValue ) ;
331
- }
332
- function getNativePaddingLeftValue ( gridView : GridView ) : any
333
- {
334
- return gridView . android . getPaddingLeft ( ) ;
309
+ //#region Padding Left Property
310
+ private static setPaddingLeft ( gridView : GridView , newValue : number )
311
+ {
312
+ GridViewStyler . setPadding ( gridView , { left : newValue } ) ;
313
+ }
314
+ private static resetPaddingLeft ( gridView : GridView , nativeValue : number )
315
+ {
316
+ GridViewStyler . setPaddingLeft ( gridView , nativeValue ) ;
317
+ }
318
+ private static getNativePaddingLeftValue ( gridView : GridView ) : any
319
+ {
320
+ return gridView . android . getPaddingLeft ( ) ;
321
+ }
322
+ //#endregion
323
+
324
+ public static registerHandlers ( )
325
+ {
326
+ style . registerHandler ( style . paddingTopProperty
327
+ , new style . StylePropertyChangedHandler ( GridViewStyler . setPaddingTop
328
+ , GridViewStyler . resetPaddingTop
329
+ , GridViewStyler . getNativePaddingTopValue )
330
+ , "GridView" ) ;
331
+
332
+ style . registerHandler ( style . paddingRightProperty
333
+ , new style . StylePropertyChangedHandler ( GridViewStyler . setPaddingRight
334
+ , GridViewStyler . resetPaddingRight
335
+ , GridViewStyler . getNativePaddingRightValue )
336
+ , "GridView" ) ;
337
+
338
+ style . registerHandler ( style . paddingBottomProperty
339
+ , new style . StylePropertyChangedHandler ( GridViewStyler . setPaddingBottom
340
+ , GridViewStyler . resetPaddingBottom
341
+ , GridViewStyler . getNativePaddingBottomValue )
342
+ , "GridView" ) ;
343
+
344
+ style . registerHandler ( style . paddingLeftProperty
345
+ , new style . StylePropertyChangedHandler ( GridViewStyler . setPaddingLeft
346
+ , GridViewStyler . resetPaddingLeft
347
+ , GridViewStyler . getNativePaddingLeftValue )
348
+ , "GridView" ) ;
349
+ }
335
350
}
336
- let paddingLeftChangedHandler = new style . stylers . StylePropertyChangedHandler ( setPaddingLeft , resetPaddingLeft , getNativePaddingLeftValue ) ;
337
- style . stylers . registerHandler ( stylingStyle . paddingLeftProperty , paddingLeftChangedHandler , "GridView" ) ;
338
- //#endregion
339
351
352
+ GridViewStyler . registerHandlers ( ) ;
340
353
//#endregion
0 commit comments