Chromium Code Reviews

Side by Side Diff: sky/sdk/lib/framework/components2/icon.dart

Issue 1174023003: Remove one more use of mirrors: Components now have to explicitly sync their fields. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 import '../fn2.dart'; 5 import '../fn2.dart';
6 6
7 // TODO(eseidel): This should use package:. 7 // TODO(eseidel): This should use package:.
8 const String kAssetBase = '/packages/sky/assets/material-design-icons'; 8 const String kAssetBase = '/packages/sky/assets/material-design-icons';
9 9
10 class Icon extends Component { 10 class Icon extends Component {
11 11
12 Icon({ 12 Icon({
13 String key, 13 String key,
14 this.size, 14 this.size,
15 this.type: '' 15 this.type: ''
16 }) : super(key: key); 16 }) : super(key: key);
17 17
18 int size; 18 int size;
19 String type; 19 String type;
20 20
21 void syncFields(Icon source) {
22 size = source.size;
23 type = source.type;
24 super.syncFields(source);
25 }
26
21 UINode build() { 27 UINode build() {
22 String category = ''; 28 String category = '';
23 String subtype = ''; 29 String subtype = '';
24 List<String> parts = type.split('/'); 30 List<String> parts = type.split('/');
25 if (parts.length == 2) { 31 if (parts.length == 2) {
26 category = parts[0]; 32 category = parts[0];
27 subtype = parts[1]; 33 subtype = parts[1];
28 } 34 }
29 return new Image( 35 return new Image(
30 size: new Size(size.toDouble(), size.toDouble()), 36 size: new Size(size.toDouble(), size.toDouble()),
31 src: '${kAssetBase}/${category}/2x_web/ic_${subtype}_${size}dp.png' 37 src: '${kAssetBase}/${category}/2x_web/ic_${subtype}_${size}dp.png'
32 ); 38 );
33 } 39 }
34 40
35 } 41 }
OLDNEW

Powered by Google App Engine