| // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| library json_view_element; |
| |
| import 'package:polymer/polymer.dart'; |
| import 'observatory_element.dart'; |
| |
| @CustomTag('json-view') |
| class JsonViewElement extends ObservatoryElement { |
| @published dynamic get json => __$json; dynamic __$json = null; set json(dynamic value) { __$json = notifyPropertyChange(#json, __$json, value); } |
| var _count = 0; |
| |
| JsonViewElement() : super() { |
| } |
| |
| void jsonChanged(oldValue) { |
| notifyProperty(this, #valueType); |
| } |
| |
| String get primitiveString { |
| return json.toString(); |
| } |
| |
| String get valueType { |
| if (json is Map) { |
| return 'Map'; |
| } else if (json is List) { |
| return 'List'; |
| } |
| return 'Primitive'; |
| } |
| |
| int get counter { |
| return _count++; |
| } |
| |
| List get list { |
| if (json is List) { |
| return json; |
| } |
| return []; |
| } |
| |
| List get keys { |
| if (json is Map) { |
| return json.keys.toList(); |
| } |
| return []; |
| } |
| |
| dynamic value(String key) { |
| return json[key]; |
| } |
| } |