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

Side by Side Diff: pkg/immi_samples/lib/drawer.dart

Issue 2035023003: Remove service-compiler related code. (Closed) Base URL: git@github.com:dartino/sdk.git@master
Patch Set: Created 4 years, 6 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) 2015, the Dartino 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 'package:immi/dart/immi.dart';
6
7 // Export generated code for nodes in drawer.immi
8 import 'package:immi/dart/drawer.dart';
9 export 'package:immi/dart/drawer.dart';
10
11 class Drawer {
12 var left;
13 var _center;
14 var right;
15
16 bool _leftVisible = false;
17 bool _rightVisible = false;
18
19 Drawer(this._center, {left, right}) {
20 this.left = left;
21 this.right = right;
22 }
23
24 get center => _center;
25
26 set center(presenter) {
27 _center = presenter;
28 _leftVisible = false;
29 _rightVisible = false;
30 }
31
32 DrawerNode present(Node previous) {
33 Node previousLeft = new EmptyPaneNode();
34 Node previousCenter = null;
35 Node previousRight = new EmptyPaneNode();
36 if (previous is DrawerNode) {
37 previousLeft = previous.left;
38 previousCenter = previous.center;
39 previousRight = previous.right;
40 }
41 return new DrawerNode(
42 left: _presentPane(left, _leftVisible, previousLeft, 'left'),
43 center: center.present(previousCenter),
44 right: _presentPane(right, _rightVisible, previousRight, 'right'),
45 leftVisible: _leftVisible,
46 rightVisible: _rightVisible,
47 toggleLeft: _toggleLeft,
48 toggleRight: _toggleRight);
49 }
50
51 Node _presentPane(presenter, bool visible, Node previous, String pane) {
52 if (presenter == null) return new EmptyPaneNode();
53 if (!visible) return previous;
54 return presenter.present(previous);
55 }
56
57 void _toggleLeft() {
58 _leftVisible = !_leftVisible;
59 if (_leftVisible && _rightVisible) _rightVisible = false;
60 }
61
62 void _toggleRight() {
63 _rightVisible = !_rightVisible;
64 if (_leftVisible && _rightVisible) _leftVisible = false;
65 }
66 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698