From 3af5bbf125d1e67b93516b2651a1a2c88587748a Mon Sep 17 00:00:00 2001 From: Brett Morgan Date: Wed, 10 Jul 2019 06:37:53 +1000 Subject: [PATCH] Web charts common update (#111) --- web/charts/common/.gitignore | 1 + web/charts/common/analysis_options.yaml | 32 ++ .../common/lib/src/chart/bar/bar_chart.dart | 3 +- .../src/chart/bar/bar_label_decorator.dart | 4 +- .../lib/src/chart/bar/bar_lane_renderer.dart | 48 ++- .../chart/bar/bar_lane_renderer_config.dart | 3 +- .../lib/src/chart/bar/bar_renderer.dart | 40 +- .../src/chart/bar/bar_renderer_config.dart | 2 +- .../chart/bar/bar_target_line_renderer.dart | 48 +-- .../bar/bar_target_line_renderer_config.dart | 5 +- .../lib/src/chart/bar/base_bar_renderer.dart | 70 ++-- .../chart/bar/base_bar_renderer_config.dart | 12 +- .../chart/bar/base_bar_renderer_element.dart | 5 +- .../lib/src/chart/cartesian/axis/axis.dart | 70 ++-- .../base_tick_draw_strategy.dart | 16 +- .../draw_strategy/gridline_draw_strategy.dart | 22 +- .../draw_strategy/none_draw_strategy.dart | 8 +- .../small_tick_draw_strategy.dart | 18 +- .../axis/end_points_tick_provider.dart | 4 +- .../axis/linear/bucketing_numeric_axis.dart | 3 +- .../bucketing_numeric_tick_provider.dart | 8 +- .../cartesian/axis/linear/linear_scale.dart | 16 +- .../axis/linear/linear_scale_domain_info.dart | 2 +- .../axis/linear/linear_scale_viewport.dart | 2 +- .../chart/cartesian/axis/numeric_extents.dart | 10 +- .../cartesian/axis/numeric_tick_provider.dart | 21 +- .../chart/cartesian/axis/ordinal_extents.dart | 4 +- .../axis/ordinal_scale_domain_info.dart | 6 +- .../cartesian/axis/simple_ordinal_scale.dart | 22 +- .../chart/cartesian/axis/spec/axis_spec.dart | 2 +- .../axis/spec/bucketing_axis_spec.dart | 8 +- .../axis/spec/date_time_axis_spec.dart | 20 +- .../axis/spec/numeric_axis_spec.dart | 14 +- .../axis/spec/ordinal_axis_spec.dart | 8 +- .../axis/spec/percent_axis_spec.dart | 4 +- .../cartesian/axis/static_tick_provider.dart | 2 +- .../chart/cartesian/axis/tick_formatter.dart | 14 +- .../chart/cartesian/axis/tick_provider.dart | 2 +- ...uto_adjusting_date_time_tick_provider.dart | 19 +- .../axis/time/base_time_stepper.dart | 8 +- .../cartesian/axis/time/date_time_axis.dart | 7 +- .../cartesian/axis/time/date_time_scale.dart | 8 +- .../axis/time/date_time_tick_formatter.dart | 30 +- .../cartesian/axis/time/day_time_stepper.dart | 8 +- .../axis/time/hour_time_stepper.dart | 9 +- .../axis/time/minute_time_stepper.dart | 7 +- .../axis/time/month_time_stepper.dart | 5 +- .../axis/time/year_time_stepper.dart | 5 +- .../src/chart/cartesian/cartesian_chart.dart | 54 ++- .../chart/cartesian/cartesian_renderer.dart | 4 +- .../lib/src/chart/common/base_chart.dart | 77 ++-- .../behavior/a11y/a11y_explore_behavior.dart | 4 +- .../chart/common/behavior/a11y/a11y_node.dart | 2 +- .../a11y/domain_a11y_explore_behavior.dart | 20 +- .../calculation/percent_injector.dart | 30 +- .../behavior/chart_title/chart_title.dart | 28 +- .../common/behavior/domain_highlighter.dart | 6 +- .../common/behavior/initial_selection.dart | 4 +- .../common/behavior/legend/datum_legend.dart | 2 +- .../chart/common/behavior/legend/legend.dart | 106 ++---- .../per_datum_legend_entry_generator.dart | 3 +- .../per_series_legend_entry_generator.dart | 4 +- .../common/behavior/legend/series_legend.dart | 12 +- .../behavior/line_point_highlighter.dart | 58 ++- .../common/behavior/range_annotation.dart | 86 ++--- .../behavior/selection/lock_selection.dart | 5 +- .../behavior/selection/select_nearest.dart | 24 +- .../chart/common/behavior/slider/slider.dart | 75 ++-- .../behavior/zoom/initial_hint_behavior.dart | 10 +- .../common/behavior/zoom/pan_behavior.dart | 10 +- .../behavior/zoom/panning_tick_provider.dart | 2 +- .../lib/src/chart/common/canvas_shapes.dart | 4 +- .../lib/src/chart/common/chart_canvas.dart | 2 +- .../lib/src/chart/common/datum_details.dart | 6 +- .../src/chart/common/processed_series.dart | 2 +- .../selection_model/selection_model.dart | 40 +- .../lib/src/chart/common/series_renderer.dart | 32 +- .../lib/src/chart/layout/layout_config.dart | 8 +- .../src/chart/layout/layout_manager_impl.dart | 46 ++- .../chart/layout/layout_margin_strategy.dart | 28 +- .../lib/src/chart/layout/layout_view.dart | 5 +- .../common/lib/src/chart/line/line_chart.dart | 3 +- .../lib/src/chart/line/line_renderer.dart | 172 +++++---- .../src/chart/line/line_renderer_config.dart | 6 +- .../src/chart/pie/arc_label_decorator.dart | 18 +- .../lib/src/chart/pie/arc_renderer.dart | 97 +++-- .../src/chart/pie/arc_renderer_config.dart | 6 +- .../common/lib/src/chart/pie/pie_chart.dart | 14 +- .../comparison_points_decorator.dart | 32 +- .../chart/scatter_plot/point_renderer.dart | 112 +++--- .../scatter_plot/point_renderer_config.dart | 4 +- .../scatter_plot/scatter_plot_chart.dart | 5 +- .../symbol_annotation_renderer.dart | 41 +-- .../symbol_annotation_renderer_config.dart | 6 +- .../chart/time_series/time_series_chart.dart | 6 +- web/charts/common/lib/src/common/color.dart | 12 +- .../lib/src/common/date_time_factory.dart | 12 +- .../lib/src/common/gesture_listener.dart | 11 +- .../lib/src/common/material_palette.dart | 102 +++--- web/charts/common/lib/src/common/palette.dart | 4 +- .../common/lib/src/common/performance.dart | 2 +- .../src/common/proxy_gesture_listener.dart | 19 +- .../lib/src/common/style/style_factory.dart | 2 +- .../lib/src/common/symbol_renderer.dart | 20 +- web/charts/common/lib/src/data/series.dart | 51 ++- web/charts/common/pubspec.lock | 4 +- web/charts/common/pubspec.yaml | 3 +- .../chart/bar/bar_label_decorator_test.dart | 112 +++--- .../test/chart/bar/bar_renderer_test.dart | 189 +++++----- .../bar/bar_target_line_renderer_test.dart | 108 +++--- .../bar/renderer_nearest_detail_test.dart | 196 +++++----- .../test/chart/cartesian/axis/axis_test.dart | 2 +- .../chart/cartesian/axis/axis_tick_test.dart | 17 +- .../bucketing_numeric_tick_provider_test.dart | 31 +- .../tick_draw_strategy_test.dart | 50 +-- .../axis/end_points_tick_provider_test.dart | 72 ++-- .../axis/linear/linear_scale_test.dart | 118 +++--- .../axis/numeric_tick_provider_test.dart | 82 ++--- .../cartesian/axis/ordinal_scale_test.dart | 43 ++- .../axis/static_tick_provider_test.dart | 56 +-- .../time/date_time_tick_formatter_test.dart | 83 ++--- .../axis/time/simple_date_time_factory.dart | 6 +- .../axis/time/time_stepper_test.dart | 345 +++++++++--------- .../axis/time/time_tick_provider_test.dart | 20 +- .../chart/cartesian/cartesian_chart_test.dart | 24 +- .../cartesian/cartesian_renderer_test.dart | 66 ++-- .../domain_a11y_explore_behavior_test.dart | 75 ++-- .../calculation/percent_injector_test.dart | 100 ++--- .../common/behavior/chart_behavior_test.dart | 12 +- .../behavior/domain_highlighter_test.dart | 36 +- .../behavior/initial_selection_test.dart | 24 +- .../behavior/line_point_highlighter_test.dart | 59 ++- .../behavior/range_annotation_test.dart | 72 ++-- .../selection/lock_selection_test.dart | 16 +- .../selection/select_nearest_test.dart | 84 ++--- .../behavior/series_legend_behavior_test.dart | 87 +++-- .../common/behavior/slider/slider_test.dart | 178 ++++----- .../chart/common/gesture_listener_test.dart | 76 ++-- .../selection_model/selection_model_test.dart | 74 ++-- .../test/chart/line/line_renderer_test.dart | 132 ++++--- .../line/renderer_nearest_detail_test.dart | 64 ++-- .../chart/pie/arc_label_decorator_test.dart | 82 ++--- .../comparison_points_decorator_test.dart | 40 +- .../scatter_plot/point_renderer_test.dart | 37 +- .../symbol_annotation_renderer_test.dart | 30 +- 145 files changed, 2475 insertions(+), 2671 deletions(-) create mode 100644 web/charts/common/.gitignore create mode 100644 web/charts/common/analysis_options.yaml diff --git a/web/charts/common/.gitignore b/web/charts/common/.gitignore new file mode 100644 index 000000000..d16386367 --- /dev/null +++ b/web/charts/common/.gitignore @@ -0,0 +1 @@ +build/ \ No newline at end of file diff --git a/web/charts/common/analysis_options.yaml b/web/charts/common/analysis_options.yaml new file mode 100644 index 000000000..08b772347 --- /dev/null +++ b/web/charts/common/analysis_options.yaml @@ -0,0 +1,32 @@ +include: package:pedantic/analysis_options.yaml + +analyzer: + # strong-mode: + # implicit-casts: false + # implicit-dynamic: false + +linter: + rules: + - avoid_types_on_closure_parameters + - avoid_void_async + - await_only_futures + - camel_case_types + - cancel_subscriptions + - close_sinks + # TODO(domesticmouse): rename constants + # - constant_identifier_names + - control_flow_in_finally + - empty_statements + # TODO(domesticmouse): implement hashCode methods + # - hash_and_equals + - implementation_imports + - non_constant_identifier_names + - package_api_docs + - package_names + - package_prefixed_library_names + - test_types_in_equals + - throw_in_finally + - unnecessary_brace_in_string_interps + - unnecessary_getters_setters + - unnecessary_new + - unnecessary_statements diff --git a/web/charts/common/lib/src/chart/bar/bar_chart.dart b/web/charts/common/lib/src/chart/bar/bar_chart.dart index 791572f78..a9810c6c1 100644 --- a/web/charts/common/lib/src/chart/bar/bar_chart.dart +++ b/web/charts/common/lib/src/chart/bar/bar_chart.dart @@ -37,7 +37,6 @@ class BarChart extends OrdinalCartesianChart { @override SeriesRenderer makeDefaultRenderer() { - return new BarRenderer() - ..rendererId = SeriesRenderer.defaultRendererId; + return BarRenderer()..rendererId = SeriesRenderer.defaultRendererId; } } diff --git a/web/charts/common/lib/src/chart/bar/bar_label_decorator.dart b/web/charts/common/lib/src/chart/bar/bar_label_decorator.dart index 41d381561..5202e02d0 100644 --- a/web/charts/common/lib/src/chart/bar/bar_label_decorator.dart +++ b/web/charts/common/lib/src/chart/bar/bar_label_decorator.dart @@ -33,9 +33,9 @@ class BarLabelDecorator extends BarRendererDecorator { static const _defaultLabelPadding = 5; static const _defaultLabelAnchor = BarLabelAnchor.start; static final _defaultInsideLabelStyle = - new TextStyleSpec(fontSize: 12, color: Color.white); + TextStyleSpec(fontSize: 12, color: Color.white); static final _defaultOutsideLabelStyle = - new TextStyleSpec(fontSize: 12, color: Color.black); + TextStyleSpec(fontSize: 12, color: Color.black); /// Configures [TextStyleSpec] for labels placed inside the bars. final TextStyleSpec insideLabelStyleSpec; diff --git a/web/charts/common/lib/src/chart/bar/bar_lane_renderer.dart b/web/charts/common/lib/src/chart/bar/bar_lane_renderer.dart index 072922a6b..c4b9fe9cb 100644 --- a/web/charts/common/lib/src/chart/bar/bar_lane_renderer.dart +++ b/web/charts/common/lib/src/chart/bar/bar_lane_renderer.dart @@ -37,7 +37,7 @@ import 'base_bar_renderer_element.dart' show BaseBarRendererElement; /// /// In grouped stacked mode, this list will contain a combination of domain /// value and series category. -const domainValuesKey = const AttributeKey('BarLaneRenderer.domainValues'); +const domainValuesKey = AttributeKey('BarLaneRenderer.domainValues'); /// Renders series data as a series of bars with lanes. /// @@ -63,17 +63,16 @@ class BarLaneRenderer extends BarRenderer { /// as the data was given to the chart. For the case where both grouping and /// stacking are disabled, this means that bars for data later in the series /// will be drawn "on top of" bars earlier in the series. - final _barLaneStackMap = new LinkedHashMap>>(); + final _barLaneStackMap = LinkedHashMap>>(); /// Store a map of flags to track whether all measure values for a given /// domain value are null, for every series on the chart. - final _allMeasuresForDomainNullMap = new LinkedHashMap(); + final _allMeasuresForDomainNullMap = LinkedHashMap(); factory BarLaneRenderer({BarLaneRendererConfig config, String rendererId}) { rendererId ??= 'bar'; - config ??= new BarLaneRendererConfig(); - return new BarLaneRenderer._internal( - config: config, rendererId: rendererId); + config ??= BarLaneRendererConfig(); + return BarLaneRenderer._internal(config: config, rendererId: rendererId); } BarLaneRenderer._internal({BarLaneRendererConfig config, String rendererId}) @@ -86,11 +85,11 @@ class BarLaneRenderer extends BarRenderer { _allMeasuresForDomainNullMap.clear(); - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { final domainFn = series.domainFn; final measureFn = series.rawMeasureFn; - final domainValues = new Set(); + final domainValues = Set(); for (var barIndex = 0; barIndex < series.data.length; barIndex++) { final domain = domainFn(barIndex); @@ -118,7 +117,7 @@ class BarLaneRenderer extends BarRenderer { super.update(seriesList, isAnimatingThisDraw); // Add gray bars to render under every bar stack. - seriesList.forEach((ImmutableSeries series) { + seriesList.forEach((series) { Set domainValues = series.getAttr(domainValuesKey) as Set; final domainAxis = series.getAttr(domainAxisKey) as ImmutableAxis; @@ -133,14 +132,14 @@ class BarLaneRenderer extends BarRenderer { // Create a fake series for [BarLabelDecorator] to use when looking up the // index of each datum. - final laneSeries = new MutableSeries.clone(seriesList[0]); + final laneSeries = MutableSeries.clone(seriesList[0]); laneSeries.data = []; // Don't render any labels on the swim lanes. - laneSeries.labelAccessorFn = (int index) => ''; + laneSeries.labelAccessorFn = (index) => ''; var laneSeriesIndex = 0; - domainValues.forEach((D domainValue) { + domainValues.forEach((domainValue) { // Skip adding any background bars if they will be covered up by the // domain-spanning null bar. if (_allMeasuresForDomainNullMap[domainValue] == true) { @@ -168,8 +167,7 @@ class BarLaneRenderer extends BarRenderer { barStackMapKey, () => >[]); // If we already have an AnimatingBar for that index, use it. - var animatingBar = barStackList.firstWhere( - (AnimatedBar bar) => bar.key == barKey, + var animatingBar = barStackList.firstWhere((bar) => bar.key == barKey, orElse: () => null); // If we don't have any existing bar element, create a new bar and have @@ -183,7 +181,7 @@ class BarLaneRenderer extends BarRenderer { previousBarGroupWeight: previousBarGroupWeight, barGroupWeight: barGroupWeight, color: (config as BarLaneRendererConfig).backgroundBarColor, - details: new BarRendererElement(), + details: BarRendererElement(), domainValue: domainValue, domainAxis: domainAxis, domainWidth: domainAxis.rangeBand.round(), @@ -212,7 +210,7 @@ class BarLaneRenderer extends BarRenderer { previousBarGroupWeight: previousBarGroupWeight, barGroupWeight: barGroupWeight, color: (config as BarLaneRendererConfig).backgroundBarColor, - details: new BarRendererElement(), + details: BarRendererElement(), domainValue: domainValue, domainAxis: domainAxis, domainWidth: domainAxis.rangeBand.round(), @@ -252,15 +250,15 @@ class BarLaneRenderer extends BarRenderer { // Create a fake series for [BarLabelDecorator] to use when looking up the // index of each datum. We don't care about any other series values for // the merged lanes, so just clone the first series. - final mergedSeries = new MutableSeries.clone(seriesList[0]); + final mergedSeries = MutableSeries.clone(seriesList[0]); mergedSeries.data = []; // Add a label accessor that returns the empty lane label. mergedSeries.labelAccessorFn = - (int index) => (config as BarLaneRendererConfig).emptyLaneLabel; + (index) => (config as BarLaneRendererConfig).emptyLaneLabel; var mergedSeriesIndex = 0; - _allMeasuresForDomainNullMap.forEach((D domainValue, bool allNull) { + _allMeasuresForDomainNullMap.forEach((domainValue, allNull) { if (allNull) { // Add a fake datum to the series for [BarLabelDecorator]. final datum = {'index': mergedSeriesIndex}; @@ -274,8 +272,7 @@ class BarLaneRenderer extends BarRenderer { barStackMapKey, () => >[]); // If we already have an AnimatingBar for that index, use it. - var animatingBar = barStackList.firstWhere( - (AnimatedBar bar) => bar.key == barKey, + var animatingBar = barStackList.firstWhere((bar) => bar.key == barKey, orElse: () => null); // If we don't have any existing bar element, create a new bar and have @@ -289,7 +286,7 @@ class BarLaneRenderer extends BarRenderer { previousBarGroupWeight: previousBarGroupWeight, barGroupWeight: barGroupWeight, color: (config as BarLaneRendererConfig).backgroundBarColor, - details: new BarRendererElement(), + details: BarRendererElement(), domainValue: domainValue, domainAxis: domainAxis, domainWidth: domainAxis.rangeBand.round(), @@ -318,7 +315,7 @@ class BarLaneRenderer extends BarRenderer { previousBarGroupWeight: previousBarGroupWeight, barGroupWeight: barGroupWeight, color: (config as BarLaneRendererConfig).backgroundBarColor, - details: new BarRendererElement(), + details: BarRendererElement(), domainValue: domainValue, domainAxis: domainAxis, domainWidth: domainAxis.rangeBand.round(), @@ -352,13 +349,12 @@ class BarLaneRenderer extends BarRenderer { /// Paints the current bar data on the canvas. @override void paint(ChartCanvas canvas, double animationPercent) { - _barLaneStackMap.forEach((String stackKey, List> barStack) { + _barLaneStackMap.forEach((stackKey, barStack) { // Turn this into a list so that the getCurrentBar isn't called more than // once for each animationPercent if the barElements are iterated more // than once. List> barElements = barStack - .map((AnimatedBar animatingBar) => - animatingBar.getCurrentBar(animationPercent)) + .map((animatingBar) => animatingBar.getCurrentBar(animationPercent)) .toList(); paintBar(canvas, animationPercent, barElements); diff --git a/web/charts/common/lib/src/chart/bar/bar_lane_renderer_config.dart b/web/charts/common/lib/src/chart/bar/bar_lane_renderer_config.dart index 3f6795944..436eb46e9 100644 --- a/web/charts/common/lib/src/chart/bar/bar_lane_renderer_config.dart +++ b/web/charts/common/lib/src/chart/bar/bar_lane_renderer_config.dart @@ -75,8 +75,7 @@ class BarLaneRendererConfig extends BarRendererConfig { @override BarLaneRenderer build() { - return new BarLaneRenderer( - config: this, rendererId: customRendererId); + return BarLaneRenderer(config: this, rendererId: customRendererId); } @override diff --git a/web/charts/common/lib/src/chart/bar/bar_renderer.dart b/web/charts/common/lib/src/chart/bar/bar_renderer.dart index 92096ce1d..61b922c16 100644 --- a/web/charts/common/lib/src/chart/bar/bar_renderer.dart +++ b/web/charts/common/lib/src/chart/bar/bar_renderer.dart @@ -52,8 +52,8 @@ class BarRenderer factory BarRenderer({BarRendererConfig config, String rendererId}) { rendererId ??= 'bar'; - config ??= new BarRendererConfig(); - return new BarRenderer.internal(config: config, rendererId: rendererId); + config ??= BarRendererConfig(); + return BarRenderer.internal(config: config, rendererId: rendererId); } /// This constructor is protected because it is used by child classes, which @@ -99,20 +99,20 @@ class BarRenderer Point chartPosition; if (renderingVertically) { - chartPosition = new Point( + chartPosition = Point( (bounds.left + (bounds.width / 2)).toDouble(), bounds.top.toDouble()); } else { - chartPosition = new Point( + chartPosition = Point( isRtl ? bounds.left.toDouble() : bounds.right.toDouble(), (bounds.top + (bounds.height / 2)).toDouble()); } - return new DatumDetails.from(details, chartPosition: chartPosition); + return DatumDetails.from(details, chartPosition: chartPosition); } @override BarRendererElement getBaseDetails(dynamic datum, int index) { - return new BarRendererElement(); + return BarRendererElement(); } CornerStrategy get cornerStrategy { @@ -145,7 +145,7 @@ class BarRenderer int numBarGroups, bool measureIsNull, bool measureIsNegative}) { - return new AnimatedBar( + return AnimatedBar( key: key, datum: datum, series: series, domainValue: domainValue) ..setNewTarget(makeBarRendererElement( color: color, @@ -192,7 +192,7 @@ class BarRenderer int numBarGroups, bool measureIsNull, bool measureIsNegative}) { - return new BarRendererElement() + return BarRendererElement() ..color = color ..dashPattern = dashPattern ..fillColor = fillColor @@ -238,7 +238,7 @@ class BarRenderer if (bar != unmodifiedBar) { bounds = renderingVertically - ? new Rectangle( + ? Rectangle( bar.bounds.left, max( 0, @@ -247,7 +247,7 @@ class BarRenderer bar.bounds.width, max(0, bar.bounds.height - _stackedBarPadding), ) - : new Rectangle( + : Rectangle( max( 0, bar.bounds.left + @@ -258,7 +258,7 @@ class BarRenderer ); } - bars.add(new CanvasRect(bounds, + bars.add(CanvasRect(bounds, dashPattern: bar.dashPattern, fill: bar.fillColor, pattern: bar.fillPattern, @@ -292,7 +292,7 @@ class BarRenderer roundBottomRight = renderingVertically || isRtl ? false : true; } - final barStack = new CanvasBarStack( + final barStack = CanvasBarStack( bars, radius: cornerStrategy.getRadius(maxBarWidth), stackedBarPadding: _stackedBarPadding, @@ -370,7 +370,7 @@ class BarRenderer final width = right - left; final height = bottom - top; - return new Rectangle(left, top, width, height); + return Rectangle(left, top, width, height); } /// Generates a set of bounds that describe a bar. @@ -442,11 +442,11 @@ class BarRenderer Rectangle bounds; if (this.renderingVertically) { // Rectangle clamps to zero width/height - bounds = new Rectangle(domainStart, measureEnd, - domainEnd - domainStart, measureStart - measureEnd); + bounds = Rectangle(domainStart, measureEnd, domainEnd - domainStart, + measureStart - measureEnd); } else { // Rectangle clamps to zero width/height - bounds = new Rectangle(min(measureStart, measureEnd), domainStart, + bounds = Rectangle(min(measureStart, measureEnd), domainStart, (measureEnd - measureStart).abs(), domainEnd - domainStart); } return bounds; @@ -511,8 +511,8 @@ class BarRendererElement extends BaseBarRendererElement var left = ((targetBounds.left - previousBounds.left) * animationPercent) + previousBounds.left; - bounds = new Rectangle(left.round(), top.round(), - (right - left).round(), (bottom - top).round()); + bounds = Rectangle(left.round(), top.round(), (right - left).round(), + (bottom - top).round()); roundPx = localTarget.roundPx; @@ -533,7 +533,7 @@ class AnimatedBar extends BaseAnimatedBar> { final BarRendererElement localTarget = target; // TODO: Animate out bars in the middle of a stack. - localTarget.bounds = new Rectangle( + localTarget.bounds = Rectangle( localTarget.bounds.left + (localTarget.bounds.width / 2).round(), localTarget.measureAxisPosition.round(), 0, @@ -552,5 +552,5 @@ class AnimatedBar extends BaseAnimatedBar> { @override BarRendererElement clone(BarRendererElement bar) => - new BarRendererElement.clone(bar); + BarRendererElement.clone(bar); } diff --git a/web/charts/common/lib/src/chart/bar/bar_renderer_config.dart b/web/charts/common/lib/src/chart/bar/bar_renderer_config.dart index daf770d8e..123a83ae7 100644 --- a/web/charts/common/lib/src/chart/bar/bar_renderer_config.dart +++ b/web/charts/common/lib/src/chart/bar/bar_renderer_config.dart @@ -56,7 +56,7 @@ class BarRendererConfig extends BaseBarRendererConfig { @override BarRenderer build() { - return new BarRenderer(config: this, rendererId: customRendererId); + return BarRenderer(config: this, rendererId: customRendererId); } @override diff --git a/web/charts/common/lib/src/chart/bar/bar_target_line_renderer.dart b/web/charts/common/lib/src/chart/bar/bar_target_line_renderer.dart index a43ee3ee3..77103e87a 100644 --- a/web/charts/common/lib/src/chart/bar/bar_target_line_renderer.dart +++ b/web/charts/common/lib/src/chart/bar/bar_target_line_renderer.dart @@ -45,13 +45,13 @@ class BarTargetLineRenderer extends BaseBarRenderer config, String rendererId = 'barTargetLine'}) { - config ??= new BarTargetLineRendererConfig(); - return new BarTargetLineRenderer._internal( + config ??= BarTargetLineRendererConfig(); + return BarTargetLineRenderer._internal( config: config, rendererId: rendererId); } @@ -64,7 +64,7 @@ class BarTargetLineRenderer extends BaseBarRenderer> seriesList) { - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { series.colorFn ??= (_) => _color; series.fillColorFn ??= (_) => _color; }); @@ -97,21 +97,21 @@ class BarTargetLineRenderer extends BaseBarRenderer chartPosition; if (renderingVertically) { - chartPosition = new Point( + chartPosition = Point( (points[0].x + (points[1].x - points[0].x) / 2).toDouble(), points[0].y.toDouble()); } else { - chartPosition = new Point(points[0].x.toDouble(), + chartPosition = Point(points[0].x.toDouble(), (points[0].y + (points[1].y - points[0].y) / 2).toDouble()); } - return new DatumDetails.from(details, chartPosition: chartPosition); + return DatumDetails.from(details, chartPosition: chartPosition); } @override _BarTargetLineRendererElement getBaseDetails(dynamic datum, int index) { final BarTargetLineRendererConfig localConfig = config; - return new _BarTargetLineRendererElement() + return _BarTargetLineRendererElement() ..roundEndCaps = localConfig.roundEndCaps; } @@ -141,7 +141,7 @@ class BarTargetLineRenderer extends BaseBarRenderer extends BaseBarRenderer extends BaseBarRenderer barElements, ) { - barElements.forEach((_BarTargetLineRendererElement bar) { + barElements.forEach((bar) { // TODO: Combine common line attributes into // GraphicsFactory.lineStyle or similar. canvas.drawLine( @@ -299,13 +299,13 @@ class BarTargetLineRenderer extends BaseBarRenderer> points; if (renderingVertically) { points = [ - new Point(domainStart, measureStart), - new Point(domainEnd, measureStart) + Point(domainStart, measureStart), + Point(domainEnd, measureStart) ]; } else { points = [ - new Point(measureStart, domainStart), - new Point(measureStart, domainEnd) + Point(measureStart, domainStart), + Point(measureStart, domainEnd) ]; } return points; @@ -318,13 +318,13 @@ class BarTargetLineRenderer extends BaseBarRenderer p) { + points.forEach((p) { top = top != null ? min(top, p.y) : p.y; left = left != null ? min(left, p.x) : p.x; bottom = bottom != null ? max(bottom, p.y) : p.y; right = right != null ? max(right, p.x) : p.x; }); - return new Rectangle(left, top, right - left, bottom - top); + return Rectangle(left, top, right - left, bottom - top); } } @@ -336,7 +336,7 @@ class _BarTargetLineRendererElement extends BaseBarRendererElement { _BarTargetLineRendererElement.clone(_BarTargetLineRendererElement other) : super.clone(other) { - points = new List>.from(other.points); + points = List>.from(other.points); roundEndCaps = other.roundEndCaps; } @@ -362,7 +362,7 @@ class _BarTargetLineRendererElement extends BaseBarRendererElement { previousPoint = previousPoints[pointIndex]; lastPoint = previousPoint; } else { - previousPoint = new Point(targetPoint.x, lastPoint.y); + previousPoint = Point(targetPoint.x, lastPoint.y); } var x = ((targetPoint.x - previousPoint.x) * animationPercent) + @@ -372,9 +372,9 @@ class _BarTargetLineRendererElement extends BaseBarRendererElement { previousPoint.y; if (points.length - 1 >= pointIndex) { - points[pointIndex] = new Point(x.round(), y.round()); + points[pointIndex] = Point(x.round(), y.round()); } else { - points.add(new Point(x.round(), y.round())); + points.add(Point(x.round(), y.round())); } } @@ -410,13 +410,13 @@ class _AnimatedBarTargetLine for (var index = 0; index < localTarget.points.length; index++) { final targetPoint = localTarget.points[index]; - newPoints.add(new Point( - targetPoint.x, localTarget.measureAxisPosition.round())); + newPoints.add( + Point(targetPoint.x, localTarget.measureAxisPosition.round())); } localTarget.points = newPoints; } @override _BarTargetLineRendererElement clone(_BarTargetLineRendererElement bar) => - new _BarTargetLineRendererElement.clone(bar); + _BarTargetLineRendererElement.clone(bar); } diff --git a/web/charts/common/lib/src/chart/bar/bar_target_line_renderer_config.dart b/web/charts/common/lib/src/chart/bar/bar_target_line_renderer_config.dart index c1e011bfc..293d07cb3 100644 --- a/web/charts/common/lib/src/chart/bar/bar_target_line_renderer_config.dart +++ b/web/charts/common/lib/src/chart/bar/bar_target_line_renderer_config.dart @@ -57,14 +57,13 @@ class BarTargetLineRendererConfig extends BaseBarRendererConfig { layoutPaintOrder: layoutPaintOrder, minBarLengthPx: minBarLengthPx, strokeWidthPx: strokeWidthPx, - symbolRenderer: symbolRenderer ?? new LineSymbolRenderer(), + symbolRenderer: symbolRenderer ?? LineSymbolRenderer(), weightPattern: weightPattern, ); @override BarTargetLineRenderer build() { - return new BarTargetLineRenderer( - config: this, rendererId: customRendererId); + return BarTargetLineRenderer(config: this, rendererId: customRendererId); } @override diff --git a/web/charts/common/lib/src/chart/bar/base_bar_renderer.dart b/web/charts/common/lib/src/chart/bar/base_bar_renderer.dart index 63e90a8f4..ff44af57a 100644 --- a/web/charts/common/lib/src/chart/bar/base_bar_renderer.dart +++ b/web/charts/common/lib/src/chart/bar/base_bar_renderer.dart @@ -34,20 +34,19 @@ import 'base_bar_renderer_config.dart' show BaseBarRendererConfig; import 'base_bar_renderer_element.dart' show BaseAnimatedBar, BaseBarRendererElement; -const barGroupIndexKey = const AttributeKey('BarRenderer.barGroupIndex'); +const barGroupIndexKey = AttributeKey('BarRenderer.barGroupIndex'); -const barGroupCountKey = const AttributeKey('BarRenderer.barGroupCount'); +const barGroupCountKey = AttributeKey('BarRenderer.barGroupCount'); -const barGroupWeightKey = - const AttributeKey('BarRenderer.barGroupWeight'); +const barGroupWeightKey = AttributeKey('BarRenderer.barGroupWeight'); const previousBarGroupWeightKey = - const AttributeKey('BarRenderer.previousBarGroupWeight'); + AttributeKey('BarRenderer.previousBarGroupWeight'); -const stackKeyKey = const AttributeKey('BarRenderer.stackKey'); +const stackKeyKey = AttributeKey('BarRenderer.stackKey'); const barElementsKey = - const AttributeKey>('BarRenderer.elements'); + AttributeKey>('BarRenderer.elements'); /// Base class for bar renderers that implements common stacking and grouping /// logic. @@ -85,7 +84,7 @@ abstract class BaseBarRenderer>(); + final _barStackMap = LinkedHashMap>(); // Store a list of bar stacks that exist in the series data. // @@ -95,7 +94,7 @@ abstract class BaseBarRenderer[]; /// Stores a list of stack keys for each group key. - final _currentGroupsStackKeys = new LinkedHashMap>(); + final _currentGroupsStackKeys = LinkedHashMap>(); /// Optimization for getNearest to avoid scanning all data if possible. ImmutableAxis _prevDomainAxis; @@ -105,8 +104,7 @@ abstract class BaseBarRenderer series) { + orderedSeriesList.forEach((series) { var elements = []; var domainFn = series.domainFn; @@ -255,7 +253,7 @@ abstract class BaseBarRenderer series) { + seriesList.forEach((series) { series.setAttr(barGroupCountKey, numBarGroups); if (barWeights.isNotEmpty) { @@ -290,7 +288,7 @@ abstract class BaseBarRenderer config.weightPattern.length) { - throw new ArgumentError('Number of series exceeds length of weight ' + throw ArgumentError('Number of series exceeds length of weight ' 'pattern ${config.weightPattern}'); } @@ -327,7 +325,7 @@ abstract class BaseBarRenderer series) { + orderedSeriesList.forEach((final series) { final domainAxis = series.getAttr(domainAxisKey) as ImmutableAxis; final domainFn = series.domainFn; final measureAxis = series.getAttr(measureAxisKey) as ImmutableAxis; @@ -384,7 +382,7 @@ abstract class BaseBarRenderer []); // If we already have an AnimatingBarfor that index, use it. - var animatingBar = barStackList.firstWhere((B bar) => bar.key == barKey, + var animatingBar = barStackList.firstWhere((bar) => bar.key == barKey, orElse: () => null); // If we don't have any existing bar element, create a new bar and have @@ -438,7 +436,7 @@ abstract class BaseBarRenderer new Set()) + .putIfAbsent(domainValue, () => {}) .add(barStackMapKey); // Get the barElement we are going to setup. @@ -469,7 +467,7 @@ abstract class BaseBarRenderer barStackList) { + _barStackMap.forEach((key, barStackList) { for (var barIndex = 0; barIndex < barStackList.length; barIndex++) { final bar = barStackList[barIndex]; if (_currentKeys.contains(bar.key) != true) { @@ -541,11 +539,11 @@ abstract class BaseBarRenderer(); + final keysToRemove = HashSet(); - _barStackMap.forEach((String key, List barStackList) { + _barStackMap.forEach((key, barStackList) { barStackList.retainWhere( - (B bar) => !bar.animatingOut && !bar.targetBar.measureIsNull); + (bar) => !bar.animatingOut && !bar.targetBar.measureIsNull); if (barStackList.isEmpty) { keysToRemove.add(key); @@ -563,12 +561,12 @@ abstract class BaseBarRenderer barStack) { + _barStackMap.forEach((stackKey, barStack) { // Turn this into a list so that the getCurrentBar isn't called more than // once for each animationPercent if the barElements are iterated more // than once. final barElements = barStack - .map((B animatingBar) => animatingBar.getCurrentBar(animationPercent)) + .map((animatingBar) => animatingBar.getCurrentBar(animationPercent)) .toList(); if (barElements.isNotEmpty) { @@ -663,7 +661,7 @@ abstract class BaseBarRenderer allKeys..addAll(keys)); - stackKeys?.forEach((String stackKey) { + stackKeys?.forEach((stackKey) { if (where != null) { matchingSegments.addAll(_barStackMap[stackKey].where(where)); } else { @@ -678,23 +676,21 @@ abstract class BaseBarRenderer> _getVerticalDetailsForDomainValue( D domainValue, Point chartPoint) { - return new List>.from(_getSegmentsForDomainValue( - domainValue, - where: (BaseAnimatedBar bar) => !bar.series.overlaySeries) - .map>((BaseAnimatedBar bar) { + return List>.from(_getSegmentsForDomainValue(domainValue, + where: (bar) => !bar.series.overlaySeries).map>((bar) { final barBounds = getBoundsForBar(bar.currentBar); final segmentDomainDistance = _getDistance(chartPoint.x.round(), barBounds.left, barBounds.right); final segmentMeasureDistance = _getDistance(chartPoint.y.round(), barBounds.top, barBounds.bottom); - final nearestPoint = new Point( + final nearestPoint = Point( clamp(chartPoint.x, barBounds.left, barBounds.right).toDouble(), clamp(chartPoint.y, barBounds.top, barBounds.bottom).toDouble()); final relativeDistance = chartPoint.distanceTo(nearestPoint); - return new DatumDetails( + return DatumDetails( series: bar.series, datum: bar.datum, domain: bar.domainValue, @@ -707,17 +703,15 @@ abstract class BaseBarRenderer> _getHorizontalDetailsForDomainValue( D domainValue, Point chartPoint) { - return new List>.from(_getSegmentsForDomainValue( - domainValue, - where: (BaseAnimatedBar bar) => !bar.series.overlaySeries) - .map((BaseAnimatedBar bar) { + return List>.from(_getSegmentsForDomainValue(domainValue, + where: (bar) => !bar.series.overlaySeries).map((bar) { final barBounds = getBoundsForBar(bar.currentBar); final segmentDomainDistance = _getDistance(chartPoint.y.round(), barBounds.top, barBounds.bottom); final segmentMeasureDistance = _getDistance(chartPoint.x.round(), barBounds.left, barBounds.right); - return new DatumDetails( + return DatumDetails( series: bar.series, datum: bar.datum, domain: bar.domainValue, @@ -748,7 +742,7 @@ abstract class BaseBarRenderer seriesList) { return (renderingVertically && config.stacked) ? config.grouped - ? new _ReversedSeriesIterable(seriesList) + ? _ReversedSeriesIterable(seriesList) : seriesList.reversed : seriesList; } @@ -763,7 +757,7 @@ class _ReversedSeriesIterable extends Iterable { _ReversedSeriesIterable(this.seriesList); @override - Iterator get iterator => new _ReversedSeriesIterator(seriesList); + Iterator get iterator => _ReversedSeriesIterator(seriesList); } /// Iterator that keeps reverse series order but keeps category order. diff --git a/web/charts/common/lib/src/chart/bar/base_bar_renderer_config.dart b/web/charts/common/lib/src/chart/bar/base_bar_renderer_config.dart index a9ae3334a..6cbd9611e 100644 --- a/web/charts/common/lib/src/chart/bar/base_bar_renderer_config.dart +++ b/web/charts/common/lib/src/chart/bar/base_bar_renderer_config.dart @@ -82,7 +82,7 @@ abstract class BaseBarRendererConfig extends LayoutViewConfig /// Not used for stacked bars. final List weightPattern; - final rendererAttributes = new RendererAttributes(); + final rendererAttributes = RendererAttributes(); BaseBarRendererConfig( {this.customRendererId, @@ -95,7 +95,7 @@ abstract class BaseBarRendererConfig extends LayoutViewConfig this.strokeWidthPx = 0.0, SymbolRenderer symbolRenderer, this.weightPattern}) - : this.symbolRenderer = symbolRenderer ?? new RoundedRectSymbolRenderer(); + : this.symbolRenderer = symbolRenderer ?? RoundedRectSymbolRenderer(); /// Whether or not the bars should be organized into groups. bool get grouped => @@ -112,10 +112,8 @@ abstract class BaseBarRendererConfig extends LayoutViewConfig if (identical(this, other)) { return true; } - if (!(other is BaseBarRendererConfig)) { - return false; - } - return other.customRendererId == customRendererId && + return other is BaseBarRendererConfig && + other.customRendererId == customRendererId && other.dashPattern == dashPattern && other.fillPattern == fillPattern && other.groupingType == groupingType && @@ -123,7 +121,7 @@ abstract class BaseBarRendererConfig extends LayoutViewConfig other.stackHorizontalSeparator == stackHorizontalSeparator && other.strokeWidthPx == strokeWidthPx && other.symbolRenderer == symbolRenderer && - new ListEquality().equals(other.weightPattern, weightPattern); + ListEquality().equals(other.weightPattern, weightPattern); } int get hashcode { diff --git a/web/charts/common/lib/src/chart/bar/base_bar_renderer_element.dart b/web/charts/common/lib/src/chart/bar/base_bar_renderer_element.dart index d49140fbb..bfa5fb16a 100644 --- a/web/charts/common/lib/src/chart/bar/base_bar_renderer_element.dart +++ b/web/charts/common/lib/src/chart/bar/base_bar_renderer_element.dart @@ -35,12 +35,11 @@ abstract class BaseBarRendererElement { BaseBarRendererElement.clone(BaseBarRendererElement other) { barStackIndex = other.barStackIndex; - color = - other.color != null ? new Color.fromOther(color: other.color) : null; + color = other.color != null ? Color.fromOther(color: other.color) : null; cumulativeTotal = other.cumulativeTotal; dashPattern = other.dashPattern; fillColor = other.fillColor != null - ? new Color.fromOther(color: other.fillColor) + ? Color.fromOther(color: other.fillColor) : null; fillPattern = other.fillPattern; measureAxisPosition = other.measureAxisPosition; diff --git a/web/charts/common/lib/src/chart/cartesian/axis/axis.dart b/web/charts/common/lib/src/chart/cartesian/axis/axis.dart index a76dcf5a1..5203224ee 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/axis.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/axis.dart @@ -46,9 +46,9 @@ import 'tick_formatter.dart' show TickFormatter, OrdinalTickFormatter, NumericTickFormatter; import 'tick_provider.dart' show TickProvider; -const measureAxisIdKey = const AttributeKey('Axis.measureAxisId'); -const measureAxisKey = const AttributeKey('Axis.measureAxis'); -const domainAxisKey = const AttributeKey('Axis.domainAxis'); +const measureAxisIdKey = AttributeKey('Axis.measureAxisId'); +const measureAxisKey = AttributeKey('Axis.measureAxis'); +const domainAxisKey = AttributeKey('Axis.domainAxis'); /// Orientation of an Axis. enum AxisOrientation { top, right, bottom, left } @@ -89,14 +89,8 @@ abstract class Axis extends ImmutableAxis implements LayoutView { /// Previous [Scale] of this axis, used to calculate tick animation. MutableScale _previousScale; - TickProvider _tickProvider; - /// [TickProvider] for this axis. - TickProvider get tickProvider => _tickProvider; - - set tickProvider(TickProvider tickProvider) { - _tickProvider = tickProvider; - } + TickProvider tickProvider; /// [TickFormatter] for this axis. TickFormatter _tickFormatter; @@ -122,9 +116,12 @@ abstract class Axis extends ImmutableAxis implements LayoutView { /// If the output range should be reversed. bool reverseOutputRange = false; - /// Whether or not the axis will configure the viewport to have "niced" ticks - /// around the domain values. - bool _autoViewport = true; + /// Configures whether the viewport should be reset back to default values + /// when the domain is reset. + /// + /// This should generally be disabled when the viewport will be managed + /// externally, e.g. from pan and zoom behaviors. + bool autoViewport = true; /// If the axis line should always be drawn. bool forceDrawAxisLine; @@ -143,7 +140,7 @@ abstract class Axis extends ImmutableAxis implements LayoutView { Rectangle _componentBounds; Rectangle _drawAreaBounds; - GraphicsFactory _graphicsFactory; + GraphicsFactory graphicsFactory; /// Order for chart layout painting. /// @@ -156,7 +153,7 @@ abstract class Axis extends ImmutableAxis implements LayoutView { TickFormatter tickFormatter, MutableScale scale}) : this._scale = scale, - this._tickProvider = tickProvider, + this.tickProvider = tickProvider, this._tickFormatter = tickFormatter; @protected @@ -172,17 +169,6 @@ abstract class Axis extends ImmutableAxis implements LayoutView { @override ScaleOutputExtent get range => _scale.range; - /// Configures whether the viewport should be reset back to default values - /// when the domain is reset. - /// - /// This should generally be disabled when the viewport will be managed - /// externally, e.g. from pan and zoom behaviors. - set autoViewport(bool autoViewport) { - _autoViewport = autoViewport; - } - - bool get autoViewport => _autoViewport; - void setRangeBandConfig(RangeBandConfig rangeBandConfig) { mutableScale.rangeBandConfig = rangeBandConfig; } @@ -222,7 +208,7 @@ abstract class Axis extends ImmutableAxis implements LayoutView { _scale.resetDomain(); reverseOutputRange = false; - if (_autoViewport) { + if (autoViewport) { _scale.resetViewportSettings(); } @@ -243,7 +229,7 @@ abstract class Axis extends ImmutableAxis implements LayoutView { } void setOutputRange(int start, int end) { - _scale.range = new ScaleOutputExtent(start, end); + _scale.range = ScaleOutputExtent(start, end); } /// Request update ticks from tick provider and update the painted ticks. @@ -268,7 +254,7 @@ abstract class Axis extends ImmutableAxis implements LayoutView { formatterValueCache: _formatterValueCache, tickDrawStrategy: tickDrawStrategy, orientation: axisOrientation, - viewportExtensionEnabled: _autoViewport); + viewportExtensionEnabled: autoViewport); } /// Updates the ticks that are actually used for drawing. @@ -277,7 +263,7 @@ abstract class Axis extends ImmutableAxis implements LayoutView { return; } - final providedTicks = new List.from(_providedTicks ?? []); + final providedTicks = List.from(_providedTicks ?? []); for (AxisTicks animatedTick in _axisTicks) { final tick = providedTicks?.firstWhere( @@ -302,7 +288,7 @@ abstract class Axis extends ImmutableAxis implements LayoutView { // Add new ticks providedTicks?.forEach((tick) { - final animatedTick = new AxisTicks(tick); + final animatedTick = AxisTicks(tick); if (_previousScale != null) { animatedTick.animateInFrom(_previousScale[tick.value].toDouble()); } @@ -378,15 +364,7 @@ abstract class Axis extends ImmutableAxis implements LayoutView { // @override - GraphicsFactory get graphicsFactory => _graphicsFactory; - - @override - set graphicsFactory(GraphicsFactory value) { - _graphicsFactory = value; - } - - @override - LayoutViewConfig get layoutConfig => new LayoutViewConfig( + LayoutViewConfig get layoutConfig => LayoutViewConfig( paintOrder: layoutPaintOrder, position: _layoutPosition, positionOrder: LayoutViewPositionOrder.axis); @@ -457,8 +435,8 @@ abstract class Axis extends ImmutableAxis implements LayoutView { isVertical ? _componentBounds.top : _componentBounds.right; final outputRange = reverseOutputRange - ? new ScaleOutputExtent(outputEnd, outputStart) - : new ScaleOutputExtent(outputStart, outputEnd); + ? ScaleOutputExtent(outputEnd, outputStart) + : ScaleOutputExtent(outputStart, outputEnd); if (_scale.range != outputRange) { _scale.range = outputRange; @@ -510,9 +488,9 @@ abstract class Axis extends ImmutableAxis implements LayoutView { class NumericAxis extends Axis { NumericAxis({TickProvider tickProvider}) : super( - tickProvider: tickProvider ?? new NumericTickProvider(), - tickFormatter: new NumericTickFormatter(), - scale: new LinearScale(), + tickProvider: tickProvider ?? NumericTickProvider(), + tickFormatter: NumericTickFormatter(), + scale: LinearScale(), ); void setScaleViewport(NumericExtents viewport) { @@ -529,7 +507,7 @@ class OrdinalAxis extends Axis { }) : super( tickProvider: tickProvider ?? const OrdinalTickProvider(), tickFormatter: tickFormatter ?? const OrdinalTickFormatter(), - scale: new SimpleOrdinalScale(), + scale: SimpleOrdinalScale(), ); void setScaleViewport(OrdinalViewport viewport) { diff --git a/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/base_tick_draw_strategy.dart b/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/base_tick_draw_strategy.dart index 64d54d011..66e01c0a9 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/base_tick_draw_strategy.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/base_tick_draw_strategy.dart @@ -147,7 +147,7 @@ abstract class BaseTickDrawStrategy implements TickDrawStrategy { CollisionReport collides(List> ticks, AxisOrientation orientation) { // If there are no ticks, they do not collide. if (ticks == null) { - return new CollisionReport( + return CollisionReport( ticksCollide: false, ticks: ticks, alternateTicksUsed: false); } @@ -228,12 +228,12 @@ abstract class BaseTickDrawStrategy implements TickDrawStrategy { } if (collides) { - return new CollisionReport( + return CollisionReport( ticksCollide: true, ticks: ticks, alternateTicksUsed: false); } } - return new CollisionReport( + return CollisionReport( ticksCollide: false, ticks: ticks, alternateTicksUsed: false); } @@ -245,13 +245,13 @@ abstract class BaseTickDrawStrategy implements TickDrawStrategy { final maxHorizontalSliceWidth = ticks .fold( 0.0, - (double prevMax, tick) => max( + (prevMax, tick) => max( prevMax, tick.textElement.measurement.horizontalSliceWidth + labelOffsetFromAxisPx)) .round(); - return new ViewMeasuredSizes( + return ViewMeasuredSizes( preferredWidth: maxHorizontalSliceWidth, preferredHeight: maxHeight); } @@ -261,11 +261,11 @@ abstract class BaseTickDrawStrategy implements TickDrawStrategy { final maxVerticalSliceWidth = ticks .fold( 0.0, - (double prevMax, tick) => - max(prevMax, tick.textElement.measurement.verticalSliceWidth)) + (prevMax, tick) => max( + prevMax, tick.textElement.measurement.verticalSliceWidth)) .round(); - return new ViewMeasuredSizes( + return ViewMeasuredSizes( preferredWidth: maxWidth, preferredHeight: maxVerticalSliceWidth + labelOffsetFromAxisPx); } diff --git a/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/gridline_draw_strategy.dart b/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/gridline_draw_strategy.dart index b94ffc75b..4e6f06f9f 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/gridline_draw_strategy.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/gridline_draw_strategy.dart @@ -56,7 +56,7 @@ class GridlineRendererSpec extends SmallTickRendererSpec { @override TickDrawStrategy createDrawStrategy( ChartContext context, GraphicsFactory graphicsFactory) => - new GridlineTickDrawStrategy(context, graphicsFactory, + GridlineTickDrawStrategy(context, graphicsFactory, tickLengthPx: tickLengthPx, lineStyleSpec: lineStyle, labelStyleSpec: labelStyle, @@ -125,34 +125,34 @@ class GridlineTickDrawStrategy extends BaseTickDrawStrategy { switch (orientation) { case AxisOrientation.top: final x = tick.locationPx; - lineStart = new Point(x, axisBounds.bottom - tickLength); - lineEnd = new Point(x, drawAreaBounds.bottom); + lineStart = Point(x, axisBounds.bottom - tickLength); + lineEnd = Point(x, drawAreaBounds.bottom); break; case AxisOrientation.bottom: final x = tick.locationPx; - lineStart = new Point(x, drawAreaBounds.top + tickLength); - lineEnd = new Point(x, axisBounds.top); + lineStart = Point(x, drawAreaBounds.top + tickLength); + lineEnd = Point(x, axisBounds.top); break; case AxisOrientation.right: final y = tick.locationPx; if (tickLabelAnchor == TickLabelAnchor.after || tickLabelAnchor == TickLabelAnchor.before) { - lineStart = new Point(axisBounds.right, y); + lineStart = Point(axisBounds.right, y); } else { - lineStart = new Point(axisBounds.left + tickLength, y); + lineStart = Point(axisBounds.left + tickLength, y); } - lineEnd = new Point(drawAreaBounds.left, y); + lineEnd = Point(drawAreaBounds.left, y); break; case AxisOrientation.left: final y = tick.locationPx; if (tickLabelAnchor == TickLabelAnchor.after || tickLabelAnchor == TickLabelAnchor.before) { - lineStart = new Point(axisBounds.left, y); + lineStart = Point(axisBounds.left, y); } else { - lineStart = new Point(axisBounds.right - tickLength, y); + lineStart = Point(axisBounds.right - tickLength, y); } - lineEnd = new Point(drawAreaBounds.right, y); + lineEnd = Point(drawAreaBounds.right, y); break; } diff --git a/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/none_draw_strategy.dart b/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/none_draw_strategy.dart index 781bcc806..82aa96aae 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/none_draw_strategy.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/none_draw_strategy.dart @@ -42,7 +42,7 @@ class NoneRenderSpec extends RenderSpec { @override TickDrawStrategy createDrawStrategy( ChartContext context, GraphicsFactory graphicFactory) => - new NoneDrawStrategy(context, graphicFactory, + NoneDrawStrategy(context, graphicFactory, axisLineStyleSpec: axisLineStyle); @override @@ -68,7 +68,7 @@ class NoneDrawStrategy implements TickDrawStrategy { @override CollisionReport collides(List ticks, AxisOrientation orientation) => - new CollisionReport(ticksCollide: false, ticks: ticks); + CollisionReport(ticksCollide: false, ticks: ticks); @override void decorateTicks(List ticks) { @@ -125,12 +125,12 @@ class NoneDrawStrategy implements TickDrawStrategy { @override ViewMeasuredSizes measureHorizontallyDrawnTicks( List ticks, int maxWidth, int maxHeight) { - return new ViewMeasuredSizes(preferredWidth: 0, preferredHeight: 0); + return ViewMeasuredSizes(preferredWidth: 0, preferredHeight: 0); } @override ViewMeasuredSizes measureVerticallyDrawnTicks( List ticks, int maxWidth, int maxHeight) { - return new ViewMeasuredSizes(preferredWidth: 0, preferredHeight: 0); + return ViewMeasuredSizes(preferredWidth: 0, preferredHeight: 0); } } diff --git a/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/small_tick_draw_strategy.dart b/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/small_tick_draw_strategy.dart index b7db57e45..575779e35 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/small_tick_draw_strategy.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/draw_strategy/small_tick_draw_strategy.dart @@ -57,7 +57,7 @@ class SmallTickRendererSpec extends BaseRenderSpec { @override TickDrawStrategy createDrawStrategy( ChartContext context, GraphicsFactory graphicsFactory) => - new SmallTickDrawStrategy(context, graphicsFactory, + SmallTickDrawStrategy(context, graphicsFactory, tickLengthPx: tickLengthPx, lineStyleSpec: lineStyle, labelStyleSpec: labelStyle, @@ -128,25 +128,25 @@ class SmallTickDrawStrategy extends BaseTickDrawStrategy { switch (orientation) { case AxisOrientation.top: double x = tick.locationPx; - tickStart = new Point(x, axisBounds.bottom - tickLength); - tickEnd = new Point(x, axisBounds.bottom); + tickStart = Point(x, axisBounds.bottom - tickLength); + tickEnd = Point(x, axisBounds.bottom); break; case AxisOrientation.bottom: double x = tick.locationPx; - tickStart = new Point(x, axisBounds.top); - tickEnd = new Point(x, axisBounds.top + tickLength); + tickStart = Point(x, axisBounds.top); + tickEnd = Point(x, axisBounds.top + tickLength); break; case AxisOrientation.right: double y = tick.locationPx; - tickStart = new Point(axisBounds.left, y); - tickEnd = new Point(axisBounds.left + tickLength, y); + tickStart = Point(axisBounds.left, y); + tickEnd = Point(axisBounds.left + tickLength, y); break; case AxisOrientation.left: double y = tick.locationPx; - tickStart = new Point(axisBounds.right - tickLength, y); - tickEnd = new Point(axisBounds.right, y); + tickStart = Point(axisBounds.right - tickLength, y); + tickEnd = Point(axisBounds.right, y); break; } diff --git a/web/charts/common/lib/src/chart/cartesian/axis/end_points_tick_provider.dart b/web/charts/common/lib/src/chart/cartesian/axis/end_points_tick_provider.dart index 17426f960..8ba188f89 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/end_points_tick_provider.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/end_points_tick_provider.dart @@ -54,12 +54,12 @@ class EndPointsTickProvider extends BaseTickProvider { final labels = formatter.format([start, end], formatterValueCache, stepSize: scale.domainStepSize); - ticks.add(new Tick( + ticks.add(Tick( value: start, textElement: graphicsFactory.createTextElement(labels[0]), locationPx: scale[start])); - ticks.add(new Tick( + ticks.add(Tick( value: end, textElement: graphicsFactory.createTextElement(labels[1]), locationPx: scale[end])); diff --git a/web/charts/common/lib/src/chart/cartesian/axis/linear/bucketing_numeric_axis.dart b/web/charts/common/lib/src/chart/cartesian/axis/linear/bucketing_numeric_axis.dart index d138b372e..30f5d22c6 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/linear/bucketing_numeric_axis.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/linear/bucketing_numeric_axis.dart @@ -48,8 +48,7 @@ class BucketingNumericAxis extends NumericAxis { /// [threshold] will be rendered at the baseline of the chart. The bool _showBucket; - BucketingNumericAxis() - : super(tickProvider: new BucketingNumericTickProvider()); + BucketingNumericAxis() : super(tickProvider: BucketingNumericTickProvider()); set threshold(num threshold) { _threshold = threshold; diff --git a/web/charts/common/lib/src/chart/cartesian/axis/linear/bucketing_numeric_tick_provider.dart b/web/charts/common/lib/src/chart/cartesian/axis/linear/bucketing_numeric_tick_provider.dart index 36c35f962..ed50a105f 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/linear/bucketing_numeric_tick_provider.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/linear/bucketing_numeric_tick_provider.dart @@ -83,7 +83,7 @@ class BucketingNumericTickProvider extends NumericTickProvider { throw ('The showBucket flag must be set before getting ticks.'); } - final localFormatter = new _BucketingFormatter() + final localFormatter = _BucketingFormatter() ..threshold = _threshold ..originalFormatter = formatter; @@ -100,7 +100,7 @@ class BucketingNumericTickProvider extends NumericTickProvider { assert(scale != null); // Create a tick for the threshold. - final thresholdTick = new Tick( + final thresholdTick = Tick( value: _threshold, textElement: graphicsFactory .createTextElement(localFormatter.formatValue(_threshold)), @@ -110,8 +110,8 @@ class BucketingNumericTickProvider extends NumericTickProvider { tickDrawStrategy.decorateTicks(>[thresholdTick]); // Filter out ticks that sit below the threshold. - ticks.removeWhere((Tick tick) => - tick.value <= thresholdTick.value && tick.value != 0.0); + ticks.removeWhere( + (tick) => tick.value <= thresholdTick.value && tick.value != 0.0); // Finally, add our threshold tick to the list. ticks.add(thresholdTick); diff --git a/web/charts/common/lib/src/chart/cartesian/axis/linear/linear_scale.dart b/web/charts/common/lib/src/chart/cartesian/axis/linear/linear_scale.dart index 54a0289ed..71d1476cf 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/linear/linear_scale.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/linear/linear_scale.dart @@ -49,7 +49,7 @@ import 'linear_scale_viewport.dart' show LinearScaleViewportSettings; class LinearScale implements NumericScale { final LinearScaleDomainInfo _domainInfo; final LinearScaleViewportSettings _viewportSettings; - final LinearScaleFunction _scaleFunction = new LinearScaleFunction(); + final LinearScaleFunction _scaleFunction = LinearScaleFunction(); RangeBandConfig rangeBandConfig = const RangeBandConfig.none(); StepSizeConfig stepSizeConfig = const StepSizeConfig.auto(); @@ -57,18 +57,18 @@ class LinearScale implements NumericScale { bool _scaleReady = false; LinearScale() - : _domainInfo = new LinearScaleDomainInfo(), - _viewportSettings = new LinearScaleViewportSettings(); + : _domainInfo = LinearScaleDomainInfo(), + _viewportSettings = LinearScaleViewportSettings(); LinearScale._copy(LinearScale other) - : _domainInfo = new LinearScaleDomainInfo.copy(other._domainInfo), + : _domainInfo = LinearScaleDomainInfo.copy(other._domainInfo), _viewportSettings = - new LinearScaleViewportSettings.copy(other._viewportSettings), + LinearScaleViewportSettings.copy(other._viewportSettings), rangeBandConfig = other.rangeBandConfig, stepSizeConfig = other.stepSizeConfig; @override - LinearScale copy() => new LinearScale._copy(this); + LinearScale copy() => LinearScale._copy(this); // // Domain methods @@ -91,8 +91,8 @@ class LinearScale implements NumericScale { } @override - NumericExtents get dataExtent => new NumericExtents( - _domainInfo.dataDomainStart, _domainInfo.dataDomainEnd); + NumericExtents get dataExtent => + NumericExtents(_domainInfo.dataDomainStart, _domainInfo.dataDomainEnd); @override num get minimumDomainStep => _domainInfo.minimumDetectedDomainStep; diff --git a/web/charts/common/lib/src/chart/cartesian/axis/linear/linear_scale_domain_info.dart b/web/charts/common/lib/src/chart/cartesian/axis/linear/linear_scale_domain_info.dart index b1836c47b..6e37515b0 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/linear/linear_scale_domain_info.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/linear/linear_scale_domain_info.dart @@ -113,6 +113,6 @@ class LinearScaleDomainInfo { tmpDomainEnd = _dataDomainEnd.isFinite ? _dataDomainEnd : 1.0; } - return new NumericExtents(tmpDomainStart, tmpDomainEnd); + return NumericExtents(tmpDomainStart, tmpDomainEnd); } } diff --git a/web/charts/common/lib/src/chart/cartesian/axis/linear/linear_scale_viewport.dart b/web/charts/common/lib/src/chart/cartesian/axis/linear/linear_scale_viewport.dart index 198d06b8e..d01d6034e 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/linear/linear_scale_viewport.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/linear/linear_scale_viewport.dart @@ -135,7 +135,7 @@ class LinearScaleViewportSettings { double viewportStart = (-1.0 * translatePx / scaleScalingFactor) + domainInfo.extent.min; _domainExtent = - new NumericExtents(viewportStart, viewportStart + viewportDomainDiff); + NumericExtents(viewportStart, viewportStart + viewportDomainDiff); } } } diff --git a/web/charts/common/lib/src/chart/cartesian/axis/numeric_extents.dart b/web/charts/common/lib/src/chart/cartesian/axis/numeric_extents.dart index f8e4234b1..fc923e331 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/numeric_extents.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/numeric_extents.dart @@ -41,7 +41,7 @@ class NumericExtents implements Extents { max = value; } } - return new NumericExtents(min, max); + return NumericExtents(min, max); } /// Returns the union of this and other. @@ -50,13 +50,13 @@ class NumericExtents implements Extents { if (max >= other.max) { return this; } else { - return new NumericExtents(min, other.max); + return NumericExtents(min, other.max); } } else { if (other.max >= max) { return other; } else { - return new NumericExtents(other.min, max); + return NumericExtents(other.min, max); } } } @@ -100,6 +100,6 @@ class NumericExtents implements Extents { String toString() => 'Extent($min, $max)'; static const NumericExtents unbounded = - const NumericExtents(double.negativeInfinity, double.infinity); - static const NumericExtents empty = const NumericExtents(0.0, 0.0); + NumericExtents(double.negativeInfinity, double.infinity); + static const NumericExtents empty = NumericExtents(0.0, 0.0); } diff --git a/web/charts/common/lib/src/chart/cartesian/axis/numeric_tick_provider.dart b/web/charts/common/lib/src/chart/cartesian/axis/numeric_tick_provider.dart index 02d174696..56c177e24 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/numeric_tick_provider.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/numeric_tick_provider.dart @@ -49,7 +49,7 @@ class NumericTickProvider extends BaseTickProvider { static const MIN_DIPS_BETWEEN_TICKS = 25; /// Potential steps available to the baseTen value of the data. - static const DEFAULT_STEPS = const [ + static const DEFAULT_STEPS = [ 0.01, 0.02, 0.025, @@ -187,8 +187,8 @@ class NumericTickProvider extends BaseTickProvider { assert(steps != null && steps.isNotEmpty); steps.sort(); - final stepSet = new Set.from(steps); - _allowedSteps = new List(stepSet.length * 3); + final stepSet = Set.from(steps); + _allowedSteps = List(stepSet.length * 3); int stepIndex = 0; for (double step in stepSet) { assert(1.0 <= step && step < 10.0); @@ -220,7 +220,7 @@ class NumericTickProvider extends BaseTickProvider { : (tickHint.start / stepSize).ceil())); final tickStart = (scale.viewportDomain.min / stepSize).ceil() * stepSize + tickZeroShift; - final stepInfo = new _TickStepInfo(stepSize.abs(), tickStart); + final stepInfo = _TickStepInfo(stepSize.abs(), tickStart); final tickValues = _getTickValues(stepInfo, tickHint.tickCount); // Create ticks from domain values. @@ -299,8 +299,7 @@ class NumericTickProvider extends BaseTickProvider { final tickValues = _getTickValues(stepInfo, tickCount); if (viewportExtensionEnabled) { - mutableScale.viewportDomain = - new NumericExtents(firstTick, lastTick); + mutableScale.viewportDomain = NumericExtents(firstTick, lastTick); } // Create ticks from domain values. @@ -434,7 +433,7 @@ class NumericTickProvider extends BaseTickProvider { !(low < 0 && high > 0 && (negativeRegionCount == 0 || positiveRegionCount == 0)), - 'Numeric tick provider cannot generate ${tickCount} ' + 'Numeric tick provider cannot generate $tickCount ' 'ticks when the axis range contains both positive and negative ' 'values. A minimum of three ticks are required to include zero.'); @@ -467,7 +466,7 @@ class NumericTickProvider extends BaseTickProvider { double stepStart = negativeRegionCount > 0 ? (-1 * tmpStepSize * negativeRegionCount) : 0.0; - return new _TickStepInfo(tmpStepSize, stepStart); + return _TickStepInfo(tmpStepSize, stepStart); } } } else { @@ -487,16 +486,16 @@ class NumericTickProvider extends BaseTickProvider { // But wait until the last step to prevent the cost of the formatter. double tmpStepStart = _getStepLessThan(low, tmpStepSize); if (tmpStepStart + (tmpStepSize * regionCount) >= high) { - return new _TickStepInfo(tmpStepSize, tmpStepStart); + return _TickStepInfo(tmpStepSize, tmpStepStart); } } } - return new _TickStepInfo(1.0, low.floorToDouble()); + return _TickStepInfo(1.0, low.floorToDouble()); } List _getTickValues(_TickStepInfo steps, int tickCount) { - final tickValues = new List(tickCount); + final tickValues = List(tickCount); // We have our size and start, assign all the tick values to the given array. for (int i = 0; i < tickCount; i++) { tickValues[i] = dataToAxisUnitConverter.invert( diff --git a/web/charts/common/lib/src/chart/cartesian/axis/ordinal_extents.dart b/web/charts/common/lib/src/chart/cartesian/axis/ordinal_extents.dart index 8f5c2637e..c5012e6f5 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/ordinal_extents.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/ordinal_extents.dart @@ -27,11 +27,11 @@ class OrdinalExtents extends Extents { /// [D] is the domain class type for the elements in the extents. OrdinalExtents(List range) : _range = range { // This asserts that all elements in [range] are unique. - final uniqueValueCount = new HashSet.from(_range).length; + final uniqueValueCount = HashSet.from(_range).length; assert(uniqueValueCount == range.length); } - factory OrdinalExtents.all(List range) => new OrdinalExtents(range); + factory OrdinalExtents.all(List range) => OrdinalExtents(range); bool get isEmpty => _range.isEmpty; diff --git a/web/charts/common/lib/src/chart/cartesian/axis/ordinal_scale_domain_info.dart b/web/charts/common/lib/src/chart/cartesian/axis/ordinal_scale_domain_info.dart index 58963da60..e1729cbe0 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/ordinal_scale_domain_info.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/ordinal_scale_domain_info.dart @@ -25,7 +25,7 @@ class OrdinalScaleDomainInfo { int _index = 0; /// A map of domain value and the order it was added. - final _domainsToOrder = new HashMap(); + final _domainsToOrder = HashMap(); /// A list of domain values kept to support [getDomainAtIndex]. final _domainList = []; @@ -33,7 +33,7 @@ class OrdinalScaleDomainInfo { OrdinalScaleDomainInfo(); OrdinalScaleDomainInfo copy() { - return new OrdinalScaleDomainInfo() + return OrdinalScaleDomainInfo() .._domainsToOrder.addAll(_domainsToOrder) .._index = _index .._domainList.addAll(_domainList); @@ -64,7 +64,7 @@ class OrdinalScaleDomainInfo { bool get isEmpty => (_index == 0); bool get isNotEmpty => !isEmpty; - OrdinalExtents get extent => new OrdinalExtents.all(_domainList); + OrdinalExtents get extent => OrdinalExtents.all(_domainList); int get size => _index; diff --git a/web/charts/common/lib/src/chart/cartesian/axis/simple_ordinal_scale.dart b/web/charts/common/lib/src/chart/cartesian/axis/simple_ordinal_scale.dart index 9440c4e81..4c882d2f8 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/simple_ordinal_scale.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/simple_ordinal_scale.dart @@ -32,12 +32,12 @@ import 'scale.dart' /// width of the bar is [rangeBand] and the position of the bar is retrieved /// by [[]]. class SimpleOrdinalScale implements OrdinalScale { - final _stepSizeConfig = new StepSizeConfig.auto(); + final _stepSizeConfig = StepSizeConfig.auto(); OrdinalScaleDomainInfo _domain; - ScaleOutputExtent _range = new ScaleOutputExtent(0, 1); + ScaleOutputExtent _range = ScaleOutputExtent(0, 1); double _viewportScale = 1.0; double _viewportTranslatePx = 0.0; - RangeBandConfig _rangeBandConfig = new RangeBandConfig.styleAssignedPercent(); + RangeBandConfig _rangeBandConfig = RangeBandConfig.styleAssignedPercent(); bool _scaleChanged = true; double _cachedStepSizePixels; @@ -47,11 +47,11 @@ class SimpleOrdinalScale implements OrdinalScale { int _viewportDataSize; String _viewportStartingDomain; - SimpleOrdinalScale() : _domain = new OrdinalScaleDomainInfo(); + SimpleOrdinalScale() : _domain = OrdinalScaleDomainInfo(); SimpleOrdinalScale._copy(SimpleOrdinalScale other) : _domain = other._domain.copy(), - _range = new ScaleOutputExtent(other._range.start, other._range.end), + _range = ScaleOutputExtent(other._range.start, other._range.end), _viewportScale = other._viewportScale, _viewportTranslatePx = other._viewportTranslatePx, _rangeBandConfig = other._rangeBandConfig; @@ -80,12 +80,12 @@ class SimpleOrdinalScale implements OrdinalScale { @override set rangeBandConfig(RangeBandConfig barGroupWidthConfig) { if (barGroupWidthConfig == null) { - throw new ArgumentError.notNull('RangeBandConfig must not be null.'); + throw ArgumentError.notNull('RangeBandConfig must not be null.'); } if (barGroupWidthConfig.type == RangeBandType.fixedDomain || barGroupWidthConfig.type == RangeBandType.none) { - throw new ArgumentError( + throw ArgumentError( 'barGroupWidthConfig must not be NONE or FIXED_DOMAIN'); } @@ -99,7 +99,7 @@ class SimpleOrdinalScale implements OrdinalScale { @override set stepSizeConfig(StepSizeConfig config) { if (config != null && config.type != StepSizeType.autoDetect) { - throw new ArgumentError( + throw ArgumentError( 'Ordinal scales only support StepSizeConfig of type Auto'); } // Nothing is set because only auto is supported. @@ -205,7 +205,7 @@ class SimpleOrdinalScale implements OrdinalScale { if (startingDomain != null && viewportDataSize != null && viewportDataSize <= 0) { - throw new ArgumentError('viewportDataSize can' 't be less than 1.'); + throw ArgumentError('viewportDataSize can' 't be less than 1.'); } _scaleChanged = true; @@ -280,7 +280,7 @@ class SimpleOrdinalScale implements OrdinalScale { } @override - SimpleOrdinalScale copy() => new SimpleOrdinalScale._copy(this); + SimpleOrdinalScale copy() => SimpleOrdinalScale._copy(this); void _updateCachedFields( double stepSizePixels, double rangeBandPixels, double rangeBandShift) { @@ -335,7 +335,7 @@ class SimpleOrdinalScale implements OrdinalScale { case RangeBandType.fixedDomain: case RangeBandType.none: default: - throw new StateError('RangeBandType must not be NONE or FIXED_DOMAIN'); + throw StateError('RangeBandType must not be NONE or FIXED_DOMAIN'); break; } diff --git a/web/charts/common/lib/src/chart/cartesian/axis/spec/axis_spec.dart b/web/charts/common/lib/src/chart/cartesian/axis/spec/axis_spec.dart index 6127c7a9d..0d7b3b42b 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/spec/axis_spec.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/spec/axis_spec.dart @@ -44,7 +44,7 @@ class AxisSpec { TickFormatterSpec tickFormatterSpec, bool showAxisLine, }) { - return new AxisSpec( + return AxisSpec( renderSpec: renderSpec ?? other.renderSpec, tickProviderSpec: tickProviderSpec ?? other.tickProviderSpec, tickFormatterSpec: tickFormatterSpec ?? other.tickFormatterSpec, diff --git a/web/charts/common/lib/src/chart/cartesian/axis/spec/bucketing_axis_spec.dart b/web/charts/common/lib/src/chart/cartesian/axis/spec/bucketing_axis_spec.dart index abdf4ac4b..0f5e5065f 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/spec/bucketing_axis_spec.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/spec/bucketing_axis_spec.dart @@ -80,8 +80,8 @@ class BucketingAxisSpec extends NumericAxisSpec { tickProviderSpec: tickProviderSpec ?? const BucketingNumericTickProviderSpec(), tickFormatterSpec: tickFormatterSpec ?? - new BasicNumericTickFormatterSpec.fromNumberFormat( - new NumberFormat.percentPattern()), + BasicNumericTickFormatterSpec.fromNumberFormat( + NumberFormat.percentPattern()), showAxisLine: showAxisLine, viewport: viewport ?? const NumericExtents(0.0, 1.0)); @@ -104,7 +104,7 @@ class BucketingAxisSpec extends NumericAxisSpec { } @override - BucketingNumericAxis createAxis() => new BucketingNumericAxis(); + BucketingNumericAxis createAxis() => BucketingNumericAxis(); @override bool operator ==(Object other) => @@ -155,7 +155,7 @@ class BucketingNumericTickProviderSpec extends BasicNumericTickProviderSpec { @override BucketingNumericTickProvider createTickProvider(ChartContext context) { - final provider = new BucketingNumericTickProvider() + final provider = BucketingNumericTickProvider() ..zeroBound = zeroBound ..dataIsInWholeNumbers = dataIsInWholeNumbers; diff --git a/web/charts/common/lib/src/chart/cartesian/axis/spec/date_time_axis_spec.dart b/web/charts/common/lib/src/chart/cartesian/axis/spec/date_time_axis_spec.dart index 8c9969dd8..37716147d 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/spec/date_time_axis_spec.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/spec/date_time_axis_spec.dart @@ -85,7 +85,7 @@ class DateTimeAxisSpec extends AxisSpec { /// Creates a [DateTimeAxis]. This should be called in place of createAxis. DateTimeAxis createDateTimeAxis(DateTimeFactory dateTimeFactory) => - new DateTimeAxis(dateTimeFactory); + DateTimeAxis(dateTimeFactory); @override bool operator ==(Object other) => @@ -121,10 +121,10 @@ class AutoDateTimeTickProviderSpec implements DateTimeTickProviderSpec { @override AutoAdjustingDateTimeTickProvider createTickProvider(ChartContext context) { if (includeTime) { - return new AutoAdjustingDateTimeTickProvider.createDefault( + return AutoAdjustingDateTimeTickProvider.createDefault( context.dateTimeFactory); } else { - return new AutoAdjustingDateTimeTickProvider.createWithoutTime( + return AutoAdjustingDateTimeTickProvider.createWithoutTime( context.dateTimeFactory); } } @@ -151,8 +151,8 @@ class DayTickProviderSpec implements DateTimeTickProviderSpec { /// when searching for the appropriate tick intervals. @override AutoAdjustingDateTimeTickProvider createTickProvider(ChartContext context) { - return new AutoAdjustingDateTimeTickProvider.createWith([ - new TimeRangeTickProviderImpl(new DayTimeStepper(context.dateTimeFactory, + return AutoAdjustingDateTimeTickProvider.createWith([ + TimeRangeTickProviderImpl(DayTimeStepper(context.dateTimeFactory, allowedTickIncrements: increments)) ]); } @@ -175,7 +175,7 @@ class DateTimeEndPointsTickProviderSpec implements DateTimeTickProviderSpec { /// two end points of the axis range @override EndPointsTickProvider createTickProvider(ChartContext context) { - return new EndPointsTickProvider(); + return EndPointsTickProvider(); } @override @@ -191,7 +191,7 @@ class StaticDateTimeTickProviderSpec implements DateTimeTickProviderSpec { @override StaticTickProvider createTickProvider(ChartContext context) => - new StaticTickProvider(tickSpecs); + StaticTickProvider(tickSpecs); @override bool operator ==(Object other) => @@ -285,19 +285,19 @@ class AutoDateTimeTickFormatterSpec implements DateTimeTickFormatterSpec { _makeFormatter(year, CalendarField.year, context); } - return new DateTimeTickFormatter(context.dateTimeFactory, overrides: map); + return DateTimeTickFormatter(context.dateTimeFactory, overrides: map); } TimeTickFormatterImpl _makeFormatter(TimeFormatterSpec spec, CalendarField transitionField, ChartContext context) { if (spec.noonFormat != null) { - return new HourTickFormatter( + return HourTickFormatter( dateTimeFactory: context.dateTimeFactory, simpleFormat: spec.format, transitionFormat: spec.transitionFormat, noonFormat: spec.noonFormat); } else { - return new TimeTickFormatterImpl( + return TimeTickFormatterImpl( dateTimeFactory: context.dateTimeFactory, simpleFormat: spec.format, transitionFormat: spec.transitionFormat, diff --git a/web/charts/common/lib/src/chart/cartesian/axis/spec/numeric_axis_spec.dart b/web/charts/common/lib/src/chart/cartesian/axis/spec/numeric_axis_spec.dart index cb8ad80fe..95f1c7a00 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/spec/numeric_axis_spec.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/spec/numeric_axis_spec.dart @@ -68,7 +68,7 @@ class NumericAxisSpec extends AxisSpec { bool showAxisLine, NumericExtents viewport, }) { - return new NumericAxisSpec( + return NumericAxisSpec( renderSpec: renderSpec ?? other.renderSpec, tickProviderSpec: tickProviderSpec ?? other.tickProviderSpec, tickFormatterSpec: tickFormatterSpec ?? other.tickFormatterSpec, @@ -88,7 +88,7 @@ class NumericAxisSpec extends AxisSpec { } @override - NumericAxis createAxis() => new NumericAxis(); + NumericAxis createAxis() => NumericAxis(); @override bool operator ==(Object other) => @@ -141,7 +141,7 @@ class BasicNumericTickProviderSpec implements NumericTickProviderSpec { @override NumericTickProvider createTickProvider(ChartContext context) { - final provider = new NumericTickProvider(); + final provider = NumericTickProvider(); if (zeroBound != null) { provider.zeroBound = zeroBound; } @@ -188,7 +188,7 @@ class NumericEndPointsTickProviderSpec implements NumericTickProviderSpec { @override EndPointsTickProvider createTickProvider(ChartContext context) { - return new EndPointsTickProvider(); + return EndPointsTickProvider(); } @override @@ -204,7 +204,7 @@ class StaticNumericTickProviderSpec implements NumericTickProviderSpec { @override StaticTickProvider createTickProvider(ChartContext context) => - new StaticTickProvider(tickSpecs); + StaticTickProvider(tickSpecs); @override bool operator ==(Object other) => @@ -232,8 +232,8 @@ class BasicNumericTickFormatterSpec implements NumericTickFormatterSpec { @override NumericTickFormatter createTickFormatter(ChartContext context) { return numberFormat != null - ? new NumericTickFormatter.fromNumberFormat(numberFormat) - : new NumericTickFormatter(formatter: formatter); + ? NumericTickFormatter.fromNumberFormat(numberFormat) + : NumericTickFormatter(formatter: formatter); } @override diff --git a/web/charts/common/lib/src/chart/cartesian/axis/spec/ordinal_axis_spec.dart b/web/charts/common/lib/src/chart/cartesian/axis/spec/ordinal_axis_spec.dart index f3443d3f0..b41c73644 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/spec/ordinal_axis_spec.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/spec/ordinal_axis_spec.dart @@ -66,7 +66,7 @@ class OrdinalAxisSpec extends AxisSpec { } @override - OrdinalAxis createAxis() => new OrdinalAxis(); + OrdinalAxis createAxis() => OrdinalAxis(); @override bool operator ==(Object other) { @@ -94,7 +94,7 @@ class BasicOrdinalTickProviderSpec implements OrdinalTickProviderSpec { @override OrdinalTickProvider createTickProvider(ChartContext context) => - new OrdinalTickProvider(); + OrdinalTickProvider(); @override bool operator ==(Object other) => other is BasicOrdinalTickProviderSpec; @@ -112,7 +112,7 @@ class StaticOrdinalTickProviderSpec implements OrdinalTickProviderSpec { @override StaticTickProvider createTickProvider(ChartContext context) => - new StaticTickProvider(tickSpecs); + StaticTickProvider(tickSpecs); @override bool operator ==(Object other) => @@ -129,7 +129,7 @@ class BasicOrdinalTickFormatterSpec implements OrdinalTickFormatterSpec { @override OrdinalTickFormatter createTickFormatter(ChartContext context) => - new OrdinalTickFormatter(); + OrdinalTickFormatter(); @override bool operator ==(Object other) => other is BasicOrdinalTickFormatterSpec; diff --git a/web/charts/common/lib/src/chart/cartesian/axis/spec/percent_axis_spec.dart b/web/charts/common/lib/src/chart/cartesian/axis/spec/percent_axis_spec.dart index d58000dbd..6c9f0cac8 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/spec/percent_axis_spec.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/spec/percent_axis_spec.dart @@ -41,8 +41,8 @@ class PercentAxisSpec extends NumericAxisSpec { tickProviderSpec: tickProviderSpec ?? const BasicNumericTickProviderSpec(dataIsInWholeNumbers: false), tickFormatterSpec: tickFormatterSpec ?? - new BasicNumericTickFormatterSpec.fromNumberFormat( - new NumberFormat.percentPattern()), + BasicNumericTickFormatterSpec.fromNumberFormat( + NumberFormat.percentPattern()), showAxisLine: showAxisLine, viewport: viewport ?? const NumericExtents(0.0, 1.0)); diff --git a/web/charts/common/lib/src/chart/cartesian/axis/static_tick_provider.dart b/web/charts/common/lib/src/chart/cartesian/axis/static_tick_provider.dart index f3fa0af6b..9617bfd1a 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/static_tick_provider.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/static_tick_provider.dart @@ -76,7 +76,7 @@ class StaticTickProvider extends TickProvider { // We still check if the spec is within the viewport because we do not // extend the axis for OrdinalScale. if (scale.compareDomainValueToViewport(spec.value) == 0) { - final tick = new Tick( + final tick = Tick( value: spec.value, textElement: graphicsFactory .createTextElement(spec.label ?? formattedValues[i]), diff --git a/web/charts/common/lib/src/chart/cartesian/axis/tick_formatter.dart b/web/charts/common/lib/src/chart/cartesian/axis/tick_formatter.dart index 5698cc065..9f864b5b3 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/tick_formatter.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/tick_formatter.dart @@ -34,7 +34,7 @@ abstract class SimpleTickFormatterBase implements TickFormatter { @override List format(List tickValues, Map cache, {num stepSize}) => - tickValues.map((D value) { + tickValues.map((value) { // Try to use the cached formats first. String formattedString = cache[value]; if (formattedString == null) { @@ -75,24 +75,24 @@ class NumericTickFormatter extends SimpleTickFormatterBase { /// [formatter] optionally specify a formatter to be used. Defaults to using /// [NumberFormat.decimalPattern] if none is specified. factory NumericTickFormatter({MeasureFormatter formatter}) { - formatter ??= _getFormatter(new NumberFormat.decimalPattern()); - return new NumericTickFormatter._internal(formatter); + formatter ??= _getFormatter(NumberFormat.decimalPattern()); + return NumericTickFormatter._internal(formatter); } /// Constructs a new [NumericTickFormatter] that formats using [numberFormat]. factory NumericTickFormatter.fromNumberFormat(NumberFormat numberFormat) { - return new NumericTickFormatter._internal(_getFormatter(numberFormat)); + return NumericTickFormatter._internal(_getFormatter(numberFormat)); } /// Constructs a new formatter that uses [NumberFormat.compactCurrency]. factory NumericTickFormatter.compactSimpleCurrency() { - return new NumericTickFormatter._internal( - _getFormatter(new NumberFormat.compactCurrency())); + return NumericTickFormatter._internal( + _getFormatter(NumberFormat.compactCurrency())); } /// Returns a [MeasureFormatter] that calls format on [numberFormat]. static MeasureFormatter _getFormatter(NumberFormat numberFormat) { - return (num value) => numberFormat.format(value); + return (value) => numberFormat.format(value); } @override diff --git a/web/charts/common/lib/src/chart/cartesian/axis/tick_provider.dart b/web/charts/common/lib/src/chart/cartesian/axis/tick_provider.dart index 9a6f3ed75..ef36ec03d 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/tick_provider.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/tick_provider.dart @@ -73,7 +73,7 @@ abstract class BaseTickProvider implements TickProvider { for (var i = 0; i < domainValues.length; i++) { final value = domainValues[i]; - final tick = new Tick( + final tick = Tick( value: value, textElement: graphicsFactory.createTextElement(labels[i]), locationPx: scale[value]); diff --git a/web/charts/common/lib/src/chart/cartesian/axis/time/auto_adjusting_date_time_tick_provider.dart b/web/charts/common/lib/src/chart/cartesian/axis/time/auto_adjusting_date_time_tick_provider.dart index 2fbdc4fb2..99a1475a2 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/time/auto_adjusting_date_time_tick_provider.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/time/auto_adjusting_date_time_tick_provider.dart @@ -54,7 +54,7 @@ class AutoAdjustingDateTimeTickProvider implements TickProvider { /// Creates a default [AutoAdjustingDateTimeTickProvider] for day and time. factory AutoAdjustingDateTimeTickProvider.createDefault( DateTimeFactory dateTimeFactory) { - return new AutoAdjustingDateTimeTickProvider._internal([ + return AutoAdjustingDateTimeTickProvider._internal([ createYearTickProvider(dateTimeFactory), createMonthTickProvider(dateTimeFactory), createDayTickProvider(dateTimeFactory), @@ -66,7 +66,7 @@ class AutoAdjustingDateTimeTickProvider implements TickProvider { /// Creates a default [AutoAdjustingDateTimeTickProvider] for day only. factory AutoAdjustingDateTimeTickProvider.createWithoutTime( DateTimeFactory dateTimeFactory) { - return new AutoAdjustingDateTimeTickProvider._internal([ + return AutoAdjustingDateTimeTickProvider._internal([ createYearTickProvider(dateTimeFactory), createMonthTickProvider(dateTimeFactory), createDayTickProvider(dateTimeFactory) @@ -80,11 +80,10 @@ class AutoAdjustingDateTimeTickProvider implements TickProvider { factory AutoAdjustingDateTimeTickProvider.createWith( List potentialTickProviders) { if (potentialTickProviders == null || potentialTickProviders.isEmpty) { - throw new ArgumentError('At least one TimeRangeTickProvider is required'); + throw ArgumentError('At least one TimeRangeTickProvider is required'); } - return new AutoAdjustingDateTimeTickProvider._internal( - potentialTickProviders); + return AutoAdjustingDateTimeTickProvider._internal(potentialTickProviders); } /// Generates a list of ticks for the given data which should not collide @@ -157,21 +156,21 @@ class AutoAdjustingDateTimeTickProvider implements TickProvider { static TimeRangeTickProvider createYearTickProvider( DateTimeFactory dateTimeFactory) => - new TimeRangeTickProviderImpl(new YearTimeStepper(dateTimeFactory)); + TimeRangeTickProviderImpl(YearTimeStepper(dateTimeFactory)); static TimeRangeTickProvider createMonthTickProvider( DateTimeFactory dateTimeFactory) => - new TimeRangeTickProviderImpl(new MonthTimeStepper(dateTimeFactory)); + TimeRangeTickProviderImpl(MonthTimeStepper(dateTimeFactory)); static TimeRangeTickProvider createDayTickProvider( DateTimeFactory dateTimeFactory) => - new TimeRangeTickProviderImpl(new DayTimeStepper(dateTimeFactory)); + TimeRangeTickProviderImpl(DayTimeStepper(dateTimeFactory)); static TimeRangeTickProvider createHourTickProvider( DateTimeFactory dateTimeFactory) => - new TimeRangeTickProviderImpl(new HourTimeStepper(dateTimeFactory)); + TimeRangeTickProviderImpl(HourTimeStepper(dateTimeFactory)); static TimeRangeTickProvider createMinuteTickProvider( DateTimeFactory dateTimeFactory) => - new TimeRangeTickProviderImpl(new MinuteTimeStepper(dateTimeFactory)); + TimeRangeTickProviderImpl(MinuteTimeStepper(dateTimeFactory)); } diff --git a/web/charts/common/lib/src/chart/cartesian/axis/time/base_time_stepper.dart b/web/charts/common/lib/src/chart/cartesian/axis/time/base_time_stepper.dart index 7bba76d31..dcb3def86 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/time/base_time_stepper.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/time/base_time_stepper.dart @@ -57,7 +57,7 @@ abstract class BaseTimeStepper implements TimeStepper { // Keep the steps iterable unless time extent changes, so the same iterator // can be used and reset for different increments. if (_stepsIterable == null || _stepsIterable.timeExtent != timeExtent) { - _stepsIterable = new _TimeStepIteratorFactoryImpl(timeExtent, this); + _stepsIterable = _TimeStepIteratorFactoryImpl(timeExtent, this); } return _stepsIterable; } @@ -67,7 +67,7 @@ abstract class BaseTimeStepper implements TimeStepper { final stepBefore = getStepTimeBeforeInclusive(timeExtent.start, 1); final stepAfter = getStepTimeAfterInclusive(timeExtent.end, 1); - return new DateTimeExtents(start: stepBefore, end: stepAfter); + return DateTimeExtents(start: stepBefore, end: stepAfter); } DateTime getStepTimeAfterInclusive(DateTime time, int tickIncrement) { @@ -127,8 +127,8 @@ class _TimeStepIteratorFactoryImpl extends TimeStepIteratorFactory { DateTimeExtents timeExtent, BaseTimeStepper stepper) { final startTime = timeExtent.start; final endTime = timeExtent.end; - return new _TimeStepIteratorFactoryImpl._internal( - new _TimeStepIteratorImpl(startTime, endTime, stepper), timeExtent); + return _TimeStepIteratorFactoryImpl._internal( + _TimeStepIteratorImpl(startTime, endTime, stepper), timeExtent); } @override diff --git a/web/charts/common/lib/src/chart/cartesian/axis/time/date_time_axis.dart b/web/charts/common/lib/src/chart/cartesian/axis/time/date_time_axis.dart index 6d32958c2..99e067756 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/time/date_time_axis.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/time/date_time_axis.dart @@ -28,11 +28,10 @@ class DateTimeAxis extends Axis { {TickProvider tickProvider, TickFormatter tickFormatter}) : super( tickProvider: tickProvider ?? - new AutoAdjustingDateTimeTickProvider.createDefault( - dateTimeFactory), + AutoAdjustingDateTimeTickProvider.createDefault(dateTimeFactory), tickFormatter: - tickFormatter ?? new DateTimeTickFormatter(dateTimeFactory), - scale: new DateTimeScale(dateTimeFactory), + tickFormatter ?? DateTimeTickFormatter(dateTimeFactory), + scale: DateTimeScale(dateTimeFactory), ); void setScaleViewport(DateTimeExtents viewport) { diff --git a/web/charts/common/lib/src/chart/cartesian/axis/time/date_time_scale.dart b/web/charts/common/lib/src/chart/cartesian/axis/time/date_time_scale.dart index f0312a078..c02bc45ab 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/time/date_time_scale.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/time/date_time_scale.dart @@ -27,7 +27,7 @@ class DateTimeScale extends MutableScale { final DateTimeFactory dateTimeFactory; final LinearScale _linearScale; - DateTimeScale(this.dateTimeFactory) : _linearScale = new LinearScale(); + DateTimeScale(this.dateTimeFactory) : _linearScale = LinearScale(); DateTimeScale._copy(DateTimeScale other) : dateTimeFactory = other.dateTimeFactory, @@ -82,7 +82,7 @@ class DateTimeScale extends MutableScale { DateTimeExtents get viewportDomain { final extents = _linearScale.viewportDomain; - return new DateTimeExtents( + return DateTimeExtents( start: dateTimeFactory .createDateTimeFromMilliSecondsSinceEpoch(extents.min.toInt()), end: dateTimeFactory @@ -90,13 +90,13 @@ class DateTimeScale extends MutableScale { } set viewportDomain(DateTimeExtents extents) { - _linearScale.viewportDomain = new NumericExtents( + _linearScale.viewportDomain = NumericExtents( extents.start.millisecondsSinceEpoch, extents.end.millisecondsSinceEpoch); } @override - DateTimeScale copy() => new DateTimeScale._copy(this); + DateTimeScale copy() => DateTimeScale._copy(this); @override double get viewportTranslatePx => _linearScale.viewportTranslatePx; diff --git a/web/charts/common/lib/src/chart/cartesian/axis/time/date_time_tick_formatter.dart b/web/charts/common/lib/src/chart/cartesian/axis/time/date_time_tick_formatter.dart index 57408965c..4bf7d12c3 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/time/date_time_tick_formatter.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/time/date_time_tick_formatter.dart @@ -56,27 +56,27 @@ class DateTimeTickFormatter implements TickFormatter { factory DateTimeTickFormatter(DateTimeFactory dateTimeFactory, {Map overrides}) { final Map map = { - MINUTE: new TimeTickFormatterImpl( + MINUTE: TimeTickFormatterImpl( dateTimeFactory: dateTimeFactory, simpleFormat: 'mm', transitionFormat: 'h mm', transitionField: CalendarField.hourOfDay), - HOUR: new HourTickFormatter( + HOUR: HourTickFormatter( dateTimeFactory: dateTimeFactory, simpleFormat: 'h', transitionFormat: 'MMM d ha', noonFormat: 'ha'), - 23 * HOUR: new TimeTickFormatterImpl( + 23 * HOUR: TimeTickFormatterImpl( dateTimeFactory: dateTimeFactory, simpleFormat: 'd', transitionFormat: 'MMM d', transitionField: CalendarField.month), - 28 * DAY: new TimeTickFormatterImpl( + 28 * DAY: TimeTickFormatterImpl( dateTimeFactory: dateTimeFactory, simpleFormat: 'MMM', transitionFormat: 'MMM yyyy', transitionField: CalendarField.year), - 364 * DAY: new TimeTickFormatterImpl( + 364 * DAY: TimeTickFormatterImpl( dateTimeFactory: dateTimeFactory, simpleFormat: 'yyyy', transitionFormat: 'yyyy', @@ -88,23 +88,23 @@ class DateTimeTickFormatter implements TickFormatter { map.addAll(overrides); } - return new DateTimeTickFormatter._internal(map); + return DateTimeTickFormatter._internal(map); } /// Creates a [DateTimeTickFormatter] without the time component. factory DateTimeTickFormatter.withoutTime(DateTimeFactory dateTimeFactory) { - return new DateTimeTickFormatter._internal({ - 23 * HOUR: new TimeTickFormatterImpl( + return DateTimeTickFormatter._internal({ + 23 * HOUR: TimeTickFormatterImpl( dateTimeFactory: dateTimeFactory, simpleFormat: 'd', transitionFormat: 'MMM d', transitionField: CalendarField.month), - 28 * DAY: new TimeTickFormatterImpl( + 28 * DAY: TimeTickFormatterImpl( dateTimeFactory: dateTimeFactory, simpleFormat: 'MMM', transitionFormat: 'MMM yyyy', transitionField: CalendarField.year), - 365 * DAY: new TimeTickFormatterImpl( + 365 * DAY: TimeTickFormatterImpl( dateTimeFactory: dateTimeFactory, simpleFormat: 'yyyy', transitionFormat: 'yyyy', @@ -119,7 +119,7 @@ class DateTimeTickFormatter implements TickFormatter { /// /// [formatter] The format for all ticks. factory DateTimeTickFormatter.uniform(TimeTickFormatter formatter) { - return new DateTimeTickFormatter._internal({ANY: formatter}); + return DateTimeTickFormatter._internal({ANY: formatter}); } /// Creates a [DateTimeTickFormatter] that formats ticks with [formatters]. @@ -129,10 +129,10 @@ class DateTimeTickFormatter implements TickFormatter { Map formatters) { // Formatters must be non empty. if (formatters == null || formatters.isEmpty) { - throw new ArgumentError('At least one TimeTickFormatter is required.'); + throw ArgumentError('At least one TimeTickFormatter is required.'); } - return new DateTimeTickFormatter._internal(formatters); + return DateTimeTickFormatter._internal(formatters); } DateTimeTickFormatter._internal(this._timeFormatters) { @@ -202,7 +202,7 @@ class DateTimeTickFormatter implements TickFormatter { // Only need to check the first value, because the values after are expected // to be greater. if (prev <= 0) { - throw new ArgumentError('Formatter keys must be positive'); + throw ArgumentError('Formatter keys must be positive'); } while (valuesIterator.moveNext() && isSorted) { @@ -211,7 +211,7 @@ class DateTimeTickFormatter implements TickFormatter { } if (!isSorted) { - throw new ArgumentError( + throw ArgumentError( 'Formatters must be sorted with keys in increasing order'); } } diff --git a/web/charts/common/lib/src/chart/cartesian/axis/time/day_time_stepper.dart b/web/charts/common/lib/src/chart/cartesian/axis/time/day_time_stepper.dart index efd52c4c5..ba7f88909 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/time/day_time_stepper.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/time/day_time_stepper.dart @@ -19,7 +19,7 @@ import 'base_time_stepper.dart' show BaseTimeStepper; /// Day stepper. class DayTimeStepper extends BaseTimeStepper { // TODO: Remove the 14 day increment if we add week stepper. - static const _defaultIncrements = const [1, 2, 3, 7, 14]; + static const _defaultIncrements = [1, 2, 3, 7, 14]; static const _hoursInDay = 24; final List _allowedTickIncrements; @@ -39,7 +39,7 @@ class DayTimeStepper extends BaseTimeStepper { // All increments must be > 0. assert(allowedTickIncrements.any((increment) => increment <= 0) == false); - return new DayTimeStepper._internal(dateTimeFactory, allowedTickIncrements); + return DayTimeStepper._internal(dateTimeFactory, allowedTickIncrements); } @override @@ -60,7 +60,7 @@ class DayTimeStepper extends BaseTimeStepper { final dayRemainder = (time.day - 1) % tickIncrement; // Subtract an extra hour in case stepping through a daylight saving change. final dayBefore = dayRemainder > 0 - ? time.subtract(new Duration(hours: (_hoursInDay * dayRemainder) - 1)) + ? time.subtract(Duration(hours: (_hoursInDay * dayRemainder) - 1)) : time; // Explicitly leaving off hours and beyond to truncate to start of day. final stepBefore = dateTimeFactory.createDateTime( @@ -73,7 +73,7 @@ class DayTimeStepper extends BaseTimeStepper { DateTime getNextStepTime(DateTime time, int tickIncrement) { // Add an extra hour in case stepping through a daylight saving change. final stepAfter = - time.add(new Duration(hours: (_hoursInDay * tickIncrement) + 1)); + time.add(Duration(hours: (_hoursInDay * tickIncrement) + 1)); // Explicitly leaving off hours and beyond to truncate to start of day. return dateTimeFactory.createDateTime( stepAfter.year, stepAfter.month, stepAfter.day); diff --git a/web/charts/common/lib/src/chart/cartesian/axis/time/hour_time_stepper.dart b/web/charts/common/lib/src/chart/cartesian/axis/time/hour_time_stepper.dart index 7e66a1360..c259fc830 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/time/hour_time_stepper.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/time/hour_time_stepper.dart @@ -18,7 +18,7 @@ import 'base_time_stepper.dart' show BaseTimeStepper; /// Hour stepper. class HourTimeStepper extends BaseTimeStepper { - static const _defaultIncrements = const [1, 2, 3, 4, 6, 12, 24]; + static const _defaultIncrements = [1, 2, 3, 4, 6, 12, 24]; static const _hoursInDay = 24; static const _millisecondsInHour = 3600 * 1000; @@ -41,8 +41,7 @@ class HourTimeStepper extends BaseTimeStepper { .any((increment) => increment <= 0 || increment > 24) == false); - return new HourTimeStepper._internal( - dateTimeFactory, allowedTickIncrements); + return HourTimeStepper._internal(dateTimeFactory, allowedTickIncrements); } @override @@ -60,7 +59,7 @@ class HourTimeStepper extends BaseTimeStepper { DateTime getStepTimeBeforeInclusive(DateTime time, int tickIncrement) { final nextDay = dateTimeFactory .createDateTime(time.year, time.month, time.day) - .add(new Duration(hours: _hoursInDay + 1)); + .add(Duration(hours: _hoursInDay + 1)); final nextDayStart = dateTimeFactory.createDateTime( nextDay.year, nextDay.month, nextDay.day); @@ -83,6 +82,6 @@ class HourTimeStepper extends BaseTimeStepper { /// [time] is expected to be a [DateTime] with the hour at start of the hour. @override DateTime getNextStepTime(DateTime time, int tickIncrement) { - return time.add(new Duration(hours: tickIncrement)); + return time.add(Duration(hours: tickIncrement)); } } diff --git a/web/charts/common/lib/src/chart/cartesian/axis/time/minute_time_stepper.dart b/web/charts/common/lib/src/chart/cartesian/axis/time/minute_time_stepper.dart index da362a2bd..0b1b79227 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/time/minute_time_stepper.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/time/minute_time_stepper.dart @@ -18,7 +18,7 @@ import 'base_time_stepper.dart'; /// Minute stepper where ticks generated aligns with the hour. class MinuteTimeStepper extends BaseTimeStepper { - static const _defaultIncrements = const [5, 10, 15, 20, 30]; + static const _defaultIncrements = [5, 10, 15, 20, 30]; static const _millisecondsInMinute = 60 * 1000; final List _allowedTickIncrements; @@ -40,8 +40,7 @@ class MinuteTimeStepper extends BaseTimeStepper { .any((increment) => increment <= 0 || increment > 60) == false); - return new MinuteTimeStepper._internal( - dateTimeFactory, allowedTickIncrements); + return MinuteTimeStepper._internal(dateTimeFactory, allowedTickIncrements); } @override @@ -73,6 +72,6 @@ class MinuteTimeStepper extends BaseTimeStepper { @override DateTime getNextStepTime(DateTime time, int tickIncrement) { - return time.add(new Duration(minutes: tickIncrement)); + return time.add(Duration(minutes: tickIncrement)); } } diff --git a/web/charts/common/lib/src/chart/cartesian/axis/time/month_time_stepper.dart b/web/charts/common/lib/src/chart/cartesian/axis/time/month_time_stepper.dart index 86dd78d83..300f4689b 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/time/month_time_stepper.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/time/month_time_stepper.dart @@ -18,7 +18,7 @@ import 'base_time_stepper.dart' show BaseTimeStepper; /// Month stepper. class MonthTimeStepper extends BaseTimeStepper { - static const _defaultIncrements = const [1, 2, 3, 4, 6, 12]; + static const _defaultIncrements = [1, 2, 3, 4, 6, 12]; final List _allowedTickIncrements; @@ -37,8 +37,7 @@ class MonthTimeStepper extends BaseTimeStepper { // All increments must be > 0. assert(allowedTickIncrements.any((increment) => increment <= 0) == false); - return new MonthTimeStepper._internal( - dateTimeFactory, allowedTickIncrements); + return MonthTimeStepper._internal(dateTimeFactory, allowedTickIncrements); } @override diff --git a/web/charts/common/lib/src/chart/cartesian/axis/time/year_time_stepper.dart b/web/charts/common/lib/src/chart/cartesian/axis/time/year_time_stepper.dart index e9a39e135..71787ca43 100644 --- a/web/charts/common/lib/src/chart/cartesian/axis/time/year_time_stepper.dart +++ b/web/charts/common/lib/src/chart/cartesian/axis/time/year_time_stepper.dart @@ -18,7 +18,7 @@ import 'base_time_stepper.dart' show BaseTimeStepper; /// Year stepper. class YearTimeStepper extends BaseTimeStepper { - static const _defaultIncrements = const [1, 2, 5, 10, 50, 100, 500, 1000]; + static const _defaultIncrements = [1, 2, 5, 10, 50, 100, 500, 1000]; final List _allowedTickIncrements; @@ -37,8 +37,7 @@ class YearTimeStepper extends BaseTimeStepper { // All increments must be > 0. assert(allowedTickIncrements.any((increment) => increment <= 0) == false); - return new YearTimeStepper._internal( - dateTimeFactory, allowedTickIncrements); + return YearTimeStepper._internal(dateTimeFactory, allowedTickIncrements); } @override diff --git a/web/charts/common/lib/src/chart/cartesian/cartesian_chart.dart b/web/charts/common/lib/src/chart/cartesian/cartesian_chart.dart index e1c02dfc9..44d4d4f98 100644 --- a/web/charts/common/lib/src/chart/cartesian/cartesian_chart.dart +++ b/web/charts/common/lib/src/chart/cartesian/cartesian_chart.dart @@ -55,14 +55,14 @@ class NumericCartesianChart extends CartesianChart { : super( vertical: vertical, layoutConfig: layoutConfig, - domainAxis: new NumericAxis(), + domainAxis: NumericAxis(), primaryMeasureAxis: primaryMeasureAxis, secondaryMeasureAxis: secondaryMeasureAxis, disjointMeasureAxes: disjointMeasureAxes); @protected void initDomainAxis() { - _domainAxis.tickDrawStrategy = new SmallTickRendererSpec() + _domainAxis.tickDrawStrategy = SmallTickRendererSpec() .createDrawStrategy(context, graphicsFactory); } } @@ -77,7 +77,7 @@ class OrdinalCartesianChart extends CartesianChart { : super( vertical: vertical, layoutConfig: layoutConfig, - domainAxis: new OrdinalAxis(), + domainAxis: OrdinalAxis(), primaryMeasureAxis: primaryMeasureAxis, secondaryMeasureAxis: secondaryMeasureAxis, disjointMeasureAxes: disjointMeasureAxes); @@ -85,17 +85,17 @@ class OrdinalCartesianChart extends CartesianChart { @protected void initDomainAxis() { _domainAxis - ..tickDrawStrategy = new SmallTickRendererSpec() + ..tickDrawStrategy = SmallTickRendererSpec() .createDrawStrategy(context, graphicsFactory); } } abstract class CartesianChart extends BaseChart { - static final _defaultLayoutConfig = new LayoutConfig( - topSpec: new MarginSpec.fromPixel(minPixel: 20), - bottomSpec: new MarginSpec.fromPixel(minPixel: 20), - leftSpec: new MarginSpec.fromPixel(minPixel: 20), - rightSpec: new MarginSpec.fromPixel(minPixel: 20), + static final _defaultLayoutConfig = LayoutConfig( + topSpec: MarginSpec.fromPixel(minPixel: 20), + bottomSpec: MarginSpec.fromPixel(minPixel: 20), + leftSpec: MarginSpec.fromPixel(minPixel: 20), + rightSpec: MarginSpec.fromPixel(minPixel: 20), ); bool vertical; @@ -148,8 +148,8 @@ abstract class CartesianChart extends BaseChart { : vertical = vertical ?? true, // [domainAxis] will be set to the new axis in [configurationChanged]. _newDomainAxis = domainAxis, - _primaryMeasureAxis = primaryMeasureAxis ?? new NumericAxis(), - _secondaryMeasureAxis = secondaryMeasureAxis ?? new NumericAxis(), + _primaryMeasureAxis = primaryMeasureAxis ?? NumericAxis(), + _secondaryMeasureAxis = secondaryMeasureAxis ?? NumericAxis(), _disjointMeasureAxes = disjointMeasureAxes ?? {}, super(layoutConfig: layoutConfig ?? _defaultLayoutConfig) { // As a convenience for chart configuration, set the paint order on any axis @@ -157,7 +157,7 @@ abstract class CartesianChart extends BaseChart { _primaryMeasureAxis.layoutPaintOrder ??= LayoutViewPaintOrder.measureAxis; _secondaryMeasureAxis.layoutPaintOrder ??= LayoutViewPaintOrder.measureAxis; - _disjointMeasureAxes.forEach((String axisId, NumericAxis axis) { + _disjointMeasureAxes.forEach((axisId, axis) { axis.layoutPaintOrder ??= LayoutViewPaintOrder.measureAxis; }); } @@ -166,17 +166,16 @@ abstract class CartesianChart extends BaseChart { super.init(context, graphicsFactory); _primaryMeasureAxis.context = context; - _primaryMeasureAxis.tickDrawStrategy = new GridlineRendererSpec() + _primaryMeasureAxis.tickDrawStrategy = GridlineRendererSpec() .createDrawStrategy(context, graphicsFactory); _secondaryMeasureAxis.context = context; - _secondaryMeasureAxis.tickDrawStrategy = new GridlineRendererSpec() + _secondaryMeasureAxis.tickDrawStrategy = GridlineRendererSpec() .createDrawStrategy(context, graphicsFactory); - _disjointMeasureAxes.forEach((String axisId, NumericAxis axis) { + _disjointMeasureAxes.forEach((axisId, axis) { axis.context = context; - axis.tickDrawStrategy = - new NoneDrawStrategy(context, graphicsFactory); + axis.tickDrawStrategy = NoneDrawStrategy(context, graphicsFactory); }); } @@ -277,7 +276,7 @@ abstract class CartesianChart extends BaseChart { /// A [LinkedHashMap] is used to ensure consistent ordering when painting the /// axes. set disjointMeasureAxisSpecs(LinkedHashMap axisSpecs) { - axisSpecs.forEach((String axisId, AxisSpec axisSpec) { + axisSpecs.forEach((axisId, axisSpec) { axisSpec.configure( _disjointMeasureAxes[axisId], context, graphicsFactory); }); @@ -299,7 +298,7 @@ abstract class CartesianChart extends BaseChart { @override SeriesRenderer makeDefaultRenderer() { - return new BarRenderer()..rendererId = SeriesRenderer.defaultRendererId; + return BarRenderer()..rendererId = SeriesRenderer.defaultRendererId; } @override @@ -331,7 +330,7 @@ abstract class CartesianChart extends BaseChart { } // Add all disjoint axis views so that their range will be configured. - _disjointMeasureAxes.forEach((String axisId, NumericAxis axis) { + _disjointMeasureAxes.forEach((axisId, axis) { addView(axis); }); @@ -340,7 +339,7 @@ abstract class CartesianChart extends BaseChart { _primaryMeasureAxis.resetDomains(); _secondaryMeasureAxis.resetDomains(); - _disjointMeasureAxes.forEach((String axisId, NumericAxis axis) { + _disjointMeasureAxes.forEach((axisId, axis) { axis.resetDomains(); }); @@ -363,7 +362,7 @@ abstract class CartesianChart extends BaseChart { : AxisOrientation.right) ..reverseOutputRange = flipVerticalAxisOutput; - _disjointMeasureAxes.forEach((String axisId, NumericAxis axis) { + _disjointMeasureAxes.forEach((axisId, axis) { axis ..axisOrientation = (reverseAxisDirection ? AxisOrientation.left @@ -385,7 +384,7 @@ abstract class CartesianChart extends BaseChart { ..axisOrientation = AxisOrientation.top ..reverseOutputRange = reverseAxisDirection; - _disjointMeasureAxes.forEach((String axisId, NumericAxis axis) { + _disjointMeasureAxes.forEach((axisId, axis) { axis ..axisOrientation = AxisOrientation.top ..reverseOutputRange = reverseAxisDirection; @@ -394,8 +393,7 @@ abstract class CartesianChart extends BaseChart { // Have each renderer configure the axes with their domain and measure // values. - rendererToSeriesList - .forEach((String rendererId, List> seriesList) { + rendererToSeriesList.forEach((rendererId, seriesList) { getSeriesRenderer(rendererId).configureDomainAxes(seriesList); getSeriesRenderer(rendererId).configureMeasureAxes(seriesList); }); @@ -416,7 +414,7 @@ abstract class CartesianChart extends BaseChart { _secondaryMeasureAxis.updateTicks(); } - _disjointMeasureAxes.forEach((String axisId, NumericAxis axis) { + _disjointMeasureAxes.forEach((axisId, axis) { axis.updateTicks(); }); @@ -449,11 +447,11 @@ abstract class CartesianChart extends BaseChart { final measurePosition = series.getAttr(measureAxisKey).getLocation(measure); - final chartPosition = new Point( + final chartPosition = Point( vertical ? domainPosition : measurePosition, vertical ? measurePosition : domainPosition); - entries.add(new DatumDetails( + entries.add(DatumDetails( datum: datum, domain: domain, measure: measure, diff --git a/web/charts/common/lib/src/chart/cartesian/cartesian_renderer.dart b/web/charts/common/lib/src/chart/cartesian/cartesian_renderer.dart index 4a044e076..1bc772fc4 100644 --- a/web/charts/common/lib/src/chart/cartesian/cartesian_renderer.dart +++ b/web/charts/common/lib/src/chart/cartesian/cartesian_renderer.dart @@ -52,7 +52,7 @@ abstract class BaseCartesianRenderer extends BaseSeriesRenderer @override void configureDomainAxes(List> seriesList) { - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { if (series.data.isEmpty) { return; } @@ -100,7 +100,7 @@ abstract class BaseCartesianRenderer extends BaseSeriesRenderer @override void configureMeasureAxes(List> seriesList) { - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { if (series.data.isEmpty) { return; } diff --git a/web/charts/common/lib/src/chart/common/base_chart.dart b/web/charts/common/lib/src/chart/common/base_chart.dart index 88e5f4ba6..08fdf53f4 100644 --- a/web/charts/common/lib/src/chart/common/base_chart.dart +++ b/web/charts/common/lib/src/chart/common/base_chart.dart @@ -66,7 +66,7 @@ abstract class BaseChart { /// initial draw cycle (e.g. a [Legend] may hide some series). List> _currentSeriesList; - Set _usingRenderers = new Set(); + Set _usingRenderers = Set(); Map>> _rendererToSeriesList; final _seriesRenderers = >{}; @@ -83,7 +83,7 @@ abstract class BaseChart { /// that does something with tap events, such as "click to select data." bool get isTappable => _behaviorTappableMap.isNotEmpty; - final _gestureProxy = new ProxyGestureListener(); + final _gestureProxy = ProxyGestureListener(); final _selectionModels = >{}; @@ -99,7 +99,7 @@ abstract class BaseChart { final _lifecycleListeners = >[]; BaseChart({LayoutConfig layoutConfig}) { - _layoutManager = new LayoutManagerImpl(config: layoutConfig); + _layoutManager = LayoutManagerImpl(config: layoutConfig); } void init(ChartContext context, GraphicsFactory graphicsFactory) { @@ -109,8 +109,8 @@ abstract class BaseChart { if (this.graphicsFactory != graphicsFactory) { this.graphicsFactory = graphicsFactory; - _layoutManager.applyToViews( - (LayoutView view) => view.graphicsFactory = graphicsFactory); + _layoutManager + .applyToViews((view) => view.graphicsFactory = graphicsFactory); } configurationChanged(); @@ -154,8 +154,7 @@ abstract class BaseChart { /// Returns MutableSelectionModel for the given type. Lazy creates one upon first /// request. MutableSelectionModel getSelectionModel(SelectionModelType type) { - return _selectionModels.putIfAbsent( - type, () => new MutableSelectionModel()); + return _selectionModels.putIfAbsent(type, () => MutableSelectionModel()); } /// Returns a list of datum details from selection model of [type]. @@ -206,10 +205,9 @@ abstract class BaseChart { SeriesRenderer makeDefaultRenderer(); bool pointWithinRenderer(Point chartPosition) { - return _usingRenderers.any((String rendererId) => - getSeriesRenderer(rendererId) - .componentBounds - .containsPoint(chartPosition)); + return _usingRenderers.any((rendererId) => getSeriesRenderer(rendererId) + .componentBounds + .containsPoint(chartPosition)); } /// Retrieves the datum details that are nearest to the given [drawAreaPoint]. @@ -229,13 +227,13 @@ abstract class BaseChart { selectAcrossAllDrawAreaComponents ? drawableLayoutAreaBounds : null; final details = >[]; - _usingRenderers.forEach((String rendererId) { + _usingRenderers.forEach((rendererId) { details.addAll(getSeriesRenderer(rendererId) .getNearestDatumDetailPerSeries( drawAreaPoint, selectNearestByDomain, boundsOverride)); }); - details.sort((DatumDetails a, DatumDetails b) { + details.sort((a, b) { // Sort so that the nearest one is first. // Special sort, sort by domain distance first, then by measure distance. if (selectNearestByDomain) { @@ -356,7 +354,7 @@ abstract class BaseChart { } /// Returns a list of behaviors that have been added. - List> get behaviors => new List.unmodifiable(_behaviorStack); + List> get behaviors => List.unmodifiable(_behaviorStack); // // Layout methods @@ -423,7 +421,7 @@ abstract class BaseChart { } var processedSeriesList = - new List>.from(seriesList.map(makeSeries)); + List>.from(seriesList.map(makeSeries)); // Allow listeners to manipulate the seriesList. fireOnDraw(processedSeriesList); @@ -464,9 +462,8 @@ abstract class BaseChart { void drawInternal(List> seriesList, {bool skipAnimation, bool skipLayout}) { - seriesList = seriesList - .map((MutableSeries series) => new MutableSeries.clone(series)) - .toList(); + seriesList = + seriesList.map((series) => MutableSeries.clone(series)).toList(); // TODO: Handle exiting renderers. _animationsTemporarilyDisabled = skipAnimation; @@ -487,7 +484,7 @@ abstract class BaseChart { List> get currentSeriesList => _currentSeriesList; MutableSeries makeSeries(Series series) { - final s = new MutableSeries(series); + final s = MutableSeries(series); // Setup the Renderer final rendererId = @@ -505,14 +502,13 @@ abstract class BaseChart { // Build map of rendererIds to SeriesLists. This map can't be re-used later // in the preprocessSeries call because some behaviors might alter the // seriesList. - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { String rendererId = series.getAttr(rendererIdKey); rendererToSeriesList.putIfAbsent(rendererId, () => []).add(series); }); // Have each renderer add missing color functions to their seriesLists. - rendererToSeriesList - .forEach((String rendererId, List> seriesList) { + rendererToSeriesList.forEach((rendererId, seriesList) { getSeriesRenderer(rendererId).configureSeries(seriesList); }); } @@ -525,10 +521,10 @@ abstract class BaseChart { Map>> rendererToSeriesList = {}; var unusedRenderers = _usingRenderers; - _usingRenderers = new Set(); + _usingRenderers = Set(); // Build map of rendererIds to SeriesLists. - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { String rendererId = series.getAttr(rendererIdKey); rendererToSeriesList.putIfAbsent(rendererId, () => []).add(series); @@ -538,11 +534,10 @@ abstract class BaseChart { // Allow unused renderers to render out content. unusedRenderers - .forEach((String rendererId) => rendererToSeriesList[rendererId] = []); + .forEach((rendererId) => rendererToSeriesList[rendererId] = []); // Have each renderer preprocess their seriesLists. - rendererToSeriesList - .forEach((String rendererId, List> seriesList) { + rendererToSeriesList.forEach((rendererId, seriesList) { getSeriesRenderer(rendererId).preprocessSeries(seriesList); }); @@ -555,8 +550,7 @@ abstract class BaseChart { void onPostLayout(Map>> rendererToSeriesList) { // Update each renderer with - rendererToSeriesList - .forEach((String rendererId, List> seriesList) { + rendererToSeriesList.forEach((rendererId, seriesList) { getSeriesRenderer(rendererId).update(seriesList, animatingThisDraw); }); @@ -574,7 +568,7 @@ abstract class BaseChart { void paint(ChartCanvas canvas) { canvas.drawingView = 'BaseView'; - _layoutManager.paintOrderedViews.forEach((LayoutView view) { + _layoutManager.paintOrderedViews.forEach((view) { canvas.drawingView = view.runtimeType.toString(); view.paint(canvas, animatingThisDraw ? animationPercent : 1.0); }); @@ -594,7 +588,7 @@ abstract class BaseChart { @protected fireOnDraw(List> seriesList) { - _lifecycleListeners.forEach((LifecycleListener listener) { + _lifecycleListeners.forEach((listener) { if (listener.onData != null) { listener.onData(seriesList); } @@ -603,7 +597,7 @@ abstract class BaseChart { @protected fireOnPreprocess(List> seriesList) { - _lifecycleListeners.forEach((LifecycleListener listener) { + _lifecycleListeners.forEach((listener) { if (listener.onPreprocess != null) { listener.onPreprocess(seriesList); } @@ -612,7 +606,7 @@ abstract class BaseChart { @protected fireOnPostprocess(List> seriesList) { - _lifecycleListeners.forEach((LifecycleListener listener) { + _lifecycleListeners.forEach((listener) { if (listener.onPostprocess != null) { listener.onPostprocess(seriesList); } @@ -621,7 +615,7 @@ abstract class BaseChart { @protected fireOnAxisConfigured() { - _lifecycleListeners.forEach((LifecycleListener listener) { + _lifecycleListeners.forEach((listener) { if (listener.onAxisConfigured != null) { listener.onAxisConfigured(); } @@ -630,7 +624,7 @@ abstract class BaseChart { @protected fireOnPostrender(ChartCanvas canvas) { - _lifecycleListeners.forEach((LifecycleListener listener) { + _lifecycleListeners.forEach((listener) { if (listener.onPostrender != null) { listener.onPostrender(canvas); } @@ -639,7 +633,7 @@ abstract class BaseChart { @protected fireOnAnimationComplete() { - _lifecycleListeners.forEach((LifecycleListener listener) { + _lifecycleListeners.forEach((listener) { if (listener.onAnimationComplete != null) { listener.onAnimationComplete(); } @@ -654,8 +648,8 @@ abstract class BaseChart { } _behaviorStack.clear(); _behaviorRoleMap.clear(); - _selectionModels.values.forEach((MutableSelectionModel selectionModel) => - selectionModel.clearAllListeners()); + _selectionModels.values + .forEach((selectionModel) => selectionModel.clearAllListeners()); } } @@ -707,6 +701,7 @@ class LifecycleListener { this.onAnimationComplete}); } -typedef LifecycleSeriesListCallback(List> seriesList); -typedef LifecycleCanvasCallback(ChartCanvas canvas); -typedef LifecycleEmptyCallback(); +typedef LifecycleSeriesListCallback = Function( + List> seriesList); +typedef LifecycleCanvasCallback = Function(ChartCanvas canvas); +typedef LifecycleEmptyCallback = Function(); diff --git a/web/charts/common/lib/src/chart/common/behavior/a11y/a11y_explore_behavior.dart b/web/charts/common/lib/src/chart/common/behavior/a11y/a11y_explore_behavior.dart index c448de1d9..521bbb2a3 100644 --- a/web/charts/common/lib/src/chart/common/behavior/a11y/a11y_explore_behavior.dart +++ b/web/charts/common/lib/src/chart/common/behavior/a11y/a11y_explore_behavior.dart @@ -57,10 +57,10 @@ abstract class A11yExploreBehavior implements ChartBehavior { switch (exploreModeTrigger) { case ExploreModeTrigger.pressHold: - _listener = new GestureListener(onLongPress: _toggleExploreMode); + _listener = GestureListener(onLongPress: _toggleExploreMode); break; case ExploreModeTrigger.tap: - _listener = new GestureListener(onTap: _toggleExploreMode); + _listener = GestureListener(onTap: _toggleExploreMode); break; } } diff --git a/web/charts/common/lib/src/chart/common/behavior/a11y/a11y_node.dart b/web/charts/common/lib/src/chart/common/behavior/a11y/a11y_node.dart index b79ebba80..865b522f7 100644 --- a/web/charts/common/lib/src/chart/common/behavior/a11y/a11y_node.dart +++ b/web/charts/common/lib/src/chart/common/behavior/a11y/a11y_node.dart @@ -15,7 +15,7 @@ import 'dart:math' show Rectangle; -typedef void OnFocus(); +typedef OnFocus = void Function(); /// Container for accessibility data. class A11yNode { diff --git a/web/charts/common/lib/src/chart/common/behavior/a11y/domain_a11y_explore_behavior.dart b/web/charts/common/lib/src/chart/common/behavior/a11y/domain_a11y_explore_behavior.dart index 6232c4436..7238381b6 100644 --- a/web/charts/common/lib/src/chart/common/behavior/a11y/domain_a11y_explore_behavior.dart +++ b/web/charts/common/lib/src/chart/common/behavior/a11y/domain_a11y_explore_behavior.dart @@ -28,7 +28,8 @@ import 'a11y_explore_behavior.dart' import 'a11y_node.dart' show A11yNode, OnFocus; /// Returns a string for a11y vocalization from a list of series datum. -typedef String VocalizationCallback(List> seriesDatums); +typedef VocalizationCallback = String Function( + List> seriesDatums); /// A simple vocalization that returns the domain value to string. String domainVocalization(List> seriesDatums) { @@ -58,8 +59,7 @@ class DomainA11yExploreBehavior extends A11yExploreBehavior { minimumWidth: minimumWidth, exploreModeEnabledAnnouncement: exploreModeEnabledAnnouncement, exploreModeDisabledAnnouncement: exploreModeDisabledAnnouncement) { - _lifecycleListener = - new LifecycleListener(onPostprocess: _updateSeriesList); + _lifecycleListener = LifecycleListener(onPostprocess: _updateSeriesList); } @override @@ -77,11 +77,11 @@ class DomainA11yExploreBehavior extends A11yExploreBehavior { D domain = series.domainFn(index); domainSeriesDatum[domain] ??= >[]; - domainSeriesDatum[domain].add(new SeriesDatum(series, datum)); + domainSeriesDatum[domain].add(SeriesDatum(series, datum)); } } - domainSeriesDatum.forEach((D domain, List> seriesDatums) { + domainSeriesDatum.forEach((domain, seriesDatums) { final a11yDescription = _vocalizationCallback(seriesDatums); final firstSeries = seriesDatums.first.series; @@ -93,7 +93,7 @@ class DomainA11yExploreBehavior extends A11yExploreBehavior { ? domainAxis.stepSize : minimumWidth; - nodes.add(new _DomainA11yNode(a11yDescription, + nodes.add(_DomainA11yNode(a11yDescription, location: location, stepSize: stepSize, chartDrawBounds: _chart.drawAreaBounds, @@ -134,7 +134,7 @@ class DomainA11yExploreBehavior extends A11yExploreBehavior { } @override - String get role => 'DomainA11yExplore-${exploreModeTrigger}'; + String get role => 'DomainA11yExplore-$exploreModeTrigger'; } /// A11yNode with domain specific information. @@ -157,16 +157,16 @@ class _DomainA11yNode extends A11yNode implements Comparable<_DomainA11yNode> { var top = chartDrawBounds.top; var width = stepSize.round(); var height = chartDrawBounds.height; - boundingBox = new Rectangle(left, top, width, height); + boundingBox = Rectangle(left, top, width, height); } else { var left = chartDrawBounds.left; var top = (location - stepSize / 2).round(); var width = chartDrawBounds.width; var height = stepSize.round(); - boundingBox = new Rectangle(left, top, width, height); + boundingBox = Rectangle(left, top, width, height); } - return new _DomainA11yNode._internal(label, boundingBox, + return _DomainA11yNode._internal(label, boundingBox, location: location, isRtl: isRtl, renderVertically: renderVertically, diff --git a/web/charts/common/lib/src/chart/common/behavior/calculation/percent_injector.dart b/web/charts/common/lib/src/chart/common/behavior/calculation/percent_injector.dart index fd3bb0b21..a12023d03 100644 --- a/web/charts/common/lib/src/chart/common/behavior/calculation/percent_injector.dart +++ b/web/charts/common/lib/src/chart/common/behavior/calculation/percent_injector.dart @@ -19,7 +19,7 @@ import '../../behavior/chart_behavior.dart' show ChartBehavior; import '../../processed_series.dart' show MutableSeries; const percentInjectedKey = - const AttributeKey('PercentInjector.percentInjected'); + AttributeKey('PercentInjector.percentInjected'); /// Chart behavior that can inject series or domain percentages into each datum. /// @@ -49,7 +49,7 @@ class PercentInjector implements ChartBehavior { PercentInjector({this.totalType = PercentInjectorTotalType.domain}) { // Set up chart draw cycle listeners. _lifecycleListener = - new LifecycleListener(onPreprocess: _preProcess, onData: _onData); + LifecycleListener(onPreprocess: _preProcess, onData: _onData); } @override @@ -65,7 +65,7 @@ class PercentInjector implements ChartBehavior { /// Resets the state of the behavior when new data is drawn on the chart. void _onData(List> seriesList) { // Reset tracking of percentage injection for new data. - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { series.setAttr(percentInjectedKey, false); }); } @@ -77,7 +77,7 @@ class PercentInjector implements ChartBehavior { /// the [seriesList] between chart redraws. void _preProcess(List> seriesList) { var percentInjected = true; - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { percentInjected = percentInjected && series.getAttr(percentInjectedKey); }); @@ -95,7 +95,7 @@ class PercentInjector implements ChartBehavior { // Walk the series and compute the domain total. Series total is // automatically computed by [MutableSeries]. - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { final seriesCategory = series.seriesCategory; final rawMeasureFn = series.rawMeasureFn; final domainFn = series.domainFn; @@ -118,10 +118,10 @@ class PercentInjector implements ChartBehavior { }); // Add percent of domain and series accessor functions. - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { // Replace the default measure accessor with one that computes the // percentage. - series.measureFn = (int index) { + series.measureFn = (index) { final measure = series.rawMeasureFn(index); if (measure == null || measure == 0.0) { @@ -140,7 +140,7 @@ class PercentInjector implements ChartBehavior { // Replace the default measure lower bound accessor with one that // computes the percentage. if (series.measureLowerBoundFn != null) { - series.measureLowerBoundFn = (int index) { + series.measureLowerBoundFn = (index) { final measureLowerBound = series.rawMeasureLowerBoundFn(index); if (measureLowerBound == null || measureLowerBound == 0.0) { @@ -160,7 +160,7 @@ class PercentInjector implements ChartBehavior { // Replace the default measure upper bound accessor with one that // computes the percentage. if (series.measureUpperBoundFn != null) { - series.measureUpperBoundFn = (int index) { + series.measureUpperBoundFn = (index) { final measureUpperBound = series.rawMeasureUpperBoundFn(index); if (measureUpperBound == null || measureUpperBound == 0.0) { @@ -183,16 +183,16 @@ class PercentInjector implements ChartBehavior { break; case PercentInjectorTotalType.series: - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { // Replace the default measure accessor with one that computes the // percentage. - series.measureFn = (int index) => - series.rawMeasureFn(index) / series.seriesMeasureTotal; + series.measureFn = + (index) => series.rawMeasureFn(index) / series.seriesMeasureTotal; // Replace the default measure lower bound accessor with one that // computes the percentage. if (series.measureLowerBoundFn != null) { - series.measureLowerBoundFn = (int index) => + series.measureLowerBoundFn = (index) => series.rawMeasureLowerBoundFn(index) / series.seriesMeasureTotal; } @@ -200,7 +200,7 @@ class PercentInjector implements ChartBehavior { // Replace the default measure upper bound accessor with one that // computes the percentage. if (series.measureUpperBoundFn != null) { - series.measureUpperBoundFn = (int index) => + series.measureUpperBoundFn = (index) => series.rawMeasureUpperBoundFn(index) / series.seriesMeasureTotal; } @@ -211,7 +211,7 @@ class PercentInjector implements ChartBehavior { break; default: - throw new ArgumentError('Unsupported totalType: ${totalType}'); + throw ArgumentError('Unsupported totalType: $totalType'); } } diff --git a/web/charts/common/lib/src/chart/common/behavior/chart_title/chart_title.dart b/web/charts/common/lib/src/chart/common/behavior/chart_title/chart_title.dart index 6df4e7c28..42b056724 100644 --- a/web/charts/common/lib/src/chart/common/behavior/chart_title/chart_title.dart +++ b/web/charts/common/lib/src/chart/common/behavior/chart_title/chart_title.dart @@ -47,9 +47,9 @@ class ChartTitle implements ChartBehavior { static const _defaultTitleDirection = ChartTitleDirection.auto; static const _defaultTitleOutsideJustification = OutsideJustification.middle; static final _defaultTitleStyle = - new TextStyleSpec(fontSize: 18, color: StyleFactory.style.tickColor); + TextStyleSpec(fontSize: 18, color: StyleFactory.style.tickColor); static final _defaultSubTitleStyle = - new TextStyleSpec(fontSize: 14, color: StyleFactory.style.tickColor); + TextStyleSpec(fontSize: 14, color: StyleFactory.style.tickColor); static const _defaultInnerPadding = 10; static const _defaultTitlePadding = 18; static const _defaultOuterPadding = 10; @@ -79,7 +79,7 @@ class ChartTitle implements ChartBehavior { TextStyleSpec titleStyleSpec, String subTitle, TextStyleSpec subTitleStyleSpec}) { - _config = new _ChartTitleConfig() + _config = _ChartTitleConfig() ..behaviorPosition = behaviorPosition ?? _defaultBehaviorPosition ..innerPadding = innerPadding ?? _defaultInnerPadding ..layoutMinSize = layoutMinSize @@ -96,7 +96,7 @@ class ChartTitle implements ChartBehavior { ..subTitleStyleSpec = subTitleStyleSpec ?? _defaultSubTitleStyle; _lifecycleListener = - new LifecycleListener(onAxisConfigured: _updateViewData); + LifecycleListener(onAxisConfigured: _updateViewData); } /// Layout position for the title. @@ -228,7 +228,7 @@ class ChartTitle implements ChartBehavior { void attachTo(BaseChart chart) { _chart = chart; - _view = new _ChartTitleLayoutView( + _view = _ChartTitleLayoutView( layoutPaintOrder: LayoutViewPaintOrder.chartTitle, config: _config, chart: _chart); @@ -270,7 +270,7 @@ class _ChartTitleLayoutView extends LayoutView { Rectangle _componentBounds; Rectangle _drawAreaBounds; - GraphicsFactory _graphicsFactory; + GraphicsFactory graphicsFactory; /// Cached layout element for the title text. /// @@ -292,20 +292,12 @@ class _ChartTitleLayoutView extends LayoutView { @required this.chart}) : this._config = config { // Set inside body to resolve [_layoutPosition]. - _layoutConfig = new LayoutViewConfig( + _layoutConfig = LayoutViewConfig( paintOrder: layoutPaintOrder, position: _layoutPosition, positionOrder: LayoutViewPositionOrder.chartTitle); } - @override - GraphicsFactory get graphicsFactory => _graphicsFactory; - - @override - set graphicsFactory(GraphicsFactory value) { - _graphicsFactory = value; - } - /// Sets the configuration for the title behavior. set config(_ChartTitleConfig config) { _config = config; @@ -415,7 +407,7 @@ class _ChartTitleLayoutView extends LayoutView { // Reset the cached text elements used during the paint step. _resetTextElementCache(); - return new ViewMeasuredSizes( + return ViewMeasuredSizes( minWidth: minWidth, minHeight: minHeight, preferredWidth: preferredWidth, @@ -707,7 +699,7 @@ class _ChartTitleLayoutView extends LayoutView { labelY = (bounds.bottom - padding).round(); } - return new Point(labelX, labelY); + return Point(labelX, labelY); } /// Gets the resolved location for a title in the left or right margin. @@ -780,7 +772,7 @@ class _ChartTitleLayoutView extends LayoutView { labelX = (bounds.right - padding).round(); } - return new Point(labelX, labelY); + return Point(labelX, labelY); } // Helper function that converts [TextStyleSpec] to [TextStyle]. diff --git a/web/charts/common/lib/src/chart/common/behavior/domain_highlighter.dart b/web/charts/common/lib/src/chart/common/behavior/domain_highlighter.dart index 1986bc34a..f7f9caee1 100644 --- a/web/charts/common/lib/src/chart/common/behavior/domain_highlighter.dart +++ b/web/charts/common/lib/src/chart/common/behavior/domain_highlighter.dart @@ -35,7 +35,7 @@ class DomainHighlighter implements ChartBehavior { DomainHighlighter([this.selectionModelType = SelectionModelType.info]) { _lifecycleListener = - new LifecycleListener(onPostprocess: _updateColorFunctions); + LifecycleListener(onPostprocess: _updateColorFunctions); } void _selectionChanged(SelectionModel selectionModel) { @@ -45,11 +45,11 @@ class DomainHighlighter implements ChartBehavior { void _updateColorFunctions(List> seriesList) { SelectionModel selectionModel = _chart.getSelectionModel(selectionModelType); - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { final origColorFn = series.colorFn; if (origColorFn != null) { - series.colorFn = (int index) { + series.colorFn = (index) { final origColor = origColorFn(index); if (selectionModel.isDatumSelected(series, index)) { return origColor.darker; diff --git a/web/charts/common/lib/src/chart/common/behavior/initial_selection.dart b/web/charts/common/lib/src/chart/common/behavior/initial_selection.dart index 17200bf5e..f8b714922 100644 --- a/web/charts/common/lib/src/chart/common/behavior/initial_selection.dart +++ b/web/charts/common/lib/src/chart/common/behavior/initial_selection.dart @@ -40,7 +40,7 @@ class InitialSelection implements ChartBehavior { {this.selectionModelType = SelectionModelType.info, this.selectedDataConfig, this.selectedSeriesConfig}) { - _lifecycleListener = new LifecycleListener(onData: _setInitialSelection); + _lifecycleListener = LifecycleListener(onData: _setInitialSelection); } void _setInitialSelection(List> seriesList) { @@ -49,7 +49,7 @@ class InitialSelection implements ChartBehavior { } _firstDraw = false; - final immutableModel = new SelectionModel.fromConfig( + final immutableModel = SelectionModel.fromConfig( selectedDataConfig, selectedSeriesConfig, seriesList); _chart.getSelectionModel(selectionModelType).updateSelection( diff --git a/web/charts/common/lib/src/chart/common/behavior/legend/datum_legend.dart b/web/charts/common/lib/src/chart/common/behavior/legend/datum_legend.dart index 277c52587..9b0d62ad9 100644 --- a/web/charts/common/lib/src/chart/common/behavior/legend/datum_legend.dart +++ b/web/charts/common/lib/src/chart/common/behavior/legend/datum_legend.dart @@ -44,7 +44,7 @@ class DatumLegend extends Legend { }) : super( selectionModelType: selectionModelType ?? SelectionModelType.info, legendEntryGenerator: - legendEntryGenerator ?? new PerDatumLegendEntryGenerator(), + legendEntryGenerator ?? PerDatumLegendEntryGenerator(), entryTextStyle: entryTextStyle) { // Call the setters that include the setting for default. this.showMeasures = showMeasures; diff --git a/web/charts/common/lib/src/chart/common/behavior/legend/legend.dart b/web/charts/common/lib/src/chart/common/behavior/legend/legend.dart index 44c1d16f9..ac4b3f7f5 100644 --- a/web/charts/common/lib/src/chart/common/behavior/legend/legend.dart +++ b/web/charts/common/lib/src/chart/common/behavior/legend/legend.dart @@ -51,28 +51,37 @@ import 'legend_entry_generator.dart'; /// Flutter, using widgets). abstract class Legend implements ChartBehavior, LayoutView { final SelectionModelType selectionModelType; - final legendState = new LegendState(); + final legendState = LegendState(); final LegendEntryGenerator legendEntryGenerator; - String _title; + /// Sets title text to display before legend entries. + String title; BaseChart _chart; LifecycleListener _lifecycleListener; Rectangle _componentBounds; Rectangle _drawAreaBounds; - GraphicsFactory _graphicsFactory; + GraphicsFactory graphicsFactory; - BehaviorPosition _behaviorPosition = BehaviorPosition.end; - OutsideJustification _outsideJustification = + BehaviorPosition behaviorPosition = BehaviorPosition.end; + OutsideJustification outsideJustification = OutsideJustification.startDrawArea; - InsideJustification _insideJustification = InsideJustification.topStart; - LegendCellPadding _cellPadding; - LegendCellPadding _legendPadding; + InsideJustification insideJustification = InsideJustification.topStart; + LegendCellPadding cellPadding; + LegendCellPadding legendPadding; - TextStyleSpec _titleTextStyle; + /// Text style of the legend title text. + TextStyleSpec titleTextStyle; - LegendTapHandling _legendTapHandling = LegendTapHandling.hide; + /// Configures the behavior of the legend when the user taps/clicks on an + /// entry. Defaults to no behavior. + /// + /// Tapping on a legend entry will update the data visible on the chart. For + /// example, when [LegendTapHandling.hide] is configured, the series or datum + /// associated with that entry will be removed from the chart. Tapping on that + /// entry a second time will make the data visible again. + LegendTapHandling legendTapHandling = LegendTapHandling.hide; List> _currentSeriesList; @@ -80,7 +89,7 @@ abstract class Legend implements ChartBehavior, LayoutView { /// the legend entries. List> _postProcessSeriesList; - static final _decimalPattern = new NumberFormat.decimalPattern(); + static final _decimalPattern = NumberFormat.decimalPattern(); /// Default measure formatter for legends. @protected @@ -89,50 +98,11 @@ abstract class Legend implements ChartBehavior, LayoutView { } Legend({this.selectionModelType, this.legendEntryGenerator, entryTextStyle}) { - _lifecycleListener = new LifecycleListener( + _lifecycleListener = LifecycleListener( onPostprocess: _postProcess, onPreprocess: _preProcess, onData: onData); legendEntryGenerator.entryTextStyle = entryTextStyle; } - String get title => _title; - - /// Sets title text to display before legend entries. - set title(String title) { - _title = title; - } - - BehaviorPosition get behaviorPosition => _behaviorPosition; - - set behaviorPosition(BehaviorPosition behaviorPosition) { - _behaviorPosition = behaviorPosition; - } - - OutsideJustification get outsideJustification => _outsideJustification; - - set outsideJustification(OutsideJustification outsideJustification) { - _outsideJustification = outsideJustification; - } - - InsideJustification get insideJustification => _insideJustification; - - set insideJustification(InsideJustification insideJustification) { - _insideJustification = insideJustification; - } - - LegendCellPadding get cellPadding => _cellPadding; - - set cellPadding(LegendCellPadding cellPadding) { - _cellPadding = cellPadding; - } - - LegendCellPadding get legendPadding => _legendPadding; - - set legendPadding(LegendCellPadding legendPadding) { - _legendPadding = legendPadding; - } - - LegendTapHandling get legendTapHandling => _legendTapHandling; - /// Text style of the legend entry text. TextStyleSpec get entryTextStyle => legendEntryGenerator.entryTextStyle; @@ -140,31 +110,13 @@ abstract class Legend implements ChartBehavior, LayoutView { legendEntryGenerator.entryTextStyle = entryTextStyle; } - /// Text style of the legend title text. - TextStyleSpec get titleTextStyle => _titleTextStyle; - - set titleTextStyle(TextStyleSpec titleTextStyle) { - _titleTextStyle = titleTextStyle; - } - - /// Configures the behavior of the legend when the user taps/clicks on an - /// entry. Defaults to no behavior. - /// - /// Tapping on a legend entry will update the data visible on the chart. For - /// example, when [LegendTapHandling.hide] is configured, the series or datum - /// associated with that entry will be removed from the chart. Tapping on that - /// entry a second time will make the data visible again. - set legendTapHandling(LegendTapHandling legendTapHandling) { - _legendTapHandling = legendTapHandling; - } - /// Resets any hidden series data when new data is drawn on the chart. @protected void onData(List> seriesList) {} /// Store off a copy of the series list for use when we render the legend. void _preProcess(List> seriesList) { - _currentSeriesList = new List.from(seriesList); + _currentSeriesList = List.from(seriesList); preProcessSeriesList(seriesList); } @@ -251,17 +203,9 @@ abstract class Legend implements ChartBehavior, LayoutView { bool get isRtl => _chart.context.isRtl; - @override - GraphicsFactory get graphicsFactory => _graphicsFactory; - - @override - set graphicsFactory(GraphicsFactory value) { - _graphicsFactory = value; - } - @override LayoutViewConfig get layoutConfig { - return new LayoutViewConfig( + return LayoutViewConfig( position: _layoutPosition, positionOrder: LayoutViewPositionOrder.legend, paintOrder: LayoutViewPaintOrder.legend); @@ -270,7 +214,7 @@ abstract class Legend implements ChartBehavior, LayoutView { /// Get layout position from legend position. LayoutPosition get _layoutPosition { LayoutPosition position; - switch (_behaviorPosition) { + switch (behaviorPosition) { case BehaviorPosition.bottom: position = LayoutPosition.Bottom; break; @@ -296,7 +240,7 @@ abstract class Legend implements ChartBehavior, LayoutView { ViewMeasuredSizes measure(int maxWidth, int maxHeight) { // Native child classes should override this method to return real // measurements. - return new ViewMeasuredSizes(preferredWidth: 0, preferredHeight: 0); + return ViewMeasuredSizes(preferredWidth: 0, preferredHeight: 0); } @override diff --git a/web/charts/common/lib/src/chart/common/behavior/legend/per_datum_legend_entry_generator.dart b/web/charts/common/lib/src/chart/common/behavior/legend/per_datum_legend_entry_generator.dart index 08b9cf5f5..50413e373 100644 --- a/web/charts/common/lib/src/chart/common/behavior/legend/per_datum_legend_entry_generator.dart +++ b/web/charts/common/lib/src/chart/common/behavior/legend/per_datum_legend_entry_generator.dart @@ -39,8 +39,7 @@ class PerDatumLegendEntryGenerator implements LegendEntryGenerator { final series = seriesList[0]; for (var i = 0; i < series.data.length; i++) { - legendEntries.add(new LegendEntry( - series, series.domainFn(i).toString(), + legendEntries.add(LegendEntry(series, series.domainFn(i).toString(), color: series.colorFn(i), datum: series.data[i], datumIndex: i, diff --git a/web/charts/common/lib/src/chart/common/behavior/legend/per_series_legend_entry_generator.dart b/web/charts/common/lib/src/chart/common/behavior/legend/per_series_legend_entry_generator.dart index 43994c155..b34c47492 100644 --- a/web/charts/common/lib/src/chart/common/behavior/legend/per_series_legend_entry_generator.dart +++ b/web/charts/common/lib/src/chart/common/behavior/legend/per_series_legend_entry_generator.dart @@ -38,7 +38,7 @@ class PerSeriesLegendEntryGenerator implements LegendEntryGenerator { @override List> getLegendEntries(List> seriesList) { final legendEntries = seriesList - .map((series) => new LegendEntry(series, series.displayName, + .map((series) => LegendEntry(series, series.displayName, color: series.colorFn(0), textStyle: entryTextStyle)) .toList(); @@ -72,7 +72,7 @@ class PerSeriesLegendEntryGenerator implements LegendEntryGenerator { final seriesAndMeasure = {}; // Hash set of series ID's that use the secondary measure axis - final secondaryAxisSeriesIDs = new HashSet(); + final secondaryAxisSeriesIDs = HashSet(); for (SeriesDatum selectedDatum in selectionModel.selectedDatum) { final series = selectedDatum.series; diff --git a/web/charts/common/lib/src/chart/common/behavior/legend/series_legend.dart b/web/charts/common/lib/src/chart/common/behavior/legend/series_legend.dart index 21ca0c38b..db62e81e1 100644 --- a/web/charts/common/lib/src/chart/common/behavior/legend/series_legend.dart +++ b/web/charts/common/lib/src/chart/common/behavior/legend/series_legend.dart @@ -31,7 +31,7 @@ import 'per_series_legend_entry_generator.dart'; /// By default this behavior creates a legend entry per series. class SeriesLegend extends Legend { /// List of currently hidden series, by ID. - final _hiddenSeriesList = new Set(); + final _hiddenSeriesList = Set(); /// List of series IDs that should be hidden by default. List _defaultHiddenSeries; @@ -50,7 +50,7 @@ class SeriesLegend extends Legend { }) : super( selectionModelType: selectionModelType ?? SelectionModelType.info, legendEntryGenerator: - legendEntryGenerator ?? new PerSeriesLegendEntryGenerator(), + legendEntryGenerator ?? PerSeriesLegendEntryGenerator(), entryTextStyle: entryTextStyle) { // Call the setters that include the setting for default. this.showMeasures = showMeasures; @@ -134,14 +134,14 @@ class SeriesLegend extends Legend { void onData(List> seriesList) { // If a series was removed from the chart, remove it from our current list // of hidden series. - final seriesIds = seriesList.map((MutableSeries series) => series.id); + final seriesIds = seriesList.map((series) => series.id); - _hiddenSeriesList.removeWhere((String id) => !seriesIds.contains(id)); + _hiddenSeriesList.removeWhere((id) => !seriesIds.contains(id)); } @override void preProcessSeriesList(List> seriesList) { - seriesList.removeWhere((MutableSeries series) { + seriesList.removeWhere((series) { return _hiddenSeriesList.contains(series.id); }); } @@ -161,7 +161,7 @@ class SeriesLegend extends Legend { /// color if it was previously hidden. @protected void showSeries(String seriesId) { - _hiddenSeriesList.removeWhere((String id) => id == seriesId); + _hiddenSeriesList.removeWhere((id) => id == seriesId); } /// Returns whether or not a given series [seriesId] is currently hidden. diff --git a/web/charts/common/lib/src/chart/common/behavior/line_point_highlighter.dart b/web/charts/common/lib/src/chart/common/behavior/line_point_highlighter.dart index 82c01fbad..165bf8c39 100644 --- a/web/charts/common/lib/src/chart/common/behavior/line_point_highlighter.dart +++ b/web/charts/common/lib/src/chart/common/behavior/line_point_highlighter.dart @@ -133,16 +133,16 @@ class LinePointHighlighter implements ChartBehavior { LinePointHighlighterFollowLineType.nearest, dashPattern = dashPattern ?? [1, 3], drawFollowLinesAcrossChart = drawFollowLinesAcrossChart ?? true, - symbolRenderer = symbolRenderer ?? new CircleSymbolRenderer() { + symbolRenderer = symbolRenderer ?? CircleSymbolRenderer() { _lifecycleListener = - new LifecycleListener(onAxisConfigured: _updateViewData); + LifecycleListener(onAxisConfigured: _updateViewData); } @override void attachTo(BaseChart chart) { _chart = chart; - _view = new _LinePointLayoutView( + _view = _LinePointLayoutView( chart: chart, layoutPaintOrder: LayoutViewPaintOrder.linePointHighlighter, showHorizontalFollowLine: showHorizontalFollowLine, @@ -205,7 +205,7 @@ class LinePointHighlighter implements ChartBehavior { ? detail.radiusPx.toDouble() + radiusPaddingPx : defaultRadiusPx; - final pointKey = '${lineKey}::${detail.domain}'; + final pointKey = '$lineKey::${detail.domain}'; // If we already have a point for that key, use it. _AnimatedPoint animatingPoint; @@ -213,16 +213,16 @@ class LinePointHighlighter implements ChartBehavior { animatingPoint = _seriesPointMap[pointKey]; } else { // Create a new point and have it animate in from axis. - final point = new _DatumPoint( + final point = _DatumPoint( datum: datum, domain: detail.domain, series: series, x: domainAxis.getLocation(detail.domain), y: measureAxis.getLocation(0.0)); - animatingPoint = new _AnimatedPoint( + animatingPoint = _AnimatedPoint( key: pointKey, overlaySeries: series.overlaySeries) - ..setNewTarget(new _PointRendererElement() + ..setNewTarget(_PointRendererElement() ..point = point ..color = detail.color ..fillColor = detail.fillColor @@ -235,7 +235,7 @@ class LinePointHighlighter implements ChartBehavior { newSeriesMap[pointKey] = animatingPoint; // Create a new line using the final point locations. - final point = new _DatumPoint( + final point = _DatumPoint( datum: datum, domain: detail.domain, series: series, @@ -246,7 +246,7 @@ class LinePointHighlighter implements ChartBehavior { _currentKeys.add(pointKey); // Get the point element we are going to setup. - final pointElement = new _PointRendererElement() + final pointElement = _PointRendererElement() ..point = point ..color = detail.color ..fillColor = detail.fillColor @@ -259,7 +259,7 @@ class LinePointHighlighter implements ChartBehavior { } // Animate out points that don't exist anymore. - _seriesPointMap.forEach((String key, _AnimatedPoint point) { + _seriesPointMap.forEach((key, point) { if (_currentKeys.contains(point.key) != true) { point.animateOut(); newSeriesMap[point.key] = point; @@ -293,7 +293,7 @@ class _LinePointLayoutView extends LayoutView { final SymbolRenderer symbolRenderer; - GraphicsFactory _graphicsFactory; + GraphicsFactory graphicsFactory; /// Store a map of series drawn on the chart, mapped by series name. /// @@ -309,7 +309,7 @@ class _LinePointLayoutView extends LayoutView { @required this.symbolRenderer, this.dashPattern, this.drawFollowLinesAcrossChart, - }) : this.layoutConfig = new LayoutViewConfig( + }) : this.layoutConfig = LayoutViewConfig( paintOrder: LayoutViewPaintOrder.linePointHighlighter, position: LayoutPosition.DrawArea, positionOrder: layoutPaintOrder); @@ -318,14 +318,6 @@ class _LinePointLayoutView extends LayoutView { _seriesPointMap = value; } - @override - GraphicsFactory get graphicsFactory => _graphicsFactory; - - @override - set graphicsFactory(GraphicsFactory value) { - _graphicsFactory = value; - } - @override ViewMeasuredSizes measure(int maxWidth, int maxHeight) { return null; @@ -346,17 +338,17 @@ class _LinePointLayoutView extends LayoutView { if (animationPercent == 1.0) { final keysToRemove = []; - _seriesPointMap.forEach((String key, _AnimatedPoint point) { + _seriesPointMap.forEach((key, point) { if (point.animatingOut) { keysToRemove.add(key); } }); - keysToRemove.forEach((String key) => _seriesPointMap.remove(key)); + keysToRemove.forEach((key) => _seriesPointMap.remove(key)); } final points = <_PointRendererElement>[]; - _seriesPointMap.forEach((String key, _AnimatedPoint point) { + _seriesPointMap.forEach((key, point) { points.add(point.getCurrentPoint(animationPercent)); }); @@ -449,8 +441,8 @@ class _LinePointLayoutView extends LayoutView { canvas.drawLine( points: [ - new Point(leftBound, pointElement.point.y), - new Point(rightBound, pointElement.point.y), + Point(leftBound, pointElement.point.y), + Point(rightBound, pointElement.point.y), ], stroke: StyleFactory.style.linePointHighlighterColor, strokeWidthPx: 1.0, @@ -473,8 +465,8 @@ class _LinePointLayoutView extends LayoutView { canvas.drawLine( points: [ - new Point(pointElement.point.x, topBound), - new Point( + Point(pointElement.point.x, topBound), + Point( pointElement.point.x, drawBounds.top + drawBounds.height), ], stroke: StyleFactory.style.linePointHighlighterColor, @@ -500,7 +492,7 @@ class _LinePointLayoutView extends LayoutView { continue; } - final bounds = new Rectangle( + final bounds = Rectangle( pointElement.point.x - pointElement.radiusPx, pointElement.point.y - pointElement.radiusPx, pointElement.radiusPx * 2, @@ -531,7 +523,7 @@ class _DatumPoint extends Point { : super(x, y); factory _DatumPoint.from(_DatumPoint other, [double x, double y]) { - return new _DatumPoint( + return _DatumPoint( datum: other.datum, domain: other.domain, series: other.series, @@ -550,7 +542,7 @@ class _PointRendererElement { SymbolRenderer symbolRenderer; _PointRendererElement clone() { - return new _PointRendererElement() + return _PointRendererElement() ..point = this.point ..color = this.color ..fillColor = this.fillColor @@ -569,7 +561,7 @@ class _PointRendererElement { final y = _lerpDouble(previousPoint.y, targetPoint.y, animationPercent); - point = new _DatumPoint.from(targetPoint, x, y); + point = _DatumPoint.from(targetPoint, x, y); color = getAnimatedColor(previous.color, target.color, animationPercent); @@ -625,7 +617,7 @@ class _AnimatedPoint { // Set the target measure value to the axis position for all points. final targetPoint = newTarget.point; - final newPoint = new _DatumPoint.from(targetPoint, targetPoint.x, + final newPoint = _DatumPoint.from(targetPoint, targetPoint.x, newTarget.measureAxisPosition.roundToDouble()); newTarget.point = newPoint; @@ -685,7 +677,7 @@ class LinePointHighlighterTester { bool isDatumSelected(D datum) { var contains = false; - behavior._seriesPointMap.forEach((String key, _AnimatedPoint point) { + behavior._seriesPointMap.forEach((key, point) { if (point._currentPoint.point.datum == datum) { contains = true; return; diff --git a/web/charts/common/lib/src/chart/common/behavior/range_annotation.dart b/web/charts/common/lib/src/chart/common/behavior/range_annotation.dart index 249205a4f..95b9de48c 100644 --- a/web/charts/common/lib/src/chart/common/behavior/range_annotation.dart +++ b/web/charts/common/lib/src/chart/common/behavior/range_annotation.dart @@ -54,7 +54,7 @@ class RangeAnnotation implements ChartBehavior { static const _defaultLabelPosition = AnnotationLabelPosition.auto; static const _defaultLabelPadding = 5; static final _defaultLabelStyle = - new TextStyleSpec(fontSize: 12, color: Color.black); + TextStyleSpec(fontSize: 12, color: Color.black); static const _defaultStrokeWidthPx = 2.0; /// List of annotations to render on the chart. @@ -121,20 +121,20 @@ class RangeAnnotation implements ChartBehavior { extendAxis = extendAxis ?? true, labelPadding = labelPadding ?? _defaultLabelPadding, defaultStrokeWidthPx = defaultStrokeWidthPx ?? _defaultStrokeWidthPx { - _lifecycleListener = new LifecycleListener( + _lifecycleListener = LifecycleListener( onPostprocess: _updateAxisRange, onAxisConfigured: _updateViewData); } @override void attachTo(BaseChart chart) { if (!(chart is CartesianChart)) { - throw new ArgumentError( + throw ArgumentError( 'RangeAnnotation can only be attached to a CartesianChart'); } _chart = chart; - _view = new _RangeAnnotationLayoutView( + _view = _RangeAnnotationLayoutView( defaultColor: defaultColor, labelPadding: labelPadding, chart: chart); chart.addView(_view); @@ -155,7 +155,7 @@ class RangeAnnotation implements ChartBehavior { if (extendAxis) { final domainAxis = _chart.domainAxis; - annotations.forEach((AnnotationSegment annotation) { + annotations.forEach((annotation) { Axis axis; switch (annotation.axisType) { @@ -182,7 +182,7 @@ class RangeAnnotation implements ChartBehavior { void _updateViewData() { _currentKeys.clear(); - annotations.forEach((AnnotationSegment annotation) { + annotations.forEach((annotation) { Axis axis; switch (annotation.axisType) { @@ -251,8 +251,8 @@ class RangeAnnotation implements ChartBehavior { animatingAnnotation = _annotationMap[key]; } else { // Create a new annotation, positioned at the start and end values. - animatingAnnotation = new _AnimatedAnnotation(key: key) - ..setNewTarget(new _AnnotationElement() + animatingAnnotation = _AnimatedAnnotation(key: key) + ..setNewTarget(_AnnotationElement() ..annotation = annotationDatum ..color = color ..dashPattern = dashPattern @@ -272,7 +272,7 @@ class RangeAnnotation implements ChartBehavior { _currentKeys.add(key); // Get the annotation element we are going to setup. - final annotationElement = new _AnnotationElement() + final annotationElement = _AnnotationElement() ..annotation = annotationDatum ..color = color ..dashPattern = dashPattern @@ -289,7 +289,7 @@ class RangeAnnotation implements ChartBehavior { }); // Animate out annotations that don't exist anymore. - _annotationMap.forEach((String key, _AnimatedAnnotation annotation) { + _annotationMap.forEach((key, annotation) { if (_currentKeys.contains(annotation.key) != true) { annotation.animateOut(); } @@ -310,7 +310,7 @@ class RangeAnnotation implements ChartBehavior { final startPosition = (axis.getLocation(startValue) * 100).round() / 100; final endPosition = (axis.getLocation(endValue) * 100).round() / 100; - return new _DatumAnnotation( + return _DatumAnnotation( startPosition: startPosition, endPosition: endPosition, axisType: axisType); @@ -335,7 +335,7 @@ class _RangeAnnotationLayoutView extends LayoutView { Rectangle get drawBounds => _drawAreaBounds; - GraphicsFactory _graphicsFactory; + GraphicsFactory graphicsFactory; /// Store a map of series drawn on the chart, mapped by series name. /// @@ -347,7 +347,7 @@ class _RangeAnnotationLayoutView extends LayoutView { @required this.defaultColor, @required this.labelPadding, @required this.chart, - }) : this.layoutConfig = new LayoutViewConfig( + }) : this.layoutConfig = LayoutViewConfig( paintOrder: LayoutViewPaintOrder.rangeAnnotation, position: LayoutPosition.DrawArea, positionOrder: LayoutViewPositionOrder.drawArea); @@ -356,14 +356,6 @@ class _RangeAnnotationLayoutView extends LayoutView { _annotationMap = value; } - @override - GraphicsFactory get graphicsFactory => _graphicsFactory; - - @override - set graphicsFactory(GraphicsFactory value) { - _graphicsFactory = value; - } - @override ViewMeasuredSizes measure(int maxWidth, int maxHeight) { return null; @@ -384,16 +376,16 @@ class _RangeAnnotationLayoutView extends LayoutView { if (animationPercent == 1.0) { final keysToRemove = []; - _annotationMap.forEach((String key, _AnimatedAnnotation annotation) { + _annotationMap.forEach((key, annotation) { if (annotation.animatingOut) { keysToRemove.add(key); } }); - keysToRemove.forEach((String key) => _annotationMap.remove(key)); + keysToRemove.forEach((key) => _annotationMap.remove(key)); } - _annotationMap.forEach((String key, _AnimatedAnnotation annotation) { + _annotationMap.forEach((key, annotation) { final annotationElement = annotation.getCurrentAnnotation(animationPercent); @@ -477,7 +469,7 @@ class _RangeAnnotationLayoutView extends LayoutView { switch (annotationElement.annotation.axisType) { case RangeAnnotationAxisType.domain: - bounds = new Rectangle( + bounds = Rectangle( annotationElement.annotation.startPosition, _drawAreaBounds.top, annotationElement.annotation.endPosition - @@ -486,7 +478,7 @@ class _RangeAnnotationLayoutView extends LayoutView { break; case RangeAnnotationAxisType.measure: - bounds = new Rectangle( + bounds = Rectangle( _drawAreaBounds.left, annotationElement.annotation.endPosition, _drawAreaBounds.width, @@ -505,16 +497,16 @@ class _RangeAnnotationLayoutView extends LayoutView { switch (annotationElement.annotation.axisType) { case RangeAnnotationAxisType.domain: - points.add(new Point( + points.add(Point( annotationElement.annotation.startPosition, _drawAreaBounds.top)); - points.add(new Point( + points.add(Point( annotationElement.annotation.endPosition, _drawAreaBounds.bottom)); break; case RangeAnnotationAxisType.measure: - points.add(new Point( + points.add(Point( _drawAreaBounds.left, annotationElement.annotation.startPosition)); - points.add(new Point( + points.add(Point( _drawAreaBounds.right, annotationElement.annotation.endPosition)); break; } @@ -655,7 +647,7 @@ class _RangeAnnotationLayoutView extends LayoutView { switch (calculatedLabelPosition) { case AnnotationLabelPosition.margin: case AnnotationLabelPosition.auto: - throw new ArgumentError(_unresolvedAutoMessage); + throw ArgumentError(_unresolvedAutoMessage); break; case AnnotationLabelPosition.outside: @@ -685,7 +677,7 @@ class _RangeAnnotationLayoutView extends LayoutView { break; } - return new Point(labelX.round(), labelY.round()); + return Point(labelX.round(), labelY.round()); } /// Gets the resolved location for a vertical domain annotation label element. @@ -734,7 +726,7 @@ class _RangeAnnotationLayoutView extends LayoutView { switch (calculatedLabelPosition) { case AnnotationLabelPosition.margin: case AnnotationLabelPosition.auto: - throw new ArgumentError(_unresolvedAutoMessage); + throw ArgumentError(_unresolvedAutoMessage); break; case AnnotationLabelPosition.outside: @@ -764,7 +756,7 @@ class _RangeAnnotationLayoutView extends LayoutView { break; } - return new Point(labelX.round(), labelY.round()); + return Point(labelX.round(), labelY.round()); } /// Gets the resolved location for a measure annotation label element. @@ -834,7 +826,7 @@ class _RangeAnnotationLayoutView extends LayoutView { switch (calculatedLabelPosition) { case AnnotationLabelPosition.margin: case AnnotationLabelPosition.auto: - throw new ArgumentError(_unresolvedAutoMessage); + throw ArgumentError(_unresolvedAutoMessage); break; case AnnotationLabelPosition.outside: @@ -858,7 +850,7 @@ class _RangeAnnotationLayoutView extends LayoutView { break; } - return new Point(labelX.round(), labelY.round()); + return Point(labelX.round(), labelY.round()); } /// Gets the resolved location for a vertical measure annotation label @@ -920,7 +912,7 @@ class _RangeAnnotationLayoutView extends LayoutView { switch (calculatedLabelPosition) { case AnnotationLabelPosition.margin: case AnnotationLabelPosition.auto: - throw new ArgumentError(_unresolvedAutoMessage); + throw ArgumentError(_unresolvedAutoMessage); break; case AnnotationLabelPosition.outside: @@ -944,7 +936,7 @@ class _RangeAnnotationLayoutView extends LayoutView { break; } - return new Point(labelX.round(), labelY.round()); + return Point(labelX.round(), labelY.round()); } /// Resolves [AnnotationLabelPosition.auto] configuration for an annotation @@ -1014,7 +1006,7 @@ class _DatumAnnotation { factory _DatumAnnotation.from(_DatumAnnotation other, [double startPosition, double endPosition]) { - return new _DatumAnnotation( + return _DatumAnnotation( startPosition: startPosition ?? other.startPosition, endPosition: endPosition ?? other.endPosition, axisType: other.axisType); @@ -1035,9 +1027,9 @@ class _AnnotationElement { double strokeWidthPx; _AnnotationElement clone() { - return new _AnnotationElement() - ..annotation = new _DatumAnnotation.from(annotation) - ..color = color != null ? new Color.fromOther(color: color) : null + return _AnnotationElement() + ..annotation = _DatumAnnotation.from(annotation) + ..color = color != null ? Color.fromOther(color: color) : null ..startLabel = this.startLabel ..endLabel = this.endLabel ..isRange = this.isRange @@ -1065,7 +1057,7 @@ class _AnnotationElement { previousAnnotation.endPosition; annotation = - new _DatumAnnotation.from(targetAnnotation, startPosition, endPosition); + _DatumAnnotation.from(targetAnnotation, startPosition, endPosition); color = getAnimatedColor(previous.color, target.color, animationPercent); @@ -1128,7 +1120,7 @@ class RangeAnnotationTester { RangeAnnotationTester(this.behavior); set graphicsFactory(GraphicsFactory value) { - behavior._view._graphicsFactory = value; + behavior._view.graphicsFactory = value; } mockLayout(Rectangle bounds) { @@ -1148,7 +1140,7 @@ class RangeAnnotationTester { AnnotationLabelPosition labelPosition}) { var exists = false; - behavior._annotationMap.forEach((String key, _AnimatedAnnotation a) { + behavior._annotationMap.forEach((key, a) { final currentAnnotation = a._currentAnnotation; final annotation = currentAnnotation.annotation; @@ -1222,7 +1214,7 @@ class RangeAnnotationSegment extends AnnotationSegment { labelStyleSpec: labelStyleSpec); @override - String get key => 'r::${axisType}::${axisId}::${startValue}::${endValue}'; + String get key => 'r::$axisType::$axisId::$startValue::$endValue'; } /// Data for a chart line annotation. @@ -1253,7 +1245,7 @@ class LineAnnotationSegment extends AnnotationSegment { labelStyleSpec: labelStyleSpec); @override - String get key => 'l::${axisType}::${axisId}::${value}'; + String get key => 'l::$axisType::$axisId::$value'; } /// Axis type for an annotation. diff --git a/web/charts/common/lib/src/chart/common/behavior/selection/lock_selection.dart b/web/charts/common/lib/src/chart/common/behavior/selection/lock_selection.dart index 93ed7c745..d14b4d595 100644 --- a/web/charts/common/lib/src/chart/common/behavior/selection/lock_selection.dart +++ b/web/charts/common/lib/src/chart/common/behavior/selection/lock_selection.dart @@ -47,11 +47,10 @@ class LockSelection implements ChartBehavior { // Setup the appropriate gesture listening. switch (this.eventTrigger) { case SelectionTrigger.tap: - _listener = - new GestureListener(onTapTest: _onTapTest, onTap: _onSelect); + _listener = GestureListener(onTapTest: _onTapTest, onTap: _onSelect); break; default: - throw new ArgumentError('LockSelection does not support the event ' + throw ArgumentError('LockSelection does not support the event ' 'trigger "${this.eventTrigger}"'); break; } diff --git a/web/charts/common/lib/src/chart/common/behavior/selection/select_nearest.dart b/web/charts/common/lib/src/chart/common/behavior/selection/select_nearest.dart index 09dc8a9f2..7270b9398 100644 --- a/web/charts/common/lib/src/chart/common/behavior/selection/select_nearest.dart +++ b/web/charts/common/lib/src/chart/common/behavior/selection/select_nearest.dart @@ -107,11 +107,10 @@ class SelectNearest implements ChartBehavior { // Setup the appropriate gesture listening. switch (this.eventTrigger) { case SelectionTrigger.tap: - _listener = - new GestureListener(onTapTest: _onTapTest, onTap: _onSelect); + _listener = GestureListener(onTapTest: _onTapTest, onTap: _onSelect); break; case SelectionTrigger.tapAndDrag: - _listener = new GestureListener( + _listener = GestureListener( onTapTest: _onTapTest, onTap: _onSelect, onDragStart: _onSelect, @@ -119,7 +118,7 @@ class SelectNearest implements ChartBehavior { ); break; case SelectionTrigger.pressHold: - _listener = new GestureListener( + _listener = GestureListener( onTapTest: _onTapTest, onLongPress: _onSelect, onDragStart: _onSelect, @@ -127,7 +126,7 @@ class SelectNearest implements ChartBehavior { onDragEnd: _onDeselectAll); break; case SelectionTrigger.longPressHold: - _listener = new GestureListener( + _listener = GestureListener( onTapTest: _onTapTest, onLongPress: _onLongPressSelect, onDragStart: _onSelect, @@ -136,7 +135,7 @@ class SelectNearest implements ChartBehavior { break; case SelectionTrigger.hover: default: - _listener = new GestureListener(onHover: _onSelect); + _listener = GestureListener(onHover: _onSelect); break; } } @@ -171,11 +170,10 @@ class SelectNearest implements ChartBehavior { details[0].domainDistance <= maximumDomainDistancePx) { seriesDatumList = expandToDomain ? _expandToDomain(details.first) - : [new SeriesDatum(details.first.series, details.first.datum)]; + : [SeriesDatum(details.first.series, details.first.datum)]; // Filter out points from overlay series. - seriesDatumList - .removeWhere((SeriesDatum datum) => datum.series.overlaySeries); + seriesDatumList.removeWhere((datum) => datum.series.overlaySeries); if (selectClosestSeries && seriesList.isEmpty) { if (details.first.series.overlaySeries) { @@ -184,7 +182,7 @@ class SelectNearest implements ChartBehavior { // copy of the list by domain distance because we do not want to // re-order the actual return values here. final sortedSeriesDatumList = - new List>.from(seriesDatumList); + List>.from(seriesDatumList); sortedSeriesDatumList.sort((a, b) => a.datum.domainDistance.compareTo(b.datum.domainDistance)); seriesList.add(sortedSeriesDatumList.first.series); @@ -215,7 +213,7 @@ class SelectNearest implements ChartBehavior { List> _expandToDomain(DatumDetails nearestDetails) { // Make sure that the "nearest" datum is at the top of the list. final data = >[ - new SeriesDatum(nearestDetails.series, nearestDetails.datum) + SeriesDatum(nearestDetails.series, nearestDetails.datum) ]; final nearestDomain = nearestDetails.domain; @@ -236,7 +234,7 @@ class SelectNearest implements ChartBehavior { } if (domain == nearestDomain) { - data.add(new SeriesDatum(series, datum)); + data.add(SeriesDatum(series, datum)); } else if (testBounds) { final domainLowerBound = domainLowerBoundFn(i); final domainUpperBound = domainUpperBoundFn(i); @@ -261,7 +259,7 @@ class SelectNearest implements ChartBehavior { } if (addDatum) { - data.add(new SeriesDatum(series, datum)); + data.add(SeriesDatum(series, datum)); } } } diff --git a/web/charts/common/lib/src/chart/common/behavior/slider/slider.dart b/web/charts/common/lib/src/chart/common/behavior/slider/slider.dart index 5d8c7d446..3083932d5 100644 --- a/web/charts/common/lib/src/chart/common/behavior/slider/slider.dart +++ b/web/charts/common/lib/src/chart/common/behavior/slider/slider.dart @@ -153,9 +153,9 @@ class Slider implements ChartBehavior { this.snapToDatum = false, SliderStyle style, this.layoutPaintOrder = LayoutViewPaintOrder.slider}) { - _handleRenderer = handleRenderer ?? new RectSymbolRenderer(); + _handleRenderer = handleRenderer ?? RectSymbolRenderer(); _roleId = roleId ?? ''; - _style = style ?? new SliderStyle(); + _style = style ?? SliderStyle(); _domainValue = initialDomainValue; if (_domainValue != null) { @@ -165,7 +165,7 @@ class Slider implements ChartBehavior { // Setup the appropriate gesture listening. switch (this.eventTrigger) { case SelectionTrigger.tapAndDrag: - _gestureListener = new GestureListener( + _gestureListener = GestureListener( onTapTest: _onTapTest, onTap: _onSelect, onDragStart: _onSelect, @@ -173,7 +173,7 @@ class Slider implements ChartBehavior { onDragEnd: _onDragEnd); break; case SelectionTrigger.pressHold: - _gestureListener = new GestureListener( + _gestureListener = GestureListener( onTapTest: _onTapTest, onLongPress: _onSelect, onDragStart: _onSelect, @@ -181,7 +181,7 @@ class Slider implements ChartBehavior { onDragEnd: _onDragEnd); break; case SelectionTrigger.longPressHold: - _gestureListener = new GestureListener( + _gestureListener = GestureListener( onTapTest: _onTapTest, onLongPress: _onLongPressSelect, onDragStart: _onSelect, @@ -189,21 +189,20 @@ class Slider implements ChartBehavior { onDragEnd: _onDragEnd); break; default: - throw new ArgumentError('Slider does not support the event trigger ' + throw ArgumentError('Slider does not support the event trigger ' '"${this.eventTrigger}"'); break; } // Set up chart draw cycle listeners. - _lifecycleListener = new LifecycleListener( + _lifecycleListener = LifecycleListener( onData: _setInitialDragState, onAxisConfigured: _updateViewData, onPostrender: _fireChangeEvent, ); // Set up slider event listeners. - _sliderEventListener = - new SliderEventListener(onChange: onChangeCallback); + _sliderEventListener = SliderEventListener(onChange: onChangeCallback); } bool _onTapTest(Point chartPoint) { @@ -286,7 +285,7 @@ class Slider implements ChartBehavior { } void _updateViewData() { - _sliderHandle ??= new _AnimatedSlider(); + _sliderHandle ??= _AnimatedSlider(); // If not set in the constructor, initial position for the handle is the // center of the draw area. @@ -299,10 +298,10 @@ class Slider implements ChartBehavior { _moveSliderToDomain(_domainValue); // Move the handle to the current event position. - final element = new _SliderElement() + final element = _SliderElement() ..domainCenterPoint = - new Point(_domainCenterPoint.x, _domainCenterPoint.y) - ..buttonBounds = new Rectangle(_handleBounds.left, _handleBounds.top, + Point(_domainCenterPoint.x, _domainCenterPoint.y) + ..buttonBounds = Rectangle(_handleBounds.left, _handleBounds.top, _handleBounds.width, _handleBounds.height) ..fill = _style.fillColor ..stroke = _style.strokeColor @@ -342,7 +341,7 @@ class Slider implements ChartBehavior { // Fire the event. _sliderEventListener.onChange( - new Point(_domainCenterPoint.x, _domainCenterPoint.y), + Point(_domainCenterPoint.x, _domainCenterPoint.y), _domainValue, _roleId, dragState); @@ -378,10 +377,9 @@ class Slider implements ChartBehavior { _domainValue = _chart.domainAxis.getDomain(position.toDouble()); if (_domainCenterPoint != null) { - _domainCenterPoint = - new Point(position.round(), _domainCenterPoint.y); + _domainCenterPoint = Point(position.round(), _domainCenterPoint.y); } else { - _domainCenterPoint = new Point( + _domainCenterPoint = Point( position.round(), (viewBounds.top + viewBounds.height / 2).round()); } @@ -394,12 +392,12 @@ class Slider implements ChartBehavior { handleReferenceY = viewBounds.top; break; default: - throw new ArgumentError('Slider does not support the handle position ' + throw ArgumentError('Slider does not support the handle position ' '"${_style.handlePosition}"'); } // Move the slider handle along the domain axis. - _handleBounds = new Rectangle( + _handleBounds = Rectangle( (_domainCenterPoint.x - _style.handleSize.width / 2 + _style.handleOffset.x) @@ -432,7 +430,7 @@ class Slider implements ChartBehavior { bool _moveSliderToDomain(D domain) { final x = _chart.domainAxis.getLocation(domain); - return _moveSliderToPoint(new Point(x, 0.0)); + return _moveSliderToPoint(Point(x, 0.0)); } /// Programmatically moves the slider to the location of [domain] on the @@ -470,8 +468,7 @@ class Slider implements ChartBehavior { @override void attachTo(BaseChart chart) { if (!(chart is CartesianChart)) { - throw new ArgumentError( - 'Slider can only be attached to a cartesian chart.'); + throw ArgumentError('Slider can only be attached to a cartesian chart.'); } _chart = chart as CartesianChart; @@ -479,7 +476,7 @@ class Slider implements ChartBehavior { // Only vertical rendering is supported by this behavior. assert(_chart.vertical); - _view = new _SliderLayoutView( + _view = _SliderLayoutView( layoutPaintOrder: layoutPaintOrder, handleRenderer: _handleRenderer); chart.addView(_view); @@ -496,7 +493,7 @@ class Slider implements ChartBehavior { } @override - String get role => 'Slider-${eventTrigger.toString()}-${_roleId}'; + String get role => 'Slider-${eventTrigger.toString()}-$_roleId'; } /// Style configuration for a [Slider] behavior. @@ -572,7 +569,7 @@ class _SliderLayoutView extends LayoutView { Rectangle get drawBounds => _drawAreaBounds; - GraphicsFactory _graphicsFactory; + GraphicsFactory graphicsFactory; /// Renderer for the handle. Defaults to a rectangle. SymbolRenderer _handleRenderer; @@ -582,7 +579,7 @@ class _SliderLayoutView extends LayoutView { _SliderLayoutView( {@required int layoutPaintOrder, @required SymbolRenderer handleRenderer}) - : this.layoutConfig = new LayoutViewConfig( + : this.layoutConfig = LayoutViewConfig( paintOrder: layoutPaintOrder, position: LayoutPosition.DrawArea, positionOrder: LayoutViewPositionOrder.drawArea), @@ -592,14 +589,6 @@ class _SliderLayoutView extends LayoutView { _sliderHandle = value; } - @override - GraphicsFactory get graphicsFactory => _graphicsFactory; - - @override - set graphicsFactory(GraphicsFactory value) { - _graphicsFactory = value; - } - @override ViewMeasuredSizes measure(int maxWidth, int maxHeight) { return null; @@ -616,10 +605,8 @@ class _SliderLayoutView extends LayoutView { canvas.drawLine( points: [ - new Point( - sliderElement.domainCenterPoint.x, _drawAreaBounds.top), - new Point( - sliderElement.domainCenterPoint.x, _drawAreaBounds.bottom), + Point(sliderElement.domainCenterPoint.x, _drawAreaBounds.top), + Point(sliderElement.domainCenterPoint.x, _drawAreaBounds.bottom), ], stroke: sliderElement.stroke, strokeWidthPx: sliderElement.strokeWidthPx); @@ -646,7 +633,7 @@ class _SliderElement { double strokeWidthPx; _SliderElement clone() { - return new _SliderElement() + return _SliderElement() ..domainCenterPoint = this.domainCenterPoint ..buttonBounds = this.buttonBounds ..fill = this.fill @@ -668,7 +655,7 @@ class _SliderElement { final y = ((targetPoint.y - previousPoint.y) * animationPercent) + previousPoint.y; - domainCenterPoint = new Point(x.round(), y.round()); + domainCenterPoint = Point(x.round(), y.round()); final previousBounds = localPrevious.buttonBounds; final targetBounds = localTarget.buttonBounds; @@ -685,7 +672,7 @@ class _SliderElement { ((targetBounds.left - previousBounds.left) * animationPercent) + previousBounds.left; - buttonBounds = new Rectangle(left.round(), top.round(), + buttonBounds = Rectangle(left.round(), top.round(), (right - left).round(), (bottom - top).round()); fill = getAnimatedColor(previous.fill, target.fill, animationPercent); @@ -726,7 +713,7 @@ class _AnimatedSlider { final bottom = targetBounds.bottom; final left = right; - newTarget.buttonBounds = new Rectangle(left.round(), top.round(), + newTarget.buttonBounds = Rectangle(left.round(), top.round(), (right - left).round(), (bottom - top).round()); // Animate the stroke width to 0 so that we don't get a lingering line after @@ -775,8 +762,8 @@ class SliderEventListener { /// [domain] is the domain value at the slider position. /// /// [dragState] indicates the current state of a drag event. -typedef SliderListenerCallback(Point point, D domain, String roleId, - SliderListenerDragState dragState); +typedef SliderListenerCallback = Function(Point point, D domain, + String roleId, SliderListenerDragState dragState); /// Describes the current state of a slider change as a result of a drag event. /// diff --git a/web/charts/common/lib/src/chart/common/behavior/zoom/initial_hint_behavior.dart b/web/charts/common/lib/src/chart/common/behavior/zoom/initial_hint_behavior.dart index c3fdde9af..84b58a590 100644 --- a/web/charts/common/lib/src/chart/common/behavior/zoom/initial_hint_behavior.dart +++ b/web/charts/common/lib/src/chart/common/behavior/zoom/initial_hint_behavior.dart @@ -43,7 +43,7 @@ abstract class InitialHintBehavior implements ChartBehavior { @protected CartesianChart get chart => _chart; - Duration _hintDuration = new Duration(milliseconds: 3000); + Duration _hintDuration = Duration(milliseconds: 3000); /// The amount of time to animate to the desired viewport. /// @@ -104,9 +104,9 @@ abstract class InitialHintBehavior implements ChartBehavior { double _targetViewportScalingFactor; InitialHintBehavior() { - _listener = new GestureListener(onTapTest: onTapTest); + _listener = GestureListener(onTapTest: onTapTest); - _lifecycleListener = new LifecycleListener( + _lifecycleListener = LifecycleListener( onAxisConfigured: _onAxisConfigured, onAnimationComplete: _onAnimationComplete); } @@ -114,7 +114,7 @@ abstract class InitialHintBehavior implements ChartBehavior { @override attachTo(BaseChart chart) { if (!(chart is CartesianChart)) { - throw new ArgumentError( + throw ArgumentError( 'InitialHintBehavior can only be attached to a CartesianChart'); } @@ -127,7 +127,7 @@ abstract class InitialHintBehavior implements ChartBehavior { @override removeFrom(BaseChart chart) { if (!(chart is CartesianChart)) { - throw new ArgumentError( + throw ArgumentError( 'InitialHintBehavior can only be removed from a CartesianChart'); } diff --git a/web/charts/common/lib/src/chart/common/behavior/zoom/pan_behavior.dart b/web/charts/common/lib/src/chart/common/behavior/zoom/pan_behavior.dart index 8b3b71ece..aa5800241 100644 --- a/web/charts/common/lib/src/chart/common/behavior/zoom/pan_behavior.dart +++ b/web/charts/common/lib/src/chart/common/behavior/zoom/pan_behavior.dart @@ -68,7 +68,7 @@ class PanBehavior implements ChartBehavior { } PanBehavior() { - _listener = new GestureListener( + _listener = GestureListener( onTapTest: onTapTest, onDragStart: onDragStart, onDragUpdate: onDragUpdate, @@ -79,7 +79,7 @@ class PanBehavior implements ChartBehavior { @override attachTo(BaseChart chart) { if (!(chart is CartesianChart)) { - throw new ArgumentError( + throw ArgumentError( 'PanBehavior can only be attached to a CartesianChart'); } @@ -91,7 +91,7 @@ class PanBehavior implements ChartBehavior { // Wrap domain axis tick provider with the panning behavior one. _domainAxisTickProvider = - new PanningTickProvider(_chart.domainAxis.tickProvider); + PanningTickProvider(_chart.domainAxis.tickProvider); _chart.domainAxis.tickProvider = _domainAxisTickProvider; } @@ -99,7 +99,7 @@ class PanBehavior implements ChartBehavior { @override removeFrom(BaseChart chart) { if (!(chart is CartesianChart)) { - throw new ArgumentError( + throw ArgumentError( 'PanBehavior can only be attached to a CartesianChart'); } @@ -218,4 +218,4 @@ class PanBehavior implements ChartBehavior { } /// Callback for when panning is completed. -typedef void PanningCompletedCallback(); +typedef PanningCompletedCallback = void Function(); diff --git a/web/charts/common/lib/src/chart/common/behavior/zoom/panning_tick_provider.dart b/web/charts/common/lib/src/chart/common/behavior/zoom/panning_tick_provider.dart index c13222270..d346a93fe 100644 --- a/web/charts/common/lib/src/chart/common/behavior/zoom/panning_tick_provider.dart +++ b/web/charts/common/lib/src/chart/common/behavior/zoom/panning_tick_provider.dart @@ -64,7 +64,7 @@ class PanningTickProvider implements TickProvider { TickHint tickHint, }) { if (_mode == PanningTickProviderMode.stepSizeLocked) { - tickHint = new TickHint( + tickHint = TickHint( _ticks.first.value, _ticks.last.value, tickCount: _ticks.length, diff --git a/web/charts/common/lib/src/chart/common/canvas_shapes.dart b/web/charts/common/lib/src/chart/common/canvas_shapes.dart index 0605c2723..009dc6fc6 100644 --- a/web/charts/common/lib/src/chart/common/canvas_shapes.dart +++ b/web/charts/common/lib/src/chart/common/canvas_shapes.dart @@ -72,9 +72,9 @@ class CanvasBarStack { final width = right - left; final height = bottom - top; - final fullStackRect = new Rectangle(left, top, width, height); + final fullStackRect = Rectangle(left, top, width, height); - return new CanvasBarStack._internal( + return CanvasBarStack._internal( segments, radius: radius, stackedBarPadding: stackedBarPadding, diff --git a/web/charts/common/lib/src/chart/common/chart_canvas.dart b/web/charts/common/lib/src/chart/common/chart_canvas.dart index c2dadae84..566f21a56 100644 --- a/web/charts/common/lib/src/chart/common/chart_canvas.dart +++ b/web/charts/common/lib/src/chart/common/chart_canvas.dart @@ -151,7 +151,7 @@ Color getAnimatedColor(Color previous, Color target, double animationPercent) { var b = (((target.b - previous.b) * animationPercent) + previous.b).round(); var a = (((target.a - previous.a) * animationPercent) + previous.a).round(); - return new Color(a: a, r: r, g: g, b: b); + return Color(a: a, r: r, g: g, b: b); } /// Defines the pattern for a color fill. diff --git a/web/charts/common/lib/src/chart/common/datum_details.dart b/web/charts/common/lib/src/chart/common/datum_details.dart index 722427bda..18906e901 100644 --- a/web/charts/common/lib/src/chart/common/datum_details.dart +++ b/web/charts/common/lib/src/chart/common/datum_details.dart @@ -19,8 +19,8 @@ import '../../common/color.dart' show Color; import '../../common/symbol_renderer.dart' show SymbolRenderer; import 'processed_series.dart' show ImmutableSeries; -typedef String DomainFormatter(D domain); -typedef String MeasureFormatter(num measure); +typedef DomainFormatter = String Function(D domain); +typedef MeasureFormatter = String Function(num measure); /// Represents processed rendering details for a data point from a series. class DatumDetails { @@ -183,7 +183,7 @@ class DatumDetails { double radiusPx, SymbolRenderer symbolRenderer, double strokeWidthPx}) { - return new DatumDetails( + return DatumDetails( datum: datum ?? other.datum, index: index ?? other.index, domain: domain ?? other.domain, diff --git a/web/charts/common/lib/src/chart/common/processed_series.dart b/web/charts/common/lib/src/chart/common/processed_series.dart index 56b86bb9b..f36826da1 100644 --- a/web/charts/common/lib/src/chart/common/processed_series.dart +++ b/web/charts/common/lib/src/chart/common/processed_series.dart @@ -56,7 +56,7 @@ class MutableSeries extends ImmutableSeries { AccessorFn insideLabelStyleAccessorFn; AccessorFn outsideLabelStyleAccessorFn; - final _attrs = new SeriesAttributes(); + final _attrs = SeriesAttributes(); Axis measureAxis; Axis domainAxis; diff --git a/web/charts/common/lib/src/chart/common/selection_model/selection_model.dart b/web/charts/common/lib/src/chart/common/selection_model/selection_model.dart index bbf7652d0..addd32b7b 100644 --- a/web/charts/common/lib/src/chart/common/selection_model/selection_model.dart +++ b/web/charts/common/lib/src/chart/common/selection_model/selection_model.dart @@ -48,8 +48,8 @@ class SelectionModel { /// Create a deep copy of the selection model. SelectionModel.fromOther(SelectionModel other) { - _selectedDatum = new List.from(other._selectedDatum); - _selectedSeries = new List.from(other._selectedSeries); + _selectedDatum = List.from(other._selectedDatum); + _selectedSeries = List.from(other._selectedSeries); } /// Create selection model from configuration. @@ -64,8 +64,8 @@ class SelectionModel { } // Add to list of selected series. - _selectedSeries.addAll(seriesList.where((ImmutableSeries series) => - selectedDataMap.keys.contains(series.id))); + _selectedSeries.addAll(seriesList + .where((series) => selectedDataMap.keys.contains(series.id))); // Add to list of selected data. for (ImmutableSeries series in seriesList) { @@ -76,7 +76,7 @@ class SelectionModel { final datum = series.data[i]; if (selectedDataMap[series.id].contains(domainFn(i))) { - _selectedDatum.add(new SeriesDatum(series, datum)); + _selectedDatum.add(SeriesDatum(series, datum)); } } } @@ -86,11 +86,11 @@ class SelectionModel { // Add to list of selected series, if it does not already exist. if (selectedSeriesConfig != null) { final remainingSeriesToAdd = selectedSeriesConfig - .where((String seriesId) => !selectedSeries.contains(seriesId)) + .where((seriesId) => !selectedSeries.contains(seriesId)) .toList(); - _selectedSeries.addAll(seriesList.where((ImmutableSeries series) => - remainingSeriesToAdd.contains(series.id))); + _selectedSeries.addAll(seriesList + .where((series) => remainingSeriesToAdd.contains(series.id))); } } @@ -99,14 +99,13 @@ class SelectionModel { bool isDatumSelected(ImmutableSeries series, int index) { final datum = index == null ? null : series.data[index]; - return _selectedDatum.contains(new SeriesDatum(series, datum)); + return _selectedDatum.contains(SeriesDatum(series, datum)); } /// Returns the selected [SeriesDatum] for this [SelectionModel]. /// /// This is empty by default. - List> get selectedDatum => - new List.unmodifiable(_selectedDatum); + List> get selectedDatum => List.unmodifiable(_selectedDatum); /// Returns true if this [SelectionModel] has a selected series. bool get hasSeriesSelection => _selectedSeries.isNotEmpty; @@ -115,7 +114,7 @@ class SelectionModel { /// /// This is empty by default. List> get selectedSeries => - new List.unmodifiable(_selectedSeries); + List.unmodifiable(_selectedSeries); /// Returns true if this [SelectionModel] has a selected datum or series. bool get hasAnySelection => @@ -124,14 +123,14 @@ class SelectionModel { @override bool operator ==(Object other) { return other is SelectionModel && - new ListEquality().equals(_selectedDatum, other.selectedDatum) && - new ListEquality().equals(_selectedSeries, other.selectedSeries); + ListEquality().equals(_selectedDatum, other.selectedDatum) && + ListEquality().equals(_selectedSeries, other.selectedSeries); } @override int get hashCode { - int hashcode = new ListEquality().hash(_selectedDatum); - hashcode = hashcode * 37 + new ListEquality().hash(_selectedSeries); + int hashcode = ListEquality().hash(_selectedDatum); + hashcode = hashcode * 37 + ListEquality().hash(_selectedSeries); return hashcode; } } @@ -168,12 +167,11 @@ class MutableSelectionModel extends SelectionModel { _selectedSeries = seriesList; // Provide a copy, so listeners get an immutable model. - final copyOfSelectionModel = new SelectionModel.fromOther(this); + final copyOfSelectionModel = SelectionModel.fromOther(this); _updatedListeners.forEach((listener) => listener(copyOfSelectionModel)); - final changed = - !new ListEquality().equals(origSelectedDatum, _selectedDatum) || - !new ListEquality().equals(origSelectedSeries, _selectedSeries); + final changed = !ListEquality().equals(origSelectedDatum, _selectedDatum) || + !ListEquality().equals(origSelectedSeries, _selectedSeries); if (notifyListeners && changed) { _changedListeners.forEach((listener) => listener(copyOfSelectionModel)); } @@ -220,7 +218,7 @@ class MutableSelectionModel extends SelectionModel { /// Callback for SelectionModel. It is triggered when the selection state /// changes. -typedef SelectionModelListener(SelectionModel model); +typedef SelectionModelListener = Function(SelectionModel model); enum SelectionModelType { /// Typical Hover or Details event for viewing the details of the selected diff --git a/web/charts/common/lib/src/chart/common/series_renderer.dart b/web/charts/common/lib/src/chart/common/series_renderer.dart index d0d652973..95f9209bb 100644 --- a/web/charts/common/lib/src/chart/common/series_renderer.dart +++ b/web/charts/common/lib/src/chart/common/series_renderer.dart @@ -41,10 +41,10 @@ import 'series_datum.dart' show SeriesDatum; /// [rendererIdKey] can be added as an attribute to user-defined [Series] /// objects. const AttributeKey rendererIdKey = - const AttributeKey('SeriesRenderer.rendererId'); + AttributeKey('SeriesRenderer.rendererId'); const AttributeKey rendererKey = - const AttributeKey('SeriesRenderer.renderer'); + AttributeKey('SeriesRenderer.renderer'); /// A series renderer draws one or more series of data onto a chart canvas. abstract class SeriesRenderer extends LayoutView { @@ -142,25 +142,17 @@ abstract class BaseSeriesRenderer implements SeriesRenderer { Rectangle get drawBounds => _drawAreaBounds; - GraphicsFactory _graphicsFactory; + GraphicsFactory graphicsFactory; BaseSeriesRenderer({ @required this.rendererId, @required int layoutPaintOrder, this.symbolRenderer, - }) : this.layoutConfig = new LayoutViewConfig( + }) : this.layoutConfig = LayoutViewConfig( paintOrder: layoutPaintOrder, position: LayoutPosition.DrawArea, positionOrder: LayoutViewPositionOrder.drawArea); - @override - GraphicsFactory get graphicsFactory => _graphicsFactory; - - @override - set graphicsFactory(GraphicsFactory value) { - _graphicsFactory = value; - } - @override void onAttach(BaseChart chart) {} @@ -185,7 +177,7 @@ abstract class BaseSeriesRenderer implements SeriesRenderer { int maxMissing = 0; bool hasSpecifiedCategory = false; - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { if (series.colorFn == null) { // If there is no category, give it a default category to match logic. String category = series.seriesCategory; @@ -208,7 +200,7 @@ abstract class BaseSeriesRenderer implements SeriesRenderer { if (!emptyCategoryUsesSinglePalette && !hasSpecifiedCategory) { final palettes = StyleFactory.style.getOrderedPalettes(maxMissing); int index = 0; - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { if (series.colorFn == null) { final color = palettes[index % palettes.length].shadeDefault; index++; @@ -227,7 +219,7 @@ abstract class BaseSeriesRenderer implements SeriesRenderer { // the max for any category to ensure that the gradients look appropriate. final colorsByCategory = >{}; int index = 0; - missingColorCountPerCategory.keys.forEach((String category) { + missingColorCountPerCategory.keys.forEach((category) { colorsByCategory[category] = colorPalettes[index % colorPalettes.length].makeShades(maxMissing); index++; @@ -236,7 +228,7 @@ abstract class BaseSeriesRenderer implements SeriesRenderer { missingColorCountPerCategory[category] = 0; }); - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { if (series.colorFn == null) { final category = series.seriesCategory ?? defaultCategory; @@ -249,12 +241,12 @@ abstract class BaseSeriesRenderer implements SeriesRenderer { } // Fill color defaults to the series color if no accessor is provided. - series.fillColorFn ??= (int index) => series.colorFn(index); + series.fillColorFn ??= (index) => series.colorFn(index); }); } else { - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { // Fill color defaults to the series color if no accessor is provided. - series.fillColorFn ??= (int index) => series.colorFn(index); + series.fillColorFn ??= (index) => series.colorFn(index); }); } } @@ -346,7 +338,7 @@ abstract class BaseSeriesRenderer implements SeriesRenderer { var strokeWidthPx = strokeWidthPxFn != null ? strokeWidthPxFn(index) : null; strokeWidthPx = strokeWidthPx?.toDouble(); - final details = new DatumDetails( + final details = DatumDetails( datum: seriesDatum.datum, index: seriesDatum.index, domain: domainValue, diff --git a/web/charts/common/lib/src/chart/layout/layout_config.dart b/web/charts/common/lib/src/chart/layout/layout_config.dart index 7c05f73b0..1ef635e39 100644 --- a/web/charts/common/lib/src/chart/layout/layout_config.dart +++ b/web/charts/common/lib/src/chart/layout/layout_config.dart @@ -35,7 +35,7 @@ class LayoutConfig { /// Specs that applies to one margin. class MarginSpec { /// [MarginSpec] that has max of 50 percent. - static const defaultSpec = const MarginSpec._internal(null, null, null, 50); + static const defaultSpec = MarginSpec._internal(null, null, null, 50); final int _minPixel; final int _maxPixel; @@ -64,7 +64,7 @@ class MarginSpec { assert(minPixel <= maxPixel); } - return new MarginSpec._internal(minPixel, maxPixel, null, null); + return MarginSpec._internal(minPixel, maxPixel, null, null); } /// Create [MarginSpec] with a fixed pixel size [pixels]. @@ -74,7 +74,7 @@ class MarginSpec { // Require require or higher setting if set assert(pixels == null || pixels >= 0); - return new MarginSpec._internal(pixels, pixels, null, null); + return MarginSpec._internal(pixels, pixels, null, null); } /// Create [MarginSpec] that specifies min/max percentage. @@ -92,7 +92,7 @@ class MarginSpec { assert(minPercent <= maxPercent); } - return new MarginSpec._internal(null, null, minPercent, maxPercent); + return MarginSpec._internal(null, null, minPercent, maxPercent); } /// Get the min pixels, given the [totalPixels]. diff --git a/web/charts/common/lib/src/chart/layout/layout_manager_impl.dart b/web/charts/common/lib/src/chart/layout/layout_manager_impl.dart index 55dbaaa7b..863243b16 100644 --- a/web/charts/common/lib/src/chart/layout/layout_manager_impl.dart +++ b/web/charts/common/lib/src/chart/layout/layout_manager_impl.dart @@ -53,7 +53,7 @@ class LayoutManagerImpl implements LayoutManager { /// Create a new [LayoutManager]. LayoutManagerImpl({LayoutConfig config}) - : this.config = config ?? new LayoutConfig(); + : this.config = config ?? LayoutConfig(); /// Add one [LayoutView]. void addView(LayoutView view) { @@ -79,9 +79,9 @@ class LayoutManagerImpl implements LayoutManager { @override List get paintOrderedViews { if (_viewsNeedPaintSort) { - _paintOrderedViews = new List.from(_views); + _paintOrderedViews = List.from(_views); - _paintOrderedViews.sort((LayoutView v1, LayoutView v2) => + _paintOrderedViews.sort((v1, v2) => v1.layoutConfig.paintOrder.compareTo(v2.layoutConfig.paintOrder)); _viewsNeedPaintSort = false; @@ -93,10 +93,9 @@ class LayoutManagerImpl implements LayoutManager { @override List get positionOrderedViews { if (_viewsNeedPositionSort) { - _positionOrderedViews = new List.from(_views); + _positionOrderedViews = List.from(_views); - _positionOrderedViews.sort((LayoutView v1, LayoutView v2) => v1 - .layoutConfig.positionOrder + _positionOrderedViews.sort((v1, v2) => v1.layoutConfig.positionOrder .compareTo(v2.layoutConfig.positionOrder)); _viewsNeedPositionSort = false; @@ -114,8 +113,7 @@ class LayoutManagerImpl implements LayoutManager { Rectangle get drawableLayoutAreaBounds { assert(_drawAreaBoundsOutdated == false); - final drawableViews = - _views.where((LayoutView view) => view.isSeriesRenderer); + final drawableViews = _views.where((view) => view.isSeriesRenderer); var componentBounds = drawableViews?.first?.componentBounds; @@ -126,7 +124,7 @@ class LayoutManagerImpl implements LayoutManager { } } } else { - componentBounds = new Rectangle(0, 0, 0, 0); + componentBounds = Rectangle(0, 0, 0, 0); } return componentBounds; @@ -226,8 +224,8 @@ class LayoutManagerImpl implements LayoutManager { ); // Bounds for the draw area. - _drawAreaBounds = new Rectangle(measurements.leftWidth, - measurements.topHeight, drawAreaWidth, drawAreaHeight); + _drawAreaBounds = Rectangle(measurements.leftWidth, measurements.topHeight, + drawAreaWidth, drawAreaHeight); _drawAreaBoundsOutdated = false; } @@ -243,26 +241,26 @@ class LayoutManagerImpl implements LayoutManager { _viewsForPositions(LayoutPosition.Left, LayoutPosition.FullLeft); var drawAreaViews = _viewsForPositions(LayoutPosition.DrawArea); - final fullBounds = new Rectangle(0, 0, width, height); + final fullBounds = Rectangle(0, 0, width, height); // Layout the margins. - new LeftMarginLayoutStrategy() + LeftMarginLayoutStrategy() .layout(leftViews, _measurements.leftSizes, fullBounds, drawAreaBounds); - new RightMarginLayoutStrategy().layout( + RightMarginLayoutStrategy().layout( rightViews, _measurements.rightSizes, fullBounds, drawAreaBounds); - new BottomMarginLayoutStrategy().layout( + BottomMarginLayoutStrategy().layout( bottomViews, _measurements.bottomSizes, fullBounds, drawAreaBounds); - new TopMarginLayoutStrategy() + TopMarginLayoutStrategy() .layout(topViews, _measurements.topSizes, fullBounds, drawAreaBounds); // Layout the drawArea. - drawAreaViews.forEach( - (LayoutView view) => view.layout(_drawAreaBounds, _drawAreaBounds)); + drawAreaViews + .forEach((view) => view.layout(_drawAreaBounds, _drawAreaBounds)); } Iterable _viewsForPositions(LayoutPosition p1, [LayoutPosition p2]) { - return positionOrderedViews.where((LayoutView view) => + return positionOrderedViews.where((view) => (view.layoutConfig.position == p1 || (p2 != null && view.layoutConfig.position == p2))); } @@ -297,14 +295,14 @@ class LayoutManagerImpl implements LayoutManager { ? height - bottomHeight - topHeight : height; - var leftSizes = new LeftMarginLayoutStrategy().measure(leftViews, + var leftSizes = LeftMarginLayoutStrategy().measure(leftViews, maxWidth: useMax ? maxLeftWidth : leftWidth, height: adjustedHeight, fullHeight: height); leftWidth = max(leftSizes.total, config.leftSpec.getMinPixels(width)); - var rightSizes = new RightMarginLayoutStrategy().measure(rightViews, + var rightSizes = RightMarginLayoutStrategy().measure(rightViews, maxWidth: useMax ? maxRightWidth : rightWidth, height: adjustedHeight, fullHeight: height); @@ -312,20 +310,20 @@ class LayoutManagerImpl implements LayoutManager { final adjustedWidth = width - leftWidth - rightWidth; - var bottomSizes = new BottomMarginLayoutStrategy().measure(bottomViews, + var bottomSizes = BottomMarginLayoutStrategy().measure(bottomViews, maxHeight: useMax ? maxBottomHeight : bottomHeight, width: adjustedWidth, fullWidth: width); bottomHeight = max(bottomSizes.total, config.bottomSpec.getMinPixels(height)); - var topSizes = new TopMarginLayoutStrategy().measure(topViews, + var topSizes = TopMarginLayoutStrategy().measure(topViews, maxHeight: useMax ? maxTopHeight : topHeight, width: adjustedWidth, fullWidth: width); topHeight = max(topSizes.total, config.topSpec.getMinPixels(height)); - return new _MeasuredSizes( + return _MeasuredSizes( leftWidth: leftWidth, leftSizes: leftSizes, rightWidth: rightWidth, diff --git a/web/charts/common/lib/src/chart/layout/layout_margin_strategy.dart b/web/charts/common/lib/src/chart/layout/layout_margin_strategy.dart index 9baab1972..12155861e 100644 --- a/web/charts/common/lib/src/chart/layout/layout_margin_strategy.dart +++ b/web/charts/common/lib/src/chart/layout/layout_margin_strategy.dart @@ -39,8 +39,8 @@ class SizeList { } class _DesiredViewSizes { - final preferredSizes = new SizeList(); - final minimumSizes = new SizeList(); + final preferredSizes = SizeList(); + final minimumSizes = SizeList(); void add(int preferred, int minimum) { preferredSizes.add(preferred); @@ -74,10 +74,10 @@ abstract class VerticalMarginStrategy { {@required int maxWidth, @required int height, @required int fullHeight}) { - final measuredWidths = new _DesiredViewSizes(); + final measuredWidths = _DesiredViewSizes(); int remainingWidth = maxWidth; - views.forEach((LayoutView view) { + views.forEach((view) { final params = view.layoutConfig; final viewMargin = params.viewMargin; @@ -118,7 +118,7 @@ class LeftMarginLayoutStrategy extends VerticalMarginStrategy { var prevBoundsRight = drawAreaBounds.left; int i = 0; - views.forEach((LayoutView view) { + views.forEach((view) { final params = view.layoutConfig; final width = measuredSizes[i]; @@ -133,7 +133,7 @@ class LeftMarginLayoutStrategy extends VerticalMarginStrategy { prevBoundsRight = left - params.viewMargin.leftPx; // Layout this component. - view.layout(new Rectangle(left, top, width, height), drawAreaBounds); + view.layout(Rectangle(left, top, width, height), drawAreaBounds); i++; }); @@ -148,7 +148,7 @@ class RightMarginLayoutStrategy extends VerticalMarginStrategy { var prevBoundsLeft = drawAreaBounds.right; int i = 0; - views.forEach((LayoutView view) { + views.forEach((view) { final params = view.layoutConfig; final width = measuredSizes[i]; @@ -163,7 +163,7 @@ class RightMarginLayoutStrategy extends VerticalMarginStrategy { prevBoundsLeft = left + width + params.viewMargin.rightPx; // Layout this component. - view.layout(new Rectangle(left, top, width, height), drawAreaBounds); + view.layout(Rectangle(left, top, width, height), drawAreaBounds); i++; }); @@ -174,10 +174,10 @@ class RightMarginLayoutStrategy extends VerticalMarginStrategy { abstract class HorizontalMarginStrategy { SizeList measure(Iterable views, {@required int maxHeight, @required int width, @required int fullWidth}) { - final measuredHeights = new _DesiredViewSizes(); + final measuredHeights = _DesiredViewSizes(); int remainingHeight = maxHeight; - views.forEach((LayoutView view) { + views.forEach((view) { final params = view.layoutConfig; final viewMargin = params.viewMargin; @@ -218,7 +218,7 @@ class TopMarginLayoutStrategy extends HorizontalMarginStrategy { var prevBoundsBottom = drawAreaBounds.top; int i = 0; - views.forEach((LayoutView view) { + views.forEach((view) { final params = view.layoutConfig; final height = measuredSizes[i]; @@ -234,7 +234,7 @@ class TopMarginLayoutStrategy extends HorizontalMarginStrategy { prevBoundsBottom = top - params.viewMargin.topPx; // Layout this component. - view.layout(new Rectangle(left, top, width, height), drawAreaBounds); + view.layout(Rectangle(left, top, width, height), drawAreaBounds); i++; }); @@ -249,7 +249,7 @@ class BottomMarginLayoutStrategy extends HorizontalMarginStrategy { var prevBoundsTop = drawAreaBounds.bottom; int i = 0; - views.forEach((LayoutView view) { + views.forEach((view) { final params = view.layoutConfig; final height = measuredSizes[i]; @@ -265,7 +265,7 @@ class BottomMarginLayoutStrategy extends HorizontalMarginStrategy { prevBoundsTop = top + height + params.viewMargin.bottomPx; // Layout this component. - view.layout(new Rectangle(left, top, width, height), drawAreaBounds); + view.layout(Rectangle(left, top, width, height), drawAreaBounds); i++; }); diff --git a/web/charts/common/lib/src/chart/layout/layout_view.dart b/web/charts/common/lib/src/chart/layout/layout_view.dart index 91cb7dc37..373dc178a 100644 --- a/web/charts/common/lib/src/chart/layout/layout_view.dart +++ b/web/charts/common/lib/src/chart/layout/layout_view.dart @@ -80,8 +80,7 @@ class LayoutViewPositionOrder { /// A configuration for margin (empty space) around a layout child view. class ViewMargin { /// A [ViewMargin] with all zero px. - static const empty = - const ViewMargin(topPx: 0, bottomPx: 0, rightPx: 0, leftPx: 0); + static const empty = ViewMargin(topPx: 0, bottomPx: 0, rightPx: 0, leftPx: 0); final int topPx; final int bottomPx; @@ -152,7 +151,7 @@ class LayoutViewConfig { /// The measurement is tight to the component, without adding [ComponentBuffer]. class ViewMeasuredSizes { /// All zeroes component size. - static const zero = const ViewMeasuredSizes( + static const zero = ViewMeasuredSizes( preferredWidth: 0, preferredHeight: 0, minWidth: 0, minHeight: 0); final int preferredWidth; diff --git a/web/charts/common/lib/src/chart/line/line_chart.dart b/web/charts/common/lib/src/chart/line/line_chart.dart index 6ea693fd4..65335b63c 100644 --- a/web/charts/common/lib/src/chart/line/line_chart.dart +++ b/web/charts/common/lib/src/chart/line/line_chart.dart @@ -37,7 +37,6 @@ class LineChart extends NumericCartesianChart { @override SeriesRenderer makeDefaultRenderer() { - return new LineRenderer() - ..rendererId = SeriesRenderer.defaultRendererId; + return LineRenderer()..rendererId = SeriesRenderer.defaultRendererId; } } diff --git a/web/charts/common/lib/src/chart/line/line_renderer.dart b/web/charts/common/lib/src/chart/line/line_renderer.dart index 19c7e665f..80fa01f94 100644 --- a/web/charts/common/lib/src/chart/line/line_renderer.dart +++ b/web/charts/common/lib/src/chart/line/line_renderer.dart @@ -33,11 +33,10 @@ import '../scatter_plot/point_renderer.dart' show PointRenderer; import '../scatter_plot/point_renderer_config.dart' show PointRendererConfig; import 'line_renderer_config.dart' show LineRendererConfig; -const styleSegmentsKey = const AttributeKey>( - 'LineRenderer.styleSegments'); +const styleSegmentsKey = + AttributeKey>('LineRenderer.styleSegments'); -const lineStackIndexKey = - const AttributeKey('LineRenderer.lineStackIndex'); +const lineStackIndexKey = AttributeKey('LineRenderer.lineStackIndex'); class LineRenderer extends BaseCartesianRenderer { // Configuration used to extend the clipping area to extend the draw bounds. @@ -69,9 +68,9 @@ class LineRenderer extends BaseCartesianRenderer { final _currentKeys = []; factory LineRenderer({String rendererId, LineRendererConfig config}) { - return new LineRenderer._internal( + return LineRenderer._internal( rendererId: rendererId ?? 'line', - config: config ?? new LineRendererConfig()); + config: config ?? LineRendererConfig()); } LineRenderer._internal({String rendererId, this.config}) @@ -79,8 +78,8 @@ class LineRenderer extends BaseCartesianRenderer { rendererId: rendererId, layoutPaintOrder: config.layoutPaintOrder, symbolRenderer: config.symbolRenderer) { - _pointRenderer = new PointRenderer( - config: new PointRendererConfig(radiusPx: this.config.radiusPx)); + _pointRenderer = PointRenderer( + config: PointRendererConfig(radiusPx: this.config.radiusPx)); } @override @@ -96,13 +95,13 @@ class LineRenderer extends BaseCartesianRenderer { void configureSeries(List> seriesList) { assignMissingColors(seriesList, emptyCategoryUsesSinglePalette: false); - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { // Add a default area color function which applies the configured // areaOpacity value to the datum's current color. - series.areaColorFn ??= (int index) { + series.areaColorFn ??= (index) { final color = series.colorFn(index); - return new Color( + return Color( r: color.r, g: color.g, b: color.b, @@ -123,7 +122,7 @@ class LineRenderer extends BaseCartesianRenderer { series.measureUpperBoundFn != null && series.measureLowerBoundFn != null); - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { final colorFn = series.colorFn; final areaColorFn = series.areaColorFn; final domainFn = series.domainFn; @@ -136,7 +135,7 @@ class LineRenderer extends BaseCartesianRenderer { final styleSegments = <_LineRendererElement>[]; var styleSegmentsIndex = 0; - final usedKeys = new Set(); + final usedKeys = Set(); // Configure style segments for each series. String previousSegmentKey; @@ -163,8 +162,8 @@ class LineRenderer extends BaseCartesianRenderer { // Compare strokeWidthPx to 2 decimals of precision. Any less and you // can't see any difference in the canvas anyways. final strokeWidthPxRounded = (strokeWidthPx * 100).round() / 100; - var styleKey = '${series.id}__${styleSegmentsIndex}__${color}' - '__${dashPattern}__${strokeWidthPxRounded}'; + var styleKey = '${series.id}__${styleSegmentsIndex}__$color' + '__${dashPattern}__$strokeWidthPxRounded'; if (styleKey != previousSegmentKey) { // If we have a repeated style segment, update the repeat index and @@ -173,8 +172,8 @@ class LineRenderer extends BaseCartesianRenderer { if (usedKeys.isNotEmpty && usedKeys.contains(styleKey)) { styleSegmentsIndex++; - styleKey = '${series.id}__${styleSegmentsIndex}__${color}' - '__${dashPattern}__${strokeWidthPxRounded}'; + styleKey = '${series.id}__${styleSegmentsIndex}__$color' + '__${dashPattern}__$strokeWidthPxRounded'; } // Make sure that the previous style segment extends to the current @@ -185,11 +184,11 @@ class LineRenderer extends BaseCartesianRenderer { } // Create a new style segment. - currentDetails = new _LineRendererElement() + currentDetails = _LineRendererElement() ..color = color ..areaColor = areaColor ..dashPattern = dashPattern - ..domainExtent = new _Range(domain, domain) + ..domainExtent = _Range(domain, domain) ..strokeWidthPx = strokeWidthPx ..styleKey = styleKey ..roundEndCaps = config.roundEndCaps; @@ -273,7 +272,7 @@ class LineRenderer extends BaseCartesianRenderer { } } - return (int i) => curOffsets[domainFn(i)]; + return (i) => curOffsets[domainFn(i)]; } /// Merge the line map and the new series so that the new elements are mixed @@ -285,7 +284,7 @@ class LineRenderer extends BaseCartesianRenderer { void _mergeIntoSeriesMap(List> seriesList) { List>>> newLineMap = []; - seriesList.forEach((ImmutableSeries series) { + seriesList.forEach((series) { final key = series.id; // First, add all the series from the old map that have been removed from @@ -332,7 +331,7 @@ class LineRenderer extends BaseCartesianRenderer { _mergeIntoSeriesMap(seriesList); - seriesList.forEach((ImmutableSeries series) { + seriesList.forEach((series) { final domainAxis = series.getAttr(domainAxisKey) as ImmutableAxis; final lineKey = series.id; final stackIndex = series.getAttr(lineStackIndexKey); @@ -372,12 +371,12 @@ class LineRenderer extends BaseCartesianRenderer { // later to display only the relevant parts of data. This ensures that // styles that visually depend on the start location, such as dash // patterns, are not disrupted by other changes in style. - styleSegments.forEach((_LineRendererElement styleSegment) { + styleSegments.forEach((styleSegment) { final styleKey = styleSegment.styleKey; // If we already have an AnimatingPoint for that index, use it. var animatingElements = elementsList.firstWhere( - (_AnimatedElements elements) => elements.styleKey == styleKey, + (elements) => elements.styleKey == styleKey, orElse: () => null); if (animatingElements != null) { @@ -398,7 +397,7 @@ class LineRenderer extends BaseCartesianRenderer { final animatingLines = <_AnimatedLine>[]; for (var index = 0; index < lineElementList.length; index++) { - animatingLines.add(new _AnimatedLine( + animatingLines.add(_AnimatedLine( key: lineElementList[index].styleKey, overlaySeries: series.overlaySeries) ..setNewTarget(lineElementList[index])); @@ -410,7 +409,7 @@ class LineRenderer extends BaseCartesianRenderer { animatingAreas = <_AnimatedArea>[]; for (var index = 0; index < areaElementList.length; index++) { - animatingAreas.add(new _AnimatedArea( + animatingAreas.add(_AnimatedArea( key: areaElementList[index].styleKey, overlaySeries: series.overlaySeries) ..setNewTarget(areaElementList[index])); @@ -424,14 +423,14 @@ class LineRenderer extends BaseCartesianRenderer { animatingBounds ??= <_AnimatedArea>[]; for (var index = 0; index < boundsElementList.length; index++) { - animatingBounds.add(new _AnimatedArea( + animatingBounds.add(_AnimatedArea( key: boundsElementList[index].styleKey, overlaySeries: series.overlaySeries) ..setNewTarget(boundsElementList[index])); } } - animatingElements = new _AnimatedElements() + animatingElements = _AnimatedElements() ..styleKey = styleSegment.styleKey ..allPoints = allPointList ..lines = animatingLines @@ -458,7 +457,7 @@ class LineRenderer extends BaseCartesianRenderer { // than we did in the previous chart draw cycle. // TODO: Nicer animations for incoming segments. if (index >= animatingElements.lines.length) { - animatingElements.lines.add(new _AnimatedLine( + animatingElements.lines.add(_AnimatedLine( key: lineElement.styleKey, overlaySeries: series.overlaySeries)); } @@ -473,7 +472,7 @@ class LineRenderer extends BaseCartesianRenderer { // cycle than we did in the previous chart draw cycle. // TODO: Nicer animations for incoming segments. if (index >= animatingElements.areas.length) { - animatingElements.areas.add(new _AnimatedArea( + animatingElements.areas.add(_AnimatedArea( key: areaElement.styleKey, overlaySeries: series.overlaySeries)); } @@ -489,7 +488,7 @@ class LineRenderer extends BaseCartesianRenderer { // cycle than we did in the previous chart draw cycle. // TODO: Nicer animations for incoming segments. if (index >= animatingElements.bounds.length) { - animatingElements.bounds.add(new _AnimatedArea( + animatingElements.bounds.add(_AnimatedArea( key: boundElement.styleKey, overlaySeries: series.overlaySeries)); } @@ -506,7 +505,7 @@ class LineRenderer extends BaseCartesianRenderer { }); // Animate out lines that don't exist anymore. - _seriesLineMap.forEach((String key, List<_AnimatedElements> elements) { + _seriesLineMap.forEach((key, elements) { for (var element in elements) { if (element.lines != null) { for (var line in element.lines) { @@ -599,10 +598,10 @@ class LineRenderer extends BaseCartesianRenderer { final linePointList = lineSegments[index]; // Update the set of areas that still exist in the series data. - final lineStyleKey = '${styleKey}__line__${index}'; + final lineStyleKey = '${styleKey}__line__$index'; _currentKeys.add(lineStyleKey); - lineElements.add(new _LineRendererElement() + lineElements.add(_LineRendererElement() ..points = linePointList ..color = color ..areaColor = areaColor @@ -622,10 +621,10 @@ class LineRenderer extends BaseCartesianRenderer { final areaPointList = areaSegments[index]; // Update the set of areas that still exist in the series data. - final areaStyleKey = '${styleKey}__area_${index}'; + final areaStyleKey = '${styleKey}__area_$index'; _currentKeys.add(areaStyleKey); - areaElements.add(new _AreaRendererElement() + areaElements.add(_AreaRendererElement() ..points = areaPointList ..color = color ..areaColor = areaColor @@ -643,10 +642,10 @@ class LineRenderer extends BaseCartesianRenderer { for (var index = 0; index < boundsSegment.length; index++) { final boundsPointList = boundsSegment[index]; - final boundsStyleKey = '${styleKey}__bounds_${index}'; + final boundsStyleKey = '${styleKey}__bounds_$index'; _currentKeys.add(boundsStyleKey); - boundsElements.add(new _AreaRendererElement() + boundsElements.add(_AreaRendererElement() ..points = boundsPointList ..color = color ..areaColor = areaColor @@ -858,7 +857,7 @@ class LineRenderer extends BaseCartesianRenderer { final areaPointList = <_DatumPoint>[]; // Add all points for upper bounds. - areaPointList.addAll(pointList.map((datumPoint) => new _DatumPoint.from( + areaPointList.addAll(pointList.map((datumPoint) => _DatumPoint.from( datumPoint, datumPoint.x, initializeFromZero @@ -869,7 +868,7 @@ class LineRenderer extends BaseCartesianRenderer { // Add all points for lower bounds, in reverse order. areaPointList.addAll(pointList.reversed.map((datumPoint) => - new _DatumPoint.from( + _DatumPoint.from( datumPoint, datumPoint.x, initializeFromZero @@ -902,7 +901,7 @@ class LineRenderer extends BaseCartesianRenderer { final endPosition = domainAxis.getLocation(details.domainExtent.end) ?? drawBounds.right.toDouble(); - return new _Range(startPosition, endPosition); + return _Range(startPosition, endPosition); } @override @@ -919,9 +918,8 @@ class LineRenderer extends BaseCartesianRenderer { if (animationPercent == 1.0) { final keysToRemove = []; - _seriesLineMap.forEach((String key, List<_AnimatedElements> elements) { - elements.removeWhere( - (_AnimatedElements element) => element.animatingOut); + _seriesLineMap.forEach((key, elements) { + elements.removeWhere((element) => element.animatingOut); if (elements.isEmpty) { keysToRemove.add(key); @@ -931,16 +929,15 @@ class LineRenderer extends BaseCartesianRenderer { keysToRemove.forEach(_seriesLineMap.remove); } - _seriesLineMap.forEach((String key, List<_AnimatedElements> elements) { + _seriesLineMap.forEach((key, elements) { if (config.includeArea) { elements .map>>( - (_AnimatedElements animatingElement) => - animatingElement.areas) - .expand<_AnimatedArea>((List<_AnimatedArea> areas) => areas) - .map<_AreaRendererElement>((_AnimatedArea animatingArea) => + (animatingElement) => animatingElement.areas) + .expand<_AnimatedArea>((areas) => areas) + .map<_AreaRendererElement>((animatingArea) => animatingArea?.getCurrentArea(animationPercent)) - .forEach((_AreaRendererElement area) { + .forEach((area) { if (area != null) { canvas.drawPolygon( clipBounds: _getClipBoundsForExtent(area.positionExtent), @@ -953,12 +950,11 @@ class LineRenderer extends BaseCartesianRenderer { if (_hasMeasureBounds) { elements .map>>( - (_AnimatedElements animatingElement) => - animatingElement.bounds) - .expand<_AnimatedArea>((List<_AnimatedArea> bounds) => bounds) - .map<_AreaRendererElement>((_AnimatedArea animatingBounds) => + (animatingElement) => animatingElement.bounds) + .expand<_AnimatedArea>((bounds) => bounds) + .map<_AreaRendererElement>((animatingBounds) => animatingBounds?.getCurrentArea(animationPercent)) - .forEach((_AreaRendererElement bound) { + .forEach((bound) { if (bound != null) { canvas.drawPolygon( clipBounds: _getClipBoundsForExtent(bound.positionExtent), @@ -971,12 +967,11 @@ class LineRenderer extends BaseCartesianRenderer { if (config.includeLine) { elements .map>>( - (_AnimatedElements animatingElement) => - animatingElement.lines) - .expand<_AnimatedLine>((List<_AnimatedLine> lines) => lines) - .map<_LineRendererElement>((_AnimatedLine animatingLine) => + (animatingElement) => animatingElement.lines) + .expand<_AnimatedLine>((lines) => lines) + .map<_LineRendererElement>((animatingLine) => animatingLine?.getCurrentLine(animationPercent)) - .forEach((_LineRendererElement line) { + .forEach((line) { if (line != null) { canvas.drawLine( clipBounds: _getClipBoundsForExtent(line.positionExtent), @@ -1009,7 +1004,7 @@ class LineRenderer extends BaseCartesianRenderer { ? clamp((extent.start), drawBounds.left, drawBounds.right) : clamp((extent.end), drawBounds.left, drawBounds.right); - return new Rectangle( + return Rectangle( left, drawBounds.top - drawBoundTopExtensionPx, right - left, @@ -1035,7 +1030,7 @@ class LineRenderer extends BaseCartesianRenderer { ? measureAxis.getLocation(measureValue + measureOffsetValue) : null; - return new _DatumPoint( + return _DatumPoint( datum: datum, domain: domainValue, series: series, @@ -1054,18 +1049,18 @@ class LineRenderer extends BaseCartesianRenderer { return nearest; } - _seriesLineMap.values.forEach((List<_AnimatedElements> seriesSegments) { + _seriesLineMap.values.forEach((seriesSegments) { _DatumPoint nearestPoint; double nearestDomainDistance = 10000.0; double nearestMeasureDistance = 10000.0; double nearestRelativeDistance = 10000.0; - seriesSegments.forEach((_AnimatedElements segment) { + seriesSegments.forEach((segment) { if (segment.overlaySeries) { return; } - segment.allPoints.forEach((Point p) { + segment.allPoints.forEach((p) { // Don't look at points not in the drawArea. if (p.x < componentBounds.left || p.x > componentBounds.right) { return; @@ -1108,8 +1103,8 @@ class LineRenderer extends BaseCartesianRenderer { // Found a point, add it to the list. if (nearestPoint != null) { - nearest.add(new DatumDetails( - chartPosition: new Point(nearestPoint.x, nearestPoint.y), + nearest.add(DatumDetails( + chartPosition: Point(nearestPoint.x, nearestPoint.y), datum: nearestPoint.datum, domain: nearestPoint.domain, series: nearestPoint.series, @@ -1134,9 +1129,9 @@ class LineRenderer extends BaseCartesianRenderer { final point = _getPoint(seriesDatum.datum, details.domain, series, domainAxis, details.measure, details.measureOffset, measureAxis); - final chartPosition = new Point(point.x, point.y); + final chartPosition = Point(point.x, point.y); - return new DatumDetails.from(details, chartPosition: chartPosition); + return DatumDetails.from(details, chartPosition: chartPosition); } } @@ -1151,7 +1146,7 @@ class _DatumPoint extends Point { : super(x, y); factory _DatumPoint.from(_DatumPoint other, [double x, double y]) { - return new _DatumPoint( + return _DatumPoint( datum: other.datum, domain: other.domain, series: other.series, @@ -1175,13 +1170,11 @@ class _LineRendererElement { bool roundEndCaps; _LineRendererElement clone() { - return new _LineRendererElement() - ..points = new List<_DatumPoint>.from(points) - ..color = color != null ? new Color.fromOther(color: color) : null - ..areaColor = - areaColor != null ? new Color.fromOther(color: areaColor) : null - ..dashPattern = - dashPattern != null ? new List.from(dashPattern) : null + return _LineRendererElement() + ..points = List<_DatumPoint>.from(points) + ..color = color != null ? Color.fromOther(color: color) : null + ..areaColor = areaColor != null ? Color.fromOther(color: areaColor) : null + ..dashPattern = dashPattern != null ? List.from(dashPattern) : null ..domainExtent = domainExtent ..measureAxisPosition = measureAxisPosition ..positionExtent = positionExtent @@ -1207,7 +1200,7 @@ class _LineRendererElement { lastPoint = previousPoint; } else { previousPoint = - new _DatumPoint.from(targetPoint, targetPoint.x, lastPoint.y); + _DatumPoint.from(targetPoint, targetPoint.x, lastPoint.y); } final x = ((targetPoint.x - previousPoint.x) * animationPercent) + @@ -1224,9 +1217,9 @@ class _LineRendererElement { } if (points.length - 1 >= pointIndex) { - points[pointIndex] = new _DatumPoint.from(targetPoint, x, y); + points[pointIndex] = _DatumPoint.from(targetPoint, x, y); } else { - points.add(new _DatumPoint.from(targetPoint, x, y)); + points.add(_DatumPoint.from(targetPoint, x, y)); } } @@ -1278,7 +1271,7 @@ class _AnimatedLine { for (var index = 0; index < newTarget.points.length; index++) { var targetPoint = newTarget.points[index]; - newPoints.add(new _DatumPoint.from(targetPoint, targetPoint.x, + newPoints.add(_DatumPoint.from(targetPoint, targetPoint.x, newTarget.measureAxisPosition.roundToDouble())); } @@ -1328,11 +1321,10 @@ class _AreaRendererElement { String styleKey; _AreaRendererElement clone() { - return new _AreaRendererElement() - ..points = new List<_DatumPoint>.from(points) - ..color = color != null ? new Color.fromOther(color: color) : null - ..areaColor = - areaColor != null ? new Color.fromOther(color: areaColor) : null + return _AreaRendererElement() + ..points = List<_DatumPoint>.from(points) + ..color = color != null ? Color.fromOther(color: color) : null + ..areaColor = areaColor != null ? Color.fromOther(color: areaColor) : null ..domainExtent = domainExtent ..measureAxisPosition = measureAxisPosition ..positionExtent = positionExtent @@ -1356,7 +1348,7 @@ class _AreaRendererElement { lastPoint = previousPoint; } else { previousPoint = - new _DatumPoint.from(targetPoint, targetPoint.x, lastPoint.y); + _DatumPoint.from(targetPoint, targetPoint.x, lastPoint.y); } final x = ((targetPoint.x - previousPoint.x) * animationPercent) + @@ -1373,9 +1365,9 @@ class _AreaRendererElement { } if (points.length - 1 >= pointIndex) { - points[pointIndex] = new _DatumPoint.from(targetPoint, x, y); + points[pointIndex] = _DatumPoint.from(targetPoint, x, y); } else { - points.add(new _DatumPoint.from(targetPoint, x, y)); + points.add(_DatumPoint.from(targetPoint, x, y)); } } @@ -1423,7 +1415,7 @@ class _AnimatedArea { for (var index = 0; index < newTarget.points.length; index++) { var targetPoint = newTarget.points[index]; - newPoints.add(new _DatumPoint.from(targetPoint, targetPoint.x, + newPoints.add(_DatumPoint.from(targetPoint, targetPoint.x, newTarget.measureAxisPosition.roundToDouble())); } diff --git a/web/charts/common/lib/src/chart/line/line_renderer_config.dart b/web/charts/common/lib/src/chart/line/line_renderer_config.dart index eee44a658..72825840e 100644 --- a/web/charts/common/lib/src/chart/line/line_renderer_config.dart +++ b/web/charts/common/lib/src/chart/line/line_renderer_config.dart @@ -26,7 +26,7 @@ class LineRendererConfig extends LayoutViewConfig final SymbolRenderer symbolRenderer; - final rendererAttributes = new RendererAttributes(); + final rendererAttributes = RendererAttributes(); /// Radius of points on the line, if [includePoints] is enabled. final double radiusPx; @@ -83,10 +83,10 @@ class LineRendererConfig extends LayoutViewConfig this.areaOpacity = 0.1, this.roundEndCaps = false, SymbolRenderer symbolRenderer}) - : this.symbolRenderer = symbolRenderer ?? new LineSymbolRenderer(); + : this.symbolRenderer = symbolRenderer ?? LineSymbolRenderer(); @override LineRenderer build() { - return new LineRenderer(config: this, rendererId: customRendererId); + return LineRenderer(config: this, rendererId: customRendererId); } } diff --git a/web/charts/common/lib/src/chart/pie/arc_label_decorator.dart b/web/charts/common/lib/src/chart/pie/arc_label_decorator.dart index 2e65877fd..e0ef3f7f6 100644 --- a/web/charts/common/lib/src/chart/pie/arc_label_decorator.dart +++ b/web/charts/common/lib/src/chart/pie/arc_label_decorator.dart @@ -39,10 +39,10 @@ class ArcLabelDecorator extends ArcRendererDecorator { static const _defaultLabelPosition = ArcLabelPosition.auto; static const _defaultLabelPadding = 5; static final _defaultInsideLabelStyle = - new TextStyleSpec(fontSize: 12, color: Color.white); + TextStyleSpec(fontSize: 12, color: Color.white); static final _defaultOutsideLabelStyle = - new TextStyleSpec(fontSize: 12, color: Color.black); - static final _defaultLeaderLineStyle = new ArcLabelLeaderLineStyleSpec( + TextStyleSpec(fontSize: 12, color: Color.black); + static final _defaultLeaderLineStyle = ArcLabelLeaderLineStyleSpec( length: 20.0, thickness: 1.0, color: StyleFactory.style.arcLabelOutsideLeaderLine); @@ -136,16 +136,16 @@ class ArcLabelDecorator extends ArcRendererDecorator { final centerRadius = arcElements.innerRadius + ((arcElements.radius - arcElements.innerRadius) / 2); - final innerPoint = new Point( + final innerPoint = Point( arcElements.center.x + arcElements.innerRadius * cos(centerAngle), arcElements.center.y + arcElements.innerRadius * sin(centerAngle)); - final outerPoint = new Point( + final outerPoint = Point( arcElements.center.x + arcElements.radius * cos(centerAngle), arcElements.center.y + arcElements.radius * sin(centerAngle)); //final bounds = element.bounds; - final bounds = new Rectangle.fromPoints(innerPoint, outerPoint); + final bounds = Rectangle.fromPoints(innerPoint, outerPoint); // Get space available inside and outside the arc. final totalPadding = labelPadding * 2; @@ -268,7 +268,7 @@ class ArcLabelDecorator extends ArcRendererDecorator { bool previousLabelLeftOfChart) { final labelRadius = arcElements.radius + leaderLineStyleSpec.length / 2; - final labelPoint = new Point( + final labelPoint = Point( arcElements.center.x + labelRadius * cos(centerAngle), arcElements.center.y + labelRadius * sin(centerAngle)); @@ -347,10 +347,10 @@ class ArcLabelDecorator extends ArcRendererDecorator { final tailX = (labelLeftOfChart ? -1 : 1) * leaderLineStyleSpec.length; final leaderLineTailPoint = - new Point(labelPoint.x + tailX, labelPoint.y); + Point(labelPoint.x + tailX, labelPoint.y); final centerRadius = radius - leaderLineStyleSpec.length / 2; - final leaderLineStartPoint = new Point( + final leaderLineStartPoint = Point( arcCenterPoint.x + centerRadius * cos(centerAngle), arcCenterPoint.y + centerRadius * sin(centerAngle)); diff --git a/web/charts/common/lib/src/chart/pie/arc_renderer.dart b/web/charts/common/lib/src/chart/pie/arc_renderer.dart index f33030f55..69cef8f46 100644 --- a/web/charts/common/lib/src/chart/pie/arc_renderer.dart +++ b/web/charts/common/lib/src/chart/pie/arc_renderer.dart @@ -32,7 +32,7 @@ import 'arc_renderer_config.dart' show ArcRendererConfig; import 'arc_renderer_decorator.dart' show ArcRendererDecorator; const arcElementsKey = - const AttributeKey>('ArcRenderer.elements'); + AttributeKey>('ArcRenderer.elements'); class ArcRenderer extends BaseSeriesRenderer { // Constant used in the calculation of [centerContentBounds], calculated once @@ -49,7 +49,7 @@ class ArcRenderer extends BaseSeriesRenderer { /// /// [LinkedHashMap] is used to render the series on the canvas in the same /// order as the data was given to the chart. - final _seriesArcMap = new LinkedHashMap>(); + final _seriesArcMap = LinkedHashMap>(); // Store a list of arcs that exist in the series data. // @@ -59,9 +59,9 @@ class ArcRenderer extends BaseSeriesRenderer { final _currentKeys = []; factory ArcRenderer({String rendererId, ArcRendererConfig config}) { - return new ArcRenderer._internal( + return ArcRenderer._internal( rendererId: rendererId ?? 'line', - config: config ?? new ArcRendererConfig()); + config: config ?? ArcRendererConfig()); } ArcRenderer._internal({String rendererId, this.config}) @@ -84,7 +84,7 @@ class ArcRenderer extends BaseSeriesRenderer { @override void preprocessSeries(List> seriesList) { - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { var elements = >[]; var domainFn = series.domainFn; @@ -110,7 +110,7 @@ class ArcRenderer extends BaseSeriesRenderer { var angle = arcLength == 2 * pi ? arcLength * .999999 : arcLength; var endAngle = startAngle + angle; - var details = new ArcRendererElement(); + var details = ArcRendererElement(); details.startAngle = startAngle; details.endAngle = endAngle; details.index = 0; @@ -132,7 +132,7 @@ class ArcRenderer extends BaseSeriesRenderer { var angle = arcLength * percentOfSeries; var endAngle = startAngle + angle; - var details = new ArcRendererElement(); + var details = ArcRendererElement(); details.startAngle = startAngle; details.endAngle = endAngle; details.index = arcIndex; @@ -158,8 +158,7 @@ class ArcRenderer extends BaseSeriesRenderer { final bounds = _chart.drawAreaBounds; - final center = new Point( - (bounds.left + bounds.width / 2).toDouble(), + final center = Point((bounds.left + bounds.width / 2).toDouble(), (bounds.top + bounds.height / 2).toDouble()); final radius = bounds.height < bounds.width @@ -168,18 +167,18 @@ class ArcRenderer extends BaseSeriesRenderer { if (config.arcRatio != null) { if (0 < config.arcRatio || config.arcRatio > 1) { - throw new ArgumentError('arcRatio must be between 0 and 1'); + throw ArgumentError('arcRatio must be between 0 and 1'); } } final innerRadius = _calculateInnerRadius(radius); - seriesList.forEach((ImmutableSeries series) { + seriesList.forEach((series) { var colorFn = series.colorFn; var arcListKey = series.id; var arcList = - _seriesArcMap.putIfAbsent(arcListKey, () => new _AnimatedArcList()); + _seriesArcMap.putIfAbsent(arcListKey, () => _AnimatedArcList()); var elementsList = series.getAttr(arcElementsKey); @@ -191,9 +190,8 @@ class ArcRenderer extends BaseSeriesRenderer { var arcKey = '__no_data__'; // If we already have an AnimatingArc for that index, use it. - var animatingArc = arcList.arcs.firstWhere( - (_AnimatedArc arc) => arc.key == arcKey, - orElse: () => null); + var animatingArc = arcList.arcs + .firstWhere((arc) => arc.key == arcKey, orElse: () => null); arcList.center = center; arcList.radius = radius; @@ -205,7 +203,7 @@ class ArcRenderer extends BaseSeriesRenderer { // If we don't have any existing arc element, create a new arc. Unlike // real arcs, we should not animate the no data state in from 0. if (animatingArc == null) { - animatingArc = new _AnimatedArc(arcKey, null, null); + animatingArc = _AnimatedArc(arcKey, null, null); arcList.arcs.add(animatingArc); } else { animatingArc.datum = null; @@ -217,7 +215,7 @@ class ArcRenderer extends BaseSeriesRenderer { // Get the arcElement we are going to setup. // Optimization to prevent allocation in non-animating case. - final arcElement = new ArcRendererElement() + final arcElement = ArcRendererElement() ..color = config.noDataColor ..startAngle = details.startAngle ..endAngle = details.endAngle @@ -235,9 +233,8 @@ class ArcRenderer extends BaseSeriesRenderer { var arcKey = domainValue.toString(); // If we already have an AnimatingArc for that index, use it. - var animatingArc = arcList.arcs.firstWhere( - (_AnimatedArc arc) => arc.key == arcKey, - orElse: () => null); + var animatingArc = arcList.arcs + .firstWhere((arc) => arc.key == arcKey, orElse: () => null); arcList.center = center; arcList.radius = radius; @@ -251,8 +248,8 @@ class ArcRenderer extends BaseSeriesRenderer { // angle. If there were no previous arcs, then animate everything in // from 0. if (animatingArc == null) { - animatingArc = new _AnimatedArc(arcKey, datum, domainValue) - ..setNewTarget(new ArcRendererElement() + animatingArc = _AnimatedArc(arcKey, datum, domainValue) + ..setNewTarget(ArcRendererElement() ..color = colorFn(arcIndex) ..startAngle = previousEndAngle ..endAngle = previousEndAngle @@ -273,7 +270,7 @@ class ArcRenderer extends BaseSeriesRenderer { // Get the arcElement we are going to setup. // Optimization to prevent allocation in non-animating case. - final arcElement = new ArcRendererElement() + final arcElement = ArcRendererElement() ..color = colorFn(arcIndex) ..startAngle = details.startAngle ..endAngle = details.endAngle @@ -286,7 +283,7 @@ class ArcRenderer extends BaseSeriesRenderer { }); // Animate out arcs that don't exist anymore. - _seriesArcMap.forEach((String key, _AnimatedArcList arcList) { + _seriesArcMap.forEach((key, arcList) { for (var arcIndex = 0; arcIndex < arcList.arcs.length; arcIndex++) { final arc = arcList.arcs[arcIndex]; final arcStartAngle = arc.previousArcStartAngle; @@ -319,8 +316,8 @@ class ArcRenderer extends BaseSeriesRenderer { if (animationPercent == 1.0) { final keysToRemove = []; - _seriesArcMap.forEach((String key, _AnimatedArcList arcList) { - arcList.arcs.removeWhere((_AnimatedArc arc) => arc.animatingOut); + _seriesArcMap.forEach((key, arcList) { + arcList.arcs.removeWhere((arc) => arc.animatingOut); if (arcList.arcs.isEmpty) { keysToRemove.add(key); @@ -330,9 +327,9 @@ class ArcRenderer extends BaseSeriesRenderer { keysToRemove.forEach(_seriesArcMap.remove); } - _seriesArcMap.forEach((String key, _AnimatedArcList arcList) { + _seriesArcMap.forEach((key, arcList) { final circleSectors = []; - final arcElementsList = new ArcRendererElementList() + final arcElementsList = ArcRendererElementList() ..arcs = >[] ..center = arcList.center ..innerRadius = arcList.innerRadius @@ -342,11 +339,11 @@ class ArcRenderer extends BaseSeriesRenderer { ..strokeWidthPx = arcList.strokeWidthPx; arcList.arcs - .map>((_AnimatedArc animatingArc) => - animatingArc.getCurrentArc(animationPercent)) - .forEach((ArcRendererElement arc) { - circleSectors.add( - new CanvasPieSlice(arc.startAngle, arc.endAngle, fill: arc.color)); + .map>( + (animatingArc) => animatingArc.getCurrentArc(animationPercent)) + .forEach((arc) { + circleSectors + .add(CanvasPieSlice(arc.startAngle, arc.endAngle, fill: arc.color)); arcElementsList.arcs.add(arc); }); @@ -354,8 +351,8 @@ class ArcRenderer extends BaseSeriesRenderer { // Decorate the arcs with decorators that should appear below the main // series data. arcRendererDecorators - .where((ArcRendererDecorator decorator) => !decorator.renderAbove) - .forEach((ArcRendererDecorator decorator) { + .where((decorator) => !decorator.renderAbove) + .forEach((decorator) { decorator.decorate(arcElementsList, canvas, graphicsFactory, drawBounds: drawBounds, animationPercent: animationPercent, @@ -363,15 +360,15 @@ class ArcRenderer extends BaseSeriesRenderer { }); // Draw the arcs. - canvas.drawPie(new CanvasPie( + canvas.drawPie(CanvasPie( circleSectors, arcList.center, arcList.radius, arcList.innerRadius, stroke: arcList.stroke, strokeWidthPx: arcList.strokeWidthPx)); // Decorate the arcs with decorators that should appear above the main // series data. This is the typical place for labels. arcRendererDecorators - .where((ArcRendererDecorator decorator) => decorator.renderAbove) - .forEach((ArcRendererDecorator decorator) { + .where((decorator) => decorator.renderAbove) + .forEach((decorator) { decorator.decorate(arcElementsList, canvas, graphicsFactory, drawBounds: drawBounds, animationPercent: animationPercent, @@ -398,7 +395,7 @@ class ArcRenderer extends BaseSeriesRenderer { arcList.innerRadius < config.minHoleWidthForCenterContent) { // Return default bounds of 0 size. final bounds = _chart.drawAreaBounds; - return new Rectangle((bounds.left + bounds.width / 2).round(), + return Rectangle((bounds.left + bounds.width / 2).round(), (bounds.top + bounds.height / 2).round(), 0, 0); } @@ -406,7 +403,7 @@ class ArcRenderer extends BaseSeriesRenderer { // size that will fit within the pie's inner radius. final width = (_cosPIOver4 * arcList.innerRadius).floor(); - return new Rectangle((arcList.center.x - width).round(), + return Rectangle((arcList.center.x - width).round(), (arcList.center.y - width).round(), width * 2, width * 2); } @@ -422,7 +419,7 @@ class ArcRenderer extends BaseSeriesRenderer { final chartPosition = _getChartPosition(series.id, domain.toString()); - return new DatumDetails( + return DatumDetails( datum: datum, domain: domain, measure: measure, @@ -457,7 +454,7 @@ class ArcRenderer extends BaseSeriesRenderer { final centerPointRadius = arcList.innerRadius + (arcList.radius - arcList.innerRadius) / 2; - chartPosition = new Point( + chartPosition = Point( centerPointRadius * cos(centerAngle) + arcList.center.x, centerPointRadius * sin(centerAngle) + arcList.center.y); @@ -478,7 +475,7 @@ class ArcRenderer extends BaseSeriesRenderer { return nearest; } - _seriesArcMap.forEach((String key, _AnimatedArcList arcList) { + _seriesArcMap.forEach((key, arcList) { if (arcList.series.overlaySeries) { return; } @@ -506,11 +503,11 @@ class ArcRenderer extends BaseSeriesRenderer { chartPointAngle = 2 * pi + chartPointAngle; } - arcList.arcs.forEach((_AnimatedArc arc) { + arcList.arcs.forEach((arc) { if (innerRadius <= distance && distance <= radius) { if (arc.currentArcStartAngle <= chartPointAngle && chartPointAngle <= arc.currentArcEndAngle) { - nearest.add(new DatumDetails( + nearest.add(DatumDetails( series: arcList.series, datum: arc.datum, domain: arc.domain, @@ -531,7 +528,7 @@ class ArcRenderer extends BaseSeriesRenderer { final chartPosition = _getChartPosition(details.series.id, details.domain.toString()); - return new DatumDetails.from(details, chartPosition: chartPosition); + return DatumDetails.from(details, chartPosition: chartPosition); } /// Assigns colors to series that are missing their colorFn. @@ -540,7 +537,7 @@ class ArcRenderer extends BaseSeriesRenderer { {@required bool emptyCategoryUsesSinglePalette}) { int maxMissing = 0; - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { if (series.colorFn == null) { maxMissing = max(maxMissing, series.data.length); } @@ -550,7 +547,7 @@ class ArcRenderer extends BaseSeriesRenderer { final colorPalettes = StyleFactory.style.getOrderedPalettes(1); final colorPalette = colorPalettes[0].makeShades(maxMissing); - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { series.colorFn ??= (index) => colorPalette[index]; }); } @@ -593,10 +590,10 @@ class ArcRendererElement { ImmutableSeries series; ArcRendererElement clone() { - return new ArcRendererElement() + return ArcRendererElement() ..startAngle = startAngle ..endAngle = endAngle - ..color = new Color.fromOther(color: color) + ..color = Color.fromOther(color: color) ..index = index ..key = key ..series = series; diff --git a/web/charts/common/lib/src/chart/pie/arc_renderer_config.dart b/web/charts/common/lib/src/chart/pie/arc_renderer_config.dart index ac98034b3..3844c0530 100644 --- a/web/charts/common/lib/src/chart/pie/arc_renderer_config.dart +++ b/web/charts/common/lib/src/chart/pie/arc_renderer_config.dart @@ -34,7 +34,7 @@ class ArcRendererConfig extends LayoutViewConfig final SymbolRenderer symbolRenderer; - final rendererAttributes = new RendererAttributes(); + final rendererAttributes = RendererAttributes(); /// Total arc length, in radians. /// @@ -85,10 +85,10 @@ class ArcRendererConfig extends LayoutViewConfig SymbolRenderer symbolRenderer}) : this.noDataColor = StyleFactory.style.noDataColor, this.stroke = StyleFactory.style.white, - this.symbolRenderer = symbolRenderer ?? new CircleSymbolRenderer(); + this.symbolRenderer = symbolRenderer ?? CircleSymbolRenderer(); @override ArcRenderer build() { - return new ArcRenderer(config: this, rendererId: customRendererId); + return ArcRenderer(config: this, rendererId: customRendererId); } } diff --git a/web/charts/common/lib/src/chart/pie/pie_chart.dart b/web/charts/common/lib/src/chart/pie/pie_chart.dart index 665d92a7f..934105fce 100644 --- a/web/charts/common/lib/src/chart/pie/pie_chart.dart +++ b/web/charts/common/lib/src/chart/pie/pie_chart.dart @@ -24,11 +24,11 @@ import '../layout/layout_config.dart' show LayoutConfig, MarginSpec; import 'arc_renderer.dart' show ArcRenderer; class PieChart extends BaseChart { - static final _defaultLayoutConfig = new LayoutConfig( - topSpec: new MarginSpec.fromPixel(minPixel: 20), - bottomSpec: new MarginSpec.fromPixel(minPixel: 20), - leftSpec: new MarginSpec.fromPixel(minPixel: 20), - rightSpec: new MarginSpec.fromPixel(minPixel: 20), + static final _defaultLayoutConfig = LayoutConfig( + topSpec: MarginSpec.fromPixel(minPixel: 20), + bottomSpec: MarginSpec.fromPixel(minPixel: 20), + leftSpec: MarginSpec.fromPixel(minPixel: 20), + rightSpec: MarginSpec.fromPixel(minPixel: 20), ); PieChart({LayoutConfig layoutConfig}) @@ -38,7 +38,7 @@ class PieChart extends BaseChart { void drawInternal(List> seriesList, {bool skipAnimation, bool skipLayout}) { if (seriesList.length > 1) { - throw new ArgumentError('PieChart can only render a single series'); + throw ArgumentError('PieChart can only render a single series'); } super.drawInternal(seriesList, skipAnimation: skipAnimation, skipLayout: skipLayout); @@ -46,7 +46,7 @@ class PieChart extends BaseChart { @override SeriesRenderer makeDefaultRenderer() { - return new ArcRenderer()..rendererId = SeriesRenderer.defaultRendererId; + return ArcRenderer()..rendererId = SeriesRenderer.defaultRendererId; } /// Returns a list of datum details from selection model of [type]. diff --git a/web/charts/common/lib/src/chart/scatter_plot/comparison_points_decorator.dart b/web/charts/common/lib/src/chart/scatter_plot/comparison_points_decorator.dart index 848fa53d1..834a1accc 100644 --- a/web/charts/common/lib/src/chart/scatter_plot/comparison_points_decorator.dart +++ b/web/charts/common/lib/src/chart/scatter_plot/comparison_points_decorator.dart @@ -37,7 +37,7 @@ class ComparisonPointsDecorator extends PointRendererDecorator { final bool renderAbove = false; ComparisonPointsDecorator({PointSymbolRenderer symbolRenderer}) - : this.symbolRenderer = symbolRenderer ?? new CylinderSymbolRenderer(); + : this.symbolRenderer = symbolRenderer ?? CylinderSymbolRenderer(); @override void decorate(PointRendererElement pointElement, ChartCanvas canvas, @@ -79,19 +79,19 @@ class ComparisonPointsDecorator extends PointRendererDecorator { // Construct the points that describe our line p1p2. var p1 = - new Point(pointElement.point.xLower, pointElement.point.yLower); + Point(pointElement.point.xLower, pointElement.point.yLower); var p2 = - new Point(pointElement.point.xUpper, pointElement.point.yUpper); + Point(pointElement.point.xUpper, pointElement.point.yUpper); // First check to see if there is no intersection at all between the line // p1p2 and [drawBounds]. - final dataBoundsRect = new Rectangle.fromPoints(p1, p2); + final dataBoundsRect = Rectangle.fromPoints(p1, p2); if (!drawBounds.intersects(dataBoundsRect)) { return null; } // Line with end points [p1] and [p2]. - final p1p2 = new _Line.fromPoints(p1, p2); + final p1p2 = _Line.fromPoints(p1, p2); // Next, slide p1 along the line p1p2 towards the edge of the draw area if // the point is located outside of it. @@ -125,14 +125,14 @@ class ComparisonPointsDecorator extends PointRendererDecorator { // with equations y = bounds.top and y = bounds.bottom. We can pass these // into a standard line interception method to find our point. if (p1.y < bounds.top) { - final p = line.intersection(new _Line(0.0, bounds.top.toDouble())); + final p = line.intersection(_Line(0.0, bounds.top.toDouble())); if (p != null && bounds.containsPoint(p)) { return p; } } if (p1.y > bounds.bottom) { - final p = line.intersection(new _Line(0.0, bounds.bottom.toDouble())); + final p = line.intersection(_Line(0.0, bounds.bottom.toDouble())); if (p != null && bounds.containsPoint(p)) { return p; } @@ -145,16 +145,14 @@ class ComparisonPointsDecorator extends PointRendererDecorator { // // y = slope * x + yIntercept if (p1.x < bounds.left) { - final p = - line.intersection(new _Line.fromVertical(bounds.left.toDouble())); + final p = line.intersection(_Line.fromVertical(bounds.left.toDouble())); if (p != null && bounds.containsPoint(p)) { return p; } } if (p1.x > bounds.right) { - final p = - line.intersection(new _Line.fromVertical(bounds.right.toDouble())); + final p = line.intersection(_Line.fromVertical(bounds.right.toDouble())); if (p != null && bounds.containsPoint(p)) { return p; } @@ -187,7 +185,7 @@ class _Line { factory _Line.fromPoints(Point p1, Point p2) { // Handle vertical lines. if (p1.x == p2.x) { - return new _Line.fromVertical(p1.x); + return _Line.fromVertical(p1.x); } // Slope of the line p1p2. @@ -196,12 +194,12 @@ class _Line { // y-intercept of the line p1p2. double b = (p1.y - (m * p1.x)).toDouble(); - return new _Line(m, b); + return _Line(m, b); } /// Creates a vertical line, with the question x = [xIntercept]. factory _Line.fromVertical(num xIntercept) { - return new _Line(null, null, xIntercept.toDouble()); + return _Line(null, null, xIntercept.toDouble()); } /// Computes the intersection of `this` and [other]. @@ -218,14 +216,14 @@ class _Line { // just plug its xIntercept value into the line equation as x and solve for // y. if (other.vertical) { - return new Point( + return Point( other.xIntercept, slope * other.xIntercept + yIntercept); } // If this line is a vertical line (has undefined slope), then we can just // plug its xIntercept value into the line equation as x and solve for y. if (vertical) { - return new Point( + return Point( xIntercept, other.slope * xIntercept + other.yIntercept); } @@ -236,6 +234,6 @@ class _Line { final y = slope * (other.yIntercept - yIntercept) / (slope - other.slope) + yIntercept; - return new Point(x, y); + return Point(x, y); } } diff --git a/web/charts/common/lib/src/chart/scatter_plot/point_renderer.dart b/web/charts/common/lib/src/chart/scatter_plot/point_renderer.dart index a25c4e8fd..ae9cc171b 100644 --- a/web/charts/common/lib/src/chart/scatter_plot/point_renderer.dart +++ b/web/charts/common/lib/src/chart/scatter_plot/point_renderer.dart @@ -38,22 +38,22 @@ import 'point_renderer_config.dart' show PointRendererConfig; import 'point_renderer_decorator.dart' show PointRendererDecorator; const pointElementsKey = - const AttributeKey>('PointRenderer.elements'); + AttributeKey>('PointRenderer.elements'); const pointSymbolRendererFnKey = - const AttributeKey>('PointRenderer.symbolRendererFn'); + AttributeKey>('PointRenderer.symbolRendererFn'); const pointSymbolRendererIdKey = - const AttributeKey('PointRenderer.symbolRendererId'); + AttributeKey('PointRenderer.symbolRendererId'); /// Defines a fixed radius for data bounds lines (typically drawn by attaching a /// [ComparisonPointsDecorator] to the renderer. const boundsLineRadiusPxKey = - const AttributeKey('SymbolAnnotationRenderer.boundsLineRadiusPx'); + AttributeKey('SymbolAnnotationRenderer.boundsLineRadiusPx'); /// Defines an [AccessorFn] for the radius for data bounds lines (typically /// drawn by attaching a [ComparisonPointsDecorator] to the renderer. -const boundsLineRadiusPxFnKey = const AttributeKey>( +const boundsLineRadiusPxFnKey = AttributeKey>( 'SymbolAnnotationRenderer.boundsLineRadiusPxFn'); const defaultSymbolRendererId = '__default__'; @@ -75,7 +75,7 @@ class PointRenderer extends BaseCartesianRenderer { /// [LinkedHashMap] is used to render the series on the canvas in the same /// order as the data was given to the chart. @protected - var seriesPointMap = new LinkedHashMap>>(); + var seriesPointMap = LinkedHashMap>>(); // Store a list of lines that exist in the series data. // @@ -85,14 +85,13 @@ class PointRenderer extends BaseCartesianRenderer { final _currentKeys = []; PointRenderer({String rendererId, PointRendererConfig config}) - : this.config = config ?? new PointRendererConfig(), + : this.config = config ?? PointRendererConfig(), pointRendererDecorators = config?.pointRendererDecorators ?? [], super( rendererId: rendererId ?? 'point', layoutPaintOrder: config?.layoutPaintOrder ?? LayoutViewPaintOrder.point, - symbolRenderer: - config?.symbolRenderer ?? new CircleSymbolRenderer()); + symbolRenderer: config?.symbolRenderer ?? CircleSymbolRenderer()); @override void configureSeries(List> seriesList) { @@ -101,7 +100,7 @@ class PointRenderer extends BaseCartesianRenderer { @override void preprocessSeries(List> seriesList) { - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { final elements = >[]; // Default to the configured radius if none was defined by the series. @@ -132,9 +131,8 @@ class PointRenderer extends BaseCartesianRenderer { // series data between chart draw cycles. Ideally we should require the // user to provide a key function, but this at least provides some // smoothing when adding/removing data. - series.keyFn ??= - (int index) => '${series.id}__${series.domainFn(index)}__' - '${series.measureFn(index)}'; + series.keyFn ??= (index) => '${series.id}__${series.domainFn(index)}__' + '${series.measureFn(index)}'; for (var index = 0; index < series.data.length; index++) { // Default to the configured radius if none was returned by the @@ -181,7 +179,7 @@ class PointRenderer extends BaseCartesianRenderer { var fillColor = fillColorFn(index); fillColor ??= color; - final details = new PointRendererElement() + final details = PointRendererElement() ..color = color ..fillColor = fillColor ..radiusPx = radiusPx.toDouble() @@ -203,7 +201,7 @@ class PointRenderer extends BaseCartesianRenderer { // later for sorting. final sortedSeriesIds = []; - seriesList.forEach((ImmutableSeries series) { + seriesList.forEach((series) { sortedSeriesIds.add(series.id); final domainAxis = series.getAttr(domainAxisKey) as ImmutableAxis; @@ -256,9 +254,8 @@ class PointRenderer extends BaseCartesianRenderer { final pointKey = keyFn(index); // If we already have an AnimatingPoint for that index, use it. - var animatingPoint = pointList.firstWhere( - (AnimatedPoint point) => point.key == pointKey, - orElse: () => null); + var animatingPoint = pointList + .firstWhere((point) => point.key == pointKey, orElse: () => null); // If we don't have any existing arc element, create a new arc and // have it animate in from the position of the previous arc's end @@ -279,9 +276,9 @@ class PointRenderer extends BaseCartesianRenderer { 0.0, measureAxis); - animatingPoint = new AnimatedPoint( + animatingPoint = AnimatedPoint( key: pointKey, overlaySeries: series.overlaySeries) - ..setNewTarget(new PointRendererElement() + ..setNewTarget(PointRendererElement() ..color = details.color ..fillColor = details.fillColor ..measureAxisPosition = measureAxis.getLocation(0.0) @@ -298,7 +295,7 @@ class PointRenderer extends BaseCartesianRenderer { _currentKeys.add(pointKey); // Get the pointElement we are going to setup. - final pointElement = new PointRendererElement() + final pointElement = PointRendererElement() ..color = details.color ..fillColor = details.fillColor ..measureAxisPosition = measureAxis.getLocation(0.0) @@ -315,11 +312,11 @@ class PointRenderer extends BaseCartesianRenderer { // Sort the renderer elements to be in the same order as the series list. // They may get disordered between chart draw cycles if a behavior adds or // removes series from the list (e.g. click to hide on legends). - seriesPointMap = new LinkedHashMap.fromIterable(sortedSeriesIds, + seriesPointMap = LinkedHashMap.fromIterable(sortedSeriesIds, key: (k) => k, value: (k) => seriesPointMap[k]); // Animate out points that don't exist anymore. - seriesPointMap.forEach((String key, List> points) { + seriesPointMap.forEach((key, points) { for (var point in points) { if (_currentKeys.contains(point.key) != true) { point.animateOut(); @@ -342,27 +339,27 @@ class PointRenderer extends BaseCartesianRenderer { if (animationPercent == 1.0) { final keysToRemove = []; - seriesPointMap.forEach((String key, List> points) { - points.removeWhere((AnimatedPoint point) => point.animatingOut); + seriesPointMap.forEach((key, points) { + points.removeWhere((point) => point.animatingOut); if (points.isEmpty) { keysToRemove.add(key); } }); - keysToRemove.forEach((String key) => seriesPointMap.remove(key)); + keysToRemove.forEach((key) => seriesPointMap.remove(key)); } - seriesPointMap.forEach((String key, List> points) { + seriesPointMap.forEach((key, points) { points - .map>((AnimatedPoint animatingPoint) => + .map>((animatingPoint) => animatingPoint.getCurrentPoint(animationPercent)) - .forEach((PointRendererElement point) { + .forEach((point) { // Decorate the points with decorators that should appear below the main // series data. pointRendererDecorators - .where((PointRendererDecorator decorator) => !decorator.renderAbove) - .forEach((PointRendererDecorator decorator) { + .where((decorator) => !decorator.renderAbove) + .forEach((decorator) { decorator.decorate(point, canvas, graphicsFactory, drawBounds: componentBounds, animationPercent: animationPercent, @@ -374,7 +371,7 @@ class PointRenderer extends BaseCartesianRenderer { // prevents harshly clipping off half of the shape. if (point.point.y != null && componentBounds.containsPoint(point.point)) { - final bounds = new Rectangle( + final bounds = Rectangle( point.point.x - point.radiusPx, point.point.y - point.radiusPx, point.radiusPx * 2, @@ -388,8 +385,7 @@ class PointRenderer extends BaseCartesianRenderer { } else { final id = point.symbolRendererId; if (!config.customSymbolRenderers.containsKey(id)) { - throw new ArgumentError( - 'Invalid custom symbol renderer id "${id}"'); + throw ArgumentError('Invalid custom symbol renderer id "$id"'); } final customRenderer = config.customSymbolRenderers[id]; @@ -403,8 +399,8 @@ class PointRenderer extends BaseCartesianRenderer { // Decorate the points with decorators that should appear above the main // series data. This is the typical place for labels. pointRendererDecorators - .where((PointRendererDecorator decorator) => decorator.renderAbove) - .forEach((PointRendererDecorator decorator) { + .where((decorator) => decorator.renderAbove) + .forEach((decorator) { decorator.decorate(point, canvas, graphicsFactory, drawBounds: componentBounds, animationPercent: animationPercent, @@ -450,7 +446,7 @@ class PointRenderer extends BaseCartesianRenderer { ? measureAxis.getLocation(measureUpperBoundValue + measureOffsetValue) : null; - return new DatumPoint( + return DatumPoint( datum: datum, domain: domainValue, series: series, @@ -472,13 +468,13 @@ class PointRenderer extends BaseCartesianRenderer { return nearest; } - seriesPointMap.values.forEach((List> points) { + seriesPointMap.values.forEach((points) { PointRendererElement nearestPoint; double nearestDomainDistance = _maxInitialDistance; double nearestMeasureDistance = _maxInitialDistance; double nearestRelativeDistance = _maxInitialDistance; - points.forEach((AnimatedPoint point) { + points.forEach((point) { if (point.overlaySeries) { return; } @@ -519,14 +515,13 @@ class PointRenderer extends BaseCartesianRenderer { } else { final id = nearestPoint.symbolRendererId; if (!config.customSymbolRenderers.containsKey(id)) { - throw new ArgumentError( - 'Invalid custom symbol renderer id "${id}"'); + throw ArgumentError('Invalid custom symbol renderer id "$id"'); } nearestSymbolRenderer = config.customSymbolRenderers[id]; } - nearest.add(new DatumDetails( + nearest.add(DatumDetails( datum: nearestPoint.point.datum, domain: nearestPoint.point.domain, series: nearestPoint.point.series, @@ -573,9 +568,9 @@ class PointRenderer extends BaseCartesianRenderer { // use the smaller of this distance and the distance from the primary // point as the relativeDistance from this datum. final num relativeDistanceBounds = distanceBetweenPointAndLineSegment( - new Vector2(chartPoint.x, chartPoint.y), - new Vector2(datumPoint.xLower, datumPoint.yLower), - new Vector2(datumPoint.xUpper, datumPoint.yUpper)); + Vector2(chartPoint.x, chartPoint.y), + Vector2(datumPoint.xLower, datumPoint.yLower), + Vector2(datumPoint.xUpper, datumPoint.yUpper)); insidePoint = (relativeDistance < radiusPx) || (boundsLineRadiusPx != null && @@ -589,7 +584,7 @@ class PointRenderer extends BaseCartesianRenderer { insidePoint = (relativeDistance < radiusPx); } - return new _Distances( + return _Distances( domainDistance: domainDistance, measureDistance: measureDistance, relativeDistance: relativeDistance, @@ -636,16 +631,16 @@ class PointRenderer extends BaseCartesianRenderer { } else { final id = symbolRendererId; if (!config.customSymbolRenderers.containsKey(id)) { - throw new ArgumentError('Invalid custom symbol renderer id "${id}"'); + throw ArgumentError('Invalid custom symbol renderer id "$id"'); } nearestSymbolRenderer = config.customSymbolRenderers[id]; } - return new DatumDetails.from(details, - chartPosition: new Point(point.x, point.y), - chartPositionLower: new Point(point.xLower, point.yLower), - chartPositionUpper: new Point(point.xUpper, point.yUpper), + return DatumDetails.from(details, + chartPosition: Point(point.x, point.y), + chartPositionLower: Point(point.xLower, point.yLower), + chartPositionUpper: Point(point.xUpper, point.yUpper), symbolRenderer: nearestSymbolRenderer); } } @@ -682,7 +677,7 @@ class DatumPoint extends Point { double y, double yLower, double yUpper}) { - return new DatumPoint( + return DatumPoint( datum: other.datum, domain: other.domain, series: other.series, @@ -706,11 +701,10 @@ class PointRendererElement { String symbolRendererId; PointRendererElement clone() { - return new PointRendererElement() - ..point = new DatumPoint.from(point) - ..color = color != null ? new Color.fromOther(color: color) : null - ..fillColor = - fillColor != null ? new Color.fromOther(color: fillColor) : null + return PointRendererElement() + ..point = DatumPoint.from(point) + ..color = color != null ? Color.fromOther(color: color) : null + ..fillColor = fillColor != null ? Color.fromOther(color: fillColor) : null ..measureAxisPosition = measureAxisPosition ..radiusPx = radiusPx ..boundsLineRadiusPx = boundsLineRadiusPx @@ -756,7 +750,7 @@ class PointRendererElement { previousPoint.yUpper : null; - point = new DatumPoint.from(targetPoint, + point = DatumPoint.from(targetPoint, x: x, xLower: xLower, xUpper: xUpper, @@ -808,7 +802,7 @@ class AnimatedPoint { // Set the target measure value to the axis position. var targetPoint = newTarget.point; - newTarget.point = new DatumPoint.from(targetPoint, + newTarget.point = DatumPoint.from(targetPoint, x: targetPoint.x, y: newTarget.measureAxisPosition.roundToDouble(), yLower: newTarget.measureAxisPosition.roundToDouble(), diff --git a/web/charts/common/lib/src/chart/scatter_plot/point_renderer_config.dart b/web/charts/common/lib/src/chart/scatter_plot/point_renderer_config.dart index 9729306a0..57f1fdc2b 100644 --- a/web/charts/common/lib/src/chart/scatter_plot/point_renderer_config.dart +++ b/web/charts/common/lib/src/chart/scatter_plot/point_renderer_config.dart @@ -42,7 +42,7 @@ class PointRendererConfig extends LayoutViewConfig /// [symbolRenderer]. final Map customSymbolRenderers; - final rendererAttributes = new RendererAttributes(); + final rendererAttributes = RendererAttributes(); /// Default radius of the points, used if a series does not define a radiusPx /// accessor function. @@ -75,6 +75,6 @@ class PointRendererConfig extends LayoutViewConfig @override PointRenderer build() { - return new PointRenderer(config: this, rendererId: customRendererId); + return PointRenderer(config: this, rendererId: customRendererId); } } diff --git a/web/charts/common/lib/src/chart/scatter_plot/scatter_plot_chart.dart b/web/charts/common/lib/src/chart/scatter_plot/scatter_plot_chart.dart index d0e0aec23..b50bde99a 100644 --- a/web/charts/common/lib/src/chart/scatter_plot/scatter_plot_chart.dart +++ b/web/charts/common/lib/src/chart/scatter_plot/scatter_plot_chart.dart @@ -55,13 +55,12 @@ class ScatterPlotChart extends NumericCartesianChart { @override SeriesRenderer makeDefaultRenderer() { - return new PointRenderer() - ..rendererId = SeriesRenderer.defaultRendererId; + return PointRenderer()..rendererId = SeriesRenderer.defaultRendererId; } @override void initDomainAxis() { - domainAxis.tickDrawStrategy = new GridlineRendererSpec() + domainAxis.tickDrawStrategy = GridlineRendererSpec() .createDrawStrategy(context, graphicsFactory); } } diff --git a/web/charts/common/lib/src/chart/scatter_plot/symbol_annotation_renderer.dart b/web/charts/common/lib/src/chart/scatter_plot/symbol_annotation_renderer.dart index aeae87b3d..178680375 100644 --- a/web/charts/common/lib/src/chart/scatter_plot/symbol_annotation_renderer.dart +++ b/web/charts/common/lib/src/chart/scatter_plot/symbol_annotation_renderer.dart @@ -32,7 +32,7 @@ import '../layout/layout_view.dart' LayoutViewPaintOrder, LayoutViewPositionOrder, ViewMeasuredSizes; -import 'point_renderer.dart' show AnimatedPoint, DatumPoint, PointRenderer; +import 'point_renderer.dart' show DatumPoint, PointRenderer; import 'symbol_annotation_renderer_config.dart' show SymbolAnnotationRendererConfig; @@ -51,13 +51,13 @@ import 'symbol_annotation_renderer_config.dart' class SymbolAnnotationRenderer extends PointRenderer implements LayoutView { Rectangle _componentBounds; - GraphicsFactory _graphicsFactory; + GraphicsFactory graphicsFactory; CartesianChart _chart; var _currentHeight = 0; - final _seriesInfo = new LinkedHashMap>(); + final _seriesInfo = LinkedHashMap>(); SymbolAnnotationRenderer( {String rendererId, SymbolAnnotationRendererConfig config}) @@ -79,7 +79,7 @@ class SymbolAnnotationRenderer extends PointRenderer double offset = 0.0; - seriesList.forEach((MutableSeries series) { + seriesList.forEach((series) { final seriesKey = series.id; // Default to the configured radius if none was defined by the series. @@ -105,19 +105,18 @@ class SymbolAnnotationRenderer extends PointRenderer localConfig.verticalSymbolTopPaddingPx + (rowInnerHeight / 2); - series.measureFn = (int index) => 0; - series.measureOffsetFn = (int index) => 0; + series.measureFn = (index) => 0; + series.measureOffsetFn = (index) => 0; // Override the key function to allow for range annotations that start at // the same point. This is a necessary hack because every annotation has a // measure value of 0, so the key generated in [PointRenderer] is not // unique enough. - series.keyFn ??= - (int index) => '${series.id}__${series.domainFn(index)}__' - '${series.domainLowerBoundFn(index)}__' - '${series.domainUpperBoundFn(index)}'; + series.keyFn ??= (index) => '${series.id}__${series.domainFn(index)}__' + '${series.domainLowerBoundFn(index)}__' + '${series.domainUpperBoundFn(index)}'; - _seriesInfo[seriesKey] = new _SeriesInfo( + _seriesInfo[seriesKey] = _SeriesInfo( rowHeight: rowHeight, rowStart: offset, symbolCenter: symbolCenter, @@ -165,7 +164,7 @@ class SymbolAnnotationRenderer extends PointRenderer final measureUpperBoundPosition = domainUpperBoundPosition != null ? measurePosition : null; - return new DatumPoint( + return DatumPoint( datum: datum, domain: domainValue, series: series, @@ -180,7 +179,7 @@ class SymbolAnnotationRenderer extends PointRenderer @override void onAttach(BaseChart chart) { if (!(chart is CartesianChart)) { - throw new ArgumentError( + throw ArgumentError( 'SymbolAnnotationRenderer can only be attached to a CartesianChart'); } @@ -205,13 +204,13 @@ class SymbolAnnotationRenderer extends PointRenderer // Use the domain axis of the attached chart to render the separator lines // to keep the same overall style. if ((config as SymbolAnnotationRendererConfig).showSeparatorLines) { - seriesPointMap.forEach((String key, List> points) { + seriesPointMap.forEach((key, points) { final seriesInfo = _seriesInfo[key]; final y = componentBounds.top + seriesInfo.rowStart; final domainAxis = _chart.domainAxis; - final bounds = new Rectangle( + final bounds = Rectangle( componentBounds.left, y.round(), componentBounds.width, 0); domainAxis.tickDrawStrategy .drawAxisLine(canvas, domainAxis.axisOrientation, bounds); @@ -219,21 +218,13 @@ class SymbolAnnotationRenderer extends PointRenderer } } - @override - GraphicsFactory get graphicsFactory => _graphicsFactory; - - @override - set graphicsFactory(GraphicsFactory value) { - _graphicsFactory = value; - } - // // Layout methods // @override LayoutViewConfig get layoutConfig { - return new LayoutViewConfig( + return LayoutViewConfig( paintOrder: LayoutViewPaintOrder.point, position: LayoutPosition.Bottom, positionOrder: LayoutViewPositionOrder.symbolAnnotation); @@ -244,7 +235,7 @@ class SymbolAnnotationRenderer extends PointRenderer // The sizing of component is not flexible. It's height is always a multiple // of the number of series rendered, even if that ends up taking all of the // available margin space. - return new ViewMeasuredSizes( + return ViewMeasuredSizes( preferredWidth: maxWidth, preferredHeight: _currentHeight); } diff --git a/web/charts/common/lib/src/chart/scatter_plot/symbol_annotation_renderer_config.dart b/web/charts/common/lib/src/chart/scatter_plot/symbol_annotation_renderer_config.dart index bb3489aa5..08c5bf035 100644 --- a/web/charts/common/lib/src/chart/scatter_plot/symbol_annotation_renderer_config.dart +++ b/web/charts/common/lib/src/chart/scatter_plot/symbol_annotation_renderer_config.dart @@ -57,8 +57,8 @@ class SymbolAnnotationRendererConfig extends PointRendererConfig { customRendererId: customRendererId, pointRendererDecorators: pointRendererDecorators ?? [ - new ComparisonPointsDecorator( - symbolRenderer: new RectangleRangeSymbolRenderer()) + ComparisonPointsDecorator( + symbolRenderer: RectangleRangeSymbolRenderer()) ], radiusPx: radiusPx, symbolRenderer: symbolRenderer, @@ -66,7 +66,7 @@ class SymbolAnnotationRendererConfig extends PointRendererConfig { @override SymbolAnnotationRenderer build() { - return new SymbolAnnotationRenderer( + return SymbolAnnotationRenderer( config: this, rendererId: customRendererId); } } diff --git a/web/charts/common/lib/src/chart/time_series/time_series_chart.dart b/web/charts/common/lib/src/chart/time_series/time_series_chart.dart index 3242da069..f101b174e 100644 --- a/web/charts/common/lib/src/chart/time_series/time_series_chart.dart +++ b/web/charts/common/lib/src/chart/time_series/time_series_chart.dart @@ -41,20 +41,20 @@ class TimeSeriesChart extends CartesianChart { : super( vertical: vertical, layoutConfig: layoutConfig, - domainAxis: new DateTimeAxis(dateTimeFactory), + domainAxis: DateTimeAxis(dateTimeFactory), primaryMeasureAxis: primaryMeasureAxis, secondaryMeasureAxis: secondaryMeasureAxis, disjointMeasureAxes: disjointMeasureAxes); @override void initDomainAxis() { - domainAxis.tickDrawStrategy = new SmallTickRendererSpec() + domainAxis.tickDrawStrategy = SmallTickRendererSpec() .createDrawStrategy(context, graphicsFactory); } @override SeriesRenderer makeDefaultRenderer() { - return new LineRenderer() + return LineRenderer() ..rendererId = SeriesRenderer.defaultRendererId; } diff --git a/web/charts/common/lib/src/common/color.dart b/web/charts/common/lib/src/common/color.dart index b100ca866..eb29a050e 100644 --- a/web/charts/common/lib/src/common/color.dart +++ b/web/charts/common/lib/src/common/color.dart @@ -17,9 +17,9 @@ import 'package:meta/meta.dart' show immutable; @immutable class Color { - static const black = const Color(r: 0, g: 0, b: 0); - static const white = const Color(r: 255, g: 255, b: 255); - static const transparent = const Color(r: 0, g: 0, b: 0, a: 0); + static const black = Color(r: 0, g: 0, b: 0); + static const white = Color(r: 255, g: 255, b: 255); + static const transparent = Color(r: 0, g: 0, b: 0, a: 0); static const _darkerPercentOfOrig = 0.7; static const _lighterPercentOfOrig = 0.1; @@ -53,12 +53,12 @@ class Color { final g = (bigint >> 8) & 255; final b = bigint & 255; final a = 255; - return new Color(r: r, g: g, b: b, a: a); + return Color(r: r, g: g, b: b, a: a); } Color get darker => _darker ?? - new Color( + Color( r: (r * _darkerPercentOfOrig).round(), g: (g * _darkerPercentOfOrig).round(), b: (b * _darkerPercentOfOrig).round(), @@ -66,7 +66,7 @@ class Color { Color get lighter => _lighter ?? - new Color( + Color( r: r + ((255 - r) * _lighterPercentOfOrig).round(), g: g + ((255 - g) * _lighterPercentOfOrig).round(), b: b + ((255 - b) * _lighterPercentOfOrig).round(), diff --git a/web/charts/common/lib/src/common/date_time_factory.dart b/web/charts/common/lib/src/common/date_time_factory.dart index 0fdc52d59..50ed24547 100644 --- a/web/charts/common/lib/src/common/date_time_factory.dart +++ b/web/charts/common/lib/src/common/date_time_factory.dart @@ -48,7 +48,7 @@ class LocalDateTimeFactory implements DateTimeFactory { DateTime createDateTimeFromMilliSecondsSinceEpoch( int millisecondsSinceEpoch) { - return new DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch); + return DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch); } DateTime createDateTime(int year, @@ -59,13 +59,13 @@ class LocalDateTimeFactory implements DateTimeFactory { int second = 0, int millisecond = 0, int microsecond = 0]) { - return new DateTime( + return DateTime( year, month, day, hour, minute, second, millisecond, microsecond); } /// Returns a [DateFormat]. DateFormat createDateFormat(String pattern) { - return new DateFormat(pattern); + return DateFormat(pattern); } } @@ -75,7 +75,7 @@ class UTCDateTimeFactory implements DateTimeFactory { DateTime createDateTimeFromMilliSecondsSinceEpoch( int millisecondsSinceEpoch) { - return new DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch, + return DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch, isUtc: true); } @@ -87,12 +87,12 @@ class UTCDateTimeFactory implements DateTimeFactory { int second = 0, int millisecond = 0, int microsecond = 0]) { - return new DateTime.utc( + return DateTime.utc( year, month, day, hour, minute, second, millisecond, microsecond); } /// Returns a [DateFormat]. DateFormat createDateFormat(String pattern) { - return new DateFormat(pattern); + return DateFormat(pattern); } } diff --git a/web/charts/common/lib/src/common/gesture_listener.dart b/web/charts/common/lib/src/common/gesture_listener.dart index 049205b32..bc77af4c5 100644 --- a/web/charts/common/lib/src/common/gesture_listener.dart +++ b/web/charts/common/lib/src/common/gesture_listener.dart @@ -95,10 +95,11 @@ class GestureListener { this.onTapCancel = onTapCancel ?? defaultTapCancel; } -typedef GestureCancelCallback(); -typedef bool GestureSinglePointCallback(Point localPosition); +typedef GestureCancelCallback = Function(); +typedef GestureSinglePointCallback = bool Function(Point localPosition); -typedef bool GestureDragStartCallback(Point localPosition); -typedef GestureDragUpdateCallback(Point localPosition, double scale); -typedef GestureDragEndCallback( +typedef GestureDragStartCallback = bool Function(Point localPosition); +typedef GestureDragUpdateCallback = Function( + Point localPosition, double scale); +typedef GestureDragEndCallback = Function( Point localPosition, double scale, double pixelsPerSec); diff --git a/web/charts/common/lib/src/common/material_palette.dart b/web/charts/common/lib/src/common/material_palette.dart index 770a21bbe..3f099420e 100644 --- a/web/charts/common/lib/src/common/material_palette.dart +++ b/web/charts/common/lib/src/common/material_palette.dart @@ -20,9 +20,9 @@ import 'palette.dart' show Palette; /// /// @link https://material.io/guidelines/style/color.html#color-color-palette class MaterialPalette { - static const black = const Color(r: 0, g: 0, b: 0); - static const transparent = const Color(r: 0, g: 0, b: 0, a: 0); - static const white = const Color(r: 255, g: 255, b: 255); + static const black = Color(r: 0, g: 0, b: 0); + static const transparent = Color(r: 0, g: 0, b: 0, a: 0); + static const white = Color(r: 255, g: 255, b: 255); static Palette get blue => const MaterialBlue(); static Palette get red => const MaterialRed(); @@ -77,10 +77,10 @@ class MaterialPalette { } class MaterialBlue extends Palette { - static const _shade200 = const Color(r: 0x90, g: 0xCA, b: 0xF9); //#90CAF9 - static const _shade500 = const Color( - r: 0x21, g: 0x96, b: 0xF3, darker: _shade700, lighter: _shade200); - static const _shade700 = const Color(r: 0x19, g: 0x76, b: 0xD2); //#1976D2 + static const _shade200 = Color(r: 0x90, g: 0xCA, b: 0xF9); //#90CAF9 + static const _shade500 = + Color(r: 0x21, g: 0x96, b: 0xF3, darker: _shade700, lighter: _shade200); + static const _shade700 = Color(r: 0x19, g: 0x76, b: 0xD2); //#1976D2 const MaterialBlue(); @@ -89,10 +89,10 @@ class MaterialBlue extends Palette { } class MaterialRed extends Palette { - static const _shade200 = const Color(r: 0xEF, g: 0x9A, b: 0x9A); //#EF9A9A - static const _shade700 = const Color(r: 0xD3, g: 0x2F, b: 0x2F); //#D32F2F - static const _shade500 = const Color( - r: 0xF4, g: 0x43, b: 0x36, darker: _shade700, lighter: _shade200); + static const _shade200 = Color(r: 0xEF, g: 0x9A, b: 0x9A); //#EF9A9A + static const _shade700 = Color(r: 0xD3, g: 0x2F, b: 0x2F); //#D32F2F + static const _shade500 = + Color(r: 0xF4, g: 0x43, b: 0x36, darker: _shade700, lighter: _shade200); const MaterialRed(); @@ -101,10 +101,10 @@ class MaterialRed extends Palette { } class MaterialYellow extends Palette { - static const _shade200 = const Color(r: 0xFF, g: 0xF5, b: 0x9D); //#FFF59D - static const _shade700 = const Color(r: 0xFB, g: 0xC0, b: 0x2D); //#FBC02D - static const _shade500 = const Color( - r: 0xFF, g: 0xEB, b: 0x3B, darker: _shade700, lighter: _shade200); + static const _shade200 = Color(r: 0xFF, g: 0xF5, b: 0x9D); //#FFF59D + static const _shade700 = Color(r: 0xFB, g: 0xC0, b: 0x2D); //#FBC02D + static const _shade500 = + Color(r: 0xFF, g: 0xEB, b: 0x3B, darker: _shade700, lighter: _shade200); const MaterialYellow(); @@ -113,10 +113,10 @@ class MaterialYellow extends Palette { } class MaterialGreen extends Palette { - static const _shade200 = const Color(r: 0xA5, g: 0xD6, b: 0xA7); //#A5D6A7 - static const _shade700 = const Color(r: 0x38, g: 0x8E, b: 0x3C); //#388E3C; - static const _shade500 = const Color( - r: 0x4C, g: 0xAF, b: 0x50, darker: _shade700, lighter: _shade200); + static const _shade200 = Color(r: 0xA5, g: 0xD6, b: 0xA7); //#A5D6A7 + static const _shade700 = Color(r: 0x38, g: 0x8E, b: 0x3C); //#388E3C; + static const _shade500 = + Color(r: 0x4C, g: 0xAF, b: 0x50, darker: _shade700, lighter: _shade200); const MaterialGreen(); @@ -125,10 +125,10 @@ class MaterialGreen extends Palette { } class MaterialPurple extends Palette { - static const _shade200 = const Color(r: 0xCE, g: 0x93, b: 0xD8); //#CE93D8 - static const _shade700 = const Color(r: 0x7B, g: 0x1F, b: 0xA2); //#7B1FA2 - static const _shade500 = const Color( - r: 0x9C, g: 0x27, b: 0xB0, darker: _shade700, lighter: _shade200); + static const _shade200 = Color(r: 0xCE, g: 0x93, b: 0xD8); //#CE93D8 + static const _shade700 = Color(r: 0x7B, g: 0x1F, b: 0xA2); //#7B1FA2 + static const _shade500 = + Color(r: 0x9C, g: 0x27, b: 0xB0, darker: _shade700, lighter: _shade200); const MaterialPurple(); @@ -137,10 +137,10 @@ class MaterialPurple extends Palette { } class MaterialCyan extends Palette { - static const _shade200 = const Color(r: 0x80, g: 0xDE, b: 0xEA); //#80DEEA - static const _shade700 = const Color(r: 0x00, g: 0x97, b: 0xA7); //#0097A7 - static const _shade500 = const Color( - r: 0x00, g: 0xBC, b: 0xD4, darker: _shade700, lighter: _shade200); + static const _shade200 = Color(r: 0x80, g: 0xDE, b: 0xEA); //#80DEEA + static const _shade700 = Color(r: 0x00, g: 0x97, b: 0xA7); //#0097A7 + static const _shade500 = + Color(r: 0x00, g: 0xBC, b: 0xD4, darker: _shade700, lighter: _shade200); const MaterialCyan(); @@ -149,10 +149,10 @@ class MaterialCyan extends Palette { } class MaterialDeepOrange extends Palette { - static const _shade200 = const Color(r: 0xFF, g: 0xAB, b: 0x91); //#FFAB91 - static const _shade700 = const Color(r: 0xE6, g: 0x4A, b: 0x19); //#E64A19 - static const _shade500 = const Color( - r: 0xFF, g: 0x57, b: 0x22, darker: _shade700, lighter: _shade200); + static const _shade200 = Color(r: 0xFF, g: 0xAB, b: 0x91); //#FFAB91 + static const _shade700 = Color(r: 0xE6, g: 0x4A, b: 0x19); //#E64A19 + static const _shade500 = + Color(r: 0xFF, g: 0x57, b: 0x22, darker: _shade700, lighter: _shade200); const MaterialDeepOrange(); @@ -161,10 +161,10 @@ class MaterialDeepOrange extends Palette { } class MaterialLime extends Palette { - static const _shade200 = const Color(r: 0xE6, g: 0xEE, b: 0x9C); //#E6EE9C - static const _shade700 = const Color(r: 0xAF, g: 0xB4, b: 0x2B); //#AFB42B - static const _shade500 = const Color( - r: 0xCD, g: 0xDC, b: 0x39, darker: _shade700, lighter: _shade200); + static const _shade200 = Color(r: 0xE6, g: 0xEE, b: 0x9C); //#E6EE9C + static const _shade700 = Color(r: 0xAF, g: 0xB4, b: 0x2B); //#AFB42B + static const _shade500 = + Color(r: 0xCD, g: 0xDC, b: 0x39, darker: _shade700, lighter: _shade200); const MaterialLime(); @@ -173,10 +173,10 @@ class MaterialLime extends Palette { } class MaterialIndigo extends Palette { - static const _shade200 = const Color(r: 0x9F, g: 0xA8, b: 0xDA); //#9FA8DA - static const _shade700 = const Color(r: 0x30, g: 0x3F, b: 0x9F); //#303F9F - static const _shade500 = const Color( - r: 0x3F, g: 0x51, b: 0xB5, darker: _shade700, lighter: _shade200); + static const _shade200 = Color(r: 0x9F, g: 0xA8, b: 0xDA); //#9FA8DA + static const _shade700 = Color(r: 0x30, g: 0x3F, b: 0x9F); //#303F9F + static const _shade500 = + Color(r: 0x3F, g: 0x51, b: 0xB5, darker: _shade700, lighter: _shade200); const MaterialIndigo(); @@ -185,10 +185,10 @@ class MaterialIndigo extends Palette { } class MaterialPink extends Palette { - static const _shade200 = const Color(r: 0xF4, g: 0x8F, b: 0xB1); //#F48FB1 - static const _shade700 = const Color(r: 0xC2, g: 0x18, b: 0x5B); //#C2185B - static const _shade500 = const Color( - r: 0xE9, g: 0x1E, b: 0x63, darker: _shade700, lighter: _shade200); + static const _shade200 = Color(r: 0xF4, g: 0x8F, b: 0xB1); //#F48FB1 + static const _shade700 = Color(r: 0xC2, g: 0x18, b: 0x5B); //#C2185B + static const _shade500 = + Color(r: 0xE9, g: 0x1E, b: 0x63, darker: _shade700, lighter: _shade200); const MaterialPink(); @@ -197,10 +197,10 @@ class MaterialPink extends Palette { } class MaterialTeal extends Palette { - static const _shade200 = const Color(r: 0x80, g: 0xCB, b: 0xC4); //#80CBC4 - static const _shade700 = const Color(r: 0x00, g: 0x79, b: 0x6B); //#00796B - static const _shade500 = const Color( - r: 0x00, g: 0x96, b: 0x88, darker: _shade700, lighter: _shade200); + static const _shade200 = Color(r: 0x80, g: 0xCB, b: 0xC4); //#80CBC4 + static const _shade700 = Color(r: 0x00, g: 0x79, b: 0x6B); //#00796B + static const _shade500 = + Color(r: 0x00, g: 0x96, b: 0x88, darker: _shade700, lighter: _shade200); const MaterialTeal(); @@ -209,10 +209,10 @@ class MaterialTeal extends Palette { } class MaterialGray extends Palette { - static const _shade200 = const Color(r: 0xEE, g: 0xEE, b: 0xEE); //#EEEEEE - static const _shade700 = const Color(r: 0x61, g: 0x61, b: 0x61); //#616161 - static const _shade500 = const Color( - r: 0x9E, g: 0x9E, b: 0x9E, darker: _shade700, lighter: _shade200); + static const _shade200 = Color(r: 0xEE, g: 0xEE, b: 0xEE); //#EEEEEE + static const _shade700 = Color(r: 0x61, g: 0x61, b: 0x61); //#616161 + static const _shade500 = + Color(r: 0x9E, g: 0x9E, b: 0x9E, darker: _shade700, lighter: _shade200); const MaterialGray(); diff --git a/web/charts/common/lib/src/common/palette.dart b/web/charts/common/lib/src/common/palette.dart index a85e6eb06..85d9987d2 100644 --- a/web/charts/common/lib/src/common/palette.dart +++ b/web/charts/common/lib/src/common/palette.dart @@ -39,14 +39,14 @@ abstract class Palette { darker: shadeDefault.darker, lighter: lighterColor)); } - colors.add(new Color.fromOther(color: shadeDefault, lighter: lighterColor)); + colors.add(Color.fromOther(color: shadeDefault, lighter: lighterColor)); return colors; } Color _getSteppedColor(Color color, int index, int steps, {Color darker, Color lighter}) { final fraction = index / steps; - return new Color( + return Color( r: color.r + ((255 - color.r) * fraction).round(), g: color.g + ((255 - color.g) * fraction).round(), b: color.b + ((255 - color.b) * fraction).round(), diff --git a/web/charts/common/lib/src/common/performance.dart b/web/charts/common/lib/src/common/performance.dart index 3706ce1c6..7a3bdb2d6 100644 --- a/web/charts/common/lib/src/common/performance.dart +++ b/web/charts/common/lib/src/common/performance.dart @@ -13,7 +13,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -typedef PerformanceCallback(String tag); +typedef PerformanceCallback = Function(String tag); class Performance { static PerformanceCallback time = (_) {}; diff --git a/web/charts/common/lib/src/common/proxy_gesture_listener.dart b/web/charts/common/lib/src/common/proxy_gesture_listener.dart index a78d4fda0..659498ecf 100644 --- a/web/charts/common/lib/src/common/proxy_gesture_listener.dart +++ b/web/charts/common/lib/src/common/proxy_gesture_listener.dart @@ -40,7 +40,7 @@ class ProxyGestureListener { bool onLongPress(Point localPosition) { // Walk through listeners stopping at the first handled listener. final claimingListener = _activeListeners.firstWhere( - (GestureListener listener) => + (listener) => listener.onLongPress != null && listener.onLongPress(localPosition), orElse: () => null); @@ -56,8 +56,7 @@ class ProxyGestureListener { bool onTap(Point localPosition) { // Walk through listeners stopping at the first handled listener. final claimingListener = _activeListeners.firstWhere( - (GestureListener listener) => - listener.onTap != null && listener.onTap(localPosition), + (listener) => listener.onTap != null && listener.onTap(localPosition), orElse: () => null); // If someone claims the tap, then cancel everyone else. @@ -75,7 +74,7 @@ class ProxyGestureListener { _activeListeners = []; // Walk through listeners stopping at the first handled listener. - return _listeners.any((GestureListener listener) => + return _listeners.any((listener) => listener.onHover != null && listener.onHover(localPosition)); } @@ -88,7 +87,7 @@ class ProxyGestureListener { // Walk through listeners stopping at the first handled listener. final claimingListener = _activeListeners.firstWhere( - (GestureListener listener) => + (listener) => listener.onDragStart != null && listener.onDragStart(localPosition), orElse: () => null); @@ -101,21 +100,21 @@ class ProxyGestureListener { } bool onDragUpdate(Point localPosition, double scale) { - return _activeListeners.any((GestureListener listener) => + return _activeListeners.any((listener) => listener.onDragUpdate != null && listener.onDragUpdate(localPosition, scale)); } bool onDragEnd( Point localPosition, double scale, double pixelsPerSecond) { - return _activeListeners.any((GestureListener listener) => + return _activeListeners.any((listener) => listener.onDragEnd != null && listener.onDragEnd(localPosition, scale, pixelsPerSecond)); } List _cancel( {List all, List keep}) { - all.forEach((GestureListener listener) { + all.forEach((listener) { if (!keep.contains(listener)) { listener.onTapCancel(); } @@ -124,10 +123,10 @@ class ProxyGestureListener { } bool _populateActiveListeners(Point localPosition) { - var localListeners = new List.from(_listeners); + var localListeners = List.from(_listeners); var previouslyClaimed = false; - localListeners.forEach((GestureListener listener) { + localListeners.forEach((listener) { var claimed = listener.onTapTest(localPosition); if (claimed && !previouslyClaimed) { // Cancel any already added non-claiming listeners now that someone is diff --git a/web/charts/common/lib/src/common/style/style_factory.dart b/web/charts/common/lib/src/common/style/style_factory.dart index 37dfe1d90..e1ec3f8a1 100644 --- a/web/charts/common/lib/src/common/style/style_factory.dart +++ b/web/charts/common/lib/src/common/style/style_factory.dart @@ -17,7 +17,7 @@ import 'material_style.dart' show MaterialStyle; import 'style.dart' show Style; class StyleFactory { - static final StyleFactory _styleFactory = new StyleFactory._internal(); + static final StyleFactory _styleFactory = StyleFactory._internal(); Style _style = const MaterialStyle(); diff --git a/web/charts/common/lib/src/common/symbol_renderer.dart b/web/charts/common/lib/src/common/symbol_renderer.dart index 5933f7319..ab810b72a 100644 --- a/web/charts/common/lib/src/common/symbol_renderer.dart +++ b/web/charts/common/lib/src/common/symbol_renderer.dart @@ -171,7 +171,7 @@ class LineSymbolRenderer extends SymbolRenderer { // TODO: Pass in strokeWidth, roundEndCaps, and dashPattern from // line renderer config. canvas.drawLine( - points: [new Point(left, centerHeight), new Point(right, centerHeight)], + points: [Point(left, centerHeight), Point(right, centerHeight)], dashPattern: localDashPattern, fill: getSolidFillColor(fillColor), roundEndCaps: roundEndCaps, @@ -210,7 +210,7 @@ class CircleSymbolRenderer extends SymbolRenderer { Color fillColor, Color strokeColor, double strokeWidthPx}) { - final center = new Point( + final center = Point( bounds.left + (bounds.width / 2), bounds.top + (bounds.height / 2), ); @@ -281,15 +281,15 @@ class CylinderSymbolRenderer extends PointSymbolRenderer { void paint(ChartCanvas canvas, Point p1, double radius, {Point p2, Color fillColor, strokeColor, double strokeWidthPx}) { if (p1 == null) { - throw new ArgumentError('Invalid point p1 "${p1}"'); + throw ArgumentError('Invalid point p1 "$p1"'); } if (p2 == null) { - throw new ArgumentError('Invalid point p2 "${p2}"'); + throw ArgumentError('Invalid point p2 "$p2"'); } - final adjustedP1 = new Point(p1.x, p1.y); - final adjustedP2 = new Point(p2.x, p2.y); + final adjustedP1 = Point(p1.x, p1.y); + final adjustedP2 = Point(p2.x, p2.y); canvas.drawLine( points: [adjustedP1, adjustedP2], @@ -318,15 +318,15 @@ class RectangleRangeSymbolRenderer extends PointSymbolRenderer { void paint(ChartCanvas canvas, Point p1, double radius, {Point p2, Color fillColor, strokeColor, double strokeWidthPx}) { if (p1 == null) { - throw new ArgumentError('Invalid point p1 "${p1}"'); + throw ArgumentError('Invalid point p1 "$p1"'); } if (p2 == null) { - throw new ArgumentError('Invalid point p2 "${p2}"'); + throw ArgumentError('Invalid point p2 "$p2"'); } - final adjustedP1 = new Point(p1.x, p1.y); - final adjustedP2 = new Point(p2.x, p2.y); + final adjustedP1 = Point(p1.x, p1.y); + final adjustedP2 = Point(p2.x, p2.y); canvas.drawLine( points: [adjustedP1, adjustedP2], diff --git a/web/charts/common/lib/src/data/series.dart b/web/charts/common/lib/src/data/series.dart index 1e7b06b40..12a7078b9 100644 --- a/web/charts/common/lib/src/data/series.dart +++ b/web/charts/common/lib/src/data/series.dart @@ -72,7 +72,7 @@ class Series { // TODO: should this be immutable as well? If not, should any of // the non-required ones be final? - final SeriesAttributes attributes = new SeriesAttributes(); + final SeriesAttributes attributes = SeriesAttributes(); factory Series( {@required String id, @@ -99,54 +99,51 @@ class Series { String seriesCategory, TypedAccessorFn strokeWidthPxFn}) { // Wrap typed accessors. - final _domainFn = (int index) => domainFn(data[index], index); - final _measureFn = (int index) => measureFn(data[index], index); - final _areaColorFn = areaColorFn == null - ? null - : (int index) => areaColorFn(data[index], index); + final _domainFn = (index) => domainFn(data[index], index); + final _measureFn = (index) => measureFn(data[index], index); + final _areaColorFn = + areaColorFn == null ? null : (index) => areaColorFn(data[index], index); final _colorFn = - colorFn == null ? null : (int index) => colorFn(data[index], index); + colorFn == null ? null : (index) => colorFn(data[index], index); final _dashPatternFn = dashPatternFn == null ? null - : (int index) => dashPatternFn(data[index], index); + : (index) => dashPatternFn(data[index], index); final _domainLowerBoundFn = domainLowerBoundFn == null ? null - : (int index) => domainLowerBoundFn(data[index], index); + : (index) => domainLowerBoundFn(data[index], index); final _domainUpperBoundFn = domainUpperBoundFn == null ? null - : (int index) => domainUpperBoundFn(data[index], index); - final _fillColorFn = fillColorFn == null - ? null - : (int index) => fillColorFn(data[index], index); + : (index) => domainUpperBoundFn(data[index], index); + final _fillColorFn = + fillColorFn == null ? null : (index) => fillColorFn(data[index], index); final _fillPatternFn = fillPatternFn == null ? null - : (int index) => fillPatternFn(data[index], index); + : (index) => fillPatternFn(data[index], index); final _labelAccessorFn = labelAccessorFn == null ? null - : (int index) => labelAccessorFn(data[index], index); + : (index) => labelAccessorFn(data[index], index); final _insideLabelStyleAccessorFn = insideLabelStyleAccessorFn == null ? null - : (int index) => insideLabelStyleAccessorFn(data[index], index); + : (index) => insideLabelStyleAccessorFn(data[index], index); final _outsideLabelStyleAccessorFn = outsideLabelStyleAccessorFn == null ? null - : (int index) => outsideLabelStyleAccessorFn(data[index], index); + : (index) => outsideLabelStyleAccessorFn(data[index], index); final _measureLowerBoundFn = measureLowerBoundFn == null ? null - : (int index) => measureLowerBoundFn(data[index], index); + : (index) => measureLowerBoundFn(data[index], index); final _measureUpperBoundFn = measureUpperBoundFn == null ? null - : (int index) => measureUpperBoundFn(data[index], index); + : (index) => measureUpperBoundFn(data[index], index); final _measureOffsetFn = measureOffsetFn == null ? null - : (int index) => measureOffsetFn(data[index], index); - final _radiusPxFn = radiusPxFn == null - ? null - : (int index) => radiusPxFn(data[index], index); + : (index) => measureOffsetFn(data[index], index); + final _radiusPxFn = + radiusPxFn == null ? null : (index) => radiusPxFn(data[index], index); final _strokeWidthPxFn = strokeWidthPxFn == null ? null - : (int index) => strokeWidthPxFn(data[index], index); + : (index) => strokeWidthPxFn(data[index], index); - return new Series._internal( + return Series._internal( id: id, data: data, domainFn: _domainFn, @@ -214,9 +211,9 @@ class Series { /// such usage. /// /// Otherwise, [index] must be a valid subscript into a list of `series.length`. -typedef R AccessorFn(int index); +typedef AccessorFn = R Function(int index); -typedef R TypedAccessorFn(T datum, int index); +typedef TypedAccessorFn = R Function(T datum, int index); class AttributeKey extends TypedKey { const AttributeKey(String uniqueKey) : super(uniqueKey); diff --git a/web/charts/common/pubspec.lock b/web/charts/common/pubspec.lock index ba3037810..e33869b0a 100644 --- a/web/charts/common/pubspec.lock +++ b/web/charts/common/pubspec.lock @@ -205,7 +205,7 @@ packages: source: hosted version: "1.6.2" pedantic: - dependency: transitive + dependency: "direct dev" description: name: pedantic url: "https://pub.dartlang.org" @@ -373,4 +373,4 @@ packages: source: hosted version: "2.1.16" sdks: - dart: ">=2.2.2 <3.0.0" + dart: ">=2.3.0-dev <3.0.0" diff --git a/web/charts/common/pubspec.yaml b/web/charts/common/pubspec.yaml index 41a6f1c55..9ea2e7210 100644 --- a/web/charts/common/pubspec.yaml +++ b/web/charts/common/pubspec.yaml @@ -5,7 +5,7 @@ author: Charts Team homepage: https://github.com/google/charts environment: - sdk: '>=2.1.0 <3.0.0' + sdk: '>=2.3.0-dev <3.0.0' dependencies: collection: ^1.14.5 @@ -16,4 +16,5 @@ dependencies: dev_dependencies: mockito: ^4.0.0 + pedantic: ^1.5.0 test: ^1.5.3 diff --git a/web/charts/common/test/chart/bar/bar_label_decorator_test.dart b/web/charts/common/test/chart/bar/bar_label_decorator_test.dart index 5e5090cba..e21fd9840 100644 --- a/web/charts/common/test/chart/bar/bar_label_decorator_test.dart +++ b/web/charts/common/test/chart/bar/bar_label_decorator_test.dart @@ -43,13 +43,13 @@ class MockCanvas extends Mock implements ChartCanvas {} /// A fake [GraphicsFactory] that returns [FakeTextStyle] and [FakeTextElement]. class FakeGraphicsFactory extends GraphicsFactory { @override - TextStyle createTextPaint() => new FakeTextStyle(); + TextStyle createTextPaint() => FakeTextStyle(); @override - TextElement createTextElement(String text) => new FakeTextElement(text); + TextElement createTextElement(String text) => FakeTextElement(text); @override - LineStyle createLinePaint() => new MockLinePaint(); + LineStyle createLinePaint() => MockLinePaint(); } /// Stores [TextStyle] properties for test to verify. @@ -72,7 +72,7 @@ class FakeTextElement implements TextElement { FakeTextElement(this.text); - TextMeasurement get measurement => new TextMeasurement( + TextMeasurement get measurement => TextMeasurement( horizontalSliceWidth: text.length.toDouble(), verticalSliceWidth: textStyle.fontSize.toDouble(), baseline: textStyle.fontSize.toDouble()); @@ -81,7 +81,7 @@ class FakeTextElement implements TextElement { class MockLinePaint extends Mock implements LineStyle {} class FakeBarRendererElement implements ImmutableBarRendererElement { - final _series = new MockImmutableSeries(); + final _series = MockImmutableSeries(); final AccessorFn labelAccessor; final String datum; final Rectangle bounds; @@ -106,9 +106,9 @@ void main() { Rectangle drawBounds; setUpAll(() { - canvas = new MockCanvas(); - graphicsFactory = new FakeGraphicsFactory(); - drawBounds = new Rectangle(0, 0, 200, 100); + canvas = MockCanvas(); + graphicsFactory = FakeGraphicsFactory(); + drawBounds = Rectangle(0, 0, 200, 100); }); group('horizontal bar chart', () { @@ -118,12 +118,12 @@ void main() { // 'LabelA' and 'LabelB' both have lengths of 6. // 'LabelB' would not fit inside the bar in auto setting because it has // width of 5. - new FakeBarRendererElement( - 'A', new Rectangle(0, 20, 50, 20), (_) => 'LabelA', data), - new FakeBarRendererElement( - 'B', new Rectangle(0, 70, 5, 20), (_) => 'LabelB', data) + FakeBarRendererElement( + 'A', Rectangle(0, 20, 50, 20), (_) => 'LabelA', data), + FakeBarRendererElement( + 'B', Rectangle(0, 70, 5, 20), (_) => 'LabelB', data) ]; - final decorator = new BarLabelDecorator(); + final decorator = BarLabelDecorator(); decorator.decorate(barElements, canvas, graphicsFactory, drawBounds: drawBounds, @@ -155,15 +155,15 @@ void main() { final barElements = [ // 'LabelABC' would not fit inside the bar in auto setting because it // has a width of 8. - new FakeBarRendererElement( - 'A', new Rectangle(0, 0, 6, 20), (_) => 'LabelABC', ['A']), + FakeBarRendererElement( + 'A', Rectangle(0, 0, 6, 20), (_) => 'LabelABC', ['A']), ]; // Draw bounds with width of 10 means that space inside the bar is larger. - final smallDrawBounds = new Rectangle(0, 0, 10, 20); + final smallDrawBounds = Rectangle(0, 0, 10, 20); - new BarLabelDecorator( + BarLabelDecorator( labelPadding: 0, // Turn off label padding for testing. - insideLabelStyleSpec: new TextStyleSpec(fontSize: 10)) + insideLabelStyleSpec: TextStyleSpec(fontSize: 10)) .decorate(barElements, canvas, graphicsFactory, drawBounds: smallDrawBounds, animationPercent: 1.0, @@ -182,14 +182,14 @@ void main() { final barElements = [ // 'LabelABC' would not fit inside the bar in auto setting because it // has a width of 8. - new FakeBarRendererElement( - 'A', new Rectangle(0, 0, 6, 20), (_) => 'LabelABC', ['A']), + FakeBarRendererElement( + 'A', Rectangle(0, 0, 6, 20), (_) => 'LabelABC', ['A']), ]; - new BarLabelDecorator( + BarLabelDecorator( labelPosition: BarLabelPosition.inside, labelPadding: 0, // Turn off label padding for testing. - insideLabelStyleSpec: new TextStyleSpec(fontSize: 10)) + insideLabelStyleSpec: TextStyleSpec(fontSize: 10)) .decorate(barElements, canvas, graphicsFactory, drawBounds: drawBounds, animationPercent: 1.0, @@ -206,14 +206,14 @@ void main() { test('LabelPosition.outside always paints outside the bar', () { final barElements = [ - new FakeBarRendererElement( - 'A', new Rectangle(0, 0, 10, 20), (_) => 'Label', ['A']), + FakeBarRendererElement( + 'A', Rectangle(0, 0, 10, 20), (_) => 'Label', ['A']), ]; - new BarLabelDecorator( + BarLabelDecorator( labelPosition: BarLabelPosition.outside, labelPadding: 0, // Turn off label padding for testing. - outsideLabelStyleSpec: new TextStyleSpec(fontSize: 10)) + outsideLabelStyleSpec: TextStyleSpec(fontSize: 10)) .decorate(barElements, canvas, graphicsFactory, drawBounds: drawBounds, animationPercent: 1.0, @@ -234,18 +234,18 @@ void main() { // 'LabelA' and 'LabelB' both have lengths of 6. // 'LabelB' would not fit inside the bar in auto setting because it has // width of 5. - new FakeBarRendererElement( - 'A', new Rectangle(0, 20, 50, 20), (_) => 'LabelA', data), - new FakeBarRendererElement( - 'B', new Rectangle(0, 70, 5, 20), (_) => 'LabelB', data) + FakeBarRendererElement( + 'A', Rectangle(0, 20, 50, 20), (_) => 'LabelA', data), + FakeBarRendererElement( + 'B', Rectangle(0, 70, 5, 20), (_) => 'LabelB', data) ]; - final insideColor = new Color(r: 0, g: 0, b: 0); - final outsideColor = new Color(r: 255, g: 255, b: 255); - final decorator = new BarLabelDecorator( + final insideColor = Color(r: 0, g: 0, b: 0); + final outsideColor = Color(r: 255, g: 255, b: 255); + final decorator = BarLabelDecorator( labelPadding: 0, - insideLabelStyleSpec: new TextStyleSpec( + insideLabelStyleSpec: TextStyleSpec( fontSize: 10, fontFamily: 'insideFont', color: insideColor), - outsideLabelStyleSpec: new TextStyleSpec( + outsideLabelStyleSpec: TextStyleSpec( fontSize: 8, fontFamily: 'outsideFont', color: outsideColor)); decorator.decorate(barElements, canvas, graphicsFactory, @@ -276,15 +276,15 @@ void main() { test('TextAnchor.end starts on the right most of bar', () { final barElements = [ - new FakeBarRendererElement( - 'A', new Rectangle(0, 0, 10, 20), (_) => 'LabelA', ['A']) + FakeBarRendererElement( + 'A', Rectangle(0, 0, 10, 20), (_) => 'LabelA', ['A']) ]; - new BarLabelDecorator( + BarLabelDecorator( labelAnchor: BarLabelAnchor.end, labelPosition: BarLabelPosition.inside, labelPadding: 0, // Turn off label padding for testing. - insideLabelStyleSpec: new TextStyleSpec(fontSize: 10)) + insideLabelStyleSpec: TextStyleSpec(fontSize: 10)) .decorate(barElements, canvas, graphicsFactory, drawBounds: drawBounds, animationPercent: 1.0, @@ -301,15 +301,15 @@ void main() { test('RTL TextAnchor.start starts on the right', () { final barElements = [ - new FakeBarRendererElement( - 'A', new Rectangle(0, 0, 10, 20), (_) => 'LabelA', ['A']) + FakeBarRendererElement( + 'A', Rectangle(0, 0, 10, 20), (_) => 'LabelA', ['A']) ]; - new BarLabelDecorator( + BarLabelDecorator( labelAnchor: BarLabelAnchor.start, labelPosition: BarLabelPosition.inside, labelPadding: 0, // Turn off label padding for testing. - insideLabelStyleSpec: new TextStyleSpec(fontSize: 10)) + insideLabelStyleSpec: TextStyleSpec(fontSize: 10)) .decorate(barElements, canvas, graphicsFactory, drawBounds: drawBounds, animationPercent: 1.0, @@ -327,15 +327,15 @@ void main() { test('RTL TextAnchor.end starts on the left', () { final barElements = [ - new FakeBarRendererElement( - 'A', new Rectangle(0, 0, 10, 20), (_) => 'LabelA', ['A']) + FakeBarRendererElement( + 'A', Rectangle(0, 0, 10, 20), (_) => 'LabelA', ['A']) ]; - new BarLabelDecorator( + BarLabelDecorator( labelAnchor: BarLabelAnchor.end, labelPosition: BarLabelPosition.inside, labelPadding: 0, // Turn off label padding for testing. - insideLabelStyleSpec: new TextStyleSpec(fontSize: 10)) + insideLabelStyleSpec: TextStyleSpec(fontSize: 10)) .decorate(barElements, canvas, graphicsFactory, drawBounds: drawBounds, animationPercent: 1.0, @@ -355,11 +355,10 @@ void main() { group('Null and empty label scenarios', () { test('Skip label if label accessor does not exist', () { final barElements = [ - new FakeBarRendererElement( - 'A', new Rectangle(0, 0, 10, 20), null, ['A']) + FakeBarRendererElement('A', Rectangle(0, 0, 10, 20), null, ['A']) ]; - new BarLabelDecorator().decorate(barElements, canvas, graphicsFactory, + BarLabelDecorator().decorate(barElements, canvas, graphicsFactory, drawBounds: drawBounds, animationPercent: 1.0, renderingVertically: false); @@ -370,13 +369,11 @@ void main() { test('Skip label if label is null or empty', () { final data = ['A', 'B']; final barElements = [ - new FakeBarRendererElement( - 'A', new Rectangle(0, 0, 10, 20), null, data), - new FakeBarRendererElement( - 'B', new Rectangle(0, 50, 10, 20), (_) => '', data), + FakeBarRendererElement('A', Rectangle(0, 0, 10, 20), null, data), + FakeBarRendererElement('B', Rectangle(0, 50, 10, 20), (_) => '', data), ]; - new BarLabelDecorator().decorate(barElements, canvas, graphicsFactory, + BarLabelDecorator().decorate(barElements, canvas, graphicsFactory, drawBounds: drawBounds, animationPercent: 1.0, renderingVertically: false); @@ -386,11 +383,10 @@ void main() { test('Skip label if no width available', () { final barElements = [ - new FakeBarRendererElement( - 'A', new Rectangle(0, 0, 200, 20), (_) => 'a', ['A']) + FakeBarRendererElement('A', Rectangle(0, 0, 200, 20), (_) => 'a', ['A']) ]; - new BarLabelDecorator( + BarLabelDecorator( labelPadding: 0, labelPosition: BarLabelPosition.outside, ).decorate(barElements, canvas, graphicsFactory, diff --git a/web/charts/common/test/chart/bar/bar_renderer_test.dart b/web/charts/common/test/chart/bar/bar_renderer_test.dart index c0c31705c..d34d07650 100644 --- a/web/charts/common/test/chart/bar/bar_renderer_test.dart +++ b/web/charts/common/test/chart/bar/bar_renderer_test.dart @@ -50,8 +50,7 @@ class FakeBarRenderer extends BarRenderer { int paintBarCallCount = 0; factory FakeBarRenderer({BarRendererConfig config, String rendererId}) { - return new FakeBarRenderer._internal( - config: config, rendererId: rendererId); + return FakeBarRenderer._internal(config: config, rendererId: rendererId); } FakeBarRenderer._internal({BarRendererConfig config, String rendererId}) @@ -73,10 +72,10 @@ void main() { // Convenience methods for creating mocks. ///////////////////////////////////////// _configureBaseRenderer(BaseBarRenderer renderer, bool vertical) { - final context = new MockContext(); + final context = MockContext(); when(context.chartContainerIsRtl).thenReturn(false); when(context.isRtl).thenReturn(false); - final verticalChart = new MockChart(); + final verticalChart = MockChart(); when(verticalChart.vertical).thenReturn(vertical); when(verticalChart.context).thenReturn(context); renderer.onAttach(verticalChart); @@ -85,132 +84,132 @@ void main() { } BarRenderer makeRenderer({BarRendererConfig config}) { - final renderer = new BarRenderer(config: config); + final renderer = BarRenderer(config: config); _configureBaseRenderer(renderer, true); return renderer; } FakeBarRenderer makeFakeRenderer({BarRendererConfig config}) { - final renderer = new FakeBarRenderer(config: config); + final renderer = FakeBarRenderer(config: config); _configureBaseRenderer(renderer, true); return renderer; } setUp(() { var myFakeDesktopAData = [ - new MyRow('MyCampaign1', 5), - new MyRow('MyCampaign2', 25), - new MyRow('MyCampaign3', 100), - new MyRow('MyOtherCampaign', 75), + MyRow('MyCampaign1', 5), + MyRow('MyCampaign2', 25), + MyRow('MyCampaign3', 100), + MyRow('MyOtherCampaign', 75), ]; var myFakeTabletAData = [ - new MyRow('MyCampaign1', 5), - new MyRow('MyCampaign2', 25), - new MyRow('MyCampaign3', 100), - new MyRow('MyOtherCampaign', 75), + MyRow('MyCampaign1', 5), + MyRow('MyCampaign2', 25), + MyRow('MyCampaign3', 100), + MyRow('MyOtherCampaign', 75), ]; var myFakeMobileAData = [ - new MyRow('MyCampaign1', 5), - new MyRow('MyCampaign2', 25), - new MyRow('MyCampaign3', 100), - new MyRow('MyOtherCampaign', 75), + MyRow('MyCampaign1', 5), + MyRow('MyCampaign2', 25), + MyRow('MyCampaign3', 100), + MyRow('MyOtherCampaign', 75), ]; var myFakeDesktopBData = [ - new MyRow('MyCampaign1', 5), - new MyRow('MyCampaign2', 25), - new MyRow('MyCampaign3', 100), - new MyRow('MyOtherCampaign', 75), + MyRow('MyCampaign1', 5), + MyRow('MyCampaign2', 25), + MyRow('MyCampaign3', 100), + MyRow('MyOtherCampaign', 75), ]; var myFakeTabletBData = [ - new MyRow('MyCampaign1', 5), - new MyRow('MyCampaign2', 25), - new MyRow('MyCampaign3', 100), - new MyRow('MyOtherCampaign', 75), + MyRow('MyCampaign1', 5), + MyRow('MyCampaign2', 25), + MyRow('MyCampaign3', 100), + MyRow('MyOtherCampaign', 75), ]; var myFakeMobileBData = [ - new MyRow('MyCampaign1', 5), - new MyRow('MyCampaign2', 25), - new MyRow('MyCampaign3', 100), - new MyRow('MyOtherCampaign', 75), + MyRow('MyCampaign1', 5), + MyRow('MyCampaign2', 25), + MyRow('MyCampaign3', 100), + MyRow('MyOtherCampaign', 75), ]; seriesList = [ - new MutableSeries(new Series( + MutableSeries(Series( id: 'Desktop', colorFn: (_, __) => MaterialPalette.blue.shadeDefault, - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeDesktopAData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Tablet', colorFn: (_, __) => MaterialPalette.red.shadeDefault, - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeTabletAData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Mobile', colorFn: (_, __) => MaterialPalette.green.shadeDefault, - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeMobileAData)) ]; groupedStackedSeriesList = [ - new MutableSeries(new Series( + MutableSeries(Series( id: 'Desktop A', seriesCategory: 'A', colorFn: (_, __) => MaterialPalette.blue.shadeDefault, - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeDesktopAData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Tablet A', seriesCategory: 'A', colorFn: (_, __) => MaterialPalette.red.shadeDefault, - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeTabletAData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Mobile A', seriesCategory: 'A', colorFn: (_, __) => MaterialPalette.green.shadeDefault, - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeMobileAData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Desktop B', seriesCategory: 'B', colorFn: (_, __) => MaterialPalette.blue.shadeDefault, - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeDesktopBData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Tablet B', seriesCategory: 'B', colorFn: (_, __) => MaterialPalette.red.shadeDefault, - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeTabletBData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Mobile B', seriesCategory: 'B', colorFn: (_, __) => MaterialPalette.green.shadeDefault, - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeMobileBData)) ]; }); @@ -218,7 +217,7 @@ void main() { group('preprocess', () { test('with grouped bars', () { renderer = makeRenderer( - config: new BarRendererConfig(groupingType: BarGroupingType.grouped)); + config: BarRendererConfig(groupingType: BarGroupingType.grouped)); renderer.preprocessSeries(seriesList); @@ -278,8 +277,8 @@ void main() { test('with grouped stacked bars', () { renderer = makeRenderer( - config: new BarRendererConfig( - groupingType: BarGroupingType.groupedStacked)); + config: + BarRendererConfig(groupingType: BarGroupingType.groupedStacked)); renderer.preprocessSeries(groupedStackedSeriesList); @@ -390,7 +389,7 @@ void main() { test('with stacked bars', () { renderer = makeRenderer( - config: new BarRendererConfig(groupingType: BarGroupingType.stacked)); + config: BarRendererConfig(groupingType: BarGroupingType.stacked)); renderer.preprocessSeries(seriesList); @@ -450,16 +449,16 @@ void main() { test('with stacked bars containing zero and null', () { // Set up some nulls and zeros in the data. - seriesList[2].data[0] = new MyRow('MyCampaign1', null); - seriesList[2].data[2] = new MyRow('MyCampaign3', 0); + seriesList[2].data[0] = MyRow('MyCampaign1', null); + seriesList[2].data[2] = MyRow('MyCampaign3', 0); - seriesList[1].data[1] = new MyRow('MyCampaign2', null); - seriesList[1].data[3] = new MyRow('MyOtherCampaign', 0); + seriesList[1].data[1] = MyRow('MyCampaign2', null); + seriesList[1].data[3] = MyRow('MyOtherCampaign', 0); - seriesList[0].data[2] = new MyRow('MyCampaign3', 0); + seriesList[0].data[2] = MyRow('MyCampaign3', 0); renderer = makeRenderer( - config: new BarRendererConfig(groupingType: BarGroupingType.stacked)); + config: BarRendererConfig(groupingType: BarGroupingType.stacked)); renderer.preprocessSeries(seriesList); @@ -547,7 +546,7 @@ void main() { group('preprocess weight pattern', () { test('with grouped bars', () { renderer = makeRenderer( - config: new BarRendererConfig( + config: BarRendererConfig( groupingType: BarGroupingType.grouped, weightPattern: [3, 2, 1])); renderer.preprocessSeries(seriesList); @@ -612,7 +611,7 @@ void main() { test('with grouped stacked bars', () { renderer = makeRenderer( - config: new BarRendererConfig( + config: BarRendererConfig( groupingType: BarGroupingType.groupedStacked, weightPattern: [2, 1])); @@ -729,7 +728,7 @@ void main() { test('with stacked bars - weightPattern not used', () { renderer = makeRenderer( - config: new BarRendererConfig( + config: BarRendererConfig( groupingType: BarGroupingType.stacked, weightPattern: [2, 1])); renderer.preprocessSeries(seriesList); @@ -796,24 +795,24 @@ void main() { test('only include null in draw if animating from a non null measure', () { // Helper to create series list for this test only. List> _createSeriesList(List data) { - final domainAxis = new MockAxis(); + final domainAxis = MockAxis(); when(domainAxis.rangeBand).thenReturn(100.0); when(domainAxis.getLocation('MyCampaign1')).thenReturn(20.0); when(domainAxis.getLocation('MyCampaign2')).thenReturn(40.0); when(domainAxis.getLocation('MyCampaign3')).thenReturn(60.0); when(domainAxis.getLocation('MyOtherCampaign')).thenReturn(80.0); - final measureAxis = new MockAxis(); + final measureAxis = MockAxis(); when(measureAxis.getLocation(0)).thenReturn(0.0); when(measureAxis.getLocation(5)).thenReturn(5.0); when(measureAxis.getLocation(75)).thenReturn(75.0); when(measureAxis.getLocation(100)).thenReturn(100.0); - final color = new Color.fromHex(code: '#000000'); + final color = Color.fromHex(code: '#000000'); - final series = new MutableSeries(new Series( + final series = MutableSeries(Series( id: 'Desktop', - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, measureOffsetFn: (_, __) => 0, colorFn: (_, __) => color, fillColorFn: (_, __) => color, @@ -825,26 +824,26 @@ void main() { return [series]; } - final canvas = new MockCanvas(); + final canvas = MockCanvas(); final myDataWithNull = [ - new MyRow('MyCampaign1', 5), - new MyRow('MyCampaign2', null), - new MyRow('MyCampaign3', 100), - new MyRow('MyOtherCampaign', 75), + MyRow('MyCampaign1', 5), + MyRow('MyCampaign2', null), + MyRow('MyCampaign3', 100), + MyRow('MyOtherCampaign', 75), ]; final seriesListWithNull = _createSeriesList(myDataWithNull); final myDataWithMeasures = [ - new MyRow('MyCampaign1', 5), - new MyRow('MyCampaign2', 0), - new MyRow('MyCampaign3', 100), - new MyRow('MyOtherCampaign', 75), + MyRow('MyCampaign1', 5), + MyRow('MyCampaign2', 0), + MyRow('MyCampaign3', 100), + MyRow('MyOtherCampaign', 75), ]; final seriesListWithMeasures = _createSeriesList(myDataWithMeasures); final renderer = makeFakeRenderer( - config: new BarRendererConfig(groupingType: BarGroupingType.grouped)); + config: BarRendererConfig(groupingType: BarGroupingType.grouped)); // Verify that only 3 bars are drawn for an initial draw with null data. renderer.preprocessSeries(seriesListWithNull); diff --git a/web/charts/common/test/chart/bar/bar_target_line_renderer_test.dart b/web/charts/common/test/chart/bar/bar_target_line_renderer_test.dart index 863e11e49..dc34d1f9b 100644 --- a/web/charts/common/test/chart/bar/bar_target_line_renderer_test.dart +++ b/web/charts/common/test/chart/bar/bar_target_line_renderer_test.dart @@ -66,10 +66,10 @@ void main() { // Convenience methods for creating mocks. ///////////////////////////////////////// _configureBaseRenderer(BaseBarRenderer renderer, bool vertical) { - final context = new MockContext(); + final context = MockContext(); when(context.chartContainerIsRtl).thenReturn(false); when(context.isRtl).thenReturn(false); - final verticalChart = new MockChart(); + final verticalChart = MockChart(); when(verticalChart.vertical).thenReturn(vertical); when(verticalChart.context).thenReturn(context); renderer.onAttach(verticalChart); @@ -78,51 +78,51 @@ void main() { } BarTargetLineRenderer makeRenderer({BarTargetLineRendererConfig config}) { - final renderer = new BarTargetLineRenderer(config: config); + final renderer = BarTargetLineRenderer(config: config); _configureBaseRenderer(renderer, true); return renderer; } setUp(() { var myFakeDesktopData = [ - new MyRow('MyCampaign1', 5), - new MyRow('MyCampaign2', 25), - new MyRow('MyCampaign3', 100), - new MyRow('MyOtherCampaign', 75), + MyRow('MyCampaign1', 5), + MyRow('MyCampaign2', 25), + MyRow('MyCampaign3', 100), + MyRow('MyOtherCampaign', 75), ]; var myFakeTabletData = [ - new MyRow('MyCampaign1', 5), - new MyRow('MyCampaign2', 25), - new MyRow('MyCampaign3', 100), - new MyRow('MyOtherCampaign', 75), + MyRow('MyCampaign1', 5), + MyRow('MyCampaign2', 25), + MyRow('MyCampaign3', 100), + MyRow('MyOtherCampaign', 75), ]; var myFakeMobileData = [ - new MyRow('MyCampaign1', 5), - new MyRow('MyCampaign2', 25), - new MyRow('MyCampaign3', 100), - new MyRow('MyOtherCampaign', 75), + MyRow('MyCampaign1', 5), + MyRow('MyCampaign2', 25), + MyRow('MyCampaign3', 100), + MyRow('MyOtherCampaign', 75), ]; seriesList = [ - new MutableSeries(new Series( + MutableSeries(Series( id: 'Desktop', - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeDesktopData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Tablet', - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeTabletData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Mobile', - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeMobileData)) ]; }); @@ -130,7 +130,7 @@ void main() { group('preprocess', () { test('with grouped bar target lines', () { renderer = makeRenderer( - config: new BarTargetLineRendererConfig( + config: BarTargetLineRendererConfig( groupingType: BarGroupingType.grouped)); renderer.preprocessSeries(seriesList); @@ -194,7 +194,7 @@ void main() { test('with stacked bar target lines', () { renderer = makeRenderer( - config: new BarTargetLineRendererConfig( + config: BarTargetLineRendererConfig( groupingType: BarGroupingType.stacked)); renderer.preprocessSeries(seriesList); @@ -258,16 +258,16 @@ void main() { test('with stacked bar target lines containing zero and null', () { // Set up some nulls and zeros in the data. - seriesList[2].data[0] = new MyRow('MyCampaign1', null); - seriesList[2].data[2] = new MyRow('MyCampaign3', 0); + seriesList[2].data[0] = MyRow('MyCampaign1', null); + seriesList[2].data[2] = MyRow('MyCampaign3', 0); - seriesList[1].data[1] = new MyRow('MyCampaign2', null); - seriesList[1].data[3] = new MyRow('MyOtherCampaign', 0); + seriesList[1].data[1] = MyRow('MyCampaign2', null); + seriesList[1].data[3] = MyRow('MyOtherCampaign', 0); - seriesList[0].data[2] = new MyRow('MyCampaign3', 0); + seriesList[0].data[2] = MyRow('MyCampaign3', 0); renderer = makeRenderer( - config: new BarTargetLineRendererConfig( + config: BarTargetLineRendererConfig( groupingType: BarGroupingType.stacked)); renderer.preprocessSeries(seriesList); @@ -367,7 +367,7 @@ void main() { test('with stroke width target lines', () { renderer = makeRenderer( - config: new BarTargetLineRendererConfig( + config: BarTargetLineRendererConfig( groupingType: BarGroupingType.grouped, strokeWidthPx: 5.0)); renderer.preprocessSeries(seriesList); @@ -428,7 +428,7 @@ void main() { group('preprocess with weight pattern', () { test('with grouped bar target lines', () { renderer = makeRenderer( - config: new BarTargetLineRendererConfig( + config: BarTargetLineRendererConfig( groupingType: BarGroupingType.grouped, weightPattern: [3, 2, 1])); renderer.preprocessSeries(seriesList); @@ -496,7 +496,7 @@ void main() { test('with stacked bar target lines - weightPattern not used', () { renderer = makeRenderer( - config: new BarTargetLineRendererConfig( + config: BarTargetLineRendererConfig( groupingType: BarGroupingType.stacked, weightPattern: [2, 1])); renderer.preprocessSeries(seriesList); @@ -566,24 +566,24 @@ void main() { test('only include null in draw if animating from a non null measure', () { // Helper to create series list for this test only. List> _createSeriesList(List data) { - final domainAxis = new MockAxis(); + final domainAxis = MockAxis(); when(domainAxis.rangeBand).thenReturn(100.0); when(domainAxis.getLocation('MyCampaign1')).thenReturn(20.0); when(domainAxis.getLocation('MyCampaign2')).thenReturn(40.0); when(domainAxis.getLocation('MyCampaign3')).thenReturn(60.0); when(domainAxis.getLocation('MyOtherCampaign')).thenReturn(80.0); - final measureAxis = new MockAxis(); + final measureAxis = MockAxis(); when(measureAxis.getLocation(0)).thenReturn(0.0); when(measureAxis.getLocation(5)).thenReturn(5.0); when(measureAxis.getLocation(75)).thenReturn(75.0); when(measureAxis.getLocation(100)).thenReturn(100.0); - final color = new Color.fromHex(code: '#000000'); + final color = Color.fromHex(code: '#000000'); - final series = new MutableSeries(new Series( + final series = MutableSeries(Series( id: 'Desktop', - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, measureOffsetFn: (_, __) => 0, colorFn: (_, __) => color, fillColorFn: (_, __) => color, @@ -595,26 +595,26 @@ void main() { return [series]; } - final canvas = new MockCanvas(); + final canvas = MockCanvas(); final myDataWithNull = [ - new MyRow('MyCampaign1', 5), - new MyRow('MyCampaign2', null), - new MyRow('MyCampaign3', 100), - new MyRow('MyOtherCampaign', 75), + MyRow('MyCampaign1', 5), + MyRow('MyCampaign2', null), + MyRow('MyCampaign3', 100), + MyRow('MyOtherCampaign', 75), ]; final seriesListWithNull = _createSeriesList(myDataWithNull); final myDataWithMeasures = [ - new MyRow('MyCampaign1', 5), - new MyRow('MyCampaign2', 0), - new MyRow('MyCampaign3', 100), - new MyRow('MyOtherCampaign', 75), + MyRow('MyCampaign1', 5), + MyRow('MyCampaign2', 0), + MyRow('MyCampaign3', 100), + MyRow('MyOtherCampaign', 75), ]; final seriesListWithMeasures = _createSeriesList(myDataWithMeasures); renderer = makeRenderer( - config: new BarTargetLineRendererConfig( + config: BarTargetLineRendererConfig( groupingType: BarGroupingType.grouped)); // Verify that only 3 lines are drawn for an initial draw with null data. diff --git a/web/charts/common/test/chart/bar/renderer_nearest_detail_test.dart b/web/charts/common/test/chart/bar/renderer_nearest_detail_test.dart index 48302dc18..9d25f0929 100644 --- a/web/charts/common/test/chart/bar/renderer_nearest_detail_test.dart +++ b/web/charts/common/test/chart/bar/renderer_nearest_detail_test.dart @@ -61,40 +61,40 @@ class MockDateTimeAxis extends Mock implements Axis {} class MockCanvas extends Mock implements ChartCanvas {} void main() { - final date0 = new DateTime(2018, 2, 1); - final date1 = new DateTime(2018, 2, 7); - final dateOutsideViewport = new DateTime(2018, 1, 1); + final date0 = DateTime(2018, 2, 1); + final date1 = DateTime(2018, 2, 7); + final dateOutsideViewport = DateTime(2018, 1, 1); ///////////////////////////////////////// // Convenience methods for creating mocks. ///////////////////////////////////////// _configureBaseRenderer(BaseBarRenderer renderer, bool vertical) { - final context = new MockContext(); + final context = MockContext(); when(context.chartContainerIsRtl).thenReturn(false); when(context.isRtl).thenReturn(false); - final verticalChart = new MockChart(); + final verticalChart = MockChart(); when(verticalChart.vertical).thenReturn(vertical); when(verticalChart.context).thenReturn(context); renderer.onAttach(verticalChart); final layoutBounds = vertical - ? new Rectangle(70, 20, 230, 100) - : new Rectangle(70, 20, 100, 230); + ? Rectangle(70, 20, 230, 100) + : Rectangle(70, 20, 100, 230); renderer.layout(layoutBounds, layoutBounds); return renderer; } BaseBarRenderer _makeBarRenderer({bool vertical, BarGroupingType groupType}) { final renderer = - new BarRenderer(config: new BarRendererConfig(groupingType: groupType)); + BarRenderer(config: BarRendererConfig(groupingType: groupType)); _configureBaseRenderer(renderer, vertical); return renderer; } BaseBarRenderer _makeBarTargetRenderer( {bool vertical, BarGroupingType groupType}) { - final renderer = new BarTargetLineRenderer( - config: new BarTargetLineRendererConfig(groupingType: groupType)); + final renderer = BarTargetLineRenderer( + config: BarTargetLineRendererConfig(groupingType: groupType)); _configureBaseRenderer(renderer, vertical); return renderer; } @@ -102,11 +102,11 @@ void main() { MutableSeries _makeSeries( {String id, String seriesCategory, bool vertical = true}) { final data = [ - new MyRow('camp0', 10), - new MyRow('camp1', 10), + MyRow('camp0', 10), + MyRow('camp1', 10), ]; - final series = new MutableSeries(new Series( + final series = MutableSeries(Series( id: id, data: data, domainFn: (dynamic row, _) => row.campaign, @@ -115,10 +115,10 @@ void main() { )); series.measureOffsetFn = (_) => 0.0; - series.colorFn = (_) => new Color.fromHex(code: '#000000'); + series.colorFn = (_) => Color.fromHex(code: '#000000'); // Mock the Domain axis results. - final domainAxis = new MockOrdinalAxis(); + final domainAxis = MockOrdinalAxis(); when(domainAxis.rangeBand).thenReturn(100.0); final domainOffset = vertical ? 70.0 : 20.0; when(domainAxis.getLocation('camp0')) @@ -140,7 +140,7 @@ void main() { series.setAttr(domainAxisKey, domainAxis); // Mock the Measure axis results. - final measureAxis = new MockNumericAxis(); + final measureAxis = MockNumericAxis(); if (vertical) { when(measureAxis.getLocation(0.0)).thenReturn(20.0 + 100.0); when(measureAxis.getLocation(10.0)).thenReturn(20.0 + 100.0 - 10.0); @@ -158,11 +158,11 @@ void main() { MutableSeries _makeDateTimeSeries( {String id, String seriesCategory, bool vertical = true}) { final data = [ - new MyDateTimeRow(date0, 10), - new MyDateTimeRow(date1, 10), + MyDateTimeRow(date0, 10), + MyDateTimeRow(date1, 10), ]; - final series = new MutableSeries(new Series( + final series = MutableSeries(Series( id: id, data: data, domainFn: (dynamic row, _) => row.time, @@ -171,10 +171,10 @@ void main() { )); series.measureOffsetFn = (_) => 0.0; - series.colorFn = (_) => new Color.fromHex(code: '#000000'); + series.colorFn = (_) => Color.fromHex(code: '#000000'); // Mock the Domain axis results. - final domainAxis = new MockDateTimeAxis(); + final domainAxis = MockDateTimeAxis(); when(domainAxis.rangeBand).thenReturn(100.0); final domainOffset = vertical ? 70.0 : 20.0; when(domainAxis.getLocation(date0)).thenReturn(domainOffset + 10.0 + 50.0); @@ -185,7 +185,7 @@ void main() { series.setAttr(domainAxisKey, domainAxis); // Mock the Measure axis results. - final measureAxis = new MockNumericAxis(); + final measureAxis = MockNumericAxis(); if (vertical) { when(measureAxis.getLocation(0.0)).thenReturn(20.0 + 100.0); when(measureAxis.getLocation(10.0)).thenReturn(20.0 + 100.0 - 10.0); @@ -221,11 +221,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -251,11 +251,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -274,11 +274,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -304,11 +304,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -329,11 +329,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 13.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 13.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -358,11 +358,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -395,11 +395,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 13.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 13.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -435,11 +435,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -484,13 +484,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 13.0, 20.0), - selectNearestByDomain, - null); + Point(70.0 + 10.0 + 13.0, 20.0), selectNearestByDomain, null); // Verify expect(details.length, equals(1)); @@ -513,11 +511,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 50.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 50.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -544,19 +542,17 @@ void main() { final renderer = _makeBarRenderer(vertical: true, groupType: BarGroupingType.grouped); final seriesList = [ - _makeSeries(id: 'foo')..data.add(new MyRow('outsideViewport', 20)) + _makeSeries(id: 'foo')..data.add(MyRow('outsideViewport', 20)) ]; renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act // Note: point is in the axis, over a bar outside of the viewport. final details = renderer.getNearestDatumDetailPerSeries( - new Point(65.0, 20.0 + 100.0 - 5.0), - selectNearestByDomain, - null); + Point(65.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); // Verify expect(details.length, equals(0)); @@ -577,11 +573,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 5.0, 20.0 + 10.0 + 13.0), + Point(70.0 + 5.0, 20.0 + 10.0 + 13.0), selectNearestByDomain, null); @@ -606,11 +602,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 5.0, 20.0 + 10.0 + 20.0), + Point(70.0 + 5.0, 20.0 + 10.0 + 20.0), selectNearestByDomain, null); @@ -643,11 +639,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 5.0, 20.0 + 10.0 + 20.0), + Point(70.0 + 5.0, 20.0 + 10.0 + 20.0), selectNearestByDomain, null); @@ -682,11 +678,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 5.0, 20.0 + 10.0 + 20.0), + Point(70.0 + 5.0, 20.0 + 10.0 + 20.0), selectNearestByDomain, null); @@ -732,11 +728,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 100.0, 20.0 + 10.0 + 20.0), + Point(70.0 + 100.0, 20.0 + 10.0 + 20.0), selectNearestByDomain, null); @@ -761,11 +757,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 5.0, 20.0 + 10.0 + 50.0), + Point(70.0 + 5.0, 20.0 + 10.0 + 50.0), selectNearestByDomain, null); @@ -800,13 +796,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 13.0, 20.0), - selectNearestByDomain, - null); + Point(70.0 + 10.0 + 13.0, 20.0), selectNearestByDomain, null); // Verify expect(details.length, equals(1)); @@ -829,11 +823,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -866,11 +860,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 13.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 13.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -906,11 +900,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -958,11 +952,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 50.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 50.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -989,19 +983,17 @@ void main() { final renderer = _makeBarTargetRenderer( vertical: true, groupType: BarGroupingType.grouped); final seriesList = [ - _makeSeries(id: 'foo')..data.add(new MyRow('outsideViewport', 20)) + _makeSeries(id: 'foo')..data.add(MyRow('outsideViewport', 20)) ]; renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act // Note: point is in the axis, over a bar outside of the viewport. final details = renderer.getNearestDatumDetailPerSeries( - new Point(65.0, 20.0 + 100.0 - 5.0), - selectNearestByDomain, - null); + Point(65.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); // Verify expect(details.length, equals(0)); @@ -1022,11 +1014,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 100.0, 20.0 + 10.0 + 20.0), + Point(70.0 + 100.0, 20.0 + 10.0 + 20.0), selectNearestByDomain, null); @@ -1051,11 +1043,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 5.0, 20.0 + 10.0 + 20.0), + Point(70.0 + 5.0, 20.0 + 10.0 + 20.0), selectNearestByDomain, null); @@ -1088,11 +1080,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 5.0, 20.0 + 10.0 + 20.0), + Point(70.0 + 5.0, 20.0 + 10.0 + 20.0), selectNearestByDomain, null); @@ -1127,11 +1119,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 5.0, 20.0 + 10.0 + 20.0), + Point(70.0 + 5.0, 20.0 + 10.0 + 20.0), selectNearestByDomain, null); @@ -1178,11 +1170,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 5.0, 20.0 + 10.0 + 50.0), + Point(70.0 + 5.0, 20.0 + 10.0 + 50.0), selectNearestByDomain, null); @@ -1217,11 +1209,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 13.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 13.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -1246,11 +1238,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -1283,11 +1275,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 13.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 13.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -1323,11 +1315,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 20.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -1375,11 +1367,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0 + 50.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0 + 50.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -1407,19 +1399,17 @@ void main() { vertical: true, groupType: BarGroupingType.grouped); final seriesList = [ _makeDateTimeSeries(id: 'foo') - ..data.add(new MyDateTimeRow(dateOutsideViewport, 20)) + ..data.add(MyDateTimeRow(dateOutsideViewport, 20)) ]; renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act // Note: point is in the axis, over a bar outside of the viewport. final details = renderer.getNearestDatumDetailPerSeries( - new Point(65.0, 20.0 + 100.0 - 5.0), - selectNearestByDomain, - null); + Point(65.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); // Verify expect(details.length, equals(0)); diff --git a/web/charts/common/test/chart/cartesian/axis/axis_test.dart b/web/charts/common/test/chart/cartesian/axis/axis_test.dart index 0d2ec4a05..7f1496030 100644 --- a/web/charts/common/test/chart/cartesian/axis/axis_test.dart +++ b/web/charts/common/test/chart/cartesian/axis/axis_test.dart @@ -46,7 +46,7 @@ void main() { var tester = AxisTester(axis); axis.tickDrawStrategy = MockTickDrawStrategy(); axis.graphicsFactory = MockGraphicsFactory(); - tester.scale.range = new ScaleOutputExtent(0, 300); + tester.scale.range = ScaleOutputExtent(0, 300); axis.updateTicks(); diff --git a/web/charts/common/test/chart/cartesian/axis/axis_tick_test.dart b/web/charts/common/test/chart/cartesian/axis/axis_tick_test.dart index dd283c9a0..dd0e348a3 100644 --- a/web/charts/common/test/chart/cartesian/axis/axis_tick_test.dart +++ b/web/charts/common/test/chart/cartesian/axis/axis_tick_test.dart @@ -36,9 +36,9 @@ class FakeTextElement implements TextElement { /// Helper to create a tick for testing. Tick _createTestTick(String value, double locationPx) { - return new Tick( + return Tick( value: value, - textElement: new FakeTextElement(value), + textElement: FakeTextElement(value), locationPx: locationPx); } @@ -50,7 +50,7 @@ void _verify(Tick tick, {double location, double opacity}) { void main() { // Tick first render. test('tick created for the first time', () { - final tick = new AxisTicks(_createTestTick('a', 100.0)); + final tick = AxisTicks(_createTestTick('a', 100.0)); // Animate in the tick, there was no previous position to animated in from // so the tick appears in the target immediately. @@ -69,8 +69,7 @@ void main() { // Tick that is animated in. test('tick created with a previous location', () { - final tick = new AxisTicks(_createTestTick('a', 200.0)) - ..animateInFrom(100.0); + final tick = AxisTicks(_createTestTick('a', 200.0))..animateInFrom(100.0); tick.setCurrentTick(0.0); _verify(tick, location: 100.0, opacity: 0.0); @@ -87,7 +86,7 @@ void main() { // Tick that is being animated out. test('tick is animated in and then out', () { - final tick = new AxisTicks(_createTestTick('a', 100.0)); + final tick = AxisTicks(_createTestTick('a', 100.0)); // Animate in the tick, there was no previous position to animated in from // so the tick appears in the target immediately. @@ -113,7 +112,7 @@ void main() { }); test('tick target change after reaching target', () { - final tick = new AxisTicks(_createTestTick('a', 100.0)); + final tick = AxisTicks(_createTestTick('a', 100.0)); // Animate in the tick. tick.setCurrentTick(1.0); @@ -137,7 +136,7 @@ void main() { }); test('tick target change before reaching initial target', () { - final tick = new AxisTicks(_createTestTick('a', 400.0))..animateInFrom(0.0); + final tick = AxisTicks(_createTestTick('a', 400.0))..animateInFrom(0.0); // Animate in the tick. tick.setCurrentTick(0.25); @@ -161,7 +160,7 @@ void main() { }); test('tick target animate out before reaching initial target', () { - final tick = new AxisTicks(_createTestTick('a', 400.0))..animateInFrom(0.0); + final tick = AxisTicks(_createTestTick('a', 400.0))..animateInFrom(0.0); // Animate in the tick. tick.setCurrentTick(0.25); diff --git a/web/charts/common/test/chart/cartesian/axis/bucketing_numeric_tick_provider_test.dart b/web/charts/common/test/chart/cartesian/axis/bucketing_numeric_tick_provider_test.dart index 2031785aa..cdd678c58 100644 --- a/web/charts/common/test/chart/cartesian/axis/bucketing_numeric_tick_provider_test.dart +++ b/web/charts/common/test/chart/cartesian/axis/bucketing_numeric_tick_provider_test.dart @@ -48,14 +48,14 @@ class FakeDrawStrategy extends BaseTickDrawStrategy { FakeDrawStrategy( this.collidesAfterTickCount, this.alternateRenderingAfterTickCount) - : super(null, new FakeGraphicsFactory()); + : super(null, FakeGraphicsFactory()); @override CollisionReport collides(List> ticks, _) { final ticksCollide = ticks.length >= collidesAfterTickCount; final alternateTicksUsed = ticks.length >= alternateRenderingAfterTickCount; - return new CollisionReport( + return CollisionReport( ticksCollide: ticksCollide, ticks: ticks, alternateTicksUsed: alternateTicksUsed); @@ -73,13 +73,13 @@ class FakeDrawStrategy extends BaseTickDrawStrategy { /// A fake [GraphicsFactory] that returns [MockTextStyle] and [MockTextElement]. class FakeGraphicsFactory extends GraphicsFactory { @override - TextStyle createTextPaint() => new MockTextStyle(); + TextStyle createTextPaint() => MockTextStyle(); @override - TextElement createTextElement(String text) => new MockTextElement(text); + TextElement createTextElement(String text) => MockTextElement(text); @override - LineStyle createLinePaint() => new MockLinePaint(); + LineStyle createLinePaint() => MockLinePaint(); } class MockTextStyle extends Mock implements TextStyle {} @@ -113,11 +113,11 @@ void main() { ChartContext context; setUp(() { - graphicsFactory = new FakeGraphicsFactory(); - scale = new MockNumericScale(); - tickProvider = new BucketingNumericTickProvider(); - formatter = new NumericTickFormatter(); - context = new MockChartContext(); + graphicsFactory = FakeGraphicsFactory(); + scale = MockNumericScale(); + tickProvider = BucketingNumericTickProvider(); + formatter = NumericTickFormatter(); + context = MockChartContext(); }); group('threshold', () { @@ -128,8 +128,8 @@ void main() { ..showBucket = true ..setFixedTickCount(21) ..allowedSteps = [1.0, 2.5, 5.0]; - final drawStrategy = new FakeDrawStrategy(10, 10); - when(scale.viewportDomain).thenReturn(new NumericExtents(0.1, 0.7)); + final drawStrategy = FakeDrawStrategy(10, 10); + when(scale.viewportDomain).thenReturn(NumericExtents(0.1, 0.7)); when(scale.rangeWidth).thenReturn(1000); when(scale[0.1]).thenReturn(90.0); when(scale[0]).thenReturn(100.0); @@ -163,17 +163,16 @@ void main() { // Verify that the rest of the ticks are all above the threshold in value // and have normal labels. var aboveThresholdTicks = ticks.sublist(2); - aboveThresholdTicks.retainWhere((Tick tick) => tick.value > 0.1); + aboveThresholdTicks.retainWhere((tick) => tick.value > 0.1); expect(aboveThresholdTicks, hasLength(18)); aboveThresholdTicks = ticks.sublist(2); - aboveThresholdTicks.retainWhere((Tick tick) => + aboveThresholdTicks.retainWhere((tick) => tick.textElement.text != '' && !tick.textElement.text.contains('<')); expect(aboveThresholdTicks, hasLength(18)); aboveThresholdTicks = ticks.sublist(2); - aboveThresholdTicks - .retainWhere((Tick tick) => tick.labelOffsetPx == null); + aboveThresholdTicks.retainWhere((tick) => tick.labelOffsetPx == null); expect(aboveThresholdTicks, hasLength(18)); }); }); diff --git a/web/charts/common/test/chart/cartesian/axis/draw_strategy/tick_draw_strategy_test.dart b/web/charts/common/test/chart/cartesian/axis/draw_strategy/tick_draw_strategy_test.dart index 9edb281c2..97816eab1 100644 --- a/web/charts/common/test/chart/cartesian/axis/draw_strategy/tick_draw_strategy_test.dart +++ b/web/charts/common/test/chart/cartesian/axis/draw_strategy/tick_draw_strategy_test.dart @@ -75,7 +75,7 @@ class FakeTextElement implements TextElement { this.textDirection, double horizontalSliceWidth, double verticalSliceWidth, - ) : measurement = new TextMeasurement( + ) : measurement = TextMeasurement( horizontalSliceWidth: horizontalSliceWidth, verticalSliceWidth: verticalSliceWidth); } @@ -91,10 +91,10 @@ Tick createTick(String value, double locationPx, {double horizontalWidth, double verticalWidth, TextDirection textDirection}) { - return new Tick( + return Tick( value: value, locationPx: locationPx, - textElement: new FakeTextElement( + textElement: FakeTextElement( value, textDirection, horizontalWidth, verticalWidth)); } @@ -103,18 +103,18 @@ void main() { ChartContext chartContext; setUpAll(() { - graphicsFactory = new MockGraphicsFactory(); - when(graphicsFactory.createLinePaint()).thenReturn(new MockLineStyle()); - when(graphicsFactory.createTextPaint()).thenReturn(new MockTextStyle()); + graphicsFactory = MockGraphicsFactory(); + when(graphicsFactory.createLinePaint()).thenReturn(MockLineStyle()); + when(graphicsFactory.createTextPaint()).thenReturn(MockTextStyle()); - chartContext = new MockContext(); + chartContext = MockContext(); when(chartContext.chartContainerIsRtl).thenReturn(false); when(chartContext.isRtl).thenReturn(false); }); group('collision detection - vertically drawn axis', () { test('ticks do not collide', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 2); @@ -130,7 +130,7 @@ void main() { }); test('ticks collide because it does not have minimum padding', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 2); @@ -146,7 +146,7 @@ void main() { }); test('first tick causes collision', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 0); @@ -162,7 +162,7 @@ void main() { }); test('last tick causes collision', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 0); @@ -178,7 +178,7 @@ void main() { }); test('ticks do not collide for inside tick label anchor', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 2, labelAnchor: TickLabelAnchor.inside); @@ -195,7 +195,7 @@ void main() { }); test('ticks collide for inside anchor - first tick too large', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 2, labelAnchor: TickLabelAnchor.inside); @@ -212,7 +212,7 @@ void main() { }); test('ticks collide for inside anchor - center tick too large', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 2, labelAnchor: TickLabelAnchor.inside); @@ -229,7 +229,7 @@ void main() { }); test('ticks collide for inside anchor - last tick too large', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 2, labelAnchor: TickLabelAnchor.inside); @@ -248,7 +248,7 @@ void main() { group('collision detection - horizontally drawn axis', () { test('ticks do not collide for TickLabelAnchor.before', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 2, labelAnchor: TickLabelAnchor.before); @@ -265,7 +265,7 @@ void main() { }); test('ticks do not collide for TickLabelAnchor.inside', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 0, labelAnchor: TickLabelAnchor.inside); @@ -288,7 +288,7 @@ void main() { }); test('ticks collide - first tick too large', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 0, labelAnchor: TickLabelAnchor.inside); @@ -305,7 +305,7 @@ void main() { }); test('ticks collide - middle tick too large', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 0, labelAnchor: TickLabelAnchor.inside); @@ -322,7 +322,7 @@ void main() { }); test('ticks collide - last tick too large', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 0, labelAnchor: TickLabelAnchor.inside); @@ -341,7 +341,7 @@ void main() { group('collision detection - unsorted ticks', () { test('ticks do not collide', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 0, labelAnchor: TickLabelAnchor.inside); @@ -358,7 +358,7 @@ void main() { }); test('ticks collide - tick B is too large', () { - final drawStrategy = new BaseTickDrawStrategyImpl( + final drawStrategy = BaseTickDrawStrategyImpl( chartContext, graphicsFactory, minimumPaddingBetweenLabelsPx: 0, labelAnchor: TickLabelAnchor.inside); @@ -378,7 +378,7 @@ void main() { group('collision detection - corner cases', () { test('null ticks do not collide', () { final drawStrategy = - new BaseTickDrawStrategyImpl(chartContext, graphicsFactory); + BaseTickDrawStrategyImpl(chartContext, graphicsFactory); final report = drawStrategy.collides(null, AxisOrientation.left); @@ -387,7 +387,7 @@ void main() { test('empty tick list do not collide', () { final drawStrategy = - new BaseTickDrawStrategyImpl(chartContext, graphicsFactory); + BaseTickDrawStrategyImpl(chartContext, graphicsFactory); final report = drawStrategy.collides([], AxisOrientation.left); @@ -396,7 +396,7 @@ void main() { test('single tick does not collide', () { final drawStrategy = - new BaseTickDrawStrategyImpl(chartContext, graphicsFactory); + BaseTickDrawStrategyImpl(chartContext, graphicsFactory); final report = drawStrategy.collides( [createTick('A', 10.0, horizontalWidth: 10.0)], diff --git a/web/charts/common/test/chart/cartesian/axis/end_points_tick_provider_test.dart b/web/charts/common/test/chart/cartesian/axis/end_points_tick_provider_test.dart index dbf923ad6..eb3449236 100644 --- a/web/charts/common/test/chart/cartesian/axis/end_points_tick_provider_test.dart +++ b/web/charts/common/test/chart/cartesian/axis/end_points_tick_provider_test.dart @@ -57,14 +57,14 @@ class FakeDrawStrategy extends BaseTickDrawStrategy { FakeDrawStrategy( this.collidesAfterTickCount, this.alternateRenderingAfterTickCount) - : super(null, new FakeGraphicsFactory()); + : super(null, FakeGraphicsFactory()); @override CollisionReport collides(List> ticks, _) { final ticksCollide = ticks.length >= collidesAfterTickCount; final alternateTicksUsed = ticks.length >= alternateRenderingAfterTickCount; - return new CollisionReport( + return CollisionReport( ticksCollide: ticksCollide, ticks: ticks, alternateTicksUsed: alternateTicksUsed); @@ -82,13 +82,13 @@ class FakeDrawStrategy extends BaseTickDrawStrategy { /// A fake [GraphicsFactory] that returns [MockTextStyle] and [MockTextElement]. class FakeGraphicsFactory extends GraphicsFactory { @override - TextStyle createTextPaint() => new MockTextStyle(); + TextStyle createTextPaint() => MockTextStyle(); @override - TextElement createTextElement(String text) => new MockTextElement(); + TextElement createTextElement(String text) => MockTextElement(); @override - LineStyle createLinePaint() => new MockLinePaint(); + LineStyle createLinePaint() => MockLinePaint(); } class MockTextStyle extends Mock implements TextStyle {} @@ -100,24 +100,24 @@ class MockLinePaint extends Mock implements LineStyle {} class MockChartContext extends Mock implements ChartContext {} void main() { - const dateTimeFactory = const SimpleDateTimeFactory(); + const dateTimeFactory = SimpleDateTimeFactory(); FakeGraphicsFactory graphicsFactory; EndPointsTickProvider tickProvider; ChartContext context; setUp(() { - graphicsFactory = new FakeGraphicsFactory(); - context = new MockChartContext(); + graphicsFactory = FakeGraphicsFactory(); + context = MockChartContext(); }); test('dateTime_choosesEndPointTicks', () { - final formatter = new DateTimeTickFormatter(dateTimeFactory); - final scale = new MockDateTimeScale(); - tickProvider = new EndPointsTickProvider(); + final formatter = DateTimeTickFormatter(dateTimeFactory); + final scale = MockDateTimeScale(); + tickProvider = EndPointsTickProvider(); - final drawStrategy = new FakeDrawStrategy(10, 10); - when(scale.viewportDomain).thenReturn(new DateTimeExtents( - start: new DateTime(2018, 8, 1), end: new DateTime(2018, 8, 11))); + final drawStrategy = FakeDrawStrategy(10, 10); + when(scale.viewportDomain).thenReturn(DateTimeExtents( + start: DateTime(2018, 8, 1), end: DateTime(2018, 8, 11))); when(scale.rangeWidth).thenReturn(1000); when(scale.domainStepSize).thenReturn(1000.0); @@ -131,17 +131,17 @@ void main() { orientation: null); expect(ticks, hasLength(2)); - expect(ticks[0].value, equals(new DateTime(2018, 8, 1))); - expect(ticks[1].value, equals(new DateTime(2018, 8, 11))); + expect(ticks[0].value, equals(DateTime(2018, 8, 1))); + expect(ticks[1].value, equals(DateTime(2018, 8, 11))); }); test('numeric_choosesEndPointTicks', () { - final formatter = new NumericTickFormatter(); - final scale = new MockNumericScale(); - tickProvider = new EndPointsTickProvider(); + final formatter = NumericTickFormatter(); + final scale = MockNumericScale(); + tickProvider = EndPointsTickProvider(); - final drawStrategy = new FakeDrawStrategy(10, 10); - when(scale.viewportDomain).thenReturn(new NumericExtents(10.0, 70.0)); + final drawStrategy = FakeDrawStrategy(10, 10); + when(scale.viewportDomain).thenReturn(NumericExtents(10.0, 70.0)); when(scale.rangeWidth).thenReturn(1000); when(scale.domainStepSize).thenReturn(1000.0); @@ -160,15 +160,15 @@ void main() { }); test('ordinal_choosesEndPointTicks', () { - final formatter = new OrdinalTickFormatter(); - final scale = new SimpleOrdinalScale(); + final formatter = OrdinalTickFormatter(); + final scale = SimpleOrdinalScale(); scale.addDomain('A'); scale.addDomain('B'); scale.addDomain('C'); scale.addDomain('D'); - tickProvider = new EndPointsTickProvider(); + tickProvider = EndPointsTickProvider(); - final drawStrategy = new FakeDrawStrategy(10, 10); + final drawStrategy = FakeDrawStrategy(10, 10); final ticks = tickProvider.getTicks( context: context, @@ -185,13 +185,13 @@ void main() { }); test('dateTime_emptySeriesChoosesNoTicks', () { - final formatter = new DateTimeTickFormatter(dateTimeFactory); - final scale = new MockDateTimeScale(); - tickProvider = new EndPointsTickProvider(); + final formatter = DateTimeTickFormatter(dateTimeFactory); + final scale = MockDateTimeScale(); + tickProvider = EndPointsTickProvider(); - final drawStrategy = new FakeDrawStrategy(10, 10); - when(scale.viewportDomain).thenReturn(new DateTimeExtents( - start: new DateTime(2018, 8, 1), end: new DateTime(2018, 8, 11))); + final drawStrategy = FakeDrawStrategy(10, 10); + when(scale.viewportDomain).thenReturn(DateTimeExtents( + start: DateTime(2018, 8, 1), end: DateTime(2018, 8, 11))); when(scale.rangeWidth).thenReturn(1000); // An un-configured axis has no domain step size, and its scale defaults to @@ -211,12 +211,12 @@ void main() { }); test('numeric_emptySeriesChoosesNoTicks', () { - final formatter = new NumericTickFormatter(); - final scale = new MockNumericScale(); - tickProvider = new EndPointsTickProvider(); + final formatter = NumericTickFormatter(); + final scale = MockNumericScale(); + tickProvider = EndPointsTickProvider(); - final drawStrategy = new FakeDrawStrategy(10, 10); - when(scale.viewportDomain).thenReturn(new NumericExtents(10.0, 70.0)); + final drawStrategy = FakeDrawStrategy(10, 10); + when(scale.viewportDomain).thenReturn(NumericExtents(10.0, 70.0)); when(scale.rangeWidth).thenReturn(1000); // An un-configured axis has no domain step size, and its scale defaults to diff --git a/web/charts/common/test/chart/cartesian/axis/linear/linear_scale_test.dart b/web/charts/common/test/chart/cartesian/axis/linear/linear_scale_test.dart index 0ed704155..4dbd113b7 100644 --- a/web/charts/common/test/chart/cartesian/axis/linear/linear_scale_test.dart +++ b/web/charts/common/test/chart/cartesian/axis/linear/linear_scale_test.dart @@ -26,12 +26,12 @@ const EPSILON = 0.001; void main() { group('Stacking bars', () { test('basic apply survives copy and reset', () { - LinearScale scale = new LinearScale(); + LinearScale scale = LinearScale(); scale.addDomain(100.0); scale.addDomain(130.0); scale.addDomain(200.0); scale.addDomain(170.0); - scale.range = new ScaleOutputExtent(2000, 1000); + scale.range = ScaleOutputExtent(2000, 1000); expect(scale.range.start, equals(2000)); expect(scale.range.end, equals(1000)); @@ -71,11 +71,11 @@ void main() { }); test('viewport assigned domain extent applies to scale', () { - LinearScale scale = new LinearScale()..keepViewportWithinData = false; + LinearScale scale = LinearScale()..keepViewportWithinData = false; scale.addDomain(50.0); scale.addDomain(70.0); - scale.viewportDomain = new NumericExtents(100.0, 200.0); - scale.range = new ScaleOutputExtent(0, 200); + scale.viewportDomain = NumericExtents(100.0, 200.0); + scale.range = ScaleOutputExtent(0, 200); expect(scale[200.0], closeTo(200, EPSILON)); expect(scale[100.0], closeTo(0, EPSILON)); @@ -86,8 +86,8 @@ void main() { scale.resetViewportSettings(); scale.addDomain(50.0); scale.addDomain(100.0); - scale.viewportDomain = new NumericExtents(0.0, 100.0); - scale.range = new ScaleOutputExtent(0, 200); + scale.viewportDomain = NumericExtents(0.0, 100.0); + scale.range = ScaleOutputExtent(0, 200); expect(scale[0.0], closeTo(0, EPSILON)); expect(scale[100.0], closeTo(200, EPSILON)); @@ -96,12 +96,12 @@ void main() { }); test('comparing domain and range to viewport handles extent edges', () { - LinearScale scale = new LinearScale(); - scale.range = new ScaleOutputExtent(1000, 1400); - scale.domainOverride = new NumericExtents(100.0, 300.0); - scale.viewportDomain = new NumericExtents(200.0, 300.0); + LinearScale scale = LinearScale(); + scale.range = ScaleOutputExtent(1000, 1400); + scale.domainOverride = NumericExtents(100.0, 300.0); + scale.viewportDomain = NumericExtents(200.0, 300.0); - expect(scale.viewportDomain, equals(new NumericExtents(200.0, 300.0))); + expect(scale.viewportDomain, equals(NumericExtents(200.0, 300.0))); expect(scale[210.0], closeTo(1040, EPSILON)); expect(scale[400.0], closeTo(1800, EPSILON)); @@ -120,10 +120,10 @@ void main() { }); test('scale applies in reverse', () { - LinearScale scale = new LinearScale(); - scale.range = new ScaleOutputExtent(1000, 1400); - scale.domainOverride = new NumericExtents(100.0, 300.0); - scale.viewportDomain = new NumericExtents(200.0, 300.0); + LinearScale scale = LinearScale(); + scale.range = ScaleOutputExtent(1000, 1400); + scale.domainOverride = NumericExtents(100.0, 300.0); + scale.viewportDomain = NumericExtents(200.0, 300.0); expect(scale.reverse(1040.0), closeTo(210.0, EPSILON)); expect(scale.reverse(1800.0), closeTo(400.0, EPSILON)); @@ -131,10 +131,10 @@ void main() { }); test('scale works with a range from larger to smaller', () { - LinearScale scale = new LinearScale(); - scale.range = new ScaleOutputExtent(1400, 1000); - scale.domainOverride = new NumericExtents(100.0, 300.0); - scale.viewportDomain = new NumericExtents(200.0, 300.0); + LinearScale scale = LinearScale(); + scale.range = ScaleOutputExtent(1400, 1000); + scale.domainOverride = NumericExtents(100.0, 300.0); + scale.viewportDomain = NumericExtents(200.0, 300.0); expect(scale[200.0], closeTo(1400.0, EPSILON)); expect(scale[250.0], closeTo(1200.0, EPSILON)); @@ -142,9 +142,9 @@ void main() { }); test('scaleFactor and translate applies to scale', () { - LinearScale scale = new LinearScale(); - scale.range = new ScaleOutputExtent(1000, 1200); - scale.domainOverride = new NumericExtents(100.0, 200.0); + LinearScale scale = LinearScale(); + scale.range = ScaleOutputExtent(1000, 1200); + scale.domainOverride = NumericExtents(100.0, 200.0); scale.setViewportSettings(4.0, -50.0); expect(scale[100.0], closeTo(950.0, EPSILON)); @@ -167,8 +167,8 @@ void main() { }); test('scale handles single point', () { - LinearScale domainScale = new LinearScale(); - domainScale.range = new ScaleOutputExtent(1000, 1200); + LinearScale domainScale = LinearScale(); + domainScale.range = ScaleOutputExtent(1000, 1200); domainScale.addDomain(50.0); // A single point should render in the middle of the scale. @@ -176,125 +176,125 @@ void main() { }); test('testAllZeros', () { - LinearScale measureScale = new LinearScale(); - measureScale.range = new ScaleOutputExtent(1000, 1200); + LinearScale measureScale = LinearScale(); + measureScale.range = ScaleOutputExtent(1000, 1200); measureScale.addDomain(0.0); expect(measureScale[0.0], closeTo(1100.0, EPSILON)); }); test('scale calculates step size', () { - LinearScale scale = new LinearScale(); - scale.rangeBandConfig = new RangeBandConfig.percentOfStep(1.0); + LinearScale scale = LinearScale(); + scale.rangeBandConfig = RangeBandConfig.percentOfStep(1.0); scale.addDomain(1.0); scale.addDomain(3.0); scale.addDomain(11.0); - scale.range = new ScaleOutputExtent(100, 200); + scale.range = ScaleOutputExtent(100, 200); // 1 - 11 has 6 steps of size 2, 0 - 12 expect(scale.rangeBand, closeTo(100.0 / 6.0, EPSILON)); }); test('scale applies rangeBand to detected step size', () { - LinearScale scale = new LinearScale(); - scale.rangeBandConfig = new RangeBandConfig.percentOfStep(0.5); + LinearScale scale = LinearScale(); + scale.rangeBandConfig = RangeBandConfig.percentOfStep(0.5); scale.addDomain(1.0); scale.addDomain(2.0); scale.addDomain(10.0); - scale.range = new ScaleOutputExtent(100, 200); + scale.range = ScaleOutputExtent(100, 200); // 100 range / 10 steps * 0.5percentStep = 5 expect(scale.rangeBand, closeTo(5.0, EPSILON)); }); test('scale stepSize calculation survives copy', () { - LinearScale scale = new LinearScale(); - scale.stepSizeConfig = new StepSizeConfig.fixedDomain(1.0); - scale.rangeBandConfig = new RangeBandConfig.percentOfStep(1.0); + LinearScale scale = LinearScale(); + scale.stepSizeConfig = StepSizeConfig.fixedDomain(1.0); + scale.rangeBandConfig = RangeBandConfig.percentOfStep(1.0); scale.addDomain(1.0); scale.addDomain(3.0); - scale.range = new ScaleOutputExtent(100, 200); + scale.range = ScaleOutputExtent(100, 200); expect(scale.copy().rangeBand, closeTo(100.0 / 3.0, EPSILON)); }); test('scale rangeBand calculation survives copy', () { - LinearScale scale = new LinearScale(); - scale.rangeBandConfig = new RangeBandConfig.fixedPixel(123.0); + LinearScale scale = LinearScale(); + scale.rangeBandConfig = RangeBandConfig.fixedPixel(123.0); scale.addDomain(1.0); scale.addDomain(3.0); - scale.range = new ScaleOutputExtent(100, 200); + scale.range = ScaleOutputExtent(100, 200); expect(scale.copy().rangeBand, closeTo(123, EPSILON)); }); test('scale rangeBand works for single domain value', () { - LinearScale scale = new LinearScale(); - scale.rangeBandConfig = new RangeBandConfig.percentOfStep(1.0); + LinearScale scale = LinearScale(); + scale.rangeBandConfig = RangeBandConfig.percentOfStep(1.0); scale.addDomain(1.0); - scale.range = new ScaleOutputExtent(100, 200); + scale.range = ScaleOutputExtent(100, 200); expect(scale.rangeBand, closeTo(100, EPSILON)); }); test('scale rangeBand works for multiple domains of the same value', () { - LinearScale scale = new LinearScale(); - scale.rangeBandConfig = new RangeBandConfig.percentOfStep(1.0); + LinearScale scale = LinearScale(); + scale.rangeBandConfig = RangeBandConfig.percentOfStep(1.0); scale.addDomain(1.0); scale.addDomain(1.0); - scale.range = new ScaleOutputExtent(100, 200); + scale.range = ScaleOutputExtent(100, 200); expect(scale.rangeBand, closeTo(100.0, EPSILON)); }); test('scale rangeBand is zero when no domains are added', () { - LinearScale scale = new LinearScale(); - scale.range = new ScaleOutputExtent(100, 200); + LinearScale scale = LinearScale(); + scale.range = ScaleOutputExtent(100, 200); expect(scale.rangeBand, closeTo(0.0, EPSILON)); }); test('scale domain info reset on resetDomain', () { - LinearScale scale = new LinearScale(); + LinearScale scale = LinearScale(); scale.addDomain(1.0); scale.addDomain(3.0); - scale.range = new ScaleOutputExtent(100, 200); + scale.range = ScaleOutputExtent(100, 200); scale.setViewportSettings(1000.0, 2000.0); scale.resetDomain(); scale.resetViewportSettings(); expect(scale.viewportScalingFactor, closeTo(1.0, EPSILON)); expect(scale.viewportTranslatePx, closeTo(0, EPSILON)); - expect(scale.range, equals(new ScaleOutputExtent(100, 200))); + expect(scale.range, equals(ScaleOutputExtent(100, 200))); }); test('scale handles null domain values', () { - LinearScale scale = new LinearScale(); - scale.rangeBandConfig = new RangeBandConfig.percentOfStep(1.0); + LinearScale scale = LinearScale(); + scale.rangeBandConfig = RangeBandConfig.percentOfStep(1.0); scale.addDomain(1.0); scale.addDomain(null); scale.addDomain(3.0); scale.addDomain(11.0); - scale.range = new ScaleOutputExtent(100, 200); + scale.range = ScaleOutputExtent(100, 200); expect(scale.rangeBand, closeTo(100.0 / 6.0, EPSILON)); }); test('scale domainOverride survives copy', () { - LinearScale scale = new LinearScale()..keepViewportWithinData = false; + LinearScale scale = LinearScale()..keepViewportWithinData = false; scale.addDomain(1.0); scale.addDomain(3.0); - scale.range = new ScaleOutputExtent(100, 200); + scale.range = ScaleOutputExtent(100, 200); scale.setViewportSettings(2.0, 10.0); - scale.domainOverride = new NumericExtents(0.0, 100.0); + scale.domainOverride = NumericExtents(0.0, 100.0); LinearScale other = scale.copy(); - expect(other.domainOverride, equals(new NumericExtents(0.0, 100.0))); + expect(other.domainOverride, equals(NumericExtents(0.0, 100.0))); expect(other[5.0], closeTo(120.0, EPSILON)); }); test('scale calculates a scaleFactor given a domain window', () { - LinearScale scale = new LinearScale(); + LinearScale scale = LinearScale(); scale.addDomain(100.0); scale.addDomain(130.0); scale.addDomain(200.0); diff --git a/web/charts/common/test/chart/cartesian/axis/numeric_tick_provider_test.dart b/web/charts/common/test/chart/cartesian/axis/numeric_tick_provider_test.dart index ae0c9173a..bbcb0d6e0 100644 --- a/web/charts/common/test/chart/cartesian/axis/numeric_tick_provider_test.dart +++ b/web/charts/common/test/chart/cartesian/axis/numeric_tick_provider_test.dart @@ -49,14 +49,14 @@ class FakeDrawStrategy extends BaseTickDrawStrategy { FakeDrawStrategy( this.collidesAfterTickCount, this.alternateRenderingAfterTickCount) - : super(null, new FakeGraphicsFactory()); + : super(null, FakeGraphicsFactory()); @override CollisionReport collides(List> ticks, _) { final ticksCollide = ticks.length >= collidesAfterTickCount; final alternateTicksUsed = ticks.length >= alternateRenderingAfterTickCount; - return new CollisionReport( + return CollisionReport( ticksCollide: ticksCollide, ticks: ticks, alternateTicksUsed: alternateTicksUsed); @@ -74,13 +74,13 @@ class FakeDrawStrategy extends BaseTickDrawStrategy { /// A fake [GraphicsFactory] that returns [MockTextStyle] and [MockTextElement]. class FakeGraphicsFactory extends GraphicsFactory { @override - TextStyle createTextPaint() => new MockTextStyle(); + TextStyle createTextPaint() => MockTextStyle(); @override - TextElement createTextElement(String text) => new MockTextElement(); + TextElement createTextElement(String text) => MockTextElement(); @override - LineStyle createLinePaint() => new MockLinePaint(); + LineStyle createLinePaint() => MockLinePaint(); } class MockTextStyle extends Mock implements TextStyle {} @@ -110,11 +110,11 @@ void main() { ChartContext context; setUp(() { - graphicsFactory = new FakeGraphicsFactory(); - scale = new MockNumericScale(); - tickProvider = new NumericTickProvider(); - formatter = new NumericTickFormatter(); - context = new MockChartContext(); + graphicsFactory = FakeGraphicsFactory(); + scale = MockNumericScale(); + tickProvider = NumericTickProvider(); + formatter = NumericTickFormatter(); + context = MockChartContext(); }); test('singleTickCount_choosesTicksWithSmallestStepCoveringDomain', () { @@ -123,8 +123,8 @@ void main() { ..dataIsInWholeNumbers = false ..setFixedTickCount(4) ..allowedSteps = [1.0, 2.5, 5.0]; - final drawStrategy = new FakeDrawStrategy(10, 10); - when(scale.viewportDomain).thenReturn(new NumericExtents(10.0, 70.0)); + final drawStrategy = FakeDrawStrategy(10, 10); + when(scale.viewportDomain).thenReturn(NumericExtents(10.0, 70.0)); when(scale.rangeWidth).thenReturn(1000); final ticks = tickProvider.getTicks( @@ -151,8 +151,8 @@ void main() { ..dataIsInWholeNumbers = false ..setTickCount(5, 3) ..allowedSteps = [1.0, 2.5, 5.0]; - final drawStrategy = new FakeDrawStrategy(10, 10); - when(scale.viewportDomain).thenReturn(new NumericExtents(10.0, 80.0)); + final drawStrategy = FakeDrawStrategy(10, 10); + when(scale.viewportDomain).thenReturn(NumericExtents(10.0, 80.0)); when(scale.rangeWidth).thenReturn(1000); final ticks = tickProvider.getTicks( @@ -178,8 +178,8 @@ void main() { ..dataIsInWholeNumbers = false ..setTickCount(5, 3) ..allowedSteps = [1.0, 2.5, 6.0]; - final drawStrategy = new FakeDrawStrategy(10, 5); - when(scale.viewportDomain).thenReturn(new NumericExtents(10.0, 80.0)); + final drawStrategy = FakeDrawStrategy(10, 5); + when(scale.viewportDomain).thenReturn(NumericExtents(10.0, 80.0)); when(scale.rangeWidth).thenReturn(1000); final ticks = tickProvider.getTicks( @@ -203,8 +203,8 @@ void main() { ..dataIsInWholeNumbers = false ..setTickCount(5, 3) ..allowedSteps = [1.0, 2.5, 6.0]; - final drawStrategy = new FakeDrawStrategy(5, 5); - when(scale.viewportDomain).thenReturn(new NumericExtents(10.0, 80.0)); + final drawStrategy = FakeDrawStrategy(5, 5); + when(scale.viewportDomain).thenReturn(NumericExtents(10.0, 80.0)); when(scale.rangeWidth).thenReturn(1000); final ticks = tickProvider.getTicks( @@ -228,8 +228,8 @@ void main() { ..dataIsInWholeNumbers = false ..setFixedTickCount(3) ..allowedSteps = [1.0, 2.5, 5.0]; - final drawStrategy = new FakeDrawStrategy(10, 10); - when(scale.viewportDomain).thenReturn(new NumericExtents(55.0, 135.0)); + final drawStrategy = FakeDrawStrategy(10, 10); + when(scale.viewportDomain).thenReturn(NumericExtents(55.0, 135.0)); when(scale.rangeWidth).thenReturn(1000); final ticks = tickProvider.getTicks( @@ -252,8 +252,8 @@ void main() { ..dataIsInWholeNumbers = false ..setFixedTickCount(3) ..allowedSteps = [1.0, 2.5, 5.0]; - final drawStrategy = new FakeDrawStrategy(10, 10); - when(scale.viewportDomain).thenReturn(new NumericExtents(-55.0, 135.0)); + final drawStrategy = FakeDrawStrategy(10, 10); + when(scale.viewportDomain).thenReturn(NumericExtents(-55.0, 135.0)); when(scale.rangeWidth).thenReturn(1000); final ticks = tickProvider.getTicks( @@ -271,8 +271,8 @@ void main() { }); test('boundsCrossOrigin_returnsValidTickRange', () { - final drawStrategy = new FakeDrawStrategy(10, 10); - when(scale.viewportDomain).thenReturn(new NumericExtents(-55.0, 135.0)); + final drawStrategy = FakeDrawStrategy(10, 10); + when(scale.viewportDomain).thenReturn(NumericExtents(-55.0, 135.0)); when(scale.rangeWidth).thenReturn(1000); final ticks = tickProvider.getTicks( @@ -297,9 +297,9 @@ void main() { ..dataIsInWholeNumbers = true ..setFixedTickCount(3) ..allowedSteps = [1.0, 2.5, 5.0]; - final drawStrategy = new FakeDrawStrategy(10, 10); + final drawStrategy = FakeDrawStrategy(10, 10); - when(scale.viewportDomain).thenReturn(new NumericExtents(0.25, 0.75)); + when(scale.viewportDomain).thenReturn(NumericExtents(0.25, 0.75)); when(scale.rangeWidth).thenReturn(1000); final ticks = tickProvider.getTicks( @@ -324,9 +324,9 @@ void main() { ..allowedSteps = [5.0] ..dataToAxisUnitConverter = const CelsiusToFahrenheitConverter(); - final drawStrategy = new FakeDrawStrategy(10, 10); + final drawStrategy = FakeDrawStrategy(10, 10); - when(scale.viewportDomain).thenReturn(new NumericExtents(0.0, 20.0)); + when(scale.viewportDomain).thenReturn(NumericExtents(0.0, 20.0)); when(scale.rangeWidth).thenReturn(1000); final ticks = tickProvider.getTicks( @@ -349,10 +349,9 @@ void main() { ..dataIsInWholeNumbers = false ..setFixedTickCount(5); - final drawStrategy = new FakeDrawStrategy(10, 10); + final drawStrategy = FakeDrawStrategy(10, 10); - when(scale.viewportDomain) - .thenReturn(new NumericExtents(0.000001, 0.000002)); + when(scale.viewportDomain).thenReturn(NumericExtents(0.000001, 0.000002)); when(scale.rangeWidth).thenReturn(1000); final ticks = tickProvider.getTicks( @@ -378,10 +377,9 @@ void main() { ..dataIsInWholeNumbers = true ..setFixedTickCount(5); - final drawStrategy = new FakeDrawStrategy(10, 10); + final drawStrategy = FakeDrawStrategy(10, 10); - when(scale.viewportDomain) - .thenReturn(new NumericExtents(0.000001, 0.000002)); + when(scale.viewportDomain).thenReturn(NumericExtents(0.000001, 0.000002)); when(scale.rangeWidth).thenReturn(1000); final ticks = tickProvider.getTicks( @@ -407,10 +405,10 @@ void main() { ..dataIsInWholeNumbers = true ..setFixedTickCount(5); - final drawStrategy = new FakeDrawStrategy(10, 10); + final drawStrategy = FakeDrawStrategy(10, 10); when(scale.viewportDomain) - .thenReturn(new NumericExtents(101.000001, 101.000002)); + .thenReturn(NumericExtents(101.000001, 101.000002)); when(scale.rangeWidth).thenReturn(1000); final ticks = tickProvider.getTicks( @@ -431,15 +429,15 @@ void main() { }); test('handles tick hint for non zero ticks', () { - final drawStrategy = new FakeDrawStrategy(10, 10); - when(scale.viewportDomain).thenReturn(new NumericExtents(20.0, 35.0)); + final drawStrategy = FakeDrawStrategy(10, 10); + when(scale.viewportDomain).thenReturn(NumericExtents(20.0, 35.0)); when(scale.rangeWidth).thenReturn(1000); // Step Size: 3, // Previous start tick: 10 // Previous window: 10 - 25 // Previous ticks: 10, 13, 16, 19, 22, 25 - final tickHint = new TickHint(10, 25, tickCount: 6); + final tickHint = TickHint(10, 25, tickCount: 6); final ticks = tickProvider.getTicks( context: context, @@ -464,15 +462,15 @@ void main() { }); test('handles tick hint for negative starting ticks', () { - final drawStrategy = new FakeDrawStrategy(10, 10); - when(scale.viewportDomain).thenReturn(new NumericExtents(-35.0, -20.0)); + final drawStrategy = FakeDrawStrategy(10, 10); + when(scale.viewportDomain).thenReturn(NumericExtents(-35.0, -20.0)); when(scale.rangeWidth).thenReturn(1000); // Step Size: 3, // Previous start tick: -25 // Previous window: -25 to -10 // Previous ticks: -25, -22, -19, -16, -13, -10 - final tickHint = new TickHint(-25, -10, tickCount: 6); + final tickHint = TickHint(-25, -10, tickCount: 6); final ticks = tickProvider.getTicks( context: context, diff --git a/web/charts/common/test/chart/cartesian/axis/ordinal_scale_test.dart b/web/charts/common/test/chart/cartesian/axis/ordinal_scale_test.dart index de22eb8f2..f4ef7fb25 100644 --- a/web/charts/common/test/chart/cartesian/axis/ordinal_scale_test.dart +++ b/web/charts/common/test/chart/cartesian/axis/ordinal_scale_test.dart @@ -24,13 +24,13 @@ void main() { SimpleOrdinalScale scale; setUp(() { - scale = new SimpleOrdinalScale(); + scale = SimpleOrdinalScale(); scale.addDomain('a'); scale.addDomain('b'); scale.addDomain('c'); scale.addDomain('d'); - scale.range = new ScaleOutputExtent(2000, 1000); + scale.range = ScaleOutputExtent(2000, 1000); }); group('conversion', () { @@ -81,7 +81,7 @@ void main() { group('set RangeBandConfig', () { test('fixed pixel range band changes range band', () { - scale.rangeBandConfig = new RangeBandConfig.fixedPixel(123.0); + scale.rangeBandConfig = RangeBandConfig.fixedPixel(123.0); expect(scale.rangeBand, closeTo(123.0, EPSILON)); @@ -91,25 +91,24 @@ void main() { }); test('percent range band changes range band', () { - scale.rangeBandConfig = new RangeBandConfig.percentOfStep(0.5); + scale.rangeBandConfig = RangeBandConfig.percentOfStep(0.5); // 125 = 0.5f * 1000pixels / 4domains expect(scale.rangeBand, closeTo(125.0, EPSILON)); }); test('space from step changes range band', () { - scale.rangeBandConfig = - new RangeBandConfig.fixedPixelSpaceBetweenStep(50.0); + scale.rangeBandConfig = RangeBandConfig.fixedPixelSpaceBetweenStep(50.0); // 200 = 1000pixels / 4domains) - 50 expect(scale.rangeBand, closeTo(200.0, EPSILON)); }); test('fixed domain throws argument exception', () { - expect(() => scale.rangeBandConfig = new RangeBandConfig.fixedDomain(5.0), + expect(() => scale.rangeBandConfig = RangeBandConfig.fixedDomain(5.0), throwsArgumentError); }); test('type of none throws argument exception', () { - expect(() => scale.rangeBandConfig = new RangeBandConfig.none(), + expect(() => scale.rangeBandConfig = RangeBandConfig.none(), throwsArgumentError); }); @@ -124,16 +123,16 @@ void main() { }); test('to auto does not throw', () { - scale.stepSizeConfig = new StepSizeConfig.auto(); + scale.stepSizeConfig = StepSizeConfig.auto(); }); test('to fixed domain throw arugment exception', () { - expect(() => scale.stepSizeConfig = new StepSizeConfig.fixedDomain(1.0), + expect(() => scale.stepSizeConfig = StepSizeConfig.fixedDomain(1.0), throwsArgumentError); }); test('to fixed pixel throw arugment exception', () { - expect(() => scale.stepSizeConfig = new StepSizeConfig.fixedPixels(1.0), + expect(() => scale.stepSizeConfig = StepSizeConfig.fixedPixels(1.0), throwsArgumentError); }); }); @@ -165,15 +164,15 @@ void main() { test('rangeband is scaled', () { scale.setViewportSettings(2.0, -700.0); - scale.rangeBandConfig = new RangeBandConfig.percentOfStep(1.0); + scale.rangeBandConfig = RangeBandConfig.percentOfStep(1.0); expect(scale.rangeBand, closeTo(500.0, EPSILON)); }); test('translate to pixels is scaled', () { scale.setViewportSettings(2.0, -700.0); - scale.rangeBandConfig = new RangeBandConfig.percentOfStep(1.0); - scale.range = new ScaleOutputExtent(1000, 2000); + scale.rangeBandConfig = RangeBandConfig.percentOfStep(1.0); + scale.range = ScaleOutputExtent(1000, 2000); final scaledStepWidth = 500.0; final scaledInitialShift = 250.0; @@ -186,8 +185,8 @@ void main() { test('only b and c should be within the viewport', () { scale.setViewportSettings(2.0, -700.0); - scale.rangeBandConfig = new RangeBandConfig.percentOfStep(1.0); - scale.range = new ScaleOutputExtent(1000, 2000); + scale.rangeBandConfig = RangeBandConfig.percentOfStep(1.0); + scale.range = ScaleOutputExtent(1000, 2000); expect(scale.compareDomainValueToViewport('a'), equals(-1)); expect(scale.compareDomainValueToViewport('c'), equals(0)); @@ -198,8 +197,8 @@ void main() { group('viewport', () { test('set adjust scale to show viewport', () { - scale.range = new ScaleOutputExtent(1000, 2000); - scale.rangeBandConfig = new RangeBandConfig.percentOfStep(0.5); + scale.range = ScaleOutputExtent(1000, 2000); + scale.rangeBandConfig = RangeBandConfig.percentOfStep(0.5); scale.setViewport(2, 'b'); expect(scale['a'], closeTo(750, EPSILON)); @@ -217,8 +216,8 @@ void main() { }); test('set starting value if starting domain is not in domain list', () { - scale.range = new ScaleOutputExtent(1000, 2000); - scale.rangeBandConfig = new RangeBandConfig.percentOfStep(0.5); + scale.range = ScaleOutputExtent(1000, 2000); + scale.rangeBandConfig = RangeBandConfig.percentOfStep(0.5); scale.setViewport(2, 'f'); expect(scale['a'], closeTo(1250, EPSILON)); @@ -228,7 +227,7 @@ void main() { }); test('get size returns number of full steps that fit scale range', () { - scale.range = new ScaleOutputExtent(1000, 2000); + scale.range = ScaleOutputExtent(1000, 2000); scale.setViewportSettings(2.0, 0.0); expect(scale.viewportDataSize, equals(2)); @@ -238,7 +237,7 @@ void main() { }); test('get starting viewport gets first fully visible domain', () { - scale.range = new ScaleOutputExtent(1000, 2000); + scale.range = ScaleOutputExtent(1000, 2000); scale.setViewportSettings(2.0, -500.0); expect(scale.viewportStartingDomain, equals('b')); diff --git a/web/charts/common/test/chart/cartesian/axis/static_tick_provider_test.dart b/web/charts/common/test/chart/cartesian/axis/static_tick_provider_test.dart index a5a5b67f7..ec0fb2a50 100644 --- a/web/charts/common/test/chart/cartesian/axis/static_tick_provider_test.dart +++ b/web/charts/common/test/chart/cartesian/axis/static_tick_provider_test.dart @@ -52,19 +52,19 @@ void main() { LinearScale scale; setUp(() { - context = new MockChartContext(); - graphicsFactory = new MockGraphicsFactory(); - formatter = new MockNumericTickFormatter(); - drawStrategy = new MockDrawStrategy(); - scale = new LinearScale()..range = new ScaleOutputExtent(0, 300); + context = MockChartContext(); + graphicsFactory = MockGraphicsFactory(); + formatter = MockNumericTickFormatter(); + drawStrategy = MockDrawStrategy(); + scale = LinearScale()..range = ScaleOutputExtent(0, 300); }); group('scale is extended with static tick values', () { test('values extend existing domain values', () { - final tickProvider = new StaticTickProvider([ - new TickSpec(50, label: '50'), - new TickSpec(75, label: '75'), - new TickSpec(100, label: '100'), + final tickProvider = StaticTickProvider([ + TickSpec(50, label: '50'), + TickSpec(75, label: '75'), + TickSpec(100, label: '100'), ]); scale.addDomain(60); @@ -87,10 +87,10 @@ void main() { }); test('values within data extent', () { - final tickProvider = new StaticTickProvider([ - new TickSpec(50, label: '50'), - new TickSpec(75, label: '75'), - new TickSpec(100, label: '100'), + final tickProvider = StaticTickProvider([ + TickSpec(50, label: '50'), + TickSpec(75, label: '75'), + TickSpec(100, label: '100'), ]); scale.addDomain(0); @@ -115,13 +115,13 @@ void main() { group('formatter', () { test('is not called when all ticks have labels', () { - final tickProvider = new StaticTickProvider([ - new TickSpec(50, label: '50'), - new TickSpec(75, label: '75'), - new TickSpec(100, label: '100'), + final tickProvider = StaticTickProvider([ + TickSpec(50, label: '50'), + TickSpec(75, label: '75'), + TickSpec(100, label: '100'), ]); - final fakeFormatter = new FakeNumericTickFormatter(); + final fakeFormatter = FakeNumericTickFormatter(); tickProvider.getTicks( context: context, @@ -136,13 +136,13 @@ void main() { }); test('is called when one ticks does not have label', () { - final tickProvider = new StaticTickProvider([ - new TickSpec(50, label: '50'), - new TickSpec(75), - new TickSpec(100, label: '100'), + final tickProvider = StaticTickProvider([ + TickSpec(50, label: '50'), + TickSpec(75), + TickSpec(100, label: '100'), ]); - final fakeFormatter = new FakeNumericTickFormatter(); + final fakeFormatter = FakeNumericTickFormatter(); tickProvider.getTicks( context: context, @@ -157,13 +157,13 @@ void main() { }); test('is called when all ticks do not have labels', () { - final tickProvider = new StaticTickProvider([ - new TickSpec(50), - new TickSpec(75), - new TickSpec(100), + final tickProvider = StaticTickProvider([ + TickSpec(50), + TickSpec(75), + TickSpec(100), ]); - final fakeFormatter = new FakeNumericTickFormatter(); + final fakeFormatter = FakeNumericTickFormatter(); tickProvider.getTicks( context: context, diff --git a/web/charts/common/test/chart/cartesian/axis/time/date_time_tick_formatter_test.dart b/web/charts/common/test/chart/cartesian/axis/time/date_time_tick_formatter_test.dart index 5042c6be9..ca05efe42 100644 --- a/web/charts/common/test/chart/cartesian/axis/time/date_time_tick_formatter_test.dart +++ b/web/charts/common/test/chart/cartesian/axis/time/date_time_tick_formatter_test.dart @@ -19,7 +19,8 @@ import 'package:test/test.dart'; const EPSILON = 0.001; -typedef bool IsTransitionFunction(DateTime tickValue, DateTime prevTickValue); +typedef IsTransitionFunction = bool Function( + DateTime tickValue, DateTime prevTickValue); class FakeTimeTickFormatter implements TimeTickFormatter { static const firstTick = '-firstTick-'; @@ -56,41 +57,41 @@ void main() { TimeTickFormatter timeFormatter3; setUp(() { - timeFormatter1 = new FakeTimeTickFormatter('fake1'); - timeFormatter2 = new FakeTimeTickFormatter('fake2'); - timeFormatter3 = new FakeTimeTickFormatter('fake3'); + timeFormatter1 = FakeTimeTickFormatter('fake1'); + timeFormatter2 = FakeTimeTickFormatter('fake2'); + timeFormatter3 = FakeTimeTickFormatter('fake3'); }); group('Uses formatter', () { test('with largest interval less than diff between tickValues', () { - final formatter = new DateTimeTickFormatter.withFormatters( + final formatter = DateTimeTickFormatter.withFormatters( {10: timeFormatter1, 100: timeFormatter2, 1000: timeFormatter3}); final formatterCache = {}; final ticksWith10Diff = [ - new DateTime.fromMillisecondsSinceEpoch(0), - new DateTime.fromMillisecondsSinceEpoch(10), - new DateTime.fromMillisecondsSinceEpoch(20) + DateTime.fromMillisecondsSinceEpoch(0), + DateTime.fromMillisecondsSinceEpoch(10), + DateTime.fromMillisecondsSinceEpoch(20) ]; final ticksWith20Diff = [ - new DateTime.fromMillisecondsSinceEpoch(0), - new DateTime.fromMillisecondsSinceEpoch(20), - new DateTime.fromMillisecondsSinceEpoch(40) + DateTime.fromMillisecondsSinceEpoch(0), + DateTime.fromMillisecondsSinceEpoch(20), + DateTime.fromMillisecondsSinceEpoch(40) ]; final ticksWith100Diff = [ - new DateTime.fromMillisecondsSinceEpoch(0), - new DateTime.fromMillisecondsSinceEpoch(100), - new DateTime.fromMillisecondsSinceEpoch(200) + DateTime.fromMillisecondsSinceEpoch(0), + DateTime.fromMillisecondsSinceEpoch(100), + DateTime.fromMillisecondsSinceEpoch(200) ]; final ticksWith200Diff = [ - new DateTime.fromMillisecondsSinceEpoch(0), - new DateTime.fromMillisecondsSinceEpoch(200), - new DateTime.fromMillisecondsSinceEpoch(400) + DateTime.fromMillisecondsSinceEpoch(0), + DateTime.fromMillisecondsSinceEpoch(200), + DateTime.fromMillisecondsSinceEpoch(400) ]; final ticksWith1000Diff = [ - new DateTime.fromMillisecondsSinceEpoch(0), - new DateTime.fromMillisecondsSinceEpoch(1000), - new DateTime.fromMillisecondsSinceEpoch(2000) + DateTime.fromMillisecondsSinceEpoch(0), + DateTime.fromMillisecondsSinceEpoch(1000), + DateTime.fromMillisecondsSinceEpoch(2000) ]; final expectedLabels10Diff = [ @@ -139,14 +140,14 @@ void main() { }); test('with smallest interval when no smaller one exists', () { - final formatter = new DateTimeTickFormatter.withFormatters( + final formatter = DateTimeTickFormatter.withFormatters( {10: timeFormatter1, 100: timeFormatter2}); final formatterCache = {}; final ticks = [ - new DateTime.fromMillisecondsSinceEpoch(0), - new DateTime.fromMillisecondsSinceEpoch(1), - new DateTime.fromMillisecondsSinceEpoch(2) + DateTime.fromMillisecondsSinceEpoch(0), + DateTime.fromMillisecondsSinceEpoch(1), + DateTime.fromMillisecondsSinceEpoch(2) ]; final expectedLabels = [ 'fake1-firstTick-0', @@ -159,11 +160,11 @@ void main() { }); test('with smallest interval for single tick input', () { - final formatter = new DateTimeTickFormatter.withFormatters( + final formatter = DateTimeTickFormatter.withFormatters( {10: timeFormatter1, 100: timeFormatter2}); final formatterCache = {}; - final ticks = [new DateTime.fromMillisecondsSinceEpoch(5000)]; + final ticks = [DateTime.fromMillisecondsSinceEpoch(5000)]; final expectedLabels = ['fake1-firstTick-5000']; final actualLabels = formatter.format(ticks, formatterCache, stepSize: 0); expect(actualLabels, equals(expectedLabels)); @@ -171,7 +172,7 @@ void main() { test('on empty input doesnt break', () { final formatter = - new DateTimeTickFormatter.withFormatters({10: timeFormatter1}); + DateTimeTickFormatter.withFormatters({10: timeFormatter1}); final formatterCache = {}; final actualLabels = @@ -180,19 +181,19 @@ void main() { }); test('that formats transition tick with transition format', () { - final timeFormatter = new FakeTimeTickFormatter('fake', - isTransitionFunction: (DateTime tickValue, _) => + final timeFormatter = FakeTimeTickFormatter('fake', + isTransitionFunction: (tickValue, _) => tickValue.millisecondsSinceEpoch == 20); final formatterCache = {}; final formatter = - new DateTimeTickFormatter.withFormatters({10: timeFormatter}); + DateTimeTickFormatter.withFormatters({10: timeFormatter}); final ticks = [ - new DateTime.fromMillisecondsSinceEpoch(0), - new DateTime.fromMillisecondsSinceEpoch(10), - new DateTime.fromMillisecondsSinceEpoch(20), - new DateTime.fromMillisecondsSinceEpoch(30) + DateTime.fromMillisecondsSinceEpoch(0), + DateTime.fromMillisecondsSinceEpoch(10), + DateTime.fromMillisecondsSinceEpoch(20), + DateTime.fromMillisecondsSinceEpoch(30) ]; final expectedLabels = [ @@ -212,21 +213,21 @@ void main() { test('throws arugment error if time resolution key is not positive', () { // -1 is reserved for any, if there is only one formatter, -1 is allowed. expect( - () => new DateTimeTickFormatter.withFormatters( + () => DateTimeTickFormatter.withFormatters( {-1: timeFormatter1, 2: timeFormatter2}), throwsArgumentError); }); test('throws argument error if formatters is null or empty', () { - expect(() => new DateTimeTickFormatter.withFormatters(null), - throwsArgumentError); - expect(() => new DateTimeTickFormatter.withFormatters({}), + expect(() => DateTimeTickFormatter.withFormatters(null), throwsArgumentError); + expect( + () => DateTimeTickFormatter.withFormatters({}), throwsArgumentError); }); test('throws arugment error if formatters are not sorted', () { expect( - () => new DateTimeTickFormatter.withFormatters({ + () => DateTimeTickFormatter.withFormatters({ 3: timeFormatter1, 1: timeFormatter2, 2: timeFormatter3, @@ -234,7 +235,7 @@ void main() { throwsArgumentError); expect( - () => new DateTimeTickFormatter.withFormatters({ + () => DateTimeTickFormatter.withFormatters({ 1: timeFormatter1, 3: timeFormatter2, 2: timeFormatter3, @@ -242,7 +243,7 @@ void main() { throwsArgumentError); expect( - () => new DateTimeTickFormatter.withFormatters({ + () => DateTimeTickFormatter.withFormatters({ 2: timeFormatter1, 3: timeFormatter2, 1: timeFormatter3, diff --git a/web/charts/common/test/chart/cartesian/axis/time/simple_date_time_factory.dart b/web/charts/common/test/chart/cartesian/axis/time/simple_date_time_factory.dart index 340ad685d..d35839c09 100644 --- a/web/charts/common/test/chart/cartesian/axis/time/simple_date_time_factory.dart +++ b/web/charts/common/test/chart/cartesian/axis/time/simple_date_time_factory.dart @@ -23,7 +23,7 @@ class SimpleDateTimeFactory implements DateTimeFactory { @override DateTime createDateTimeFromMilliSecondsSinceEpoch( int millisecondsSinceEpoch) => - new DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch); + DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch); @override DateTime createDateTime(int year, @@ -34,9 +34,9 @@ class SimpleDateTimeFactory implements DateTimeFactory { int second = 0, int millisecond = 0, int microsecond = 0]) => - new DateTime( + DateTime( year, month, day, hour, minute, second, millisecond, microsecond); @override - DateFormat createDateFormat(String pattern) => new DateFormat(pattern); + DateFormat createDateFormat(String pattern) => DateFormat(pattern); } diff --git a/web/charts/common/test/chart/cartesian/axis/time/time_stepper_test.dart b/web/charts/common/test/chart/cartesian/axis/time/time_stepper_test.dart index d17e30425..846fc9e4f 100644 --- a/web/charts/common/test/chart/cartesian/axis/time/time_stepper_test.dart +++ b/web/charts/common/test/chart/cartesian/axis/time/time_stepper_test.dart @@ -25,16 +25,16 @@ import 'simple_date_time_factory.dart' show SimpleDateTimeFactory; const EPSILON = 0.001; void main() { - const dateTimeFactory = const SimpleDateTimeFactory(); + const dateTimeFactory = SimpleDateTimeFactory(); const millisecondsInHour = 3600 * 1000; setUp(() {}); group('Day time stepper', () { test('get steps with 1 day increments', () { - final stepper = new DayTimeStepper(dateTimeFactory); - final extent = new DateTimeExtents( - start: new DateTime(2017, 8, 20), end: new DateTime(2017, 8, 25)); + final stepper = DayTimeStepper(dateTimeFactory); + final extent = DateTimeExtents( + start: DateTime(2017, 8, 20), end: DateTime(2017, 8, 25)); final stepIterable = stepper.getSteps(extent)..iterator.reset(1); final steps = stepIterable.toList(); @@ -42,20 +42,20 @@ void main() { expect( steps, equals([ - new DateTime(2017, 8, 20), - new DateTime(2017, 8, 21), - new DateTime(2017, 8, 22), - new DateTime(2017, 8, 23), - new DateTime(2017, 8, 24), - new DateTime(2017, 8, 25), + DateTime(2017, 8, 20), + DateTime(2017, 8, 21), + DateTime(2017, 8, 22), + DateTime(2017, 8, 23), + DateTime(2017, 8, 24), + DateTime(2017, 8, 25), ])); }); test('get steps with 5 day increments', () { - final stepper = new DayTimeStepper(dateTimeFactory); - final extent = new DateTimeExtents( - start: new DateTime(2017, 8, 10), - end: new DateTime(2017, 8, 26), + final stepper = DayTimeStepper(dateTimeFactory); + final extent = DateTimeExtents( + start: DateTime(2017, 8, 10), + end: DateTime(2017, 8, 26), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(5); @@ -66,19 +66,19 @@ void main() { expect( steps, equals([ - new DateTime(2017, 8, 11), - new DateTime(2017, 8, 16), - new DateTime(2017, 8, 21), - new DateTime(2017, 8, 26), + DateTime(2017, 8, 11), + DateTime(2017, 8, 16), + DateTime(2017, 8, 21), + DateTime(2017, 8, 26), ])); }); test('step through daylight saving forward change', () { - final stepper = new DayTimeStepper(dateTimeFactory); + final stepper = DayTimeStepper(dateTimeFactory); // DST for PST 2017 begin on March 12 - final extent = new DateTimeExtents( - start: new DateTime(2017, 3, 11), - end: new DateTime(2017, 3, 13), + final extent = DateTimeExtents( + start: DateTime(2017, 3, 11), + end: DateTime(2017, 3, 13), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(1); final steps = stepIterable.toList(); @@ -87,18 +87,18 @@ void main() { expect( steps, equals([ - new DateTime(2017, 3, 11), - new DateTime(2017, 3, 12), - new DateTime(2017, 3, 13), + DateTime(2017, 3, 11), + DateTime(2017, 3, 12), + DateTime(2017, 3, 13), ])); }); test('step through daylight saving backward change', () { - final stepper = new DayTimeStepper(dateTimeFactory); + final stepper = DayTimeStepper(dateTimeFactory); // DST for PST 2017 end on November 5 - final extent = new DateTimeExtents( - start: new DateTime(2017, 11, 4), - end: new DateTime(2017, 11, 6), + final extent = DateTimeExtents( + start: DateTime(2017, 11, 4), + end: DateTime(2017, 11, 6), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(1); final steps = stepIterable.toList(); @@ -107,19 +107,19 @@ void main() { expect( steps, equals([ - new DateTime(2017, 11, 4), - new DateTime(2017, 11, 5), - new DateTime(2017, 11, 6), + DateTime(2017, 11, 4), + DateTime(2017, 11, 5), + DateTime(2017, 11, 6), ])); }); }); group('Hour time stepper', () { test('gets steps in 1 hour increments', () { - final stepper = new HourTimeStepper(dateTimeFactory); - final extent = new DateTimeExtents( - start: new DateTime(2017, 8, 20, 10), - end: new DateTime(2017, 8, 20, 15), + final stepper = HourTimeStepper(dateTimeFactory); + final extent = DateTimeExtents( + start: DateTime(2017, 8, 20, 10), + end: DateTime(2017, 8, 20, 15), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(1); final steps = stepIterable.toList(); @@ -128,20 +128,20 @@ void main() { expect( steps, equals([ - new DateTime(2017, 8, 20, 10), - new DateTime(2017, 8, 20, 11), - new DateTime(2017, 8, 20, 12), - new DateTime(2017, 8, 20, 13), - new DateTime(2017, 8, 20, 14), - new DateTime(2017, 8, 20, 15), + DateTime(2017, 8, 20, 10), + DateTime(2017, 8, 20, 11), + DateTime(2017, 8, 20, 12), + DateTime(2017, 8, 20, 13), + DateTime(2017, 8, 20, 14), + DateTime(2017, 8, 20, 15), ])); }); test('gets steps in 4 hour increments', () { - final stepper = new HourTimeStepper(dateTimeFactory); - final extent = new DateTimeExtents( - start: new DateTime(2017, 8, 20, 10), - end: new DateTime(2017, 8, 21, 10), + final stepper = HourTimeStepper(dateTimeFactory); + final extent = DateTimeExtents( + start: DateTime(2017, 8, 20, 10), + end: DateTime(2017, 8, 21, 10), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(4); final steps = stepIterable.toList(); @@ -150,22 +150,22 @@ void main() { expect( steps, equals([ - new DateTime(2017, 8, 20, 12), - new DateTime(2017, 8, 20, 16), - new DateTime(2017, 8, 20, 20), - new DateTime(2017, 8, 21, 0), - new DateTime(2017, 8, 21, 4), - new DateTime(2017, 8, 21, 8), + DateTime(2017, 8, 20, 12), + DateTime(2017, 8, 20, 16), + DateTime(2017, 8, 20, 20), + DateTime(2017, 8, 21, 0), + DateTime(2017, 8, 21, 4), + DateTime(2017, 8, 21, 8), ])); }); test('step through daylight saving forward change in 1 hour increments', () { - final stepper = new HourTimeStepper(dateTimeFactory); + final stepper = HourTimeStepper(dateTimeFactory); // DST for PST 2017 begin on March 12. At 2am clocks are turned to 3am. - final extent = new DateTimeExtents( - start: new DateTime(2017, 3, 12, 0), - end: new DateTime(2017, 3, 12, 5), + final extent = DateTimeExtents( + start: DateTime(2017, 3, 12, 0), + end: DateTime(2017, 3, 12, 5), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(1); final steps = stepIterable.toList(); @@ -174,21 +174,21 @@ void main() { expect( steps, equals([ - new DateTime(2017, 3, 12, 0), - new DateTime(2017, 3, 12, 1), - new DateTime(2017, 3, 12, 3), - new DateTime(2017, 3, 12, 4), - new DateTime(2017, 3, 12, 5), + DateTime(2017, 3, 12, 0), + DateTime(2017, 3, 12, 1), + DateTime(2017, 3, 12, 3), + DateTime(2017, 3, 12, 4), + DateTime(2017, 3, 12, 5), ])); }); test('step through daylight saving backward change in 1 hour increments', () { - final stepper = new HourTimeStepper(dateTimeFactory); + final stepper = HourTimeStepper(dateTimeFactory); // DST for PST 2017 end on November 5. At 2am, clocks are turned to 1am. - final extent = new DateTimeExtents( - start: new DateTime(2017, 11, 5, 0), - end: new DateTime(2017, 11, 5, 4), + final extent = DateTimeExtents( + start: DateTime(2017, 11, 5, 0), + end: DateTime(2017, 11, 5, 4), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(1); final steps = stepIterable.toList(); @@ -197,24 +197,24 @@ void main() { expect( steps, equals([ - new DateTime(2017, 11, 5, 0), - new DateTime(2017, 11, 5, 0) - .add(new Duration(milliseconds: millisecondsInHour)), - new DateTime(2017, 11, 5, 0) - .add(new Duration(milliseconds: millisecondsInHour * 2)), - new DateTime(2017, 11, 5, 2), - new DateTime(2017, 11, 5, 3), - new DateTime(2017, 11, 5, 4), + DateTime(2017, 11, 5, 0), + DateTime(2017, 11, 5, 0) + .add(Duration(milliseconds: millisecondsInHour)), + DateTime(2017, 11, 5, 0) + .add(Duration(milliseconds: millisecondsInHour * 2)), + DateTime(2017, 11, 5, 2), + DateTime(2017, 11, 5, 3), + DateTime(2017, 11, 5, 4), ])); }); test('step through daylight saving forward change in 4 hour increments', () { - final stepper = new HourTimeStepper(dateTimeFactory); + final stepper = HourTimeStepper(dateTimeFactory); // DST for PST 2017 begin on March 12. At 2am clocks are turned to 3am. - final extent = new DateTimeExtents( - start: new DateTime(2017, 3, 12, 0), - end: new DateTime(2017, 3, 13, 0), + final extent = DateTimeExtents( + start: DateTime(2017, 3, 12, 0), + end: DateTime(2017, 3, 13, 0), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(4); final steps = stepIterable.toList(); @@ -223,23 +223,23 @@ void main() { expect( steps, equals([ - new DateTime(2017, 3, 12, 4), - new DateTime(2017, 3, 12, 8), - new DateTime(2017, 3, 12, 12), - new DateTime(2017, 3, 12, 16), - new DateTime(2017, 3, 12, 20), - new DateTime(2017, 3, 13, 0), + DateTime(2017, 3, 12, 4), + DateTime(2017, 3, 12, 8), + DateTime(2017, 3, 12, 12), + DateTime(2017, 3, 12, 16), + DateTime(2017, 3, 12, 20), + DateTime(2017, 3, 13, 0), ])); }); test('step through daylight saving backward change in 4 hour increments', () { - final stepper = new HourTimeStepper(dateTimeFactory); + final stepper = HourTimeStepper(dateTimeFactory); // DST for PST 2017 end on November 5. // At 2am, clocks are turned to 1am. - final extent = new DateTimeExtents( - start: new DateTime(2017, 11, 5, 0), - end: new DateTime(2017, 11, 6, 0), + final extent = DateTimeExtents( + start: DateTime(2017, 11, 5, 0), + end: DateTime(2017, 11, 6, 0), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(4); final steps = stepIterable.toList(); @@ -248,24 +248,24 @@ void main() { expect( steps, equals([ - new DateTime(2017, 11, 5, 0) - .add(new Duration(milliseconds: millisecondsInHour)), - new DateTime(2017, 11, 5, 4), - new DateTime(2017, 11, 5, 8), - new DateTime(2017, 11, 5, 12), - new DateTime(2017, 11, 5, 16), - new DateTime(2017, 11, 5, 20), - new DateTime(2017, 11, 6, 0), + DateTime(2017, 11, 5, 0) + .add(Duration(milliseconds: millisecondsInHour)), + DateTime(2017, 11, 5, 4), + DateTime(2017, 11, 5, 8), + DateTime(2017, 11, 5, 12), + DateTime(2017, 11, 5, 16), + DateTime(2017, 11, 5, 20), + DateTime(2017, 11, 6, 0), ])); }); }); group('Minute time stepper', () { test('gets steps with 5 minute increments', () { - final stepper = new MinuteTimeStepper(dateTimeFactory); - final extent = new DateTimeExtents( - start: new DateTime(2017, 8, 20, 3, 46), - end: new DateTime(2017, 8, 20, 4, 02), + final stepper = MinuteTimeStepper(dateTimeFactory); + final extent = DateTimeExtents( + start: DateTime(2017, 8, 20, 3, 46), + end: DateTime(2017, 8, 20, 4, 02), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(5); final steps = stepIterable.toList(); @@ -274,18 +274,18 @@ void main() { expect( steps, equals([ - new DateTime(2017, 8, 20, 3, 50), - new DateTime(2017, 8, 20, 3, 55), - new DateTime(2017, 8, 20, 4), + DateTime(2017, 8, 20, 3, 50), + DateTime(2017, 8, 20, 3, 55), + DateTime(2017, 8, 20, 4), ])); }); test('step through daylight saving forward change', () { - final stepper = new MinuteTimeStepper(dateTimeFactory); + final stepper = MinuteTimeStepper(dateTimeFactory); // DST for PST 2017 begin on March 12. At 2am clocks are turned to 3am. - final extent = new DateTimeExtents( - start: new DateTime(2017, 3, 12, 1, 40), - end: new DateTime(2017, 3, 12, 4, 02), + final extent = DateTimeExtents( + start: DateTime(2017, 3, 12, 1, 40), + end: DateTime(2017, 3, 12, 4, 02), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(15); final steps = stepIterable.toList(); @@ -294,21 +294,21 @@ void main() { expect( steps, equals([ - new DateTime(2017, 3, 12, 1, 45), - new DateTime(2017, 3, 12, 3), - new DateTime(2017, 3, 12, 3, 15), - new DateTime(2017, 3, 12, 3, 30), - new DateTime(2017, 3, 12, 3, 45), - new DateTime(2017, 3, 12, 4), + DateTime(2017, 3, 12, 1, 45), + DateTime(2017, 3, 12, 3), + DateTime(2017, 3, 12, 3, 15), + DateTime(2017, 3, 12, 3, 30), + DateTime(2017, 3, 12, 3, 45), + DateTime(2017, 3, 12, 4), ])); }); test('steps correctly after daylight saving forward change', () { - final stepper = new MinuteTimeStepper(dateTimeFactory); + final stepper = MinuteTimeStepper(dateTimeFactory); // DST for PST 2017 begin on March 12. At 2am clocks are turned to 3am. - final extent = new DateTimeExtents( - start: new DateTime(2017, 3, 12, 3, 02), - end: new DateTime(2017, 3, 12, 4, 02), + final extent = DateTimeExtents( + start: DateTime(2017, 3, 12, 3, 02), + end: DateTime(2017, 3, 12, 4, 02), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(30); final steps = stepIterable.toList(); @@ -317,19 +317,18 @@ void main() { expect( steps, equals([ - new DateTime(2017, 3, 12, 3, 30), - new DateTime(2017, 3, 12, 4), + DateTime(2017, 3, 12, 3, 30), + DateTime(2017, 3, 12, 4), ])); }); test('step through daylight saving backward change', () { - final stepper = new MinuteTimeStepper(dateTimeFactory); + final stepper = MinuteTimeStepper(dateTimeFactory); // DST for PST 2017 end on November 5. // At 2am, clocks are turned to 1am. - final extent = new DateTimeExtents( - start: new DateTime(2017, 11, 5) - .add(new Duration(hours: 1, minutes: 29)), - end: new DateTime(2017, 11, 5, 3, 02)); + final extent = DateTimeExtents( + start: DateTime(2017, 11, 5).add(Duration(hours: 1, minutes: 29)), + end: DateTime(2017, 11, 5, 3, 02)); final stepIterable = stepper.getSteps(extent)..iterator.reset(30); final steps = stepIterable.toList(); @@ -338,27 +337,27 @@ void main() { steps, equals([ // The first 1:30am - new DateTime(2017, 11, 5).add(new Duration(hours: 1, minutes: 30)), + DateTime(2017, 11, 5).add(Duration(hours: 1, minutes: 30)), // The 2nd 1am. - new DateTime(2017, 11, 5).add(new Duration(hours: 2)), + DateTime(2017, 11, 5).add(Duration(hours: 2)), // The 2nd 1:30am - new DateTime(2017, 11, 5).add(new Duration(hours: 2, minutes: 30)), + DateTime(2017, 11, 5).add(Duration(hours: 2, minutes: 30)), // 2am - new DateTime(2017, 11, 5).add(new Duration(hours: 3)), + DateTime(2017, 11, 5).add(Duration(hours: 3)), // 2:30am - new DateTime(2017, 11, 5).add(new Duration(hours: 3, minutes: 30)), + DateTime(2017, 11, 5).add(Duration(hours: 3, minutes: 30)), // 3am - new DateTime(2017, 11, 5, 3) + DateTime(2017, 11, 5, 3) ])); }); }); group('Month time stepper', () { test('steps crosses the year', () { - final stepper = new MonthTimeStepper(dateTimeFactory); - final extent = new DateTimeExtents( - start: new DateTime(2017, 5), - end: new DateTime(2018, 9), + final stepper = MonthTimeStepper(dateTimeFactory); + final extent = DateTimeExtents( + start: DateTime(2017, 5), + end: DateTime(2018, 9), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(4); final steps = stepIterable.toList(); @@ -367,18 +366,18 @@ void main() { expect( steps, equals([ - new DateTime(2017, 8), - new DateTime(2017, 12), - new DateTime(2018, 4), - new DateTime(2018, 8), + DateTime(2017, 8), + DateTime(2017, 12), + DateTime(2018, 4), + DateTime(2018, 8), ])); }); test('steps within one year', () { - final stepper = new MonthTimeStepper(dateTimeFactory); - final extent = new DateTimeExtents( - start: new DateTime(2017, 1), - end: new DateTime(2017, 5), + final stepper = MonthTimeStepper(dateTimeFactory); + final extent = DateTimeExtents( + start: DateTime(2017, 1), + end: DateTime(2017, 5), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(2); final steps = stepIterable.toList(); @@ -387,66 +386,66 @@ void main() { expect( steps, equals([ - new DateTime(2017, 2), - new DateTime(2017, 4), + DateTime(2017, 2), + DateTime(2017, 4), ])); }); test('step before would allow ticks to include last month of the year', () { - final stepper = new MonthTimeStepper(dateTimeFactory); - final time = new DateTime(2017, 10); + final stepper = MonthTimeStepper(dateTimeFactory); + final time = DateTime(2017, 10); expect(stepper.getStepTimeBeforeInclusive(time, 1), - equals(new DateTime(2017, 10))); + equals(DateTime(2017, 10))); // Months - 3, 6, 9, 12 expect(stepper.getStepTimeBeforeInclusive(time, 3), - equals(new DateTime(2017, 9))); + equals(DateTime(2017, 9))); // Months - 6, 12 expect(stepper.getStepTimeBeforeInclusive(time, 6), - equals(new DateTime(2017, 6))); + equals(DateTime(2017, 6))); }); test('step before for January', () { - final stepper = new MonthTimeStepper(dateTimeFactory); - final time = new DateTime(2017, 1); + final stepper = MonthTimeStepper(dateTimeFactory); + final time = DateTime(2017, 1); expect(stepper.getStepTimeBeforeInclusive(time, 1), - equals(new DateTime(2017, 1))); + equals(DateTime(2017, 1))); // Months - 3, 6, 9, 12 expect(stepper.getStepTimeBeforeInclusive(time, 3), - equals(new DateTime(2016, 12))); + equals(DateTime(2016, 12))); // Months - 6, 12 expect(stepper.getStepTimeBeforeInclusive(time, 6), - equals(new DateTime(2016, 12))); + equals(DateTime(2016, 12))); }); test('step before for December', () { - final stepper = new MonthTimeStepper(dateTimeFactory); - final time = new DateTime(2017, 12); + final stepper = MonthTimeStepper(dateTimeFactory); + final time = DateTime(2017, 12); expect(stepper.getStepTimeBeforeInclusive(time, 1), - equals(new DateTime(2017, 12))); + equals(DateTime(2017, 12))); // Months - 3, 6, 9, 12 expect(stepper.getStepTimeBeforeInclusive(time, 3), - equals(new DateTime(2017, 12))); + equals(DateTime(2017, 12))); // Months - 6, 12 expect(stepper.getStepTimeBeforeInclusive(time, 6), - equals(new DateTime(2017, 12))); + equals(DateTime(2017, 12))); }); }); group('Year stepper', () { test('steps in 10 year increments', () { - final stepper = new YearTimeStepper(dateTimeFactory); - final extent = new DateTimeExtents( - start: new DateTime(2017), - end: new DateTime(2042), + final stepper = YearTimeStepper(dateTimeFactory); + final extent = DateTimeExtents( + start: DateTime(2017), + end: DateTime(2042), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(10); final steps = stepIterable.toList(); @@ -455,17 +454,17 @@ void main() { expect( steps, equals([ - new DateTime(2020), - new DateTime(2030), - new DateTime(2040), + DateTime(2020), + DateTime(2030), + DateTime(2040), ])); }); test('steps through negative year', () { - final stepper = new YearTimeStepper(dateTimeFactory); - final extent = new DateTimeExtents( - start: new DateTime(-420), - end: new DateTime(240), + final stepper = YearTimeStepper(dateTimeFactory); + final extent = DateTimeExtents( + start: DateTime(-420), + end: DateTime(240), ); final stepIterable = stepper.getSteps(extent)..iterator.reset(200); final steps = stepIterable.toList(); @@ -474,10 +473,10 @@ void main() { expect( steps, equals([ - new DateTime(-400), - new DateTime(-200), - new DateTime(0), - new DateTime(200), + DateTime(-400), + DateTime(-200), + DateTime(0), + DateTime(200), ])); }); }); diff --git a/web/charts/common/test/chart/cartesian/axis/time/time_tick_provider_test.dart b/web/charts/common/test/chart/cartesian/axis/time/time_tick_provider_test.dart index 19c871e09..d87aa04a9 100644 --- a/web/charts/common/test/chart/cartesian/axis/time/time_tick_provider_test.dart +++ b/web/charts/common/test/chart/cartesian/axis/time/time_tick_provider_test.dart @@ -20,13 +20,13 @@ import 'simple_date_time_factory.dart' show SimpleDateTimeFactory; const EPSILON = 0.001; void main() { - const dateTimeFactory = const SimpleDateTimeFactory(); + const dateTimeFactory = SimpleDateTimeFactory(); group('Find closest step size from stepper', () { test('from exactly matching step size', () { final stepper = AutoAdjustingDateTimeTickProvider.createHourTickProvider( dateTimeFactory); - final oneHourMs = (new Duration(hours: 1)).inMilliseconds; + final oneHourMs = (Duration(hours: 1)).inMilliseconds; final closestStepSize = stepper.getClosestStepSize(oneHourMs); expect(closestStepSize, equals(oneHourMs)); @@ -36,9 +36,9 @@ void main() { () { final stepper = AutoAdjustingDateTimeTickProvider.createHourTickProvider( dateTimeFactory); - final oneHourMs = (new Duration(hours: 1)).inMilliseconds; - final closestStepSize = stepper - .getClosestStepSize((new Duration(minutes: 56)).inMilliseconds); + final oneHourMs = (Duration(hours: 1)).inMilliseconds; + final closestStepSize = + stepper.getClosestStepSize((Duration(minutes: 56)).inMilliseconds); expect(closestStepSize, equals(oneHourMs)); }); @@ -47,9 +47,9 @@ void main() { () { final stepper = AutoAdjustingDateTimeTickProvider.createHourTickProvider( dateTimeFactory); - final oneDayMs = (new Duration(hours: 24)).inMilliseconds; + final oneDayMs = (Duration(hours: 24)).inMilliseconds; final closestStepSize = - stepper.getClosestStepSize((new Duration(hours: 25)).inMilliseconds); + stepper.getClosestStepSize((Duration(hours: 25)).inMilliseconds); expect(closestStepSize, equals(oneDayMs)); }); @@ -57,9 +57,9 @@ void main() { test('choose closest increment if exact not found', () { final stepper = AutoAdjustingDateTimeTickProvider.createHourTickProvider( dateTimeFactory); - final threeHoursMs = (new Duration(hours: 3)).inMilliseconds; - final closestStepSize = stepper.getClosestStepSize( - (new Duration(hours: 3, minutes: 28)).inMilliseconds); + final threeHoursMs = (Duration(hours: 3)).inMilliseconds; + final closestStepSize = stepper + .getClosestStepSize((Duration(hours: 3, minutes: 28)).inMilliseconds); expect(closestStepSize, equals(threeHoursMs)); }); diff --git a/web/charts/common/test/chart/cartesian/cartesian_chart_test.dart b/web/charts/common/test/chart/cartesian/cartesian_chart_test.dart index 7028786d3..b462c2576 100644 --- a/web/charts/common/test/chart/cartesian/cartesian_chart_test.dart +++ b/web/charts/common/test/chart/cartesian/cartesian_chart_test.dart @@ -30,8 +30,8 @@ class MockGraphicsFactory extends Mock implements GraphicsFactory {} class FakeNumericChart extends NumericCartesianChart { FakeNumericChart() { - context = new MockContext(); - graphicsFactory = new MockGraphicsFactory(); + context = MockContext(); + graphicsFactory = MockGraphicsFactory(); } @override @@ -42,8 +42,8 @@ class FakeNumericChart extends NumericCartesianChart { class FakeOrdinalChart extends OrdinalCartesianChart { FakeOrdinalChart() { - context = new MockContext(); - graphicsFactory = new MockGraphicsFactory(); + context = MockContext(); + graphicsFactory = MockGraphicsFactory(); } @override @@ -54,8 +54,8 @@ class FakeOrdinalChart extends OrdinalCartesianChart { class FakeTimeSeries extends TimeSeriesChart { FakeTimeSeries() { - context = new MockContext(); - graphicsFactory = new MockGraphicsFactory(); + context = MockContext(); + graphicsFactory = MockGraphicsFactory(); } @override @@ -67,36 +67,36 @@ class FakeTimeSeries extends TimeSeriesChart { void main() { group('Axis reset with new axis spec', () { test('for ordinal chart', () { - final chart = new FakeOrdinalChart(); + final chart = FakeOrdinalChart(); chart.configurationChanged(); final domainAxis = chart.domainAxis; expect(domainAxis, isNotNull); - chart.domainAxisSpec = new OrdinalAxisSpec(); + chart.domainAxisSpec = OrdinalAxisSpec(); chart.configurationChanged(); expect(domainAxis, isNot(chart.domainAxis)); }); test('for numeric chart', () { - final chart = new FakeNumericChart(); + final chart = FakeNumericChart(); chart.configurationChanged(); final domainAxis = chart.domainAxis; expect(domainAxis, isNotNull); - chart.domainAxisSpec = new NumericAxisSpec(); + chart.domainAxisSpec = NumericAxisSpec(); chart.configurationChanged(); expect(domainAxis, isNot(chart.domainAxis)); }); test('for time series chart', () { - final chart = new FakeTimeSeries(); + final chart = FakeTimeSeries(); chart.configurationChanged(); final domainAxis = chart.domainAxis; expect(domainAxis, isNotNull); - chart.domainAxisSpec = new DateTimeAxisSpec(); + chart.domainAxisSpec = DateTimeAxisSpec(); chart.configurationChanged(); expect(domainAxis, isNot(chart.domainAxis)); diff --git a/web/charts/common/test/chart/cartesian/cartesian_renderer_test.dart b/web/charts/common/test/chart/cartesian/cartesian_renderer_test.dart index 574b5373e..500e8e5af 100644 --- a/web/charts/common/test/chart/cartesian/cartesian_renderer_test.dart +++ b/web/charts/common/test/chart/cartesian/cartesian_renderer_test.dart @@ -54,14 +54,14 @@ void main() { BaseCartesianRenderer renderer; setUp(() { - renderer = new FakeCartesianRenderer(); + renderer = FakeCartesianRenderer(); }); group('find viewport start', () { test('several domains are in the viewport', () { final data = [0, 1, 2, 3, 4, 5, 6]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(0)).thenReturn(-1); when(axis.compareDomainValueToViewport(1)).thenReturn(-1); when(axis.compareDomainValueToViewport(2)).thenReturn(0); @@ -78,8 +78,8 @@ void main() { test('extents are all in the viewport, use the first domain', () { // Start of viewport is the same as the start of the domain. final data = [0, 1, 2, 3]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(any)).thenReturn(0); final start = renderer.findNearestViewportStart(axis, domainFn, data); @@ -89,8 +89,8 @@ void main() { test('is the first domain', () { final data = [0, 1, 2, 3]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(0)).thenReturn(0); when(axis.compareDomainValueToViewport(1)).thenReturn(1); when(axis.compareDomainValueToViewport(2)).thenReturn(1); @@ -103,8 +103,8 @@ void main() { test('is the last domain', () { final data = [0, 1, 2, 3]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(0)).thenReturn(-1); when(axis.compareDomainValueToViewport(1)).thenReturn(-1); when(axis.compareDomainValueToViewport(2)).thenReturn(-1); @@ -117,8 +117,8 @@ void main() { test('is the middle', () { final data = [0, 1, 2, 3, 4, 5, 6]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(0)).thenReturn(-1); when(axis.compareDomainValueToViewport(1)).thenReturn(-1); when(axis.compareDomainValueToViewport(2)).thenReturn(-1); @@ -134,8 +134,8 @@ void main() { test('viewport is between data', () { final data = [0, 1, 2, 3]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(0)).thenReturn(-1); when(axis.compareDomainValueToViewport(1)).thenReturn(-1); when(axis.compareDomainValueToViewport(2)).thenReturn(1); @@ -151,8 +151,8 @@ void main() { test('all extents greater than viewport ', () { // Return the right most value as start of viewport. final data = [0, 1, 2, 3]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(any)).thenReturn(1); final start = renderer.findNearestViewportStart(axis, domainFn, data); @@ -165,8 +165,8 @@ void main() { test('all extents less than viewport ', () { // Return the left most value as the start of the viewport. final data = [0, 1, 2, 3]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(any)).thenReturn(-1); final start = renderer.findNearestViewportStart(axis, domainFn, data); @@ -178,8 +178,8 @@ void main() { group('find viewport end', () { test('several domains are in the viewport', () { final data = [0, 1, 2, 3, 4, 5, 6]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(0)).thenReturn(-1); when(axis.compareDomainValueToViewport(1)).thenReturn(-1); when(axis.compareDomainValueToViewport(2)).thenReturn(0); @@ -196,8 +196,8 @@ void main() { test('extents are all in the viewport, use the last domain', () { // Start of viewport is the same as the end of the domain. final data = [0, 1, 2, 3]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(any)).thenReturn(0); final start = renderer.findNearestViewportEnd(axis, domainFn, data); @@ -207,8 +207,8 @@ void main() { test('is the first domain', () { final data = [0, 1, 2, 3]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(0)).thenReturn(0); when(axis.compareDomainValueToViewport(1)).thenReturn(1); when(axis.compareDomainValueToViewport(2)).thenReturn(1); @@ -221,8 +221,8 @@ void main() { test('is the last domain', () { final data = [0, 1, 2, 3]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(0)).thenReturn(-1); when(axis.compareDomainValueToViewport(1)).thenReturn(-1); when(axis.compareDomainValueToViewport(2)).thenReturn(-1); @@ -235,8 +235,8 @@ void main() { test('is the middle', () { final data = [0, 1, 2, 3, 4, 5, 6]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(0)).thenReturn(-1); when(axis.compareDomainValueToViewport(1)).thenReturn(-1); when(axis.compareDomainValueToViewport(2)).thenReturn(-1); @@ -252,8 +252,8 @@ void main() { test('viewport is between data', () { final data = [0, 1, 2, 3]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(0)).thenReturn(-1); when(axis.compareDomainValueToViewport(1)).thenReturn(-1); when(axis.compareDomainValueToViewport(2)).thenReturn(1); @@ -269,8 +269,8 @@ void main() { test('all extents greater than viewport ', () { // Return the right most value as start of viewport. final data = [0, 1, 2, 3]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(any)).thenReturn(1); final start = renderer.findNearestViewportEnd(axis, domainFn, data); @@ -283,8 +283,8 @@ void main() { test('all extents less than viewport ', () { // Return the left most value as the start of the viewport. final data = [0, 1, 2, 3]; - final domainFn = (int index) => data[index]; - final axis = new MockAxis(); + final domainFn = (index) => data[index]; + final axis = MockAxis(); when(axis.compareDomainValueToViewport(any)).thenReturn(-1); final start = renderer.findNearestViewportEnd(axis, domainFn, data); diff --git a/web/charts/common/test/chart/common/behavior/a11y/domain_a11y_explore_behavior_test.dart b/web/charts/common/test/chart/common/behavior/a11y/domain_a11y_explore_behavior_test.dart index 6d7903b0c..07cf576d9 100644 --- a/web/charts/common/test/chart/common/behavior/a11y/domain_a11y_explore_behavior_test.dart +++ b/web/charts/common/test/chart/common/behavior/a11y/domain_a11y_explore_behavior_test.dart @@ -45,31 +45,30 @@ void main() { MockAxis domainAxis; MutableSeries _series1; - final _s1D1 = new MyRow('s1d1', 11, 'a11yd1'); - final _s1D2 = new MyRow('s1d2', 12, 'a11yd2'); - final _s1D3 = new MyRow('s1d3', 13, 'a11yd3'); + final _s1D1 = MyRow('s1d1', 11, 'a11yd1'); + final _s1D2 = MyRow('s1d2', 12, 'a11yd2'); + final _s1D3 = MyRow('s1d3', 13, 'a11yd3'); setUp(() { - chart = new FakeCartesianChart() - ..drawAreaBounds = new Rectangle(50, 20, 150, 80); + chart = FakeCartesianChart()..drawAreaBounds = Rectangle(50, 20, 150, 80); - behavior = new DomainA11yExploreBehavior( + behavior = DomainA11yExploreBehavior( vocalizationCallback: domainVocalization); behavior.attachTo(chart); - domainAxis = new MockAxis(); - _series1 = new MutableSeries(new Series( + domainAxis = MockAxis(); + _series1 = MutableSeries(Series( id: 's1', data: [_s1D1, _s1D2, _s1D3], - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.count, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.count, )) ..setAttr(domainAxisKey, domainAxis); }); test('creates nodes for vertically drawn charts', () { // A LTR chart - final context = new MockContext(); + final context = MockContext(); when(context.chartContainerIsRtl).thenReturn(false); when(context.isRtl).thenReturn(false); chart.context = context; @@ -87,16 +86,16 @@ void main() { expect(nodes, hasLength(3)); expect(nodes[0].label, equals('s1d1')); - expect(nodes[0].boundingBox, equals(new Rectangle(50, 20, 50, 80))); + expect(nodes[0].boundingBox, equals(Rectangle(50, 20, 50, 80))); expect(nodes[1].label, equals('s1d2')); - expect(nodes[1].boundingBox, equals(new Rectangle(100, 20, 50, 80))); + expect(nodes[1].boundingBox, equals(Rectangle(100, 20, 50, 80))); expect(nodes[2].label, equals('s1d3')); - expect(nodes[2].boundingBox, equals(new Rectangle(150, 20, 50, 80))); + expect(nodes[2].boundingBox, equals(Rectangle(150, 20, 50, 80))); }); test('creates nodes for vertically drawn RTL charts', () { // A RTL chart - final context = new MockContext(); + final context = MockContext(); when(context.chartContainerIsRtl).thenReturn(true); when(context.isRtl).thenReturn(true); chart.context = context; @@ -114,16 +113,16 @@ void main() { expect(nodes, hasLength(3)); expect(nodes[0].label, equals('s1d1')); - expect(nodes[0].boundingBox, equals(new Rectangle(150, 20, 50, 80))); + expect(nodes[0].boundingBox, equals(Rectangle(150, 20, 50, 80))); expect(nodes[1].label, equals('s1d2')); - expect(nodes[1].boundingBox, equals(new Rectangle(100, 20, 50, 80))); + expect(nodes[1].boundingBox, equals(Rectangle(100, 20, 50, 80))); expect(nodes[2].label, equals('s1d3')); - expect(nodes[2].boundingBox, equals(new Rectangle(50, 20, 50, 80))); + expect(nodes[2].boundingBox, equals(Rectangle(50, 20, 50, 80))); }); test('creates nodes for horizontally drawn charts', () { // A LTR chart - final context = new MockContext(); + final context = MockContext(); when(context.chartContainerIsRtl).thenReturn(false); when(context.isRtl).thenReturn(false); chart.context = context; @@ -141,16 +140,16 @@ void main() { expect(nodes, hasLength(3)); expect(nodes[0].label, equals('s1d1')); - expect(nodes[0].boundingBox, equals(new Rectangle(50, 20, 150, 20))); + expect(nodes[0].boundingBox, equals(Rectangle(50, 20, 150, 20))); expect(nodes[1].label, equals('s1d2')); - expect(nodes[1].boundingBox, equals(new Rectangle(50, 40, 150, 20))); + expect(nodes[1].boundingBox, equals(Rectangle(50, 40, 150, 20))); expect(nodes[2].label, equals('s1d3')); - expect(nodes[2].boundingBox, equals(new Rectangle(50, 60, 150, 20))); + expect(nodes[2].boundingBox, equals(Rectangle(50, 60, 150, 20))); }); test('creates nodes for horizontally drawn RTL charts', () { // A LTR chart - final context = new MockContext(); + final context = MockContext(); when(context.chartContainerIsRtl).thenReturn(true); when(context.isRtl).thenReturn(true); chart.context = context; @@ -168,16 +167,16 @@ void main() { expect(nodes, hasLength(3)); expect(nodes[0].label, equals('s1d1')); - expect(nodes[0].boundingBox, equals(new Rectangle(50, 20, 150, 20))); + expect(nodes[0].boundingBox, equals(Rectangle(50, 20, 150, 20))); expect(nodes[1].label, equals('s1d2')); - expect(nodes[1].boundingBox, equals(new Rectangle(50, 40, 150, 20))); + expect(nodes[1].boundingBox, equals(Rectangle(50, 40, 150, 20))); expect(nodes[2].label, equals('s1d3')); - expect(nodes[2].boundingBox, equals(new Rectangle(50, 60, 150, 20))); + expect(nodes[2].boundingBox, equals(Rectangle(50, 60, 150, 20))); }); test('nodes ordered correctly with a series missing a domain', () { // A LTR chart - final context = new MockContext(); + final context = MockContext(); when(context.chartContainerIsRtl).thenReturn(false); when(context.isRtl).thenReturn(false); chart.context = context; @@ -189,11 +188,11 @@ void main() { when(domainAxis.getLocation('s1d2')).thenReturn(125.0); when(domainAxis.getLocation('s1d3')).thenReturn(175.0); // Create a series with a missing domain - final seriesWithMissingDomain = new MutableSeries(new Series( + final seriesWithMissingDomain = MutableSeries(Series( id: 'm1', data: [_s1D1, _s1D3], - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.count, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.count, )) ..setAttr(domainAxisKey, domainAxis); @@ -204,21 +203,21 @@ void main() { expect(nodes, hasLength(3)); expect(nodes[0].label, equals('s1d1')); - expect(nodes[0].boundingBox, equals(new Rectangle(50, 20, 50, 80))); + expect(nodes[0].boundingBox, equals(Rectangle(50, 20, 50, 80))); expect(nodes[1].label, equals('s1d2')); - expect(nodes[1].boundingBox, equals(new Rectangle(100, 20, 50, 80))); + expect(nodes[1].boundingBox, equals(Rectangle(100, 20, 50, 80))); expect(nodes[2].label, equals('s1d3')); - expect(nodes[2].boundingBox, equals(new Rectangle(150, 20, 50, 80))); + expect(nodes[2].boundingBox, equals(Rectangle(150, 20, 50, 80))); }); test('creates nodes with minimum width', () { // A behavior with minimum width of 50 final behaviorWithMinWidth = - new DomainA11yExploreBehavior(minimumWidth: 50.0); + DomainA11yExploreBehavior(minimumWidth: 50.0); behaviorWithMinWidth.attachTo(chart); // A LTR chart - final context = new MockContext(); + final context = MockContext(); when(context.chartContainerIsRtl).thenReturn(false); when(context.isRtl).thenReturn(false); chart.context = context; @@ -237,11 +236,11 @@ void main() { expect(nodes, hasLength(3)); expect(nodes[0].label, equals('s1d1')); - expect(nodes[0].boundingBox, equals(new Rectangle(50, 20, 50, 80))); + expect(nodes[0].boundingBox, equals(Rectangle(50, 20, 50, 80))); expect(nodes[1].label, equals('s1d2')); - expect(nodes[1].boundingBox, equals(new Rectangle(100, 20, 50, 80))); + expect(nodes[1].boundingBox, equals(Rectangle(100, 20, 50, 80))); expect(nodes[2].label, equals('s1d3')); - expect(nodes[2].boundingBox, equals(new Rectangle(150, 20, 50, 80))); + expect(nodes[2].boundingBox, equals(Rectangle(150, 20, 50, 80))); }); } diff --git a/web/charts/common/test/chart/common/behavior/calculation/percent_injector_test.dart b/web/charts/common/test/chart/common/behavior/calculation/percent_injector_test.dart index ae897b156..a190059fc 100644 --- a/web/charts/common/test/chart/common/behavior/calculation/percent_injector_test.dart +++ b/web/charts/common/test/chart/common/behavior/calculation/percent_injector_test.dart @@ -56,7 +56,7 @@ void main() { PercentInjector _makeBehavior( {PercentInjectorTotalType totalType = PercentInjectorTotalType.domain}) { - final behavior = new PercentInjector(totalType: totalType); + final behavior = PercentInjector(totalType: totalType); behavior.attachTo(_chart); @@ -64,92 +64,92 @@ void main() { } setUp(() { - _chart = new MockChart(); + _chart = MockChart(); final myFakeDesktopAData = [ - new MyRow('MyCampaign1', 1, 1, 1), - new MyRow('MyCampaign2', 2, 2, 2), - new MyRow('MyCampaign3', 3, 3, 3), + MyRow('MyCampaign1', 1, 1, 1), + MyRow('MyCampaign2', 2, 2, 2), + MyRow('MyCampaign3', 3, 3, 3), ]; final myFakeTabletAData = [ - new MyRow('MyCampaign1', 2, 2, 2), - new MyRow('MyCampaign2', 3, 3, 3), - new MyRow('MyCampaign3', 4, 4, 4), + MyRow('MyCampaign1', 2, 2, 2), + MyRow('MyCampaign2', 3, 3, 3), + MyRow('MyCampaign3', 4, 4, 4), ]; final myFakeMobileAData = [ - new MyRow('MyCampaign1', 3, 3, 3), - new MyRow('MyCampaign2', 4, 4, 4), - new MyRow('MyCampaign3', 5, 5, 5), + MyRow('MyCampaign1', 3, 3, 3), + MyRow('MyCampaign2', 4, 4, 4), + MyRow('MyCampaign3', 5, 5, 5), ]; final myFakeDesktopBData = [ - new MyRow('MyCampaign1', 10, 8, 12), - new MyRow('MyCampaign2', 20, 18, 22), - new MyRow('MyCampaign3', 30, 28, 32), + MyRow('MyCampaign1', 10, 8, 12), + MyRow('MyCampaign2', 20, 18, 22), + MyRow('MyCampaign3', 30, 28, 32), ]; final myFakeTabletBData = [ - new MyRow('MyCampaign1', 20, 18, 22), - new MyRow('MyCampaign2', 30, 28, 32), - new MyRow('MyCampaign3', 40, 38, 42), + MyRow('MyCampaign1', 20, 18, 22), + MyRow('MyCampaign2', 30, 28, 32), + MyRow('MyCampaign3', 40, 38, 42), ]; final myFakeMobileBData = [ - new MyRow('MyCampaign1', 30, 28, 32), - new MyRow('MyCampaign2', 40, 38, 42), - new MyRow('MyCampaign3', 50, 48, 52), + MyRow('MyCampaign1', 30, 28, 32), + MyRow('MyCampaign2', 40, 38, 42), + MyRow('MyCampaign3', 50, 48, 52), ]; seriesList = [ - new MutableSeries(new Series( + MutableSeries(Series( id: 'Desktop A', seriesCategory: 'A', - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeDesktopAData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Tablet A', seriesCategory: 'A', - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeTabletAData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Mobile A', seriesCategory: 'A', - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, data: myFakeMobileAData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Desktop B', seriesCategory: 'B', - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureLowerBoundFn: (MyRow row, _) => row.clickCountLower, - measureUpperBoundFn: (MyRow row, _) => row.clickCountUpper, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureLowerBoundFn: (row, _) => row.clickCountLower, + measureUpperBoundFn: (row, _) => row.clickCountUpper, + measureOffsetFn: (row, _) => 0, data: myFakeDesktopBData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Tablet B', seriesCategory: 'B', - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureLowerBoundFn: (MyRow row, _) => row.clickCountLower, - measureUpperBoundFn: (MyRow row, _) => row.clickCountUpper, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureLowerBoundFn: (row, _) => row.clickCountLower, + measureUpperBoundFn: (row, _) => row.clickCountUpper, + measureOffsetFn: (row, _) => 0, data: myFakeTabletBData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Mobile B', seriesCategory: 'B', - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureLowerBoundFn: (MyRow row, _) => row.clickCountLower, - measureUpperBoundFn: (MyRow row, _) => row.clickCountUpper, - measureOffsetFn: (MyRow row, _) => 0, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureLowerBoundFn: (row, _) => row.clickCountLower, + measureUpperBoundFn: (row, _) => row.clickCountUpper, + measureOffsetFn: (row, _) => 0, data: myFakeMobileBData)) ]; }); diff --git a/web/charts/common/test/chart/common/behavior/chart_behavior_test.dart b/web/charts/common/test/chart/common/behavior/chart_behavior_test.dart index 72c98b06f..e343c3edd 100644 --- a/web/charts/common/test/chart/common/behavior/chart_behavior_test.dart +++ b/web/charts/common/test/chart/common/behavior/chart_behavior_test.dart @@ -57,12 +57,12 @@ void main() { MockBehavior unnamedBehavior; setUp(() { - chart = new ConcreteChart(); + chart = ConcreteChart(); - namedBehavior = new MockBehavior(); + namedBehavior = MockBehavior(); when(namedBehavior.role).thenReturn('foo'); - unnamedBehavior = new MockBehavior(); + unnamedBehavior = MockBehavior(); when(unnamedBehavior.role).thenReturn(null); }); @@ -87,7 +87,7 @@ void main() { }); test('detach is called when name is reused', () { - final otherBehavior = new MockBehavior(); + final otherBehavior = MockBehavior(); when(otherBehavior.role).thenReturn('foo'); chart.addBehavior(namedBehavior); @@ -117,7 +117,7 @@ void main() { }); test('detach is not called when name is different', () { - final otherBehavior = new MockBehavior(); + final otherBehavior = MockBehavior(); when(otherBehavior.role).thenReturn('bar'); chart.addBehavior(namedBehavior); @@ -133,7 +133,7 @@ void main() { }); test('behaviors are removed when chart is destroyed', () { - final parentBehavior = new ParentBehavior(unnamedBehavior); + final parentBehavior = ParentBehavior(unnamedBehavior); chart.addBehavior(parentBehavior); // The parent should add the child behavoir. diff --git a/web/charts/common/test/chart/common/behavior/domain_highlighter_test.dart b/web/charts/common/test/chart/common/behavior/domain_highlighter_test.dart index af051be3a..4a7499a25 100644 --- a/web/charts/common/test/chart/common/behavior/domain_highlighter_test.dart +++ b/web/charts/common/test/chart/common/behavior/domain_highlighter_test.dart @@ -55,14 +55,14 @@ void main() { MockSelectionModel _selectionModel; MutableSeries _series1; - final _s1D1 = new MyRow('s1d1', 11); - final _s1D2 = new MyRow('s1d2', 12); - final _s1D3 = new MyRow('s1d3', 13); + final _s1D1 = MyRow('s1d1', 11); + final _s1D2 = MyRow('s1d2', 12); + final _s1D3 = MyRow('s1d3', 13); MutableSeries _series2; - final _s2D1 = new MyRow('s2d1', 21); - final _s2D2 = new MyRow('s2d2', 22); - final _s2D3 = new MyRow('s2d3', 23); + final _s2D1 = MyRow('s2d1', 21); + final _s2D2 = MyRow('s2d2', 22); + final _s2D3 = MyRow('s2d3', 23); _setupSelection(List selected) { for (var i = 0; i < _series1.data.length; i++) { @@ -76,25 +76,25 @@ void main() { } setUp(() { - _chart = new MockChart(); + _chart = MockChart(); - _selectionModel = new MockSelectionModel(); + _selectionModel = MockSelectionModel(); when(_chart.getSelectionModel(SelectionModelType.info)) .thenReturn(_selectionModel); - _series1 = new MutableSeries(new Series( + _series1 = MutableSeries(Series( id: 's1', data: [_s1D1, _s1D2, _s1D3], - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.count, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.count, colorFn: (_, __) => MaterialPalette.blue.shadeDefault)) ..measureFn = (_) => 0.0; - _series2 = new MutableSeries(new Series( + _series2 = MutableSeries(Series( id: 's2', data: [_s2D1, _s2D2, _s2D3], - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.count, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.count, colorFn: (_, __) => MaterialPalette.red.shadeDefault)) ..measureFn = (_) => 0.0; }); @@ -102,7 +102,7 @@ void main() { group('DomainHighligher', () { test('darkens the selected bars', () { // Setup - final behavior = new DomainHighlighter(SelectionModelType.info); + final behavior = DomainHighlighter(SelectionModelType.info); behavior.attachTo(_chart); _setupSelection([_s1D2, _s2D2]); final seriesList = [_series1, _series2]; @@ -126,7 +126,7 @@ void main() { test('listens to other selection models', () { // Setup - final behavior = new DomainHighlighter(SelectionModelType.action); + final behavior = DomainHighlighter(SelectionModelType.action); when(_chart.getSelectionModel(SelectionModelType.action)) .thenReturn(_selectionModel); @@ -140,7 +140,7 @@ void main() { test('leaves everything alone with no selection', () { // Setup - final behavior = new DomainHighlighter(SelectionModelType.info); + final behavior = DomainHighlighter(SelectionModelType.info); behavior.attachTo(_chart); _setupSelection([]); final seriesList = [_series1, _series2]; @@ -164,7 +164,7 @@ void main() { test('cleans up', () { // Setup - final behavior = new DomainHighlighter(SelectionModelType.info); + final behavior = DomainHighlighter(SelectionModelType.info); behavior.attachTo(_chart); _setupSelection([_s1D2, _s2D2]); diff --git a/web/charts/common/test/chart/common/behavior/initial_selection_test.dart b/web/charts/common/test/chart/common/behavior/initial_selection_test.dart index 2d8e93f71..24ece386c 100644 --- a/web/charts/common/test/chart/common/behavior/initial_selection_test.dart +++ b/web/charts/common/test/chart/common/behavior/initial_selection_test.dart @@ -51,7 +51,7 @@ class FakeChart extends BaseChart { List getDatumDetails(SelectionModelType type) => []; @override - SeriesRenderer makeDefaultRenderer() => new FakeRenderer(); + SeriesRenderer makeDefaultRenderer() => FakeRenderer(); void requestOnDraw(List seriesList) { fireOnDraw(seriesList); @@ -68,7 +68,7 @@ void main() { InitialSelection _makeBehavior(SelectionModelType selectionModelType, {List selectedSeries, List selectedData}) { - InitialSelection behavior = new InitialSelection( + InitialSelection behavior = InitialSelection( selectionModelType: selectionModelType, selectedSeriesConfig: selectedSeries, selectedDataConfig: selectedData); @@ -79,27 +79,27 @@ void main() { } setUp(() { - _chart = new FakeChart(); + _chart = FakeChart(); - _series1 = new MutableSeries(new Series( + _series1 = MutableSeries(Series( id: 'mySeries1', data: ['A', 'B', 'C', 'D'], domainFn: (dynamic datum, __) => datum, measureFn: (_, __) => 0)); - _series2 = new MutableSeries(new Series( + _series2 = MutableSeries(Series( id: 'mySeries2', data: ['W', 'X', 'Y', 'Z'], domainFn: (dynamic datum, __) => datum, measureFn: (_, __) => 0)); - _series3 = new MutableSeries(new Series( + _series3 = MutableSeries(Series( id: 'mySeries3', data: ['W', 'X', 'Y', 'Z'], domainFn: (dynamic datum, __) => datum, measureFn: (_, __) => 0)); - _series4 = new MutableSeries(new Series( + _series4 = MutableSeries(Series( id: 'mySeries4', data: ['W', 'X', 'Y', 'Z'], domainFn: (dynamic datum, __) => datum, @@ -108,7 +108,7 @@ void main() { test('selects initial datum', () { _makeBehavior(infoSelectionType, - selectedData: [new SeriesDatumConfig('mySeries1', 'C')]); + selectedData: [SeriesDatumConfig('mySeries1', 'C')]); _chart.requestOnDraw([_series1, _series2]); @@ -123,8 +123,8 @@ void main() { test('selects multiple initial data', () { _makeBehavior(infoSelectionType, selectedData: [ - new SeriesDatumConfig('mySeries1', 'C'), - new SeriesDatumConfig('mySeries1', 'D') + SeriesDatumConfig('mySeries1', 'C'), + SeriesDatumConfig('mySeries1', 'D') ]); _chart.requestOnDraw([_series1, _series2]); @@ -168,7 +168,7 @@ void main() { test('selects series and datum', () { _makeBehavior(infoSelectionType, - selectedData: [new SeriesDatumConfig('mySeries1', 'C')], + selectedData: [SeriesDatumConfig('mySeries1', 'C')], selectedSeries: ['mySeries4']); _chart.requestOnDraw([_series1, _series2, _series3, _series4]); @@ -197,7 +197,7 @@ void main() { // Request a draw with a new series list. _chart.draw( [ - new Series( + Series( id: 'mySeries2', data: ['W', 'X', 'Y', 'Z'], domainFn: (dynamic datum, __) => datum, diff --git a/web/charts/common/test/chart/common/behavior/line_point_highlighter_test.dart b/web/charts/common/test/chart/common/behavior/line_point_highlighter_test.dart index 1753df0c6..b762f6893 100644 --- a/web/charts/common/test/chart/common/behavior/line_point_highlighter_test.dart +++ b/web/charts/common/test/chart/common/behavior/line_point_highlighter_test.dart @@ -81,8 +81,7 @@ class MockSeriesRenderer extends BaseSeriesRenderer { DatumDetails addPositionToDetailsForSeriesDatum( DatumDetails details, SeriesDatum seriesDatum) { - return new DatumDetails.from(details, - chartPosition: new Point(0.0, 0.0)); + return DatumDetails.from(details, chartPosition: Point(0.0, 0.0)); } } @@ -92,14 +91,14 @@ void main() { MockSeriesRenderer _seriesRenderer; MutableSeries _series1; - final _s1D1 = new MyRow(1, 11); - final _s1D2 = new MyRow(2, 12); - final _s1D3 = new MyRow(3, 13); + final _s1D1 = MyRow(1, 11); + final _s1D2 = MyRow(2, 12); + final _s1D3 = MyRow(3, 13); MutableSeries _series2; - final _s2D1 = new MyRow(4, 21); - final _s2D2 = new MyRow(5, 22); - final _s2D3 = new MyRow(6, 23); + final _s2D1 = MyRow(4, 21); + final _s2D2 = MyRow(5, 22); + final _s2D3 = MyRow(6, 23); List _mockGetSelectedDatumDetails(List selection) { final details = []; @@ -136,27 +135,27 @@ void main() { } setUp(() { - _chart = new MockChart(); + _chart = MockChart(); - _seriesRenderer = new MockSeriesRenderer(); + _seriesRenderer = MockSeriesRenderer(); - _selectionModel = new MockSelectionModel(); + _selectionModel = MockSelectionModel(); when(_chart.getSelectionModel(SelectionModelType.info)) .thenReturn(_selectionModel); - _series1 = new MutableSeries(new Series( + _series1 = MutableSeries(Series( id: 's1', data: [_s1D1, _s1D2, _s1D3], - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.count, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.count, colorFn: (_, __) => MaterialPalette.blue.shadeDefault)) ..measureFn = (_) => 0.0; - _series2 = new MutableSeries(new Series( + _series2 = MutableSeries(Series( id: 's2', data: [_s2D1, _s2D2, _s2D3], - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.count, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.count, colorFn: (_, __) => MaterialPalette.red.shadeDefault)) ..measureFn = (_) => 0.0; }); @@ -165,17 +164,17 @@ void main() { test('highlights the selected points', () { // Setup final behavior = - new LinePointHighlighter(selectionModelType: SelectionModelType.info); - final tester = new LinePointHighlighterTester(behavior); + LinePointHighlighter(selectionModelType: SelectionModelType.info); + final tester = LinePointHighlighterTester(behavior); behavior.attachTo(_chart); _setupSelection([ - new SeriesDatum(_series1, _s1D2), - new SeriesDatum(_series2, _s2D2), + SeriesDatum(_series1, _s1D2), + SeriesDatum(_series2, _s2D2), ]); // Mock axes for returning fake domain locations. - Axis domainAxis = new MockNumericAxis(); - Axis primaryMeasureAxis = new MockNumericAxis(); + Axis domainAxis = MockNumericAxis(); + Axis primaryMeasureAxis = MockNumericAxis(); _series1.setAttr(domainAxisKey, domainAxis); _series1.setAttr(measureAxisKey, primaryMeasureAxis); @@ -205,8 +204,8 @@ void main() { test('listens to other selection models', () { // Setup - final behavior = new LinePointHighlighter( - selectionModelType: SelectionModelType.action); + final behavior = + LinePointHighlighter(selectionModelType: SelectionModelType.action); when(_chart.getSelectionModel(SelectionModelType.action)) .thenReturn(_selectionModel); @@ -221,8 +220,8 @@ void main() { test('leaves everything alone with no selection', () { // Setup final behavior = - new LinePointHighlighter(selectionModelType: SelectionModelType.info); - final tester = new LinePointHighlighterTester(behavior); + LinePointHighlighter(selectionModelType: SelectionModelType.info); + final tester = LinePointHighlighterTester(behavior); behavior.attachTo(_chart); _setupSelection([]); @@ -246,11 +245,11 @@ void main() { test('cleans up', () { // Setup final behavior = - new LinePointHighlighter(selectionModelType: SelectionModelType.info); + LinePointHighlighter(selectionModelType: SelectionModelType.info); behavior.attachTo(_chart); _setupSelection([ - new SeriesDatum(_series1, _s1D2), - new SeriesDatum(_series2, _s2D2), + SeriesDatum(_series1, _s1D2), + SeriesDatum(_series2, _s2D2), ]); // Act diff --git a/web/charts/common/test/chart/common/behavior/range_annotation_test.dart b/web/charts/common/test/chart/common/behavior/range_annotation_test.dart index b83ea39fd..309be54f1 100644 --- a/web/charts/common/test/chart/common/behavior/range_annotation_test.dart +++ b/web/charts/common/test/chart/common/behavior/range_annotation_test.dart @@ -33,9 +33,9 @@ class MockContext extends Mock implements ChartContext {} class ConcreteChart extends LineChart { LifecycleListener lastListener; - final _domainAxis = new ConcreteNumericAxis(); + final _domainAxis = ConcreteNumericAxis(); - final _primaryMeasureAxis = new ConcreteNumericAxis(); + final _primaryMeasureAxis = ConcreteNumericAxis(); @override addLifecycleListener(LifecycleListener listener) { @@ -60,9 +60,9 @@ class ConcreteChart extends LineChart { class ConcreteNumericAxis extends Axis { ConcreteNumericAxis() : super( - tickProvider: new MockTickProvider(), - tickFormatter: new NumericTickFormatter(), - scale: new LinearScale(), + tickProvider: MockTickProvider(), + tickFormatter: NumericTickFormatter(), + scale: LinearScale(), ); } @@ -76,16 +76,16 @@ void main() { ConcreteChart _chart; Series _series1; - final _s1D1 = new MyRow(0, 11); - final _s1D2 = new MyRow(1, 12); - final _s1D3 = new MyRow(2, 13); + final _s1D1 = MyRow(0, 11); + final _s1D2 = MyRow(1, 12); + final _s1D3 = MyRow(2, 13); Series _series2; - final _s2D1 = new MyRow(3, 21); - final _s2D2 = new MyRow(4, 22); - final _s2D3 = new MyRow(5, 23); + final _s2D1 = MyRow(3, 21); + final _s2D2 = MyRow(4, 22); + final _s2D3 = MyRow(5, 23); - const _dashPattern = const [2, 3]; + const _dashPattern = [2, 3]; List> _annotations1; @@ -94,9 +94,9 @@ void main() { List> _annotations3; ConcreteChart _makeChart() { - final chart = new ConcreteChart(); + final chart = ConcreteChart(); - final context = new MockContext(); + final context = MockContext(); when(context.chartContainerIsRtl).thenReturn(false); when(context.isRtl).thenReturn(false); chart.context = context; @@ -123,22 +123,22 @@ void main() { } setUpAll(() { - drawBounds = new Rectangle(0, 0, 100, 100); - domainAxisBounds = new Rectangle(0, 0, 100, 100); - measureAxisBounds = new Rectangle(0, 0, 100, 100); + drawBounds = Rectangle(0, 0, 100, 100); + domainAxisBounds = Rectangle(0, 0, 100, 100); + measureAxisBounds = Rectangle(0, 0, 100, 100); }); setUp(() { _chart = _makeChart(); - _series1 = new Series( + _series1 = Series( id: 's1', data: [_s1D1, _s1D2, _s1D3], domainFn: (dynamic row, _) => row.campaign, measureFn: (dynamic row, _) => row.count, colorFn: (_, __) => MaterialPalette.blue.shadeDefault); - _series2 = new Series( + _series2 = Series( id: 's2', data: [_s2D1, _s2D2, _s2D3], domainFn: (dynamic row, _) => row.campaign, @@ -146,31 +146,31 @@ void main() { colorFn: (_, __) => MaterialPalette.red.shadeDefault); _annotations1 = [ - new RangeAnnotationSegment(1, 2, RangeAnnotationAxisType.domain, + RangeAnnotationSegment(1, 2, RangeAnnotationAxisType.domain, startLabel: 'Ann 1'), - new RangeAnnotationSegment(4, 5, RangeAnnotationAxisType.domain, + RangeAnnotationSegment(4, 5, RangeAnnotationAxisType.domain, color: MaterialPalette.gray.shade200, endLabel: 'Ann 2'), - new RangeAnnotationSegment(5, 5.5, RangeAnnotationAxisType.measure, + RangeAnnotationSegment(5, 5.5, RangeAnnotationAxisType.measure, startLabel: 'Really long tick start label', endLabel: 'Really long tick end label'), - new RangeAnnotationSegment(10, 15, RangeAnnotationAxisType.measure, + RangeAnnotationSegment(10, 15, RangeAnnotationAxisType.measure, startLabel: 'Ann 4 Start', endLabel: 'Ann 4 End'), - new RangeAnnotationSegment(16, 22, RangeAnnotationAxisType.measure, + RangeAnnotationSegment(16, 22, RangeAnnotationAxisType.measure, startLabel: 'Ann 5 Start', endLabel: 'Ann 5 End'), ]; _annotations2 = [ - new RangeAnnotationSegment(1, 2, RangeAnnotationAxisType.domain), - new RangeAnnotationSegment(4, 5, RangeAnnotationAxisType.domain, + RangeAnnotationSegment(1, 2, RangeAnnotationAxisType.domain), + RangeAnnotationSegment(4, 5, RangeAnnotationAxisType.domain, color: MaterialPalette.gray.shade200), - new RangeAnnotationSegment(8, 10, RangeAnnotationAxisType.domain, + RangeAnnotationSegment(8, 10, RangeAnnotationAxisType.domain, color: MaterialPalette.gray.shade300), ]; _annotations3 = [ - new LineAnnotationSegment(1, RangeAnnotationAxisType.measure, + LineAnnotationSegment(1, RangeAnnotationAxisType.measure, startLabel: 'Ann 1 Start', endLabel: 'Ann 1 End'), - new LineAnnotationSegment(4, RangeAnnotationAxisType.measure, + LineAnnotationSegment(4, RangeAnnotationAxisType.measure, startLabel: 'Ann 2 Start', endLabel: 'Ann 2 End', color: MaterialPalette.gray.shade200, @@ -181,8 +181,8 @@ void main() { group('RangeAnnotation', () { test('renders the annotations', () { // Setup - final behavior = new RangeAnnotation(_annotations1); - final tester = new RangeAnnotationTester(behavior); + final behavior = RangeAnnotation(_annotations1); + final tester = RangeAnnotationTester(behavior); behavior.attachTo(_chart); final seriesList = [_series1, _series2]; @@ -252,8 +252,8 @@ void main() { test('extends the domain axis when annotations fall outside the range', () { // Setup - final behavior = new RangeAnnotation(_annotations2); - final tester = new RangeAnnotationTester(behavior); + final behavior = RangeAnnotation(_annotations2); + final tester = RangeAnnotationTester(behavior); behavior.attachTo(_chart); final seriesList = [_series1, _series2]; @@ -294,8 +294,8 @@ void main() { test('test dash pattern equality', () { // Setup - final behavior = new RangeAnnotation(_annotations3); - final tester = new RangeAnnotationTester(behavior); + final behavior = RangeAnnotation(_annotations3); + final tester = RangeAnnotationTester(behavior); behavior.attachTo(_chart); final seriesList = [_series1, _series2]; @@ -332,7 +332,7 @@ void main() { test('cleans up', () { // Setup - final behavior = new RangeAnnotation(_annotations2); + final behavior = RangeAnnotation(_annotations2); behavior.attachTo(_chart); // Act diff --git a/web/charts/common/test/chart/common/behavior/selection/lock_selection_test.dart b/web/charts/common/test/chart/common/behavior/selection/lock_selection_test.dart index f480f9028..1c4f49b78 100644 --- a/web/charts/common/test/chart/common/behavior/selection/lock_selection_test.dart +++ b/web/charts/common/test/chart/common/behavior/selection/lock_selection_test.dart @@ -51,7 +51,7 @@ void main() { LockSelection _makeLockSelectionBehavior( SelectionModelType selectionModelType) { LockSelection behavior = - new LockSelection(selectionModelType: selectionModelType); + LockSelection(selectionModelType: selectionModelType); behavior.attachTo(_chart); @@ -65,10 +65,10 @@ void main() { } setUp(() { - _hoverSelectionModel = new MockSelectionModel(); - _clickSelectionModel = new MockSelectionModel(); + _hoverSelectionModel = MockSelectionModel(); + _clickSelectionModel = MockSelectionModel(); - _chart = new MockChart(); + _chart = MockChart(); when(_chart.getSelectionModel(SelectionModelType.info)) .thenReturn(_hoverSelectionModel); when(_chart.getSelectionModel(SelectionModelType.action)) @@ -79,7 +79,7 @@ void main() { test('can lock model with a selection', () { // Setup chart matches point with single domain single series. _makeLockSelectionBehavior(SelectionModelType.info); - Point point = new Point(100.0, 100.0); + Point point = Point(100.0, 100.0); _setupChart(forPoint: point, isWithinRenderer: true); when(_hoverSelectionModel.hasAnySelection).thenReturn(true); @@ -98,7 +98,7 @@ void main() { test('can lock and unlock model', () { // Setup chart matches point with single domain single series. _makeLockSelectionBehavior(SelectionModelType.info); - Point point = new Point(100.0, 100.0); + Point point = Point(100.0, 100.0); _setupChart(forPoint: point, isWithinRenderer: true); when(_hoverSelectionModel.hasAnySelection).thenReturn(true); @@ -125,7 +125,7 @@ void main() { test('does not lock model with empty selection', () { // Setup chart matches point with single domain single series. _makeLockSelectionBehavior(SelectionModelType.info); - Point point = new Point(100.0, 100.0); + Point point = Point(100.0, 100.0); _setupChart(forPoint: point, isWithinRenderer: true); when(_hoverSelectionModel.hasAnySelection).thenReturn(false); @@ -146,7 +146,7 @@ void main() { test('detach removes listener', () { // Setup final behavior = _makeLockSelectionBehavior(SelectionModelType.info); - Point point = new Point(100.0, 100.0); + Point point = Point(100.0, 100.0); _setupChart(forPoint: point, isWithinRenderer: true); expect(_chart.lastListener, isNotNull); diff --git a/web/charts/common/test/chart/common/behavior/selection/select_nearest_test.dart b/web/charts/common/test/chart/common/behavior/selection/select_nearest_test.dart index 2138c3eb5..a083b37e8 100644 --- a/web/charts/common/test/chart/common/behavior/selection/select_nearest_test.dart +++ b/web/charts/common/test/chart/common/behavior/selection/select_nearest_test.dart @@ -65,7 +65,7 @@ void main() { {bool expandToDomain, bool selectClosestSeries, int maximumDomainDistancePx}) { - SelectNearest behavior = new SelectNearest( + SelectNearest behavior = SelectNearest( selectionModelType: selectionModelType, expandToDomain: expandToDomain, selectClosestSeries: selectClosestSeries, @@ -95,10 +95,10 @@ void main() { } setUp(() { - _hoverSelectionModel = new MockSelectionModel(); - _clickSelectionModel = new MockSelectionModel(); + _hoverSelectionModel = MockSelectionModel(); + _clickSelectionModel = MockSelectionModel(); - _chart = new MockChart(); + _chart = MockChart(); when(_chart.getSelectionModel(SelectionModelType.info)) .thenReturn(_hoverSelectionModel); when(_chart.getSelectionModel(SelectionModelType.action)) @@ -106,25 +106,25 @@ void main() { _series1Data = ['myDomain1', 'myDomain2', 'myDomain3']; - _series1 = new MutableSeries(new Series( + _series1 = MutableSeries(Series( id: 'mySeries1', data: ['myDatum1', 'myDatum2', 'myDatum3'], - domainFn: (_, int i) => _series1Data[i], + domainFn: (_, i) => _series1Data[i], measureFn: (_, __) => 0)); - _details1 = new DatumDetails( + _details1 = DatumDetails( datum: 'myDatum1', domain: 'myDomain1', series: _series1, domainDistance: 10.0, measureDistance: 20.0); - _details2 = new DatumDetails( + _details2 = DatumDetails( datum: 'myDatum2', domain: 'myDomain2', series: _series1, domainDistance: 10.0, measureDistance: 20.0); - _details3 = new DatumDetails( + _details3 = DatumDetails( datum: 'myDatum3', domain: 'myDomain3', series: _series1, @@ -133,13 +133,13 @@ void main() { _series2Data = ['myDomain1']; - _series2 = new MutableSeries(new Series( + _series2 = MutableSeries(Series( id: 'mySeries2', data: ['myDatum1s2'], - domainFn: (_, int i) => _series2Data[i], + domainFn: (_, i) => _series2Data[i], measureFn: (_, __) => 0)); - _details1Series2 = new DatumDetails( + _details1Series2 = DatumDetails( datum: 'myDatum1s2', domain: 'myDomain1', series: _series2, @@ -154,7 +154,7 @@ void main() { // Setup chart matches point with single domain single series. _makeBehavior(SelectionModelType.info, SelectionTrigger.hover, expandToDomain: true, selectClosestSeries: true); - Point point = new Point(100.0, 100.0); + Point point = Point(100.0, 100.0); _setupChart( forPoint: point, isWithinRenderer: true, @@ -166,7 +166,7 @@ void main() { // Validate verify(_hoverSelectionModel.updateSelection( - [new SeriesDatum(_series1, _details1.datum)], [_series1])); + [SeriesDatum(_series1, _details1.datum)], [_series1])); verifyNoMoreInteractions(_hoverSelectionModel); verifyNoMoreInteractions(_clickSelectionModel); // Shouldn't be listening to anything else. @@ -178,7 +178,7 @@ void main() { // Setup chart matches point with single domain single series. _makeBehavior(SelectionModelType.action, SelectionTrigger.tap, expandToDomain: true, selectClosestSeries: true); - Point point = new Point(100.0, 100.0); + Point point = Point(100.0, 100.0); _setupChart( forPoint: point, isWithinRenderer: true, @@ -191,7 +191,7 @@ void main() { // Validate verify(_clickSelectionModel.updateSelection( - [new SeriesDatum(_series1, _details1.datum)], [_series1])); + [SeriesDatum(_series1, _details1.datum)], [_series1])); verifyNoMoreInteractions(_hoverSelectionModel); verifyNoMoreInteractions(_clickSelectionModel); }); @@ -201,28 +201,28 @@ void main() { _makeBehavior(SelectionModelType.info, SelectionTrigger.pressHold, expandToDomain: true, selectClosestSeries: true); - Point startPoint = new Point(100.0, 100.0); + Point startPoint = Point(100.0, 100.0); _setupChart( forPoint: startPoint, isWithinRenderer: true, respondWithDetails: [_details1], seriesList: [_series1]); - Point updatePoint1 = new Point(200.0, 100.0); + Point updatePoint1 = Point(200.0, 100.0); _setupChart( forPoint: updatePoint1, isWithinRenderer: true, respondWithDetails: [_details1], seriesList: [_series1]); - Point updatePoint2 = new Point(300.0, 100.0); + Point updatePoint2 = Point(300.0, 100.0); _setupChart( forPoint: updatePoint2, isWithinRenderer: true, respondWithDetails: [_details2], seriesList: [_series1]); - Point endPoint = new Point(400.0, 100.0); + Point endPoint = Point(400.0, 100.0); _setupChart( forPoint: endPoint, isWithinRenderer: true, @@ -239,10 +239,10 @@ void main() { // Validate // details1 was tripped 2 times (startPoint & updatePoint1) verify(_hoverSelectionModel.updateSelection( - [new SeriesDatum(_series1, _details1.datum)], [_series1])).called(2); + [SeriesDatum(_series1, _details1.datum)], [_series1])).called(2); // details2 was tripped for updatePoint2 verify(_hoverSelectionModel.updateSelection( - [new SeriesDatum(_series1, _details2.datum)], [_series1])); + [SeriesDatum(_series1, _details2.datum)], [_series1])); // dragEnd deselects even though we are over details3. verify(_hoverSelectionModel.updateSelection([], [])); verifyNoMoreInteractions(_hoverSelectionModel); @@ -254,21 +254,21 @@ void main() { _makeBehavior(SelectionModelType.info, SelectionTrigger.longPressHold, expandToDomain: true, selectClosestSeries: true); - Point startPoint = new Point(100.0, 100.0); + Point startPoint = Point(100.0, 100.0); _setupChart( forPoint: startPoint, isWithinRenderer: true, respondWithDetails: [_details1], seriesList: [_series1]); - Point updatePoint1 = new Point(200.0, 100.0); + Point updatePoint1 = Point(200.0, 100.0); _setupChart( forPoint: updatePoint1, isWithinRenderer: true, respondWithDetails: [_details2], seriesList: [_series1]); - Point endPoint = new Point(400.0, 100.0); + Point endPoint = Point(400.0, 100.0); _setupChart( forPoint: endPoint, isWithinRenderer: true, @@ -290,9 +290,9 @@ void main() { // Validate // details1 was tripped 2 times (longPress & dragStart) verify(_hoverSelectionModel.updateSelection( - [new SeriesDatum(_series1, _details1.datum)], [_series1])).called(2); + [SeriesDatum(_series1, _details1.datum)], [_series1])).called(2); verify(_hoverSelectionModel.updateSelection( - [new SeriesDatum(_series1, _details2.datum)], [_series1])); + [SeriesDatum(_series1, _details2.datum)], [_series1])); // dragEnd deselects even though we are over details3. verify(_hoverSelectionModel.updateSelection([], [])); verifyNoMoreInteractions(_hoverSelectionModel); @@ -304,21 +304,21 @@ void main() { _makeBehavior(SelectionModelType.info, SelectionTrigger.longPressHold, expandToDomain: true, selectClosestSeries: true); - Point startPoint = new Point(100.0, 100.0); + Point startPoint = Point(100.0, 100.0); _setupChart( forPoint: startPoint, isWithinRenderer: true, respondWithDetails: [_details1], seriesList: [_series1]); - Point updatePoint1 = new Point(200.0, 100.0); + Point updatePoint1 = Point(200.0, 100.0); _setupChart( forPoint: updatePoint1, isWithinRenderer: true, respondWithDetails: [_details2], seriesList: [_series1]); - Point endPoint = new Point(400.0, 100.0); + Point endPoint = Point(400.0, 100.0); _setupChart( forPoint: endPoint, isWithinRenderer: true, @@ -343,7 +343,7 @@ void main() { // Setup chart matches point with single domain single series. _makeBehavior(SelectionModelType.info, SelectionTrigger.hover, expandToDomain: true, selectClosestSeries: true); - Point point = new Point(100.0, 100.0); + Point point = Point(100.0, 100.0); _setupChart(forPoint: point, isWithinRenderer: true, respondWithDetails: [ _details1, _details1Series2, @@ -357,8 +357,8 @@ void main() { // Validate verify(_hoverSelectionModel.updateSelection([ - new SeriesDatum(_series1, _details1.datum), - new SeriesDatum(_series2, _details1Series2.datum) + SeriesDatum(_series1, _details1.datum), + SeriesDatum(_series2, _details1Series2.datum) ], [ _series1 ])); @@ -370,7 +370,7 @@ void main() { // Setup chart matches point with single domain single series. _makeBehavior(SelectionModelType.info, SelectionTrigger.hover, expandToDomain: false, selectClosestSeries: true); - Point point = new Point(100.0, 100.0); + Point point = Point(100.0, 100.0); _setupChart(forPoint: point, isWithinRenderer: true, respondWithDetails: [ _details1, _details1Series2, @@ -384,7 +384,7 @@ void main() { // Validate verify(_hoverSelectionModel.updateSelection( - [new SeriesDatum(_series1, _details1.datum)], [_series1])); + [SeriesDatum(_series1, _details1.datum)], [_series1])); verifyNoMoreInteractions(_hoverSelectionModel); verifyNoMoreInteractions(_clickSelectionModel); }); @@ -393,7 +393,7 @@ void main() { // Setup chart matches point with single domain single series. _makeBehavior(SelectionModelType.info, SelectionTrigger.hover, expandToDomain: true, selectClosestSeries: false); - Point point = new Point(100.0, 100.0); + Point point = Point(100.0, 100.0); _setupChart(forPoint: point, isWithinRenderer: true, respondWithDetails: [ _details1, _details1Series2, @@ -407,8 +407,8 @@ void main() { // Validate verify(_hoverSelectionModel.updateSelection([ - new SeriesDatum(_series1, _details1.datum), - new SeriesDatum(_series2, _details1Series2.datum) + SeriesDatum(_series1, _details1.datum), + SeriesDatum(_series2, _details1Series2.datum) ], [])); verifyNoMoreInteractions(_hoverSelectionModel); verifyNoMoreInteractions(_clickSelectionModel); @@ -420,7 +420,7 @@ void main() { _makeBehavior(SelectionModelType.info, SelectionTrigger.hover, expandToDomain: true, selectClosestSeries: true); - Point point = new Point(100.0, 100.0); + Point point = Point(100.0, 100.0); _setupChart(forPoint: point, isWithinRenderer: true, respondWithDetails: [ _details1, _details1Series2, @@ -434,7 +434,7 @@ void main() { // Validate verify(_hoverSelectionModel.updateSelection([ - new SeriesDatum(_series1, _details1.datum), + SeriesDatum(_series1, _details1.datum), ], [ _series1 ])); @@ -448,7 +448,7 @@ void main() { expandToDomain: true, selectClosestSeries: true, maximumDomainDistancePx: 1); - Point point = new Point(100.0, 100.0); + Point point = Point(100.0, 100.0); _setupChart(forPoint: point, isWithinRenderer: true, respondWithDetails: [ _details1, _details1Series2, @@ -473,7 +473,7 @@ void main() { SelectNearest behavior = _makeBehavior( SelectionModelType.info, SelectionTrigger.hover, expandToDomain: true, selectClosestSeries: true); - Point point = new Point(100.0, 100.0); + Point point = Point(100.0, 100.0); _setupChart( forPoint: point, isWithinRenderer: true, diff --git a/web/charts/common/test/chart/common/behavior/series_legend_behavior_test.dart b/web/charts/common/test/chart/common/behavior/series_legend_behavior_test.dart index 7f682acc1..3a5cdf200 100644 --- a/web/charts/common/test/chart/common/behavior/series_legend_behavior_test.dart +++ b/web/charts/common/test/chart/common/behavior/series_legend_behavior_test.dart @@ -86,42 +86,42 @@ class ConcreteSeriesLegend extends SeriesLegend { void main() { MutableSeries series1; - final s1D1 = new MyRow('s1d1', 11); - final s1D2 = new MyRow('s1d2', 12); - final s1D3 = new MyRow('s1d3', 13); + final s1D1 = MyRow('s1d1', 11); + final s1D2 = MyRow('s1d2', 12); + final s1D3 = MyRow('s1d3', 13); MutableSeries series2; - final s2D1 = new MyRow('s2d1', 21); - final s2D2 = new MyRow('s2d2', 22); - final s2D3 = new MyRow('s2d3', 23); + final s2D1 = MyRow('s2d1', 21); + final s2D2 = MyRow('s2d2', 22); + final s2D3 = MyRow('s2d3', 23); - final blue = new Color(r: 0x21, g: 0x96, b: 0xF3); - final red = new Color(r: 0xF4, g: 0x43, b: 0x36); + final blue = Color(r: 0x21, g: 0x96, b: 0xF3); + final red = Color(r: 0xF4, g: 0x43, b: 0x36); ConcreteChart chart; setUp(() { - series1 = new MutableSeries(new Series( + series1 = MutableSeries(Series( id: 's1', data: [s1D1, s1D2, s1D3], - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.count, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.count, colorFn: (_, __) => blue)); - series2 = new MutableSeries(new Series( + series2 = MutableSeries(Series( id: 's2', data: [s2D1, s2D2, s2D3], - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.count, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.count, colorFn: (_, __) => red)); }); test('Legend entries created on chart post process', () { final seriesList = [series1, series2]; final selectionType = SelectionModelType.info; - final legend = new SeriesLegend(selectionModelType: selectionType); + final legend = SeriesLegend(selectionModelType: selectionType); - chart = new ConcreteChart(seriesList); + chart = ConcreteChart(seriesList); legend.attachTo(chart); chart.callOnDraw(); chart.callOnPreProcess(); @@ -144,11 +144,11 @@ void main() { final seriesList = [series1, series2]; final selectionType = SelectionModelType.info; final legend = - new ConcreteSeriesLegend(selectionModelType: selectionType); + ConcreteSeriesLegend(selectionModelType: selectionType); legend.defaultHiddenSeries = ['s2']; - chart = new ConcreteChart(seriesList); + chart = ConcreteChart(seriesList); legend.attachTo(chart); chart.callOnDraw(); chart.callOnPreProcess(); @@ -164,9 +164,9 @@ void main() { final seriesList = [series1, series2]; final selectionType = SelectionModelType.info; final legend = - new ConcreteSeriesLegend(selectionModelType: selectionType); + ConcreteSeriesLegend(selectionModelType: selectionType); - chart = new ConcreteChart(seriesList); + chart = ConcreteChart(seriesList); legend.attachTo(chart); legend.hideSeries('s1'); chart.callOnDraw(); @@ -184,9 +184,9 @@ void main() { final seriesList2 = [series1, series2]; final selectionType = SelectionModelType.info; final legend = - new ConcreteSeriesLegend(selectionModelType: selectionType); + ConcreteSeriesLegend(selectionModelType: selectionType); - chart = new ConcreteChart(seriesList); + chart = ConcreteChart(seriesList); legend.attachTo(chart); // First hide the series. @@ -219,9 +219,9 @@ void main() { test('selected series legend entry is updated', () { final seriesList = [series1, series2]; final selectionType = SelectionModelType.info; - final legend = new SeriesLegend(selectionModelType: selectionType); + final legend = SeriesLegend(selectionModelType: selectionType); - chart = new ConcreteChart(seriesList); + chart = ConcreteChart(seriesList); legend.attachTo(chart); chart.callOnDraw(); chart.callOnPreProcess(); @@ -245,9 +245,9 @@ void main() { final seriesList = [series1, series2]; final selectionType = SelectionModelType.info; final legend = - new ConcreteSeriesLegend(selectionModelType: selectionType); + ConcreteSeriesLegend(selectionModelType: selectionType); - chart = new ConcreteChart(seriesList); + chart = ConcreteChart(seriesList); legend.attachTo(chart); // First hide the series. @@ -304,23 +304,22 @@ void main() { test('generated legend entries use provided formatters', () { final seriesList = [series1, series2]; final selectionType = SelectionModelType.info; - final measureFormatter = - (num value) => 'measure ${value?.toStringAsFixed(0)}'; + final measureFormatter = (value) => 'measure ${value?.toStringAsFixed(0)}'; final secondaryMeasureFormatter = - (num value) => 'secondary ${value?.toStringAsFixed(0)}'; - final legend = new SeriesLegend( + (value) => 'secondary ${value?.toStringAsFixed(0)}'; + final legend = SeriesLegend( selectionModelType: selectionType, measureFormatter: measureFormatter, secondaryMeasureFormatter: secondaryMeasureFormatter); series2.setAttr(measureAxisIdKey, 'secondaryMeasureAxisId'); - chart = new ConcreteChart(seriesList); + chart = ConcreteChart(seriesList); legend.attachTo(chart); chart.callOnDraw(); chart.callOnPreProcess(); chart.callOnPostProcess(); chart.getSelectionModel(selectionType).updateSelection( - [new SeriesDatum(series1, s1D1), new SeriesDatum(series2, s2D1)], + [SeriesDatum(series1, s1D1), SeriesDatum(series2, s2D1)], [series1, series2]); final legendEntries = legend.legendState.legendEntries; @@ -341,13 +340,13 @@ void main() { test('series legend - show measure sum when there is no selection', () { final seriesList = [series1, series2]; final selectionType = SelectionModelType.info; - final measureFormatter = (num value) => '${value?.toStringAsFixed(0)}'; - final legend = new SeriesLegend( + final measureFormatter = (value) => '${value?.toStringAsFixed(0)}'; + final legend = SeriesLegend( selectionModelType: selectionType, legendDefaultMeasure: LegendDefaultMeasure.sum, measureFormatter: measureFormatter); - chart = new ConcreteChart(seriesList); + chart = ConcreteChart(seriesList); legend.attachTo(chart); chart.callOnDraw(); chart.callOnPreProcess(); @@ -373,13 +372,13 @@ void main() { test('series legend - show measure average when there is no selection', () { final seriesList = [series1, series2]; final selectionType = SelectionModelType.info; - final measureFormatter = (num value) => '${value?.toStringAsFixed(0)}'; - final legend = new SeriesLegend( + final measureFormatter = (value) => '${value?.toStringAsFixed(0)}'; + final legend = SeriesLegend( selectionModelType: selectionType, legendDefaultMeasure: LegendDefaultMeasure.average, measureFormatter: measureFormatter); - chart = new ConcreteChart(seriesList); + chart = ConcreteChart(seriesList); legend.attachTo(chart); chart.callOnDraw(); chart.callOnPreProcess(); @@ -405,13 +404,13 @@ void main() { test('series legend - show first measure when there is no selection', () { final seriesList = [series1, series2]; final selectionType = SelectionModelType.info; - final measureFormatter = (num value) => '${value?.toStringAsFixed(0)}'; - final legend = new SeriesLegend( + final measureFormatter = (value) => '${value?.toStringAsFixed(0)}'; + final legend = SeriesLegend( selectionModelType: selectionType, legendDefaultMeasure: LegendDefaultMeasure.firstValue, measureFormatter: measureFormatter); - chart = new ConcreteChart(seriesList); + chart = ConcreteChart(seriesList); legend.attachTo(chart); chart.callOnDraw(); chart.callOnPreProcess(); @@ -437,13 +436,13 @@ void main() { test('series legend - show last measure when there is no selection', () { final seriesList = [series1, series2]; final selectionType = SelectionModelType.info; - final measureFormatter = (num value) => '${value?.toStringAsFixed(0)}'; - final legend = new SeriesLegend( + final measureFormatter = (value) => '${value?.toStringAsFixed(0)}'; + final legend = SeriesLegend( selectionModelType: selectionType, legendDefaultMeasure: LegendDefaultMeasure.lastValue, measureFormatter: measureFormatter); - chart = new ConcreteChart(seriesList); + chart = ConcreteChart(seriesList); legend.attachTo(chart); chart.callOnDraw(); chart.callOnPreProcess(); diff --git a/web/charts/common/test/chart/common/behavior/slider/slider_test.dart b/web/charts/common/test/chart/common/behavior/slider/slider_test.dart index ea75691c1..d61eb5b87 100644 --- a/web/charts/common/test/chart/common/behavior/slider/slider_test.dart +++ b/web/charts/common/test/chart/common/behavior/slider/slider_test.dart @@ -88,21 +88,21 @@ void main() { SliderListenerCallback onChangeCallback, bool snapToDatum = false, SliderHandlePosition handlePosition = SliderHandlePosition.middle}) { - Slider behavior = new Slider( + Slider behavior = Slider( eventTrigger: eventTrigger, initialDomainValue: initialDomainValue, onChangeCallback: onChangeCallback, snapToDatum: snapToDatum, - style: new SliderStyle( + style: SliderStyle( handleOffset: handleOffset, handlePosition: handlePosition)); behavior.attachTo(_chart); - tester = new SliderTester(behavior); + tester = SliderTester(behavior); // Mock out chart layout by assigning bounds to the layout view. tester.layout( - new Rectangle(0, 0, 200, 200), new Rectangle(0, 0, 200, 200)); + Rectangle(0, 0, 200, 200), Rectangle(0, 0, 200, 200)); return behavior; } @@ -123,32 +123,32 @@ void main() { } setUp(() { - _chart = new MockChart(); + _chart = MockChart(); - _domainAxis = new MockDomainAxis(); + _domainAxis = MockDomainAxis(); - _series1 = new MutableSeries(new Series( + _series1 = MutableSeries(Series( id: 'mySeries1', data: [], domainFn: (_, __) {}, measureFn: (_, __) => 0)); - _details1 = new DatumDetails( - chartPosition: new Point(20.0, 80.0), + _details1 = DatumDetails( + chartPosition: Point(20.0, 80.0), datum: 'myDatum1', domain: 1.0, series: _series1, domainDistance: 10.0, measureDistance: 20.0); - _details2 = new DatumDetails( - chartPosition: new Point(40.0, 80.0), + _details2 = DatumDetails( + chartPosition: Point(40.0, 80.0), datum: 'myDatum2', domain: 2.0, series: _series1, domainDistance: 10.0, measureDistance: 20.0); - _details3 = new DatumDetails( - chartPosition: new Point(90.0, 80.0), + _details3 = DatumDetails( + chartPosition: Point(90.0, 80.0), datum: 'myDatum3', domain: 4.5, series: _series1, @@ -160,28 +160,28 @@ void main() { test('can listen to tap and drag', () { // Setup chart matches point with single domain single series. _makeBehavior(SelectionTrigger.tapAndDrag, - handleOffset: new Point(0.0, 0.0), - handleSize: new Rectangle(0, 0, 10, 20)); + handleOffset: Point(0.0, 0.0), + handleSize: Rectangle(0, 0, 10, 20)); - Point startPoint = new Point(100.0, 100.0); + Point startPoint = Point(100.0, 100.0); _setupChart( forPoint: startPoint, isWithinRenderer: true, respondWithDetails: [_details1]); - Point updatePoint1 = new Point(50.0, 100.0); + Point updatePoint1 = Point(50.0, 100.0); _setupChart( forPoint: updatePoint1, isWithinRenderer: true, respondWithDetails: [_details2]); - Point updatePoint2 = new Point(100.0, 100.0); + Point updatePoint2 = Point(100.0, 100.0); _setupChart( forPoint: updatePoint2, isWithinRenderer: true, respondWithDetails: [_details3]); - Point endPoint = new Point(120.0, 100.0); + Point endPoint = Point(120.0, 100.0); _setupChart( forPoint: endPoint, isWithinRenderer: true, @@ -197,60 +197,60 @@ void main() { _chart.lastGestureListener.onDragStart(startPoint); expect(tester.domainCenterPoint, equals(startPoint)); expect(tester.domainValue, equals(5.0)); - expect(tester.handleBounds, equals(new Rectangle(95, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(95, 90, 10, 20))); // Drag to first update point. _chart.lastGestureListener.onDragUpdate(updatePoint1, 1.0); expect(tester.domainCenterPoint, equals(updatePoint1)); expect(tester.domainValue, equals(2.5)); - expect(tester.handleBounds, equals(new Rectangle(45, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(45, 90, 10, 20))); // Drag to first update point. _chart.lastGestureListener.onDragUpdate(updatePoint2, 1.0); expect(tester.domainCenterPoint, equals(updatePoint2)); expect(tester.domainValue, equals(5.0)); - expect(tester.handleBounds, equals(new Rectangle(95, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(95, 90, 10, 20))); // Drag the point to the end point. _chart.lastGestureListener.onDragUpdate(endPoint, 1.0); expect(tester.domainCenterPoint, equals(endPoint)); expect(tester.domainValue, equals(6.0)); - expect(tester.handleBounds, equals(new Rectangle(115, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(115, 90, 10, 20))); // Simulate onDragEnd. _chart.lastGestureListener.onDragEnd(endPoint, 1.0, 1.0); expect(tester.domainCenterPoint, equals(endPoint)); expect(tester.domainValue, equals(6.0)); - expect(tester.handleBounds, equals(new Rectangle(115, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(115, 90, 10, 20))); }); test('slider handle can render at top', () { // Setup chart matches point with single domain single series. _makeBehavior(SelectionTrigger.tapAndDrag, - handleOffset: new Point(0.0, 0.0), - handleSize: new Rectangle(0, 0, 10, 20), + handleOffset: Point(0.0, 0.0), + handleSize: Rectangle(0, 0, 10, 20), handlePosition: SliderHandlePosition.top); - Point startPoint = new Point(100.0, 0.0); + Point startPoint = Point(100.0, 0.0); _setupChart( forPoint: startPoint, isWithinRenderer: true, respondWithDetails: [_details1]); - Point updatePoint1 = new Point(50.0, 0.0); + Point updatePoint1 = Point(50.0, 0.0); _setupChart( forPoint: updatePoint1, isWithinRenderer: true, respondWithDetails: [_details2]); - Point updatePoint2 = new Point(100.0, 0.0); + Point updatePoint2 = Point(100.0, 0.0); _setupChart( forPoint: updatePoint2, isWithinRenderer: true, respondWithDetails: [_details3]); - Point endPoint = new Point(120.0, 0.0); + Point endPoint = Point(120.0, 0.0); _setupChart( forPoint: endPoint, isWithinRenderer: true, @@ -265,55 +265,55 @@ void main() { // Start the drag. _chart.lastGestureListener.onDragStart(startPoint); expect(tester.domainValue, equals(5.0)); - expect(tester.handleBounds, equals(new Rectangle(95, -10, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(95, -10, 10, 20))); // Drag to first update point. _chart.lastGestureListener.onDragUpdate(updatePoint1, 1.0); expect(tester.domainValue, equals(2.5)); - expect(tester.handleBounds, equals(new Rectangle(45, -10, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(45, -10, 10, 20))); // Drag to first update point. _chart.lastGestureListener.onDragUpdate(updatePoint2, 1.0); expect(tester.domainValue, equals(5.0)); - expect(tester.handleBounds, equals(new Rectangle(95, -10, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(95, -10, 10, 20))); // Drag the point to the end point. _chart.lastGestureListener.onDragUpdate(endPoint, 1.0); expect(tester.domainValue, equals(6.0)); - expect(tester.handleBounds, equals(new Rectangle(115, -10, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(115, -10, 10, 20))); // Simulate onDragEnd. _chart.lastGestureListener.onDragEnd(endPoint, 1.0, 1.0); expect(tester.domainValue, equals(6.0)); - expect(tester.handleBounds, equals(new Rectangle(115, -10, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(115, -10, 10, 20))); }); test('can listen to press hold', () { // Setup chart matches point with single domain single series. _makeBehavior(SelectionTrigger.pressHold, - handleOffset: new Point(0.0, 0.0), - handleSize: new Rectangle(0, 0, 10, 20)); + handleOffset: Point(0.0, 0.0), + handleSize: Rectangle(0, 0, 10, 20)); - Point startPoint = new Point(100.0, 100.0); + Point startPoint = Point(100.0, 100.0); _setupChart( forPoint: startPoint, isWithinRenderer: true, respondWithDetails: [_details1]); - Point updatePoint1 = new Point(50.0, 100.0); + Point updatePoint1 = Point(50.0, 100.0); _setupChart( forPoint: updatePoint1, isWithinRenderer: true, respondWithDetails: [_details2]); - Point updatePoint2 = new Point(100.0, 100.0); + Point updatePoint2 = Point(100.0, 100.0); _setupChart( forPoint: updatePoint2, isWithinRenderer: true, respondWithDetails: [_details3]); - Point endPoint = new Point(120.0, 100.0); + Point endPoint = Point(120.0, 100.0); _setupChart( forPoint: endPoint, isWithinRenderer: true, @@ -329,59 +329,59 @@ void main() { _chart.lastGestureListener.onDragStart(startPoint); expect(tester.domainCenterPoint, equals(startPoint)); expect(tester.domainValue, equals(5.0)); - expect(tester.handleBounds, equals(new Rectangle(95, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(95, 90, 10, 20))); // Drag to first update point. _chart.lastGestureListener.onDragUpdate(updatePoint1, 1.0); expect(tester.domainCenterPoint, equals(updatePoint1)); expect(tester.domainValue, equals(2.5)); - expect(tester.handleBounds, equals(new Rectangle(45, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(45, 90, 10, 20))); // Drag to first update point. _chart.lastGestureListener.onDragUpdate(updatePoint2, 1.0); expect(tester.domainCenterPoint, equals(updatePoint2)); expect(tester.domainValue, equals(5.0)); - expect(tester.handleBounds, equals(new Rectangle(95, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(95, 90, 10, 20))); // Drag the point to the end point. _chart.lastGestureListener.onDragUpdate(endPoint, 1.0); expect(tester.domainCenterPoint, equals(endPoint)); expect(tester.domainValue, equals(6.0)); - expect(tester.handleBounds, equals(new Rectangle(115, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(115, 90, 10, 20))); // Simulate onDragEnd. _chart.lastGestureListener.onDragEnd(endPoint, 1.0, 1.0); expect(tester.domainCenterPoint, equals(endPoint)); expect(tester.domainValue, equals(6.0)); - expect(tester.handleBounds, equals(new Rectangle(115, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(115, 90, 10, 20))); }); test('can listen to long press hold', () { // Setup chart matches point with single domain single series. _makeBehavior(SelectionTrigger.longPressHold, - handleOffset: new Point(0.0, 0.0), - handleSize: new Rectangle(0, 0, 10, 20)); + handleOffset: Point(0.0, 0.0), + handleSize: Rectangle(0, 0, 10, 20)); - Point startPoint = new Point(100.0, 100.0); + Point startPoint = Point(100.0, 100.0); _setupChart( forPoint: startPoint, isWithinRenderer: true, respondWithDetails: [_details1]); - Point updatePoint1 = new Point(50.0, 100.0); + Point updatePoint1 = Point(50.0, 100.0); _setupChart( forPoint: updatePoint1, isWithinRenderer: true, respondWithDetails: [_details2]); - Point updatePoint2 = new Point(100.0, 100.0); + Point updatePoint2 = Point(100.0, 100.0); _setupChart( forPoint: updatePoint2, isWithinRenderer: true, respondWithDetails: [_details3]); - Point endPoint = new Point(120.0, 100.0); + Point endPoint = Point(120.0, 100.0); _setupChart( forPoint: endPoint, isWithinRenderer: true, @@ -397,59 +397,59 @@ void main() { _chart.lastGestureListener.onDragStart(startPoint); expect(tester.domainCenterPoint, equals(startPoint)); expect(tester.domainValue, equals(5.0)); - expect(tester.handleBounds, equals(new Rectangle(95, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(95, 90, 10, 20))); // Drag to first update point. _chart.lastGestureListener.onDragUpdate(updatePoint1, 1.0); expect(tester.domainCenterPoint, equals(updatePoint1)); expect(tester.domainValue, equals(2.5)); - expect(tester.handleBounds, equals(new Rectangle(45, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(45, 90, 10, 20))); // Drag to first update point. _chart.lastGestureListener.onDragUpdate(updatePoint2, 1.0); expect(tester.domainCenterPoint, equals(updatePoint2)); expect(tester.domainValue, equals(5.0)); - expect(tester.handleBounds, equals(new Rectangle(95, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(95, 90, 10, 20))); // Drag the point to the end point. _chart.lastGestureListener.onDragUpdate(endPoint, 1.0); expect(tester.domainCenterPoint, equals(endPoint)); expect(tester.domainValue, equals(6.0)); - expect(tester.handleBounds, equals(new Rectangle(115, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(115, 90, 10, 20))); // Simulate onDragEnd. _chart.lastGestureListener.onDragEnd(endPoint, 1.0, 1.0); expect(tester.domainCenterPoint, equals(endPoint)); expect(tester.domainValue, equals(6.0)); - expect(tester.handleBounds, equals(new Rectangle(115, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(115, 90, 10, 20))); }); test('no position update before long press', () { // Setup chart matches point with single domain single series. _makeBehavior(SelectionTrigger.longPressHold, - handleOffset: new Point(0.0, 0.0), - handleSize: new Rectangle(0, 0, 10, 20)); + handleOffset: Point(0.0, 0.0), + handleSize: Rectangle(0, 0, 10, 20)); - Point startPoint = new Point(100.0, 100.0); + Point startPoint = Point(100.0, 100.0); _setupChart( forPoint: startPoint, isWithinRenderer: true, respondWithDetails: [_details1]); - Point updatePoint1 = new Point(50.0, 100.0); + Point updatePoint1 = Point(50.0, 100.0); _setupChart( forPoint: updatePoint1, isWithinRenderer: true, respondWithDetails: [_details2]); - Point updatePoint2 = new Point(100.0, 100.0); + Point updatePoint2 = Point(100.0, 100.0); _setupChart( forPoint: updatePoint2, isWithinRenderer: true, respondWithDetails: [_details3]); - Point endPoint = new Point(120.0, 100.0); + Point endPoint = Point(120.0, 100.0); _setupChart( forPoint: endPoint, isWithinRenderer: true, @@ -464,48 +464,48 @@ void main() { _chart.lastGestureListener.onDragStart(startPoint); expect(tester.domainCenterPoint, equals(startPoint)); expect(tester.domainValue, equals(5.0)); - expect(tester.handleBounds, equals(new Rectangle(95, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(95, 90, 10, 20))); // Drag the point to the end point. _chart.lastGestureListener.onDragUpdate(endPoint, 1.0); expect(tester.domainCenterPoint, equals(startPoint)); expect(tester.domainValue, equals(5.0)); - expect(tester.handleBounds, equals(new Rectangle(95, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(95, 90, 10, 20))); // Simulate onDragEnd. _chart.lastGestureListener.onDragEnd(endPoint, 1.0, 1.0); expect(tester.domainCenterPoint, equals(startPoint)); expect(tester.domainValue, equals(5.0)); - expect(tester.handleBounds, equals(new Rectangle(95, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(95, 90, 10, 20))); }); test('can snap to datum', () { // Setup chart matches point with single domain single series. _makeBehavior(SelectionTrigger.tapAndDrag, - handleOffset: new Point(0.0, 0.0), - handleSize: new Rectangle(0, 0, 10, 20), + handleOffset: Point(0.0, 0.0), + handleSize: Rectangle(0, 0, 10, 20), snapToDatum: true); - Point startPoint = new Point(100.0, 100.0); + Point startPoint = Point(100.0, 100.0); _setupChart( forPoint: startPoint, isWithinRenderer: true, respondWithDetails: [_details1]); - Point updatePoint1 = new Point(50.0, 100.0); + Point updatePoint1 = Point(50.0, 100.0); _setupChart( forPoint: updatePoint1, isWithinRenderer: true, respondWithDetails: [_details2]); - Point updatePoint2 = new Point(100.0, 100.0); + Point updatePoint2 = Point(100.0, 100.0); _setupChart( forPoint: updatePoint2, isWithinRenderer: true, respondWithDetails: [_details3]); - Point endPoint = new Point(120.0, 100.0); + Point endPoint = Point(120.0, 100.0); _setupChart( forPoint: endPoint, isWithinRenderer: true, @@ -521,33 +521,33 @@ void main() { _chart.lastGestureListener.onDragStart(startPoint); expect(tester.domainCenterPoint, equals(startPoint)); expect(tester.domainValue, equals(5.0)); - expect(tester.handleBounds, equals(new Rectangle(95, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(95, 90, 10, 20))); // Drag to first update point. The slider should follow the mouse during // each drag update. _chart.lastGestureListener.onDragUpdate(updatePoint1, 1.0); expect(tester.domainCenterPoint, equals(updatePoint1)); expect(tester.domainValue, equals(2.5)); - expect(tester.handleBounds, equals(new Rectangle(45, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(45, 90, 10, 20))); // Drag to first update point. _chart.lastGestureListener.onDragUpdate(updatePoint2, 1.0); expect(tester.domainCenterPoint, equals(updatePoint2)); expect(tester.domainValue, equals(5.0)); - expect(tester.handleBounds, equals(new Rectangle(95, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(95, 90, 10, 20))); // Drag the point to the end point. _chart.lastGestureListener.onDragUpdate(endPoint, 1.0); expect(tester.domainCenterPoint, equals(endPoint)); expect(tester.domainValue, equals(6.0)); - expect(tester.handleBounds, equals(new Rectangle(115, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(115, 90, 10, 20))); // Simulate onDragEnd. This is where we expect the snap to occur. _chart.lastGestureListener.onDragEnd(endPoint, 1.0, 1.0); - expect(tester.domainCenterPoint, equals(new Point(90, 100))); + expect(tester.domainCenterPoint, equals(Point(90, 100))); expect(tester.domainValue, equals(4.5)); - expect(tester.handleBounds, equals(new Rectangle(85, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(85, 90, 10, 20))); }); }); @@ -555,8 +555,8 @@ void main() { test('can set domain position', () { // Setup chart matches point with single domain single series. final slider = _makeBehavior(SelectionTrigger.tapAndDrag, - handleOffset: new Point(0.0, 0.0), - handleSize: new Rectangle(0, 0, 10, 20), + handleOffset: Point(0.0, 0.0), + handleSize: Rectangle(0, 0, 10, 20), initialDomainValue: 1.0); _setupChart(); @@ -565,27 +565,27 @@ void main() { _chart.lastLifecycleListener.onAxisConfigured(); // Verify initial position. - expect(tester.domainCenterPoint, equals(new Point(20.0, 100.0))); + expect(tester.domainCenterPoint, equals(Point(20.0, 100.0))); expect(tester.domainValue, equals(1.0)); - expect(tester.handleBounds, equals(new Rectangle(15, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(15, 90, 10, 20))); // Move to first domain value. slider.moveSliderToDomain(2); - expect(tester.domainCenterPoint, equals(new Point(40.0, 100.0))); + expect(tester.domainCenterPoint, equals(Point(40.0, 100.0))); expect(tester.domainValue, equals(2.0)); - expect(tester.handleBounds, equals(new Rectangle(35, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(35, 90, 10, 20))); // Move to second domain value. slider.moveSliderToDomain(5); - expect(tester.domainCenterPoint, equals(new Point(100.0, 100.0))); + expect(tester.domainCenterPoint, equals(Point(100.0, 100.0))); expect(tester.domainValue, equals(5.0)); - expect(tester.handleBounds, equals(new Rectangle(95, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(95, 90, 10, 20))); // Move to second domain value. slider.moveSliderToDomain(7.5); - expect(tester.domainCenterPoint, equals(new Point(150.0, 100.0))); + expect(tester.domainCenterPoint, equals(Point(150.0, 100.0))); expect(tester.domainValue, equals(7.5)); - expect(tester.handleBounds, equals(new Rectangle(145, 90, 10, 20))); + expect(tester.handleBounds, equals(Rectangle(145, 90, 10, 20))); }); }); @@ -594,7 +594,7 @@ void main() { // Setup Slider behavior = _makeBehavior(SelectionTrigger.tapAndDrag); - Point point = new Point(100.0, 100.0); + Point point = Point(100.0, 100.0); _setupChart( forPoint: point, isWithinRenderer: true, diff --git a/web/charts/common/test/chart/common/gesture_listener_test.dart b/web/charts/common/test/chart/common/gesture_listener_test.dart index 6b1880a53..14427a629 100644 --- a/web/charts/common/test/chart/common/gesture_listener_test.dart +++ b/web/charts/common/test/chart/common/gesture_listener_test.dart @@ -22,15 +22,15 @@ void main() { ProxyGestureListener _proxy; Point _point; setUp(() { - _proxy = new ProxyGestureListener(); - _point = new Point(10.0, 12.0); + _proxy = ProxyGestureListener(); + _point = Point(10.0, 12.0); }); group('Tap gesture', () { test('notified for simple case', () { // Setup - final tapListener = new MockListener(consumeEvent: true); - _proxy.add(new GestureListener(onTap: tapListener.callback)); + final tapListener = MockListener(consumeEvent: true); + _proxy.add(GestureListener(onTap: tapListener.callback)); // Act _proxy.onTapTest(_point); @@ -42,8 +42,8 @@ void main() { test('notifies new listener for second event', () { // Setup - final tapListener1 = new MockListener(); - _proxy.add(new GestureListener( + final tapListener1 = MockListener(); + _proxy.add(GestureListener( onTap: tapListener1.callback, )); @@ -55,8 +55,8 @@ void main() { tapListener1.verify(arg1: _point); // Setup Another - final tapListener2 = new MockListener(); - _proxy.add(new GestureListener( + final tapListener2 = MockListener(); + _proxy.add(GestureListener( onTap: tapListener2.callback, )); @@ -71,18 +71,18 @@ void main() { test('notifies claiming listener registered first', () { // Setup - final claimingTapDownListener = new MockListener(consumeEvent: true); - final claimingTapListener = new MockListener(consumeEvent: true); + final claimingTapDownListener = MockListener(consumeEvent: true); + final claimingTapListener = MockListener(consumeEvent: true); - _proxy.add(new GestureListener( + _proxy.add(GestureListener( onTapTest: claimingTapDownListener.callback, onTap: claimingTapListener.callback, )); - final nonclaimingTapDownListener = new MockListener(consumeEvent: false); - final nonclaimingTapListener = new MockListener(consumeEvent: false); + final nonclaimingTapDownListener = MockListener(consumeEvent: false); + final nonclaimingTapListener = MockListener(consumeEvent: false); - _proxy.add(new GestureListener( + _proxy.add(GestureListener( onTapTest: nonclaimingTapDownListener.callback, onTap: nonclaimingTapListener.callback, )); @@ -100,18 +100,18 @@ void main() { test('notifies claiming listener registered second', () { // Setup - final nonclaimingTapDownListener = new MockListener(consumeEvent: false); - final nonclaimingTapListener = new MockListener(consumeEvent: false); + final nonclaimingTapDownListener = MockListener(consumeEvent: false); + final nonclaimingTapListener = MockListener(consumeEvent: false); - _proxy.add(new GestureListener( + _proxy.add(GestureListener( onTapTest: nonclaimingTapDownListener.callback, onTap: nonclaimingTapListener.callback, )); - final claimingTapDownListener = new MockListener(consumeEvent: true); - final claimingTapListener = new MockListener(consumeEvent: true); + final claimingTapDownListener = MockListener(consumeEvent: true); + final claimingTapListener = MockListener(consumeEvent: true); - _proxy.add(new GestureListener( + _proxy.add(GestureListener( onTapTest: claimingTapDownListener.callback, onTap: claimingTapListener.callback, )); @@ -131,21 +131,21 @@ void main() { group('LongPress gesture', () { test('notifies with tap', () { // Setup - final tapDown = new MockListener(consumeEvent: true); - final tap = new MockListener(consumeEvent: true); - final tapCancel = new MockListener(consumeEvent: true); + final tapDown = MockListener(consumeEvent: true); + final tap = MockListener(consumeEvent: true); + final tapCancel = MockListener(consumeEvent: true); - _proxy.add(new GestureListener( + _proxy.add(GestureListener( onTapTest: tapDown.callback, onTap: tap.callback, onTapCancel: tapCancel.callback, )); - final pressTapDown = new MockListener(consumeEvent: true); - final longPress = new MockListener(consumeEvent: true); - final pressCancel = new MockListener(consumeEvent: true); + final pressTapDown = MockListener(consumeEvent: true); + final longPress = MockListener(consumeEvent: true); + final pressCancel = MockListener(consumeEvent: true); - _proxy.add(new GestureListener( + _proxy.add(GestureListener( onTapTest: pressTapDown.callback, onLongPress: longPress.callback, onTapCancel: pressCancel.callback, @@ -170,23 +170,23 @@ void main() { group('Drag gesture', () { test('wins over tap', () { // Setup - final tapDown = new MockListener(consumeEvent: true); - final tap = new MockListener(consumeEvent: true); - final tapCancel = new MockListener(consumeEvent: true); + final tapDown = MockListener(consumeEvent: true); + final tap = MockListener(consumeEvent: true); + final tapCancel = MockListener(consumeEvent: true); - _proxy.add(new GestureListener( + _proxy.add(GestureListener( onTapTest: tapDown.callback, onTap: tap.callback, onTapCancel: tapCancel.callback, )); - final dragTapDown = new MockListener(consumeEvent: true); - final dragStart = new MockListener(consumeEvent: true); - final dragUpdate = new MockListener(consumeEvent: true); - final dragEnd = new MockListener(consumeEvent: true); - final dragCancel = new MockListener(consumeEvent: true); + final dragTapDown = MockListener(consumeEvent: true); + final dragStart = MockListener(consumeEvent: true); + final dragUpdate = MockListener(consumeEvent: true); + final dragEnd = MockListener(consumeEvent: true); + final dragCancel = MockListener(consumeEvent: true); - _proxy.add(new GestureListener( + _proxy.add(GestureListener( onTapTest: dragTapDown.callback, onDragStart: dragStart.callback, onDragUpdate: dragUpdate.callback, diff --git a/web/charts/common/test/chart/common/selection_model/selection_model_test.dart b/web/charts/common/test/chart/common/selection_model/selection_model_test.dart index 641ffa6a4..c17f4429e 100644 --- a/web/charts/common/test/chart/common/selection_model/selection_model_test.dart +++ b/web/charts/common/test/chart/common/selection_model/selection_model_test.dart @@ -35,31 +35,31 @@ void main() { SeriesDatum _otherDatumOtherSeriesPair; setUp(() { - _selectionModel = new MutableSelectionModel(); + _selectionModel = MutableSelectionModel(); - _closestDatumClosestSeries = new MyDatum('cDcS'); - _otherDatumClosestSeries = new MyDatum('oDcS'); - _closestSeries = new MutableSeries(new Series( + _closestDatumClosestSeries = MyDatum('cDcS'); + _otherDatumClosestSeries = MyDatum('oDcS'); + _closestSeries = MutableSeries(Series( id: 'closest', data: [_closestDatumClosestSeries, _otherDatumClosestSeries], domainFn: (dynamic d, _) => d.id, measureFn: (_, __) => 0)); _closestDatumClosestSeriesPair = - new SeriesDatum(_closestSeries, _closestDatumClosestSeries); + SeriesDatum(_closestSeries, _closestDatumClosestSeries); _otherDatumClosestSeriesPair = - new SeriesDatum(_closestSeries, _otherDatumClosestSeries); + SeriesDatum(_closestSeries, _otherDatumClosestSeries); - _closestDatumOtherSeries = new MyDatum('cDoS'); - _otherDatumOtherSeries = new MyDatum('oDoS'); - _otherSeries = new MutableSeries(new Series( + _closestDatumOtherSeries = MyDatum('cDoS'); + _otherDatumOtherSeries = MyDatum('oDoS'); + _otherSeries = MutableSeries(Series( id: 'other', data: [_closestDatumOtherSeries, _otherDatumOtherSeries], domainFn: (dynamic d, _) => d.id, measureFn: (_, __) => 0)); _closestDatumOtherSeriesPair = - new SeriesDatum(_otherSeries, _closestDatumOtherSeries); + SeriesDatum(_otherSeries, _closestDatumOtherSeries); _otherDatumOtherSeriesPair = - new SeriesDatum(_otherSeries, _otherDatumOtherSeries); + SeriesDatum(_otherSeries, _otherDatumOtherSeries); }); group('SelectionModel persists values', () { @@ -71,8 +71,8 @@ void main() { test('all datum are selected but only the first Series is', () { // Select the 'closest' datum for each Series. _selectionModel.updateSelection([ - new SeriesDatum(_closestSeries, _closestDatumClosestSeries), - new SeriesDatum(_otherSeries, _closestDatumOtherSeries), + SeriesDatum(_closestSeries, _closestDatumClosestSeries), + SeriesDatum(_otherSeries, _closestDatumOtherSeries), ], [ _closestSeries ]); @@ -98,15 +98,15 @@ void main() { test('selection can change', () { // Select the 'closest' datum for each Series. _selectionModel.updateSelection([ - new SeriesDatum(_closestSeries, _closestDatumClosestSeries), - new SeriesDatum(_otherSeries, _closestDatumOtherSeries), + SeriesDatum(_closestSeries, _closestDatumClosestSeries), + SeriesDatum(_otherSeries, _closestDatumOtherSeries), ], [ _closestSeries ]); // Change selection to just the other datum on the other series. _selectionModel.updateSelection([ - new SeriesDatum(_otherSeries, _otherDatumOtherSeries), + SeriesDatum(_otherSeries, _otherDatumOtherSeries), ], [ _otherSeries ]); @@ -137,8 +137,8 @@ void main() { // Try to the 'closest' datum for each Series. _selectionModel.updateSelection([ - new SeriesDatum(_closestSeries, _closestDatumClosestSeries), - new SeriesDatum(_otherSeries, _closestDatumOtherSeries), + SeriesDatum(_closestSeries, _closestDatumClosestSeries), + SeriesDatum(_otherSeries, _closestDatumOtherSeries), ], [ _closestSeries ]); @@ -151,8 +151,8 @@ void main() { // Try to the 'closest' datum for each Series. _selectionModel.updateSelection([ - new SeriesDatum(_closestSeries, _closestDatumClosestSeries), - new SeriesDatum(_otherSeries, _closestDatumOtherSeries), + SeriesDatum(_closestSeries, _closestDatumClosestSeries), + SeriesDatum(_otherSeries, _closestDatumOtherSeries), ], [ _closestSeries ]); @@ -165,7 +165,7 @@ void main() { // Attempt to change selection _selectionModel.updateSelection([ - new SeriesDatum(_otherSeries, _otherDatumOtherSeries), + SeriesDatum(_otherSeries, _otherDatumOtherSeries), ], [ _otherSeries ]); @@ -186,14 +186,13 @@ void main() { test('listener triggered for change', () { SelectionModel triggeredModel; // Listen - _selectionModel - .addSelectionChangedListener((SelectionModel model) { + _selectionModel.addSelectionChangedListener((model) { triggeredModel = model; }); // Set the selection to closest datum. _selectionModel.updateSelection([ - new SeriesDatum(_closestSeries, _closestDatumClosestSeries), + SeriesDatum(_closestSeries, _closestDatumClosestSeries), ], [ _closestSeries ]); @@ -206,20 +205,19 @@ void main() { SelectionModel triggeredModel; // Set the selection to closest datum. _selectionModel.updateSelection([ - new SeriesDatum(_closestSeries, _closestDatumClosestSeries), + SeriesDatum(_closestSeries, _closestDatumClosestSeries), ], [ _closestSeries ]); // Listen - _selectionModel - .addSelectionChangedListener((SelectionModel model) { + _selectionModel.addSelectionChangedListener((model) { triggeredModel = model; }); // Try to update the model with the same value. _selectionModel.updateSelection([ - new SeriesDatum(_closestSeries, _closestDatumClosestSeries), + SeriesDatum(_closestSeries, _closestDatumClosestSeries), ], [ _closestSeries ]); @@ -231,7 +229,7 @@ void main() { test('removed listener not triggered for change', () { SelectionModel triggeredModel; - Function cb = (SelectionModel model) { + Function cb = (model) { triggeredModel = model; }; @@ -243,7 +241,7 @@ void main() { // Set the selection to closest datum. _selectionModel.updateSelection([ - new SeriesDatum(_closestSeries, _closestDatumClosestSeries), + SeriesDatum(_closestSeries, _closestDatumClosestSeries), ], [ _closestSeries ]); @@ -257,14 +255,13 @@ void main() { test('listener triggered for change', () { SelectionModel triggeredModel; // Listen - _selectionModel - .addSelectionUpdatedListener((SelectionModel model) { + _selectionModel.addSelectionUpdatedListener((model) { triggeredModel = model; }); // Set the selection to closest datum. _selectionModel.updateSelection([ - new SeriesDatum(_closestSeries, _closestDatumClosestSeries), + SeriesDatum(_closestSeries, _closestDatumClosestSeries), ], [ _closestSeries ]); @@ -277,20 +274,19 @@ void main() { SelectionModel triggeredModel; // Set the selection to closest datum. _selectionModel.updateSelection([ - new SeriesDatum(_closestSeries, _closestDatumClosestSeries), + SeriesDatum(_closestSeries, _closestDatumClosestSeries), ], [ _closestSeries ]); // Listen - _selectionModel - .addSelectionUpdatedListener((SelectionModel model) { + _selectionModel.addSelectionUpdatedListener((model) { triggeredModel = model; }); // Try to update the model with the same value. _selectionModel.updateSelection([ - new SeriesDatum(_closestSeries, _closestDatumClosestSeries), + SeriesDatum(_closestSeries, _closestDatumClosestSeries), ], [ _closestSeries ]); @@ -302,7 +298,7 @@ void main() { test('removed listener not triggered for change', () { SelectionModel triggeredModel; - Function cb = (SelectionModel model) { + Function cb = (model) { triggeredModel = model; }; @@ -314,7 +310,7 @@ void main() { // Set the selection to closest datum. _selectionModel.updateSelection([ - new SeriesDatum(_closestSeries, _closestDatumClosestSeries), + SeriesDatum(_closestSeries, _closestDatumClosestSeries), ], [ _closestSeries ]); diff --git a/web/charts/common/test/chart/line/line_renderer_test.dart b/web/charts/common/test/chart/line/line_renderer_test.dart index e76613ae9..cc19c9ff5 100644 --- a/web/charts/common/test/chart/line/line_renderer_test.dart +++ b/web/charts/common/test/chart/line/line_renderer_test.dart @@ -56,47 +56,43 @@ void main() { setUp(() { myFakeDesktopData = [ - new MyRow( - 'MyCampaign1', 1, 5, MaterialPalette.blue.shadeDefault, null, 2.0), - new MyRow( + MyRow('MyCampaign1', 1, 5, MaterialPalette.blue.shadeDefault, null, 2.0), + MyRow( 'MyCampaign2', 2, 25, MaterialPalette.green.shadeDefault, null, 2.0), - new MyRow( - 'MyCampaign3', 3, 100, MaterialPalette.red.shadeDefault, null, 2.0), - new MyRow('MyOtherCampaign', 4, 75, MaterialPalette.red.shadeDefault, - null, 2.0), + MyRow('MyCampaign3', 3, 100, MaterialPalette.red.shadeDefault, null, 2.0), + MyRow('MyOtherCampaign', 4, 75, MaterialPalette.red.shadeDefault, null, + 2.0), ]; myFakeTabletData = [ - new MyRow( + MyRow( 'MyCampaign1', 1, 5, MaterialPalette.blue.shadeDefault, [2, 2], 2.0), - new MyRow( + MyRow( 'MyCampaign2', 2, 25, MaterialPalette.blue.shadeDefault, [3, 3], 2.0), - new MyRow('MyCampaign3', 3, 100, MaterialPalette.blue.shadeDefault, - [4, 4], 2.0), - new MyRow('MyOtherCampaign', 4, 75, MaterialPalette.blue.shadeDefault, - [4, 4], 2.0), + MyRow('MyCampaign3', 3, 100, MaterialPalette.blue.shadeDefault, [4, 4], + 2.0), + MyRow('MyOtherCampaign', 4, 75, MaterialPalette.blue.shadeDefault, [4, 4], + 2.0), ]; myFakeMobileData = [ - new MyRow( - 'MyCampaign1', 1, 5, MaterialPalette.blue.shadeDefault, null, 2.0), - new MyRow( - 'MyCampaign2', 2, 25, MaterialPalette.blue.shadeDefault, null, 3.0), - new MyRow( + MyRow('MyCampaign1', 1, 5, MaterialPalette.blue.shadeDefault, null, 2.0), + MyRow('MyCampaign2', 2, 25, MaterialPalette.blue.shadeDefault, null, 3.0), + MyRow( 'MyCampaign3', 3, 100, MaterialPalette.blue.shadeDefault, null, 4.0), - new MyRow('MyOtherCampaign', 4, 75, MaterialPalette.blue.shadeDefault, - null, 4.0), + MyRow('MyOtherCampaign', 4, 75, MaterialPalette.blue.shadeDefault, null, + 4.0), ]; numericSeriesList = [ - new MutableSeries(new Series( + MutableSeries(Series( id: 'Desktop', colorFn: (_, __) => MaterialPalette.blue.shadeDefault, domainFn: (dynamic row, _) => row.campaign, measureFn: (dynamic row, _) => row.clickCount, measureOffsetFn: (_, __) => 0, data: myFakeDesktopData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Tablet', colorFn: (_, __) => MaterialPalette.red.shadeDefault, domainFn: (dynamic row, _) => row.campaign, @@ -104,7 +100,7 @@ void main() { measureOffsetFn: (_, __) => 0, strokeWidthPxFn: (_, __) => 1.25, data: myFakeTabletData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Mobile', colorFn: (_, __) => MaterialPalette.green.shadeDefault, domainFn: (dynamic row, _) => row.campaign, @@ -115,14 +111,14 @@ void main() { ]; ordinalSeriesList = [ - new MutableSeries(new Series( + MutableSeries(Series( id: 'Desktop', colorFn: (_, __) => MaterialPalette.blue.shadeDefault, domainFn: (dynamic row, _) => row.campaignString, measureFn: (dynamic row, _) => row.clickCount, measureOffsetFn: (_, __) => 0, data: myFakeDesktopData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Tablet', colorFn: (_, __) => MaterialPalette.red.shadeDefault, domainFn: (dynamic row, _) => row.campaignString, @@ -130,7 +126,7 @@ void main() { measureOffsetFn: (_, __) => 0, strokeWidthPxFn: (_, __) => 1.25, data: myFakeTabletData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Mobile', colorFn: (_, __) => MaterialPalette.green.shadeDefault, domainFn: (dynamic row, _) => row.campaignString, @@ -143,8 +139,8 @@ void main() { group('preprocess', () { test('with numeric data and simple lines', () { - renderer = new LineRenderer( - config: new LineRendererConfig(strokeWidthPx: 2.0)); + renderer = + LineRenderer(config: LineRendererConfig(strokeWidthPx: 2.0)); renderer.configureSeries(numericSeriesList); renderer.preprocessSeries(numericSeriesList); @@ -207,8 +203,8 @@ void main() { }); test('with numeric data and stacked lines', () { - renderer = new LineRenderer( - config: new LineRendererConfig(stacked: true, strokeWidthPx: 2.0)); + renderer = LineRenderer( + config: LineRendererConfig(stacked: true, strokeWidthPx: 2.0)); renderer.configureSeries(numericSeriesList); renderer.preprocessSeries(numericSeriesList); @@ -272,37 +268,37 @@ void main() { test('with numeric data and changes in style', () { numericSeriesList = [ - new MutableSeries(new Series( + MutableSeries(Series( id: 'Desktop', - colorFn: (MyRow row, _) => row.color, - dashPatternFn: (MyRow row, _) => row.dashPattern, - strokeWidthPxFn: (MyRow row, _) => row.strokeWidthPx, + colorFn: (row, _) => row.color, + dashPatternFn: (row, _) => row.dashPattern, + strokeWidthPxFn: (row, _) => row.strokeWidthPx, domainFn: (dynamic row, _) => row.campaign, measureFn: (dynamic row, _) => row.clickCount, measureOffsetFn: (_, __) => 0, data: myFakeDesktopData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Tablet', - colorFn: (MyRow row, _) => row.color, - dashPatternFn: (MyRow row, _) => row.dashPattern, - strokeWidthPxFn: (MyRow row, _) => row.strokeWidthPx, + colorFn: (row, _) => row.color, + dashPatternFn: (row, _) => row.dashPattern, + strokeWidthPxFn: (row, _) => row.strokeWidthPx, domainFn: (dynamic row, _) => row.campaign, measureFn: (dynamic row, _) => row.clickCount, measureOffsetFn: (_, __) => 0, data: myFakeTabletData)), - new MutableSeries(new Series( + MutableSeries(Series( id: 'Mobile', - colorFn: (MyRow row, _) => row.color, - dashPatternFn: (MyRow row, _) => row.dashPattern, - strokeWidthPxFn: (MyRow row, _) => row.strokeWidthPx, + colorFn: (row, _) => row.color, + dashPatternFn: (row, _) => row.dashPattern, + strokeWidthPxFn: (row, _) => row.strokeWidthPx, domainFn: (dynamic row, _) => row.campaign, measureFn: (dynamic row, _) => row.clickCount, measureOffsetFn: (_, __) => 0, data: myFakeMobileData)) ]; - renderer = new LineRenderer( - config: new LineRendererConfig(strokeWidthPx: 2.0)); + renderer = + LineRenderer(config: LineRendererConfig(strokeWidthPx: 2.0)); renderer.configureSeries(numericSeriesList); renderer.preprocessSeries(numericSeriesList); @@ -408,38 +404,38 @@ void main() { test('with numeric data and repeats in style', () { var myFakeData = [ - new MyRow( + MyRow( 'MyCampaign1', 1, 5, MaterialPalette.blue.shadeDefault, null, 2.0), - new MyRow('MyCampaign2', 2, 25, MaterialPalette.green.shadeDefault, - null, 2.0), - new MyRow('MyCampaign3', 3, 100, MaterialPalette.blue.shadeDefault, - null, 2.0), - new MyRow('MyCampaign4', 4, 75, MaterialPalette.green.shadeDefault, - null, 2.0), - new MyRow( + MyRow('MyCampaign2', 2, 25, MaterialPalette.green.shadeDefault, null, + 2.0), + MyRow('MyCampaign3', 3, 100, MaterialPalette.blue.shadeDefault, null, + 2.0), + MyRow('MyCampaign4', 4, 75, MaterialPalette.green.shadeDefault, null, + 2.0), + MyRow( 'MyCampaign1', 5, 5, MaterialPalette.blue.shadeDefault, null, 2.0), - new MyRow('MyCampaign2', 6, 25, MaterialPalette.green.shadeDefault, - null, 2.0), - new MyRow('MyCampaign3', 7, 100, MaterialPalette.blue.shadeDefault, - null, 2.0), - new MyRow('MyCampaign4', 8, 75, MaterialPalette.green.shadeDefault, - null, 2.0), + MyRow('MyCampaign2', 6, 25, MaterialPalette.green.shadeDefault, null, + 2.0), + MyRow('MyCampaign3', 7, 100, MaterialPalette.blue.shadeDefault, null, + 2.0), + MyRow('MyCampaign4', 8, 75, MaterialPalette.green.shadeDefault, null, + 2.0), ]; numericSeriesList = [ - new MutableSeries(new Series( + MutableSeries(Series( id: 'Desktop', - colorFn: (MyRow row, _) => row.color, - dashPatternFn: (MyRow row, _) => row.dashPattern, - strokeWidthPxFn: (MyRow row, _) => row.strokeWidthPx, - domainFn: (dynamic row, _) => row.campaign, - measureFn: (dynamic row, _) => row.clickCount, + colorFn: (row, _) => row.color, + dashPatternFn: (row, _) => row.dashPattern, + strokeWidthPxFn: (row, _) => row.strokeWidthPx, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, measureOffsetFn: (_, __) => 0, data: myFakeData)), ]; - renderer = new LineRenderer( - config: new LineRendererConfig(strokeWidthPx: 2.0)); + renderer = + LineRenderer(config: LineRendererConfig(strokeWidthPx: 2.0)); renderer.configureSeries(numericSeriesList); renderer.preprocessSeries(numericSeriesList); @@ -494,8 +490,8 @@ void main() { }); test('with ordinal data and simple lines', () { - renderer = new LineRenderer( - config: new LineRendererConfig(strokeWidthPx: 2.0)); + renderer = + LineRenderer(config: LineRendererConfig(strokeWidthPx: 2.0)); renderer.configureSeries(ordinalSeriesList); renderer.preprocessSeries(ordinalSeriesList); diff --git a/web/charts/common/test/chart/line/renderer_nearest_detail_test.dart b/web/charts/common/test/chart/line/renderer_nearest_detail_test.dart index 28f29765f..0004e9247 100644 --- a/web/charts/common/test/chart/line/renderer_nearest_detail_test.dart +++ b/web/charts/common/test/chart/line/renderer_nearest_detail_test.dart @@ -50,23 +50,23 @@ void main() { ///////////////////////////////////////// MutableSeries _makeSeries({String id, int measureOffset = 0}) { final data = [ - new MyRow(1000, measureOffset + 10), - new MyRow(2000, measureOffset + 20), - new MyRow(3000, measureOffset + 30), + MyRow(1000, measureOffset + 10), + MyRow(2000, measureOffset + 20), + MyRow(3000, measureOffset + 30), ]; - final series = new MutableSeries(new Series( + final series = MutableSeries(Series( id: id, data: data, - domainFn: (MyRow row, _) => row.timestamp, - measureFn: (MyRow row, _) => row.clickCount, + domainFn: (row, _) => row.timestamp, + measureFn: (row, _) => row.clickCount, )); series.measureOffsetFn = (_) => 0.0; - series.colorFn = (_) => new Color.fromHex(code: '#000000'); + series.colorFn = (_) => Color.fromHex(code: '#000000'); // Mock the Domain axis results. - final domainAxis = new MockDomainAxis(); + final domainAxis = MockDomainAxis(); when(domainAxis.rangeBand).thenReturn(100.0); when(domainAxis.getLocation(1000)).thenReturn(70.0); when(domainAxis.getLocation(2000)).thenReturn(70.0 + 100); @@ -74,7 +74,7 @@ void main() { series.setAttr(domainAxisKey, domainAxis); // Mock the Measure axis results. - final measureAxis = new MockMeasureAxis(); + final measureAxis = MockMeasureAxis(); for (var i = 0; i <= 100; i++) { when(measureAxis.getLocation(i.toDouble())) .thenReturn(20.0 + 100.0 - i.toDouble()); @@ -94,9 +94,9 @@ void main() { setUp(() { selectNearestByDomain = true; - renderer = new LineRenderer( - config: new LineRendererConfig(strokeWidthPx: 1.0)); - final layoutBounds = new Rectangle(70, 20, 200, 100); + renderer = + LineRenderer(config: LineRendererConfig(strokeWidthPx: 1.0)); + final layoutBounds = Rectangle(70, 20, 200, 100); renderer.layout(layoutBounds, layoutBounds); return renderer; }); @@ -114,11 +114,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act Point just below barSeries.data[0] final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -142,11 +142,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -163,11 +163,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -191,11 +191,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -214,11 +214,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -241,11 +241,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 10.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 10.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -277,11 +277,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 100.0 + 10.0, 20.0 + 100.0 - 5.0), + Point(70.0 + 100.0 + 10.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); @@ -312,11 +312,11 @@ void main() { renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act final details = renderer.getNearestDatumDetailPerSeries( - new Point(70.0 + 100.0 + 10.0, 20.0 + 10.0), + Point(70.0 + 100.0 + 10.0, 20.0 + 10.0), selectNearestByDomain, null); @@ -333,19 +333,17 @@ void main() { test('no selection for points outside of viewport', () { // Setup final seriesList = >[ - _makeSeries(id: 'foo')..data.add(new MyRow(-1000, 20)) + _makeSeries(id: 'foo')..data.add(MyRow(-1000, 20)) ]; renderer.configureSeries(seriesList); renderer.preprocessSeries(seriesList); renderer.update(seriesList, false); - renderer.paint(new MockCanvas(), 1.0); + renderer.paint(MockCanvas(), 1.0); // Act // Note: point is in the axis, over a bar outside of the viewport. final details = renderer.getNearestDatumDetailPerSeries( - new Point(-0.0, 20.0 + 100.0 - 5.0), - selectNearestByDomain, - null); + Point(-0.0, 20.0 + 100.0 - 5.0), selectNearestByDomain, null); // Verify expect(details.length, equals(0)); diff --git a/web/charts/common/test/chart/pie/arc_label_decorator_test.dart b/web/charts/common/test/chart/pie/arc_label_decorator_test.dart index 5b4821da4..50485891d 100644 --- a/web/charts/common/test/chart/pie/arc_label_decorator_test.dart +++ b/web/charts/common/test/chart/pie/arc_label_decorator_test.dart @@ -43,13 +43,13 @@ class MockCanvas extends Mock implements ChartCanvas {} /// A fake [GraphicsFactory] that returns [FakeTextStyle] and [FakeTextElement]. class FakeGraphicsFactory extends GraphicsFactory { @override - TextStyle createTextPaint() => new FakeTextStyle(); + TextStyle createTextPaint() => FakeTextStyle(); @override - TextElement createTextElement(String text) => new FakeTextElement(text); + TextElement createTextElement(String text) => FakeTextElement(text); @override - LineStyle createLinePaint() => new MockLinePaint(); + LineStyle createLinePaint() => MockLinePaint(); } /// Stores [TextStyle] properties for test to verify. @@ -72,7 +72,7 @@ class FakeTextElement implements TextElement { FakeTextElement(this.text); - TextMeasurement get measurement => new TextMeasurement( + TextMeasurement get measurement => TextMeasurement( horizontalSliceWidth: text.length.toDouble(), verticalSliceWidth: textStyle.fontSize.toDouble(), baseline: textStyle.fontSize.toDouble()); @@ -81,7 +81,7 @@ class FakeTextElement implements TextElement { class MockLinePaint extends Mock implements LineStyle {} class FakeArcRendererElement extends ArcRendererElement { - final _series = new MockImmutableSeries(); + final _series = MockImmutableSeries(); final AccessorFn labelAccessor; final List data; @@ -101,32 +101,32 @@ void main() { Rectangle drawBounds; setUpAll(() { - canvas = new MockCanvas(); - graphicsFactory = new FakeGraphicsFactory(); - drawBounds = new Rectangle(0, 0, 200, 200); + canvas = MockCanvas(); + graphicsFactory = FakeGraphicsFactory(); + drawBounds = Rectangle(0, 0, 200, 200); }); group('pie chart', () { test('Paint labels with default settings', () { final data = ['A', 'B']; - final arcElements = new ArcRendererElementList() + final arcElements = ArcRendererElementList() ..arcs = [ // 'A' is small enough to fit inside the arc. // 'LongLabelB' should not fit inside the arc because it has length // greater than 10. - new FakeArcRendererElement((_) => 'A', data) + FakeArcRendererElement((_) => 'A', data) ..startAngle = -pi / 2 ..endAngle = pi / 2, - new FakeArcRendererElement((_) => 'LongLabelB', data) + FakeArcRendererElement((_) => 'LongLabelB', data) ..startAngle = pi / 2 ..endAngle = 3 * pi / 2, ] - ..center = new Point(100.0, 100.0) + ..center = Point(100.0, 100.0) ..innerRadius = 30.0 ..radius = 40.0 ..startAngle = -pi / 2; - final decorator = new ArcLabelDecorator(); + final decorator = ArcLabelDecorator(); decorator.decorate(arcElements, canvas, graphicsFactory, drawBounds: drawBounds, animationPercent: 1.0); @@ -155,22 +155,22 @@ void main() { }); test('LabelPosition.inside always paints inside the arc', () { - final arcElements = new ArcRendererElementList() + final arcElements = ArcRendererElementList() ..arcs = [ // 'LongLabelABC' would not fit inside the arc because it has length // greater than 10. [ArcLabelPosition.inside] should override this. - new FakeArcRendererElement((_) => 'LongLabelABC', ['A']) + FakeArcRendererElement((_) => 'LongLabelABC', ['A']) ..startAngle = -pi / 2 ..endAngle = pi / 2, ] - ..center = new Point(100.0, 100.0) + ..center = Point(100.0, 100.0) ..innerRadius = 30.0 ..radius = 40.0 ..startAngle = -pi / 2; - final decorator = new ArcLabelDecorator( + final decorator = ArcLabelDecorator( labelPosition: ArcLabelPosition.inside, - insideLabelStyleSpec: new TextStyleSpec(fontSize: 10)); + insideLabelStyleSpec: TextStyleSpec(fontSize: 10)); decorator.decorate(arcElements, canvas, graphicsFactory, drawBounds: drawBounds, animationPercent: 1.0); @@ -186,22 +186,22 @@ void main() { }); test('LabelPosition.outside always paints outside the arc', () { - final arcElements = new ArcRendererElementList() + final arcElements = ArcRendererElementList() ..arcs = [ // 'A' will fit inside the arc because it has length less than 10. // [ArcLabelPosition.outside] should override this. - new FakeArcRendererElement((_) => 'A', ['A']) + FakeArcRendererElement((_) => 'A', ['A']) ..startAngle = -pi / 2 ..endAngle = pi / 2, ] - ..center = new Point(100.0, 100.0) + ..center = Point(100.0, 100.0) ..innerRadius = 30.0 ..radius = 40.0 ..startAngle = -pi / 2; - final decorator = new ArcLabelDecorator( + final decorator = ArcLabelDecorator( labelPosition: ArcLabelPosition.outside, - outsideLabelStyleSpec: new TextStyleSpec(fontSize: 10)); + outsideLabelStyleSpec: TextStyleSpec(fontSize: 10)); decorator.decorate(arcElements, canvas, graphicsFactory, drawBounds: drawBounds, animationPercent: 1.0); @@ -222,30 +222,30 @@ void main() { test('Inside and outside label styles are applied', () { final data = ['A', 'B']; - final arcElements = new ArcRendererElementList() + final arcElements = ArcRendererElementList() ..arcs = [ // 'A' is small enough to fit inside the arc. // 'LongLabelB' should not fit inside the arc because it has length // greater than 10. - new FakeArcRendererElement((_) => 'A', data) + FakeArcRendererElement((_) => 'A', data) ..startAngle = -pi / 2 ..endAngle = pi / 2, - new FakeArcRendererElement((_) => 'LongLabelB', data) + FakeArcRendererElement((_) => 'LongLabelB', data) ..startAngle = pi / 2 ..endAngle = 3 * pi / 2, ] - ..center = new Point(100.0, 100.0) + ..center = Point(100.0, 100.0) ..innerRadius = 30.0 ..radius = 40.0 ..startAngle = -pi / 2; - final insideColor = new Color(r: 0, g: 0, b: 0); - final outsideColor = new Color(r: 255, g: 255, b: 255); - final decorator = new ArcLabelDecorator( + final insideColor = Color(r: 0, g: 0, b: 0); + final outsideColor = Color(r: 255, g: 255, b: 255); + final decorator = ArcLabelDecorator( labelPadding: 0, - insideLabelStyleSpec: new TextStyleSpec( + insideLabelStyleSpec: TextStyleSpec( fontSize: 10, fontFamily: 'insideFont', color: insideColor), - outsideLabelStyleSpec: new TextStyleSpec( + outsideLabelStyleSpec: TextStyleSpec( fontSize: 8, fontFamily: 'outsideFont', color: outsideColor)); decorator.decorate(arcElements, canvas, graphicsFactory, @@ -281,18 +281,18 @@ void main() { group('Null and empty label scenarios', () { test('Skip label if label accessor does not exist', () { - final arcElements = new ArcRendererElementList() + final arcElements = ArcRendererElementList() ..arcs = [ - new FakeArcRendererElement(null, ['A']) + FakeArcRendererElement(null, ['A']) ..startAngle = -pi / 2 ..endAngle = pi / 2, ] - ..center = new Point(100.0, 100.0) + ..center = Point(100.0, 100.0) ..innerRadius = 30.0 ..radius = 40.0 ..startAngle = -pi / 2; - new ArcLabelDecorator().decorate(arcElements, canvas, graphicsFactory, + ArcLabelDecorator().decorate(arcElements, canvas, graphicsFactory, drawBounds: drawBounds, animationPercent: 1.0); verifyNever(canvas.drawText(any, any, any)); @@ -300,21 +300,21 @@ void main() { test('Skip label if label is null or empty', () { final data = ['A', 'B']; - final arcElements = new ArcRendererElementList() + final arcElements = ArcRendererElementList() ..arcs = [ - new FakeArcRendererElement(null, data) + FakeArcRendererElement(null, data) ..startAngle = -pi / 2 ..endAngle = pi / 2, - new FakeArcRendererElement((_) => '', data) + FakeArcRendererElement((_) => '', data) ..startAngle = pi / 2 ..endAngle = 3 * pi / 2, ] - ..center = new Point(100.0, 100.0) + ..center = Point(100.0, 100.0) ..innerRadius = 30.0 ..radius = 40.0 ..startAngle = -pi / 2; - new ArcLabelDecorator().decorate(arcElements, canvas, graphicsFactory, + ArcLabelDecorator().decorate(arcElements, canvas, graphicsFactory, drawBounds: drawBounds, animationPercent: 1.0); verifyNever(canvas.drawText(any, any, any)); diff --git a/web/charts/common/test/chart/scatter_plot/comparison_points_decorator_test.dart b/web/charts/common/test/chart/scatter_plot/comparison_points_decorator_test.dart index 858294dbc..5a48653a8 100644 --- a/web/charts/common/test/chart/scatter_plot/comparison_points_decorator_test.dart +++ b/web/charts/common/test/chart/scatter_plot/comparison_points_decorator_test.dart @@ -38,14 +38,14 @@ void main() { Rectangle bounds; setUp(() { - decorator = new TestComparisonPointsDecorator(); - bounds = new Rectangle(0, 0, 100, 100); + decorator = TestComparisonPointsDecorator(); + bounds = Rectangle(0, 0, 100, 100); }); group('compute bounded points', () { test('with line inside bounds', () { - final element = new PointRendererElement() - ..point = new DatumPoint( + final element = PointRendererElement() + ..point = DatumPoint( x: 10.0, xLower: 5.0, xUpper: 50.0, @@ -66,8 +66,8 @@ void main() { }); test('with line entirely above bounds', () { - final element = new PointRendererElement() - ..point = new DatumPoint( + final element = PointRendererElement() + ..point = DatumPoint( x: 10.0, xLower: 5.0, xUpper: 50.0, @@ -82,8 +82,8 @@ void main() { }); test('with line entirely below bounds', () { - final element = new PointRendererElement() - ..point = new DatumPoint( + final element = PointRendererElement() + ..point = DatumPoint( x: 10.0, xLower: 5.0, xUpper: 50.0, @@ -98,8 +98,8 @@ void main() { }); test('with line entirely left of bounds', () { - final element = new PointRendererElement() - ..point = new DatumPoint( + final element = PointRendererElement() + ..point = DatumPoint( x: -10.0, xLower: -5.0, xUpper: -50.0, @@ -114,8 +114,8 @@ void main() { }); test('with line entirely right of bounds', () { - final element = new PointRendererElement() - ..point = new DatumPoint( + final element = PointRendererElement() + ..point = DatumPoint( x: 110.0, xLower: 105.0, xUpper: 150.0, @@ -130,8 +130,8 @@ void main() { }); test('with horizontal line extending beyond bounds', () { - final element = new PointRendererElement() - ..point = new DatumPoint( + final element = PointRendererElement() + ..point = DatumPoint( x: 10.0, xLower: -10.0, xUpper: 110.0, @@ -152,8 +152,8 @@ void main() { }); test('with vertical line extending beyond bounds', () { - final element = new PointRendererElement() - ..point = new DatumPoint( + final element = PointRendererElement() + ..point = DatumPoint( x: 20.0, xLower: 20.0, xUpper: 20.0, @@ -174,8 +174,8 @@ void main() { }); test('with diagonal from top left to bottom right', () { - final element = new PointRendererElement() - ..point = new DatumPoint( + final element = PointRendererElement() + ..point = DatumPoint( x: 50.0, xLower: -50.0, xUpper: 150.0, @@ -196,8 +196,8 @@ void main() { }); test('with diagonal from bottom left to top right', () { - final element = new PointRendererElement() - ..point = new DatumPoint( + final element = PointRendererElement() + ..point = DatumPoint( x: 50.0, xLower: -50.0, xUpper: 150.0, diff --git a/web/charts/common/test/chart/scatter_plot/point_renderer_test.dart b/web/charts/common/test/chart/scatter_plot/point_renderer_test.dart index 8788f086c..ab6aaa359 100644 --- a/web/charts/common/test/chart/scatter_plot/point_renderer_test.dart +++ b/web/charts/common/test/chart/scatter_plot/point_renderer_test.dart @@ -42,19 +42,19 @@ void main() { setUp(() { var myFakeDesktopData = [ // This datum should get a default bounds line radius value. - new MyRow('MyCampaign1', 0, 5, 3.0, null, null), - new MyRow('MyCampaign2', 10, 25, 5.0, 4.0, 'shape 1'), - new MyRow('MyCampaign3', 12, 75, 4.0, 4.0, 'shape 2'), + MyRow('MyCampaign1', 0, 5, 3.0, null, null), + MyRow('MyCampaign2', 10, 25, 5.0, 4.0, 'shape 1'), + MyRow('MyCampaign3', 12, 75, 4.0, 4.0, 'shape 2'), // This datum should always get default radius values. - new MyRow('MyCampaign4', 13, 225, null, null, null), + MyRow('MyCampaign4', 13, 225, null, null, null), ]; final maxMeasure = 300; numericSeriesList = [ - new MutableSeries(new Series( + MutableSeries(Series( id: 'Desktop', - colorFn: (MyRow row, _) { + colorFn: (row, _) { // Color bucket the measure column value into 3 distinct colors. final bucket = row.clickCount / maxMeasure; @@ -66,20 +66,20 @@ void main() { return MaterialPalette.green.shadeDefault; } }, - domainFn: (MyRow row, _) => row.campaign, - measureFn: (MyRow row, _) => row.clickCount, - measureOffsetFn: (MyRow row, _) => 0, - radiusPxFn: (MyRow row, _) => row.radius, + domainFn: (row, _) => row.campaign, + measureFn: (row, _) => row.clickCount, + measureOffsetFn: (row, _) => 0, + radiusPxFn: (row, _) => row.radius, data: myFakeDesktopData) // Define a bounds line radius function. ..setAttribute(boundsLineRadiusPxFnKey, - (int index) => myFakeDesktopData[index].boundsRadius)) + (index) => myFakeDesktopData[index].boundsRadius)) ]; }); group('preprocess', () { test('with numeric data and simple points', () { - renderer = new PointRenderer(config: new PointRendererConfig()); + renderer = PointRenderer(config: PointRendererConfig()); renderer.preprocessSeries(numericSeriesList); @@ -115,9 +115,8 @@ void main() { }); test('with numeric data and missing radiusPxFn', () { - renderer = new PointRenderer( - config: - new PointRendererConfig(radiusPx: 2.0, boundsLineRadiusPx: 1.5)); + renderer = PointRenderer( + config: PointRendererConfig(radiusPx: 2.0, boundsLineRadiusPx: 1.5)); // Remove the radius functions to test configured defaults. numericSeriesList[0].radiusPxFn = null; @@ -145,10 +144,10 @@ void main() { }); test('with custom symbol renderer ID in data', () { - renderer = new PointRenderer(config: new PointRendererConfig()); + renderer = PointRenderer(config: PointRendererConfig()); numericSeriesList[0].setAttr(pointSymbolRendererFnKey, - (int index) => numericSeriesList[0].data[index].shape as String); + (index) => numericSeriesList[0].data[index].shape as String); renderer.preprocessSeries(numericSeriesList); @@ -167,10 +166,10 @@ void main() { }); test('with custom symbol renderer ID in series and data', () { - renderer = new PointRenderer(config: new PointRendererConfig()); + renderer = PointRenderer(config: PointRendererConfig()); numericSeriesList[0].setAttr(pointSymbolRendererFnKey, - (int index) => numericSeriesList[0].data[index].shape as String); + (index) => numericSeriesList[0].data[index].shape as String); numericSeriesList[0].setAttr(pointSymbolRendererIdKey, 'shape 0'); renderer.preprocessSeries(numericSeriesList); diff --git a/web/charts/common/test/chart/scatter_plot/symbol_annotation_renderer_test.dart b/web/charts/common/test/chart/scatter_plot/symbol_annotation_renderer_test.dart index 3419a1309..35a1898fd 100644 --- a/web/charts/common/test/chart/scatter_plot/symbol_annotation_renderer_test.dart +++ b/web/charts/common/test/chart/scatter_plot/symbol_annotation_renderer_test.dart @@ -44,34 +44,34 @@ void main() { setUp(() { var myFakeDesktopData = [ // This datum should get a default bounds line radius value. - new MyRow('MyCampaign1', 0, 0, 0, 3.0, null, null), - new MyRow('MyCampaign2', 10, 10, 12, 5.0, 4.0, 'shape 1'), - new MyRow('MyCampaign3', 10, 10, 14, 4.0, 4.0, 'shape 2'), + MyRow('MyCampaign1', 0, 0, 0, 3.0, null, null), + MyRow('MyCampaign2', 10, 10, 12, 5.0, 4.0, 'shape 1'), + MyRow('MyCampaign3', 10, 10, 14, 4.0, 4.0, 'shape 2'), // This datum should always get default radius values. - new MyRow('MyCampaign4', 13, 12, 15, null, null, null), + MyRow('MyCampaign4', 13, 12, 15, null, null, null), ]; numericSeriesList = [ - new MutableSeries(new Series( + MutableSeries(Series( id: 'Desktop', - colorFn: (MyRow row, _) => MaterialPalette.blue.shadeDefault, - domainFn: (MyRow row, _) => row.campaign, - domainLowerBoundFn: (MyRow row, _) => row.campaignLower, - domainUpperBoundFn: (MyRow row, _) => row.campaignUpper, - measureFn: (MyRow row, _) => 0, - measureOffsetFn: (MyRow row, _) => 0, - radiusPxFn: (MyRow row, _) => row.radius, + colorFn: (row, _) => MaterialPalette.blue.shadeDefault, + domainFn: (row, _) => row.campaign, + domainLowerBoundFn: (row, _) => row.campaignLower, + domainUpperBoundFn: (row, _) => row.campaignUpper, + measureFn: (row, _) => 0, + measureOffsetFn: (row, _) => 0, + radiusPxFn: (row, _) => row.radius, data: myFakeDesktopData) // Define a bounds line radius function. ..setAttribute(boundsLineRadiusPxFnKey, - (int index) => myFakeDesktopData[index].boundsRadius)) + (index) => myFakeDesktopData[index].boundsRadius)) ]; }); group('preprocess', () { test('with numeric data and simple points', () { - renderer = new SymbolAnnotationRenderer( - config: new SymbolAnnotationRendererConfig()); + renderer = SymbolAnnotationRenderer( + config: SymbolAnnotationRendererConfig()); renderer.preprocessSeries(numericSeriesList);