Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Side by Side Diff: runtime/observatory/lib/src/elements/curly_block_wrapper.dart

Issue 2119733003: Wrapping leaf nodes in non polymer elements (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Converted error-ref tag Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 import 'dart:html';
6 import 'package:observatory/app.dart';
7 import 'package:observatory/src/elements/curly_block.dart';
8 import 'package:observatory/src/elements/helpers/tag.dart';
9 import 'package:observatory/src/elements/shims/binding.dart';
10
11 typedef _callback();
12 typedef CurlyBlockToggleCallback(bool a, _callback b);
13
14 class CurlyBlockElementWrapper extends HtmlElement {
15
16 static final binder = new Binder<CurlyBlockElementWrapper>(
17 const [const Binding('expand'), const Binding('busy'),
18 const Binding('expandKey'), const Binding('callback')]);
19
20 static const tag = const Tag<CurlyBlockElementWrapper>('curly-block');
21
22 bool _expand;
23 bool get expand => _expand;
24 set expand(bool expanded) {
25 _expand = !(expanded == null || expanded == false);
26 render();
27 }
28
29 bool _busy;
30 bool get busy => _busy;
31 set busy(bool busy) {
32 _busy = !(busy == null || busy == false);
33 render();
34 }
35
36 String _expandKey;
37 String get expandKey => _expandKey;
38 set expandKey(String expandKey) {
39 _expandKey = expandKey;
40 if (expandKey != null) {
41 var value = application.expansions[expandKey];
42 if (value != null && expand != value) {
43
44 }
45 }
46 render();
47 }
48
49 CurlyBlockToggleCallback _callback;
50 CurlyBlockToggleCallback get callback => _callback;
51 set callback(CurlyBlockToggleCallback callback) {
52 _callback = callback;
53 render();
54 }
55
56 CurlyBlockElementWrapper.created() : super.created() {
57 createShadowRoot();
58 }
59
60 @override
61 void attached() {
62 super.attached();
63 render();
64 }
65
66 @override
67 void attributeChanged(String name, String oldValue, String newValue){
68 super.attributeChanged(name, oldValue, newValue);
69 switch (name){
70 case 'expand':
71 expand = !(newValue == null || newValue == 'false');
72 break;
73 case 'busy':
74 busy = !(newValue == null || newValue == 'false');
75 break;
76 case 'expandKey':
77 busy = !(newValue == null || newValue == 'false');
78 break;
79 }
80 }
81
82
83 void render() {
84 print('expanded ' + getAttribute('expand'));
rmacnak 2016/07/11 17:54:01 Slip
cbernaschina 2016/07/11 18:14:11 Done.
85 shadowRoot.children = [
86 new CurlyBlockElement(expanded: expand, disabled: busy)
87 ..children = [new ContentElement()]
88 ..onToggle.listen(_toggle)
89 ];
90 }
91
92 ObservatoryApplication get application => ObservatoryApplication.app;
93
94 void _toggle(CurlyBlockToggleEvent e) {
95 _expand = e.control.expanded;
96 if (callback != null) {
97 busy = true;
98 callback(expand, () {
99 if (expandKey != null) {
100 application.expansions[expandKey] = expand;
101 }
102 busy = false;
103 });
104 } else {
105 application.expansions[expandKey] = expand;
106 }
107 }
108 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698