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

Side by Side Diff: sky/examples/stocks-fn/stockrow.dart

Issue 974903005: attempt at making menuitems react (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: rationalise my local client and upload the result Created 5 years, 9 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
« no previous file with comments | « sky/examples/fn/widgets/widgets.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 part of stocksapp; 1 part of stocksapp;
2 2
3 class StockRow extends Component { 3 class StockRow extends MaterialComponent {
4 4
5 Stock stock; 5 Stock stock;
6 LinkedHashSet<SplashAnimation> _splashes;
7 6
8 static Style _style = new Style(''' 7 static Style _style = new Style('''
9 transform: translateX(0); 8 transform: translateX(0);
10 max-height: 48px; 9 max-height: 48px;
11 display: flex; 10 display: flex;
12 align-items: center; 11 align-items: center;
13 border-bottom: 1px solid #F4F4F4; 12 border-bottom: 1px solid #F4F4F4;
14 padding-top: 16px; 13 padding-top: 16px;
15 padding-left: 16px; 14 padding-left: 16px;
16 padding-right: 16px; 15 padding-right: 16px;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 style: _lastSaleStyle, 56 style: _lastSaleStyle,
58 children: [new Text(lastSale)] 57 children: [new Text(lastSale)]
59 ), 58 ),
60 new Container( 59 new Container(
61 key: 'Change', 60 key: 'Change',
62 style: _changeStyle, 61 style: _changeStyle,
63 children: [new Text(changeInPrice)] 62 children: [new Text(changeInPrice)]
64 ) 63 )
65 ]; 64 ];
66 65
67 if (_splashes != null) { 66 children.add(super.render());
68 children.addAll(_splashes.map((s) => new InkSplash(s.onStyleChanged)));
69 }
70 67
71 return new Container( 68 return new Container(
72 style: _style, 69 style: _style,
73 onScrollStart: _cancelSplashes,
74 onWheel: _cancelSplashes,
75 onPointerDown: _handlePointerDown,
76 children: children 70 children: children
77 ); 71 );
78 } 72 }
79
80 sky.ClientRect _getBoundingRect() => getRoot().getBoundingClientRect();
81
82 void _handlePointerDown(sky.Event event) {
83 setState(() {
84 if (_splashes == null) {
85 _splashes = new LinkedHashSet<SplashAnimation>();
86 }
87
88 var splash;
89 splash = new SplashAnimation(_getBoundingRect(), event.x, event.y,
90 onDone: () { _splashDone(splash); });
91
92 _splashes.add(splash);
93 });
94 }
95
96 void _cancelSplashes(sky.Event event) {
97 if (_splashes == null) {
98 return;
99 }
100
101 setState(() {
102 var splashes = _splashes;
103 _splashes = null;
104 splashes.forEach((s) { s.cancel(); });
105 });
106 }
107
108 void willUnmount() {
109 _cancelSplashes(null);
110 }
111
112 void _splashDone(SplashAnimation splash) {
113 if (_splashes == null) {
114 return;
115 }
116
117 setState(() {
118 _splashes.remove(splash);
119 if (_splashes.length == 0) {
120 _splashes = null;
121 }
122 });
123 }
124 } 73 }
OLDNEW
« no previous file with comments | « sky/examples/fn/widgets/widgets.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698