From f54811810c9e8dcf8ff614ced94bca64037695ae Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Wed, 30 Sep 2015 19:57:06 -0700 Subject: [PATCH] Port playfair to fn3 --- packages/playfair/lib/playfair.dart | 2 +- packages/playfair/lib/src/base.dart | 28 +++++++++++++++++++--------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/packages/playfair/lib/playfair.dart b/packages/playfair/lib/playfair.dart index 18fc288df7..36250d0031 100644 --- a/packages/playfair/lib/playfair.dart +++ b/packages/playfair/lib/playfair.dart @@ -9,6 +9,6 @@ import 'dart:math' as math; import 'package:sky/material.dart'; import 'package:sky/rendering.dart'; -import 'package:sky/widgets.dart'; +import 'package:sky/widgets_next.dart'; part 'src/base.dart'; diff --git a/packages/playfair/lib/src/base.dart b/packages/playfair/lib/src/base.dart index 841d400f03..6ae8bc9f5a 100644 --- a/packages/playfair/lib/src/base.dart +++ b/packages/playfair/lib/src/base.dart @@ -38,17 +38,26 @@ const double kIndicatorStrokeWidth = 2.0; const Color kIndicatorColor = const Color(0xFFFF4081); const double kIndicatorMargin = 2.0; -class Chart extends LeafRenderObjectWrapper { +class Chart extends StatelessComponent { Chart({ Key key, this.data }) : super(key: key); final ChartData data; - RenderChart createNode() => new RenderChart(data: data); - RenderChart get renderObject => super.renderObject; + Widget build(BuildContext context) { + return new _ChartWrapper(textTheme: Theme.of(context).text, data: data); + } +} - void syncRenderObject(Widget old) { - super.syncRenderObject(old); - renderObject.textTheme = Theme.of(this).text; +class _ChartWrapper extends LeafRenderObjectWidget { + _ChartWrapper({ Key key, this.textTheme, this.data }) : super(key: key); + + final TextTheme textTheme; + final ChartData data; + + RenderChart createRenderObject() => new RenderChart(textTheme: textTheme, data: data); + + void updateRenderObject(RenderChart renderObject, _ChartWrapper oldWidget) { + renderObject.textTheme = textTheme; renderObject.data = data; } } @@ -56,9 +65,10 @@ class Chart extends LeafRenderObjectWrapper { class RenderChart extends RenderConstrainedBox { RenderChart({ + TextTheme textTheme, ChartData data - }) : _painter = new ChartPainter(data), - super(child: null, additionalConstraints: BoxConstraints.expand); + }) : _painter = new ChartPainter(textTheme: textTheme, data: data), + super(child: null, additionalConstraints: const BoxConstraints.expand()); final ChartPainter _painter; @@ -104,7 +114,7 @@ class Indicator { } class ChartPainter { - ChartPainter(this._data); + ChartPainter({ TextTheme textTheme, ChartData data }) : _data = data, _textTheme = textTheme; ChartData _data; ChartData get data => _data;