From 6448391e41748e77171d966b25b981fad91ffa4a Mon Sep 17 00:00:00 2001 From: Takuro KAKOI Date: Fri, 24 Sep 2021 20:41:49 +0900 Subject: [PATCH 01/29] migrate by command --- .../ios/Flutter/AppFrameworkInfo.plist | 2 +- .../ios/Runner.xcodeproj/project.pbxproj | 23 +- .../contents.xcworkspacedata | 2 +- .../xcshareddata/WorkspaceSettings.xcsettings | 8 - .../bar_line_scatter_candle_bubble_chart.dart | 122 ++--- mp_chart/lib/mp/chart/chart.dart | 4 +- mp_chart/lib/mp/chart/combined_chart.dart | 112 ++-- mp_chart/lib/mp/chart/pie_radar_chart.dart | 22 +- .../mp/controller/bar_chart_controller.dart | 62 +-- ...line_scatter_candle_bubble_controller.dart | 170 +++--- .../controller/bubble_chart_controller.dart | 60 +-- .../candlestick_chart_controller.dart | 60 +-- .../controller/combined_chart_controller.dart | 62 +-- mp_chart/lib/mp/controller/controller.dart | 60 +-- .../horizontal_bar_chart_controller.dart | 76 +-- .../mp/controller/line_chart_controller.dart | 60 +-- .../mp/controller/pie_chart_controller.dart | 34 +- .../mp/controller/pie_radar_controller.dart | 28 +- .../mp/controller/radar_chart_controller.dart | 36 +- .../controller/scatter_chart_controller.dart | 60 +-- mp_chart/lib/mp/core/adapter_android_mp.dart | 14 +- mp_chart/lib/mp/core/animator.dart | 62 +-- mp_chart/lib/mp/core/axis/axis_base.dart | 70 +-- mp_chart/lib/mp/core/axis/x_axis.dart | 2 +- mp_chart/lib/mp/core/axis/y_axis.dart | 38 +- mp_chart/lib/mp/core/bounds.dart | 30 +- .../lib/mp/core/buffer/abstract_buffer.dart | 6 +- mp_chart/lib/mp/core/buffer/bar_buffer.dart | 30 +- .../mp/core/buffer/horizontal_bar_buffer.dart | 20 +- mp_chart/lib/mp/core/cache.dart | 28 +- .../lib/mp/core/chart_trans_listener.dart | 2 +- mp_chart/lib/mp/core/common_interfaces.dart | 4 +- mp_chart/lib/mp/core/component.dart | 22 +- mp_chart/lib/mp/core/data/bar_data.dart | 10 +- .../bar_line_scatter_candle_bubble_data.dart | 2 +- mp_chart/lib/mp/core/data/bubble_data.dart | 2 +- mp_chart/lib/mp/core/data/chart_data.dart | 238 ++++----- mp_chart/lib/mp/core/data/combined_data.dart | 104 ++-- mp_chart/lib/mp/core/data/pie_data.dart | 22 +- mp_chart/lib/mp/core/data/radar_data.dart | 12 +- mp_chart/lib/mp/core/data/scatter_data.dart | 2 +- .../core/data_interfaces/i_bar_data_set.dart | 2 +- ...r_line_scatter_candle_bubble_data_set.dart | 2 +- .../data_interfaces/i_bubble_data_set.dart | 4 +- .../data_interfaces/i_candle_data_set.dart | 4 +- .../mp/core/data_interfaces/i_data_set.dart | 32 +- .../core/data_interfaces/i_line_data_set.dart | 8 +- .../i_line_radar_data_set.dart | 4 +- .../i_line_scatter_candle_radar_data_set.dart | 6 +- .../core/data_interfaces/i_pie_data_set.dart | 6 +- .../data_interfaces/i_radar_data_set.dart | 2 +- .../data_interfaces/i_scatter_data_set.dart | 4 +- .../core/data_provider/bar_data_provider.dart | 2 +- ...e_scatter_candle_bubble_data_provider.dart | 4 +- .../data_provider/bubble_data_provider.dart | 2 +- .../data_provider/candle_data_provider.dart | 2 +- .../core/data_provider/chart_interface.dart | 8 +- .../data_provider/combined_data_provider.dart | 2 +- .../data_provider/line_data_provider.dart | 2 +- .../data_provider/scatter_data_provider.dart | 2 +- .../lib/mp/core/data_set/bar_data_set.dart | 20 +- ...r_line_scatter_candle_bubble_data_set.dart | 2 +- .../lib/mp/core/data_set/base_data_set.dart | 64 +-- .../lib/mp/core/data_set/bubble_data_set.dart | 12 +- .../lib/mp/core/data_set/candle_data_set.dart | 28 +- mp_chart/lib/mp/core/data_set/data_set.dart | 138 ++--- .../lib/mp/core/data_set/line_data_set.dart | 42 +- .../mp/core/data_set/line_radar_data_set.dart | 4 +- .../line_scatter_candle_radar_data_set.dart | 26 +- .../lib/mp/core/data_set/pie_data_set.dart | 14 +- .../lib/mp/core/data_set/radar_data_set.dart | 8 +- .../mp/core/data_set/scatter_data_set.dart | 12 +- mp_chart/lib/mp/core/description.dart | 10 +- mp_chart/lib/mp/core/entry/bar_entry.dart | 40 +- mp_chart/lib/mp/core/entry/base_entry.dart | 20 +- mp_chart/lib/mp/core/entry/bubble_entry.dart | 8 +- mp_chart/lib/mp/core/entry/candle_entry.dart | 28 +- mp_chart/lib/mp/core/entry/entry.dart | 8 +- mp_chart/lib/mp/core/entry/pie_entry.dart | 28 +- mp_chart/lib/mp/core/entry/radar_entry.dart | 4 +- .../default_fill_formatter.dart | 20 +- .../core/fill_formatter/i_fill_formatter.dart | 2 +- mp_chart/lib/mp/core/functions.dart | 12 +- .../mp/core/highlight/bar_highlighter.dart | 34 +- .../mp/core/highlight/chart_hightlighter.dart | 64 +-- .../core/highlight/combined_highlighter.dart | 16 +- mp_chart/lib/mp/core/highlight/highlight.dart | 48 +- .../highlight/horizontal_bar_highlighter.dart | 22 +- .../lib/mp/core/highlight/i_highlighter.dart | 2 +- .../mp/core/highlight/pie_highlighter.dart | 4 +- .../core/highlight/pie_radar_highlighter.dart | 20 +- .../mp/core/highlight/radar_highlighter.dart | 28 +- mp_chart/lib/mp/core/image_loader.dart | 2 +- mp_chart/lib/mp/core/legend/legend.dart | 118 ++--- mp_chart/lib/mp/core/legend/legend_entry.dart | 12 +- mp_chart/lib/mp/core/limit_line.dart | 16 +- .../lib/mp/core/marker/bar_chart_marker.dart | 2 +- .../marker/horizontal_bar_chart_marker.dart | 2 +- mp_chart/lib/mp/core/marker/i_marker.dart | 2 +- .../lib/mp/core/marker/line_chart_marker.dart | 22 +- .../mp/core/marker/radar_chart_marker.dart | 22 +- mp_chart/lib/mp/core/poolable/point.dart | 72 +-- mp_chart/lib/mp/core/poolable/size.dart | 2 +- .../lib/mp/core/render/axis_renderer.dart | 102 ++-- .../mp/core/render/bar_chart_renderer.dart | 268 +++++----- ...r_line_scatter_candle_bubble_renderer.dart | 12 +- .../mp/core/render/bubble_chart_renderer.dart | 144 ++--- .../render/candle_stick_chart_renderer.dart | 182 +++---- .../render/chevron_down_shape_renderer.dart | 14 +- .../render/chevron_up_shape_renderer.dart | 14 +- .../mp/core/render/circle_shape_renderer.dart | 18 +- .../core/render/combined_chart_renderer.dart | 32 +- .../mp/core/render/cross_shape_renderer.dart | 14 +- .../lib/mp/core/render/data_renderer.dart | 32 +- .../render/horizontal_bar_chart_renderer.dart | 222 ++++---- .../lib/mp/core/render/i_shape_renderer.dart | 8 +- .../lib/mp/core/render/legend_renderer.dart | 240 ++++----- .../mp/core/render/line_chart_renderer.dart | 356 ++++++------- .../mp/core/render/line_radar_renderer.dart | 14 +- .../line_scatter_candle_radar_renderer.dart | 22 +- .../mp/core/render/pie_chart_renderer.dart | 492 +++++++++--------- .../mp/core/render/radar_chart_renderer.dart | 186 +++---- mp_chart/lib/mp/core/render/renderer.dart | 6 +- .../core/render/scatter_chart_renderer.dart | 106 ++-- .../mp/core/render/square_shape_renderer.dart | 20 +- .../core/render/triangle_shape_renderer.dart | 14 +- .../lib/mp/core/render/x_axis_renderer.dart | 272 +++++----- .../x_axis_renderer_horizontal_bar_chart.dart | 220 ++++---- .../render/x_axis_renderer_radar_chart.dart | 28 +- .../lib/mp/core/render/x_shape_renderer.dart | 14 +- .../lib/mp/core/render/y_axis_renderer.dart | 222 ++++---- .../y_axis_renderer_horizontal_bar_chart.dart | 236 ++++----- .../render/y_axis_renderer_radar_chart.dart | 112 ++-- mp_chart/lib/mp/core/touch_listener.dart | 24 +- .../lib/mp/core/transformer/transformer.dart | 84 +-- .../transformer_horizontal_bar_chart.dart | 10 +- mp_chart/lib/mp/core/utils/canvas_utils.dart | 18 +- .../lib/mp/core/utils/highlight_utils.dart | 10 +- mp_chart/lib/mp/core/utils/matrix4_utils.dart | 8 +- mp_chart/lib/mp/core/utils/painter_utils.dart | 16 +- mp_chart/lib/mp/core/utils/screen_utils.dart | 8 +- mp_chart/lib/mp/core/utils/utils.dart | 52 +- .../day_axis_value_formatter.dart | 8 +- .../default_axis_value_formatter.dart | 8 +- .../default_value_formatter.dart | 8 +- .../large_value_formatter.dart | 10 +- .../value_formatter/my_value_formatter.dart | 10 +- .../value_formatter/percent_formatter.dart | 14 +- .../stacked_value_formatter.dart | 8 +- .../core/value_formatter/value_formatter.dart | 6 +- mp_chart/lib/mp/core/view_port.dart | 40 +- .../lib/mp/painter/bar_chart_painter.dart | 90 ++-- .../mp/painter/bar_line_chart_painter.dart | 410 +++++++-------- .../lib/mp/painter/bubble_chart_painter.dart | 60 +-- .../mp/painter/candlestick_chart_painter.dart | 64 +-- .../mp/painter/combined_chart_painter.dart | 112 ++-- .../painter/horizontal_bar_chart_painter.dart | 130 ++--- .../lib/mp/painter/line_chart_painter.dart | 60 +-- mp_chart/lib/mp/painter/painter.dart | 162 +++--- .../lib/mp/painter/pie_chart_painter.dart | 126 ++--- .../mp/painter/pie_redar_chart_painter.dart | 162 +++--- .../lib/mp/painter/radar_chart_painter.dart | 118 ++--- .../lib/mp/painter/scatter_chart_painter.dart | 64 +-- mp_chart/pubspec.yaml | 8 +- 164 files changed, 4226 insertions(+), 4245 deletions(-) delete mode 100644 mp_chart/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/mp_chart/example/ios/Flutter/AppFrameworkInfo.plist b/mp_chart/example/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f78..f2872cf4 100644 --- a/mp_chart/example/ios/Flutter/AppFrameworkInfo.plist +++ b/mp_chart/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/mp_chart/example/ios/Runner.xcodeproj/project.pbxproj b/mp_chart/example/ios/Runner.xcodeproj/project.pbxproj index ee238279..b0c9ec30 100644 --- a/mp_chart/example/ios/Runner.xcodeproj/project.pbxproj +++ b/mp_chart/example/ios/Runner.xcodeproj/project.pbxproj @@ -10,11 +10,7 @@ 113C2BFAE03FA55F4F4A29A7 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 80C48FECBDC6D714F4687207 /* libPods-Runner.a */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; - 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 69CE8466233DB7F800B13DEF /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69CE8465233DB7F800B13DEF /* File.swift */; }; - 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; - 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; @@ -30,8 +26,6 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */, - 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -44,7 +38,6 @@ 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 2B596E6E9C519EEB8127D2E6 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; }; 69CE8464233DB7F700B13DEF /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 69CE8465233DB7F800B13DEF /* File.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = File.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; @@ -53,7 +46,6 @@ 80C48FECBDC6D714F4687207 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; - 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; @@ -68,8 +60,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, - 3B80C3941E831B6300D905FE /* App.framework in Frameworks */, 113C2BFAE03FA55F4F4A29A7 /* libPods-Runner.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -90,9 +80,7 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( - 3B80C3931E831B6300D905FE /* App.framework */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, - 9740EEBA1CF902C7004384FC /* Flutter.framework */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 9740EEB31CF90195004384FC /* Generated.xcconfig */, @@ -239,7 +227,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; 69D3930E864B6FDD7E20F3DA /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; @@ -330,7 +318,6 @@ /* Begin XCBuildConfiguration section */ 249021D3217E4FDB00AE95B9 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -370,7 +357,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -407,7 +394,6 @@ }; 97C147031CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -453,7 +439,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -463,7 +449,6 @@ }; 97C147041CF9000F007C117D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -503,7 +488,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/mp_chart/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/mp_chart/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 1d526a16..919434a6 100644 --- a/mp_chart/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/mp_chart/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:"> diff --git a/mp_chart/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/mp_chart/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index 949b6789..00000000 --- a/mp_chart/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - BuildSystemType - Original - - diff --git a/mp_chart/lib/mp/chart/bar_line_scatter_candle_bubble_chart.dart b/mp_chart/lib/mp/chart/bar_line_scatter_candle_bubble_chart.dart index 008314cf..1e6acd04 100644 --- a/mp_chart/lib/mp/chart/bar_line_scatter_candle_bubble_chart.dart +++ b/mp_chart/lib/mp/chart/bar_line_scatter_candle_bubble_chart.dart @@ -18,9 +18,9 @@ abstract class BarLineScatterCandleBubbleChart< class BarLineScatterCandleBubbleState extends ChartState { - IDataSet _closestDataSetToTouch; + IDataSet? _closestDataSetToTouch; - Highlight lastHighlighted; + Highlight? lastHighlighted; double _curX = 0.0; double _curY = 0.0; double _scale = -1.0; @@ -44,10 +44,10 @@ class BarLineScatterCandleBubbleState bool _inverted() { var res = (_closestDataSetToTouch == null && - widget.controller.painter.isAnyAxisInverted()) || + widget.controller.painter!.isAnyAxisInverted()) || (_closestDataSetToTouch != null && - widget.controller.painter - .isInverted(_closestDataSetToTouch.getAxisDependency())); + widget.controller.painter! + .isInverted(_closestDataSetToTouch!.getAxisDependency())); return res; } @@ -56,58 +56,58 @@ class BarLineScatterCandleBubbleState widget.controller.stopDeceleration(); _curX = details.localPosition.dx; _curY = details.localPosition.dy; - _closestDataSetToTouch = widget.controller.painter.getDataSetByTouchPoint( + _closestDataSetToTouch = widget.controller.painter!.getDataSetByTouchPoint( details.localPosition.dx, details.localPosition.dy); if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPosition.dx, details.globalPosition.dy, details.localPosition.dx, details.localPosition.dy); - widget.controller.touchEventListener.onTapDown(point.x, point.y); + widget.controller.touchEventListener!.onTapDown(point.x, point.y); } } @override void onSingleTapUp(TapUpDetails details) { - if (widget.controller.painter.highLightPerTapEnabled) { - Highlight h = widget.controller.painter.getHighlightByTouchPoint( + if (widget.controller.painter!.highLightPerTapEnabled) { + Highlight? h = widget.controller.painter!.getHighlightByTouchPoint( details.localPosition.dx, details.localPosition.dy); lastHighlighted = HighlightUtils.performHighlight( widget.controller.painter, h, lastHighlighted); setStateIfNotDispose(); } else { - Highlight high = widget.controller.painter.getHighlightByTouchPoint( + Highlight? high = widget.controller.painter!.getHighlightByTouchPoint( details.localPosition.dx, details.localPosition.dy, ); - widget.controller.painter.selectedValue(high); + widget.controller.painter!.selectedValue(high); lastHighlighted = null; } if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPosition.dx, details.globalPosition.dy, details.localPosition.dx, details.localPosition.dy); - widget.controller.touchEventListener.onSingleTapUp(point.x, point.y); + widget.controller.touchEventListener!.onSingleTapUp(point.x, point.y); } } @override void onDoubleTapUp(TapUpDetails details) { widget.controller.stopDeceleration(); - if (widget.controller.painter.doubleTapToZoomEnabled && - widget.controller.painter.getData().getEntryCount() > 0) { + if (widget.controller.painter!.doubleTapToZoomEnabled && + widget.controller.painter!.getData()!.getEntryCount() > 0) { MPPointF trans = _getTrans(details.localPosition.dx, details.localPosition.dy); - widget.controller.painter.zoom( - widget.controller.painter.scaleXEnabled ? 1.2 : 1, - widget.controller.painter.scaleYEnabled ? 1.2 : 1, + widget.controller.painter!.zoom( + widget.controller.painter!.scaleXEnabled ? 1.2 : 1, + widget.controller.painter!.scaleYEnabled ? 1.2 : 1, trans.x, trans.y); setStateIfNotDispose(); @@ -115,12 +115,12 @@ class BarLineScatterCandleBubbleState } if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPosition.dx, details.globalPosition.dy, details.localPosition.dx, details.localPosition.dy); - widget.controller.touchEventListener.onDoubleTapUp(point.x, point.y); + widget.controller.touchEventListener!.onDoubleTapUp(point.x, point.y); } } @@ -131,12 +131,12 @@ class BarLineScatterCandleBubbleState _curY = details.localPoint.dy; if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPoint.dx, details.globalPoint.dy, details.localPoint.dx, details.localPoint.dy); - widget.controller.touchEventListener.onMoveStart(point.x, point.y); + widget.controller.touchEventListener!.onMoveStart(point.x, point.y); } } @@ -146,8 +146,8 @@ class BarLineScatterCandleBubbleState var dx = details.localPoint.dx - _curX; var dy = details.localPoint.dy - _curY; - if (widget.controller.painter.highlightPerDragEnabled) { - final highlighted = widget.controller.painter.getHighlightByTouchPoint( + if (widget.controller.painter!.highlightPerDragEnabled) { + final highlighted = widget.controller.painter!.getHighlightByTouchPoint( details.localPoint.dx, details.localPoint.dy); if (highlighted?.equalTo(lastHighlighted) == false) { lastHighlighted = HighlightUtils.performHighlight( @@ -156,8 +156,8 @@ class BarLineScatterCandleBubbleState } } - if (widget.controller.painter.dragYEnabled && - widget.controller.painter.dragXEnabled) { + if (widget.controller.painter!.dragYEnabled && + widget.controller.painter!.dragXEnabled) { if (_inverted()) { /// if there is an inverted horizontalbarchart if (widget is HorizontalBarChart) { @@ -166,10 +166,10 @@ class BarLineScatterCandleBubbleState dy = -dy; } } - widget.controller.painter.translate(dx, dy); + widget.controller.painter!.translate(dx, dy); needStateIfNotDispose = true; } else { - if (widget.controller.painter.dragXEnabled) { + if (widget.controller.painter!.dragXEnabled) { if (_inverted()) { /// if there is an inverted horizontalbarchart if (widget is HorizontalBarChart) { @@ -178,9 +178,9 @@ class BarLineScatterCandleBubbleState dy = -dy; } } - widget.controller.painter.translate(dx, 0.0); + widget.controller.painter!.translate(dx, 0.0); needStateIfNotDispose = true; - } else if (widget.controller.painter.dragYEnabled) { + } else if (widget.controller.painter!.dragYEnabled) { if (_inverted()) { /// if there is an inverted horizontalbarchart if (widget is HorizontalBarChart) { @@ -189,19 +189,19 @@ class BarLineScatterCandleBubbleState dy = -dy; } } - widget.controller.painter.translate(0.0, dy); + widget.controller.painter!.translate(0.0, dy); needStateIfNotDispose = true; } } if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPoint.dx, details.globalPoint.dy, details.localPoint.dx, details.localPoint.dy); - widget.controller.touchEventListener.onMoveUpdate(point.x, point.y); + widget.controller.touchEventListener!.onMoveUpdate(point.x, point.y); } if (needStateIfNotDispose) { @@ -220,12 +220,12 @@ class BarLineScatterCandleBubbleState ..computeScroll(); if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPoint.dx, details.globalPoint.dy, details.localPoint.dx, details.localPoint.dy); - widget.controller.touchEventListener.onMoveEnd(point.x, point.y); + widget.controller.touchEventListener!.onMoveEnd(point.x, point.y); } } @@ -237,12 +237,12 @@ class BarLineScatterCandleBubbleState _isScaleDirectionConfirm = false; if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPoint.dx, details.globalPoint.dy, details.localPoint.dx, details.localPoint.dy); - widget.controller.touchEventListener.onScaleStart(point.x, point.y); + widget.controller.touchEventListener!.onScaleStart(point.x, point.y); } } @@ -274,28 +274,28 @@ class BarLineScatterCandleBubbleState } MPPointF trans = _getTrans(_curX, _curY); - var h = widget.controller.painter.viewPortHandler; + var h = widget.controller.painter!.viewPortHandler; scale = Utils.optimizeScale(scale); if (pinchZoomEnabled) { - bool canZoomMoreX = scale < 1 ? h.canZoomOutMoreX() : h.canZoomInMoreX(); + bool canZoomMoreX = scale < 1 ? h!.canZoomOutMoreX() : h!.canZoomInMoreX(); bool canZoomMoreY = scale < 1 ? h.canZoomOutMoreY() : h.canZoomInMoreY(); - widget.controller.painter.zoom( + widget.controller.painter!.zoom( canZoomMoreX ? scale : 1, canZoomMoreY ? scale : 1, trans.x, trans.y); needStateIfNotDispose = true; } else { if (_isYDirection) { - if (widget.controller.painter.scaleYEnabled) { + if (widget.controller.painter!.scaleYEnabled) { bool canZoomMoreY = - scale < 1 ? h.canZoomOutMoreY() : h.canZoomInMoreY(); - widget.controller.painter + scale < 1 ? h!.canZoomOutMoreY() : h!.canZoomInMoreY(); + widget.controller.painter! .zoom(1, canZoomMoreY ? scale : 1, trans.x, trans.y); needStateIfNotDispose = true; } } else { - if (widget.controller.painter.scaleXEnabled) { + if (widget.controller.painter!.scaleXEnabled) { bool canZoomMoreX = - scale < 1 ? h.canZoomOutMoreX() : h.canZoomInMoreX(); - widget.controller.painter + scale < 1 ? h!.canZoomOutMoreX() : h!.canZoomInMoreX(); + widget.controller.painter! .zoom(canZoomMoreX ? scale : 1, 1, trans.x, trans.y); needStateIfNotDispose = true; } @@ -304,12 +304,12 @@ class BarLineScatterCandleBubbleState if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalFocalPoint.dx, details.globalFocalPoint.dy, details.localFocalPoint.dx, details.localFocalPoint.dy); - widget.controller.touchEventListener + widget.controller.touchEventListener! .onScaleUpdate(point.x, point.y); } @@ -331,56 +331,56 @@ class BarLineScatterCandleBubbleState _scale = -1.0; if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPoint.dx, details.globalPoint.dy, details.localPoint.dx, details.localPoint.dy); - widget.controller.touchEventListener.onScaleEnd(point.x, point.y); + widget.controller.touchEventListener!.onScaleEnd(point.x, point.y); } } void onDragStart(LongPressStartDetails details) { if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPosition.dx, details.globalPosition.dy, details.localPosition.dx, details.localPosition.dy); - widget.controller.touchEventListener.onDragStart(point.x, point.y); + widget.controller.touchEventListener!.onDragStart(point.x, point.y); } } void onDragUpdate(LongPressMoveUpdateDetails details) { if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPosition.dx, details.globalPosition.dy, details.localPosition.dx, details.localPosition.dy); - widget.controller.touchEventListener.onDragUpdate(point.x, point.y); + widget.controller.touchEventListener!.onDragUpdate(point.x, point.y); } } void onDragEnd(LongPressEndDetails details) { if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPosition.dx, details.globalPosition.dy, details.localPosition.dx, details.localPosition.dy); - widget.controller.touchEventListener.onDragEnd(point.x, point.y); + widget.controller.touchEventListener!.onDragEnd(point.x, point.y); } } @override void updatePainter() { - if (widget.controller.painter.getData() != null && - widget.controller.painter.getData().dataSets != null && - widget.controller.painter.getData().dataSets.length > 0) - widget.controller.painter.highlightValue6(lastHighlighted, false); + if (widget.controller.painter!.getData() != null && + widget.controller.painter!.getData()!.dataSets != null && + widget.controller.painter!.getData()!.dataSets!.length > 0) + widget.controller.painter!.highlightValue6(lastHighlighted, false); } } diff --git a/mp_chart/lib/mp/chart/chart.dart b/mp_chart/lib/mp/chart/chart.dart index c4073b9a..7de9e6a8 100644 --- a/mp_chart/lib/mp/chart/chart.dart +++ b/mp_chart/lib/mp/chart/chart.dart @@ -10,7 +10,7 @@ abstract class Chart extends StatefulWidget { @override State createState() { - return controller.createChartState(); + return controller.createChartState()!; } const Chart(this.controller); @@ -33,7 +33,7 @@ abstract class ChartState extends State { isCapturing = true; _screenshotController.capture(pixelRatio: 3.0).then((imgFile) { - ImageGallerySaver.saveImage(imgFile); + ImageGallerySaver.saveImage(imgFile!); isCapturing = false; }).catchError((error) { isCapturing = false; diff --git a/mp_chart/lib/mp/chart/combined_chart.dart b/mp_chart/lib/mp/chart/combined_chart.dart index bed375ce..0c41443a 100644 --- a/mp_chart/lib/mp/chart/combined_chart.dart +++ b/mp_chart/lib/mp/chart/combined_chart.dart @@ -19,10 +19,10 @@ class CombinedChart class CombinedChartState extends ChartState { @override void updatePainter() { - widget.controller.painter.highlightValue6(lastHighlighted, false); + widget.controller.painter!.highlightValue6(lastHighlighted, false); } - IDataSet _closestDataSetToTouch; + IDataSet? _closestDataSetToTouch; double _curX = 0.0; double _curY = 0.0; @@ -30,7 +30,7 @@ class CombinedChartState extends ChartState { bool _isScaleDirectionConfirm = false; bool _isYDirection = false; - Highlight lastHighlighted; + Highlight? lastHighlighted; MPPointF _getTrans(double x, double y) { return Utils.local2Chart(widget.controller, x, y, inverted: _inverted()); @@ -49,10 +49,10 @@ class CombinedChartState extends ChartState { bool _inverted() { return (_closestDataSetToTouch == null && - widget.controller.painter.isAnyAxisInverted()) || + widget.controller.painter!.isAnyAxisInverted()) || (_closestDataSetToTouch != null && - widget.controller.painter - .isInverted(_closestDataSetToTouch.getAxisDependency())); + widget.controller.painter! + .isInverted(_closestDataSetToTouch!.getAxisDependency())); } @override @@ -60,23 +60,23 @@ class CombinedChartState extends ChartState { widget.controller.stopDeceleration(); _curX = details.localPosition.dx; _curY = details.localPosition.dy; - _closestDataSetToTouch = widget.controller.painter.getDataSetByTouchPoint( + _closestDataSetToTouch = widget.controller.painter!.getDataSetByTouchPoint( details.localPosition.dx, details.localPosition.dy); if(widget.controller.touchEventListener != null){ var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPosition.dx, details.globalPosition.dy, details.localPosition.dx, details.localPosition.dy); - widget.controller.touchEventListener.onTapDown(point.x, point.y); + widget.controller.touchEventListener!.onTapDown(point.x, point.y); } } @override void onSingleTapUp(TapUpDetails details) { - if (widget.controller.painter.highlightPerDragEnabled) { - Highlight h = widget.controller.painter.getHighlightByTouchPoint( + if (widget.controller.painter!.highlightPerDragEnabled) { + Highlight? h = widget.controller.painter!.getHighlightByTouchPoint( details.localPosition.dx, details.localPosition.dy); lastHighlighted = HighlightUtils.performHighlight( widget.controller.painter, h, lastHighlighted); @@ -86,25 +86,25 @@ class CombinedChartState extends ChartState { } if(widget.controller.touchEventListener != null){ var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPosition.dx, details.globalPosition.dy, details.localPosition.dx, details.localPosition.dy); - widget.controller.touchEventListener.onSingleTapUp(point.x, point.y); + widget.controller.touchEventListener!.onSingleTapUp(point.x, point.y); } } @override void onDoubleTapUp(TapUpDetails details) { widget.controller.stopDeceleration(); - if (widget.controller.painter.doubleTapToZoomEnabled && - widget.controller.painter.getData().getEntryCount() > 0) { + if (widget.controller.painter!.doubleTapToZoomEnabled && + widget.controller.painter!.getData()!.getEntryCount() > 0) { MPPointF trans = _getTrans(details.localPosition.dx, details.localPosition.dy); - widget.controller.painter.zoom( - widget.controller.painter.scaleXEnabled ? 1.2 : 1, - widget.controller.painter.scaleYEnabled ? 1.2 : 1, + widget.controller.painter!.zoom( + widget.controller.painter!.scaleXEnabled ? 1.2 : 1, + widget.controller.painter!.scaleYEnabled ? 1.2 : 1, trans.x, trans.y); setStateIfNotDispose(); @@ -112,12 +112,12 @@ class CombinedChartState extends ChartState { } if(widget.controller.touchEventListener != null){ var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPosition.dx, details.globalPosition.dy, details.localPosition.dx, details.localPosition.dy); - widget.controller.touchEventListener.onDoubleTapUp(point.x, point.y); + widget.controller.touchEventListener!.onDoubleTapUp(point.x, point.y); } } @@ -128,12 +128,12 @@ class CombinedChartState extends ChartState { _curY = details.localPoint.dy; if(widget.controller.touchEventListener != null){ var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPoint.dx, details.globalPoint.dy, details.localPoint.dx, details.localPoint.dy); - widget.controller.touchEventListener.onMoveStart(point.x, point.y); + widget.controller.touchEventListener!.onMoveStart(point.x, point.y); } } @@ -143,8 +143,8 @@ class CombinedChartState extends ChartState { var dx = details.localPoint.dx - _curX; var dy = details.localPoint.dy - _curY; - if (widget.controller.painter.highlightPerDragEnabled) { - final highlighted = widget.controller.painter.getHighlightByTouchPoint( + if (widget.controller.painter!.highlightPerDragEnabled) { + final highlighted = widget.controller.painter!.getHighlightByTouchPoint( details.localPoint.dx, details.localPoint.dy); if (highlighted?.equalTo(lastHighlighted) == false) { lastHighlighted = HighlightUtils.performHighlight( @@ -153,34 +153,34 @@ class CombinedChartState extends ChartState { } } - if (widget.controller.painter.dragYEnabled && - widget.controller.painter.dragXEnabled) { + if (widget.controller.painter!.dragYEnabled && + widget.controller.painter!.dragXEnabled) { if (_inverted()) { dy = -dy; } - widget.controller.painter.translate(dx, dy); + widget.controller.painter!.translate(dx, dy); needStateIfNotDispose = true; } else { - if (widget.controller.painter.dragXEnabled) { - widget.controller.painter.translate(dx, 0.0); + if (widget.controller.painter!.dragXEnabled) { + widget.controller.painter!.translate(dx, 0.0); needStateIfNotDispose = true; - } else if (widget.controller.painter.dragYEnabled) { + } else if (widget.controller.painter!.dragYEnabled) { if (_inverted()) { dy = -dy; } - widget.controller.painter.translate(0.0, dy); + widget.controller.painter!.translate(0.0, dy); needStateIfNotDispose = true; } } if(widget.controller.touchEventListener != null){ var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPoint.dx, details.globalPoint.dy, details.localPoint.dx, details.localPoint.dy); - widget.controller.touchEventListener.onMoveUpdate(point.x, point.y); + widget.controller.touchEventListener!.onMoveUpdate(point.x, point.y); } if(needStateIfNotDispose){ @@ -199,12 +199,12 @@ class CombinedChartState extends ChartState { ..computeScroll(); if(widget.controller.touchEventListener != null){ var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPoint.dx, details.globalPoint.dy, details.localPoint.dx, details.localPoint.dy); - widget.controller.touchEventListener.onMoveEnd(point.x, point.y); + widget.controller.touchEventListener!.onMoveEnd(point.x, point.y); } } @@ -213,12 +213,12 @@ class CombinedChartState extends ChartState { _scale = -1.0; if(widget.controller.touchEventListener != null){ var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPoint.dx, details.globalPoint.dy, details.localPoint.dx, details.localPoint.dy); - widget.controller.touchEventListener.onScaleEnd(point.x, point.y); + widget.controller.touchEventListener!.onScaleEnd(point.x, point.y); } } @@ -230,12 +230,12 @@ class CombinedChartState extends ChartState { _isScaleDirectionConfirm = false; if(widget.controller.touchEventListener != null){ var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPoint.dx, details.globalPoint.dy, details.localPoint.dx, details.localPoint.dy); - widget.controller.touchEventListener.onScaleStart(point.x, point.y); + widget.controller.touchEventListener!.onScaleStart(point.x, point.y); } } @@ -266,28 +266,28 @@ class CombinedChartState extends ChartState { } MPPointF trans = _getTrans(_curX, _curY); - var h = widget.controller.painter.viewPortHandler; + var h = widget.controller.painter!.viewPortHandler; scale = Utils.optimizeScale(scale); if (pinchZoomEnabled) { - bool canZoomMoreX = scale < 1 ? h.canZoomOutMoreX() : h.canZoomInMoreX(); + bool canZoomMoreX = scale < 1 ? h!.canZoomOutMoreX() : h!.canZoomInMoreX(); bool canZoomMoreY = scale < 1 ? h.canZoomOutMoreY() : h.canZoomInMoreY(); - widget.controller.painter.zoom( + widget.controller.painter!.zoom( canZoomMoreX ? scale : 1, canZoomMoreY ? scale : 1, trans.x, trans.y); needStateIfNotDispose = true; } else { if (_isYDirection) { - if (widget.controller.painter.scaleYEnabled) { + if (widget.controller.painter!.scaleYEnabled) { bool canZoomMoreY = - scale < 1 ? h.canZoomOutMoreY() : h.canZoomInMoreY(); - widget.controller.painter + scale < 1 ? h!.canZoomOutMoreY() : h!.canZoomInMoreY(); + widget.controller.painter! .zoom(1, canZoomMoreY ? scale : 1, trans.x, trans.y); needStateIfNotDispose = true; } } else { - if (widget.controller.painter.scaleXEnabled) { + if (widget.controller.painter!.scaleXEnabled) { bool canZoomMoreX = - scale < 1 ? h.canZoomOutMoreX() : h.canZoomInMoreX(); - widget.controller.painter + scale < 1 ? h!.canZoomOutMoreX() : h!.canZoomInMoreX(); + widget.controller.painter! .zoom(canZoomMoreX ? scale : 1, 1, trans.x, trans.y); needStateIfNotDispose = true; } @@ -296,12 +296,12 @@ class CombinedChartState extends ChartState { if(widget.controller.touchEventListener != null){ var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalFocalPoint.dx, details.globalFocalPoint.dy, details.localFocalPoint.dx, details.localFocalPoint.dy); - widget.controller.touchEventListener.onScaleUpdate(point.x, point.y); + widget.controller.touchEventListener!.onScaleUpdate(point.x, point.y); } if(needStateIfNotDispose) { @@ -320,36 +320,36 @@ class CombinedChartState extends ChartState { void onDragStart(LongPressStartDetails details) { if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPosition.dx, details.globalPosition.dy, details.localPosition.dx, details.localPosition.dy); - widget.controller.touchEventListener.onDragStart(point.x, point.y); + widget.controller.touchEventListener!.onDragStart(point.x, point.y); } } void onDragUpdate(LongPressMoveUpdateDetails details) { if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPosition.dx, details.globalPosition.dy, details.localPosition.dx, details.localPosition.dy); - widget.controller.touchEventListener.onDragUpdate(point.x, point.y); + widget.controller.touchEventListener!.onDragUpdate(point.x, point.y); } } void onDragEnd(LongPressEndDetails details) { if (widget.controller.touchEventListener != null) { var point = _getTouchValue( - widget.controller.touchEventListener.valueType(), + widget.controller.touchEventListener!.valueType(), details.globalPosition.dx, details.globalPosition.dy, details.localPosition.dx, details.localPosition.dy); - widget.controller.touchEventListener.onDragEnd(point.x, point.y); + widget.controller.touchEventListener!.onDragEnd(point.x, point.y); } } } diff --git a/mp_chart/lib/mp/chart/pie_radar_chart.dart b/mp_chart/lib/mp/chart/pie_radar_chart.dart index f0ac5ff7..ef57616e 100644 --- a/mp_chart/lib/mp/chart/pie_radar_chart.dart +++ b/mp_chart/lib/mp/chart/pie_radar_chart.dart @@ -13,24 +13,24 @@ abstract class PieRadarChart extends Chart { abstract class PieRadarChartState extends ChartState { - Highlight lastHighlighted; + Highlight? lastHighlighted; MPPointF _touchStartPoint = MPPointF.getInstance1(0, 0); double _startAngle = 0.0; void _setGestureStartAngle(double x, double y) { if(widget.controller.rotateEnabled) { - _startAngle = widget.controller.painter.getAngleForPoint(x, y) - - widget.controller.painter.getRawRotationAngle(); + _startAngle = widget.controller.painter!.getAngleForPoint(x, y) - + widget.controller.painter!.getRawRotationAngle()!; } } void _updateGestureRotation(double x, double y) { if(widget.controller.rotateEnabled) { double angle = - widget.controller.painter.getAngleForPoint(x, y) - _startAngle; + widget.controller.painter!.getAngleForPoint(x, y) - _startAngle; widget.controller.rawRotationAngle = angle; widget.controller.rotationAngle = - Utils.getNormalizedAngle(widget.controller.rawRotationAngle); + Utils.getNormalizedAngle(widget.controller.rawRotationAngle!); } } @@ -39,8 +39,8 @@ abstract class PieRadarChartState @override void onSingleTapUp(TapUpDetails details) { - if (widget.controller.painter.highLightPerTapEnabled) { - Highlight h = widget.controller.painter.getHighlightByTouchPoint( + if (widget.controller.painter!.highLightPerTapEnabled) { + Highlight? h = widget.controller.painter!.getHighlightByTouchPoint( details.localPosition.dx, details.localPosition.dy); lastHighlighted = HighlightUtils.performHighlight( widget.controller.painter, h, lastHighlighted); @@ -96,9 +96,9 @@ abstract class PieRadarChartState @override void updatePainter() { - if (widget.controller.painter.getData() != null && - widget.controller.painter.getData().dataSets != null && - widget.controller.painter.getData().dataSets.length > 0) - widget.controller.painter.highlightValue6(lastHighlighted, false); + if (widget.controller.painter!.getData() != null && + widget.controller.painter!.getData()!.dataSets != null && + widget.controller.painter!.getData()!.dataSets!.length > 0) + widget.controller.painter!.highlightValue6(lastHighlighted, false); } } diff --git a/mp_chart/lib/mp/controller/bar_chart_controller.dart b/mp_chart/lib/mp/controller/bar_chart_controller.dart index 3ae50722..0c2ba5f6 100644 --- a/mp_chart/lib/mp/controller/bar_chart_controller.dart +++ b/mp_chart/lib/mp/controller/bar_chart_controller.dart @@ -40,35 +40,35 @@ class BarChartController bool drawBorders = false, bool clipValuesToContent = false, double minOffset = 30.0, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, bool customViewPortEnabled = false, - Matrix4 zoomMatrixBuffer, + Matrix4? zoomMatrixBuffer, bool pinchZoomEnabled = true, bool keepPositionOnRotation = false, - Paint gridBackgroundPaint, - Paint borderPaint, - Color backgroundColor, - Color gridBackColor, - Color borderColor, + Paint? gridBackgroundPaint, + Paint? borderPaint, + Color? backgroundColor, + Color? gridBackColor, + Color? borderColor, double borderStrokeWidth = 1.0, - AxisLeftSettingFunction axisLeftSettingFunction, - AxisRightSettingFunction axisRightSettingFunction, - OnTouchEventListener touchEventListener, - ChartTransListener chartTransListener, - IMarker marker, - Description description, + AxisLeftSettingFunction? axisLeftSettingFunction, + AxisRightSettingFunction? axisRightSettingFunction, + OnTouchEventListener? touchEventListener, + ChartTransListener? chartTransListener, + IMarker? marker, + Description? description, String noDataText = "No chart data available.", - XAxisSettingFunction xAxisSettingFunction, - LegendSettingFunction legendSettingFunction, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectionListener, + XAxisSettingFunction? xAxisSettingFunction, + LegendSettingFunction? legendSettingFunction, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectionListener, double maxHighlightDistance = 100.0, bool highLightPerTapEnabled = true, double extraTopOffset = 0.0, @@ -80,9 +80,9 @@ class BarChartController bool resolveGestureVerticalConflict = false, double descTextSize = 12, double infoTextSize = 12, - Color descTextColor, - Color infoTextColor, - Color infoBgColor, + Color? descTextColor, + Color? infoTextColor, + Color? infoBgColor, }) : super( marker: marker, description: description, @@ -197,21 +197,21 @@ class BarChartController chartTransListener); } - BarChartPainter get painter => super.painter; + BarChartPainter? get painter => super.painter; - BarChartState get state => super.state; + BarChartState? get state => super.state as BarChartState?; @override IMarker initMarker() => BarChartMarker(); - BarData get data => super.data; + BarData? get data => super.data as BarData?; void groupBars(double fromX, double groupSpace, double barSpace) { if (data == null) { throw Exception( "You need to set data for the chart before grouping bars."); } else { - data.groupBars(fromX, groupSpace, barSpace); + data!.groupBars(fromX, groupSpace, barSpace); } } diff --git a/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart b/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart index 88822c69..3d779f10 100644 --- a/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart +++ b/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart @@ -31,36 +31,36 @@ abstract class BarLineScatterCandleBubbleController< bool drawBorders; bool clipValuesToContent; double minOffset; - OnDrawListener drawListener; - YAxis axisLeft; - YAxis axisRight; - YAxisRenderer axisRendererLeft; - YAxisRenderer axisRendererRight; - Transformer leftAxisTransformer; - Transformer rightAxisTransformer; - XAxisRenderer xAxisRenderer; + OnDrawListener? drawListener; + YAxis? axisLeft; + YAxis? axisRight; + YAxisRenderer? axisRendererLeft; + YAxisRenderer? axisRendererRight; + Transformer? leftAxisTransformer; + Transformer? rightAxisTransformer; + XAxisRenderer? xAxisRenderer; bool customViewPortEnabled; - Matrix4 zoomMatrixBuffer; + Matrix4? zoomMatrixBuffer; bool pinchZoomEnabled; bool keepPositionOnRotation; - Paint gridBackgroundPaint; - Paint borderPaint; + Paint? gridBackgroundPaint; + Paint? borderPaint; - Paint backgroundPaint; - Color gridBackColor; - Color borderColor; - Color backgroundColor; + Paint? backgroundPaint; + Color? gridBackColor; + Color? borderColor; + Color? backgroundColor; double borderStrokeWidth; /// this is used for user get touch event if they needed - OnTouchEventListener touchEventListener; + OnTouchEventListener? touchEventListener; /// this is used for have a callback when chart translate or scale - ChartTransListener chartTransListener; + ChartTransListener? chartTransListener; - AxisLeftSettingFunction axisLeftSettingFunction; - AxisRightSettingFunction axisRightSettingFunction; + AxisLeftSettingFunction? axisLeftSettingFunction; + AxisRightSettingFunction? axisRightSettingFunction; MPPointF _decelerationVelocity = MPPointF.getInstance1(0, 0); @@ -108,13 +108,13 @@ abstract class BarLineScatterCandleBubbleController< this.axisRightSettingFunction, this.touchEventListener, this.chartTransListener, - IMarker marker, - Description description, + IMarker? marker, + Description? description, String noDataText = "No chart data available.", - XAxisSettingFunction xAxisSettingFunction, - LegendSettingFunction legendSettingFunction, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectionListener, + XAxisSettingFunction? xAxisSettingFunction, + LegendSettingFunction? legendSettingFunction, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectionListener, double maxHighlightDistance = 100.0, bool highLightPerTapEnabled = true, double extraTopOffset = 0.0, @@ -126,9 +126,9 @@ abstract class BarLineScatterCandleBubbleController< bool resolveGestureVerticalConflict = false, double descTextSize = 12, double infoTextSize = 12, - Color descTextColor, - Color infoTextColor, - Color infoBgColor}) + Color? descTextColor, + Color? infoTextColor, + Color? infoBgColor}) : super( marker: marker, description: description, @@ -152,7 +152,7 @@ abstract class BarLineScatterCandleBubbleController< infoBgColor: infoBgColor, infoTextColor: infoTextColor); - OnDrawListener initDrawListener() { + OnDrawListener? initDrawListener() { return null; } @@ -179,16 +179,16 @@ abstract class BarLineScatterCandleBubbleController< gridBackgroundPaint = Paint() ..color = gridBackColor == null ? Color.fromARGB(255, 240, 240, 240) - : gridBackColor + : gridBackColor! ..style = PaintingStyle.fill; borderPaint = Paint() - ..color = borderColor == null ? ColorUtils.BLACK : borderColor + ..color = borderColor == null ? ColorUtils.BLACK : borderColor! ..style = PaintingStyle.stroke - ..strokeWidth = Utils.convertDpToPixel(borderStrokeWidth); + ..strokeWidth = Utils.convertDpToPixel(borderStrokeWidth)!; backgroundPaint = Paint() - ..color = backgroundColor == null ? ColorUtils.WHITE : backgroundColor; + ..color = backgroundColor == null ? ColorUtils.WHITE : backgroundColor!; drawListener ??= initDrawListener(); if (axisLeft == null) { @@ -204,19 +204,19 @@ abstract class BarLineScatterCandleBubbleController< axisRendererRight = initAxisRendererRight(); xAxisRenderer = initXAxisRenderer(); if (axisLeftSettingFunction != null) { - axisLeftSettingFunction(axisLeft, this); + axisLeftSettingFunction!(axisLeft, this); } if (axisRightSettingFunction != null) { - axisRightSettingFunction(axisRight, this); + axisRightSettingFunction!(axisRight, this); } } - P get painter => super.painter; + P? get painter => super.painter; void setViewPortOffsets(final double left, final double top, final double right, final double bottom) { customViewPortEnabled = true; - viewPortHandler.restrainViewPort(left, top, right, bottom); + viewPortHandler!.restrainViewPort(left, top, right, bottom); } Matrix4 initZoomMatrixBuffer() => Matrix4.identity(); @@ -227,8 +227,8 @@ abstract class BarLineScatterCandleBubbleController< /// @param scaleX /// @param scaleY void setScaleMinima(double scaleX, double scaleY) { - viewPortHandler.setMinimumScaleX(scaleX); - viewPortHandler.setMinimumScaleY(scaleY); + viewPortHandler!.setMinimumScaleX(scaleX); + viewPortHandler!.setMinimumScaleY(scaleY); } /// Moves the left side of the current viewport to the specified x-position. @@ -241,7 +241,7 @@ abstract class BarLineScatterCandleBubbleController< pts.add(0.0); painter?.getTransformer(AxisDependency.LEFT)?.pointValuesToPixel(pts); - viewPortHandler.centerViewPort(pts); + viewPortHandler!.centerViewPort(pts); } /// This will center the viewport to the specified y value on the y-axis. @@ -250,13 +250,13 @@ abstract class BarLineScatterCandleBubbleController< /// @param yValue /// @param axis - which axis should be used as a reference for the y-axis void moveViewToY(double yValue, AxisDependency axis) { - double yInView = getAxisRange(axis) / viewPortHandler.getScaleY(); + double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); List pts = List(); pts.add(0.0); pts.add(yValue + yInView / 2); painter?.getTransformer(axis)?.pointValuesToPixel(pts); - viewPortHandler.centerViewPort(pts); + viewPortHandler!.centerViewPort(pts); } /// This will move the left side of the current viewport to the specified @@ -267,12 +267,12 @@ abstract class BarLineScatterCandleBubbleController< /// @param yValue /// @param axis - which axis should be used as a reference for the y-axis void moveViewTo(double xValue, double yValue, AxisDependency axis) { - double yInView = getAxisRange(axis) / viewPortHandler.getScaleY(); + double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); List pts = List(); pts.add(xValue); pts.add(yValue + yInView / 2); painter?.getTransformer(axis)?.pointValuesToPixel(pts); - viewPortHandler.centerViewPort(pts); + viewPortHandler!.centerViewPort(pts); } /// This will move the left side of the current viewport to the specified x-value @@ -286,20 +286,20 @@ abstract class BarLineScatterCandleBubbleController< void moveViewToAnimated( double xValue, double yValue, AxisDependency axis, int durationMillis) { MPPointD bounds = getValuesByTouchPoint( - viewPortHandler.contentLeft(), viewPortHandler.contentTop(), axis); - double yInView = getAxisRange(axis) / viewPortHandler.getScaleY(); + viewPortHandler!.contentLeft(), viewPortHandler!.contentTop(), axis); + double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); yValue = yValue + yInView / 2; List pts = List(); pts.add(xValue); pts.add(yValue); - double xOrigin = bounds.x; - double yOrigin = bounds.y; + double? xOrigin = bounds.x; + double? yOrigin = bounds.y; ChartAnimator(UpdateListener((x, y) { - pts[0] = xOrigin + (xValue - xOrigin) * x; - pts[1] = yOrigin + (yValue - yOrigin) * y; + pts[0] = xOrigin! + (xValue - xOrigin) * x; + pts[1] = yOrigin! + (yValue - yOrigin) * y; painter?.getTransformer(axis)?.pointValuesToPixel(pts); - viewPortHandler.centerViewPort(pts); + viewPortHandler!.centerViewPort(pts); state?.setStateIfNotDispose(); })).animateXY1(durationMillis, durationMillis); @@ -312,12 +312,12 @@ abstract class BarLineScatterCandleBubbleController< /// @param yValue /// @param axis - which axis should be used as a reference for the y-axis void centerViewToY(double yValue, AxisDependency axis) { - double valsInView = getAxisRange(axis) / viewPortHandler.getScaleY(); + double valsInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); List pts = List(); pts.add(0.0); pts.add(yValue + valsInView / 2); painter?.getTransformer(axis)?.pointValuesToPixel(pts); - viewPortHandler.centerViewPort(pts); + viewPortHandler!.centerViewPort(pts); } /// This will move the center of the current viewport to the specified @@ -328,13 +328,13 @@ abstract class BarLineScatterCandleBubbleController< /// @param yValue /// @param axis - which axis should be used as a reference for the y axis void centerViewTo(double xValue, double yValue, AxisDependency axis) { - double yInView = getAxisRange(axis) / viewPortHandler.getScaleY(); - double xInView = xAxis.axisRange / viewPortHandler.getScaleX(); + double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); + double xInView = xAxis!.axisRange / viewPortHandler!.getScaleX(); List pts = List(); pts.add(xValue - xInView / 2); pts.add(yValue + yInView / 2); painter?.getTransformer(axis)?.pointValuesToPixel(pts); - viewPortHandler.centerViewPort(pts); + viewPortHandler!.centerViewPort(pts); } /// This will move the center of the current viewport to the specified @@ -347,22 +347,22 @@ abstract class BarLineScatterCandleBubbleController< void centerViewToAnimated( double xValue, double yValue, AxisDependency axis, int durationMillis) { MPPointD bounds = getValuesByTouchPoint( - viewPortHandler.contentLeft(), viewPortHandler.contentTop(), axis); - double yInView = getAxisRange(axis) / viewPortHandler.getScaleY(); - double xInView = xAxis.axisRange / viewPortHandler.getScaleX(); + viewPortHandler!.contentLeft(), viewPortHandler!.contentTop(), axis); + double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); + double xInView = xAxis!.axisRange / viewPortHandler!.getScaleX(); xValue = xValue - xInView / 2; yValue = yValue + yInView / 2; List pts = List(); pts.add(xValue); pts.add(yValue); - double xOrigin = bounds.x; - double yOrigin = bounds.y; + double? xOrigin = bounds.x; + double? yOrigin = bounds.y; ChartAnimator(UpdateListener((x, y) { - pts[0] = xOrigin + (xValue - xOrigin) * x; - pts[1] = yOrigin + (yValue - yOrigin) * y; + pts[0] = xOrigin! + (xValue - xOrigin) * x; + pts[1] = yOrigin! + (yValue - yOrigin) * y; painter?.getTransformer(axis)?.pointValuesToPixel(pts); - viewPortHandler.centerViewPort(pts); + viewPortHandler!.centerViewPort(pts); state?.setStateIfNotDispose(); })).animateXY1(durationMillis, durationMillis); @@ -376,8 +376,8 @@ abstract class BarLineScatterCandleBubbleController< /// /// @param maxXRange The maximum visible range of x-values. void setVisibleXRangeMaximum(double maxXRange) { - double xScale = xAxis.axisRange / (maxXRange); - viewPortHandler.setMinimumScaleX(xScale); + double xScale = xAxis!.axisRange / (maxXRange); + viewPortHandler!.setMinimumScaleX(xScale); } /// Sets the size of the area (range on the x-axis) that should be minimum @@ -387,8 +387,8 @@ abstract class BarLineScatterCandleBubbleController< /// /// @param minXRange The minimum visible range of x-values. void setVisibleXRangeMinimum(double minXRange) { - double xScale = xAxis.axisRange / (minXRange); - viewPortHandler.setMaximumScaleX(xScale); + double xScale = xAxis!.axisRange / (minXRange); + viewPortHandler!.setMaximumScaleX(xScale); } /// Limits the maximum and minimum x range that can be visible by pinching and zooming. e.g. minRange=10, maxRange=100 the @@ -398,16 +398,16 @@ abstract class BarLineScatterCandleBubbleController< /// @param minXRange /// @param maxXRange void setVisibleXRange(double minXRange, double maxXRange) { - double minScale = xAxis.axisRange / minXRange; - double maxScale = xAxis.axisRange / maxXRange; - viewPortHandler.setMinMaxScaleX(minScale, maxScale); + double minScale = xAxis!.axisRange / minXRange; + double maxScale = xAxis!.axisRange / maxXRange; + viewPortHandler!.setMinMaxScaleX(minScale, maxScale); } double getAxisRange(AxisDependency axis) { if (axis == AxisDependency.LEFT) - return axisLeft.axisRange; + return axisLeft!.axisRange; else - return axisRight.axisRange; + return axisRight!.axisRange; } MPPointD getValuesByTouchPoint(double x, double y, AxisDependency axis) { @@ -428,7 +428,7 @@ abstract class BarLineScatterCandleBubbleController< /// @param axis the axis for which this limit should apply void setVisibleYRangeMaximum(double maxYRange, AxisDependency axis) { double yScale = getAxisRange(axis) / maxYRange; - viewPortHandler.setMinimumScaleY(yScale); + viewPortHandler!.setMinimumScaleY(yScale); } /// Sets the size of the area (range on the y-axis) that should be minimum visible at once, no further zooming in possible. @@ -437,7 +437,7 @@ abstract class BarLineScatterCandleBubbleController< /// @param axis the axis for which this limit should apply void setVisibleYRangeMinimum(double minYRange, AxisDependency axis) { double yScale = getAxisRange(axis) / minYRange; - viewPortHandler.setMaximumScaleY(yScale); + viewPortHandler!.setMaximumScaleY(yScale); } /// Limits the maximum and minimum y range that can be visible by pinching and zooming. @@ -449,7 +449,7 @@ abstract class BarLineScatterCandleBubbleController< double minYRange, double maxYRange, AxisDependency axis) { double minScale = getAxisRange(axis) / minYRange; double maxScale = getAxisRange(axis) / maxYRange; - viewPortHandler.setMinMaxScaleY(minScale, maxScale); + viewPortHandler!.setMinMaxScaleY(minScale, maxScale); } void stopDeceleration() { @@ -478,26 +478,26 @@ abstract class BarLineScatterCandleBubbleController< double timeInterval = (currentTime - _decelerationLastTime) / 1000; - double distanceX = _decelerationVelocity.x * timeInterval; - double distanceY = _decelerationVelocity.y * timeInterval; + double distanceX = _decelerationVelocity.x! * timeInterval; + double distanceY = _decelerationVelocity.y! * timeInterval; double dragDistanceX = dragXEnabled ? distanceX : 0; double dragDistanceY = dragYEnabled ? distanceY : 0; - painter.translate(dragDistanceX, dragDistanceY); + painter!.translate(dragDistanceX, dragDistanceY); _decelerationLastTime = currentTime; } - if (_decelerationVelocity.x.abs() >= 20 || - _decelerationVelocity.y.abs() >= 20) { - state.setStateIfNotDispose(); + if (_decelerationVelocity.x!.abs() >= 20 || + _decelerationVelocity.y!.abs() >= 20) { + state!.setStateIfNotDispose(); Future.delayed(Duration(milliseconds: 16), () { computeScroll(); }); } else { - painter.calculateOffsets(); - state.setStateIfNotDispose(); + painter!.calculateOffsets(); + state!.setStateIfNotDispose(); stopDeceleration(); } } @@ -514,7 +514,7 @@ class UpdateListener implements AnimatorUpdateListener { } @override - void onRotateUpdate(double angle) {} + void onRotateUpdate(double? angle) {} } typedef UpdateFunction = void Function(double x, double y); diff --git a/mp_chart/lib/mp/controller/bubble_chart_controller.dart b/mp_chart/lib/mp/controller/bubble_chart_controller.dart index bb92032c..53240d42 100644 --- a/mp_chart/lib/mp/controller/bubble_chart_controller.dart +++ b/mp_chart/lib/mp/controller/bubble_chart_controller.dart @@ -30,35 +30,35 @@ class BubbleChartController bool drawBorders = false, bool clipValuesToContent = false, double minOffset = 30.0, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, bool customViewPortEnabled = false, - Matrix4 zoomMatrixBuffer, + Matrix4? zoomMatrixBuffer, bool pinchZoomEnabled = true, bool keepPositionOnRotation = false, - Paint gridBackgroundPaint, - Paint borderPaint, - Color backgroundColor, - Color gridBackColor, - Color borderColor, + Paint? gridBackgroundPaint, + Paint? borderPaint, + Color? backgroundColor, + Color? gridBackColor, + Color? borderColor, double borderStrokeWidth = 1.0, - AxisLeftSettingFunction axisLeftSettingFunction, - AxisRightSettingFunction axisRightSettingFunction, - OnTouchEventListener touchEventListener, - ChartTransListener chartTransListener, - IMarker marker, - Description description, + AxisLeftSettingFunction? axisLeftSettingFunction, + AxisRightSettingFunction? axisRightSettingFunction, + OnTouchEventListener? touchEventListener, + ChartTransListener? chartTransListener, + IMarker? marker, + Description? description, String noDataText = "No chart data available.", - XAxisSettingFunction xAxisSettingFunction, - LegendSettingFunction legendSettingFunction, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectionListener, + XAxisSettingFunction? xAxisSettingFunction, + LegendSettingFunction? legendSettingFunction, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectionListener, double maxHighlightDistance = 100.0, bool highLightPerTapEnabled = true, double extraTopOffset = 0.0, @@ -70,9 +70,9 @@ class BubbleChartController bool resolveGestureVerticalConflict = false, double descTextSize = 12, double infoTextSize = 12, - Color descTextColor, - Color infoTextColor, - Color infoBgColor, + Color? descTextColor, + Color? infoTextColor, + Color? infoBgColor, }) : super( marker: marker, description: description, @@ -130,11 +130,11 @@ class BubbleChartController touchEventListener: touchEventListener, chartTransListener: chartTransListener); - BubbleData get data => super.data; + BubbleData? get data => super.data as BubbleData?; - BubbleChartState get state => super.state; + BubbleChartState? get state => super.state as BubbleChartState?; - BubbleChartPainter get painter => super.painter; + BubbleChartPainter? get painter => super.painter; @override void initialPainter() { diff --git a/mp_chart/lib/mp/controller/candlestick_chart_controller.dart b/mp_chart/lib/mp/controller/candlestick_chart_controller.dart index 9f7f094f..dda0a771 100644 --- a/mp_chart/lib/mp/controller/candlestick_chart_controller.dart +++ b/mp_chart/lib/mp/controller/candlestick_chart_controller.dart @@ -30,34 +30,34 @@ class CandlestickChartController bool drawBorders = false, bool clipValuesToContent = false, double minOffset = 30.0, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, bool customViewPortEnabled = false, - Matrix4 zoomMatrixBuffer, + Matrix4? zoomMatrixBuffer, bool pinchZoomEnabled = true, bool keepPositionOnRotation = false, - Paint gridBackgroundPaint, - Paint borderPaint, - Color backgroundColor, - Color gridBackColor, - Color borderColor, + Paint? gridBackgroundPaint, + Paint? borderPaint, + Color? backgroundColor, + Color? gridBackColor, + Color? borderColor, double borderStrokeWidth = 1.0, - AxisLeftSettingFunction axisLeftSettingFunction, - AxisRightSettingFunction axisRightSettingFunction, - OnTouchEventListener touchEventListener, - IMarker marker, - Description description, + AxisLeftSettingFunction? axisLeftSettingFunction, + AxisRightSettingFunction? axisRightSettingFunction, + OnTouchEventListener? touchEventListener, + IMarker? marker, + Description? description, String noDataText = "No chart data available.", - XAxisSettingFunction xAxisSettingFunction, - LegendSettingFunction legendSettingFunction, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectionListener, + XAxisSettingFunction? xAxisSettingFunction, + LegendSettingFunction? legendSettingFunction, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectionListener, double maxHighlightDistance = 100.0, bool highLightPerTapEnabled = true, double extraTopOffset = 0.0, @@ -69,10 +69,10 @@ class CandlestickChartController bool resolveGestureVerticalConflict = false, double descTextSize = 12, double infoTextSize = 12, - Color descTextColor, - Color infoTextColor, - Color infoBgColor, - ChartTransListener chartTransListener}) + Color? descTextColor, + Color? infoTextColor, + Color? infoBgColor, + ChartTransListener? chartTransListener}) : super( marker: marker, description: description, @@ -130,11 +130,11 @@ class CandlestickChartController touchEventListener: touchEventListener, chartTransListener: chartTransListener); - CandleData get data => super.data; + CandleData? get data => super.data as CandleData?; - CandlestickChartState get state => super.state; + CandlestickChartState? get state => super.state as CandlestickChartState?; - CandlestickChartPainter get painter => super.painter; + CandlestickChartPainter? get painter => super.painter; @override void initialPainter() { diff --git a/mp_chart/lib/mp/controller/combined_chart_controller.dart b/mp_chart/lib/mp/controller/combined_chart_controller.dart index 613f716a..cda1a599 100644 --- a/mp_chart/lib/mp/controller/combined_chart_controller.dart +++ b/mp_chart/lib/mp/controller/combined_chart_controller.dart @@ -20,7 +20,7 @@ class CombinedChartController bool highlightFullBarEnabled; bool drawBarShadow; bool fitBars; - List drawOrder; + List? drawOrder; CombinedChartController( {this.drawValueAboveBar = false, @@ -40,34 +40,34 @@ class CombinedChartController bool drawBorders = false, bool clipValuesToContent = false, double minOffset = 30.0, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, bool customViewPortEnabled = false, - Matrix4 zoomMatrixBuffer, + Matrix4? zoomMatrixBuffer, bool pinchZoomEnabled = true, bool keepPositionOnRotation = false, - Paint gridBackgroundPaint, - Paint borderPaint, - Color backgroundColor, - Color gridBackColor, - Color borderColor, + Paint? gridBackgroundPaint, + Paint? borderPaint, + Color? backgroundColor, + Color? gridBackColor, + Color? borderColor, double borderStrokeWidth = 1.0, - AxisLeftSettingFunction axisLeftSettingFunction, - AxisRightSettingFunction axisRightSettingFunction, - OnTouchEventListener touchEventListener, - IMarker marker, - Description description, + AxisLeftSettingFunction? axisLeftSettingFunction, + AxisRightSettingFunction? axisRightSettingFunction, + OnTouchEventListener? touchEventListener, + IMarker? marker, + Description? description, String noDataText = "No chart data available.", - XAxisSettingFunction xAxisSettingFunction, - LegendSettingFunction legendSettingFunction, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectionListener, + XAxisSettingFunction? xAxisSettingFunction, + LegendSettingFunction? legendSettingFunction, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectionListener, double maxHighlightDistance = 100.0, bool highLightPerTapEnabled = true, double extraTopOffset = 0.0, @@ -79,10 +79,10 @@ class CombinedChartController bool resolveGestureVerticalConflict = false, double descTextSize = 12, double infoTextSize = 12, - Color descTextColor, - Color infoTextColor, - Color infoBgColor, - ChartTransListener chartTransListener}) + Color? descTextColor, + Color? infoTextColor, + Color? infoBgColor, + ChartTransListener? chartTransListener}) : super( marker: marker, description: description, @@ -140,11 +140,11 @@ class CombinedChartController touchEventListener: touchEventListener, chartTransListener: chartTransListener); - CombinedData get data => super.data; + CombinedData? get data => super.data as CombinedData?; - CombinedChartPainter get painter => super.painter; + CombinedChartPainter? get painter => super.painter; - CombinedChartState get state => super.state; + CombinedChartState? get state => super.state as CombinedChartState?; @override void initialPainter() { diff --git a/mp_chart/lib/mp/controller/controller.dart b/mp_chart/lib/mp/controller/controller.dart index 5bb27406..04076226 100644 --- a/mp_chart/lib/mp/controller/controller.dart +++ b/mp_chart/lib/mp/controller/controller.dart @@ -18,37 +18,37 @@ import 'package:optimized_gesture_detector/gesture_dectetor.dart'; abstract class Controller

implements AnimatorUpdateListener { - ChartState state; - ChartData data; - Animator animator; - P _painter; + ChartState? state; + ChartData? data; + Animator? animator; + P? _painter; ////// needed - IMarker marker; - Description description; - ViewPortHandler viewPortHandler; - XAxis xAxis; - Legend legend; - LegendRenderer legendRenderer; - OnChartValueSelectedListener selectionListener; + IMarker? marker; + Description? description; + ViewPortHandler? viewPortHandler; + XAxis? xAxis; + Legend? legend; + LegendRenderer? legendRenderer; + OnChartValueSelectedListener? selectionListener; ////// option - double maxHighlightDistance; + double? maxHighlightDistance; bool highLightPerTapEnabled; double extraTopOffset, extraRightOffset, extraBottomOffset, extraLeftOffset; bool drawMarkers; ////// split child property - Color infoBgColor; - TextPainter descPaint; - TextPainter infoPaint; + Color? infoBgColor; + TextPainter? descPaint; + TextPainter? infoPaint; - XAxisSettingFunction xAxisSettingFunction; - LegendSettingFunction legendSettingFunction; - DataRendererSettingFunction rendererSettingFunction; + XAxisSettingFunction? xAxisSettingFunction; + LegendSettingFunction? legendSettingFunction; + DataRendererSettingFunction? rendererSettingFunction; - CanDragDownFunction horizontalConflictResolveFunc; - CanDragDownFunction verticalConflictResolveFunc; + CanDragDownFunction? horizontalConflictResolveFunc; + CanDragDownFunction? verticalConflictResolveFunc; Controller( {this.marker, @@ -69,8 +69,8 @@ abstract class Controller

bool resolveGestureVerticalConflict = false, double descTextSize = 12, double infoTextSize = 12, - Color descTextColor, - Color infoTextColor, + Color? descTextColor, + Color? infoTextColor, this.infoBgColor, this.descPaint, this.infoPaint, @@ -110,7 +110,7 @@ abstract class Controller

} } - IMarker initMarker() => null; + IMarker? initMarker() => null; Description initDescription() => Description(); @@ -123,9 +123,9 @@ abstract class Controller

LegendRenderer initLegendRenderer() => LegendRenderer(viewPortHandler, legend); - OnChartValueSelectedListener initSelectionListener() => null; + OnChartValueSelectedListener? initSelectionListener() => null; - ChartState createChartState() { + ChartState? createChartState() { state = createRealState(); return state; } @@ -139,10 +139,10 @@ abstract class Controller

xAxis = initXAxis(); } if (legendSettingFunction != null) { - legendSettingFunction(legend, this); + legendSettingFunction!(legend, this); } if (xAxisSettingFunction != null) { - xAxisSettingFunction(xAxis, this); + xAxisSettingFunction!(xAxis, this); } } @@ -154,13 +154,13 @@ abstract class Controller

} @override - void onRotateUpdate(double angle) {} + void onRotateUpdate(double? angle) {} // ignore: unnecessary_getters_setters - P get painter => _painter; + P? get painter => _painter; // ignore: unnecessary_getters_setters - set painter(P value) { + set painter(P? value) { _painter = value; } } diff --git a/mp_chart/lib/mp/controller/horizontal_bar_chart_controller.dart b/mp_chart/lib/mp/controller/horizontal_bar_chart_controller.dart index 6067dce1..fc88ff41 100644 --- a/mp_chart/lib/mp/controller/horizontal_bar_chart_controller.dart +++ b/mp_chart/lib/mp/controller/horizontal_bar_chart_controller.dart @@ -37,34 +37,34 @@ class HorizontalBarChartController extends BarChartController { bool drawBorders = false, bool clipValuesToContent = false, double minOffset = 30.0, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, bool customViewPortEnabled = false, - Matrix4 zoomMatrixBuffer, + Matrix4? zoomMatrixBuffer, bool pinchZoomEnabled = true, bool keepPositionOnRotation = false, - Paint gridBackgroundPaint, - Paint borderPaint, - Color backgroundColor, - Color gridBackColor, - Color borderColor, + Paint? gridBackgroundPaint, + Paint? borderPaint, + Color? backgroundColor, + Color? gridBackColor, + Color? borderColor, double borderStrokeWidth = 1.0, - AxisLeftSettingFunction axisLeftSettingFunction, - AxisRightSettingFunction axisRightSettingFunction, - OnTouchEventListener touchEventListener, - IMarker marker, - Description description, + AxisLeftSettingFunction? axisLeftSettingFunction, + AxisRightSettingFunction? axisRightSettingFunction, + OnTouchEventListener? touchEventListener, + IMarker? marker, + Description? description, String noDataText = "No chart data available.", - XAxisSettingFunction xAxisSettingFunction, - LegendSettingFunction legendSettingFunction, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectionListener, + XAxisSettingFunction? xAxisSettingFunction, + LegendSettingFunction? legendSettingFunction, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectionListener, double maxHighlightDistance = 100.0, bool highLightPerTapEnabled = true, double extraTopOffset = 0.0, @@ -76,10 +76,10 @@ class HorizontalBarChartController extends BarChartController { bool resolveGestureVerticalConflict = false, double descTextSize = 12, double infoTextSize = 12, - Color descTextColor, - Color infoTextColor, - Color infoBgColor, - ChartTransListener chartTransListener}) + Color? descTextColor, + Color? infoTextColor, + Color? infoBgColor, + ChartTransListener? chartTransListener}) : super( highlightFullBarEnabled: highlightFullBarEnabled, drawValueAboveBar: drawValueAboveBar, @@ -141,7 +141,7 @@ class HorizontalBarChartController extends BarChartController { touchEventListener: touchEventListener, chartTransListener: chartTransListener); - HorizontalBarChartPainter get painter => super.painter; + HorizontalBarChartPainter? get painter => super.painter as HorizontalBarChartPainter?; @override void initialPainter() { @@ -228,33 +228,33 @@ class HorizontalBarChartController extends BarChartController { @override void setVisibleXRangeMaximum(double maxXRange) { - double xScale = xAxis.axisRange / (maxXRange); - viewPortHandler.setMinimumScaleY(xScale); + double xScale = xAxis!.axisRange / (maxXRange); + viewPortHandler!.setMinimumScaleY(xScale); } @override void setVisibleXRangeMinimum(double minXRange) { - double xScale = xAxis.axisRange / (minXRange); - viewPortHandler.setMaximumScaleY(xScale); + double xScale = xAxis!.axisRange / (minXRange); + viewPortHandler!.setMaximumScaleY(xScale); } @override void setVisibleXRange(double minXRange, double maxXRange) { - double minScale = xAxis.axisRange / minXRange; - double maxScale = xAxis.axisRange / maxXRange; - viewPortHandler.setMinMaxScaleY(minScale, maxScale); + double minScale = xAxis!.axisRange / minXRange; + double maxScale = xAxis!.axisRange / maxXRange; + viewPortHandler!.setMinMaxScaleY(minScale, maxScale); } @override void setVisibleYRangeMaximum(double maxYRange, AxisDependency axis) { double yScale = getAxisRange(axis) / maxYRange; - viewPortHandler.setMinimumScaleX(yScale); + viewPortHandler!.setMinimumScaleX(yScale); } @override void setVisibleYRangeMinimum(double minYRange, AxisDependency axis) { double yScale = getAxisRange(axis) / minYRange; - viewPortHandler.setMaximumScaleX(yScale); + viewPortHandler!.setMaximumScaleX(yScale); } @override @@ -262,6 +262,6 @@ class HorizontalBarChartController extends BarChartController { double minYRange, double maxYRange, AxisDependency axis) { double minScale = getAxisRange(axis) / minYRange; double maxScale = getAxisRange(axis) / maxYRange; - viewPortHandler.setMinMaxScaleX(minScale, maxScale); + viewPortHandler!.setMinMaxScaleX(minScale, maxScale); } } diff --git a/mp_chart/lib/mp/controller/line_chart_controller.dart b/mp_chart/lib/mp/controller/line_chart_controller.dart index 6f0c5081..bb3d743b 100644 --- a/mp_chart/lib/mp/controller/line_chart_controller.dart +++ b/mp_chart/lib/mp/controller/line_chart_controller.dart @@ -31,34 +31,34 @@ class LineChartController bool drawBorders = false, bool clipValuesToContent = false, double minOffset = 30.0, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, bool customViewPortEnabled = false, - Matrix4 zoomMatrixBuffer, + Matrix4? zoomMatrixBuffer, bool pinchZoomEnabled = true, bool keepPositionOnRotation = false, - Paint gridBackgroundPaint, - Paint borderPaint, - Color backgroundColor, - Color gridBackColor, - Color borderColor, + Paint? gridBackgroundPaint, + Paint? borderPaint, + Color? backgroundColor, + Color? gridBackColor, + Color? borderColor, double borderStrokeWidth = 1.0, - AxisLeftSettingFunction axisLeftSettingFunction, - AxisRightSettingFunction axisRightSettingFunction, - OnTouchEventListener touchEventListener, - IMarker marker, - Description description, + AxisLeftSettingFunction? axisLeftSettingFunction, + AxisRightSettingFunction? axisRightSettingFunction, + OnTouchEventListener? touchEventListener, + IMarker? marker, + Description? description, String noDataText = "No chart data available.", - XAxisSettingFunction xAxisSettingFunction, - LegendSettingFunction legendSettingFunction, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectionListener, + XAxisSettingFunction? xAxisSettingFunction, + LegendSettingFunction? legendSettingFunction, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectionListener, double maxHighlightDistance = 100.0, bool highLightPerTapEnabled = true, double extraTopOffset = 0.0, @@ -70,10 +70,10 @@ class LineChartController bool resolveGestureVerticalConflict = false, double descTextSize = 12, double infoTextSize = 12, - Color descTextColor, - Color infoTextColor, - Color infoBgColor, - ChartTransListener chartTransListener}) + Color? descTextColor, + Color? infoTextColor, + Color? infoBgColor, + ChartTransListener? chartTransListener}) : super( marker: marker, description: description, @@ -134,11 +134,11 @@ class LineChartController @override IMarker initMarker() => LineChartMarker(); - LineData get data => super.data; + LineData? get data => super.data as LineData?; - LineChartState get state => super.state; + LineChartState? get state => super.state as LineChartState?; - LineChartPainter get painter => super.painter; + LineChartPainter? get painter => super.painter; @override void initialPainter() { diff --git a/mp_chart/lib/mp/controller/pie_chart_controller.dart b/mp_chart/lib/mp/controller/pie_chart_controller.dart index b214c32d..8acee912 100644 --- a/mp_chart/lib/mp/controller/pie_chart_controller.dart +++ b/mp_chart/lib/mp/controller/pie_chart_controller.dart @@ -26,12 +26,12 @@ class PieChartController extends PieRadarController { double minAngleForSlices; // = 0 double centerTextOffsetX; double centerTextOffsetY; - TypeFace centerTextTypeface; - TypeFace entryLabelTypeface; - Color backgroundColor; + TypeFace? centerTextTypeface; + TypeFace? entryLabelTypeface; + Color? backgroundColor; Color holeColor; - Color centerTextColor; - double centerTextSize; + Color? centerTextColor; + double? centerTextSize; PieChartController({ this.drawEntryLabels = true, @@ -54,12 +54,12 @@ class PieChartController extends PieRadarController { this.holeColor = ColorUtils.WHITE, this.centerTextColor, this.centerTextSize, - IMarker marker, - Description description, - XAxisSettingFunction xAxisSettingFunction, - LegendSettingFunction legendSettingFunction, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectionListener, + IMarker? marker, + Description? description, + XAxisSettingFunction? xAxisSettingFunction, + LegendSettingFunction? legendSettingFunction, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectionListener, double rotationAngle = 270, double rawRotationAngle = 270, bool rotateEnabled = true, @@ -76,9 +76,9 @@ class PieChartController extends PieRadarController { bool resolveGestureVerticalConflict = false, double descTextSize = 12, double infoTextSize = 12, - Color descTextColor, - Color infoTextColor, - Color infoBgColor, + Color? descTextColor, + Color? infoTextColor, + Color? infoBgColor, }) : super( marker: marker, noDataText: noDataText, @@ -109,11 +109,11 @@ class PieChartController extends PieRadarController { @override IMarker initMarker() => BarChartMarker(); - PieData get data => super.data; + PieData? get data => super.data as PieData?; - PieChartPainter get painter => super.painter; + PieChartPainter? get painter => super.painter; - PieChartState get state => super.state; + PieChartState? get state => super.state as PieChartState?; @override void initialPainter() { diff --git a/mp_chart/lib/mp/controller/pie_radar_controller.dart b/mp_chart/lib/mp/controller/pie_radar_controller.dart index 563e9068..768597dc 100644 --- a/mp_chart/lib/mp/controller/pie_radar_controller.dart +++ b/mp_chart/lib/mp/controller/pie_radar_controller.dart @@ -10,7 +10,7 @@ import 'package:mp_chart/mp/painter/pie_redar_chart_painter.dart'; abstract class PieRadarController

extends Controller

{ double rotationAngle; - double rawRotationAngle; + double? rawRotationAngle; bool rotateEnabled; double minOffset; @@ -19,9 +19,9 @@ abstract class PieRadarController

this.rawRotationAngle = 270, this.rotateEnabled = true, this.minOffset = 30, - IMarker marker, - Description description, - OnChartValueSelectedListener selectionListener, + IMarker? marker, + Description? description, + OnChartValueSelectedListener? selectionListener, double maxHighlightDistance = 100.0, bool highLightPerTapEnabled = true, double extraTopOffset = 0.0, @@ -33,13 +33,13 @@ abstract class PieRadarController

bool resolveGestureVerticalConflict = false, double descTextSize = 12, double infoTextSize = 12, - Color descTextColor, - Color infoTextColor, - Color infoBgColor, + Color? descTextColor, + Color? infoTextColor, + Color? infoBgColor, String noDataText = "No chart data available.", - XAxisSettingFunction xAxisSettingFunction, - LegendSettingFunction legendSettingFunction, - DataRendererSettingFunction rendererSettingFunction}) + XAxisSettingFunction? xAxisSettingFunction, + LegendSettingFunction? legendSettingFunction, + DataRendererSettingFunction? rendererSettingFunction}) : super( marker: marker, noDataText: noDataText, @@ -64,11 +64,11 @@ abstract class PieRadarController

infoTextColor: infoTextColor); @override - void onRotateUpdate(double angle) { + void onRotateUpdate(double? angle) { rawRotationAngle = angle; - rotationAngle = Utils.getNormalizedAngle(rawRotationAngle); - state.setStateIfNotDispose(); + rotationAngle = Utils.getNormalizedAngle(rawRotationAngle!); + state!.setStateIfNotDispose(); } - P get painter => super.painter; + P? get painter => super.painter; } diff --git a/mp_chart/lib/mp/controller/radar_chart_controller.dart b/mp_chart/lib/mp/controller/radar_chart_controller.dart index b3daff89..c3607e30 100644 --- a/mp_chart/lib/mp/controller/radar_chart_controller.dart +++ b/mp_chart/lib/mp/controller/radar_chart_controller.dart @@ -14,15 +14,15 @@ import 'package:mp_chart/mp/painter/radar_chart_painter.dart'; class RadarChartController extends PieRadarController { double webLineWidth; double innerWebLineWidth; - Color webColor; - Color webColorInner; + Color? webColor; + Color? webColorInner; int webAlpha; bool drawWeb; int skipWebLineCount; - YAxis yAxis; - Color backgroundColor; + YAxis? yAxis; + Color? backgroundColor; - YAxisSettingFunction yAxisSettingFunction; + YAxisSettingFunction? yAxisSettingFunction; RadarChartController({ this.webLineWidth = 1.5, @@ -35,12 +35,12 @@ class RadarChartController extends PieRadarController { this.yAxis, this.backgroundColor, this.yAxisSettingFunction, - IMarker marker, - Description description, - XAxisSettingFunction xAxisSettingFunction, - LegendSettingFunction legendSettingFunction, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectionListener, + IMarker? marker, + Description? description, + XAxisSettingFunction? xAxisSettingFunction, + LegendSettingFunction? legendSettingFunction, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectionListener, double rotationAngle = 270, double rawRotationAngle = 270, bool rotateEnabled = true, @@ -57,9 +57,9 @@ class RadarChartController extends PieRadarController { bool resolveGestureVerticalConflict = false, double descTextSize = 12, double infoTextSize = 12, - Color descTextColor, - Color infoTextColor, - Color infoBgColor, + Color? descTextColor, + Color? infoTextColor, + Color? infoBgColor, }) : super( marker: marker, noDataText: noDataText, @@ -92,11 +92,11 @@ class RadarChartController extends PieRadarController { YAxis initYAxis() => YAxis(position: AxisDependency.LEFT); - RadarData get data => super.data; + RadarData? get data => super.data as RadarData?; - RadarChartPainter get painter => super.painter; + RadarChartPainter? get painter => super.painter; - RadarChartState get state => super.state; + RadarChartState? get state => super.state as RadarChartState?; @override void initialPainter() { @@ -143,7 +143,7 @@ class RadarChartController extends PieRadarController { webColorInner ??= Color.fromARGB(255, 122, 122, 122); yAxis = initYAxis(); if (yAxisSettingFunction != null) { - yAxisSettingFunction(yAxis, this); + yAxisSettingFunction!(yAxis, this); } } diff --git a/mp_chart/lib/mp/controller/scatter_chart_controller.dart b/mp_chart/lib/mp/controller/scatter_chart_controller.dart index 9ef04908..cc0974e1 100644 --- a/mp_chart/lib/mp/controller/scatter_chart_controller.dart +++ b/mp_chart/lib/mp/controller/scatter_chart_controller.dart @@ -30,34 +30,34 @@ class ScatterChartController bool drawBorders = false, bool clipValuesToContent = false, double minOffset = 30.0, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, bool customViewPortEnabled = false, - Matrix4 zoomMatrixBuffer, + Matrix4? zoomMatrixBuffer, bool pinchZoomEnabled = true, bool keepPositionOnRotation = false, - Paint gridBackgroundPaint, - Paint borderPaint, - Color backgroundColor, - Color gridBackColor, - Color borderColor, + Paint? gridBackgroundPaint, + Paint? borderPaint, + Color? backgroundColor, + Color? gridBackColor, + Color? borderColor, double borderStrokeWidth = 1.0, - AxisLeftSettingFunction axisLeftSettingFunction, - AxisRightSettingFunction axisRightSettingFunction, - OnTouchEventListener touchEventListener, - IMarker marker, - Description description, + AxisLeftSettingFunction? axisLeftSettingFunction, + AxisRightSettingFunction? axisRightSettingFunction, + OnTouchEventListener? touchEventListener, + IMarker? marker, + Description? description, String noDataText = "No chart data available.", - XAxisSettingFunction xAxisSettingFunction, - LegendSettingFunction legendSettingFunction, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectionListener, + XAxisSettingFunction? xAxisSettingFunction, + LegendSettingFunction? legendSettingFunction, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectionListener, double maxHighlightDistance = 100.0, bool highLightPerTapEnabled = true, double extraTopOffset = 0.0, @@ -69,10 +69,10 @@ class ScatterChartController bool resolveGestureVerticalConflict = false, double descTextSize = 12, double infoTextSize = 12, - Color descTextColor, - Color infoTextColor, - Color infoBgColor, - ChartTransListener chartTransListener, + Color? descTextColor, + Color? infoTextColor, + Color? infoBgColor, + ChartTransListener? chartTransListener, }) : super( marker: marker, description: description, @@ -130,11 +130,11 @@ class ScatterChartController touchEventListener: touchEventListener, chartTransListener: chartTransListener); - ScatterData get data => super.data; + ScatterData? get data => super.data as ScatterData?; - ScatterChartState get state => super.state; + ScatterChartState? get state => super.state as ScatterChartState?; - ScatterChartPainter get painter => super.painter; + ScatterChartPainter? get painter => super.painter; @override void initialPainter() { diff --git a/mp_chart/lib/mp/core/adapter_android_mp.dart b/mp_chart/lib/mp/core/adapter_android_mp.dart index 0fcfd429..1f57bd85 100644 --- a/mp_chart/lib/mp/core/adapter_android_mp.dart +++ b/mp_chart/lib/mp/core/adapter_android_mp.dart @@ -30,27 +30,27 @@ class DashPathEffect { } class TypeFace { - String _fontFamily; - FontWeight _fontWeight; + String? _fontFamily; + FontWeight? _fontWeight; - TypeFace({String fontFamily, FontWeight fontWeight = FontWeight.w400}) { + TypeFace({String? fontFamily, FontWeight fontWeight = FontWeight.w400}) { _fontFamily = fontFamily; _fontWeight = fontWeight; } // ignore: unnecessary_getters_setters - FontWeight get fontWeight => _fontWeight; + FontWeight? get fontWeight => _fontWeight; // ignore: unnecessary_getters_setters - set fontWeight(FontWeight value) { + set fontWeight(FontWeight? value) { _fontWeight = value; } // ignore: unnecessary_getters_setters - String get fontFamily => _fontFamily; + String? get fontFamily => _fontFamily; // ignore: unnecessary_getters_setters - set fontFamily(String value) { + set fontFamily(String? value) { _fontFamily = value; } } diff --git a/mp_chart/lib/mp/core/animator.dart b/mp_chart/lib/mp/core/animator.dart index 7e850c5f..55126713 100644 --- a/mp_chart/lib/mp/core/animator.dart +++ b/mp_chart/lib/mp/core/animator.dart @@ -18,7 +18,7 @@ abstract class Animator { /// The phase of drawn values on the x-axis. 0 - 1 double phaseX = MAX; - double angle; + double? angle; Animator(this.listener); @@ -120,7 +120,7 @@ abstract class Animator { class ChartAnimator extends Animator { static const int REFRESH_RATE = 16; - Timer _countdownTimer; + Timer? _countdownTimer; bool _isShowed = false; @@ -154,7 +154,7 @@ class ChartAnimator extends Animator { angle = fromAngle + (toAngle - fromAngle) * (1.0 - easing.getInterpolation(durationMillis / totalTime)); - if (angle >= toAngle) { + if (angle! >= toAngle) { angle = toAngle; } durationMillis -= REFRESH_RATE; @@ -298,17 +298,17 @@ class ChartAnimatorBySys extends Animator { static const int ANIMATE_XY = 2; static const int ANIMATE_SPIN = 3; - AnimationController _controller; + AnimationController? _controller; ChartTickerProvider _provider = ChartTickerProvider(); - EasingFunction easingFunction_1; - EasingFunction easingFunction_2; + late EasingFunction easingFunction_1; + EasingFunction? easingFunction_2; - double fromAngle; - double toAngle; + late double fromAngle; + double? toAngle; - double durationMinPercent; - bool xDurationLong; + late double durationMinPercent; + late bool xDurationLong; bool animating = false; @@ -317,8 +317,8 @@ class ChartAnimatorBySys extends Animator { ChartAnimatorBySys(AnimatorUpdateListener listener) : super(listener) { _controller = AnimationController(vsync: _provider); - _controller.addListener(() { - double percent = _controller.value; + _controller!.addListener(() { + double percent = _controller!.value; switch (which) { case ANIMATE_X: { @@ -345,12 +345,12 @@ class ChartAnimatorBySys extends Animator { phaseX = easingFunction_1.getInterpolation(percent); var percentMin = percent / durationMinPercent; percentMin = percentMin > 1 ? 1 : percentMin; - phaseY = easingFunction_2.getInterpolation(percentMin); + phaseY = easingFunction_2!.getInterpolation(percentMin); } else { phaseY = easingFunction_1.getInterpolation(percent); var percentMin = percent / durationMinPercent; percentMin = percentMin > 1 ? 1 : percentMin; - phaseX = easingFunction_2.getInterpolation(percentMin); + phaseX = easingFunction_2!.getInterpolation(percentMin); } } else { if (xDurationLong) { @@ -371,9 +371,9 @@ class ChartAnimatorBySys extends Animator { case ANIMATE_SPIN: { angle = fromAngle + - (toAngle - fromAngle) * + (toAngle! - fromAngle) * easingFunction_1.getInterpolation(percent); - if (angle >= toAngle) { + if (angle! >= toAngle!) { angle = toAngle; } this.listener?.onRotateUpdate(angle); @@ -383,7 +383,7 @@ class ChartAnimatorBySys extends Animator { break; } }); - _controller.addStatusListener((status) { + _controller!.addStatusListener((status) { switch (status) { case AnimationStatus.dismissed: animating = false; @@ -406,11 +406,11 @@ class ChartAnimatorBySys extends Animator { phaseX = MIN; phaseY = MAX; - _controller.duration = Duration(milliseconds: durationMillis); + _controller!.duration = Duration(milliseconds: durationMillis); which = ANIMATE_X; easingFunction_1 = easing; easingFunction_2 = null; - _controller.forward(); + _controller!.forward(); } @override @@ -425,12 +425,12 @@ class ChartAnimatorBySys extends Animator { durationMinPercent = xDurationLong ? durationMillisY / durationMillisX : durationMillisX / durationMillisY; - _controller.duration = Duration( + _controller!.duration = Duration( milliseconds: xDurationLong ? durationMillisX : durationMillisY); easingFunction_1 = easing; easingFunction_2 = null; which = ANIMATE_XY; - _controller.forward(); + _controller!.forward(); } @override @@ -445,12 +445,12 @@ class ChartAnimatorBySys extends Animator { durationMinPercent = xDurationLong ? durationMillisY / durationMillisX : durationMillisX / durationMillisY; - _controller.duration = Duration( + _controller!.duration = Duration( milliseconds: xDurationLong ? durationMillisX : durationMillisY); easingFunction_1 = easingX; easingFunction_2 = easingY; which = ANIMATE_XY; - _controller.forward(); + _controller!.forward(); } @override @@ -460,11 +460,11 @@ class ChartAnimatorBySys extends Animator { phaseX = MAX; phaseY = MIN; - _controller.duration = Duration(milliseconds: durationMillis); + _controller!.duration = Duration(milliseconds: durationMillis); easingFunction_1 = easing; easingFunction_2 = null; which = ANIMATE_Y; - _controller.forward(); + _controller!.forward(); } @override @@ -481,11 +481,11 @@ class ChartAnimatorBySys extends Animator { this.fromAngle = fromAngle; this.angle = fromAngle; this.toAngle = toAngle; - _controller.duration = Duration(milliseconds: durationMillis); + _controller!.duration = Duration(milliseconds: durationMillis); easingFunction_1 = easing; easingFunction_2 = null; which = ANIMATE_SPIN; - _controller.forward(); + _controller!.forward(); } } @@ -733,7 +733,7 @@ class EaseOutExpoEasingFunction implements EasingFunction { @override double getInterpolation(double input) { - return (input == 1) ? 1 : (-pow(2, -10 * (input + 1))); + return (input == 1) ? 1 : -pow(2, -10 * (input + 1)) as double; } } @@ -742,7 +742,7 @@ class EaseInExpoEasingFunction implements EasingFunction { @override double getInterpolation(double input) { - return (input == 0) ? 0 : pow(2, 10 * (input - 1)); + return (input == 0) ? 0 : pow(2, 10 * (input - 1)) as double; } } @@ -802,7 +802,7 @@ class EaseInQuartEasingFunction implements EasingFunction { @override double getInterpolation(double input) { - return pow(input, 4); + return pow(input, 4) as double; } } @@ -835,7 +835,7 @@ class EaseInCubicEasingFunction implements EasingFunction { @override double getInterpolation(double input) { - return pow(input, 3); + return pow(input, 3) as double; } } diff --git a/mp_chart/lib/mp/core/axis/axis_base.dart b/mp_chart/lib/mp/core/axis/axis_base.dart index d6c20326..656606e0 100644 --- a/mp_chart/lib/mp/core/axis/axis_base.dart +++ b/mp_chart/lib/mp/core/axis/axis_base.dart @@ -9,7 +9,7 @@ import 'package:mp_chart/mp/core/value_formatter/value_formatter.dart'; abstract class AxisBase extends ComponentBase { /// custom formatter that is used instead of the auto-formatter if set - ValueFormatter _axisValueFormatter; + ValueFormatter? _axisValueFormatter; Color _gridColor = ColorUtils.GRAY; @@ -19,9 +19,9 @@ abstract class AxisBase extends ComponentBase { double _axisLineWidth = 1; - List _entries = List(); + List _entries = List(); - List _centeredEntries = List(); + List _centeredEntries = List(); /// the number of entries the legend contains int _entryCount = 0; @@ -56,13 +56,13 @@ abstract class AxisBase extends ComponentBase { bool _centerAxisLabels = false; /// the path effect of the axis line that makes dashed lines possible - DashPathEffect _axisLineDashPathEffect; + DashPathEffect? _axisLineDashPathEffect; /// the path effect of the grid lines that makes dashed lines possible - DashPathEffect _gridDashPathEffect; + DashPathEffect? _gridDashPathEffect; /// array of limit lines that can be set for the axis - List _limitLines; + List? _limitLines; /// flag indicating the limit lines layer depth bool _drawLimitLineBehindData = false; @@ -83,10 +83,10 @@ abstract class AxisBase extends ComponentBase { bool _customAxisMax = false; /// don't touch this direclty, use setter - double _axisMaximum = 0; + double? _axisMaximum = 0; /// don't touch this directly, use setter - double _axisMinimum = 0; + double? _axisMinimum = 0; /// the total range of values this axis covers double _axisRange = 0; @@ -99,10 +99,10 @@ abstract class AxisBase extends ComponentBase { } // ignore: unnecessary_getters_setters - ValueFormatter get axisValueFormatter => _axisValueFormatter; + ValueFormatter? get axisValueFormatter => _axisValueFormatter; // ignore: unnecessary_getters_setters - set axisValueFormatter(ValueFormatter value) { + set axisValueFormatter(ValueFormatter? value) { _axisValueFormatter = value; } @@ -115,12 +115,12 @@ abstract class AxisBase extends ComponentBase { } // ignore: unnecessary_getters_setters - set axisMaximum(double value) { + set axisMaximum(double? value) { _axisMaximum = value; } // ignore: unnecessary_getters_setters - set axisMinimum(double value) { + set axisMinimum(double? value) { _axisMinimum = value; } @@ -253,25 +253,25 @@ abstract class AxisBase extends ComponentBase { /// /// @param l void addLimitLine(LimitLine l) { - _limitLines.add(l); + _limitLines!.add(l); } /// Removes the specified LimitLine from the axis. /// /// @param l void removeLimitLine(LimitLine l) { - _limitLines.remove(l); + _limitLines!.remove(l); } /// Removes all LimitLines from the axis. void removeAllLimitLines() { - _limitLines.clear(); + _limitLines!.clear(); } /// Returns the LimitLines of this axis. /// /// @return - List getLimitLines() { + List? getLimitLines() { return _limitLines; } @@ -311,7 +311,7 @@ abstract class AxisBase extends ComponentBase { if (index < 0 || index >= _entries.length) return ""; else - return getValueFormatter().getAxisLabel(_entries[index], this); + return getValueFormatter()!.getAxisLabel(_entries[index], this); } /// Sets the formatter to be used for formatting the axis labels. If no formatter is set, the @@ -331,7 +331,7 @@ abstract class AxisBase extends ComponentBase { /// Returns the formatter used for formatting the axis labels. /// /// @return - ValueFormatter getValueFormatter() { + ValueFormatter? getValueFormatter() { if (_axisValueFormatter == null || (_axisValueFormatter is DefaultAxisValueFormatter && (_axisValueFormatter as DefaultAxisValueFormatter).digits != @@ -354,10 +354,10 @@ abstract class AxisBase extends ComponentBase { } // ignore: unnecessary_getters_setters - DashPathEffect get gridDashPathEffect => _gridDashPathEffect; + DashPathEffect? get gridDashPathEffect => _gridDashPathEffect; // ignore: unnecessary_getters_setters - set gridDashPathEffect(DashPathEffect value) { + set gridDashPathEffect(DashPathEffect? value) { _gridDashPathEffect = value; } @@ -399,20 +399,20 @@ abstract class AxisBase extends ComponentBase { } // ignore: unnecessary_getters_setters - DashPathEffect get axisLineDashPathEffect => _axisLineDashPathEffect; + DashPathEffect? get axisLineDashPathEffect => _axisLineDashPathEffect; // ignore: unnecessary_getters_setters - set axisLineDashPathEffect(DashPathEffect value) { + set axisLineDashPathEffect(DashPathEffect? value) { _axisLineDashPathEffect = value; } /// ###### BELOW CODE RELATED TO CUSTOM AXIS VALUES ###### // ignore: unnecessary_getters_setters - double get axisMaximum => _axisMaximum; + double? get axisMaximum => _axisMaximum; // ignore: unnecessary_getters_setters - double get axisMinimum => _axisMinimum; + double? get axisMinimum => _axisMinimum; /// By calling this method, any custom maximum value that has been previously set is reseted, /// and the calculation is @@ -449,7 +449,7 @@ abstract class AxisBase extends ComponentBase { void setAxisMinimum(double min) { _customAxisMin = true; _axisMinimum = min; - this._axisRange = (_axisMaximum - min).abs(); + this._axisRange = (_axisMaximum! - min).abs(); } /// Use setAxisMinimum(...) instead. @@ -467,7 +467,7 @@ abstract class AxisBase extends ComponentBase { void setAxisMaximum(double max) { _customAxisMax = true; _axisMaximum = max; - this._axisRange = (max - _axisMinimum).abs(); + this._axisRange = (max - _axisMinimum!).abs(); } /// Use setAxisMaximum(...) instead. @@ -482,10 +482,10 @@ abstract class AxisBase extends ComponentBase { /// /// @param dataMin the min value according to chart data /// @param dataMax the max value according to chart data - void calculate(double dataMin, double dataMax) { + void calculate(double? dataMin, double? dataMax) { // if custom, use value as is, else use data value - double min = _customAxisMin ? _axisMinimum : (dataMin - _spaceMin); - double max = _customAxisMax ? _axisMaximum : (dataMax + _spaceMax); + double min = _customAxisMin ? _axisMinimum! : (dataMin! - _spaceMin); + double max = _customAxisMax ? _axisMaximum! : (dataMax! + _spaceMax); // temporary range (before calculations) double range = (max - min).abs(); @@ -520,18 +520,18 @@ abstract class AxisBase extends ComponentBase { } // ignore: unnecessary_getters_setters - List get entries => _entries; + List get entries => _entries; // ignore: unnecessary_getters_setters - set entries(List value) { + set entries(List value) { _entries = value; } // ignore: unnecessary_getters_setters - List get centeredEntries => _centeredEntries; + List get centeredEntries => _centeredEntries; // ignore: unnecessary_getters_setters - set centeredEntries(List value) { + set centeredEntries(List value) { _centeredEntries = value; } @@ -552,10 +552,10 @@ abstract class AxisBase extends ComponentBase { } // ignore: unnecessary_getters_setters - List get limitLines => _limitLines; + List? get limitLines => _limitLines; // ignore: unnecessary_getters_setters - set limitLines(List value) { + set limitLines(List? value) { _limitLines = value; } } diff --git a/mp_chart/lib/mp/core/axis/x_axis.dart b/mp_chart/lib/mp/core/axis/x_axis.dart index 427d423a..d143c0d8 100644 --- a/mp_chart/lib/mp/core/axis/x_axis.dart +++ b/mp_chart/lib/mp/core/axis/x_axis.dart @@ -91,7 +91,7 @@ class XAxis extends AxisBase { _labelWidth = value; } - int getRequiredHeightSpace(TextPainter p) { + int getRequiredHeightSpace(TextPainter? p) { p = PainterUtils.create(p, null, null, textSize); int height = Utils.calcTextHeight(p, "A"); diff --git a/mp_chart/lib/mp/core/axis/y_axis.dart b/mp_chart/lib/mp/core/axis/y_axis.dart index 56e051fb..69643018 100644 --- a/mp_chart/lib/mp/core/axis/y_axis.dart +++ b/mp_chart/lib/mp/core/axis/y_axis.dart @@ -44,38 +44,38 @@ class YAxis extends AxisBase { YAxisLabelPosition _position = YAxisLabelPosition.OUTSIDE_CHART; /// the side this axis object represents - AxisDependency _axisDependency; + AxisDependency? _axisDependency; /// the minimum width that the axis should take (in dp). ///

/// default: 0.0 - double _minWidth = 0; + double? _minWidth = 0; /// the maximum width that the axis can take (in dp). /// use Inifinity for disabling the maximum /// default: Float.POSITIVE_INFINITY (no maximum specified) - double _maxWidth = double.infinity; + double? _maxWidth = double.infinity; YAxis({AxisDependency position = AxisDependency.LEFT}) : super() { this._axisDependency = position; yOffset = 0; } - AxisDependency get axisDependency => _axisDependency; + AxisDependency? get axisDependency => _axisDependency; // ignore: unnecessary_getters_setters - double get minWidth => _minWidth; + double? get minWidth => _minWidth; // ignore: unnecessary_getters_setters - set minWidth(double value) { + set minWidth(double? value) { _minWidth = value; } // ignore: unnecessary_getters_setters - double get maxWidth => _maxWidth; + double? get maxWidth => _maxWidth; // ignore: unnecessary_getters_setters - set maxWidth(double value) { + set maxWidth(double? value) { _maxWidth = value; } @@ -174,14 +174,14 @@ class YAxis extends AxisBase { /// /// @param p /// @return - double getRequiredWidthSpace(TextPainter p) { + double getRequiredWidthSpace(TextPainter? p) { p = PainterUtils.create(p, null, null, textSize); String label = getLongestLabel(); - double width = Utils.calcTextWidth(p, label) + xOffset * 2; - if (minWidth > 0) minWidth = Utils.convertDpToPixel(minWidth); - if (maxWidth > 0 && maxWidth != double.infinity) + double width = Utils.calcTextWidth(p, label) + xOffset! * 2; + if (minWidth! > 0) minWidth = Utils.convertDpToPixel(minWidth); + if (maxWidth! > 0 && maxWidth != double.infinity) maxWidth = Utils.convertDpToPixel(maxWidth); - width = max(minWidth, min(width, maxWidth > 0.0 ? maxWidth : width)); + width = max(minWidth!, min(width, maxWidth! > 0.0 ? maxWidth! : width)); return width; } @@ -189,11 +189,11 @@ class YAxis extends AxisBase { /// /// @param p /// @return - double getRequiredHeightSpace(TextPainter p) { + double getRequiredHeightSpace(TextPainter? p) { p = PainterUtils.create(p, null, null, textSize); String label = getLongestLabel(); - return Utils.calcTextHeight(p, label) + yOffset * 2; + return Utils.calcTextHeight(p, label) + yOffset! * 2; } /// Returns true if this axis needs horizontal offset, false if no offset is needed. @@ -223,9 +223,9 @@ class YAxis extends AxisBase { } @override - void calculate(double dataMin, double dataMax) { - double min = dataMin; - double max = dataMax; + void calculate(double? dataMin, double? dataMax) { + double min = dataMin!; + double max = dataMax!; double range = (max - min).abs(); @@ -246,6 +246,6 @@ class YAxis extends AxisBase { ? this.axisMaximum : max + (range / 100) * spacePercentTop; - this.axisRange = (this.axisMinimum - this.axisMaximum).abs(); + this.axisRange = (this.axisMinimum! - this.axisMaximum!).abs(); } } diff --git a/mp_chart/lib/mp/core/bounds.dart b/mp_chart/lib/mp/core/bounds.dart index 854374f8..b8cd61b7 100644 --- a/mp_chart/lib/mp/core/bounds.dart +++ b/mp_chart/lib/mp/core/bounds.dart @@ -8,39 +8,39 @@ import 'package:mp_chart/mp/core/enums/rounding.dart'; class XBounds { /// minimum visible entry index - int _min; + int? _min; /// maximum visible entry index - int _max; + int? _max; /// range of visible entry indices - int _range; + int? _range; - Animator _animator; + Animator? _animator; XBounds(this._animator); // ignore: unnecessary_getters_setters - int get range => _range; + int? get range => _range; // ignore: unnecessary_getters_setters - set range(int value) { + set range(int? value) { _range = value; } // ignore: unnecessary_getters_setters - int get max => _max; + int? get max => _max; // ignore: unnecessary_getters_setters - set max(int value) { + set max(int? value) { _max = value; } // ignore: unnecessary_getters_setters - int get min => _min; + int? get min => _min; // ignore: unnecessary_getters_setters - set min(int value) { + set min(int? value) { _min = value; } @@ -50,23 +50,23 @@ class XBounds { /// @param dataSet void set(BarLineScatterCandleBubbleDataProvider chart, IBarLineScatterCandleBubbleDataSet dataSet) { - double phaseX = math.max(0.0, math.min(1.0, _animator.getPhaseX())); + double phaseX = math.max(0.0, math.min(1.0, _animator!.getPhaseX())); double low = chart.getLowestVisibleX(); double high = chart.getHighestVisibleX(); - Entry entryFrom = + Entry? entryFrom = dataSet.getEntryForXValue1(low, double.nan, Rounding.DOWN); - Entry entryTo = dataSet.getEntryForXValue1(high, double.nan, Rounding.UP); + Entry? entryTo = dataSet.getEntryForXValue1(high, double.nan, Rounding.UP); _min = entryFrom == null ? 0 : dataSet.getEntryIndex2(entryFrom); _max = entryTo == null ? 0 : dataSet.getEntryIndex2(entryTo); - if (_min > _max) { + if (_min! > _max!) { var t = _min; _min = _max; _max = t; } - _range = ((_max - _min) * phaseX).toInt(); + _range = ((_max! - _min!) * phaseX).toInt(); } } diff --git a/mp_chart/lib/mp/core/buffer/abstract_buffer.dart b/mp_chart/lib/mp/core/buffer/abstract_buffer.dart index 367a053b..6ea2c7dd 100644 --- a/mp_chart/lib/mp/core/buffer/abstract_buffer.dart +++ b/mp_chart/lib/mp/core/buffer/abstract_buffer.dart @@ -3,7 +3,7 @@ abstract class AbstractBuffer { int _index = 0; /// double-buffer that holds the data points to draw, order: x,y,x,y,... - List _buffer; + List? _buffer; /// animation phase x-axis double _phaseX = 1.0; @@ -48,7 +48,7 @@ abstract class AbstractBuffer { /// /// @return int size() { - return _buffer.length; + return _buffer!.length; } /// Set the phases used for animations. @@ -66,7 +66,7 @@ abstract class AbstractBuffer { /// @param data void feed(T data); - List get buffer => _buffer; + List? get buffer => _buffer; // ignore: unnecessary_getters_setters int get index => _index; diff --git a/mp_chart/lib/mp/core/buffer/bar_buffer.dart b/mp_chart/lib/mp/core/buffer/bar_buffer.dart index 9922a6b4..cae3844b 100644 --- a/mp_chart/lib/mp/core/buffer/bar_buffer.dart +++ b/mp_chart/lib/mp/core/buffer/bar_buffer.dart @@ -24,14 +24,14 @@ class BarBuffer extends AbstractBuffer { _dataSetIndex = value; } - void addBar(double left, double top, double right, double bottom) { - buffer[index] = left; + void addBar(double? left, double? top, double? right, double? bottom) { + buffer![index] = left; index += 1; - buffer[index] = top; + buffer![index] = top; index += 1; - buffer[index] = right; + buffer![index] = right; index += 1; - buffer[index] = bottom; + buffer![index] = bottom; index += 1; } @@ -41,24 +41,24 @@ class BarBuffer extends AbstractBuffer { double barWidthHalf = _barWidth / 2.0; for (int i = 0; i < size; i++) { - BarEntry e = data.getEntryForIndex(i); + BarEntry? e = data.getEntryForIndex(i); if (e == null) continue; - double x = e.x; - double y = e.y; - List vals = e.yVals; + double? x = e.x; + double? y = e.y; + List? vals = e.yVals; if (!_containsStacks || vals == null) { - double left = x - barWidthHalf; + double left = x! - barWidthHalf; double right = x + barWidthHalf; - double bottom, top; + double? bottom, top; if (_inverted) { - bottom = y >= 0 ? y : 0; + bottom = y! >= 0 ? y : 0; top = y <= 0 ? y : 0; } else { - top = y >= 0 ? y : 0; + top = y! >= 0 ? y : 0; bottom = y <= 0 ? y : 0; } @@ -71,7 +71,7 @@ class BarBuffer extends AbstractBuffer { addBar(left, top, right, bottom); } else { double posY = 0.0; - double negY = -e.negativeSum; + double negY = -e.negativeSum!; double yStart = 0.0; // fill the stack @@ -92,7 +92,7 @@ class BarBuffer extends AbstractBuffer { negY += value.abs(); } - double left = x - barWidthHalf; + double left = x! - barWidthHalf; double right = x + barWidthHalf; double bottom, top; diff --git a/mp_chart/lib/mp/core/buffer/horizontal_bar_buffer.dart b/mp_chart/lib/mp/core/buffer/horizontal_bar_buffer.dart index 7c81fd49..76af5772 100644 --- a/mp_chart/lib/mp/core/buffer/horizontal_bar_buffer.dart +++ b/mp_chart/lib/mp/core/buffer/horizontal_bar_buffer.dart @@ -12,23 +12,23 @@ class HorizontalBarBuffer extends BarBuffer { double barWidthHalf = barWidth / 2; for (int i = 0; i < size; i++) { - BarEntry e = data.getEntryForIndex(i); + BarEntry? e = data.getEntryForIndex(i); if (e == null) continue; - double x = e.x; - double y = e.y; - List vals = e.yVals; + double? x = e.x; + double? y = e.y; + List? vals = e.yVals; if (!containsStacks || vals == null) { - double bottom = x - barWidthHalf; + double bottom = x! - barWidthHalf; double top = x + barWidthHalf; - double left, right; + double? left, right; if (inverted) { - left = y >= 0 ? y : 0; + left = y! >= 0 ? y : 0; right = y <= 0 ? y : 0; } else { - right = y >= 0 ? y : 0; + right = y! >= 0 ? y : 0; left = y <= 0 ? y : 0; } @@ -41,7 +41,7 @@ class HorizontalBarBuffer extends BarBuffer { addBar(left, top, right, bottom); } else { double posY = 0; - double negY = -e.negativeSum; + double negY = -e.negativeSum!; double yStart = 0; // fill the stack @@ -58,7 +58,7 @@ class HorizontalBarBuffer extends BarBuffer { negY += value.abs(); } - double bottom = x - barWidthHalf; + double bottom = x! - barWidthHalf; double top = x + barWidthHalf; double left, right; if (inverted) { diff --git a/mp_chart/lib/mp/core/cache.dart b/mp_chart/lib/mp/core/cache.dart index e3a97629..ca579250 100644 --- a/mp_chart/lib/mp/core/cache.dart +++ b/mp_chart/lib/mp/core/cache.dart @@ -8,7 +8,7 @@ import 'package:mp_chart/mp/core/data_interfaces/i_line_data_set.dart'; class DataSetImageCache { Path _circlePathBuffer = Path(); - List _circleBitmaps; + List? _circleBitmaps; /// Sets up the cache, returns true if a change of cache was required. /// @@ -21,7 +21,7 @@ class DataSetImageCache { if (_circleBitmaps == null) { _circleBitmaps = List(size); changeRequired = true; - } else if (_circleBitmaps.length != size) { + } else if (_circleBitmaps!.length != size) { _circleBitmaps = List(size); changeRequired = true; } @@ -42,8 +42,8 @@ class DataSetImageCache { Paint circlePaint, Function callback) { final int colorCount = set.getCircleColorCount(); - double circleRadius = set.getCircleRadius(); - double circleHoleRadius = set.getCircleHoleRadius(); + double? circleRadius = set.getCircleRadius(); + double? circleHoleRadius = set.getCircleHoleRadius(); int finishCount = 0; for (int i = 0; i < colorCount; i++) { @@ -56,8 +56,8 @@ class DataSetImageCache { Rect.fromLTRB( 0, 0, - drawCircleHole ? circleHoleRadius * 2 : circleRadius * 2, - drawCircleHole ? circleHoleRadius * 2 : circleRadius * 2)); + drawCircleHole ? circleHoleRadius! * 2 : circleRadius! * 2, + drawCircleHole ? circleHoleRadius! * 2 : circleRadius! * 2)); // _circleBitmaps[i] = circleBitmap; paint..color = set.getCircleColor(i); @@ -66,29 +66,29 @@ class DataSetImageCache { _circlePathBuffer.reset(); _circlePathBuffer - .addOval(Rect.fromLTRB(0, 0, circleRadius * 2, circleRadius * 2)); + .addOval(Rect.fromLTRB(0, 0, circleRadius! * 2, circleRadius * 2)); // Cut hole in path _circlePathBuffer.addOval( - Rect.fromLTRB(0, 0, circleHoleRadius * 2, circleHoleRadius * 2)); + Rect.fromLTRB(0, 0, circleHoleRadius! * 2, circleHoleRadius * 2)); // Fill in-between canvas.drawPath(_circlePathBuffer, paint); } else { canvas.drawCircle( - Offset(circleRadius, circleRadius), circleRadius, paint); + Offset(circleRadius!, circleRadius), circleRadius, paint); if (drawCircleHole) { canvas.drawCircle(Offset(circleRadius, circleRadius), - circleHoleRadius, circlePaint); + circleHoleRadius!, circlePaint); } } var length = - (drawCircleHole ? circleHoleRadius * 2 : circleRadius * 2).toInt(); + (drawCircleHole ? circleHoleRadius! * 2 : circleRadius * 2).toInt(); recorder.endRecording().toImage(length, length).then((image) { image.toByteData(format: ImageByteFormat.rawRgba).then((data) { - _circleBitmaps[i] = data; + _circleBitmaps![i] = data; if (finishCount >= colorCount - 1) { callback(); } @@ -98,7 +98,7 @@ class DataSetImageCache { } } - ByteData getBitmap(int index) { - return _circleBitmaps[index % _circleBitmaps.length]; + ByteData? getBitmap(int index) { + return _circleBitmaps![index % _circleBitmaps!.length]; } } diff --git a/mp_chart/lib/mp/core/chart_trans_listener.dart b/mp_chart/lib/mp/core/chart_trans_listener.dart index 8901f5f5..3ef21de9 100644 --- a/mp_chart/lib/mp/core/chart_trans_listener.dart +++ b/mp_chart/lib/mp/core/chart_trans_listener.dart @@ -1,4 +1,4 @@ mixin ChartTransListener{ - void scale(double scaleX, double scaleY, double x, double y); + void scale(double scaleX, double scaleY, double? x, double? y); void translate(double dx, double dy); } \ No newline at end of file diff --git a/mp_chart/lib/mp/core/common_interfaces.dart b/mp_chart/lib/mp/core/common_interfaces.dart index bee9fa54..3b268dd6 100644 --- a/mp_chart/lib/mp/core/common_interfaces.dart +++ b/mp_chart/lib/mp/core/common_interfaces.dart @@ -63,7 +63,7 @@ mixin OnChartValueSelectedListener { /// @param e The selected Entry /// @param h The corresponding highlight object that contains information /// about the highlighted position such as dataSetIndex, ... - void onValueSelected(Entry e, Highlight h); + void onValueSelected(Entry? e, Highlight? h); /// Called when nothing has been selected or an "un-select" has been made. void onNothingSelected(); @@ -72,5 +72,5 @@ mixin OnChartValueSelectedListener { mixin AnimatorUpdateListener { void onAnimationUpdate(double x, double y); - void onRotateUpdate(double angle); + void onRotateUpdate(double? angle); } diff --git a/mp_chart/lib/mp/core/component.dart b/mp_chart/lib/mp/core/component.dart index ebd6dd40..28b40792 100644 --- a/mp_chart/lib/mp/core/component.dart +++ b/mp_chart/lib/mp/core/component.dart @@ -8,16 +8,16 @@ abstract class ComponentBase { bool _enabled = true; /// the offset in pixels this component has on the x-axis - double _xOffset = 5; + double? _xOffset = 5; /// the offset in pixels this component has on the Y-axis - double _yOffset = 5; + double? _yOffset = 5; /// the typeface used for the labels - TypeFace _typeface; + TypeFace? _typeface; /// the text size of the labels - double _textSize = Utils.convertDpToPixel(10); + double? _textSize = Utils.convertDpToPixel(10); /// the text color to use for the labels Color _textColor = ColorUtils.BLACK; @@ -30,27 +30,27 @@ abstract class ComponentBase { _enabled = value; } - double get xOffset => _xOffset; + double? get xOffset => _xOffset; - set xOffset(double value) { + set xOffset(double? value) { _xOffset = Utils.convertDpToPixel(value); } - double get yOffset => _yOffset; + double? get yOffset => _yOffset; - set yOffset(double value) { + set yOffset(double? value) { _yOffset = Utils.convertDpToPixel(value); } // ignore: unnecessary_getters_setters - TypeFace get typeface => _typeface; + TypeFace? get typeface => _typeface; // ignore: unnecessary_getters_setters - set typeface(TypeFace value) { + set typeface(TypeFace? value) { _typeface = value; } - double get textSize => _textSize; + double get textSize => _textSize!; set textSize(double value) { if (value > 24) value = 24; diff --git a/mp_chart/lib/mp/core/data/bar_data.dart b/mp_chart/lib/mp/core/data/bar_data.dart index 3d35b149..ae9accd7 100644 --- a/mp_chart/lib/mp/core/data/bar_data.dart +++ b/mp_chart/lib/mp/core/data/bar_data.dart @@ -25,13 +25,13 @@ class BarData extends BarLineScatterCandleBubbleData { /// @param groupSpace the space between groups of bars in values (not pixels) e.g. 0.8f for bar width 1f /// @param barSpace the space between individual bars in values (not pixels) e.g. 0.1f for bar width 1f void groupBars(double fromX, double groupSpace, double barSpace) { - int setCount = dataSets.length; + int setCount = dataSets!.length; if (setCount <= 1) { throw Exception( "BarData needs to hold at least 2 BarDataSets to allow grouping."); } - IBarDataSet max = getMaxEntryCountSet(); + IBarDataSet max = getMaxEntryCountSet()!; int maxEntryCount = max.getEntryCount(); double groupSpaceWidthHalf = groupSpace / 2.0; @@ -44,12 +44,12 @@ class BarData extends BarLineScatterCandleBubbleData { double start = fromX; fromX += groupSpaceWidthHalf; - for (IBarDataSet set in dataSets) { + for (IBarDataSet set in dataSets!) { fromX += barSpaceHalf; fromX += barWidthHalf; if (i < set.getEntryCount()) { - BarEntry entry = set.getEntryForIndex(i); + BarEntry? entry = set.getEntryForIndex(i); if (entry != null) { entry.x = fromX; @@ -80,6 +80,6 @@ class BarData extends BarLineScatterCandleBubbleData { /// @param barSpace /// @return double getGroupWidth(double groupSpace, double barSpace) { - return dataSets.length * (_barWidth + barSpace) + groupSpace; + return dataSets!.length * (_barWidth + barSpace) + groupSpace; } } diff --git a/mp_chart/lib/mp/core/data/bar_line_scatter_candle_bubble_data.dart b/mp_chart/lib/mp/core/data/bar_line_scatter_candle_bubble_data.dart index 15974e54..1149d6a6 100644 --- a/mp_chart/lib/mp/core/data/bar_line_scatter_candle_bubble_data.dart +++ b/mp_chart/lib/mp/core/data/bar_line_scatter_candle_bubble_data.dart @@ -3,7 +3,7 @@ import 'package:mp_chart/mp/core/data_interfaces/i_bar_line_scatter_candle_bubbl import 'package:mp_chart/mp/core/entry/entry.dart'; class BarLineScatterCandleBubbleData< - T extends IBarLineScatterCandleBubbleDataSet> extends ChartData { + T extends IBarLineScatterCandleBubbleDataSet> extends ChartData { BarLineScatterCandleBubbleData() : super(); BarLineScatterCandleBubbleData.fromList(List sets) : super.fromList(sets); diff --git a/mp_chart/lib/mp/core/data/bubble_data.dart b/mp_chart/lib/mp/core/data/bubble_data.dart index cc209375..0a626741 100644 --- a/mp_chart/lib/mp/core/data/bubble_data.dart +++ b/mp_chart/lib/mp/core/data/bubble_data.dart @@ -11,7 +11,7 @@ class BubbleData extends BarLineScatterCandleBubbleData { /// /// @param width void setHighlightCircleWidth(double width) { - for (IBubbleDataSet set in dataSets) { + for (IBubbleDataSet set in dataSets!) { set.setHighlightCircleWidth(width); } } diff --git a/mp_chart/lib/mp/core/data/chart_data.dart b/mp_chart/lib/mp/core/data/chart_data.dart index 75c19457..68a70a41 100644 --- a/mp_chart/lib/mp/core/data/chart_data.dart +++ b/mp_chart/lib/mp/core/data/chart_data.dart @@ -8,29 +8,29 @@ import 'package:mp_chart/mp/core/highlight/highlight.dart'; import 'package:mp_chart/mp/core/utils/dart_adapter_utils.dart'; import 'package:mp_chart/mp/core/value_formatter/value_formatter.dart'; -class ChartData> { +class ChartData> { /// maximum y-value in the value array across all axes - double _yMax = -double.infinity; + double? _yMax = -double.infinity; /// the minimum y-value in the value array across all axes - double _yMin = double.infinity; + double? _yMin = double.infinity; /// maximum x-value in the value array - double _xMax = -double.infinity; + double? _xMax = -double.infinity; /// minimum x-value in the value array - double _xMin = double.infinity; + double? _xMin = double.infinity; - double _leftAxisMax = -double.infinity; + double? _leftAxisMax = -double.infinity; - double _leftAxisMin = double.infinity; + double? _leftAxisMin = double.infinity; - double _rightAxisMax = -double.infinity; + double? _rightAxisMax = -double.infinity; - double _rightAxisMin = double.infinity; + double? _rightAxisMin = double.infinity; /// array that holds all DataSets the ChartData object represents - List _dataSets; + List? _dataSets; /// Default constructor. ChartData() { @@ -58,7 +58,7 @@ class ChartData> { /// @param fromX the x-value to start the calculation from /// @param toX the x-value to which the calculation should be performed void calcMinMaxY(double fromX, double toX) { - for (T set in _dataSets) { + for (T set in _dataSets!) { set.calcMinMaxY(fromX, toX); } @@ -75,7 +75,7 @@ class ChartData> { _xMax = -double.infinity; _xMin = double.infinity; - for (T set in _dataSets) { + for (T set in _dataSets!) { calcMinMax3(set); } @@ -85,36 +85,36 @@ class ChartData> { _rightAxisMin = double.infinity; // left axis - T firstLeft = getFirstLeft(_dataSets); + T? firstLeft = getFirstLeft(_dataSets!); if (firstLeft != null) { _leftAxisMax = firstLeft.getYMax(); _leftAxisMin = firstLeft.getYMin(); - for (T dataSet in _dataSets) { + for (T dataSet in _dataSets!) { if (dataSet.getAxisDependency() == AxisDependency.LEFT) { - if (dataSet.getYMin() < _leftAxisMin) + if (dataSet.getYMin()! < _leftAxisMin!) _leftAxisMin = dataSet.getYMin(); - if (dataSet.getYMax() > _leftAxisMax) + if (dataSet.getYMax()! > _leftAxisMax!) _leftAxisMax = dataSet.getYMax(); } } } // right axis - T firstRight = getFirstRight(_dataSets); + T? firstRight = getFirstRight(_dataSets!); if (firstRight != null) { _rightAxisMax = firstRight.getYMax(); _rightAxisMin = firstRight.getYMin(); - for (T dataSet in _dataSets) { + for (T dataSet in _dataSets!) { if (dataSet.getAxisDependency() == AxisDependency.RIGHT) { - if (dataSet.getYMin() < _rightAxisMin) + if (dataSet.getYMin()! < _rightAxisMin!) _rightAxisMin = dataSet.getYMin(); - if (dataSet.getYMax() > _rightAxisMax) + if (dataSet.getYMax()! > _rightAxisMax!) _rightAxisMax = dataSet.getYMax(); } } @@ -128,13 +128,13 @@ class ChartData> { /// @return int getDataSetCount() { if (_dataSets == null) return 0; - return _dataSets.length; + return _dataSets!.length; } /// Returns the smallest y-value the data object contains. /// /// @return - double getYMin1() { + double? getYMin1() { return _yMin; } @@ -142,14 +142,14 @@ class ChartData> { /// /// @param axis /// @return - double getYMin2(AxisDependency axis) { + double? getYMin2(AxisDependency axis) { if (axis == AxisDependency.LEFT) { - if (_leftAxisMin.isInfinite) { + if (_leftAxisMin!.isInfinite) { return _rightAxisMin; } else return _leftAxisMin; } else { - if (_rightAxisMin.isInfinite) { + if (_rightAxisMin!.isInfinite) { return _leftAxisMin; } else return _rightAxisMin; @@ -159,7 +159,7 @@ class ChartData> { /// Returns the greatest y-value the data object contains. /// /// @return - double getYMax1() { + double? getYMax1() { return _yMax; } @@ -167,7 +167,7 @@ class ChartData> { /// /// @param axis /// @return - double getYMax2(AxisDependency axis) { + double? getYMax2(AxisDependency axis) { if (axis == AxisDependency.LEFT) { if (_leftAxisMax == -double.infinity) { return _rightAxisMax; @@ -182,29 +182,29 @@ class ChartData> { } // ignore: unnecessary_getters_setters - double get xMax => _xMax; + double? get xMax => _xMax; // ignore: unnecessary_getters_setters - double get xMin => _xMin; + double? get xMin => _xMin; // ignore: unnecessary_getters_setters - set xMax(double value) { + set xMax(double? value) { _xMax = value; } // ignore: unnecessary_getters_setters - List get dataSets => _dataSets; + List? get dataSets => _dataSets; // ignore: unnecessary_getters_setters - set dataSets(List value) { + set dataSets(List? value) { _dataSets = value; } // ignore: unnecessary_getters_setters - double get yMax => _yMax; + double? get yMax => _yMax; // ignore: unnecessary_getters_setters - set yMax(double value) { + set yMax(double? value) { _yMax = value; } @@ -217,13 +217,13 @@ class ChartData> { /// @param label /// @param ignorecase if true, the search is not case-sensitive /// @return - int getDataSetIndexByLabel(List dataSets, String label, bool ignorecase) { + int getDataSetIndexByLabel(List? dataSets, String label, bool ignorecase) { if (ignorecase) { - for (int i = 0; i < dataSets.length; i++) + for (int i = 0; i < dataSets!.length; i++) if (DartAdapterUtils.equalsIgnoreCase(label, dataSets[i].getLabel())) return i; } else { - for (int i = 0; i < dataSets.length; i++) + for (int i = 0; i < dataSets!.length; i++) if (label == dataSets[i].getLabel()) return i; } @@ -233,11 +233,11 @@ class ChartData> { /// Returns the labels of all DataSets as a string array. /// /// @return - List getDataSetLabels() { - List types = List(_dataSets.length); + List getDataSetLabels() { + List types = List(_dataSets!.length); - for (int i = 0; i < _dataSets.length; i++) { - types[i] = _dataSets[i].getLabel(); + for (int i = 0; i < _dataSets!.length; i++) { + types[i] = _dataSets![i].getLabel(); } return types; @@ -247,11 +247,11 @@ class ChartData> { /// /// @param highlight /// @return the entry that is highlighted - Entry getEntryForHighlight(Highlight highlight) { - if (highlight == null || highlight.dataSetIndex >= _dataSets.length) + Entry? getEntryForHighlight(Highlight? highlight) { + if (highlight == null || highlight.dataSetIndex! >= _dataSets!.length) return null; else { - return _dataSets[highlight.dataSetIndex] + return _dataSets![highlight.dataSetIndex!] .getEntryForXValue2(highlight.x, highlight.y); } } @@ -263,20 +263,20 @@ class ChartData> { /// @param label /// @param ignorecase /// @return - T getDataSetByLabel(String label, bool ignorecase) { + T? getDataSetByLabel(String label, bool ignorecase) { int index = getDataSetIndexByLabel(_dataSets, label, ignorecase); - if (index < 0 || index >= _dataSets.length) + if (index < 0 || index >= _dataSets!.length) return null; else - return _dataSets[index]; + return _dataSets![index]; } - T getDataSetByIndex(int index) { - if (_dataSets == null || index < 0 || index >= _dataSets.length) + T? getDataSetByIndex(int? index) { + if (_dataSets == null || index! < 0 || index >= _dataSets!.length) return null; - return _dataSets[index]; + return _dataSets![index]; } /// Adds a DataSet dynamically. @@ -287,7 +287,7 @@ class ChartData> { calcMinMax3(d); - _dataSets.add(d); + _dataSets!.add(d); } /// Removes the given DataSet from this data object. Also recalculates all @@ -298,7 +298,7 @@ class ChartData> { bool removeDataSet1(T d) { if (d == null) return false; - bool removed = _dataSets.remove(d); + bool removed = _dataSets!.remove(d); // if a DataSet was removed if (removed) { @@ -314,9 +314,9 @@ class ChartData> { /// /// @param index bool removeDataSet2(int index) { - if (index >= _dataSets.length || index < 0) return false; + if (index >= _dataSets!.length || index < 0) return false; - T set = _dataSets[index]; + T set = _dataSets![index]; return removeDataSet1(set); } @@ -326,8 +326,8 @@ class ChartData> { /// @param e /// @param dataSetIndex void addEntry(Entry e, int dataSetIndex) { - if (_dataSets.length > dataSetIndex && dataSetIndex >= 0) { - IDataSet set = _dataSets[dataSetIndex]; + if (_dataSets!.length > dataSetIndex && dataSetIndex >= 0) { + IDataSet set = _dataSets![dataSetIndex]; // add the entry to the dataset if (!set.addEntry(e)) return; @@ -336,8 +336,8 @@ class ChartData> { } void addEntryByIndex(int index, Entry e, int dataSetIndex) { - if (_dataSets.length > dataSetIndex && dataSetIndex >= 0) { - IDataSet set = _dataSets[dataSetIndex]; + if (_dataSets!.length > dataSetIndex && dataSetIndex >= 0) { + IDataSet set = _dataSets![dataSetIndex]; // add the entry to the dataset if (!set.addEntryByIndex(index, e)) return; @@ -346,8 +346,8 @@ class ChartData> { } void updateEntryByIndex(int index, Entry e, int dataSetIndex) { - if (_dataSets.length > dataSetIndex && dataSetIndex >= 0) { - IDataSet set = _dataSets[dataSetIndex]; + if (_dataSets!.length > dataSetIndex && dataSetIndex >= 0) { + IDataSet set = _dataSets![dataSetIndex]; // add the entry to the dataset if (!set.updateEntryByIndex(index, e)) return; @@ -360,18 +360,18 @@ class ChartData> { /// @param e /// @param axis void calcMinMax2(Entry e, AxisDependency axis) { - if (_yMax < e.y) _yMax = e.y; - if (_yMin > e.y) _yMin = e.y; + if (_yMax! < e.y!) _yMax = e.y; + if (_yMin! > e.y!) _yMin = e.y; - if (_xMax < e.x) _xMax = e.x; - if (_xMin > e.x) _xMin = e.x; + if (_xMax! < e.x!) _xMax = e.x; + if (_xMin! > e.x!) _xMin = e.x; if (axis == AxisDependency.LEFT) { - if (_leftAxisMax < e.y) _leftAxisMax = e.y; - if (_leftAxisMin > e.y) _leftAxisMin = e.y; + if (_leftAxisMax! < e.y!) _leftAxisMax = e.y; + if (_leftAxisMin! > e.y!) _leftAxisMin = e.y; } else { - if (_rightAxisMax < e.y) _rightAxisMax = e.y; - if (_rightAxisMin > e.y) _rightAxisMin = e.y; + if (_rightAxisMax! < e.y!) _rightAxisMax = e.y; + if (_rightAxisMin! > e.y!) _rightAxisMin = e.y; } } @@ -379,18 +379,18 @@ class ChartData> { /// /// @param d void calcMinMax3(T d) { - if (_yMax < d.getYMax()) _yMax = d.getYMax(); - if (_yMin > d.getYMin()) _yMin = d.getYMin(); + if (_yMax! < d.getYMax()!) _yMax = d.getYMax(); + if (_yMin! > d.getYMin()!) _yMin = d.getYMin(); - if (_xMax < d.getXMax()) _xMax = d.getXMax(); - if (_xMin > d.getXMin()) _xMin = d.getXMin(); + if (_xMax! < d.getXMax()!) _xMax = d.getXMax(); + if (_xMin! > d.getXMin()!) _xMin = d.getXMin(); if (d.getAxisDependency() == AxisDependency.LEFT) { - if (_leftAxisMax < d.getYMax()) _leftAxisMax = d.getYMax(); - if (_leftAxisMin > d.getYMin()) _leftAxisMin = d.getYMin(); + if (_leftAxisMax! < d.getYMax()!) _leftAxisMax = d.getYMax(); + if (_leftAxisMin! > d.getYMin()!) _leftAxisMin = d.getYMin(); } else { - if (_rightAxisMax < d.getYMax()) _rightAxisMax = d.getYMax(); - if (_rightAxisMin > d.getYMin()) _rightAxisMin = d.getYMin(); + if (_rightAxisMax! < d.getYMax()!) _rightAxisMax = d.getYMax(); + if (_rightAxisMin! > d.getYMin()!) _rightAxisMin = d.getYMin(); } } @@ -400,9 +400,9 @@ class ChartData> { /// @param dataSetIndex bool removeEntry1(Entry e, int dataSetIndex) { // entry null, outofbounds - if (e == null || dataSetIndex >= _dataSets.length) return false; + if (e == null || dataSetIndex >= _dataSets!.length) return false; - IDataSet set = _dataSets[dataSetIndex]; + IDataSet set = _dataSets![dataSetIndex]; if (set != null) { // remove the entry from the dataset @@ -425,10 +425,10 @@ class ChartData> { /// @param dataSetIndex /// @return bool removeEntry2(double xValue, int dataSetIndex) { - if (dataSetIndex >= _dataSets.length) return false; + if (dataSetIndex >= _dataSets!.length) return false; - IDataSet dataSet = _dataSets[dataSetIndex]; - Entry e = dataSet.getEntryForXValue2(xValue, double.nan); + IDataSet dataSet = _dataSets![dataSetIndex]; + Entry? e = dataSet.getEntryForXValue2(xValue, double.nan); if (e == null) return false; @@ -440,11 +440,11 @@ class ChartData> { /// /// @param e /// @return - T getDataSetForEntry(Entry e) { + T? getDataSetForEntry(Entry e) { if (e == null) return null; - for (int i = 0; i < _dataSets.length; i++) { - T set = _dataSets[i]; + for (int i = 0; i < _dataSets!.length; i++) { + T set = _dataSets![i]; for (int j = 0; j < set.getEntryCount(); j++) { if (e == set.getEntryForXValue2(e.x, e.y)) return set; @@ -458,20 +458,20 @@ class ChartData> { /// represents. /// /// @return - List getColors() { + List? getColors() { if (_dataSets == null) return null; int clrcnt = 0; - for (int i = 0; i < _dataSets.length; i++) { - clrcnt += _dataSets[i].getColors().length; + for (int i = 0; i < _dataSets!.length; i++) { + clrcnt += _dataSets![i].getColors()!.length; } - List colors = List(clrcnt); + List colors = List(clrcnt); int cnt = 0; - for (int i = 0; i < _dataSets.length; i++) { - List clrs = _dataSets[i].getColors(); + for (int i = 0; i < _dataSets!.length; i++) { + List clrs = _dataSets![i].getColors()!; for (ui.Color clr in clrs) { colors[cnt] = clr; @@ -487,14 +487,14 @@ class ChartData> { /// @param dataSet /// @return int getIndexOfDataSet(T dataSet) { - return _dataSets.indexOf(dataSet); + return _dataSets!.indexOf(dataSet); } /// Returns the first DataSet from the datasets-array that has it's dependency on the left axis. /// Returns null if no DataSet with left dependency could be found. /// /// @return - T getFirstLeft(List sets) { + T? getFirstLeft(List sets) { for (T dataSet in sets) { if (dataSet.getAxisDependency() == AxisDependency.LEFT) return dataSet; } @@ -505,7 +505,7 @@ class ChartData> { /// Returns null if no DataSet with right dependency could be found. /// /// @return - T getFirstRight(List sets) { + T? getFirstRight(List sets) { for (T dataSet in sets) { if (dataSet.getAxisDependency() == AxisDependency.RIGHT) return dataSet; } @@ -519,7 +519,7 @@ class ChartData> { if (f == null) return; else { - for (IDataSet set in _dataSets) { + for (IDataSet set in _dataSets!) { set.setValueFormatter(f); } } @@ -530,7 +530,7 @@ class ChartData> { /// /// @param color void setValueTextColor(ui.Color color) { - for (IDataSet set in _dataSets) { + for (IDataSet set in _dataSets!) { set.setValueTextColor(color); } } @@ -540,7 +540,7 @@ class ChartData> { /// /// @param colors void setValueTextColors(List colors) { - for (IDataSet set in _dataSets) { + for (IDataSet set in _dataSets!) { set.setValueTextColors(colors); } } @@ -550,7 +550,7 @@ class ChartData> { /// /// @param tf void setValueTypeface(TypeFace tf) { - for (IDataSet set in _dataSets) { + for (IDataSet set in _dataSets!) { set.setValueTypeface(tf); } } @@ -560,7 +560,7 @@ class ChartData> { /// /// @param size void setValueTextSize(double size) { - for (IDataSet set in _dataSets) { + for (IDataSet set in _dataSets!) { set.setValueTextSize(size); } } @@ -570,7 +570,7 @@ class ChartData> { /// /// @param enabled void setDrawValues(bool enabled) { - for (IDataSet set in _dataSets) { + for (IDataSet set in _dataSets!) { set.setDrawValues(enabled); } } @@ -579,7 +579,7 @@ class ChartData> { /// contains. If set to true, this means that values can /// be highlighted programmatically or by touch gesture. void setHighlightEnabled(bool enabled) { - for (IDataSet set in _dataSets) { + for (IDataSet set in _dataSets!) { set.setHighlightEnabled(enabled); } } @@ -589,7 +589,7 @@ class ChartData> { /// /// @return bool isHighlightEnabled() { - for (IDataSet set in _dataSets) { + for (IDataSet set in _dataSets!) { if (!set.isHighlightEnabled()) return false; } return true; @@ -599,7 +599,7 @@ class ChartData> { /// forget to invalidate the chart after this. void clearValues() { if (_dataSets != null) { - _dataSets.clear(); + _dataSets!.clear(); } notifyDataChanged(); } @@ -610,7 +610,7 @@ class ChartData> { /// @param dataSet /// @return bool contains(T dataSet) { - for (T set in _dataSets) { + for (T set in _dataSets!) { if (set == dataSet) return true; } return false; @@ -621,7 +621,7 @@ class ChartData> { /// @return int getEntryCount() { int count = 0; - for (T set in _dataSets) { + for (T set in _dataSets!) { count += set.getEntryCount(); } return count; @@ -630,57 +630,57 @@ class ChartData> { /// Returns the DataSet object with the maximum number of entries or null if there are no DataSets. /// /// @return - T getMaxEntryCountSet() { - if (_dataSets == null || _dataSets.isEmpty) return null; - T max = _dataSets[0]; - for (T set in _dataSets) { + T? getMaxEntryCountSet() { + if (_dataSets == null || _dataSets!.isEmpty) return null; + T max = _dataSets![0]; + for (T set in _dataSets!) { if (set.getEntryCount() > max.getEntryCount()) max = set; } return max; } // ignore: unnecessary_getters_setters - double get yMin => _yMin; + double? get yMin => _yMin; // ignore: unnecessary_getters_setters - set yMin(double value) { + set yMin(double? value) { _yMin = value; } // ignore: unnecessary_getters_setters - double get leftAxisMax => _leftAxisMax; + double? get leftAxisMax => _leftAxisMax; // ignore: unnecessary_getters_setters - set leftAxisMax(double value) { + set leftAxisMax(double? value) { _leftAxisMax = value; } // ignore: unnecessary_getters_setters - double get leftAxisMin => _leftAxisMin; + double? get leftAxisMin => _leftAxisMin; // ignore: unnecessary_getters_setters - set leftAxisMin(double value) { + set leftAxisMin(double? value) { _leftAxisMin = value; } // ignore: unnecessary_getters_setters - double get rightAxisMax => _rightAxisMax; + double? get rightAxisMax => _rightAxisMax; // ignore: unnecessary_getters_setters - set rightAxisMax(double value) { + set rightAxisMax(double? value) { _rightAxisMax = value; } // ignore: unnecessary_getters_setters - double get rightAxisMin => _rightAxisMin; + double? get rightAxisMin => _rightAxisMin; // ignore: unnecessary_getters_setters - set rightAxisMin(double value) { + set rightAxisMin(double? value) { _rightAxisMin = value; } // ignore: unnecessary_getters_setters - set xMin(double value) { + set xMin(double? value) { _xMin = value; } } diff --git a/mp_chart/lib/mp/core/data/combined_data.dart b/mp_chart/lib/mp/core/data/combined_data.dart index ab5c73d7..99d2d271 100644 --- a/mp_chart/lib/mp/core/data/combined_data.dart +++ b/mp_chart/lib/mp/core/data/combined_data.dart @@ -10,12 +10,12 @@ import 'package:mp_chart/mp/core/entry/entry.dart'; import 'package:mp_chart/mp/core/highlight/highlight.dart'; class CombinedData extends BarLineScatterCandleBubbleData< - IBarLineScatterCandleBubbleDataSet> { - LineData _lineData; - BarData _barData; - ScatterData _scatterData; - CandleData _candleData; - BubbleData _bubbleData; + IBarLineScatterCandleBubbleDataSet> { + LineData? _lineData; + BarData? _barData; + ScatterData? _scatterData; + CandleData? _candleData; + BubbleData? _bubbleData; CombinedData() : super(); @@ -49,7 +49,7 @@ class CombinedData extends BarLineScatterCandleBubbleData< if (dataSets == null) { dataSets = List(); } - dataSets.clear(); + dataSets!.clear(); yMax = -double.infinity; yMin = double.infinity; @@ -61,58 +61,58 @@ class CombinedData extends BarLineScatterCandleBubbleData< rightAxisMax = -double.infinity; rightAxisMin = double.infinity; - List allData = getAllData(); + List allData = getAllData(); - for (ChartData data in allData) { - data.calcMinMax1(); + for (ChartData? data in allData) { + data!.calcMinMax1(); - List> sets = data.dataSets; - dataSets.addAll(sets); + List> sets = data.dataSets as List>; + dataSets!.addAll(sets); - if (data.getYMax1() > yMax) yMax = data.getYMax1(); + if (data.getYMax1()! > yMax!) yMax = data.getYMax1(); - if (data.getYMin1() < yMin) yMin = data.getYMin1(); + if (data.getYMin1()! < yMin!) yMin = data.getYMin1(); - if (data.xMax > xMax) xMax = data.xMax; + if (data.xMax! > xMax!) xMax = data.xMax; - if (data.xMin < xMin) xMin = data.xMin; + if (data.xMin! < xMin!) xMin = data.xMin; - if (data.leftAxisMax > leftAxisMax) leftAxisMax = data.leftAxisMax; + if (data.leftAxisMax! > leftAxisMax!) leftAxisMax = data.leftAxisMax; - if (data.leftAxisMin < leftAxisMin) leftAxisMin = data.leftAxisMin; + if (data.leftAxisMin! < leftAxisMin!) leftAxisMin = data.leftAxisMin; - if (data.rightAxisMax > rightAxisMax) rightAxisMax = data.rightAxisMax; + if (data.rightAxisMax! > rightAxisMax!) rightAxisMax = data.rightAxisMax; - if (data.rightAxisMin < rightAxisMin) rightAxisMin = data.rightAxisMin; + if (data.rightAxisMin! < rightAxisMin!) rightAxisMin = data.rightAxisMin; } } - BubbleData getBubbleData() { + BubbleData? getBubbleData() { return _bubbleData; } - LineData getLineData() { + LineData? getLineData() { return _lineData; } - BarData getBarData() { + BarData? getBarData() { return _barData; } - ScatterData getScatterData() { + ScatterData? getScatterData() { return _scatterData; } - CandleData getCandleData() { + CandleData? getCandleData() { return _candleData; } /// Returns all data objects in row: line-bar-scatter-candle-bubble if not null. /// /// @return - List getAllData() { - List data = - List(); + List getAllData() { + List data = + List(); if (_lineData != null) data.add(_lineData); if (_barData != null) data.add(_barData); if (_scatterData != null) data.add(_scatterData); @@ -122,17 +122,17 @@ class CombinedData extends BarLineScatterCandleBubbleData< return data; } - BarLineScatterCandleBubbleData getDataByIndex(int index) { + BarLineScatterCandleBubbleData? getDataByIndex(int index) { return getAllData()[index]; } @override void notifyDataChanged() { - if (_lineData != null) _lineData.notifyDataChanged(); - if (_barData != null) _barData.notifyDataChanged(); - if (_candleData != null) _candleData.notifyDataChanged(); - if (_scatterData != null) _scatterData.notifyDataChanged(); - if (_bubbleData != null) _bubbleData.notifyDataChanged(); + if (_lineData != null) _lineData!.notifyDataChanged(); + if (_barData != null) _barData!.notifyDataChanged(); + if (_candleData != null) _candleData!.notifyDataChanged(); + if (_scatterData != null) _scatterData!.notifyDataChanged(); + if (_bubbleData != null) _bubbleData!.notifyDataChanged(); calcMinMax1(); // recalculate everything } @@ -142,22 +142,22 @@ class CombinedData extends BarLineScatterCandleBubbleData< /// @param highlight /// @return the entry that is highlighted @override - Entry getEntryForHighlight(Highlight highlight) { - if (highlight.dataIndex >= getAllData().length || highlight.dataIndex < 0) + Entry? getEntryForHighlight(Highlight? highlight) { + if (highlight!.dataIndex >= getAllData().length || highlight.dataIndex < 0) return null; - ChartData data = getDataByIndex(highlight.dataIndex); + ChartData data = getDataByIndex(highlight.dataIndex)!; - if (highlight.dataSetIndex >= data.getDataSetCount()) return null; + if (highlight.dataSetIndex! >= data.getDataSetCount()) return null; // The value of the highlighted entry could be NaN - // if we are not interested in highlighting a specific value. - List entries = data - .getDataSetByIndex(highlight.dataSetIndex) + List entries = data + .getDataSetByIndex(highlight.dataSetIndex)! .getEntriesForXValue(highlight.x); - for (Entry entry in entries) - if (entry.y == highlight.y || highlight.y.isNaN) return entry; + for (Entry? entry in entries) + if (entry!.y == highlight.y || highlight.y!.isNaN) return entry; return null; } @@ -166,32 +166,32 @@ class CombinedData extends BarLineScatterCandleBubbleData< /// /// @param highlight current highlight /// @return dataset related to highlight - IBarLineScatterCandleBubbleDataSet getDataSetByHighlight( + IBarLineScatterCandleBubbleDataSet? getDataSetByHighlight( Highlight highlight) { if (highlight.dataIndex >= getAllData().length || highlight.dataIndex < 0) return null; - BarLineScatterCandleBubbleData data = getDataByIndex(highlight.dataIndex); + BarLineScatterCandleBubbleData data = getDataByIndex(highlight.dataIndex)!; - if (highlight.dataSetIndex >= data.getDataSetCount()) return null; + if (highlight.dataSetIndex! >= data.getDataSetCount()) return null; - return data.dataSets[highlight.dataSetIndex]; + return data.dataSets![highlight.dataSetIndex!]; } int getDataIndex(ChartData data) { - return getAllData().indexOf(data); + return getAllData().indexOf(data as BarLineScatterCandleBubbleData>?); } @override - bool removeDataSet1(IBarLineScatterCandleBubbleDataSet d) { - List datas = getAllData(); + bool removeDataSet1(IBarLineScatterCandleBubbleDataSet d) { + List datas = getAllData(); bool success = false; - for (ChartData data in datas) { - if (data.dataSets == null || data.dataSets.length == 0) { + for (ChartData? data in datas) { + if (data!.dataSets == null || data.dataSets!.length == 0) { continue; } - if (d.runtimeType != data.dataSets[0].runtimeType) { + if (d.runtimeType != data.dataSets![0].runtimeType) { continue; } diff --git a/mp_chart/lib/mp/core/data/pie_data.dart b/mp_chart/lib/mp/core/data/pie_data.dart index 9b817a65..283d9be5 100644 --- a/mp_chart/lib/mp/core/data/pie_data.dart +++ b/mp_chart/lib/mp/core/data/pie_data.dart @@ -11,8 +11,8 @@ class PieData extends ChartData { /// /// @param dataSet void setDataSet(IPieDataSet dataSet) { - dataSets.clear(); - dataSets.add(dataSet); + dataSets!.clear(); + dataSets!.add(dataSet); notifyDataChanged(); } @@ -21,7 +21,7 @@ class PieData extends ChartData { /// /// @return IPieDataSet getDataSet() { - return dataSets[0]; + return dataSets![0]; } /// The PieData object can only have one DataSet. Use getDataSet() method instead. @@ -29,22 +29,22 @@ class PieData extends ChartData { /// @param index /// @return @override - IPieDataSet getDataSetByIndex(int index) { + IPieDataSet? getDataSetByIndex(int? index) { return index == 0 ? getDataSet() : null; } @override - IPieDataSet getDataSetByLabel(String label, bool ignorecase) { + IPieDataSet? getDataSetByLabel(String label, bool ignorecase) { return ignorecase - ? DartAdapterUtils.equalsIgnoreCase(label, dataSets[0].getLabel()) - ? dataSets[0] + ? DartAdapterUtils.equalsIgnoreCase(label, dataSets![0].getLabel()) + ? dataSets![0] : null - : (label == dataSets[0].getLabel()) ? dataSets[0] : null; + : (label == dataSets![0].getLabel()) ? dataSets![0] : null; } @override - Entry getEntryForHighlight(Highlight highlight) { - return getDataSet().getEntryForIndex(highlight.x.toInt()); + Entry? getEntryForHighlight(Highlight? highlight) { + return getDataSet().getEntryForIndex(highlight!.x!.toInt()); } /// Returns the sum of all values in this PieData object. @@ -53,7 +53,7 @@ class PieData extends ChartData { double getYValueSum() { double sum = 0; for (int i = 0; i < getDataSet().getEntryCount(); i++) - sum += getDataSet().getEntryForIndex(i).getValue(); + sum += getDataSet().getEntryForIndex(i)!.getValue()!; return sum; } } diff --git a/mp_chart/lib/mp/core/data/radar_data.dart b/mp_chart/lib/mp/core/data/radar_data.dart index 0db3a771..65d3bfd2 100644 --- a/mp_chart/lib/mp/core/data/radar_data.dart +++ b/mp_chart/lib/mp/core/data/radar_data.dart @@ -4,23 +4,23 @@ import 'package:mp_chart/mp/core/entry/entry.dart'; import 'package:mp_chart/mp/core/highlight/highlight.dart'; class RadarData extends ChartData { - List _labels; + List? _labels; RadarData() : super(); RadarData.fromList(List dataSets) : super.fromList(dataSets); // ignore: unnecessary_getters_setters - List get labels => _labels; + List? get labels => _labels; // ignore: unnecessary_getters_setters - set labels(List value) { + set labels(List? value) { _labels = value; } @override - Entry getEntryForHighlight(Highlight highlight) { - return getDataSetByIndex(highlight.dataSetIndex) - .getEntryForIndex(highlight.x.toInt()); + Entry? getEntryForHighlight(Highlight? highlight) { + return getDataSetByIndex(highlight!.dataSetIndex)! + .getEntryForIndex(highlight.x!.toInt()); } } diff --git a/mp_chart/lib/mp/core/data/scatter_data.dart b/mp_chart/lib/mp/core/data/scatter_data.dart index 42adfeed..b45d6bd6 100644 --- a/mp_chart/lib/mp/core/data/scatter_data.dart +++ b/mp_chart/lib/mp/core/data/scatter_data.dart @@ -13,7 +13,7 @@ class ScatterData extends BarLineScatterCandleBubbleData { double getGreatestShapeSize() { double max = 0; - for (IScatterDataSet set in dataSets) { + for (IScatterDataSet set in dataSets!) { double size = set.getScatterShapeSize(); if (size > max) max = size; diff --git a/mp_chart/lib/mp/core/data_interfaces/i_bar_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_bar_data_set.dart index a76d3e96..98fb5858 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_bar_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_bar_data_set.dart @@ -3,7 +3,7 @@ import 'dart:ui'; import 'package:mp_chart/mp/core/data_interfaces/i_bar_line_scatter_candle_bubble_data_set.dart'; import 'package:mp_chart/mp/core/entry/bar_entry.dart'; -mixin IBarDataSet implements IBarLineScatterCandleBubbleDataSet { +mixin IBarDataSet implements IBarLineScatterCandleBubbleDataSet { /// Returns true if this DataSet is stacked (stacksize > 1) or not. /// /// @return diff --git a/mp_chart/lib/mp/core/data_interfaces/i_bar_line_scatter_candle_bubble_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_bar_line_scatter_candle_bubble_data_set.dart index e532ff9a..2c7d5d7c 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_bar_line_scatter_candle_bubble_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_bar_line_scatter_candle_bubble_data_set.dart @@ -3,7 +3,7 @@ import 'dart:ui'; import 'package:mp_chart/mp/core/data_interfaces/i_data_set.dart'; import 'package:mp_chart/mp/core/entry/entry.dart'; -mixin IBarLineScatterCandleBubbleDataSet +mixin IBarLineScatterCandleBubbleDataSet implements IDataSet { /// Returns the color that is used for drawing the highlight indicators. /// diff --git a/mp_chart/lib/mp/core/data_interfaces/i_bubble_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_bubble_data_set.dart index 3c73b6e9..55fe2454 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_bubble_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_bubble_data_set.dart @@ -2,7 +2,7 @@ import 'package:mp_chart/mp/core/data_interfaces/i_bar_line_scatter_candle_bubbl import 'package:mp_chart/mp/core/entry/bubble_entry.dart'; mixin IBubbleDataSet - implements IBarLineScatterCandleBubbleDataSet { + implements IBarLineScatterCandleBubbleDataSet { /// Sets the width of the circle that surrounds the bubble when highlighted, /// in dp. /// @@ -15,5 +15,5 @@ mixin IBubbleDataSet /// Returns the width of the highlight-circle that surrounds the bubble /// @return - double getHighlightCircleWidth(); + double? getHighlightCircleWidth(); } diff --git a/mp_chart/lib/mp/core/data_interfaces/i_candle_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_candle_data_set.dart index d24eb15a..44558b8a 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_candle_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_candle_data_set.dart @@ -3,7 +3,7 @@ import 'dart:ui'; import 'package:mp_chart/mp/core/data_interfaces/i_line_scatter_candle_radar_data_set.dart'; import 'package:mp_chart/mp/core/entry/candle_entry.dart'; -mixin ICandleDataSet implements ILineScatterCandleRadarDataSet { +mixin ICandleDataSet implements ILineScatterCandleRadarDataSet { /// Returns the space that is left out on the left and right side of each /// candle. /// @@ -21,7 +21,7 @@ mixin ICandleDataSet implements ILineScatterCandleRadarDataSet { /// Returns the width of the candle-shadow-line in pixels. /// /// @return - double getShadowWidth(); + double? getShadowWidth(); /// Returns shadow color for all entries /// diff --git a/mp_chart/lib/mp/core/data_interfaces/i_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_data_set.dart index 22e99cfb..faad0bf7 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_data_set.dart @@ -9,14 +9,14 @@ import 'package:mp_chart/mp/core/enums/rounding.dart'; import 'package:mp_chart/mp/core/poolable/point.dart'; import 'package:mp_chart/mp/core/value_formatter/value_formatter.dart'; -mixin IDataSet { - double getYMin(); +mixin IDataSet { + double? getYMin(); - double getYMax(); + double? getYMax(); - double getXMin(); + double? getXMin(); - double getXMax(); + double? getXMax(); int getEntryCount(); @@ -24,13 +24,13 @@ mixin IDataSet { void calcMinMaxY(double fromX, double toX); - T getEntryForXValue1(double xValue, double closestToY, Rounding rounding); + T getEntryForXValue1(double? xValue, double closestToY, Rounding rounding); - T getEntryForXValue2(double xValue, double closestToY); + T getEntryForXValue2(double? xValue, double? closestToY); - List getEntriesForXValue(double xValue); + List getEntriesForXValue(double? xValue); - T getEntryForIndex(int index); + T getEntryForIndex(int? index); int getEntryIndex1(double xValue, double closestToY, Rounding rounding); @@ -68,13 +68,13 @@ mixin IDataSet { void setAxisDependency(AxisDependency dependency); - List getColors(); + List? getColors(); ui.Color getColor1(); - GradientColor getGradientColor1(); + GradientColor? getGradientColor1(); - List getGradientColors(); + List? getGradientColors(); GradientColor getGradientColor2(int index); @@ -86,7 +86,7 @@ mixin IDataSet { void setValueFormatter(ValueFormatter f); - ValueFormatter getValueFormatter(); + ValueFormatter? getValueFormatter(); bool needsFormatter(); @@ -102,9 +102,9 @@ mixin IDataSet { ui.Color getValueTextColor2(int index); - TypeFace getValueTypeface(); + TypeFace? getValueTypeface(); - double getValueTextSize(); + double? getValueTextSize(); LegendForm getForm(); @@ -112,7 +112,7 @@ mixin IDataSet { double getFormLineWidth(); - DashPathEffect getFormLineDashEffect(); + DashPathEffect? getFormLineDashEffect(); void setDrawValues(bool enabled); diff --git a/mp_chart/lib/mp/core/data_interfaces/i_line_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_line_data_set.dart index d032d8e0..c3b061c6 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_line_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_line_data_set.dart @@ -6,7 +6,7 @@ import 'package:mp_chart/mp/core/entry/entry.dart'; import 'package:mp_chart/mp/core/enums/mode.dart'; import 'package:mp_chart/mp/core/fill_formatter/i_fill_formatter.dart'; -mixin ILineDataSet implements ILineRadarDataSet { +mixin ILineDataSet implements ILineRadarDataSet { /// Returns the drawing mode for this line dataset /// /// @return @@ -23,10 +23,10 @@ mixin ILineDataSet implements ILineRadarDataSet { bool isDrawSteppedEnabled(); /// Returns the size of the drawn circles. - double getCircleRadius(); + double? getCircleRadius(); /// Returns the hole radius of the drawn circles. - double getCircleHoleRadius(); + double? getCircleHoleRadius(); /// Returns the color at the given index of the DataSet's circle-color array. /// Performs a IndexOutOfBounds check by modulus. @@ -58,7 +58,7 @@ mixin ILineDataSet implements ILineRadarDataSet { /// Returns the DashPathEffect that is used for drawing the lines. /// /// @return - DashPathEffect getDashPathEffect(); + DashPathEffect? getDashPathEffect(); /// Returns true if the dashed-line effect is enabled, false if not. /// If the DashPathEffect object is null, also return false here. diff --git a/mp_chart/lib/mp/core/data_interfaces/i_line_radar_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_line_radar_data_set.dart index e1836e9d..d2fd83bb 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_line_radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_line_radar_data_set.dart @@ -3,7 +3,7 @@ import 'dart:ui'; import 'package:mp_chart/mp/core/data_interfaces/i_line_scatter_candle_radar_data_set.dart'; import 'package:mp_chart/mp/core/entry/entry.dart'; -mixin ILineRadarDataSet +mixin ILineRadarDataSet implements ILineScatterCandleRadarDataSet { /// Returns the color that is used for filling the line surface area. /// @@ -24,7 +24,7 @@ mixin ILineRadarDataSet /// Returns the stroke-width of the drawn line /// /// @return - double getLineWidth(); + double? getLineWidth(); /// Returns true if filled drawing is enabled, false if not /// diff --git a/mp_chart/lib/mp/core/data_interfaces/i_line_scatter_candle_radar_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_line_scatter_candle_radar_data_set.dart index 70c54bdf..ff9093f4 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_line_scatter_candle_radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_line_scatter_candle_radar_data_set.dart @@ -2,7 +2,7 @@ import 'package:mp_chart/mp/core/adapter_android_mp.dart'; import 'package:mp_chart/mp/core/data_interfaces/i_bar_line_scatter_candle_bubble_data_set.dart'; import 'package:mp_chart/mp/core/entry/entry.dart'; -mixin ILineScatterCandleRadarDataSet +mixin ILineScatterCandleRadarDataSet implements IBarLineScatterCandleBubbleDataSet { /// Returns true if vertical highlight indicator lines are enabled (drawn) /// @return @@ -14,9 +14,9 @@ mixin ILineScatterCandleRadarDataSet /// Returns the line-width in which highlight lines are to be drawn. /// @return - double getHighlightLineWidth(); + double? getHighlightLineWidth(); /// Returns the DashPathEffect that is used for highlighting. /// @return - DashPathEffect getDashPathEffectHighlight(); + DashPathEffect? getDashPathEffectHighlight(); } diff --git a/mp_chart/lib/mp/core/data_interfaces/i_pie_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_pie_data_set.dart index e7b218bb..5a1166b9 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_pie_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_pie_data_set.dart @@ -4,12 +4,12 @@ import 'package:mp_chart/mp/core/data_interfaces/i_data_set.dart'; import 'package:mp_chart/mp/core/entry/pie_entry.dart'; import 'package:mp_chart/mp/core/enums/value_position.dart'; -mixin IPieDataSet implements IDataSet { +mixin IPieDataSet implements IDataSet { /// Returns the space that is set to be between the piechart-slices of this /// DataSet, in pixels. /// /// @return - double getSliceSpace(); + double? getSliceSpace(); /// When enabled, slice spacing will be 0.0 when the smallest value is going to be /// smaller than the slice spacing itself. @@ -21,7 +21,7 @@ mixin IPieDataSet implements IDataSet { /// the chart-center in dp. /// /// @return - double getSelectionShift(); + double? getSelectionShift(); ValuePosition getXValuePosition(); diff --git a/mp_chart/lib/mp/core/data_interfaces/i_radar_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_radar_data_set.dart index 0529ea9e..0fe7b77e 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_radar_data_set.dart @@ -3,7 +3,7 @@ import 'dart:ui'; import 'package:mp_chart/mp/core/data_interfaces/i_line_radar_data_set.dart'; import 'package:mp_chart/mp/core/entry/radar_entry.dart'; -mixin IRadarDataSet implements ILineRadarDataSet { +mixin IRadarDataSet implements ILineRadarDataSet { /// flag indicating whether highlight circle should be drawn or not bool isDrawHighlightCircleEnabled(); diff --git a/mp_chart/lib/mp/core/data_interfaces/i_scatter_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_scatter_data_set.dart index 86d0a9db..cd3117a4 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_scatter_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_scatter_data_set.dart @@ -4,7 +4,7 @@ import 'package:mp_chart/mp/core/data_interfaces/i_line_scatter_candle_radar_dat import 'package:mp_chart/mp/core/entry/entry.dart'; import 'package:mp_chart/mp/core/render/i_shape_renderer.dart'; -mixin IScatterDataSet implements ILineScatterCandleRadarDataSet { +mixin IScatterDataSet implements ILineScatterCandleRadarDataSet { /// Returns the currently set scatter shape size /// /// @return @@ -23,5 +23,5 @@ mixin IScatterDataSet implements ILineScatterCandleRadarDataSet { /// Returns the IShapeRenderer responsible for rendering this DataSet. /// /// @return - IShapeRenderer getShapeRenderer(); + IShapeRenderer? getShapeRenderer(); } diff --git a/mp_chart/lib/mp/core/data_provider/bar_data_provider.dart b/mp_chart/lib/mp/core/data_provider/bar_data_provider.dart index 6e192669..23e911b2 100644 --- a/mp_chart/lib/mp/core/data_provider/bar_data_provider.dart +++ b/mp_chart/lib/mp/core/data_provider/bar_data_provider.dart @@ -2,7 +2,7 @@ import 'package:mp_chart/mp/core/data/bar_data.dart'; import 'package:mp_chart/mp/core/data_provider/bar_line_scatter_candle_bubble_data_provider.dart'; mixin BarDataProvider implements BarLineScatterCandleBubbleDataProvider { - BarData getBarData(); + BarData? getBarData(); bool isDrawBarShadowEnabled(); diff --git a/mp_chart/lib/mp/core/data_provider/bar_line_scatter_candle_bubble_data_provider.dart b/mp_chart/lib/mp/core/data_provider/bar_line_scatter_candle_bubble_data_provider.dart index db2b57b7..42ce29f0 100644 --- a/mp_chart/lib/mp/core/data_provider/bar_line_scatter_candle_bubble_data_provider.dart +++ b/mp_chart/lib/mp/core/data_provider/bar_line_scatter_candle_bubble_data_provider.dart @@ -4,7 +4,7 @@ import 'package:mp_chart/mp/core/enums/axis_dependency.dart'; import 'package:mp_chart/mp/core/transformer/transformer.dart'; mixin BarLineScatterCandleBubbleDataProvider implements ChartInterface { - Transformer getTransformer(AxisDependency axis); + Transformer? getTransformer(AxisDependency axis); bool isInverted(AxisDependency axis); @@ -12,5 +12,5 @@ mixin BarLineScatterCandleBubbleDataProvider implements ChartInterface { double getHighestVisibleX(); - BarLineScatterCandleBubbleData getData(); + BarLineScatterCandleBubbleData? getData(); } diff --git a/mp_chart/lib/mp/core/data_provider/bubble_data_provider.dart b/mp_chart/lib/mp/core/data_provider/bubble_data_provider.dart index 772292ae..be680437 100644 --- a/mp_chart/lib/mp/core/data_provider/bubble_data_provider.dart +++ b/mp_chart/lib/mp/core/data_provider/bubble_data_provider.dart @@ -2,5 +2,5 @@ import 'package:mp_chart/mp/core/data/bubble_data.dart'; import 'package:mp_chart/mp/core/data_provider/bar_line_scatter_candle_bubble_data_provider.dart'; mixin BubbleDataProvider implements BarLineScatterCandleBubbleDataProvider { - BubbleData getBubbleData(); + BubbleData? getBubbleData(); } diff --git a/mp_chart/lib/mp/core/data_provider/candle_data_provider.dart b/mp_chart/lib/mp/core/data_provider/candle_data_provider.dart index cfd17fa2..23c14b3b 100644 --- a/mp_chart/lib/mp/core/data_provider/candle_data_provider.dart +++ b/mp_chart/lib/mp/core/data_provider/candle_data_provider.dart @@ -2,5 +2,5 @@ import 'package:mp_chart/mp/core/data/candle_data.dart'; import 'package:mp_chart/mp/core/data_provider/bar_line_scatter_candle_bubble_data_provider.dart'; mixin CandleDataProvider implements BarLineScatterCandleBubbleDataProvider { - CandleData getCandleData(); + CandleData? getCandleData(); } diff --git a/mp_chart/lib/mp/core/data_provider/chart_interface.dart b/mp_chart/lib/mp/core/data_provider/chart_interface.dart index a8d3a34c..bea27699 100644 --- a/mp_chart/lib/mp/core/data_provider/chart_interface.dart +++ b/mp_chart/lib/mp/core/data_provider/chart_interface.dart @@ -8,17 +8,17 @@ mixin ChartInterface { /// Returns the minimum y value of the chart, regardless of zoom or translation. /// /// @return - double getYChartMin(); + double? getYChartMin(); /// Returns the maximum y value of the chart, regardless of zoom or translation. /// /// @return - double getYChartMax(); + double? getYChartMax(); /// Returns the maximum distance in scren dp a touch can be away from an entry to cause it to get highlighted. /// /// @return - double getMaxHighlightDistance(); + double? getMaxHighlightDistance(); MPPointF getCenter(Size size); @@ -28,5 +28,5 @@ mixin ChartInterface { int getMaxVisibleCount(); - ChartData getData(); + ChartData? getData(); } diff --git a/mp_chart/lib/mp/core/data_provider/combined_data_provider.dart b/mp_chart/lib/mp/core/data_provider/combined_data_provider.dart index 2fc8525a..f20694ed 100644 --- a/mp_chart/lib/mp/core/data_provider/combined_data_provider.dart +++ b/mp_chart/lib/mp/core/data_provider/combined_data_provider.dart @@ -12,5 +12,5 @@ mixin CombinedDataProvider BubbleDataProvider, CandleDataProvider, ScatterDataProvider { - CombinedData getCombinedData(); + CombinedData? getCombinedData(); } diff --git a/mp_chart/lib/mp/core/data_provider/line_data_provider.dart b/mp_chart/lib/mp/core/data_provider/line_data_provider.dart index f2976165..7cfc8fec 100644 --- a/mp_chart/lib/mp/core/data_provider/line_data_provider.dart +++ b/mp_chart/lib/mp/core/data_provider/line_data_provider.dart @@ -4,7 +4,7 @@ import 'package:mp_chart/mp/core/data_provider/bar_line_scatter_candle_bubble_da import 'package:mp_chart/mp/core/enums/axis_dependency.dart'; mixin LineDataProvider implements BarLineScatterCandleBubbleDataProvider { - LineData getLineData(); + LineData? getLineData(); YAxis getAxis(AxisDependency dependency); } diff --git a/mp_chart/lib/mp/core/data_provider/scatter_data_provider.dart b/mp_chart/lib/mp/core/data_provider/scatter_data_provider.dart index 3a3ea674..187f26ed 100644 --- a/mp_chart/lib/mp/core/data_provider/scatter_data_provider.dart +++ b/mp_chart/lib/mp/core/data_provider/scatter_data_provider.dart @@ -2,5 +2,5 @@ import 'package:mp_chart/mp/core/data/scatter_data.dart'; import 'package:mp_chart/mp/core/data_provider/bar_line_scatter_candle_bubble_data_provider.dart'; mixin ScatterDataProvider implements BarLineScatterCandleBubbleDataProvider { - ScatterData getScatterData(); + ScatterData? getScatterData(); } diff --git a/mp_chart/lib/mp/core/data_set/bar_data_set.dart b/mp_chart/lib/mp/core/data_set/bar_data_set.dart index 4fd23c77..67264b34 100644 --- a/mp_chart/lib/mp/core/data_set/bar_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/bar_data_set.dart @@ -38,8 +38,8 @@ class BarDataSet extends BarLineScatterCandleBubbleDataSet @override DataSet copy1() { List entries = List(); - for (int i = 0; i < values.length; i++) { - entries.add(values[i].copy()); + for (int i = 0; i < values!.length; i++) { + entries.add(values![i]!.copy()); } BarDataSet copied = BarDataSet(entries, getLabel()); copy(copied); @@ -64,7 +64,7 @@ class BarDataSet extends BarLineScatterCandleBubbleDataSet _entryCountStacks = 0; for (int i = 0; i < yVals.length; i++) { - List vals = yVals[i].yVals; + List? vals = yVals[i].yVals; if (vals == null) _entryCountStacks++; @@ -77,23 +77,23 @@ class BarDataSet extends BarLineScatterCandleBubbleDataSet /// DataSet void calcStackSize(List yVals) { for (int i = 0; i < yVals.length; i++) { - List vals = yVals[i].yVals; + List? vals = yVals[i].yVals; if (vals != null && vals.length > _stackSize) _stackSize = vals.length; } } @override - void calcMinMax1(BarEntry e) { - if (e != null && !e.y.isNaN) { + void calcMinMax1(BarEntry? e) { + if (e != null && !e.y!.isNaN) { if (e.yVals == null) { - if (e.y < getYMin()) yMin = e.y; + if (e.y! < getYMin()!) yMin = e.y; - if (e.y > getYMax()) yMax = e.y; + if (e.y! > getYMax()!) yMax = e.y; } else { - if (-e.negativeSum < getYMin()) yMin = -e.negativeSum; + if (-e.negativeSum! < getYMin()!) yMin = -e.negativeSum!; - if (e.positiveSum > getYMax()) yMax = e.positiveSum; + if (e.positiveSum! > getYMax()!) yMax = e.positiveSum; } calcMinMaxX1(e); diff --git a/mp_chart/lib/mp/core/data_set/bar_line_scatter_candle_bubble_data_set.dart b/mp_chart/lib/mp/core/data_set/bar_line_scatter_candle_bubble_data_set.dart index 1d760663..6de19329 100644 --- a/mp_chart/lib/mp/core/data_set/bar_line_scatter_candle_bubble_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/bar_line_scatter_candle_bubble_data_set.dart @@ -5,7 +5,7 @@ import 'package:mp_chart/mp/core/data_set/base_data_set.dart'; import 'package:mp_chart/mp/core/data_set/data_set.dart'; import 'package:mp_chart/mp/core/entry/entry.dart'; -abstract class BarLineScatterCandleBubbleDataSet +abstract class BarLineScatterCandleBubbleDataSet extends DataSet implements IBarLineScatterCandleBubbleDataSet { Color _highLightColor = Color.fromARGB(255, 255, 187, 115); diff --git a/mp_chart/lib/mp/core/data_set/base_data_set.dart b/mp_chart/lib/mp/core/data_set/base_data_set.dart index 5201889f..e78599c8 100644 --- a/mp_chart/lib/mp/core/data_set/base_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/base_data_set.dart @@ -12,16 +12,16 @@ import 'package:mp_chart/mp/core/utils/color_utils.dart'; import 'package:mp_chart/mp/core/value_formatter/value_formatter.dart'; import 'package:mp_chart/mp/core/utils/utils.dart'; -abstract class BaseDataSet implements IDataSet { +abstract class BaseDataSet implements IDataSet { /// List representing all colors that are used for this DataSet - List _colors; + List? _colors; - GradientColor _gradientColor; + GradientColor? _gradientColor; - List _gradientColors; + List? _gradientColors; /// List representing all colors that are used for drawing the actual values for this DataSet - List _valueColors; + List? _valueColors; /// label that describes the DataSet or the data the DataSet represents String _label = "DataSet"; @@ -33,15 +33,15 @@ abstract class BaseDataSet implements IDataSet { bool _highlightEnabled = true; /// custom formatter that is used instead of the auto-formatter if set - ValueFormatter _valueFormatter; + ValueFormatter? _valueFormatter; /// the typeface used for the value text - TypeFace _valueTypeface; + TypeFace? _valueTypeface; LegendForm _form = LegendForm.DEFAULT; double _formSize = double.nan; double _formLineWidth = double.nan; - DashPathEffect _formLineDashEffect; + DashPathEffect? _formLineDashEffect; /// if true, y-values are drawn on the chart bool _drawValues = true; @@ -53,7 +53,7 @@ abstract class BaseDataSet implements IDataSet { MPPointF _iconsOffset = MPPointF(0, 0); /// the size of the value-text labels - double _valueTextSize = 17; + double? _valueTextSize = 17; /// flag that indicates if the DataSet is visible or not bool _visible = true; @@ -63,8 +63,8 @@ abstract class BaseDataSet implements IDataSet { _colors = List(); _valueColors = List(); // default color - _colors.add(ui.Color.fromARGB(255, 140, 234, 255)); - _valueColors.add(ColorUtils.BLACK); + _colors!.add(ui.Color.fromARGB(255, 140, 234, 255)); + _valueColors!.add(ColorUtils.BLACK); } /// Constructor with label. @@ -75,8 +75,8 @@ abstract class BaseDataSet implements IDataSet { _valueColors = List(); // default color - _colors.add(ui.Color.fromARGB(255, 140, 234, 255)); - _valueColors.add(ColorUtils.BLACK); + _colors!.add(ui.Color.fromARGB(255, 140, 234, 255)); + _valueColors!.add(ColorUtils.BLACK); this._label = label; } @@ -88,37 +88,37 @@ abstract class BaseDataSet implements IDataSet { /// ###### ###### COLOR GETTING RELATED METHODS ##### ###### @override - List getColors() { + List? getColors() { return _colors; } - List getValueColors() { + List? getValueColors() { return _valueColors; } @override ui.Color getColor1() { - return _colors[0]; + return _colors![0]; } @override ui.Color getColor2(int index) { - return _colors[index % _colors.length]; + return _colors![index % _colors!.length]; } @override - GradientColor getGradientColor1() { + GradientColor? getGradientColor1() { return _gradientColor; } @override - List getGradientColors() { + List? getGradientColors() { return _gradientColors; } @override GradientColor getGradientColor2(int index) { - return _gradientColors[index % _gradientColors.length]; + return _gradientColors![index % _gradientColors!.length]; } /** @@ -141,7 +141,7 @@ abstract class BaseDataSet implements IDataSet { /// @param color void addColor(ui.Color color) { if (_colors == null) _colors = List(); - _colors.add(color); + _colors!.add(color); } /// Sets the one and ONLY color that should be used for this DataSet. @@ -150,13 +150,13 @@ abstract class BaseDataSet implements IDataSet { /// @param color void setColor1(ui.Color color) { resetColors(); - _colors.add(color); + _colors!.add(color); } void setColor3(ui.Color color, int alpha) { resetColors(); alpha = alpha > 255 ? 255 : (alpha < 0 ? 0 : alpha); - _colors.add(Color.fromARGB(alpha, color.red, color.green, color.blue)); + _colors!.add(Color.fromARGB(alpha, color.red, color.green, color.blue)); } /// Sets the start and end color for gradient color, ONLY color that should be used for this DataSet. @@ -198,7 +198,7 @@ abstract class BaseDataSet implements IDataSet { if (_colors == null) { _colors = List(); } - _colors.clear(); + _colors!.clear(); } /// ###### ###### OTHER STYLING RELATED METHODS ##### ###### @@ -232,7 +232,7 @@ abstract class BaseDataSet implements IDataSet { } @override - ValueFormatter getValueFormatter() { + ValueFormatter? getValueFormatter() { if (needsFormatter()) return Utils.getDefaultValueFormatter(); return _valueFormatter; } @@ -244,8 +244,8 @@ abstract class BaseDataSet implements IDataSet { @override void setValueTextColor(ui.Color color) { - _valueColors.clear(); - _valueColors.add(color); + _valueColors!.clear(); + _valueColors!.add(color); } @override @@ -265,21 +265,21 @@ abstract class BaseDataSet implements IDataSet { @override ui.Color getValueTextColor1() { - return _valueColors[0]; + return _valueColors![0]; } @override ui.Color getValueTextColor2(int index) { - return _valueColors[index % _valueColors.length]; + return _valueColors![index % _valueColors!.length]; } @override - TypeFace getValueTypeface() { + TypeFace? getValueTypeface() { return _valueTypeface; } @override - double getValueTextSize() { + double? getValueTextSize() { return _valueTextSize; } @@ -315,7 +315,7 @@ abstract class BaseDataSet implements IDataSet { } @override - DashPathEffect getFormLineDashEffect() { + DashPathEffect? getFormLineDashEffect() { return _formLineDashEffect; } diff --git a/mp_chart/lib/mp/core/data_set/bubble_data_set.dart b/mp_chart/lib/mp/core/data_set/bubble_data_set.dart index 65276f78..86cf13b1 100644 --- a/mp_chart/lib/mp/core/data_set/bubble_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/bubble_data_set.dart @@ -10,7 +10,7 @@ class BubbleDataSet extends BarLineScatterCandleBubbleDataSet double _maxSize = 0.0; bool _normalizeSize = true; - double _highlightCircleWidth = 2.5; + double? _highlightCircleWidth = 2.5; BubbleDataSet(List yVals, String label) : super(yVals, label); @@ -20,15 +20,15 @@ class BubbleDataSet extends BarLineScatterCandleBubbleDataSet } @override - double getHighlightCircleWidth() { + double? getHighlightCircleWidth() { return _highlightCircleWidth; } @override - void calcMinMax1(BubbleEntry e) { + void calcMinMax1(BubbleEntry? e) { super.calcMinMax1(e); - final double size = e.size; + final double size = e!.size!; if (size > _maxSize) { _maxSize = size; @@ -38,8 +38,8 @@ class BubbleDataSet extends BarLineScatterCandleBubbleDataSet @override DataSet copy1() { List entries = List(); - for (int i = 0; i < values.length; i++) { - entries.add(values[i].copy()); + for (int i = 0; i < values!.length; i++) { + entries.add(values![i]!.copy()); } BubbleDataSet copied = BubbleDataSet(entries, getLabel()); copy(copied); diff --git a/mp_chart/lib/mp/core/data_set/candle_data_set.dart b/mp_chart/lib/mp/core/data_set/candle_data_set.dart index 31619325..b98f32f4 100644 --- a/mp_chart/lib/mp/core/data_set/candle_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/candle_data_set.dart @@ -12,7 +12,7 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; class CandleDataSet extends LineScatterCandleRadarDataSet implements ICandleDataSet { /// the width of the shadow of the candle - double _shadowWidth = 3; + double? _shadowWidth = 3; /// should the candle bars show? /// when false, only "ticks" will show @@ -50,10 +50,10 @@ class CandleDataSet extends LineScatterCandleRadarDataSet CandleDataSet(List yVals, String label) : super(yVals, label); @override - DataSet copy1() { + DataSet copy1() { List entries = List(); - for (int i = 0; i < values.length; i++) { - entries.add(values[i].copy()); + for (int i = 0; i < values!.length; i++) { + entries.add(values![i]!.copy()); } CandleDataSet copied = CandleDataSet(entries, getLabel()); copy(copied); @@ -79,23 +79,23 @@ class CandleDataSet extends LineScatterCandleRadarDataSet } @override - void calcMinMax1(CandleEntry e) { - if (e.shadowLow < getYMin()) yMin = e.shadowLow; + void calcMinMax1(CandleEntry? e) { + if (e!.shadowLow < getYMin()!) yMin = e.shadowLow; - if (e.shadowHigh > getYMax()) yMax = e.shadowHigh; + if (e.shadowHigh > getYMax()!) yMax = e.shadowHigh; calcMinMaxX1(e); } @override - void calcMinMaxY1(CandleEntry e) { - if (e.shadowHigh < getYMin()) yMin = e.shadowHigh; + void calcMinMaxY1(CandleEntry? e) { + if (e!.shadowHigh < getYMin()!) yMin = e.shadowHigh; - if (e.shadowHigh > getYMax()) yMax = e.shadowHigh; + if (e.shadowHigh > getYMax()!) yMax = e.shadowHigh; - if (e.shadowLow < getYMin()) yMin = e.shadowLow; + if (e.shadowLow < getYMin()!) yMin = e.shadowLow; - if (e.shadowLow > getYMax()) yMax = e.shadowLow; + if (e.shadowLow > getYMax()!) yMax = e.shadowLow; } /// Sets the space that is left out on the left and right side of each @@ -122,7 +122,7 @@ class CandleDataSet extends LineScatterCandleRadarDataSet } @override - double getShadowWidth() { + double? getShadowWidth() { return _shadowWidth; } @@ -228,7 +228,7 @@ class CandleDataSet extends LineScatterCandleRadarDataSet } @override - DashPathEffect getDashPathEffectHighlight() { + DashPathEffect? getDashPathEffectHighlight() { return null; } } diff --git a/mp_chart/lib/mp/core/data_set/data_set.dart b/mp_chart/lib/mp/core/data_set/data_set.dart index fbd5d26f..5cd4c63e 100644 --- a/mp_chart/lib/mp/core/data_set/data_set.dart +++ b/mp_chart/lib/mp/core/data_set/data_set.dart @@ -2,21 +2,21 @@ import 'package:mp_chart/mp/core/data_set/base_data_set.dart'; import 'package:mp_chart/mp/core/entry/entry.dart'; import 'package:mp_chart/mp/core/enums/rounding.dart'; -abstract class DataSet extends BaseDataSet { +abstract class DataSet extends BaseDataSet { /// the entries that this DataSet represents / holds together - List _values; + List? _values; /// maximum y-value in the value array - double _yMax = -double.infinity; + double? _yMax = -double.infinity; /// minimum y-value in the value array - double _yMin = double.infinity; + double? _yMin = double.infinity; /// maximum x-value in the value array - double _xMax = -double.infinity; + double? _xMax = -double.infinity; /// minimum x-value in the value array - double _xMin = double.infinity; + double? _xMin = double.infinity; /// Creates a DataSet object with the given values (entries) it represents. Also, a /// label that describes the DataSet can be specified. The label can also be @@ -34,21 +34,21 @@ abstract class DataSet extends BaseDataSet { @override void calcMinMax() { - if (_values == null || _values.isEmpty) return; + if (_values == null || _values!.isEmpty) return; _yMax = -double.infinity; _yMin = double.infinity; _xMax = -double.infinity; _xMin = double.infinity; - for (T e in _values) { + for (T? e in _values!) { calcMinMax1(e); } } @override void calcMinMaxY(double fromX, double toX) { - if (_values == null || _values.isEmpty) return; + if (_values == null || _values!.isEmpty) return; _yMax = -double.infinity; _yMin = double.infinity; @@ -58,14 +58,14 @@ abstract class DataSet extends BaseDataSet { for (int i = indexFrom; i <= indexTo; i++) { // only recalculate y - calcMinMaxY1(_values[i]); + calcMinMaxY1(_values![i]!); } } /// Updates the min and max x and y value of this DataSet based on the given Entry. /// /// @param e - void calcMinMax1(T e) { + void calcMinMax1(T? e) { if (e == null) return; calcMinMaxX1(e); @@ -74,23 +74,23 @@ abstract class DataSet extends BaseDataSet { } void calcMinMaxX1(T e) { - if (e.x < _xMin) _xMin = e.x; + if (e.x! < _xMin!) _xMin = e.x; - if (e.x > _xMax) _xMax = e.x; + if (e.x! > _xMax!) _xMax = e.x; } void calcMinMaxY1(T e) { - if (e.y < _yMin) _yMin = e.y; + if (e.y! < _yMin!) _yMin = e.y; - if (e.y > _yMax) _yMax = e.y; + if (e.y! > _yMax!) _yMax = e.y; } @override int getEntryCount() { - return _values == null ? 0 : _values.length; + return _values == null ? 0 : _values!.length; } - List get values => _values; + List? get values => _values; /// Sets the array of entries that this DataSet represents, and calls notifyDataSetChanged() /// @@ -113,7 +113,7 @@ abstract class DataSet extends BaseDataSet { @override String toString() { - return 'DataSet{_values.length: ${_values.length},\n _yMax: $_yMax,\n _yMin: $_yMin,\n _xMax: $_xMax,\n _xMin: $_xMin}'; + return 'DataSet{_values.length: ${_values!.length},\n _yMax: $_yMax,\n _yMin: $_yMin,\n _xMax: $_xMax,\n _xMin: $_xMin}'; } /// Returns a simple string representation of the DataSet with the type and @@ -124,15 +124,15 @@ abstract class DataSet extends BaseDataSet { StringBuffer buffer = StringBuffer(); buffer.write("DataSet, label: " + (getLabel() == null ? "" : getLabel()) + - ", entries:${_values.length}\n"); + ", entries:${_values!.length}\n"); return buffer.toString(); } - set yMax(double value) { + set yMax(double? value) { _yMax = value; } - set yMin(double value) { + set yMin(double? value) { _yMin = value; } @@ -145,27 +145,27 @@ abstract class DataSet extends BaseDataSet { } @override - double getYMin() { + double? getYMin() { return _yMin; } @override - double getYMax() { + double? getYMax() { return _yMax; } @override - double getXMin() { + double? getXMin() { return _xMin; } @override - double getXMax() { + double? getXMax() { return _xMax; } @override - void addEntryOrdered(T e) { + void addEntryOrdered(T? e) { if (e == null) return; if (_values == null) { @@ -174,25 +174,25 @@ abstract class DataSet extends BaseDataSet { calcMinMax1(e); - if (_values.length > 0 && _values[_values.length - 1].x > e.x) { + if (_values!.length > 0 && _values![_values!.length - 1]!.x! > e.x!) { int closestIndex = getEntryIndex1(e.x, e.y, Rounding.UP); - _values.insert(closestIndex, e); + _values!.insert(closestIndex, e); } else { - _values.add(e); + _values!.add(e); } } @override void clear() { - _values.clear(); + _values!.clear(); notifyDataSetChanged(); } @override - bool addEntry(T e) { + bool addEntry(T? e) { if (e == null) return false; - List valueDatas = values; + List? valueDatas = values; if (valueDatas == null) { valueDatas = List(); } @@ -205,12 +205,12 @@ abstract class DataSet extends BaseDataSet { } @override - bool addEntryByIndex(int index, T e) { + bool addEntryByIndex(int index, T? e) { return false; } @override - bool updateEntryByIndex(int index, T e) { + bool updateEntryByIndex(int index, T? e) { if (index < 0 || index > getEntryCount() - 1) { return false; } @@ -219,9 +219,9 @@ abstract class DataSet extends BaseDataSet { return false; } - List valueDatas = values; - var pre = valueDatas.removeAt(index); - e.x = pre.x; + List valueDatas = values!; + T pre = valueDatas.removeAt(index)!; + e!.x = pre.x; valueDatas.insert(index, e); calcMinMax(); @@ -230,13 +230,13 @@ abstract class DataSet extends BaseDataSet { } @override - bool removeEntry1(T e) { + bool removeEntry1(T? e) { if (e == null) return false; if (_values == null) return false; // remove the entry - bool removed = _values.remove(e); + bool removed = _values!.remove(e); if (removed) { calcMinMax(); @@ -246,40 +246,40 @@ abstract class DataSet extends BaseDataSet { } @override - int getEntryIndex2(Entry e) { - return _values.indexOf(e); + int getEntryIndex2(Entry? e) { + return _values!.indexOf(e as T?); } @override - T getEntryForXValue1(double xValue, double closestToY, Rounding rounding) { + T? getEntryForXValue1(double? xValue, double? closestToY, Rounding rounding) { int index = getEntryIndex1(xValue, closestToY, rounding); - if (index > -1) return _values[index]; + if (index > -1) return _values![index]; return null; } @override - T getEntryForXValue2(double xValue, double closestToY) { + T? getEntryForXValue2(double? xValue, double? closestToY) { return getEntryForXValue1(xValue, closestToY, Rounding.CLOSEST); } @override - T getEntryForIndex(int index) { - return _values[index]; + T? getEntryForIndex(int? index) { + return _values![index!]; } @override - int getEntryIndex1(double xValue, double closestToY, Rounding rounding) { - if (_values == null || _values.isEmpty) return -1; + int getEntryIndex1(double? xValue, double? closestToY, Rounding rounding) { + if (_values == null || _values!.isEmpty) return -1; int low = 0; - int high = _values.length - 1; + int high = _values!.length - 1; int closest = high; while (low < high) { int m = (low + high) ~/ 2; - final double d1 = _values[m].x - xValue, - d2 = _values[m + 1].x - xValue, + final double d1 = _values![m]!.x! - xValue!, + d2 = _values![m + 1]!.x! - xValue, ad1 = d1.abs(), ad2 = d2.abs(); @@ -307,37 +307,37 @@ abstract class DataSet extends BaseDataSet { } if (closest != -1) { - double closestXValue = _values[closest].x; + double? closestXValue = _values![closest]!.x; if (rounding == Rounding.UP) { // If rounding up, and found x-value is lower than specified x, and we can go upper... - if (closestXValue < xValue && closest < _values.length - 1) { + if (closestXValue! < xValue! && closest < _values!.length - 1) { ++closest; } } else if (rounding == Rounding.DOWN) { // If rounding down, and found x-value is upper than specified x, and we can go lower... - if (closestXValue > xValue && closest > 0) { + if (closestXValue! > xValue! && closest > 0) { --closest; } } // Search by closest to y-value - if (!(closestToY.isNaN)) { - while (closest > 0 && _values[closest - 1].x == closestXValue) + if (!(closestToY!.isNaN)) { + while (closest > 0 && _values![closest - 1]!.x == closestXValue) closest -= 1; - double closestYValue = _values[closest].y; + double? closestYValue = _values![closest]!.y; int closestYIndex = closest; while (true) { closest += 1; - if (closest >= _values.length) break; + if (closest >= _values!.length) break; - final Entry value = _values[closest]; + final Entry value = _values![closest]!; if (value.x != closestXValue) break; - if ((value.y - closestToY).abs() < - (closestYValue - closestToY).abs()) { + if ((value.y! - closestToY).abs() < + (closestYValue! - closestToY).abs()) { closestYValue = closestToY; closestYIndex = closest; } @@ -351,25 +351,25 @@ abstract class DataSet extends BaseDataSet { } @override - List getEntriesForXValue(double xValue) { - List entries = List(); + List getEntriesForXValue(double? xValue) { + List entries = List(); int low = 0; - int high = _values.length - 1; + int high = _values!.length - 1; while (low <= high) { int m = (high + low) ~/ 2; - T entry = _values[m]; + T entry = _values![m]!; // if we have a match if (xValue == entry.x) { - while (m > 0 && _values[m - 1].x == xValue) m--; + while (m > 0 && _values![m - 1]!.x == xValue) m--; - high = _values.length; + high = _values!.length; // loop over all "equal" entries for (; m < high; m++) { - entry = _values[m]; + entry = _values![m]!; if (entry.x == xValue) { entries.add(entry); } else { @@ -379,7 +379,7 @@ abstract class DataSet extends BaseDataSet { break; } else { - if (xValue > entry.x) + if (xValue! > entry.x!) low = m + 1; else high = m - 1; diff --git a/mp_chart/lib/mp/core/data_set/line_data_set.dart b/mp_chart/lib/mp/core/data_set/line_data_set.dart index 3fd161b6..3650e8d5 100644 --- a/mp_chart/lib/mp/core/data_set/line_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/line_data_set.dart @@ -17,22 +17,22 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { Mode _mode = Mode.LINEAR; /// List representing all colors that are used for the circles - List _circleColors; + List? _circleColors; /// the color of the inner circles Color _circleHoleColor = ColorUtils.WHITE; /// the radius of the circle-shaped value indicators - double _circleRadius = 8; + double? _circleRadius = 8; /// the hole radius of the circle-shaped value indicators - double _circleHoleRadius = 4; + double? _circleHoleRadius = 4; /// sets the intensity of the cubic lines double _cubicIntensity = 0.2; /// the path effect of this DataSet that makes dashed lines possible - DashPathEffect _dashPathEffect; + DashPathEffect? _dashPathEffect; /// formatter for customizing the position of the fill-line IFillFormatter _fillFormatter = DefaultFillFormatter(); @@ -49,12 +49,12 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { if (_circleColors == null) { _circleColors = List(); } - _circleColors.clear(); + _circleColors!.clear(); // default colors // mColors.add(Color.rgb(192, 255, 140)); // mColors.add(Color.rgb(255, 247, 140)); - _circleColors.add(Color.fromARGB(255, 140, 234, 255)); + _circleColors!.add(Color.fromARGB(255, 140, 234, 255)); } @override @@ -117,7 +117,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { } @override - double getCircleRadius() { + double? getCircleRadius() { return _circleRadius; } @@ -132,7 +132,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { } @override - double getCircleHoleRadius() { + double? getCircleHoleRadius() { return _circleHoleRadius; } @@ -147,7 +147,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { } /// This function is deprecated because of unclarity. Use getCircleRadius instead. - double getCircleSize() { + double? getCircleSize() { return getCircleRadius(); } @@ -173,7 +173,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { } @override - DashPathEffect getDashPathEffect() { + DashPathEffect? getDashPathEffect() { return _dashPathEffect; } @@ -209,18 +209,18 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { /// returns all colors specified for the circles /// /// @return - List getCircleColors() { + List? getCircleColors() { return _circleColors; } @override Color getCircleColor(int index) { - return _circleColors[index]; + return _circleColors![index]; } @override int getCircleColorCount() { - return _circleColors.length; + return _circleColors!.length; } /// Sets the colors that should be used for the circles of this DataSet. @@ -240,7 +240,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { /// @param color void setCircleColor(Color color) { resetCircleColors(); - _circleColors.add(color); + _circleColors!.add(color); } /// resets the circle-colors array and creates a one @@ -248,7 +248,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { if (_circleColors == null) { _circleColors = List(); } - _circleColors.clear(); + _circleColors!.clear(); } /// Sets the color of the inner circle of the line-circles. @@ -292,14 +292,14 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { } @override - DataSet copy1() { + DataSet copy1() { List entries = List(); - for (int i = 0; i < values.length; i++) { + for (int i = 0; i < values!.length; i++) { entries.add(Entry( - x: values[i].x, - y: values[i].y, - icon: values[i].mIcon, - data: values[i].mData)); + x: values![i]!.x, + y: values![i]!.y, + icon: values![i]!.mIcon, + data: values![i]!.mData)); } LineDataSet copied = LineDataSet(entries, getLabel()); copy(copied); diff --git a/mp_chart/lib/mp/core/data_set/line_radar_data_set.dart b/mp_chart/lib/mp/core/data_set/line_radar_data_set.dart index 8e1b697e..d30c6661 100644 --- a/mp_chart/lib/mp/core/data_set/line_radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/line_radar_data_set.dart @@ -21,7 +21,7 @@ abstract class LineRadarDataSet int _fillAlpha = 85; /// the width of the drawn data lines - double _lineWidth = 2.5; + double? _lineWidth = 2.5; /// if true, the data will also be drawn filled bool _drawFilled = false; @@ -90,7 +90,7 @@ abstract class LineRadarDataSet } @override - double getLineWidth() { + double? getLineWidth() { return _lineWidth; } diff --git a/mp_chart/lib/mp/core/data_set/line_scatter_candle_radar_data_set.dart b/mp_chart/lib/mp/core/data_set/line_scatter_candle_radar_data_set.dart index 8e36934d..66458582 100644 --- a/mp_chart/lib/mp/core/data_set/line_scatter_candle_radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/line_scatter_candle_radar_data_set.dart @@ -6,16 +6,16 @@ import 'package:mp_chart/mp/core/entry/entry.dart'; import 'package:mp_chart/mp/core/utils/utils.dart'; abstract class LineScatterCandleRadarDataSet - extends BarLineScatterCandleBubbleDataSet + extends BarLineScatterCandleBubbleDataSet implements ILineScatterCandleRadarDataSet { bool _drawVerticalHighlightIndicator = true; bool _drawHorizontalHighlightIndicator = true; /// the width of the highlight indicator lines - double _highlightLineWidth = 0.5; + double? _highlightLineWidth = 0.5; /// the path effect for dashed highlight-lines - DashPathEffect _highlightDashPathEffect; + DashPathEffect? _highlightDashPathEffect; /// the path effect for dashed highlight-lines // DashPathEffect mHighlightDashPathEffect = null; @@ -61,7 +61,7 @@ abstract class LineScatterCandleRadarDataSet } @override - double getHighlightLineWidth() { + double? getHighlightLineWidth() { return _highlightLineWidth; } @@ -89,7 +89,7 @@ abstract class LineScatterCandleRadarDataSet } @override - DashPathEffect getDashPathEffectHighlight() { + DashPathEffect? getDashPathEffectHighlight() { return _highlightDashPathEffect; } @@ -116,30 +116,30 @@ abstract class LineScatterCandleRadarDataSet /// the added entry's x value must be in range of Pre's x value(Pre : Entry at index - 1) /// and Cur's x value(Cur: Entry at index). @override - bool addEntryByIndex(int index, T e) { + bool addEntryByIndex(int index, T? e) { if(index < 0 || index > getEntryCount()){ return false; } - List valueDatas = values; + List? valueDatas = values; if (getEntryCount() == 0) { return addEntry(e); } if(index == 0){ - var cur = valueDatas[index]; - if (e.x >= cur.x) { + T cur = valueDatas![index]!; + if (e!.x! >= cur.x!) { return false; } } else if(index == getEntryCount()){ - var pre = valueDatas[index - 1]; - if(e.x <= pre.x){ + T pre = valueDatas![index - 1]!; + if(e!.x! <= pre.x!){ return false; } }else { - var cur = valueDatas[index]; + T cur = valueDatas![index]!; var pre = valueDatas[index - 1]; - if (e.x >= cur.x || e.x <= pre.x) { + if (e!.x! >= cur.x! || e.x! <= pre!.x!) { return false; } } diff --git a/mp_chart/lib/mp/core/data_set/pie_data_set.dart b/mp_chart/lib/mp/core/data_set/pie_data_set.dart index 6a07ffd1..149c8e9f 100644 --- a/mp_chart/lib/mp/core/data_set/pie_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/pie_data_set.dart @@ -9,11 +9,11 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; class PieDataSet extends DataSet implements IPieDataSet { /// the space in pixels between the chart-slices, default 0f - double _sliceSpace = 0; + double? _sliceSpace = 0; bool _automaticallyDisableSliceSpacing = false; /// indicates the selection distance of a pie slice - double _shift = 18; + double? _shift = 18; ValuePosition _xValuePosition = ValuePosition.INSIDE_SLICE; ValuePosition _yValuePosition = ValuePosition.INSIDE_SLICE; @@ -30,8 +30,8 @@ class PieDataSet extends DataSet implements IPieDataSet { @override DataSet copy1() { List entries = List(); - for (int i = 0; i < values.length; i++) { - entries.add(values[i].copy()); + for (int i = 0; i < values!.length; i++) { + entries.add(values![i]!.copy()); } PieDataSet copied = PieDataSet(entries, getLabel()); copy(copied); @@ -43,7 +43,7 @@ class PieDataSet extends DataSet implements IPieDataSet { } @override - void calcMinMax1(PieEntry e) { + void calcMinMax1(PieEntry? e) { if (e == null) return; calcMinMaxY1(e); } @@ -60,7 +60,7 @@ class PieDataSet extends DataSet implements IPieDataSet { } @override - double getSliceSpace() { + double? getSliceSpace() { return _sliceSpace; } @@ -90,7 +90,7 @@ class PieDataSet extends DataSet implements IPieDataSet { } @override - double getSelectionShift() { + double? getSelectionShift() { return _shift; } diff --git a/mp_chart/lib/mp/core/data_set/radar_data_set.dart b/mp_chart/lib/mp/core/data_set/radar_data_set.dart index 387970af..88fd4224 100644 --- a/mp_chart/lib/mp/core/data_set/radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/radar_data_set.dart @@ -96,10 +96,10 @@ class RadarDataSet extends LineRadarDataSet } @override - DataSet copy1() { + DataSet copy1() { List entries = List(); - for (int i = 0; i < values.length; i++) { - entries.add(values[i].copy()); + for (int i = 0; i < values!.length; i++) { + entries.add(values![i]!.copy()); } RadarDataSet copied = RadarDataSet(entries, getLabel()); copy(copied); @@ -121,7 +121,7 @@ class RadarDataSet extends LineRadarDataSet } @override - bool addEntryByIndex(int index, RadarEntry e) { + bool addEntryByIndex(int index, RadarEntry? e) { return false; } } diff --git a/mp_chart/lib/mp/core/data_set/scatter_data_set.dart b/mp_chart/lib/mp/core/data_set/scatter_data_set.dart index a912f516..150be6c5 100644 --- a/mp_chart/lib/mp/core/data_set/scatter_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/scatter_data_set.dart @@ -22,7 +22,7 @@ class ScatterDataSet extends LineScatterCandleRadarDataSet double _shapeSize = 15; /// Renderer responsible for rendering this DataSet, default: square - IShapeRenderer _shapeRenderer = SquareShapeRenderer(); + IShapeRenderer? _shapeRenderer = SquareShapeRenderer(); /// The radius of the hole in the shape (applies to Square, Circle and Triangle) /// - default: 0.0 @@ -36,10 +36,10 @@ class ScatterDataSet extends LineScatterCandleRadarDataSet ScatterDataSet(List yVals, String label) : super(yVals, label); @override - DataSet copy1() { + DataSet copy1() { List entries = List(); - for (int i = 0; i < values.length; i++) { - entries.add(values[i].copy()); + for (int i = 0; i < values!.length; i++) { + entries.add(values![i]!.copy()); } ScatterDataSet copied = ScatterDataSet(entries, getLabel()); copy(copied); @@ -88,7 +88,7 @@ class ScatterDataSet extends LineScatterCandleRadarDataSet } @override - IShapeRenderer getShapeRenderer() { + IShapeRenderer? getShapeRenderer() { return _shapeRenderer; } @@ -117,7 +117,7 @@ class ScatterDataSet extends LineScatterCandleRadarDataSet return _scatterShapeHoleColor; } - static IShapeRenderer getRendererForShape(ScatterShape shape) { + static IShapeRenderer? getRendererForShape(ScatterShape shape) { switch (shape) { case ScatterShape.SQUARE: return SquareShapeRenderer(); diff --git a/mp_chart/lib/mp/core/description.dart b/mp_chart/lib/mp/core/description.dart index 61ad9b10..612ab7c0 100644 --- a/mp_chart/lib/mp/core/description.dart +++ b/mp_chart/lib/mp/core/description.dart @@ -10,14 +10,14 @@ class Description extends ComponentBase { String _text = "Description Label"; /// the custom position of the description text - MPPointF _position; + MPPointF? _position; /// the alignment of the description text TextAlign _textAlign = TextAlign.center; Description() : super() { // default size - textSize = Utils.convertDpToPixel(8); + textSize = Utils.convertDpToPixel(8)!; } // ignore: unnecessary_getters_setters @@ -36,12 +36,12 @@ class Description extends ComponentBase { if (_position == null) { _position = MPPointF.getInstance1(x, y); } else { - _position.x = x; - _position.y = y; + _position!.x = x; + _position!.y = y; } } - MPPointF get position => _position; + MPPointF? get position => _position; // ignore: unnecessary_getters_setters TextAlign get textAlign => _textAlign; diff --git a/mp_chart/lib/mp/core/entry/bar_entry.dart b/mp_chart/lib/mp/core/entry/bar_entry.dart index 0656f68f..9118365b 100644 --- a/mp_chart/lib/mp/core/entry/bar_entry.dart +++ b/mp_chart/lib/mp/core/entry/bar_entry.dart @@ -5,22 +5,22 @@ import 'package:mp_chart/mp/core/range.dart'; class BarEntry extends Entry { /// the values the stacked barchart holds - List _yVals; + List? _yVals; /// the ranges for the individual stack values - automatically calculated - List _ranges; + List? _ranges; /// the sum of all negative values this entry (if stacked) contains - double _negativeSum; + double? _negativeSum; /// the sum of all positive values this entry (if stacked) contains - double _positiveSum; + double? _positiveSum; - BarEntry({double x, double y, ui.Image icon, Object data}) + BarEntry({double? x, double? y, ui.Image? icon, Object? data}) : super(x: x, y: y, icon: icon, data: data); BarEntry.fromListYVals( - {double x, List vals, ui.Image icon, Object data}) + {double? x, List? vals, ui.Image? icon, Object? data}) : super(x: x, y: calcSum(vals), icon: icon, data: data) { this._yVals = vals; calcPosNegSum(); @@ -33,19 +33,19 @@ class BarEntry extends Entry { return copied; } - List get yVals => _yVals; + List? get yVals => _yVals; /// Set the array of values this BarEntry should represent. /// /// @param vals - void setVals(List vals) { + void setVals(List? vals) { y = calcSum(vals); _yVals = vals; calcPosNegSum(); calcRanges(); } - List get ranges => _ranges; + List? get ranges => _ranges; /// Returns true if this BarEntry is stacked (has a values array), false if not. /// @@ -58,18 +58,18 @@ class BarEntry extends Entry { if (_yVals == null) return 0; double remainder = 0.0; - int index = _yVals.length - 1; + int index = _yVals!.length - 1; while (index > stackIndex && index >= 0) { - remainder += _yVals[index]; + remainder += _yVals![index]; index--; } return remainder; } - double get negativeSum => _negativeSum; + double? get negativeSum => _negativeSum; - double get positiveSum => _positiveSum; + double? get positiveSum => _positiveSum; void calcPosNegSum() { if (_yVals == null) { @@ -81,7 +81,7 @@ class BarEntry extends Entry { double sumNeg = 0.0; double sumPos = 0.0; - for (double f in _yVals) { + for (double f in _yVals!) { if (f <= 0.0) sumNeg += f.abs(); else @@ -96,7 +96,7 @@ class BarEntry extends Entry { /// /// @param vals /// @return - static double calcSum(List vals) { + static double calcSum(List? vals) { if (vals == null) return 0.0; double sum = 0.0; for (double f in vals) sum += f; @@ -104,23 +104,23 @@ class BarEntry extends Entry { } void calcRanges() { - List values = yVals; + List? values = yVals; if (values == null || values.length == 0) return; _ranges = List(values.length); - double negRemain = -negativeSum; + double negRemain = -negativeSum!; double posRemain = 0.0; - for (int i = 0; i < _ranges.length; i++) { + for (int i = 0; i < _ranges!.length; i++) { double value = values[i]; if (value < 0) { - _ranges[i] = Range(negRemain, negRemain - value); + _ranges![i] = Range(negRemain, negRemain - value); negRemain -= value; } else { - _ranges[i] = Range(posRemain, posRemain + value); + _ranges![i] = Range(posRemain, posRemain + value); posRemain += value; } } diff --git a/mp_chart/lib/mp/core/entry/base_entry.dart b/mp_chart/lib/mp/core/entry/base_entry.dart index abd46a4e..d850de2c 100644 --- a/mp_chart/lib/mp/core/entry/base_entry.dart +++ b/mp_chart/lib/mp/core/entry/base_entry.dart @@ -2,41 +2,41 @@ import 'dart:ui' as ui; abstract class BaseEntry { /// the y value - double _y = 0; + double? _y = 0; /// optional spot for additional data this Entry represents - Object _data; + Object? _data; /// optional icon image - ui.Image _icon; + ui.Image? _icon; - BaseEntry({double y, ui.Image icon, Object data}) { + BaseEntry({double? y, ui.Image? icon, Object? data}) { this._y = y; this._icon = icon; this._data = data; } // ignore: unnecessary_getters_setters - ui.Image get mIcon => _icon; + ui.Image? get mIcon => _icon; // ignore: unnecessary_getters_setters - set mIcon(ui.Image value) { + set mIcon(ui.Image? value) { _icon = value; } // ignore: unnecessary_getters_setters - Object get mData => _data; + Object? get mData => _data; // ignore: unnecessary_getters_setters - set mData(Object value) { + set mData(Object? value) { _data = value; } // ignore: unnecessary_getters_setters - double get y => _y; + double? get y => _y; // ignore: unnecessary_getters_setters - set y(double value) { + set y(double? value) { _y = value; } } diff --git a/mp_chart/lib/mp/core/entry/bubble_entry.dart b/mp_chart/lib/mp/core/entry/bubble_entry.dart index 316b3105..d16b5b9f 100644 --- a/mp_chart/lib/mp/core/entry/bubble_entry.dart +++ b/mp_chart/lib/mp/core/entry/bubble_entry.dart @@ -3,14 +3,14 @@ import 'dart:ui' as ui; class BubbleEntry extends Entry { /// size value - double _size = 0; + double? _size = 0; /// Constructor. /// /// @param x The value on the x-axis. /// @param y The value on the y-axis. /// @param size The size of the bubble. - BubbleEntry({double x, double y, double size, Object data, ui.Image icon}) + BubbleEntry({double? x, double? y, double? size, Object? data, ui.Image? icon}) : super(x: x, y: y, data: data, icon: icon) { this._size = size; } @@ -21,10 +21,10 @@ class BubbleEntry extends Entry { } // ignore: unnecessary_getters_setters - double get size => _size; + double? get size => _size; // ignore: unnecessary_getters_setters - set size(double value) { + set size(double? value) { _size = value; } } diff --git a/mp_chart/lib/mp/core/entry/candle_entry.dart b/mp_chart/lib/mp/core/entry/candle_entry.dart index 7053e926..6812e95f 100644 --- a/mp_chart/lib/mp/core/entry/candle_entry.dart +++ b/mp_chart/lib/mp/core/entry/candle_entry.dart @@ -9,19 +9,19 @@ class CandleEntry extends Entry { double _shadowLow = 0; /// close value - double _close = 0; + double? _close = 0; /// open value - double _open = 0; + double? _open = 0; CandleEntry( - {double x, - double shadowH, - double shadowL, - double open, - double close, - ui.Image icon, - Object data}) + {double? x, + required double shadowH, + required double shadowL, + double? open, + double? close, + ui.Image? icon, + Object? data}) : super(x: x, y: (shadowH + shadowL) / 2, icon: icon, data: data) { this._shadowHigh = shadowH; this._shadowLow = shadowL; @@ -41,7 +41,7 @@ class CandleEntry extends Entry { /// /// @return double getBodyRange() { - return (_open - _close).abs(); + return (_open! - _close!).abs(); } CandleEntry copy() { @@ -56,18 +56,18 @@ class CandleEntry extends Entry { } // ignore: unnecessary_getters_setters - double get open => _open; + double? get open => _open; // ignore: unnecessary_getters_setters - set open(double value) { + set open(double? value) { _open = value; } // ignore: unnecessary_getters_setters - double get close => _close; + double? get close => _close; // ignore: unnecessary_getters_setters - set close(double value) { + set close(double? value) { _close = value; } diff --git a/mp_chart/lib/mp/core/entry/entry.dart b/mp_chart/lib/mp/core/entry/entry.dart index 883417d9..85285f76 100644 --- a/mp_chart/lib/mp/core/entry/entry.dart +++ b/mp_chart/lib/mp/core/entry/entry.dart @@ -2,9 +2,9 @@ import 'package:mp_chart/mp/core/entry/base_entry.dart'; import 'dart:ui' as ui; class Entry extends BaseEntry { - double _x = 0; + double? _x = 0; - Entry({double x, double y, ui.Image icon, Object data}) + Entry({double? x, double? y, ui.Image? icon, Object? data}) : this._x = x, super(y: y, icon: icon, data: data); @@ -14,10 +14,10 @@ class Entry extends BaseEntry { } // ignore: unnecessary_getters_setters - double get x => _x; + double? get x => _x; // ignore: unnecessary_getters_setters - set x(double value) { + set x(double? value) { _x = value; } } diff --git a/mp_chart/lib/mp/core/entry/pie_entry.dart b/mp_chart/lib/mp/core/entry/pie_entry.dart index 2e6b8f54..75da98ff 100644 --- a/mp_chart/lib/mp/core/entry/pie_entry.dart +++ b/mp_chart/lib/mp/core/entry/pie_entry.dart @@ -5,24 +5,24 @@ import 'package:mp_chart/mp/core/utils/color_utils.dart'; import 'package:mp_chart/mp/core/utils/utils.dart'; class PieEntry extends Entry { - String _label; - double _labelTextSize; - ui.Color _labelColor; + String? _label; + double? _labelTextSize; + ui.Color? _labelColor; PieEntry( - {double value, - String label, - ui.Image icon, - Object data, - double labelTextSize, - ui.Color labelColor}) + {double? value, + String? label, + ui.Image? icon, + Object? data, + double? labelTextSize, + ui.Color? labelColor}) : super(x: 0, y: value, icon: icon, data: data) { this._label = label; this._labelTextSize = labelTextSize ?? Utils.convertDpToPixel(10); this._labelColor = labelColor ?? ColorUtils.WHITE; } - double getValue() { + double? getValue() { return y; } @@ -32,14 +32,14 @@ class PieEntry extends Entry { } // ignore: unnecessary_getters_setters - String get label => _label; + String? get label => _label; - double get labelTextSize => _labelTextSize; + double? get labelTextSize => _labelTextSize; - ui.Color get labelColor => _labelColor; + ui.Color? get labelColor => _labelColor; // ignore: unnecessary_getters_setters - set label(String value) { + set label(String? value) { _label = value; } } diff --git a/mp_chart/lib/mp/core/entry/radar_entry.dart b/mp_chart/lib/mp/core/entry/radar_entry.dart index 889f5ce7..2f09b2c8 100644 --- a/mp_chart/lib/mp/core/entry/radar_entry.dart +++ b/mp_chart/lib/mp/core/entry/radar_entry.dart @@ -2,13 +2,13 @@ import 'package:mp_chart/mp/core/entry/entry.dart'; import 'dart:ui' as ui; class RadarEntry extends Entry { - RadarEntry({double value, Object data, ui.Image icon}) + RadarEntry({double? value, Object? data, ui.Image? icon}) : super(x: 0, y: value, icon: icon, data: data); /// This is the same as getY(). Returns the value of the RadarEntry. /// /// @return - double getValue() { + double? getValue() { return y; } diff --git a/mp_chart/lib/mp/core/fill_formatter/default_fill_formatter.dart b/mp_chart/lib/mp/core/fill_formatter/default_fill_formatter.dart index 64f2932a..090cf4ca 100644 --- a/mp_chart/lib/mp/core/fill_formatter/default_fill_formatter.dart +++ b/mp_chart/lib/mp/core/fill_formatter/default_fill_formatter.dart @@ -6,28 +6,28 @@ import 'package:mp_chart/mp/core/fill_formatter/i_fill_formatter.dart'; class DefaultFillFormatter implements IFillFormatter { @override double getFillLinePosition( - ILineDataSet dataSet, LineDataProvider dataProvider) { - double fillMin = 0; - double chartMaxY = dataProvider.getYChartMax(); - double chartMinY = dataProvider.getYChartMin(); + ILineDataSet dataSet, LineDataProvider? dataProvider) { + double? fillMin = 0; + double? chartMaxY = dataProvider!.getYChartMax(); + double? chartMinY = dataProvider.getYChartMin(); - LineData data = dataProvider.getLineData(); + LineData? data = dataProvider.getLineData(); - if (dataSet.getYMax() > 0 && dataSet.getYMin() < 0) { + if (dataSet.getYMax()! > 0 && dataSet.getYMin()! < 0) { fillMin = 0; } else { - double max, min; + double? max, min; - if (data.getYMax1() > 0) + if (data!.getYMax1()! > 0) max = 0; else max = chartMaxY; - if (data.getYMin1() < 0) + if (data.getYMin1()! < 0) min = 0; else min = chartMinY; - fillMin = dataSet.getYMin() >= 0 ? min : max; + fillMin = dataSet.getYMin()! >= 0 ? min! : max!; } return fillMin; } diff --git a/mp_chart/lib/mp/core/fill_formatter/i_fill_formatter.dart b/mp_chart/lib/mp/core/fill_formatter/i_fill_formatter.dart index f1245c20..9138b213 100644 --- a/mp_chart/lib/mp/core/fill_formatter/i_fill_formatter.dart +++ b/mp_chart/lib/mp/core/fill_formatter/i_fill_formatter.dart @@ -3,5 +3,5 @@ import 'package:mp_chart/mp/core/data_provider/line_data_provider.dart'; mixin IFillFormatter { double getFillLinePosition( - ILineDataSet dataSet, LineDataProvider dataProvider); + ILineDataSet dataSet, LineDataProvider? dataProvider); } diff --git a/mp_chart/lib/mp/core/functions.dart b/mp_chart/lib/mp/core/functions.dart index 399ee31c..40658c6d 100644 --- a/mp_chart/lib/mp/core/functions.dart +++ b/mp_chart/lib/mp/core/functions.dart @@ -7,13 +7,13 @@ import 'package:mp_chart/mp/core/legend/legend.dart'; import 'package:mp_chart/mp/core/render/data_renderer.dart'; typedef XAxisSettingFunction = void Function( - XAxis xAxis, Controller controller); + XAxis? xAxis, Controller controller); typedef LegendSettingFunction = void Function( - Legend legend, Controller controller); + Legend? legend, Controller controller); typedef YAxisSettingFunction = void Function( - YAxis yAxis, RadarChartController controller); + YAxis? yAxis, RadarChartController controller); typedef AxisLeftSettingFunction = void Function( - YAxis axisLeft, BarLineScatterCandleBubbleController controller); + YAxis? axisLeft, BarLineScatterCandleBubbleController controller); typedef AxisRightSettingFunction = void Function( - YAxis axisRight, BarLineScatterCandleBubbleController controller); -typedef DataRendererSettingFunction = void Function(DataRenderer renderer); + YAxis? axisRight, BarLineScatterCandleBubbleController controller); +typedef DataRendererSettingFunction = void Function(DataRenderer? renderer); diff --git a/mp_chart/lib/mp/core/highlight/bar_highlighter.dart b/mp_chart/lib/mp/core/highlight/bar_highlighter.dart index c86fc832..84973a1f 100644 --- a/mp_chart/lib/mp/core/highlight/bar_highlighter.dart +++ b/mp_chart/lib/mp/core/highlight/bar_highlighter.dart @@ -14,8 +14,8 @@ class BarHighlighter extends ChartHighlighter { BarHighlighter(BarDataProvider chart) : super(chart); @override - Highlight getHighlight(double x, double y) { - Highlight high = super.getHighlight(x, y); + Highlight? getHighlight(double x, double y) { + Highlight? high = super.getHighlight(x, y); if (high == null) { return null; @@ -23,9 +23,9 @@ class BarHighlighter extends ChartHighlighter { MPPointD pos = getValsForTouch(x, y); - BarData barData = provider.getBarData(); + BarData barData = provider!.getBarData()!; - IBarDataSet set = barData.getDataSetByIndex(high.dataSetIndex); + IBarDataSet set = barData.getDataSetByIndex(high.dataSetIndex)!; if (set.isStacked()) { return getStackedHighlight(high, set, pos.x, pos.y); } @@ -43,9 +43,9 @@ class BarHighlighter extends ChartHighlighter { /// @param xVal /// @param yVal /// @return - Highlight getStackedHighlight( - Highlight high, IBarDataSet set, double xVal, double yVal) { - BarEntry entry = set.getEntryForXValue2(xVal, yVal); + Highlight? getStackedHighlight( + Highlight high, IBarDataSet set, double? xVal, double? yVal) { + BarEntry? entry = set.getEntryForXValue2(xVal, yVal); if (entry == null) return null; @@ -53,14 +53,14 @@ class BarHighlighter extends ChartHighlighter { if (entry.yVals == null) { return high; } else { - List ranges = entry.ranges; + List ranges = entry.ranges!; if (ranges.length > 0) { int stackIndex = getClosestStackIndex(ranges, yVal); - MPPointD pixels = provider - .getTransformer(set.getAxisDependency()) - .getPixelForValues(high.x, ranges[stackIndex].to); + MPPointD pixels = provider! + .getTransformer(set.getAxisDependency())! + .getPixelForValues(high.x, ranges[stackIndex]!.to); Highlight stackedHigh = Highlight( x: entry.x, @@ -86,17 +86,17 @@ class BarHighlighter extends ChartHighlighter { /// @param ranges /// @param value /// @return - int getClosestStackIndex(List ranges, double value) { + int getClosestStackIndex(List ranges, double? value) { if (ranges == null || ranges.length == 0) return 0; int stackIndex = 0; - for (Range range in ranges) { - if (range.contains(value)) + for (Range? range in ranges) { + if (range!.contains(value!)) return stackIndex; else stackIndex++; } int length = max(ranges.length - 1, 0); - return (value > ranges[length].to) ? length : 0; + return (value! > ranges[length]!.to) ? length : 0; } @override @@ -105,7 +105,7 @@ class BarHighlighter extends ChartHighlighter { } @override - BarLineScatterCandleBubbleData getData() { - return provider.getBarData(); + BarLineScatterCandleBubbleData? getData() { + return provider!.getBarData(); } } diff --git a/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart b/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart index 1167a077..f7483ea5 100644 --- a/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart +++ b/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart @@ -13,7 +13,7 @@ import 'package:mp_chart/mp/core/poolable/point.dart'; class ChartHighlighter implements IHighlighter { /// instance of the data-provider - T _provider; + T? _provider; /// buffer for storing previously highlighted values List _highlightBuffer = List(); @@ -22,16 +22,16 @@ class ChartHighlighter this._provider = provider; } - T get provider => _provider; + T? get provider => _provider; List get highlightBuffer => _highlightBuffer; @override - Highlight getHighlight(double x, double y) { + Highlight? getHighlight(double x, double y) { MPPointD pos = getValsForTouch(x, y); - double xVal = pos.x; + double? xVal = pos.x; MPPointD.recycleInstance2(pos); - Highlight high = getHighlightForX(xVal, x, y); + Highlight? high = getHighlightForX(xVal, x, y); return high; } @@ -43,8 +43,8 @@ class ChartHighlighter /// @return MPPointD getValsForTouch(double x, double y) { // take any transformer to determine the x-axis value - MPPointD pos = _provider - .getTransformer(AxisDependency.LEFT) + MPPointD pos = _provider! + .getTransformer(AxisDependency.LEFT)! .getValuesByTouchPoint1(x, y); return pos; } @@ -55,7 +55,7 @@ class ChartHighlighter /// @param x /// @param y /// @return - Highlight getHighlightForX(double xVal, double x, double y) { + Highlight? getHighlightForX(double? xVal, double x, double y) { List closestValues = getHighlightsAtXValue(xVal, x, y); if (closestValues.isEmpty) { @@ -71,8 +71,8 @@ class ChartHighlighter ? AxisDependency.LEFT : AxisDependency.RIGHT; - Highlight detail = getClosestHighlightByPixel( - closestValues, x, y, axis, _provider.getMaxHighlightDistance()); + Highlight? detail = getClosestHighlightByPixel( + closestValues, x, y, axis, _provider!.getMaxHighlightDistance()); return detail; } @@ -92,7 +92,7 @@ class ChartHighlighter Highlight high = closestValues[i]; if (high.axis == axis) { - double tempDistance = (getHighlightPos(high) - pos).abs(); + double tempDistance = (getHighlightPos(high)! - pos).abs(); if (tempDistance < distance) { distance = tempDistance; } @@ -102,7 +102,7 @@ class ChartHighlighter return distance; } - double getHighlightPos(Highlight h) { + double? getHighlightPos(Highlight h) { return h.yPx; } @@ -113,17 +113,17 @@ class ChartHighlighter /// @param x touch position /// @param y touch position /// @return - List getHighlightsAtXValue(double xVal, double x, double y) { + List getHighlightsAtXValue(double? xVal, double x, double y) { _highlightBuffer.clear(); - BarLineScatterCandleBubbleData data = getData(); + BarLineScatterCandleBubbleData? data = getData(); if (data == null) return _highlightBuffer; for (int i = 0, dataSetCount = data.getDataSetCount(); i < dataSetCount; i++) { - IDataSet dataSet = data.getDataSetByIndex(i); + IDataSet dataSet = data.getDataSetByIndex(i)!; // don't include DataSets that cannot be highlighted if (!dataSet.isHighlightEnabled()) continue; @@ -143,14 +143,14 @@ class ChartHighlighter /// @param rounding /// @return List buildHighlights( - IDataSet set, int dataSetIndex, double xVal, Rounding rounding) { + IDataSet set, int dataSetIndex, double? xVal, Rounding rounding) { List highlights = List(); //noinspection unchecked - List entries = set.getEntriesForXValue(xVal); + List entries = set.getEntriesForXValue(xVal); if (entries.length == 0) { // Try to find closest x-value and take all entries for that x-value - final Entry closest = set.getEntryForXValue1(xVal, double.nan, rounding); + final Entry? closest = set.getEntryForXValue1(xVal, double.nan, rounding); if (closest != null) { //noinspection unchecked entries = set.getEntriesForXValue(closest.x); @@ -159,10 +159,10 @@ class ChartHighlighter if (entries.length == 0) return highlights; - for (Entry e in entries) { - MPPointD pixels = _provider - .getTransformer(set.getAxisDependency()) - .getPixelForValues(e.x, e.y); + for (Entry? e in entries) { + MPPointD pixels = _provider! + .getTransformer(set.getAxisDependency())! + .getPixelForValues(e!.x, e.y); highlights.add(new Highlight( x: e.x, @@ -186,17 +186,17 @@ class ChartHighlighter /// @param axis the closest axis /// @param minSelectionDistance /// @return - Highlight getClosestHighlightByPixel(List closestValues, double x, - double y, AxisDependency axis, double minSelectionDistance) { - Highlight closest; - double distance = minSelectionDistance; + Highlight? getClosestHighlightByPixel(List closestValues, double x, + double y, AxisDependency axis, double? minSelectionDistance) { + Highlight? closest; + double? distance = minSelectionDistance; for (int i = 0; i < closestValues.length; i++) { Highlight high = closestValues[i]; if (axis == null || high.axis == axis) { - double cDistance = getDistance(x, y, high.xPx, high.yPx); - if (cDistance < distance) { + double cDistance = getDistance(x, y, high.xPx!, high.yPx!); + if (cDistance < distance!) { closest = high; distance = cDistance; } @@ -214,12 +214,12 @@ class ChartHighlighter /// @param y2 /// @return double getDistance(double x1, double y1, double x2, double y2) { - double x = pow((x1 - x2), 2); - double y = pow((y1 - y2), 2); + double x = pow((x1 - x2), 2) as double; + double y = pow((y1 - y2), 2) as double; return sqrt(x + y); } - BarLineScatterCandleBubbleData getData() { - return _provider.getData(); + BarLineScatterCandleBubbleData? getData() { + return _provider!.getData(); } } diff --git a/mp_chart/lib/mp/core/highlight/combined_highlighter.dart b/mp_chart/lib/mp/core/highlight/combined_highlighter.dart index 75a39eed..c22e7afa 100644 --- a/mp_chart/lib/mp/core/highlight/combined_highlighter.dart +++ b/mp_chart/lib/mp/core/highlight/combined_highlighter.dart @@ -13,7 +13,7 @@ import 'package:mp_chart/mp/core/highlight/i_highlighter.dart'; class CombinedHighlighter extends ChartHighlighter implements IHighlighter { /// bar highlighter for supporting stacked highlighting - BarHighlighter _barHighlighter; + BarHighlighter? _barHighlighter; CombinedHighlighter(CombinedDataProvider chart, BarDataProvider barChart) : super(chart) { @@ -23,28 +23,28 @@ class CombinedHighlighter extends ChartHighlighter } @override - List getHighlightsAtXValue(double xVal, double x, double y) { + List getHighlightsAtXValue(double? xVal, double x, double y) { highlightBuffer.clear(); - List dataObjects = - provider.getCombinedData().getAllData(); + List dataObjects = + provider!.getCombinedData()!.getAllData(); for (int i = 0; i < dataObjects.length; i++) { - ChartData dataObject = dataObjects[i]; + ChartData? dataObject = dataObjects[i]; // in case of BarData, let the BarHighlighter take over if (_barHighlighter != null && dataObject is BarData) { - Highlight high = _barHighlighter.getHighlight(x, y); + Highlight? high = _barHighlighter!.getHighlight(x, y); if (high != null) { high.dataIndex = (i); highlightBuffer.add(high); } } else { - for (int j = 0, dataSetCount = dataObject.getDataSetCount(); + for (int j = 0, dataSetCount = dataObject!.getDataSetCount(); j < dataSetCount; j++) { - IDataSet dataSet = dataObjects[i].getDataSetByIndex(j); + IDataSet dataSet = dataObjects[i]!.getDataSetByIndex(j)!; // don't include datasets that cannot be highlighted if (!dataSet.isHighlightEnabled()) continue; diff --git a/mp_chart/lib/mp/core/highlight/highlight.dart b/mp_chart/lib/mp/core/highlight/highlight.dart index 6a2af7bf..a9ff63d9 100644 --- a/mp_chart/lib/mp/core/highlight/highlight.dart +++ b/mp_chart/lib/mp/core/highlight/highlight.dart @@ -2,16 +2,16 @@ import 'package:mp_chart/mp/core/enums/axis_dependency.dart'; class Highlight { /// the x-value of the highlighted value - double _x = double.nan; + double? _x = double.nan; /// the y-value of the highlighted value - double _y = double.nan; + double? _y = double.nan; /// the x-pixel of the highlight - double _xPx; + double? _xPx; /// the y-pixel of the highlight - double _yPx; + double? _yPx; /// the index of the data object - in case it refers to more than one int _dataIndex = -1; @@ -19,29 +19,29 @@ class Highlight { /// /// the index of the datase /// t the highlighted value is in - int _dataSetIndex; + int? _dataSetIndex; /// index which value of a stacked bar entry is highlighted, default -1 int _stackIndex = -1; /// the axis the highlighted value belongs to - AxisDependency _axis; + AxisDependency? _axis; /// the x-position (pixels) on which this highlight object was last drawn - double _drawX; + double? _drawX; /// the y-position (pixels) on which this highlight object was last drawn - double _drawY; + double? _drawY; Highlight( - {double x = double.nan, - double y = double.nan, - double xPx = 0, - double yPx = 0, - int dataSetIndex = 0, + {double? x = double.nan, + double? y = double.nan, + double? xPx = 0, + double? yPx = 0, + int? dataSetIndex = 0, int stackIndex = -1, // ignore: avoid_init_to_null - AxisDependency axis = null}) { + AxisDependency? axis = null}) { this._x = x; this._y = y; this._xPx = xPx; @@ -51,13 +51,13 @@ class Highlight { this._stackIndex = stackIndex; } - double get x => _x; + double? get x => _x; - double get y => _y; + double? get y => _y; - double get xPx => _xPx; + double? get xPx => _xPx; - double get yPx => _yPx; + double? get yPx => _yPx; // ignore: unnecessary_getters_setters int get dataIndex => _dataIndex; @@ -67,7 +67,7 @@ class Highlight { _dataIndex = value; } - int get dataSetIndex => _dataSetIndex; + int? get dataSetIndex => _dataSetIndex; int get stackIndex => _stackIndex; @@ -75,27 +75,27 @@ class Highlight { return _stackIndex >= 0; } - AxisDependency get axis => _axis; + AxisDependency? get axis => _axis; /// Sets the x- and y-position (pixels) where this highlight was last drawn. /// /// @param x /// @param y - void setDraw(double x, double y) { + void setDraw(double? x, double? y) { this._drawX = x; this._drawY = y; } - double get drawX => _drawX; + double? get drawX => _drawX; - double get drawY => _drawY; + double? get drawY => _drawY; /// Returns true if this highlight object is equal to the other (compares /// xIndex and dataSetIndex) /// /// @param h /// @return - bool equalTo(Highlight h) { + bool equalTo(Highlight? h) { if (h == null) return false; else { diff --git a/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart b/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart index 249ba4ce..086e6cb6 100644 --- a/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart +++ b/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart @@ -12,15 +12,15 @@ class HorizontalBarHighlighter extends BarHighlighter { HorizontalBarHighlighter(BarDataProvider chart) : super(chart); @override - Highlight getHighlight(double x, double y) { - BarData barData = provider.getBarData(); + Highlight? getHighlight(double x, double y) { + BarData? barData = provider!.getBarData(); MPPointD pos = getValsForTouch(y, x); - Highlight high = getHighlightForX(pos.y, y, x); + Highlight? high = getHighlightForX(pos.y, y, x); if (high == null) return null; - IBarDataSet set = barData.getDataSetByIndex(high.dataSetIndex); + IBarDataSet set = barData!.getDataSetByIndex(high.dataSetIndex)!; if (set.isStacked()) { return getStackedHighlight(high, set, pos.y, pos.x); } @@ -32,14 +32,14 @@ class HorizontalBarHighlighter extends BarHighlighter { @override List buildHighlights( - IDataSet set, int dataSetIndex, double xVal, Rounding rounding) { + IDataSet set, int dataSetIndex, double? xVal, Rounding rounding) { List highlights = List(); //noinspection unchecked - List entries = set.getEntriesForXValue(xVal); + List entries = set.getEntriesForXValue(xVal); if (entries.length == 0) { // Try to find closest x-value and take all entries for that x-value - final Entry closest = set.getEntryForXValue1(xVal, double.nan, rounding); + final Entry? closest = set.getEntryForXValue1(xVal, double.nan, rounding); if (closest != null) { //noinspection unchecked entries = set.getEntriesForXValue(closest.x); @@ -48,10 +48,10 @@ class HorizontalBarHighlighter extends BarHighlighter { if (entries.length == 0) return highlights; - for (Entry e in entries) { - MPPointD pixels = provider - .getTransformer(set.getAxisDependency()) - .getPixelForValues(e.y, e.x); + for (Entry? e in entries) { + MPPointD pixels = provider! + .getTransformer(set.getAxisDependency())! + .getPixelForValues(e!.y, e.x); highlights.add(Highlight( x: e.x, diff --git a/mp_chart/lib/mp/core/highlight/i_highlighter.dart b/mp_chart/lib/mp/core/highlight/i_highlighter.dart index 73b4bd9a..d3a2c884 100644 --- a/mp_chart/lib/mp/core/highlight/i_highlighter.dart +++ b/mp_chart/lib/mp/core/highlight/i_highlighter.dart @@ -1,5 +1,5 @@ import 'package:mp_chart/mp/core/highlight/highlight.dart'; mixin IHighlighter { - Highlight getHighlight(double x, double y); + Highlight? getHighlight(double x, double y); } diff --git a/mp_chart/lib/mp/core/highlight/pie_highlighter.dart b/mp_chart/lib/mp/core/highlight/pie_highlighter.dart index b6bf73b3..9c927425 100644 --- a/mp_chart/lib/mp/core/highlight/pie_highlighter.dart +++ b/mp_chart/lib/mp/core/highlight/pie_highlighter.dart @@ -10,9 +10,9 @@ class PieHighlighter extends PieRadarHighlighter { @override Highlight getClosestHighlight(int index, double x, double y) { - IPieDataSet set = (painter.getData() as PieData).getDataSet(); + IPieDataSet set = (painter!.getData() as PieData).getDataSet(); - final Entry entry = set.getEntryForIndex(index); + final Entry entry = set.getEntryForIndex(index)!; return new Highlight( x: index.toDouble(), diff --git a/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart b/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart index 875238e7..2b8b983b 100644 --- a/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart +++ b/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart @@ -5,7 +5,7 @@ import 'package:mp_chart/mp/painter/pie_redar_chart_painter.dart'; abstract class PieRadarHighlighter implements IHighlighter { - T _painter; + T? _painter; /// buffer for storing previously highlighted values List _highlightBuffer = List(); @@ -16,28 +16,28 @@ abstract class PieRadarHighlighter List get highlightBuffer => _highlightBuffer; - T get painter => _painter; + T? get painter => _painter; @override - Highlight getHighlight(double x, double y) { - double touchDistanceToCenter = _painter.distanceToCenter(x, y); + Highlight? getHighlight(double x, double y) { + double touchDistanceToCenter = _painter!.distanceToCenter(x, y); // check if a slice was touched - if (touchDistanceToCenter > _painter.getRadius()) { + if (touchDistanceToCenter > _painter!.getRadius()) { // if no slice was touched, highlight nothing return null; } else { - double angle = _painter.getAngleForPoint(x, y); + double angle = _painter!.getAngleForPoint(x, y); if (_painter is PieChartPainter) { - angle /= _painter.animator.getPhaseY(); + angle /= _painter!.animator!.getPhaseY(); } - int index = _painter.getIndexForAngle(angle); + int index = _painter!.getIndexForAngle(angle); // check if the index could be found if (index < 0 || - index >= _painter.getData().getMaxEntryCountSet().getEntryCount()) { + index >= _painter!.getData()!.getMaxEntryCountSet()!.getEntryCount()) { return null; } else { return getClosestHighlight(index, x, y); @@ -51,5 +51,5 @@ abstract class PieRadarHighlighter /// @param x /// @param y /// @return - Highlight getClosestHighlight(int index, double x, double y); + Highlight? getClosestHighlight(int index, double x, double y); } diff --git a/mp_chart/lib/mp/core/highlight/radar_highlighter.dart b/mp_chart/lib/mp/core/highlight/radar_highlighter.dart index 73ad402c..9f761e5f 100644 --- a/mp_chart/lib/mp/core/highlight/radar_highlighter.dart +++ b/mp_chart/lib/mp/core/highlight/radar_highlighter.dart @@ -10,19 +10,19 @@ class RadarHighlighter extends PieRadarHighlighter { RadarHighlighter(RadarChartPainter chart) : super(chart); @override - Highlight getClosestHighlight(int index, double x, double y) { + Highlight? getClosestHighlight(int index, double x, double y) { List highlights = getHighlightsAtIndex(index); double distanceToCenter = - painter.distanceToCenter(x, y) / painter.getFactor(); + painter!.distanceToCenter(x, y) / painter!.getFactor(); - Highlight closest; + Highlight? closest; double distance = double.infinity; for (int i = 0; i < highlights.length; i++) { Highlight high = highlights[i]; - double cdistance = (high.y - distanceToCenter).abs(); + double cdistance = (high.y! - distanceToCenter).abs(); if (cdistance < distance) { closest = high; distance = cdistance; @@ -42,21 +42,21 @@ class RadarHighlighter extends PieRadarHighlighter { List getHighlightsAtIndex(int index) { highlightBuffer.clear(); - double phaseX = painter.animator.getPhaseX(); - double phaseY = painter.animator.getPhaseY(); - double sliceangle = painter.getSliceAngle(); - double factor = painter.getFactor(); + double phaseX = painter!.animator!.getPhaseX(); + double phaseY = painter!.animator!.getPhaseY(); + double sliceangle = painter!.getSliceAngle(); + double factor = painter!.getFactor(); MPPointF pOut = MPPointF.getInstance1(0, 0); - for (int i = 0; i < painter.getData().getDataSetCount(); i++) { - IDataSet dataSet = painter.getData().getDataSetByIndex(i); + for (int i = 0; i < painter!.getData()!.getDataSetCount(); i++) { + IDataSet dataSet = painter!.getData()!.getDataSetByIndex(i)!; - final Entry entry = dataSet.getEntryForIndex(index); + final Entry entry = dataSet.getEntryForIndex(index)!; - double y = (entry.y - painter.getYChartMin()); + double y = (entry.y! - painter!.getYChartMin()!); - Utils.getPosition(painter.getCenterOffsets(), y * factor * phaseY, - sliceangle * index * phaseX + painter.getRotationAngle(), pOut); + Utils.getPosition(painter!.getCenterOffsets(), y * factor * phaseY, + sliceangle * index * phaseX + painter!.getRotationAngle(), pOut); highlightBuffer.add(Highlight( x: index.toDouble(), diff --git a/mp_chart/lib/mp/core/image_loader.dart b/mp_chart/lib/mp/core/image_loader.dart index 49ac7ff6..de7f5a36 100644 --- a/mp_chart/lib/mp/core/image_loader.dart +++ b/mp_chart/lib/mp/core/image_loader.dart @@ -10,7 +10,7 @@ abstract class ImageLoader { final ByteData data = await rootBundle.load(path); List img = Uint8List.view(data.buffer); final Completer completer = Completer(); - decodeImageFromList(img, (Image img) { + decodeImageFromList(img as Uint8List, (Image img) { return completer.complete(img); }); return await completer.future; diff --git a/mp_chart/lib/mp/core/legend/legend.dart b/mp_chart/lib/mp/core/legend/legend.dart index ff3c07f6..8b19daea 100644 --- a/mp_chart/lib/mp/core/legend/legend.dart +++ b/mp_chart/lib/mp/core/legend/legend.dart @@ -16,11 +16,11 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; class Legend extends ComponentBase { /// The legend entries array - List _entries = List(); + List _entries = List(); /// Entries that will be appended to the end of the auto calculated entries after calculating the legend. /// (if the legend has already been calculated, you will need to call notifyDataSetChanged() to let the changes take effect) - List _extraEntries; + List? _extraEntries; /// Are the legend labels/colors a custom value or auto calculated? If false, /// then it's auto, if true, then custom. default false (automatic legend) @@ -45,7 +45,7 @@ class Legend extends ComponentBase { double _formLineWidth = 3; /// Line dash path effect used for shapes that consist of lines. - DashPathEffect _formLineDashEffect; + DashPathEffect? _formLineDashEffect; /// the space between the legend entries on a horizontal axis, default 6f double _xEntrySpace = 6; @@ -77,13 +77,13 @@ class Legend extends ComponentBase { /// flag that indicates if word wrapping is enabled bool _wordWrapEnabled = false; - List _calculatedLabelSizes = List(16); - List _calculatedLabelBreakPoints = List(16); - List _calculatedLineSizes = List(16); + List _calculatedLabelSizes = List(16); + List _calculatedLabelBreakPoints = List(16); + List _calculatedLineSizes = List(16); /// default constructor Legend() { - this.textSize = Utils.convertDpToPixel(10); + this.textSize = Utils.convertDpToPixel(10)!; this.xOffset = Utils.convertDpToPixel(5); this.yOffset = Utils.convertDpToPixel(3); // 2 } @@ -92,7 +92,7 @@ class Legend extends ComponentBase { /// /// @param entries Legend.fromList(List entries) { - this.textSize = Utils.convertDpToPixel(10); + this.textSize = Utils.convertDpToPixel(10)!; this.xOffset = Utils.convertDpToPixel(5); this.yOffset = Utils.convertDpToPixel(3); if (entries == null) { @@ -103,10 +103,10 @@ class Legend extends ComponentBase { } // ignore: unnecessary_getters_setters - List get entries => _entries; + List get entries => _entries; // ignore: unnecessary_getters_setters - set entries(List value) { + set entries(List value) { _entries = value; } @@ -115,37 +115,37 @@ class Legend extends ComponentBase { /// /// @param p the paint object used for rendering the text /// @return - double getMaximumEntryWidth(TextPainter p) { + double getMaximumEntryWidth(TextPainter? p) { double max = 0; double maxFormSize = 0; - double formToTextSpace = Utils.convertDpToPixel(_formToTextSpace); - for (LegendEntry entry in _entries) { + double? formToTextSpace = Utils.convertDpToPixel(_formToTextSpace); + for (LegendEntry? entry in _entries) { final double formSize = Utils.convertDpToPixel( - double.nan == entry.formSize ? _formSize : entry.formSize); + double.nan == entry!.formSize ? _formSize : entry.formSize)!; if (formSize > maxFormSize) maxFormSize = formSize; - String label = entry.label; + String? label = entry.label; if (label == null) continue; - double length = Utils.calcTextWidth(p, label).toDouble(); + double length = Utils.calcTextWidth(p!, label).toDouble(); if (length > max) max = length; } - return max + maxFormSize + formToTextSpace; + return max + maxFormSize + formToTextSpace!; } /// returns the maximum height in pixels across all legend labels /// /// @param p the paint object used for rendering the text /// @return - double getMaximumEntryHeight(TextPainter p) { + double getMaximumEntryHeight(TextPainter? p) { double max = 0; - for (LegendEntry entry in _entries) { - String label = entry.label; + for (LegendEntry? entry in _entries) { + String? label = entry!.label; if (label == null) continue; - double length = Utils.calcTextHeight(p, label).toDouble(); + double length = Utils.calcTextHeight(p!, label).toDouble(); if (length > max) max = length; } @@ -153,7 +153,7 @@ class Legend extends ComponentBase { return max; } - List get extraEntries => _extraEntries; + List? get extraEntries => _extraEntries; void setExtra1(List entries) { _extraEntries = entries; @@ -277,7 +277,7 @@ class Legend extends ComponentBase { } /// @return The line dash path effect used for shapes that consist of lines. - DashPathEffect getFormLineDashEffect() { + DashPathEffect? getFormLineDashEffect() { return _formLineDashEffect; } @@ -333,11 +333,11 @@ class Legend extends ComponentBase { double get neededHeight => _neededHeight; - List get calculatedLineSizes => _calculatedLineSizes; + List get calculatedLineSizes => _calculatedLineSizes; - List get calculatedLabelSizes => _calculatedLabelSizes; + List get calculatedLabelSizes => _calculatedLabelSizes; - List get calculatedLabelBreakPoints => _calculatedLabelBreakPoints; + List get calculatedLabelBreakPoints => _calculatedLabelBreakPoints; /// Calculates the dimensions of the Legend. This includes the maximum width /// and height of a single entry, as well as the total width and height of @@ -345,14 +345,14 @@ class Legend extends ComponentBase { /// /// @param labelpaint void calculateDimensions( - TextPainter labelpainter, ViewPortHandler viewPortHandler) { - double defaultFormSize = Utils.convertDpToPixel(_formSize); - double stackSpace = Utils.convertDpToPixel(_stackSpace); - double formToTextSpace = Utils.convertDpToPixel(_formToTextSpace); - double xEntrySpace = Utils.convertDpToPixel(_xEntrySpace); - double yEntrySpace = Utils.convertDpToPixel(_yEntrySpace); + TextPainter? labelpainter, ViewPortHandler? viewPortHandler) { + double? defaultFormSize = Utils.convertDpToPixel(_formSize); + double? stackSpace = Utils.convertDpToPixel(_stackSpace); + double? formToTextSpace = Utils.convertDpToPixel(_formToTextSpace); + double? xEntrySpace = Utils.convertDpToPixel(_xEntrySpace); + double? yEntrySpace = Utils.convertDpToPixel(_yEntrySpace); bool wordWrapEnabled = _wordWrapEnabled; - List entries = _entries; + List entries = _entries; int entryCount = entries.length; _textWidthMax = getMaximumEntryWidth(labelpainter); @@ -362,32 +362,32 @@ class Legend extends ComponentBase { case LegendOrientation.VERTICAL: { double maxWidth = 0, maxHeight = 0, width = 0; - double labelLineHeight = Utils.getLineHeight1(labelpainter); + double labelLineHeight = Utils.getLineHeight1(labelpainter!); bool wasStacked = false; for (int i = 0; i < entryCount; i++) { - LegendEntry e = entries[i]; + LegendEntry e = entries[i]!; bool drawingForm = e.form != LegendForm.NONE; - double formSize = e.formSize.isNaN + double? formSize = e.formSize.isNaN ? defaultFormSize : Utils.convertDpToPixel(e.formSize); - String label = e.label; + String? label = e.label; if (!wasStacked) width = 0; if (drawingForm) { - if (wasStacked) width += stackSpace; - width += formSize; + if (wasStacked) width += stackSpace!; + width += formSize!; } // grouped forms have null labels if (label != null) { // make a step to the left if (drawingForm && !wasStacked) - width += formToTextSpace; + width += formToTextSpace!; else if (wasStacked) { maxWidth = max(maxWidth, width); - maxHeight += labelLineHeight + yEntrySpace; + maxHeight += labelLineHeight + yEntrySpace!; width = 0; wasStacked = false; } @@ -395,11 +395,11 @@ class Legend extends ComponentBase { width += Utils.calcTextWidth(labelpainter, label); if (i < entryCount - 1) - maxHeight += labelLineHeight + yEntrySpace; + maxHeight += labelLineHeight + yEntrySpace!; } else { wasStacked = true; - width += formSize; - if (i < entryCount - 1) width += stackSpace; + width += formSize!; + if (i < entryCount - 1) width += stackSpace!; } maxWidth = max(maxWidth, width); @@ -412,10 +412,10 @@ class Legend extends ComponentBase { } case LegendOrientation.HORIZONTAL: { - double labelLineHeight = Utils.getLineHeight1(labelpainter); + double labelLineHeight = Utils.getLineHeight1(labelpainter!); double labelLineSpacing = - Utils.getLineSpacing1(labelpainter) + yEntrySpace; - double contentWidth = viewPortHandler.chartWidth() * _maxSizePercent; + Utils.getLineSpacing1(labelpainter) + yEntrySpace!; + double contentWidth = viewPortHandler!.chartWidth() * _maxSizePercent; // Start calculating layout double maxLineWidth = 0; @@ -428,12 +428,12 @@ class Legend extends ComponentBase { _calculatedLineSizes = List(); for (int i = 0; i < entryCount; i++) { - LegendEntry e = entries[i]; + LegendEntry e = entries[i]!; bool drawingForm = e.form != LegendForm.NONE; - double formSize = e.formSize.isNaN + double? formSize = e.formSize.isNaN ? defaultFormSize : Utils.convertDpToPixel(e.formSize); - String label = e.label; + String? label = e.label; _calculatedLabelBreakPoints.add(false); @@ -443,18 +443,18 @@ class Legend extends ComponentBase { requiredWidth = 0; } else { // add the spacing appropriate for stacked labels/forms - requiredWidth += stackSpace; + requiredWidth += stackSpace!; } // grouped forms have null labels if (label != null) { _calculatedLabelSizes .add(Utils.calcTextSize1(labelpainter, label)); - requiredWidth += drawingForm ? formToTextSpace + formSize : 0; - requiredWidth += _calculatedLabelSizes[i].width; + requiredWidth += drawingForm ? formToTextSpace! + formSize! : 0; + requiredWidth += _calculatedLabelSizes[i]!.width; } else { _calculatedLabelSizes.add(FSize.getInstance(0, 0)); - requiredWidth += drawingForm ? formSize : 0; + requiredWidth += drawingForm ? formSize! : 0; if (stackedStartIndex == -1) { // mark this index as we might want to break here later @@ -463,7 +463,7 @@ class Legend extends ComponentBase { } if (label != null || i == entryCount - 1) { - double requiredSpacing = currentLineWidth == 0 ? 0 : xEntrySpace; + double? requiredSpacing = currentLineWidth == 0 ? 0 : xEntrySpace; if (!wordWrapEnabled // No word wrapping, it must fit. // The line is empty, it must fit @@ -472,9 +472,9 @@ class Legend extends ComponentBase { // It simply fits || (contentWidth - currentLineWidth >= - requiredSpacing + requiredWidth)) { + requiredSpacing! + requiredWidth)) { // Expand current line - currentLineWidth += requiredSpacing + requiredWidth; + currentLineWidth += requiredSpacing! + requiredWidth; } else { // It doesn't fit, we need to wrap a line @@ -511,7 +511,7 @@ class Legend extends ComponentBase { break; } } - _neededHeight += yOffset; - _neededWidth += xOffset; + _neededHeight += yOffset!; + _neededWidth += xOffset!; } } diff --git a/mp_chart/lib/mp/core/legend/legend_entry.dart b/mp_chart/lib/mp/core/legend/legend_entry.dart index c965690a..a7e45990 100644 --- a/mp_chart/lib/mp/core/legend/legend_entry.dart +++ b/mp_chart/lib/mp/core/legend/legend_entry.dart @@ -8,11 +8,11 @@ class LegendEntry { LegendEntry.empty(); LegendEntry( - String label, + String? label, LegendForm form, double formSize, double formLineWidth, - DashPathEffect formLineDashEffect, + DashPathEffect? formLineDashEffect, Color formColor) { this._label = label; this._form = form; @@ -24,7 +24,7 @@ class LegendEntry { /// The legend entry text. /// A `null` label will start a group. - String _label; + String? _label; /// The form to draw for this entry. /// @@ -46,16 +46,16 @@ class LegendEntry { /// Line dash path effect used for shapes that consist of lines. /// /// Set to null to use the legend's default - DashPathEffect formLineDashEffect; + DashPathEffect? formLineDashEffect; /// The color for drawing the form Color _formColor = ColorUtils.COLOR_NONE; // ignore: unnecessary_getters_setters - String get label => _label; + String? get label => _label; // ignore: unnecessary_getters_setters - set label(String value) { + set label(String? value) { _label = value; } diff --git a/mp_chart/lib/mp/core/limit_line.dart b/mp_chart/lib/mp/core/limit_line.dart index 90c95412..5acd2f51 100644 --- a/mp_chart/lib/mp/core/limit_line.dart +++ b/mp_chart/lib/mp/core/limit_line.dart @@ -9,7 +9,7 @@ class LimitLine extends ComponentBase { double _limit = 0; /// the width of the limit line - double _lineWidth = 2; + double? _lineWidth = 2; /// the color of the limit line Color _lineColor = Color.fromARGB(255, 237, 91, 91); @@ -22,10 +22,10 @@ class LimitLine extends ComponentBase { PaintingStyle _textStyle = PaintingStyle.fill; /// label string that is drawn next to the limit line - String _label = ""; + String? _label = ""; /// the path effect of this LimitLine that makes dashed lines possible - DashPathEffect _dashPathEffect; + DashPathEffect? _dashPathEffect; /// indicates the position of the LimitLine label LimitLabelPosition _labelPosition = LimitLabelPosition.RIGHT_TOP; @@ -44,7 +44,7 @@ class LimitLine extends ComponentBase { _lineWidth = Utils.convertDpToPixel(width); } - double get lineWidth => _lineWidth; + double? get lineWidth => _lineWidth; // ignore: unnecessary_getters_setters Color get lineColor => _lineColor; @@ -77,10 +77,10 @@ class LimitLine extends ComponentBase { } // ignore: unnecessary_getters_setters - DashPathEffect get dashPathEffect => _dashPathEffect; + DashPathEffect? get dashPathEffect => _dashPathEffect; // ignore: unnecessary_getters_setters - set dashPathEffect(DashPathEffect value) { + set dashPathEffect(DashPathEffect? value) { _dashPathEffect = value; } @@ -101,10 +101,10 @@ class LimitLine extends ComponentBase { } // ignore: unnecessary_getters_setters - String get label => _label; + String? get label => _label; // ignore: unnecessary_getters_setters - set label(String value) { + set label(String? value) { _label = value; } diff --git a/mp_chart/lib/mp/core/marker/bar_chart_marker.dart b/mp_chart/lib/mp/core/marker/bar_chart_marker.dart index 1b64308c..8e0bf062 100644 --- a/mp_chart/lib/mp/core/marker/bar_chart_marker.dart +++ b/mp_chart/lib/mp/core/marker/bar_chart_marker.dart @@ -3,7 +3,7 @@ import 'dart:ui'; import 'package:mp_chart/mp/core/marker/line_chart_marker.dart'; class BarChartMarker extends LineChartMarker { - BarChartMarker({Color textColor, Color backColor, double fontSize}) + BarChartMarker({Color? textColor, Color? backColor, double? fontSize}) : super(textColor: textColor, backColor: backColor, fontSize: fontSize); @override diff --git a/mp_chart/lib/mp/core/marker/horizontal_bar_chart_marker.dart b/mp_chart/lib/mp/core/marker/horizontal_bar_chart_marker.dart index fb3c49c4..922f13d1 100644 --- a/mp_chart/lib/mp/core/marker/horizontal_bar_chart_marker.dart +++ b/mp_chart/lib/mp/core/marker/horizontal_bar_chart_marker.dart @@ -3,6 +3,6 @@ import 'dart:ui'; import 'package:mp_chart/mp/core/marker/line_chart_marker.dart'; class HorizontalBarChartMarker extends LineChartMarker { - HorizontalBarChartMarker({Color textColor, Color backColor, double fontSize}) + HorizontalBarChartMarker({Color? textColor, Color? backColor, double? fontSize}) : super(textColor: textColor, backColor: backColor, fontSize: fontSize); } diff --git a/mp_chart/lib/mp/core/marker/i_marker.dart b/mp_chart/lib/mp/core/marker/i_marker.dart index 5be966be..624cead2 100644 --- a/mp_chart/lib/mp/core/marker/i_marker.dart +++ b/mp_chart/lib/mp/core/marker/i_marker.dart @@ -32,5 +32,5 @@ mixin IMarker { /// @param canvas /// @param posX /// @param posY - void draw(Canvas canvas, double posX, double posY); + void draw(Canvas canvas, double? posX, double? posY); } diff --git a/mp_chart/lib/mp/core/marker/line_chart_marker.dart b/mp_chart/lib/mp/core/marker/line_chart_marker.dart index 416e6d08..5ffe3cc2 100644 --- a/mp_chart/lib/mp/core/marker/line_chart_marker.dart +++ b/mp_chart/lib/mp/core/marker/line_chart_marker.dart @@ -11,18 +11,18 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; import 'package:mp_chart/mp/core/value_formatter/default_value_formatter.dart'; class LineChartMarker implements IMarker { - Entry _entry; + late Entry _entry; // ignore: unused_field - Highlight _highlight; + Highlight? _highlight; double _dx = 0.0; double _dy = 0.0; - DefaultValueFormatter _formatter; - Color _textColor; - Color _backColor; - double _fontSize; + late DefaultValueFormatter _formatter; + Color? _textColor; + Color? _backColor; + double? _fontSize; - LineChartMarker({Color textColor, Color backColor, double fontSize}) + LineChartMarker({Color? textColor, Color? backColor, double? fontSize}) : _textColor = textColor, _backColor = backColor, _fontSize = fontSize { @@ -35,14 +35,14 @@ class LineChartMarker implements IMarker { } @override - void draw(Canvas canvas, double posX, double posY) { + void draw(Canvas canvas, double? posX, double? posY) { TextPainter painter = PainterUtils.create( null, "${_formatter.getFormattedValue1(_entry.x)},${_formatter.getFormattedValue1(_entry.y)}", _textColor, _fontSize); Paint paint = Paint() - ..color = _backColor + ..color = _backColor! ..strokeWidth = 2 ..isAntiAlias = true ..style = PaintingStyle.fill; @@ -54,7 +54,7 @@ class LineChartMarker implements IMarker { // canvas.translate(posX + offset.x, posY + offset.y); painter.layout(); Offset pos = calculatePos( - posX + offset.x, posY + offset.y, painter.width, painter.height); + posX! + offset.x!, posY! + offset.y!, painter.width, painter.height); canvas.drawRRect( RRect.fromLTRBR(pos.dx - 5, pos.dy - 5, pos.dx + painter.width + 5, pos.dy + painter.height + 5, Radius.circular(5)), @@ -73,7 +73,7 @@ class LineChartMarker implements IMarker { } @override - MPPointF getOffsetForDrawingAtPoint(double posX, double posY) { + MPPointF getOffsetForDrawingAtPoint(double? posX, double? posY) { return getOffset(); } diff --git a/mp_chart/lib/mp/core/marker/radar_chart_marker.dart b/mp_chart/lib/mp/core/marker/radar_chart_marker.dart index 558d11bf..138848bf 100644 --- a/mp_chart/lib/mp/core/marker/radar_chart_marker.dart +++ b/mp_chart/lib/mp/core/marker/radar_chart_marker.dart @@ -11,18 +11,18 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; import 'package:mp_chart/mp/core/value_formatter/default_value_formatter.dart'; class RadarChartMarker implements IMarker { - Entry _entry; + late Entry _entry; // ignore: unused_field - Highlight _highlight; + Highlight? _highlight; double _dx = 0.0; double _dy = 0.0; - DefaultValueFormatter _formatter; - Color _textColor; - Color _backColor; - double _fontSize; + late DefaultValueFormatter _formatter; + Color? _textColor; + Color? _backColor; + double? _fontSize; - RadarChartMarker({Color textColor, Color backColor, double fontSize}) + RadarChartMarker({Color? textColor, Color? backColor, double? fontSize}) : _textColor = textColor, _backColor = backColor, _fontSize = fontSize { @@ -33,11 +33,11 @@ class RadarChartMarker implements IMarker { } @override - void draw(Canvas canvas, double posX, double posY) { + void draw(Canvas canvas, double? posX, double? posY) { TextPainter painter = PainterUtils.create(null, "${_formatter.getFormattedValue1(_entry.y)}", _textColor, _fontSize); Paint paint = Paint() - ..color = _backColor + ..color = _backColor! ..strokeWidth = 2 ..isAntiAlias = true ..style = PaintingStyle.fill; @@ -47,7 +47,7 @@ class RadarChartMarker implements IMarker { canvas.save(); painter.layout(); Offset pos = calculatePos( - posX + offset.x, posY + offset.y, painter.width, painter.height); + posX! + offset.x!, posY! + offset.y!, painter.width, painter.height); canvas.drawRRect( RRect.fromLTRBR(pos.dx - 5, pos.dy - 5, pos.dx + painter.width + 5, pos.dy + painter.height + 5, Radius.circular(5)), @@ -66,7 +66,7 @@ class RadarChartMarker implements IMarker { } @override - MPPointF getOffsetForDrawingAtPoint(double posX, double posY) { + MPPointF getOffsetForDrawingAtPoint(double? posX, double? posY) { return getOffset(); } diff --git a/mp_chart/lib/mp/core/poolable/point.dart b/mp_chart/lib/mp/core/poolable/point.dart index 675d4c51..dd86d63d 100644 --- a/mp_chart/lib/mp/core/poolable/point.dart +++ b/mp_chart/lib/mp/core/poolable/point.dart @@ -2,22 +2,22 @@ class MPPointF extends Poolable { static ObjectPool pool = ObjectPool.create(32, MPPointF(0, 0)) ..setReplenishPercentage(0.5); - double _x; - double _y; + double? _x; + double? _y; // ignore: unnecessary_getters_setters - double get y => _y; + double? get y => _y; // ignore: unnecessary_getters_setters - set y(double value) { + set y(double? value) { _y = value; } // ignore: unnecessary_getters_setters - double get x => _x; + double? get x => _x; // ignore: unnecessary_getters_setters - set x(double value) { + set x(double? value) { _x = value; } @@ -26,19 +26,19 @@ class MPPointF extends Poolable { return "x:$_x y:$_y"; } - static MPPointF getInstance1(double x, double y) { - MPPointF result = pool.get(); + static MPPointF getInstance1(double? x, double? y) { + MPPointF result = pool.get() as MPPointF; result._x = x; result._y = y; return result; } static MPPointF getInstance2() { - return pool.get(); + return pool.get() as MPPointF; } static MPPointF getInstance3(MPPointF copy) { - MPPointF result = pool.get(); + MPPointF result = pool.get() as MPPointF; result._x = copy._x; result._y = copy._y; return result; @@ -64,8 +64,8 @@ class MPPointD extends Poolable { static ObjectPool pool = ObjectPool.create(64, new MPPointD(0, 0)) ..setReplenishPercentage(0.5); - static MPPointD getInstance1(double x, double y) { - MPPointD result = pool.get(); + static MPPointD getInstance1(double? x, double? y) { + MPPointD result = pool.get() as MPPointD; result.x = x; result.y = y; return result; @@ -79,8 +79,8 @@ class MPPointD extends Poolable { pool.recycle2(instances); } - double x; - double y; + double? x; + double? y; @override Poolable instantiate() { @@ -99,7 +99,7 @@ class MPPointD extends Poolable { abstract class Poolable { // ignore: non_constant_identifier_names static int NO_OWNER = -1; - int currentOwnerId = NO_OWNER; + int? currentOwnerId = NO_OWNER; Poolable instantiate(); } @@ -107,17 +107,17 @@ abstract class Poolable { class ObjectPool { static int ids = 0; - int poolId; - int desiredCapacity; - List objects; - int objectsPointer; - T modelObject; - double replenishPercentage; + int? poolId; + int? desiredCapacity; + late List objects; + int? objectsPointer; + late T modelObject; + double? replenishPercentage; /// Returns the id of the given pool instance. /// /// @return an integer ID belonging to this pool instance. - int getPoolId() { + int? getPoolId() { return poolId; } @@ -161,21 +161,21 @@ class ObjectPool { this.replenishPercentage = p; } - double getReplenishPercentage() { + double? getReplenishPercentage() { return replenishPercentage; } void refillPool1() { - this.refillPool2(this.replenishPercentage); + this.refillPool2(this.replenishPercentage!); } void refillPool2(double percentage) { - int portionOfCapacity = (desiredCapacity * percentage).toInt(); + int portionOfCapacity = (desiredCapacity! * percentage).toInt(); if (portionOfCapacity < 1) { portionOfCapacity = 1; - } else if (portionOfCapacity > desiredCapacity) { - portionOfCapacity = desiredCapacity; + } else if (portionOfCapacity > desiredCapacity!) { + portionOfCapacity = desiredCapacity!; } for (int i = 0; i < portionOfCapacity; i++) { @@ -190,11 +190,11 @@ class ObjectPool { /// /// @return An instance of Poolable object T T get() { - if (this.objectsPointer == -1 && this.replenishPercentage > 0.0) { + if (this.objectsPointer == -1 && this.replenishPercentage! > 0.0) { this.refillPool1(); } - T result = objects[this.objectsPointer]; + T result = objects[this.objectsPointer!] as T; result.currentOwnerId = Poolable.NO_OWNER; this.objectsPointer--; @@ -217,12 +217,12 @@ class ObjectPool { } this.objectsPointer++; - if (this.objectsPointer >= objects.length) { + if (this.objectsPointer! >= objects.length) { this.resizePool(); } object.currentOwnerId = this.poolId; - objects[this.objectsPointer] = object; + objects[this.objectsPointer!] = object; } /// Recycle a List of Poolables that this pool is capable of generating. @@ -230,7 +230,7 @@ class ObjectPool { /// /// @param objects A list of objects of type T to recycle void recycle2(List objects) { - while (objects.length + this.objectsPointer + 1 > this.desiredCapacity) { + while (objects.length + this.objectsPointer! + 1 > this.desiredCapacity!) { this.resizePool(); } final int objectsListSize = objects.length; @@ -248,15 +248,15 @@ class ObjectPool { } } object.currentOwnerId = this.poolId; - this.objects[this.objectsPointer + 1 + i] = object; + this.objects[this.objectsPointer! + 1 + i] = object; } this.objectsPointer += objectsListSize; } void resizePool() { - final int oldCapacity = this.desiredCapacity; + final int oldCapacity = this.desiredCapacity!; this.desiredCapacity *= 2; - List temp = List(this.desiredCapacity); + List temp = List(this.desiredCapacity); for (int i = 0; i < oldCapacity; i++) { temp[i] = this.objects[i]; } @@ -276,6 +276,6 @@ class ObjectPool { /// /// @return The number of objects remaining in the pool. int getPoolCount() { - return this.objectsPointer + 1; + return this.objectsPointer! + 1; } } diff --git a/mp_chart/lib/mp/core/poolable/size.dart b/mp_chart/lib/mp/core/poolable/size.dart index 3044017f..f46e1e94 100644 --- a/mp_chart/lib/mp/core/poolable/size.dart +++ b/mp_chart/lib/mp/core/poolable/size.dart @@ -29,7 +29,7 @@ class FSize extends Poolable { } static FSize getInstance(final double width, final double height) { - FSize result = pool.get(); + FSize result = pool.get() as FSize; result._width = width; result._height = height; return result; diff --git a/mp_chart/lib/mp/core/render/axis_renderer.dart b/mp_chart/lib/mp/core/render/axis_renderer.dart index c82c7e78..57ee341b 100644 --- a/mp_chart/lib/mp/core/render/axis_renderer.dart +++ b/mp_chart/lib/mp/core/render/axis_renderer.dart @@ -13,25 +13,25 @@ import 'package:mp_chart/mp/core/view_port.dart'; abstract class AxisRenderer extends Renderer { /// base axis this axis renderer works with */ - AxisBase _axis; + AxisBase? _axis; /// transformer to transform values to screen pixels and return */ - Transformer _trans; + Transformer? _trans; /// paint object for the grid lines - Paint _gridPaint; + Paint? _gridPaint; /// paint for the x-label values - TextPainter _axisLabelPaint; + TextPainter? _axisLabelPaint; /// paint for the line surrounding the chart - Paint _axisLinePaint; + Paint? _axisLinePaint; /// paint used for the limit lines - Paint _limitLinePaint; + Paint? _limitLinePaint; AxisRenderer( - ViewPortHandler viewPortHandler, Transformer trans, AxisBase axis) + ViewPortHandler? viewPortHandler, Transformer? trans, AxisBase? axis) : super(viewPortHandler) { this._trans = trans; this._axis = axis; @@ -50,50 +50,50 @@ abstract class AxisRenderer extends Renderer { } // ignore: unnecessary_getters_setters - AxisBase get axis => _axis; + AxisBase? get axis => _axis; // ignore: unnecessary_getters_setters - set axis(AxisBase value) { + set axis(AxisBase? value) { _axis = value; } // ignore: unnecessary_getters_setters - Transformer get trans => _trans; + Transformer? get trans => _trans; // ignore: unnecessary_getters_setters - set trans(Transformer value) { + set trans(Transformer? value) { _trans = value; } // ignore: unnecessary_getters_setters - Paint get axisLinePaint => _axisLinePaint; + Paint? get axisLinePaint => _axisLinePaint; // ignore: unnecessary_getters_setters - set axisLinePaint(Paint value) { + set axisLinePaint(Paint? value) { _axisLinePaint = value; } // ignore: unnecessary_getters_setters - TextPainter get axisLabelPaint => _axisLabelPaint; + TextPainter? get axisLabelPaint => _axisLabelPaint; // ignore: unnecessary_getters_setters - set axisLabelPaint(TextPainter value) { + set axisLabelPaint(TextPainter? value) { _axisLabelPaint = value; } // ignore: unnecessary_getters_setters - Paint get gridPaint => _gridPaint; + Paint? get gridPaint => _gridPaint; // ignore: unnecessary_getters_setters - set gridPaint(Paint value) { + set gridPaint(Paint? value) { _gridPaint = value; } // ignore: unnecessary_getters_setters - Paint get limitLinePaint => _limitLinePaint; + Paint? get limitLinePaint => _limitLinePaint; // ignore: unnecessary_getters_setters - set limitLinePaint(Paint value) { + set limitLinePaint(Paint? value) { _limitLinePaint = value; } @@ -101,16 +101,16 @@ abstract class AxisRenderer extends Renderer { /// /// @param min - the minimum value in the data object for this axis /// @param max - the maximum value in the data object for this axis - void computeAxis(double min, double max, bool inverted) { + void computeAxis(double? min, double? max, bool inverted) { // calculate the starting and entry point of the y-labels (depending on // zoom / contentrect bounds) if (viewPortHandler != null && - viewPortHandler.contentWidth() > 10 && - !viewPortHandler.isFullyZoomedOutY()) { - MPPointD p1 = _trans.getValuesByTouchPoint1( - viewPortHandler.contentLeft(), viewPortHandler.contentTop()); - MPPointD p2 = _trans.getValuesByTouchPoint1( - viewPortHandler.contentLeft(), viewPortHandler.contentBottom()); + viewPortHandler!.contentWidth() > 10 && + !viewPortHandler!.isFullyZoomedOutY()) { + MPPointD p1 = _trans!.getValuesByTouchPoint1( + viewPortHandler!.contentLeft(), viewPortHandler!.contentTop()); + MPPointD p2 = _trans!.getValuesByTouchPoint1( + viewPortHandler!.contentLeft(), viewPortHandler!.contentBottom()); if (!inverted) { min = p2.y; @@ -124,7 +124,7 @@ abstract class AxisRenderer extends Renderer { MPPointD.recycleInstance2(p2); } - computeAxisValues(min, max); + computeAxisValues(min!, max!); } /// Sets up the axis values. Computes the desired number of labels between the two given extremes. @@ -134,13 +134,13 @@ abstract class AxisRenderer extends Renderer { double yMin = min; double yMax = max; - int labelCount = _axis.labelCount; + int labelCount = _axis!.labelCount; double range = (yMax - yMin).abs(); if (labelCount == 0 || range <= 0 || range.isInfinite) { - _axis.entries = List(); - _axis.centeredEntries = List(); - _axis.entryCount = 0; + _axis!.entries = List(); + _axis!.centeredEntries = List(); + _axis!.entryCount = 0; return; } @@ -150,13 +150,13 @@ abstract class AxisRenderer extends Renderer { // If granularity is enabled, then do not allow the interval to go below specified granularity. // This is used to avoid repeated values when rounding values for display. - if (_axis.granularityEnabled) - interval = interval < _axis.granularity ? _axis.granularity : interval; + if (_axis!.granularityEnabled) + interval = interval < _axis!.granularity ? _axis!.granularity : interval; // Normalize interval try { double intervalMagnitude = - Utils.roundToNextSignificant(pow(10.0, log(interval) ~/ ln10)); + Utils.roundToNextSignificant(pow(10.0, log(interval) ~/ ln10) as double); int intervalSigDigit = interval ~/ intervalMagnitude; if (intervalSigDigit > 5) { // Use one order of magnitude higher, to avoid intervals like 0.9 or @@ -167,22 +167,22 @@ abstract class AxisRenderer extends Renderer { return; } - int num = _axis.isCenterAxisLabelsEnabled() ? 1 : 0; + int num = _axis!.isCenterAxisLabelsEnabled() ? 1 : 0; // force label count - if (_axis.forceLabels) { + if (_axis!.forceLabels) { interval = range / (labelCount - 1); - _axis.entryCount = labelCount; + _axis!.entryCount = labelCount; - if (_axis.entries.length < labelCount) { + if (_axis!.entries.length < labelCount) { // Ensure stops contains at least numStops elements. - _axis.entries = List(labelCount); + _axis!.entries = List(labelCount); } double v = min; for (int i = 0; i < labelCount; i++) { - _axis.entries[i] = v; + _axis!.entries[i] = v; v += interval; } @@ -192,7 +192,7 @@ abstract class AxisRenderer extends Renderer { } else { double first = interval == 0.0 ? 0.0 : (yMin / interval).ceil() * interval; - if (_axis.isCenterAxisLabelsEnabled()) { + if (_axis!.isCenterAxisLabelsEnabled()) { first -= interval; } @@ -209,11 +209,11 @@ abstract class AxisRenderer extends Renderer { } } - _axis.entryCount = num; + _axis!.entryCount = num; - if (_axis.entries.length < num) { + if (_axis!.entries.length < num) { // Ensure stops contains at least numStops elements. - _axis.entries = List(num); + _axis!.entries = List(num); } i = 0; @@ -222,26 +222,26 @@ abstract class AxisRenderer extends Renderer { 0.0) // Fix for negative zero case (Where value == -0.0, and 0.0 == -0.0) f = 0.0; - _axis.entries[i] = f; + _axis!.entries[i] = f; } } // set decimals if (interval < 1) { - _axis.decimals = (-log(interval) / ln10).ceil(); + _axis!.decimals = (-log(interval) / ln10).ceil(); } else { - _axis.decimals = 0; + _axis!.decimals = 0; } - if (_axis.isCenterAxisLabelsEnabled()) { - if (_axis.centeredEntries.length < num) { - _axis.centeredEntries = List(num); + if (_axis!.isCenterAxisLabelsEnabled()) { + if (_axis!.centeredEntries.length < num) { + _axis!.centeredEntries = List(num); } int offset = interval ~/ 2; for (int i = 0; i < num; i++) { - _axis.centeredEntries[i] = _axis.entries[i] + offset; + _axis!.centeredEntries[i] = _axis!.entries[i]! + offset; } } } diff --git a/mp_chart/lib/mp/core/render/bar_chart_renderer.dart b/mp_chart/lib/mp/core/render/bar_chart_renderer.dart index 8d9bb825..f127b70c 100644 --- a/mp_chart/lib/mp/core/render/bar_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/bar_chart_renderer.dart @@ -22,18 +22,18 @@ import 'package:mp_chart/mp/core/value_formatter/value_formatter.dart'; import 'package:mp_chart/mp/core/view_port.dart'; class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { - BarDataProvider _provider; + BarDataProvider? _provider; /// the rect object that is used for drawing the bars Rect _barRect = Rect.zero; - List _barBuffers; + List? _barBuffers; - Paint _shadowPaint; - Paint _barBorderPaint; + Paint? _shadowPaint; + Paint? _barBorderPaint; BarChartRenderer( - BarDataProvider chart, Animator animator, ViewPortHandler viewPortHandler) + BarDataProvider chart, Animator? animator, ViewPortHandler? viewPortHandler) : super(animator, viewPortHandler) { this._provider = chart; @@ -55,39 +55,39 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { } // ignore: unnecessary_getters_setters - Paint get shadowPaint => _shadowPaint; + Paint? get shadowPaint => _shadowPaint; // ignore: unnecessary_getters_setters - set shadowPaint(Paint value) { + set shadowPaint(Paint? value) { _shadowPaint = value; } // ignore: unnecessary_getters_setters - Paint get barBorderPaint => _barBorderPaint; + Paint? get barBorderPaint => _barBorderPaint; // ignore: unnecessary_getters_setters - set barBorderPaint(Paint value) { + set barBorderPaint(Paint? value) { _barBorderPaint = value; } // ignore: unnecessary_getters_setters - List get barBuffers => _barBuffers; + List? get barBuffers => _barBuffers; // ignore: unnecessary_getters_setters - set barBuffers(List value) { + set barBuffers(List? value) { _barBuffers = value; } - BarDataProvider get provider => _provider; + BarDataProvider? get provider => _provider; @override void initBuffers() { - BarData barData = _provider.getBarData(); + BarData barData = _provider!.getBarData()!; _barBuffers = List(barData.getDataSetCount()); - for (int i = 0; i < _barBuffers.length; i++) { - IBarDataSet set = barData.getDataSetByIndex(i); - _barBuffers[i] = BarBuffer( + for (int i = 0; i < _barBuffers!.length; i++) { + IBarDataSet set = barData.getDataSetByIndex(i)!; + _barBuffers![i] = BarBuffer( set.getEntryCount() * 4 * (set.isStacked() ? set.getStackSize() : 1), barData.getDataSetCount(), set.isStacked()); @@ -96,10 +96,10 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { @override void drawData(Canvas c) { - BarData barData = _provider.getBarData(); + BarData barData = _provider!.getBarData()!; for (int i = 0; i < barData.getDataSetCount(); i++) { - IBarDataSet set = barData.getDataSetByIndex(i); + IBarDataSet set = barData.getDataSetByIndex(i)!; if (set.isVisible()) { drawDataSet(c, set, i); @@ -108,77 +108,77 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { } void drawDataSet(Canvas c, IBarDataSet dataSet, int index) { - Transformer trans = _provider.getTransformer(dataSet.getAxisDependency()); + Transformer? trans = _provider!.getTransformer(dataSet.getAxisDependency()); _barBorderPaint..color = dataSet.getBarBorderColor(); _barBorderPaint - ..strokeWidth = Utils.convertDpToPixel(dataSet.getBarBorderWidth()); + ..strokeWidth = Utils.convertDpToPixel(dataSet.getBarBorderWidth())!; final bool drawBorder = dataSet.getBarBorderWidth() > 0.0; - double phaseX = animator.getPhaseX(); - double phaseY = animator.getPhaseY(); + double phaseX = animator!.getPhaseX(); + double phaseY = animator!.getPhaseY(); // draw the bar shadow before the values - if (_provider.isDrawBarShadowEnabled()) { + if (_provider!.isDrawBarShadowEnabled()) { _shadowPaint..color = dataSet.getBarShadowColor(); - BarData barData = _provider.getBarData(); + BarData barData = _provider!.getBarData()!; final double barWidth = barData.barWidth; final double barWidthHalf = barWidth / 2.0; - double x; + double? x; for (int i = 0, count = min((((dataSet.getEntryCount()) * phaseX).ceil()), dataSet.getEntryCount()); i < count; i++) { - BarEntry e = dataSet.getEntryForIndex(i); + BarEntry e = dataSet.getEntryForIndex(i)!; x = e.x; _barShadowRectBuffer = - Rect.fromLTRB(x - barWidthHalf, 0.0, x + barWidthHalf, 0.0); + Rect.fromLTRB(x! - barWidthHalf, 0.0, x + barWidthHalf, 0.0); - trans.rectValueToPixel(_barShadowRectBuffer); + trans!.rectValueToPixel(_barShadowRectBuffer); - if (!viewPortHandler.isInBoundsLeft(_barShadowRectBuffer.right)) + if (!viewPortHandler!.isInBoundsLeft(_barShadowRectBuffer.right)) continue; - if (!viewPortHandler.isInBoundsRight(_barShadowRectBuffer.left)) break; + if (!viewPortHandler!.isInBoundsRight(_barShadowRectBuffer.left)) break; _barShadowRectBuffer = Rect.fromLTRB( _barShadowRectBuffer.left, - viewPortHandler.contentTop(), + viewPortHandler!.contentTop(), _barShadowRectBuffer.right, - viewPortHandler.contentBottom()); + viewPortHandler!.contentBottom()); - c.drawRect(_barShadowRectBuffer, _shadowPaint); + c.drawRect(_barShadowRectBuffer, _shadowPaint!); } } // initialize the buffer - BarBuffer buffer = _barBuffers[index]; + BarBuffer buffer = _barBuffers![index]!; buffer.setPhases(phaseX, phaseY); buffer.dataSetIndex = (index); - buffer.inverted = (_provider.isInverted(dataSet.getAxisDependency())); - buffer.barWidth = (_provider.getBarData().barWidth); + buffer.inverted = (_provider!.isInverted(dataSet.getAxisDependency())); + buffer.barWidth = (_provider!.getBarData()!.barWidth); buffer.feed(dataSet); - trans.pointValuesToPixel(buffer.buffer); + trans!.pointValuesToPixel(buffer.buffer!); - final bool isSingleColor = dataSet.getColors().length == 1; + final bool isSingleColor = dataSet.getColors()!.length == 1; if (isSingleColor) { renderPaint..color = dataSet.getColor1(); } for (int j = 0; j < buffer.size(); j += 4) { - if (!viewPortHandler.isInBoundsLeft(buffer.buffer[j + 2])) continue; + if (!viewPortHandler!.isInBoundsLeft(buffer.buffer![j + 2])) continue; - if (!viewPortHandler.isInBoundsRight(buffer.buffer[j])) break; + if (!viewPortHandler!.isInBoundsRight(buffer.buffer![j])) break; if (!isSingleColor) { // Set the color for the currently drawn value. If the index @@ -187,7 +187,7 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { } if (dataSet.getGradientColor1() != null) { - GradientColor gradientColor = dataSet.getGradientColor1(); + GradientColor gradientColor = dataSet.getGradientColor1()!; renderPaint ..shader = (LinearGradient( @@ -196,10 +196,10 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { ..add(gradientColor.endColor), tileMode: TileMode.mirror)) .createShader(Rect.fromLTRB( - buffer.buffer[j], - buffer.buffer[j + 3], - buffer.buffer[j], - buffer.buffer[j + 1])); + buffer.buffer![j]!, + buffer.buffer![j + 3]!, + buffer.buffer![j]!, + buffer.buffer![j + 1]!)); } if (dataSet.getGradientColors() != null) { @@ -210,22 +210,22 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { ..add(dataSet.getGradientColor2(j ~/ 4).endColor), tileMode: TileMode.mirror)) .createShader(Rect.fromLTRB( - buffer.buffer[j], - buffer.buffer[j + 3], - buffer.buffer[j], - buffer.buffer[j + 1])); + buffer.buffer![j]!, + buffer.buffer![j + 3]!, + buffer.buffer![j]!, + buffer.buffer![j + 1]!)); } c.drawRect( - Rect.fromLTRB(buffer.buffer[j], buffer.buffer[j + 1], - buffer.buffer[j + 2], buffer.buffer[j + 3]), - renderPaint); + Rect.fromLTRB(buffer.buffer![j]!, buffer.buffer![j + 1]!, + buffer.buffer![j + 2]!, buffer.buffer![j + 3]!), + renderPaint!); if (drawBorder) { c.drawRect( - Rect.fromLTRB(buffer.buffer[j], buffer.buffer[j + 1], - buffer.buffer[j + 2], buffer.buffer[j + 3]), - _barBorderPaint); + Rect.fromLTRB(buffer.buffer![j]!, buffer.buffer![j + 1]!, + buffer.buffer![j + 2]!, buffer.buffer![j + 3]!), + _barBorderPaint!); } } } @@ -240,37 +240,37 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { double bottom = y2; _barRect = trans.rectToPixelPhase( - Rect.fromLTRB(left, top, right, bottom), animator.getPhaseY()); + Rect.fromLTRB(left, top, right, bottom), animator!.getPhaseY()); } @override void drawValues(Canvas c) { // if values are drawn - if (isDrawingValuesAllowed(_provider)) { - List dataSets = _provider.getBarData().dataSets; + if (isDrawingValuesAllowed(_provider!)) { + List? dataSets = _provider!.getBarData()!.dataSets; - final double valueOffsetPlus = Utils.convertDpToPixel(4.5); + final double? valueOffsetPlus = Utils.convertDpToPixel(4.5); double posOffset = 0.0; double negOffset = 0.0; - bool drawValueAboveBar = _provider.isDrawValueAboveBarEnabled(); + bool drawValueAboveBar = _provider!.isDrawValueAboveBarEnabled(); - for (int i = 0; i < _provider.getBarData().getDataSetCount(); i++) { - IBarDataSet dataSet = dataSets[i]; + for (int i = 0; i < _provider!.getBarData()!.getDataSetCount(); i++) { + IBarDataSet dataSet = dataSets![i]; if (!shouldDrawValues(dataSet)) continue; // apply the text-styling defined by the DataSet applyValueTextStyle(dataSet); - bool isInverted = _provider.isInverted(dataSet.getAxisDependency()); + bool isInverted = _provider!.isInverted(dataSet.getAxisDependency()); // calculate the correct offset depending on the draw position of // the value double valueTextHeight = - Utils.calcTextHeight(valuePaint, "8").toDouble(); + Utils.calcTextHeight(valuePaint!, "8").toDouble(); posOffset = (drawValueAboveBar - ? -valueOffsetPlus - : valueTextHeight + valueOffsetPlus); + ? -valueOffsetPlus! + : valueTextHeight + valueOffsetPlus!); negOffset = (drawValueAboveBar ? valueTextHeight + valueOffsetPlus : -valueOffsetPlus); @@ -281,11 +281,11 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { } // get the buffer - BarBuffer buffer = _barBuffers[i]; + BarBuffer? buffer = _barBuffers![i]; - final double phaseY = animator.getPhaseY(); + final double phaseY = animator!.getPhaseY(); - ValueFormatter formatter = dataSet.getValueFormatter(); + ValueFormatter? formatter = dataSet.getValueFormatter(); MPPointF iconsOffset = MPPointF.getInstance3(dataSet.getIconsOffset()); iconsOffset.x = Utils.convertDpToPixel(iconsOffset.x); @@ -294,26 +294,26 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { // if only single values are drawn (sum) if (!dataSet.isStacked()) { for (int j = 0; - j < buffer.buffer.length * animator.getPhaseX(); + j < buffer!.buffer!.length * animator!.getPhaseX(); j += 4) { - double x = (buffer.buffer[j] + buffer.buffer[j + 2]) / 2.0; + double x = (buffer.buffer![j]! + buffer.buffer![j + 2]!) / 2.0; - if (!viewPortHandler.isInBoundsRight(x)) break; + if (!viewPortHandler!.isInBoundsRight(x)) break; - if (!viewPortHandler.isInBoundsY(buffer.buffer[j + 1]) || - !viewPortHandler.isInBoundsLeft(x)) continue; + if (!viewPortHandler!.isInBoundsY(buffer.buffer![j + 1]) || + !viewPortHandler!.isInBoundsLeft(x)) continue; - BarEntry entry = dataSet.getEntryForIndex(j ~/ 4); - double val = entry.y; + BarEntry entry = dataSet.getEntryForIndex(j ~/ 4)!; + double? val = entry.y; if (dataSet.isDrawValuesEnabled()) { drawValue( c, - formatter.getBarLabel(entry), + formatter!.getBarLabel(entry), x, - val >= 0 - ? (buffer.buffer[j + 1] + posOffset) - : (buffer.buffer[j + 3] + negOffset), + val! >= 0 + ? (buffer.buffer![j + 1]! + posOffset) + : (buffer.buffer![j + 3]! + negOffset), dataSet.getValueTextColor2(j ~/ 4), dataSet.getValueTextSize(), dataSet.getValueTypeface()); @@ -321,33 +321,33 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { if (entry.mIcon != null && dataSet.isDrawIconsEnabled()) { double px = x; - double py = val >= 0 - ? (buffer.buffer[j + 1] + posOffset) - : (buffer.buffer[j + 3] + negOffset); + double py = val! >= 0 + ? (buffer.buffer![j + 1]! + posOffset) + : (buffer.buffer![j + 3]! + negOffset); - px += iconsOffset.x; - py += iconsOffset.y; + px += iconsOffset.x!; + py += iconsOffset.y!; if (entry.mIcon != null && dataSet.isDrawIconsEnabled()) { CanvasUtils.drawImage( - c, Offset(px, py), entry.mIcon, Size(15, 15), drawPaint); + c, Offset(px, py), entry.mIcon!, Size(15, 15), drawPaint!); } } } // if we have stacks } else { - Transformer trans = - _provider.getTransformer(dataSet.getAxisDependency()); + Transformer? trans = + _provider!.getTransformer(dataSet.getAxisDependency()); int bufferIndex = 0; int index = 0; - while (index < dataSet.getEntryCount() * animator.getPhaseX()) { - BarEntry entry = dataSet.getEntryForIndex(index); + while (index < dataSet.getEntryCount() * animator!.getPhaseX()) { + BarEntry entry = dataSet.getEntryForIndex(index)!; - List vals = entry.yVals; + List? vals = entry.yVals; double x = - (buffer.buffer[bufferIndex] + buffer.buffer[bufferIndex + 2]) / + (buffer!.buffer![bufferIndex]! + buffer.buffer![bufferIndex + 2]!) / 2.0; Color color = dataSet.getValueTextColor2(index); @@ -356,19 +356,19 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { // non-stacked // in between if (vals == null) { - if (!viewPortHandler.isInBoundsRight(x)) break; + if (!viewPortHandler!.isInBoundsRight(x)) break; - if (!viewPortHandler - .isInBoundsY(buffer.buffer[bufferIndex + 1]) || - !viewPortHandler.isInBoundsLeft(x)) continue; + if (!viewPortHandler! + .isInBoundsY(buffer.buffer![bufferIndex + 1]) || + !viewPortHandler!.isInBoundsLeft(x)) continue; if (dataSet.isDrawValuesEnabled()) { drawValue( c, - formatter.getBarLabel(entry), + formatter!.getBarLabel(entry), x, - buffer.buffer[bufferIndex + 1] + - (entry.y >= 0 ? posOffset : negOffset), + buffer.buffer![bufferIndex + 1]! + + (entry.y! >= 0 ? posOffset : negOffset), color, dataSet.getValueTextSize(), dataSet.getValueTypeface()); @@ -376,24 +376,24 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { if (entry.mIcon != null && dataSet.isDrawIconsEnabled()) { double px = x; - double py = buffer.buffer[bufferIndex + 1] + - (entry.y >= 0 ? posOffset : negOffset); + double py = buffer.buffer![bufferIndex + 1]! + + (entry.y! >= 0 ? posOffset : negOffset); - px += iconsOffset.x; - py += iconsOffset.y; + px += iconsOffset.x!; + py += iconsOffset.y!; if (entry.mIcon != null && dataSet.isDrawIconsEnabled()) { CanvasUtils.drawImage( - c, Offset(px, py), entry.mIcon, Size(15, 15), drawPaint); + c, Offset(px, py), entry.mIcon!, Size(15, 15), drawPaint!); } } // draw stack values } else { - List transformed = List(vals.length * 2); + List transformed = List(vals.length * 2); double posY = 0.0; - double negY = -entry.negativeSum; + double negY = -entry.negativeSum!; for (int k = 0, idx = 0; k < transformed.length; k += 2, idx++) { double value = vals[idx]; @@ -413,24 +413,24 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { transformed[k + 1] = y * phaseY; } - trans.pointValuesToPixel(transformed); + trans!.pointValuesToPixel(transformed); for (int k = 0; k < transformed.length; k += 2) { final double val = vals[k ~/ 2]; final bool drawBelow = (val == 0.0 && negY == 0.0 && posY > 0.0) || val < 0.0; double y = - transformed[k + 1] + (drawBelow ? negOffset : posOffset); + transformed[k + 1]! + (drawBelow ? negOffset : posOffset); - if (!viewPortHandler.isInBoundsRight(x)) break; + if (!viewPortHandler!.isInBoundsRight(x)) break; - if (!viewPortHandler.isInBoundsY(y) || - !viewPortHandler.isInBoundsLeft(x)) continue; + if (!viewPortHandler!.isInBoundsY(y) || + !viewPortHandler!.isInBoundsLeft(x)) continue; if (dataSet.isDrawValuesEnabled()) { drawValue( c, - formatter.getBarStackedLabel(val, entry), + formatter!.getBarStackedLabel(val, entry), x, y, color, @@ -441,10 +441,10 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { if (entry.mIcon != null && dataSet.isDrawIconsEnabled()) { CanvasUtils.drawImage( c, - Offset(x + iconsOffset.x, y + iconsOffset.y), - entry.mIcon, + Offset(x + iconsOffset.x!, y + iconsOffset.y!), + entry.mIcon!, Size(15, 15), - drawPaint); + drawPaint!); } } } @@ -462,57 +462,57 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { @override void drawValue(Canvas c, String valueText, double x, double y, Color color, - double textSize, TypeFace typeFace) { + double? textSize, TypeFace? typeFace) { valuePaint = PainterUtils.create(valuePaint, valueText, color, textSize, fontFamily: typeFace?.fontFamily, fontWeight: typeFace?.fontWeight); - valuePaint.layout(); - valuePaint.paint( - c, Offset(x - valuePaint.width / 2, y - valuePaint.height)); + valuePaint!.layout(); + valuePaint!.paint( + c, Offset(x - valuePaint!.width / 2, y - valuePaint!.height)); } @override - void drawHighlighted(Canvas c, List indices) { - BarData barData = _provider.getBarData(); + void drawHighlighted(Canvas c, List? indices) { + BarData? barData = _provider!.getBarData(); - for (Highlight high in indices) { - IBarDataSet set = barData.getDataSetByIndex(high.dataSetIndex); + for (Highlight high in indices!) { + IBarDataSet? set = barData!.getDataSetByIndex(high.dataSetIndex); if (set == null || !set.isHighlightEnabled()) continue; - BarEntry e = set.getEntryForXValue2(high.x, high.y); + BarEntry? e = set.getEntryForXValue2(high.x, high.y); if (!isInBoundsX(e, set)) continue; - Transformer trans = _provider.getTransformer(set.getAxisDependency()); + Transformer trans = _provider!.getTransformer(set.getAxisDependency())!; var color = set.getHighLightColor(); - highlightPaint.color = Color.fromARGB( + highlightPaint!.color = Color.fromARGB( set.getHighLightAlpha(), color.red, color.green, color.blue); - bool isStack = (high.stackIndex >= 0 && e.isStacked()) ? true : false; + bool isStack = (high.stackIndex >= 0 && e!.isStacked()) ? true : false; - double y1; + double? y1; double y2; if (isStack) { - if (_provider.isHighlightFullBarEnabled()) { + if (_provider!.isHighlightFullBarEnabled()) { y1 = e.positiveSum; - y2 = -e.negativeSum; + y2 = -e.negativeSum!; } else { - Range range = e.ranges[high.stackIndex]; + Range range = e.ranges![high.stackIndex]!; y1 = range.from; y2 = range.to; } } else { - y1 = e.y; + y1 = e!.y; y2 = 0.0; } - prepareBarHighlight(e.x, y1, y2, barData.barWidth / 2.0, trans); + prepareBarHighlight(e.x!, y1!, y2, barData.barWidth / 2.0, trans); setHighlightDrawPos(high, _barRect); - c.drawRect(_barRect, highlightPaint); + c.drawRect(_barRect, highlightPaint!); } } diff --git a/mp_chart/lib/mp/core/render/bar_line_scatter_candle_bubble_renderer.dart b/mp_chart/lib/mp/core/render/bar_line_scatter_candle_bubble_renderer.dart index c8e0c5e1..2bdb60d5 100644 --- a/mp_chart/lib/mp/core/render/bar_line_scatter_candle_bubble_renderer.dart +++ b/mp_chart/lib/mp/core/render/bar_line_scatter_candle_bubble_renderer.dart @@ -8,19 +8,19 @@ import 'package:mp_chart/mp/core/view_port.dart'; abstract class BarLineScatterCandleBubbleRenderer extends DataRenderer { /// buffer for storing the current minimum and maximum visible x - XBounds _xBounds; + XBounds? _xBounds; BarLineScatterCandleBubbleRenderer( - Animator animator, ViewPortHandler viewPortHandler) + Animator? animator, ViewPortHandler? viewPortHandler) : super(animator, viewPortHandler) { _xBounds = XBounds(this.animator); } // ignore: unnecessary_getters_setters - XBounds get xBounds => _xBounds; + XBounds? get xBounds => _xBounds; // ignore: unnecessary_getters_setters - set xBounds(XBounds value) { + set xBounds(XBounds? value) { _xBounds = value; } @@ -38,12 +38,12 @@ abstract class BarLineScatterCandleBubbleRenderer extends DataRenderer { /// @param e /// @param set /// @return - bool isInBoundsX(Entry e, IBarLineScatterCandleBubbleDataSet set) { + bool isInBoundsX(Entry? e, IBarLineScatterCandleBubbleDataSet set) { if (e == null) return false; double entryIndex = set.getEntryIndex2(e).toDouble(); - if (e == null || entryIndex >= set.getEntryCount() * animator.getPhaseX()) { + if (e == null || entryIndex >= set.getEntryCount() * animator!.getPhaseX()) { return false; } else { return true; diff --git a/mp_chart/lib/mp/core/render/bubble_chart_renderer.dart b/mp_chart/lib/mp/core/render/bubble_chart_renderer.dart index c12f5440..c7a11813 100644 --- a/mp_chart/lib/mp/core/render/bubble_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/bubble_chart_renderer.dart @@ -18,10 +18,10 @@ import 'package:mp_chart/mp/core/poolable/point.dart'; import 'package:mp_chart/mp/core/utils/utils.dart'; class BubbleChartRenderer extends BarLineScatterCandleBubbleRenderer { - BubbleDataProvider _provider; + BubbleDataProvider? _provider; - BubbleChartRenderer(BubbleDataProvider chart, Animator animator, - ViewPortHandler viewPortHandler) + BubbleChartRenderer(BubbleDataProvider chart, Animator? animator, + ViewPortHandler? viewPortHandler) : super(animator, viewPortHandler) { _provider = chart; @@ -29,31 +29,31 @@ class BubbleChartRenderer extends BarLineScatterCandleBubbleRenderer { highlightPaint ..style = PaintingStyle.stroke - ..strokeWidth = Utils.convertDpToPixel(1.5); + ..strokeWidth = Utils.convertDpToPixel(1.5)!; } - BubbleDataProvider get provider => _provider; + BubbleDataProvider? get provider => _provider; @override void initBuffers() {} @override void drawData(Canvas c) { - BubbleData bubbleData = _provider.getBubbleData(); + BubbleData bubbleData = _provider!.getBubbleData()!; - for (IBubbleDataSet set in bubbleData.dataSets) { + for (IBubbleDataSet set in bubbleData.dataSets!) { if (set.isVisible()) drawDataSet(c, set); } } - List sizeBuffer = List(4); - List pointBuffer = List(2); + List sizeBuffer = List(4); + List pointBuffer = List(2); double getShapeSize( - double entrySize, double maxSize, double reference, bool normalizeSize) { + double? entrySize, double maxSize, double reference, bool normalizeSize) { final double factor = normalizeSize - ? ((maxSize == 0) ? 1 : sqrt(entrySize / maxSize)) - : entrySize; + ? ((maxSize == 0) ? 1 : sqrt(entrySize! / maxSize)) + : entrySize!; final double shapeSize = reference * factor; return shapeSize; } @@ -61,11 +61,11 @@ class BubbleChartRenderer extends BarLineScatterCandleBubbleRenderer { void drawDataSet(Canvas c, IBubbleDataSet dataSet) { if (dataSet.getEntryCount() < 1) return; - Transformer trans = _provider.getTransformer(dataSet.getAxisDependency()); + Transformer trans = _provider!.getTransformer(dataSet.getAxisDependency())!; - double phaseY = animator.getPhaseY(); + double phaseY = animator!.getPhaseY(); - xBounds.set(_provider, dataSet); + xBounds!.set(_provider!, dataSet); sizeBuffer[0] = 0; sizeBuffer[2] = 1; @@ -75,49 +75,49 @@ class BubbleChartRenderer extends BarLineScatterCandleBubbleRenderer { bool normalizeSize = dataSet.isNormalizeSizeEnabled(); // calcualte the full width of 1 step on the x-axis - final double maxBubbleWidth = (sizeBuffer[2] - sizeBuffer[0]).abs(); + final double maxBubbleWidth = (sizeBuffer[2]! - sizeBuffer[0]!).abs(); final double maxBubbleHeight = - (viewPortHandler.contentBottom() - viewPortHandler.contentTop()).abs(); + (viewPortHandler!.contentBottom() - viewPortHandler!.contentTop()).abs(); final double referenceSize = min(maxBubbleHeight, maxBubbleWidth); - for (int j = xBounds.min; j <= xBounds.range + xBounds.min; j++) { - final BubbleEntry entry = dataSet.getEntryForIndex(j); + for (int j = xBounds!.min!; j <= xBounds!.range! + xBounds!.min!; j++) { + final BubbleEntry entry = dataSet.getEntryForIndex(j)!; pointBuffer[0] = entry.x; - pointBuffer[1] = (entry.y) * phaseY; + pointBuffer[1] = entry.y! * phaseY; trans.pointValuesToPixel(pointBuffer); double shapeHalf = getShapeSize( entry.size, dataSet.getMaxSize(), referenceSize, normalizeSize) / 2; - if (!viewPortHandler.isInBoundsTop(pointBuffer[1] + shapeHalf) || - !viewPortHandler.isInBoundsBottom(pointBuffer[1] - shapeHalf)) + if (!viewPortHandler!.isInBoundsTop(pointBuffer[1]! + shapeHalf) || + !viewPortHandler!.isInBoundsBottom(pointBuffer[1]! - shapeHalf)) continue; - if (!viewPortHandler.isInBoundsLeft(pointBuffer[0] + shapeHalf)) continue; + if (!viewPortHandler!.isInBoundsLeft(pointBuffer[0]! + shapeHalf)) continue; - if (!viewPortHandler.isInBoundsRight(pointBuffer[0] - shapeHalf)) break; + if (!viewPortHandler!.isInBoundsRight(pointBuffer[0]! - shapeHalf)) break; - final Color color = dataSet.getColor2(entry.x.toInt()); + final Color color = dataSet.getColor2(entry.x!.toInt()); - renderPaint.color = color; + renderPaint!.color = color; c.drawCircle( - Offset(pointBuffer[0], pointBuffer[1]), shapeHalf, renderPaint); + Offset(pointBuffer[0]!, pointBuffer[1]!), shapeHalf, renderPaint!); } } @override void drawValues(Canvas c) { - BubbleData bubbleData = _provider.getBubbleData(); + BubbleData? bubbleData = _provider!.getBubbleData(); if (bubbleData == null) return; // if values are drawn - if (isDrawingValuesAllowed(_provider)) { - final List dataSets = bubbleData.dataSets; + if (isDrawingValuesAllowed(_provider!)) { + final List dataSets = bubbleData.dataSets!; - double lineHeight = Utils.calcTextHeight(valuePaint, "1").toDouble(); + double lineHeight = Utils.calcTextHeight(valuePaint!, "1").toDouble(); for (int i = 0; i < dataSets.length; i++) { IBubbleDataSet dataSet = dataSets[i]; @@ -127,19 +127,19 @@ class BubbleChartRenderer extends BarLineScatterCandleBubbleRenderer { // apply the text-styling defined by the DataSet applyValueTextStyle(dataSet); - final double phaseX = max(0.0, min(1.0, animator.getPhaseX())); - final double phaseY = animator.getPhaseY(); + final double phaseX = max(0.0, min(1.0, animator!.getPhaseX())); + final double phaseY = animator!.getPhaseY(); - xBounds.set(_provider, dataSet); + xBounds!.set(_provider!, dataSet); - List positions = _provider - .getTransformer(dataSet.getAxisDependency()) + List positions = _provider! + .getTransformer(dataSet.getAxisDependency())! .generateTransformedValuesBubble( - dataSet, phaseY, xBounds.min, xBounds.max); + dataSet, phaseY, xBounds!.min!, xBounds!.max!); final double alpha = phaseX == 1 ? phaseY : phaseX; - ValueFormatter formatter = dataSet.getValueFormatter(); + ValueFormatter? formatter = dataSet.getValueFormatter(); MPPointF iconsOffset = MPPointF.getInstance3(dataSet.getIconsOffset()); iconsOffset.x = Utils.convertDpToPixel(iconsOffset.x); @@ -147,26 +147,26 @@ class BubbleChartRenderer extends BarLineScatterCandleBubbleRenderer { for (int j = 0; j < positions.length; j += 2) { Color valueTextColor = - dataSet.getValueTextColor2(j ~/ 2 + xBounds.min); + dataSet.getValueTextColor2(j ~/ 2 + xBounds!.min!); valueTextColor = Color.fromARGB((255.0 * alpha).round(), valueTextColor.red, valueTextColor.green, valueTextColor.blue); - double x = positions[j]; - double y = positions[j + 1]; + double? x = positions[j]; + double? y = positions[j + 1]; - if (!viewPortHandler.isInBoundsRight(x)) break; + if (!viewPortHandler!.isInBoundsRight(x)) break; - if ((!viewPortHandler.isInBoundsLeft(x) || - !viewPortHandler.isInBoundsY(y))) continue; + if ((!viewPortHandler!.isInBoundsLeft(x) || + !viewPortHandler!.isInBoundsY(y))) continue; - BubbleEntry entry = dataSet.getEntryForIndex(j ~/ 2 + xBounds.min); + BubbleEntry entry = dataSet.getEntryForIndex(j ~/ 2 + xBounds!.min!)!; if (dataSet.isDrawValuesEnabled()) { drawValue( c, - formatter.getBubbleLabel(entry), - x, - y + (0.5 * lineHeight), + formatter!.getBubbleLabel(entry), + x!, + y! + (0.5 * lineHeight), valueTextColor, dataSet.getValueTextSize(), dataSet.getValueTypeface()); @@ -175,10 +175,10 @@ class BubbleChartRenderer extends BarLineScatterCandleBubbleRenderer { if (entry.mIcon != null && dataSet.isDrawIconsEnabled()) { CanvasUtils.drawImage( c, - Offset(x + iconsOffset.x, y + iconsOffset.y), - entry.mIcon, + Offset(x! + iconsOffset.x!, y! + iconsOffset.y!), + entry.mIcon!, Size(15, 15), - drawPaint); + drawPaint!); } } @@ -189,35 +189,35 @@ class BubbleChartRenderer extends BarLineScatterCandleBubbleRenderer { @override void drawValue(Canvas c, String valueText, double x, double y, Color color, - double textSize, TypeFace typeFace) { + double? textSize, TypeFace? typeFace) { valuePaint = PainterUtils.create(valuePaint, valueText, color, textSize, fontFamily: typeFace?.fontFamily, fontWeight: typeFace?.fontWeight); - valuePaint.layout(); - valuePaint.paint( - c, Offset(x - valuePaint.width / 2, y - valuePaint.height)); + valuePaint!.layout(); + valuePaint!.paint( + c, Offset(x - valuePaint!.width / 2, y - valuePaint!.height)); } @override void drawExtras(Canvas c) {} @override - void drawHighlighted(Canvas c, List indices) { - BubbleData bubbleData = _provider.getBubbleData(); + void drawHighlighted(Canvas c, List? indices) { + BubbleData? bubbleData = _provider!.getBubbleData(); - double phaseY = animator.getPhaseY(); + double phaseY = animator!.getPhaseY(); - for (Highlight high in indices) { - IBubbleDataSet set = bubbleData.getDataSetByIndex(high.dataSetIndex); + for (Highlight high in indices!) { + IBubbleDataSet? set = bubbleData!.getDataSetByIndex(high.dataSetIndex); if (set == null || !set.isHighlightEnabled()) continue; - final BubbleEntry entry = set.getEntryForXValue2(high.x, high.y); + final BubbleEntry entry = set.getEntryForXValue2(high.x, high.y)!; if (entry.y != high.y) continue; if (!isInBoundsX(entry, set)) continue; - Transformer trans = _provider.getTransformer(set.getAxisDependency()); + Transformer trans = _provider!.getTransformer(set.getAxisDependency())!; sizeBuffer[0] = 0; sizeBuffer[2] = 1; @@ -227,14 +227,14 @@ class BubbleChartRenderer extends BarLineScatterCandleBubbleRenderer { bool normalizeSize = set.isNormalizeSizeEnabled(); // calcualte the full width of 1 step on the x-axis - final double maxBubbleWidth = (sizeBuffer[2] - sizeBuffer[0]).abs(); + final double maxBubbleWidth = (sizeBuffer[2]! - sizeBuffer[0]!).abs(); final double maxBubbleHeight = - (viewPortHandler.contentBottom() - viewPortHandler.contentTop()) + (viewPortHandler!.contentBottom() - viewPortHandler!.contentTop()) .abs(); final double referenceSize = min(maxBubbleHeight, maxBubbleWidth); pointBuffer[0] = entry.x; - pointBuffer[1] = (entry.y) * phaseY; + pointBuffer[1] = entry.y! * phaseY; trans.pointValuesToPixel(pointBuffer); high.setDraw(pointBuffer[0], pointBuffer[1]); @@ -243,24 +243,24 @@ class BubbleChartRenderer extends BarLineScatterCandleBubbleRenderer { entry.size, set.getMaxSize(), referenceSize, normalizeSize) / 2; - if (!viewPortHandler.isInBoundsTop(pointBuffer[1] + shapeHalf) || - !viewPortHandler.isInBoundsBottom(pointBuffer[1] - shapeHalf)) + if (!viewPortHandler!.isInBoundsTop(pointBuffer[1]! + shapeHalf) || + !viewPortHandler!.isInBoundsBottom(pointBuffer[1]! - shapeHalf)) continue; - if (!viewPortHandler.isInBoundsLeft(pointBuffer[0] + shapeHalf)) continue; + if (!viewPortHandler!.isInBoundsLeft(pointBuffer[0]! + shapeHalf)) continue; - if (!viewPortHandler.isInBoundsRight(pointBuffer[0] - shapeHalf)) break; + if (!viewPortHandler!.isInBoundsRight(pointBuffer[0]! - shapeHalf)) break; - final Color originalColor = set.getColor2(entry.x.toInt()); + final Color originalColor = set.getColor2(entry.x!.toInt()); var hsv = HSVColor.fromColor(originalColor); var color = hsv.toColor(); highlightPaint ..color = color - ..strokeWidth = set.getHighlightCircleWidth(); + ..strokeWidth = set.getHighlightCircleWidth()!; c.drawCircle( - Offset(pointBuffer[0], pointBuffer[1]), shapeHalf, highlightPaint); + Offset(pointBuffer[0]!, pointBuffer[1]!), shapeHalf, highlightPaint!); } } } diff --git a/mp_chart/lib/mp/core/render/candle_stick_chart_renderer.dart b/mp_chart/lib/mp/core/render/candle_stick_chart_renderer.dart index 69d965ef..3a48a386 100644 --- a/mp_chart/lib/mp/core/render/candle_stick_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/candle_stick_chart_renderer.dart @@ -17,56 +17,56 @@ import 'package:mp_chart/mp/core/poolable/point.dart'; import 'package:mp_chart/mp/core/utils/utils.dart'; class CandleStickChartRenderer extends LineScatterCandleRadarRenderer { - CandleDataProvider _porvider; + CandleDataProvider? _porvider; - List _shadowBuffers = List(8); - List _bodyBuffers = List(4); - List _rangeBuffers = List(4); - List _openBuffers = List(4); - List _closeBuffers = List(4); + List _shadowBuffers = List(8); + List _bodyBuffers = List(4); + List _rangeBuffers = List(4); + List _openBuffers = List(4); + List _closeBuffers = List(4); - CandleStickChartRenderer(CandleDataProvider chart, Animator animator, - ViewPortHandler viewPortHandler) + CandleStickChartRenderer(CandleDataProvider chart, Animator? animator, + ViewPortHandler? viewPortHandler) : super(animator, viewPortHandler) { _porvider = chart; } - CandleDataProvider get porvider => _porvider; + CandleDataProvider? get porvider => _porvider; @override void initBuffers() {} @override void drawData(Canvas c) { - CandleData candleData = _porvider.getCandleData(); + CandleData candleData = _porvider!.getCandleData()!; - for (ICandleDataSet set in candleData.dataSets) { + for (ICandleDataSet set in candleData.dataSets!) { if (set.isVisible()) drawDataSet(c, set); } } void drawDataSet(Canvas c, ICandleDataSet dataSet) { - Transformer trans = _porvider.getTransformer(dataSet.getAxisDependency()); + Transformer? trans = _porvider!.getTransformer(dataSet.getAxisDependency()); - double phaseY = animator.getPhaseY(); + double phaseY = animator!.getPhaseY(); double barSpace = dataSet.getBarSpace(); bool showCandleBar = dataSet.getShowCandleBar(); - xBounds.set(_porvider, dataSet); + xBounds!.set(_porvider!, dataSet); - renderPaint.strokeWidth = dataSet.getShadowWidth(); + renderPaint!.strokeWidth = dataSet.getShadowWidth()!; // draw the body - for (int j = xBounds.min; j <= xBounds.range + xBounds.min; j++) { + for (int j = xBounds!.min!; j <= xBounds!.range! + xBounds!.min!; j++) { // get the entry - CandleEntry e = dataSet.getEntryForIndex(j); + CandleEntry? e = dataSet.getEntryForIndex(j); if (e == null) continue; - final double xPos = e.x; + final double? xPos = e.x; - final double open = e.open; - final double close = e.close; + final double? open = e.open; + final double? close = e.close; final double high = e.shadowHigh; final double low = e.shadowLow; @@ -78,7 +78,7 @@ class CandleStickChartRenderer extends LineScatterCandleRadarRenderer { _shadowBuffers[4] = xPos; _shadowBuffers[6] = xPos; - if (open > close) { + if (open! > close!) { _shadowBuffers[1] = high * phaseY; _shadowBuffers[3] = open * phaseY; _shadowBuffers[5] = low * phaseY; @@ -95,40 +95,40 @@ class CandleStickChartRenderer extends LineScatterCandleRadarRenderer { _shadowBuffers[7] = _shadowBuffers[3]; } - trans.pointValuesToPixel(_shadowBuffers); + trans!.pointValuesToPixel(_shadowBuffers); // draw the shadows if (dataSet.getShadowColorSameAsCandle()) { if (open > close) - renderPaint.color = + renderPaint!.color = dataSet.getDecreasingColor() == ColorUtils.COLOR_NONE ? dataSet.getColor2(j) : dataSet.getDecreasingColor(); else if (open < close) - renderPaint.color = + renderPaint!.color = dataSet.getIncreasingColor() == ColorUtils.COLOR_NONE ? dataSet.getColor2(j) : dataSet.getIncreasingColor(); else - renderPaint.color = + renderPaint!.color = dataSet.getNeutralColor() == ColorUtils.COLOR_NONE ? dataSet.getColor2(j) : dataSet.getNeutralColor(); } else { - renderPaint.color = dataSet.getShadowColor() == ColorUtils.COLOR_NONE + renderPaint!.color = dataSet.getShadowColor() == ColorUtils.COLOR_NONE ? dataSet.getColor2(j) : dataSet.getShadowColor(); } - renderPaint.style = PaintingStyle.stroke; + renderPaint!.style = PaintingStyle.stroke; CanvasUtils.drawLines( c, _shadowBuffers, 0, _shadowBuffers.length, renderPaint); // calculate the body - _bodyBuffers[0] = xPos - 0.5 + barSpace; + _bodyBuffers[0] = xPos! - 0.5 + barSpace; _bodyBuffers[1] = close * phaseY; _bodyBuffers[2] = (xPos + 0.5 - barSpace); _bodyBuffers[3] = open * phaseY; @@ -140,41 +140,41 @@ class CandleStickChartRenderer extends LineScatterCandleRadarRenderer { // decreasing if (dataSet.getDecreasingColor() == ColorUtils.COLOR_NONE) { - renderPaint.color = dataSet.getColor2(j); + renderPaint!.color = dataSet.getColor2(j); } else { - renderPaint.color = dataSet.getDecreasingColor(); + renderPaint!.color = dataSet.getDecreasingColor(); } - renderPaint.style = PaintingStyle.fill; + renderPaint!.style = PaintingStyle.fill; c.drawRect( - Rect.fromLTRB(_bodyBuffers[0], _bodyBuffers[3], _bodyBuffers[2], - _bodyBuffers[1]), - renderPaint); + Rect.fromLTRB(_bodyBuffers[0]!, _bodyBuffers[3]!, _bodyBuffers[2]!, + _bodyBuffers[1]!), + renderPaint!); } else if (open < close) { if (dataSet.getIncreasingColor() == ColorUtils.COLOR_NONE) { - renderPaint.color = dataSet.getColor2(j); + renderPaint!.color = dataSet.getColor2(j); } else { - renderPaint.color = dataSet.getIncreasingColor(); + renderPaint!.color = dataSet.getIncreasingColor(); } - renderPaint.style = PaintingStyle.fill; + renderPaint!.style = PaintingStyle.fill; c.drawRect( - Rect.fromLTRB(_bodyBuffers[0], _bodyBuffers[1], _bodyBuffers[2], - _bodyBuffers[3]), - renderPaint); + Rect.fromLTRB(_bodyBuffers[0]!, _bodyBuffers[1]!, _bodyBuffers[2]!, + _bodyBuffers[3]!), + renderPaint!); } else { // equal values if (dataSet.getNeutralColor() == ColorUtils.COLOR_NONE) { - renderPaint.color = dataSet.getColor2(j); + renderPaint!.color = dataSet.getColor2(j); } else { - renderPaint.color = dataSet.getNeutralColor(); + renderPaint!.color = dataSet.getNeutralColor(); } - c.drawLine(Offset(_bodyBuffers[0], _bodyBuffers[1]), - Offset(_bodyBuffers[2], _bodyBuffers[3]), renderPaint); + c.drawLine(Offset(_bodyBuffers[0]!, _bodyBuffers[1]!), + Offset(_bodyBuffers[2]!, _bodyBuffers[3]!), renderPaint!); } } else { _rangeBuffers[0] = xPos; @@ -182,17 +182,17 @@ class CandleStickChartRenderer extends LineScatterCandleRadarRenderer { _rangeBuffers[2] = xPos; _rangeBuffers[3] = low * phaseY; - _openBuffers[0] = xPos - 0.5 + barSpace; - _openBuffers[1] = open * phaseY; + _openBuffers[0] = xPos! - 0.5 + barSpace; + _openBuffers[1] = open! * phaseY; _openBuffers[2] = xPos; _openBuffers[3] = open * phaseY; _closeBuffers[0] = xPos + 0.5 - barSpace; - _closeBuffers[1] = close * phaseY; + _closeBuffers[1] = close! * phaseY; _closeBuffers[2] = xPos; _closeBuffers[3] = close * phaseY; - trans.pointValuesToPixel(_rangeBuffers); + trans!.pointValuesToPixel(_rangeBuffers); trans.pointValuesToPixel(_openBuffers); trans.pointValuesToPixel(_closeBuffers); @@ -212,13 +212,13 @@ class CandleStickChartRenderer extends LineScatterCandleRadarRenderer { ? dataSet.getColor2(j) : dataSet.getNeutralColor(); - renderPaint.color = barColor; - c.drawLine(Offset(_rangeBuffers[0], _rangeBuffers[1]), - Offset(_rangeBuffers[2], _rangeBuffers[3]), renderPaint); - c.drawLine(Offset(_openBuffers[0], _openBuffers[1]), - Offset(_openBuffers[2], _openBuffers[3]), renderPaint); - c.drawLine(Offset(_closeBuffers[0], _closeBuffers[1]), - Offset(_closeBuffers[2], _closeBuffers[3]), renderPaint); + renderPaint!.color = barColor; + c.drawLine(Offset(_rangeBuffers[0]!, _rangeBuffers[1]!), + Offset(_rangeBuffers[2]!, _rangeBuffers[3]!), renderPaint!); + c.drawLine(Offset(_openBuffers[0]!, _openBuffers[1]!), + Offset(_openBuffers[2]!, _openBuffers[3]!), renderPaint!); + c.drawLine(Offset(_closeBuffers[0]!, _closeBuffers[1]!), + Offset(_closeBuffers[2]!, _closeBuffers[3]!), renderPaint!); } } } @@ -226,8 +226,8 @@ class CandleStickChartRenderer extends LineScatterCandleRadarRenderer { @override void drawValues(Canvas c) { // if values are drawn - if (isDrawingValuesAllowed(_porvider)) { - List dataSets = _porvider.getCandleData().dataSets; + if (isDrawingValuesAllowed(_porvider!)) { + List dataSets = _porvider!.getCandleData()!.dataSets!; for (int i = 0; i < dataSets.length; i++) { ICandleDataSet dataSet = dataSets[i]; @@ -238,42 +238,42 @@ class CandleStickChartRenderer extends LineScatterCandleRadarRenderer { applyValueTextStyle(dataSet); Transformer trans = - _porvider.getTransformer(dataSet.getAxisDependency()); + _porvider!.getTransformer(dataSet.getAxisDependency())!; - xBounds.set(_porvider, dataSet); + xBounds!.set(_porvider!, dataSet); - List positions = trans.generateTransformedValuesCandle( + List positions = trans.generateTransformedValuesCandle( dataSet, - animator.getPhaseX(), - animator.getPhaseY(), - xBounds.min, - xBounds.max); + animator!.getPhaseX(), + animator!.getPhaseY(), + xBounds!.min!, + xBounds!.max!); - double yOffset = Utils.convertDpToPixel(5); + double? yOffset = Utils.convertDpToPixel(5); - ValueFormatter formatter = dataSet.getValueFormatter(); + ValueFormatter? formatter = dataSet.getValueFormatter(); MPPointF iconsOffset = MPPointF.getInstance3(dataSet.getIconsOffset()); iconsOffset.x = Utils.convertDpToPixel(iconsOffset.x); iconsOffset.y = Utils.convertDpToPixel(iconsOffset.y); for (int j = 0; j < positions.length; j += 2) { - double x = positions[j]; - double y = positions[j + 1]; + double? x = positions[j]; + double? y = positions[j + 1]; - if (!viewPortHandler.isInBoundsRight(x)) break; + if (!viewPortHandler!.isInBoundsRight(x)) break; - if (!viewPortHandler.isInBoundsLeft(x) || - !viewPortHandler.isInBoundsY(y)) continue; + if (!viewPortHandler!.isInBoundsLeft(x) || + !viewPortHandler!.isInBoundsY(y)) continue; - CandleEntry entry = dataSet.getEntryForIndex(j ~/ 2 + xBounds.min); + CandleEntry entry = dataSet.getEntryForIndex(j ~/ 2 + xBounds!.min!)!; if (dataSet.isDrawValuesEnabled()) { drawValue( c, - formatter.getCandleLabel(entry), - x, - y - yOffset, + formatter!.getCandleLabel(entry), + x!, + y! - yOffset!, dataSet.getValueTextColor2(j ~/ 2), dataSet.getValueTextSize(), dataSet.getValueTypeface()); @@ -282,10 +282,10 @@ class CandleStickChartRenderer extends LineScatterCandleRadarRenderer { if (entry.mIcon != null && dataSet.isDrawIconsEnabled()) { CanvasUtils.drawImage( c, - Offset(x + iconsOffset.x, y + iconsOffset.y), - entry.mIcon, + Offset(x! + iconsOffset.x!, y! + iconsOffset.y!), + entry.mIcon!, Size(15, 15), - drawPaint); + drawPaint!); } } @@ -296,36 +296,36 @@ class CandleStickChartRenderer extends LineScatterCandleRadarRenderer { @override void drawValue(Canvas c, String valueText, double x, double y, Color color, - double textSize, TypeFace typeFace) { + double? textSize, TypeFace? typeFace) { valuePaint = PainterUtils.create(valuePaint, valueText, color, textSize, fontFamily: typeFace?.fontFamily, fontWeight: typeFace?.fontWeight); - valuePaint.layout(); - valuePaint.paint( - c, Offset(x - valuePaint.width / 2, y - valuePaint.height)); + valuePaint!.layout(); + valuePaint!.paint( + c, Offset(x - valuePaint!.width / 2, y - valuePaint!.height)); } @override void drawExtras(Canvas c) {} @override - void drawHighlighted(Canvas c, List indices) { - CandleData candleData = _porvider.getCandleData(); + void drawHighlighted(Canvas c, List? indices) { + CandleData? candleData = _porvider!.getCandleData(); - for (Highlight high in indices) { - ICandleDataSet set = candleData.getDataSetByIndex(high.dataSetIndex); + for (Highlight high in indices!) { + ICandleDataSet? set = candleData!.getDataSetByIndex(high.dataSetIndex); if (set == null || !set.isHighlightEnabled()) continue; - CandleEntry e = set.getEntryForXValue2(high.x, high.y); + CandleEntry? e = set.getEntryForXValue2(high.x, high.y); if (!isInBoundsX(e, set)) continue; - double lowValue = e.shadowLow * animator.getPhaseY(); - double highValue = e.shadowHigh * animator.getPhaseY(); + double lowValue = e!.shadowLow * animator!.getPhaseY(); + double highValue = e.shadowHigh * animator!.getPhaseY(); double y = (lowValue + highValue) / 2; - MPPointD pix = _porvider - .getTransformer(set.getAxisDependency()) + MPPointD pix = _porvider! + .getTransformer(set.getAxisDependency())! .getPixelForValues(e.x, y); high.setDraw(pix.x, pix.y); diff --git a/mp_chart/lib/mp/core/render/chevron_down_shape_renderer.dart b/mp_chart/lib/mp/core/render/chevron_down_shape_renderer.dart index d1a4f2f8..5facb67f 100644 --- a/mp_chart/lib/mp/core/render/chevron_down_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/chevron_down_shape_renderer.dart @@ -10,18 +10,18 @@ class ChevronDownShapeRenderer implements IShapeRenderer { void renderShape( Canvas c, IScatterDataSet dataSet, - ViewPortHandler viewPortHandler, - double posX, - double posY, - Paint renderPaint) { + ViewPortHandler? viewPortHandler, + double? posX, + double? posY, + Paint? renderPaint) { final double shapeHalf = dataSet.getScatterShapeSize() / 2; renderPaint ..style = PaintingStyle.stroke - ..strokeWidth = Utils.convertDpToPixel(1); + ..strokeWidth = Utils.convertDpToPixel(1)!; - c.drawLine(Offset(posX, posY + (2 * shapeHalf)), - Offset(posX + (2 * shapeHalf), posY), renderPaint); + c.drawLine(Offset(posX!, posY! + (2 * shapeHalf)), + Offset(posX + (2 * shapeHalf), posY), renderPaint!); c.drawLine(Offset(posX, posY + (2 * shapeHalf)), Offset(posX - (2 * shapeHalf), posY), renderPaint); diff --git a/mp_chart/lib/mp/core/render/chevron_up_shape_renderer.dart b/mp_chart/lib/mp/core/render/chevron_up_shape_renderer.dart index 75861910..903d51b1 100644 --- a/mp_chart/lib/mp/core/render/chevron_up_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/chevron_up_shape_renderer.dart @@ -10,18 +10,18 @@ class ChevronUpShapeRenderer implements IShapeRenderer { void renderShape( Canvas c, IScatterDataSet dataSet, - ViewPortHandler viewPortHandler, - double posX, - double posY, - Paint renderPaint) { + ViewPortHandler? viewPortHandler, + double? posX, + double? posY, + Paint? renderPaint) { final double shapeHalf = dataSet.getScatterShapeSize() / 2; renderPaint ..style = PaintingStyle.stroke - ..strokeWidth = Utils.convertDpToPixel(1); + ..strokeWidth = Utils.convertDpToPixel(1)!; - c.drawLine(Offset(posX, posY - (2 * shapeHalf)), - Offset(posX + (2 * shapeHalf), posY), renderPaint); + c.drawLine(Offset(posX!, posY! - (2 * shapeHalf)), + Offset(posX + (2 * shapeHalf), posY), renderPaint!); c.drawLine(Offset(posX, posY - (2 * shapeHalf)), Offset(posX - (2 * shapeHalf), posY), renderPaint); diff --git a/mp_chart/lib/mp/core/render/circle_shape_renderer.dart b/mp_chart/lib/mp/core/render/circle_shape_renderer.dart index 8dc2860a..17a3c334 100644 --- a/mp_chart/lib/mp/core/render/circle_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/circle_shape_renderer.dart @@ -11,14 +11,14 @@ class CircleShapeRenderer implements IShapeRenderer { void renderShape( Canvas c, IScatterDataSet dataSet, - ViewPortHandler viewPortHandler, - double posX, - double posY, - Paint renderPaint) { + ViewPortHandler? viewPortHandler, + double? posX, + double? posY, + Paint? renderPaint) { final double shapeSize = dataSet.getScatterShapeSize(); final double shapeHalf = shapeSize / 2; final double shapeHoleSizeHalf = - Utils.convertDpToPixel(dataSet.getScatterShapeHoleRadius()); + Utils.convertDpToPixel(dataSet.getScatterShapeHoleRadius())!; final double shapeHoleSize = shapeHoleSizeHalf * 2.0; final double shapeStrokeSize = (shapeSize - shapeHoleSize) / 2.0; final double shapeStrokeSizeHalf = shapeStrokeSize / 2.0; @@ -30,8 +30,8 @@ class CircleShapeRenderer implements IShapeRenderer { ..style = PaintingStyle.stroke ..strokeWidth = shapeStrokeSize; - c.drawCircle(Offset(posX, posY), shapeHoleSizeHalf + shapeStrokeSizeHalf, - renderPaint); + c.drawCircle(Offset(posX!, posY!), shapeHoleSizeHalf + shapeStrokeSizeHalf, + renderPaint!); if (shapeHoleColor != ColorUtils.COLOR_NONE) { renderPaint @@ -41,9 +41,9 @@ class CircleShapeRenderer implements IShapeRenderer { c.drawCircle(Offset(posX, posY), shapeHoleSizeHalf, renderPaint); } } else { - renderPaint.style = PaintingStyle.fill; + renderPaint!.style = PaintingStyle.fill; - c.drawCircle(Offset(posX, posY), shapeHalf, renderPaint); + c.drawCircle(Offset(posX!, posY!), shapeHalf, renderPaint); } } } diff --git a/mp_chart/lib/mp/core/render/combined_chart_renderer.dart b/mp_chart/lib/mp/core/render/combined_chart_renderer.dart index ba76aa73..3924f981 100644 --- a/mp_chart/lib/mp/core/render/combined_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/combined_chart_renderer.dart @@ -18,10 +18,10 @@ class CombinedChartRenderer extends DataRenderer { /// all rederers for the different kinds of data this combined-renderer can draw List _renderers = List(); - ChartPainter _painter; + ChartPainter? _painter; - CombinedChartRenderer(CombinedChartPainter chart, Animator animator, - ViewPortHandler viewPortHandler) + CombinedChartRenderer(CombinedChartPainter chart, Animator? animator, + ViewPortHandler? viewPortHandler) : super(animator, viewPortHandler) { _painter = chart; createRenderers(); @@ -32,10 +32,10 @@ class CombinedChartRenderer extends DataRenderer { void createRenderers() { _renderers.clear(); - CombinedChartPainter chart = (_painter as CombinedChartPainter); + CombinedChartPainter? chart = (_painter as CombinedChartPainter?); if (chart == null) return; - List orders = chart.getDrawOrder(); + List orders = chart.getDrawOrder()!; for (DrawOrder order in orders) { switch (order) { @@ -93,31 +93,31 @@ class CombinedChartRenderer extends DataRenderer { List mHighlightBuffer = List(); @override - void drawHighlighted(Canvas c, List indices) { - ChartPainter chart = _painter; + void drawHighlighted(Canvas c, List? indices) { + ChartPainter? chart = _painter; if (chart == null) return; for (DataRenderer renderer in _renderers) { - ChartData data; + ChartData? data; if (renderer is BarChartRenderer) - data = renderer.provider.getBarData(); + data = renderer.provider!.getBarData(); else if (renderer is LineChartRenderer) - data = renderer.provider.getLineData(); + data = renderer.provider!.getLineData(); else if (renderer is CandleStickChartRenderer) - data = renderer.porvider.getCandleData(); + data = renderer.porvider!.getCandleData(); else if (renderer is ScatterChartRenderer) - data = renderer.provider.getScatterData(); + data = renderer.provider!.getScatterData(); else if (renderer is BubbleChartRenderer) - data = renderer.provider.getBubbleData(); + data = renderer.provider!.getBubbleData(); int dataIndex = data == null ? -1 - : (chart.getData() as CombinedData).getAllData().indexOf(data); + : (chart.getData() as CombinedData).getAllData().indexOf(data as BarLineScatterCandleBubbleData>?); mHighlightBuffer.clear(); - for (Highlight h in indices) { + for (Highlight h in indices!) { if (h.dataIndex == dataIndex || h.dataIndex == -1) mHighlightBuffer.add(h); } @@ -130,7 +130,7 @@ class CombinedChartRenderer extends DataRenderer { /// /// @param index /// @return - DataRenderer getSubRenderer(int index) { + DataRenderer? getSubRenderer(int index) { if (index >= _renderers.length || index < 0) return null; else diff --git a/mp_chart/lib/mp/core/render/cross_shape_renderer.dart b/mp_chart/lib/mp/core/render/cross_shape_renderer.dart index 083210ce..d6c67958 100644 --- a/mp_chart/lib/mp/core/render/cross_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/cross_shape_renderer.dart @@ -10,18 +10,18 @@ class CrossShapeRenderer implements IShapeRenderer { void renderShape( Canvas c, IScatterDataSet dataSet, - ViewPortHandler viewPortHandler, - double posX, - double posY, - Paint renderPaint) { + ViewPortHandler? viewPortHandler, + double? posX, + double? posY, + Paint? renderPaint) { final double shapeHalf = dataSet.getScatterShapeSize() / 2; renderPaint ..style = PaintingStyle.stroke - ..strokeWidth = Utils.convertDpToPixel(1); + ..strokeWidth = Utils.convertDpToPixel(1)!; - c.drawLine(Offset(posX - shapeHalf, posY), Offset(posX + shapeHalf, posY), - renderPaint); + c.drawLine(Offset(posX! - shapeHalf, posY!), Offset(posX + shapeHalf, posY), + renderPaint!); c.drawLine(Offset(posX, posY - shapeHalf), Offset(posX, posY + shapeHalf), renderPaint); } diff --git a/mp_chart/lib/mp/core/render/data_renderer.dart b/mp_chart/lib/mp/core/render/data_renderer.dart index e1275187..b446c79f 100644 --- a/mp_chart/lib/mp/core/render/data_renderer.dart +++ b/mp_chart/lib/mp/core/render/data_renderer.dart @@ -13,19 +13,19 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; abstract class DataRenderer extends Renderer { /// the animator object used to perform animations on the chart data - Animator _animator; + Animator? _animator; /// main paint object used for rendering - Paint _renderPaint; + Paint? _renderPaint; /// paint used for highlighting values - Paint _highlightPaint; + Paint? _highlightPaint; - Paint _drawPaint; + Paint? _drawPaint; - TextPainter _valuePaint; + TextPainter? _valuePaint; - DataRenderer(Animator animator, ViewPortHandler viewPortHandler) + DataRenderer(Animator? animator, ViewPortHandler? viewPortHandler) : super(viewPortHandler) { this._animator = animator; @@ -46,29 +46,29 @@ abstract class DataRenderer extends Renderer { } bool isDrawingValuesAllowed(ChartInterface chart) { - return chart.getData().getEntryCount() < - chart.getMaxVisibleCount() * viewPortHandler.getScaleX(); + return chart.getData()!.getEntryCount() < + chart.getMaxVisibleCount() * viewPortHandler!.getScaleX(); } // ignore: unnecessary_getters_setters - TextPainter get valuePaint => _valuePaint; + TextPainter? get valuePaint => _valuePaint; // ignore: unnecessary_getters_setters - set valuePaint(TextPainter value) { + set valuePaint(TextPainter? value) { _valuePaint = value; } // ignore: unnecessary_getters_setters - Paint get highlightPaint => _highlightPaint; + Paint? get highlightPaint => _highlightPaint; - Paint get renderPaint => _renderPaint; + Paint? get renderPaint => _renderPaint; - Animator get animator => _animator; + Animator? get animator => _animator; - Paint get drawPaint => _drawPaint; + Paint? get drawPaint => _drawPaint; // ignore: unnecessary_getters_setters - set highlightPaint(Paint value) { + set highlightPaint(Paint? value) { _highlightPaint = value; } @@ -116,5 +116,5 @@ abstract class DataRenderer extends Renderer { /// /// @param c /// @param indices the highlighted values - void drawHighlighted(Canvas c, List indices); + void drawHighlighted(Canvas c, List? indices); } diff --git a/mp_chart/lib/mp/core/render/horizontal_bar_chart_renderer.dart b/mp_chart/lib/mp/core/render/horizontal_bar_chart_renderer.dart index 79471f1d..67b471d6 100644 --- a/mp_chart/lib/mp/core/render/horizontal_bar_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/horizontal_bar_chart_renderer.dart @@ -22,17 +22,17 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; class HorizontalBarChartRenderer extends BarChartRenderer { HorizontalBarChartRenderer( - BarDataProvider chart, Animator animator, ViewPortHandler viewPortHandler) + BarDataProvider chart, Animator? animator, ViewPortHandler? viewPortHandler) : super(chart, animator, viewPortHandler); @override void initBuffers() { - BarData barData = provider.getBarData(); + BarData barData = provider!.getBarData()!; barBuffers = List(barData.getDataSetCount()); - for (int i = 0; i < barBuffers.length; i++) { - IBarDataSet set = barData.getDataSetByIndex(i); - barBuffers[i] = HorizontalBarBuffer( + for (int i = 0; i < barBuffers!.length; i++) { + IBarDataSet set = barData.getDataSetByIndex(i)!; + barBuffers![i] = HorizontalBarBuffer( set.getEntryCount() * 4 * (set.isStacked() ? set.getStackSize() : 1), barData.getDataSetCount(), set.isStacked()); @@ -43,77 +43,77 @@ class HorizontalBarChartRenderer extends BarChartRenderer { @override void drawDataSet(Canvas c, IBarDataSet dataSet, int index) { - Transformer trans = provider.getTransformer(dataSet.getAxisDependency()); + Transformer? trans = provider!.getTransformer(dataSet.getAxisDependency()); barBorderPaint ..color = dataSet.getBarBorderColor() - ..strokeWidth = Utils.convertDpToPixel(dataSet.getBarBorderWidth()); + ..strokeWidth = Utils.convertDpToPixel(dataSet.getBarBorderWidth())!; final bool drawBorder = dataSet.getBarBorderWidth() > 0.0; - double phaseX = animator.getPhaseX(); - double phaseY = animator.getPhaseY(); + double phaseX = animator!.getPhaseX(); + double phaseY = animator!.getPhaseY(); // draw the bar shadow before the values - if (provider.isDrawBarShadowEnabled()) { + if (provider!.isDrawBarShadowEnabled()) { shadowPaint..color = dataSet.getBarShadowColor(); - BarData barData = provider.getBarData(); + BarData barData = provider!.getBarData()!; final double barWidth = barData.barWidth; final double barWidthHalf = barWidth / 2.0; - double x; + double? x; for (int i = 0, count = min(((dataSet.getEntryCount()) * phaseX).ceil(), dataSet.getEntryCount()); i < count; i++) { - BarEntry e = dataSet.getEntryForIndex(i); + BarEntry e = dataSet.getEntryForIndex(i)!; x = e.x; mBarShadowRectBuffer = Rect.fromLTRB(mBarShadowRectBuffer.left, - x - barWidthHalf, mBarShadowRectBuffer.right, x + barWidthHalf); + x! - barWidthHalf, mBarShadowRectBuffer.right, x + barWidthHalf); - trans.rectValueToPixel(mBarShadowRectBuffer); + trans!.rectValueToPixel(mBarShadowRectBuffer); - if (!viewPortHandler.isInBoundsTop(mBarShadowRectBuffer.bottom)) + if (!viewPortHandler!.isInBoundsTop(mBarShadowRectBuffer.bottom)) continue; - if (!viewPortHandler.isInBoundsBottom(mBarShadowRectBuffer.top)) break; + if (!viewPortHandler!.isInBoundsBottom(mBarShadowRectBuffer.top)) break; mBarShadowRectBuffer = Rect.fromLTRB( - viewPortHandler.contentLeft(), + viewPortHandler!.contentLeft(), mBarShadowRectBuffer.top, - viewPortHandler.contentRight(), + viewPortHandler!.contentRight(), mBarShadowRectBuffer.bottom); - c.drawRect(mBarShadowRectBuffer, shadowPaint); + c.drawRect(mBarShadowRectBuffer, shadowPaint!); } } // initialize the buffer - BarBuffer buffer = barBuffers[index]; + BarBuffer buffer = barBuffers![index]!; buffer.setPhases(phaseX, phaseY); buffer.dataSetIndex = (index); - buffer.inverted = (provider.isInverted(dataSet.getAxisDependency())); - buffer.barWidth = (provider.getBarData().barWidth); + buffer.inverted = (provider!.isInverted(dataSet.getAxisDependency())); + buffer.barWidth = (provider!.getBarData()!.barWidth); buffer.feed(dataSet); - trans.pointValuesToPixel(buffer.buffer); + trans!.pointValuesToPixel(buffer.buffer!); - final bool isSingleColor = dataSet.getColors().length == 1; + final bool isSingleColor = dataSet.getColors()!.length == 1; if (isSingleColor) { renderPaint..color = dataSet.getColor1(); } for (int j = 0; j < buffer.size(); j += 4) { - if (!viewPortHandler.isInBoundsTop(buffer.buffer[j + 3])) break; + if (!viewPortHandler!.isInBoundsTop(buffer.buffer![j + 3])) break; - if (!viewPortHandler.isInBoundsBottom(buffer.buffer[j + 1])) continue; + if (!viewPortHandler!.isInBoundsBottom(buffer.buffer![j + 1])) continue; if (!isSingleColor) { // Set the color for the currently drawn value. If the index @@ -122,15 +122,15 @@ class HorizontalBarChartRenderer extends BarChartRenderer { } c.drawRect( - Rect.fromLTRB(buffer.buffer[j], buffer.buffer[j + 1], - buffer.buffer[j + 2], buffer.buffer[j + 3]), - renderPaint); + Rect.fromLTRB(buffer.buffer![j]!, buffer.buffer![j + 1]!, + buffer.buffer![j + 2]!, buffer.buffer![j + 3]!), + renderPaint!); if (drawBorder) { c.drawRect( - Rect.fromLTRB(buffer.buffer[j], buffer.buffer[j + 1], - buffer.buffer[j + 2], buffer.buffer[j + 3]), - barBorderPaint); + Rect.fromLTRB(buffer.buffer![j]!, buffer.buffer![j + 1]!, + buffer.buffer![j + 2]!, buffer.buffer![j + 3]!), + barBorderPaint!); } } } @@ -138,31 +138,31 @@ class HorizontalBarChartRenderer extends BarChartRenderer { @override void drawValues(Canvas c) { // if values are drawn - if (!isDrawingValuesAllowed(provider)) return; + if (!isDrawingValuesAllowed(provider!)) return; - List dataSets = provider.getBarData().dataSets; + List? dataSets = provider!.getBarData()!.dataSets; - final double valueOffsetPlus = Utils.convertDpToPixel(5); - double posOffset = 0; - double negOffset = 0; - final bool drawValueAboveBar = provider.isDrawValueAboveBarEnabled(); + final double? valueOffsetPlus = Utils.convertDpToPixel(5); + double? posOffset = 0; + double? negOffset = 0; + final bool drawValueAboveBar = provider!.isDrawValueAboveBarEnabled(); - for (int i = 0; i < provider.getBarData().getDataSetCount(); i++) { - IBarDataSet dataSet = dataSets[i]; + for (int i = 0; i < provider!.getBarData()!.getDataSetCount(); i++) { + IBarDataSet dataSet = dataSets![i]; if (!shouldDrawValues(dataSet)) continue; - bool isInverted = provider.isInverted(dataSet.getAxisDependency()); + bool isInverted = provider!.isInverted(dataSet.getAxisDependency()); // apply the text-styling defined by the DataSet applyValueTextStyle(dataSet); - ValueFormatter formatter = dataSet.getValueFormatter(); + ValueFormatter? formatter = dataSet.getValueFormatter(); // get the buffer - BarBuffer buffer = barBuffers[i]; + BarBuffer? buffer = barBuffers![i]; - final double phaseY = animator.getPhaseY(); + final double phaseY = animator!.getPhaseY(); MPPointF iconsOffset = MPPointF.getInstance3(dataSet.getIconsOffset()); iconsOffset.x = Utils.convertDpToPixel(iconsOffset.x); @@ -171,40 +171,40 @@ class HorizontalBarChartRenderer extends BarChartRenderer { // if only single values are drawn (sum) if (!dataSet.isStacked()) { for (int j = 0; - j < buffer.buffer.length * animator.getPhaseX(); + j < buffer!.buffer!.length * animator!.getPhaseX(); j += 4) { - double y = (buffer.buffer[j + 1] + buffer.buffer[j + 3]) / 2; + double y = (buffer.buffer![j + 1]! + buffer.buffer![j + 3]!) / 2; - if (!viewPortHandler.isInBoundsTop(buffer.buffer[j + 1])) break; + if (!viewPortHandler!.isInBoundsTop(buffer.buffer![j + 1])) break; - if (!viewPortHandler.isInBoundsX(buffer.buffer[j])) continue; + if (!viewPortHandler!.isInBoundsX(buffer.buffer![j])) continue; - if (!viewPortHandler.isInBoundsBottom(buffer.buffer[j + 1])) continue; + if (!viewPortHandler!.isInBoundsBottom(buffer.buffer![j + 1])) continue; - BarEntry entry = dataSet.getEntryForIndex(j ~/ 4); - double val = entry.y; - String formattedValue = formatter.getBarLabel(entry); + BarEntry entry = dataSet.getEntryForIndex(j ~/ 4)!; + double? val = entry.y; + String formattedValue = formatter!.getBarLabel(entry); // calculate the correct offset depending on the draw position of the value double valueTextWidth = - Utils.calcTextWidth(valuePaint, formattedValue).toDouble(); + Utils.calcTextWidth(valuePaint!, formattedValue).toDouble(); posOffset = (drawValueAboveBar ? valueOffsetPlus - : -(valueTextWidth + valueOffsetPlus)); + : -(valueTextWidth + valueOffsetPlus!)); negOffset = (drawValueAboveBar - ? -(valueTextWidth + valueOffsetPlus) + ? -(valueTextWidth + valueOffsetPlus!) : valueOffsetPlus); if (isInverted) { - posOffset = -posOffset - valueTextWidth; - negOffset = -negOffset - valueTextWidth; + posOffset = -posOffset! - valueTextWidth; + negOffset = -negOffset! - valueTextWidth; } if (dataSet.isDrawValuesEnabled()) { drawValue( c, formattedValue, - buffer.buffer[j + 2] + (val >= 0 ? posOffset : negOffset), + buffer.buffer![j + 2]! + (val! >= 0 ? posOffset! : negOffset!), y, dataSet.getValueTextColor2(j ~/ 2), dataSet.getValueTextSize(), @@ -212,88 +212,88 @@ class HorizontalBarChartRenderer extends BarChartRenderer { } if (entry.mIcon != null && dataSet.isDrawIconsEnabled()) { double px = - buffer.buffer[j + 2] + (val >= 0 ? posOffset : negOffset); + buffer.buffer![j + 2]! + (val! >= 0 ? posOffset! : negOffset!); double py = y; - px += iconsOffset.x; - py += iconsOffset.y; + px += iconsOffset.x!; + py += iconsOffset.y!; CanvasUtils.drawImage( - c, Offset(px, py), entry.mIcon, Size(15, 15), drawPaint); + c, Offset(px, py), entry.mIcon!, Size(15, 15), drawPaint!); } } // if each value of a potential stack should be drawn } else { - Transformer trans = - provider.getTransformer(dataSet.getAxisDependency()); + Transformer? trans = + provider!.getTransformer(dataSet.getAxisDependency()); int bufferIndex = 0; int index = 0; - while (index < dataSet.getEntryCount() * animator.getPhaseX()) { - BarEntry entry = dataSet.getEntryForIndex(index); + while (index < dataSet.getEntryCount() * animator!.getPhaseX()) { + BarEntry entry = dataSet.getEntryForIndex(index)!; Color color = dataSet.getValueTextColor2(index); - List vals = entry.yVals; + List? vals = entry.yVals; // we still draw stacked bars, but there is one // non-stacked // in between if (vals == null) { - if (!viewPortHandler.isInBoundsTop(buffer.buffer[bufferIndex + 1])) + if (!viewPortHandler!.isInBoundsTop(buffer!.buffer![bufferIndex + 1])) break; - if (!viewPortHandler.isInBoundsX(buffer.buffer[bufferIndex])) + if (!viewPortHandler!.isInBoundsX(buffer.buffer![bufferIndex])) continue; - if (!viewPortHandler - .isInBoundsBottom(buffer.buffer[bufferIndex + 1])) continue; + if (!viewPortHandler! + .isInBoundsBottom(buffer.buffer![bufferIndex + 1])) continue; - String formattedValue = formatter.getBarLabel(entry); + String formattedValue = formatter!.getBarLabel(entry); // calculate the correct offset depending on the draw position of the value double valueTextWidth = - Utils.calcTextWidth(valuePaint, formattedValue).toDouble(); + Utils.calcTextWidth(valuePaint!, formattedValue).toDouble(); posOffset = (drawValueAboveBar ? valueOffsetPlus - : -(valueTextWidth + valueOffsetPlus)); + : -(valueTextWidth + valueOffsetPlus!)); negOffset = (drawValueAboveBar - ? -(valueTextWidth + valueOffsetPlus) + ? -(valueTextWidth + valueOffsetPlus!) : valueOffsetPlus); if (isInverted) { - posOffset = -posOffset - valueTextWidth; - negOffset = -negOffset - valueTextWidth; + posOffset = -posOffset! - valueTextWidth; + negOffset = -negOffset! - valueTextWidth; } if (dataSet.isDrawValuesEnabled()) { drawValue( c, formattedValue, - buffer.buffer[bufferIndex + 2] + - (entry.y >= 0 ? posOffset : negOffset), - buffer.buffer[bufferIndex + 1], + buffer.buffer![bufferIndex + 2]! + + (entry.y! >= 0 ? posOffset! : negOffset!), + buffer.buffer![bufferIndex + 1]!, color, dataSet.getValueTextSize(), dataSet.getValueTypeface()); } if (entry.mIcon != null && dataSet.isDrawIconsEnabled()) { - double px = buffer.buffer[bufferIndex + 2] + - (entry.y >= 0 ? posOffset : negOffset); - double py = buffer.buffer[bufferIndex + 1]; + double px = buffer.buffer![bufferIndex + 2]! + + (entry.y! >= 0 ? posOffset! : negOffset!); + double py = buffer.buffer![bufferIndex + 1]!; - px += iconsOffset.x; - py += iconsOffset.y; + px += iconsOffset.x!; + py += iconsOffset.y!; CanvasUtils.drawImage( - c, Offset(px, py), entry.mIcon, Size(15, 15), drawPaint); + c, Offset(px, py), entry.mIcon!, Size(15, 15), drawPaint!); } } else { - List transformed = List(vals.length * 2); + List transformed = List(vals.length * 2); double posY = 0; - double negY = -entry.negativeSum; + double negY = -entry.negativeSum!; for (int k = 0, idx = 0; k < transformed.length; k += 2, idx++) { double value = vals[idx]; @@ -313,40 +313,40 @@ class HorizontalBarChartRenderer extends BarChartRenderer { transformed[k] = y * phaseY; } - trans.pointValuesToPixel(transformed); + trans!.pointValuesToPixel(transformed); for (int k = 0; k < transformed.length; k += 2) { final double val = vals[k ~/ 2]; - String formattedValue = formatter.getBarStackedLabel(val, entry); + String formattedValue = formatter!.getBarStackedLabel(val, entry); // calculate the correct offset depending on the draw position of the value double valueTextWidth = - Utils.calcTextWidth(valuePaint, formattedValue).toDouble(); + Utils.calcTextWidth(valuePaint!, formattedValue).toDouble(); posOffset = (drawValueAboveBar ? valueOffsetPlus - : -(valueTextWidth + valueOffsetPlus)); + : -(valueTextWidth + valueOffsetPlus!)); negOffset = (drawValueAboveBar - ? -(valueTextWidth + valueOffsetPlus) + ? -(valueTextWidth + valueOffsetPlus!) : valueOffsetPlus); if (isInverted) { - posOffset = -posOffset - valueTextWidth; - negOffset = -negOffset - valueTextWidth; + posOffset = -posOffset! - valueTextWidth; + negOffset = -negOffset! - valueTextWidth; } final bool drawBelow = (val == 0.0 && negY == 0.0 && posY > 0.0) || val < 0.0; - double x = transformed[k] + (drawBelow ? negOffset : posOffset); - double y = (buffer.buffer[bufferIndex + 1] + - buffer.buffer[bufferIndex + 3]) / + double x = transformed[k]! + (drawBelow ? negOffset! : posOffset!); + double y = (buffer!.buffer![bufferIndex + 1]! + + buffer.buffer![bufferIndex + 3]!) / 2; - if (!viewPortHandler.isInBoundsTop(y)) break; + if (!viewPortHandler!.isInBoundsTop(y)) break; - if (!viewPortHandler.isInBoundsX(x)) continue; + if (!viewPortHandler!.isInBoundsX(x)) continue; - if (!viewPortHandler.isInBoundsBottom(y)) continue; + if (!viewPortHandler!.isInBoundsBottom(y)) continue; if (dataSet.isDrawValuesEnabled()) { drawValue(c, formattedValue, x, y, color, @@ -356,10 +356,10 @@ class HorizontalBarChartRenderer extends BarChartRenderer { if (entry.mIcon != null && dataSet.isDrawIconsEnabled()) { CanvasUtils.drawImage( c, - Offset(x + iconsOffset.x, y + iconsOffset.y), - entry.mIcon, + Offset(x + iconsOffset.x!, y + iconsOffset.y!), + entry.mIcon!, Size(15, 15), - drawPaint); + drawPaint!); } } } @@ -376,11 +376,11 @@ class HorizontalBarChartRenderer extends BarChartRenderer { @override void drawValue(Canvas c, String valueText, double x, double y, Color color, - double textSize, TypeFace typeFace) { + double? textSize, TypeFace? typeFace) { valuePaint = PainterUtils.create(valuePaint, valueText, color, textSize, fontFamily: typeFace?.fontFamily, fontWeight: typeFace?.fontWeight); - valuePaint.layout(); - valuePaint.paint(c, Offset(x, y - valuePaint.height / 2)); + valuePaint!.layout(); + valuePaint!.paint(c, Offset(x, y - valuePaint!.height / 2)); } @override @@ -392,7 +392,7 @@ class HorizontalBarChartRenderer extends BarChartRenderer { double right = y2; barRect = trans.rectToPixelPhaseHorizontal( - Rect.fromLTRB(left, top, right, bottom), animator.getPhaseY()); + Rect.fromLTRB(left, top, right, bottom), animator!.getPhaseY()); } @override @@ -402,7 +402,7 @@ class HorizontalBarChartRenderer extends BarChartRenderer { @override bool isDrawingValuesAllowed(ChartInterface chart) { - return chart.getData().getEntryCount() < - chart.getMaxVisibleCount() * viewPortHandler.getScaleY(); + return chart.getData()!.getEntryCount() < + chart.getMaxVisibleCount() * viewPortHandler!.getScaleY(); } } diff --git a/mp_chart/lib/mp/core/render/i_shape_renderer.dart b/mp_chart/lib/mp/core/render/i_shape_renderer.dart index c765c07d..e876a056 100644 --- a/mp_chart/lib/mp/core/render/i_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/i_shape_renderer.dart @@ -15,8 +15,8 @@ mixin IShapeRenderer { void renderShape( Canvas c, IScatterDataSet dataSet, - ViewPortHandler viewPortHandler, - double posX, - double posY, - Paint renderPaint); + ViewPortHandler? viewPortHandler, + double? posX, + double? posY, + Paint? renderPaint); } diff --git a/mp_chart/lib/mp/core/render/legend_renderer.dart b/mp_chart/lib/mp/core/render/legend_renderer.dart index c1a803ee..a2fbe0e4 100644 --- a/mp_chart/lib/mp/core/render/legend_renderer.dart +++ b/mp_chart/lib/mp/core/render/legend_renderer.dart @@ -21,15 +21,15 @@ import 'package:mp_chart/mp/core/view_port.dart'; class LegendRenderer extends Renderer { /// paint for the legend labels - TextPainter _legendLabelPaint; + TextPainter? _legendLabelPaint; /// paint used for the legend forms - Paint _legendFormPaint; + Paint? _legendFormPaint; /// the legend object this renderer renders - Legend _legend; + Legend? _legend; - LegendRenderer(ViewPortHandler viewPortHandler, Legend legend) + LegendRenderer(ViewPortHandler? viewPortHandler, Legend? legend) : super(viewPortHandler) { this._legend = legend; @@ -42,44 +42,44 @@ class LegendRenderer extends Renderer { } // ignore: unnecessary_getters_setters - Paint get legendFormPaint => _legendFormPaint; + Paint? get legendFormPaint => _legendFormPaint; // ignore: unnecessary_getters_setters - set legendFormPaint(Paint value) { + set legendFormPaint(Paint? value) { _legendFormPaint = value; } - Legend get legend => _legend; + Legend? get legend => _legend; // ignore: unnecessary_getters_setters - TextPainter get legendLabelPaint => _legendLabelPaint; + TextPainter? get legendLabelPaint => _legendLabelPaint; // ignore: unnecessary_getters_setters - set legendLabelPaint(TextPainter value) { + set legendLabelPaint(TextPainter? value) { _legendLabelPaint = value; } - List _computedEntries = List(16); + List _computedEntries = List(16); /// Prepares the legend and calculates all needed forms, labels and colors. /// /// @param data - void computeLegend(ChartData data) { - if (!_legend.isLegendCustom) { + void computeLegend(ChartData? data) { + if (!_legend!.isLegendCustom) { _computedEntries = List(); // loop for building up the colors and labels used in the legend - for (int i = 0; i < data.getDataSetCount(); i++) { - IDataSet dataSet = data.getDataSetByIndex(i); + for (int i = 0; i < data!.getDataSetCount(); i++) { + IDataSet dataSet = data.getDataSetByIndex(i)!; - List clrs = dataSet.getColors(); + List? clrs = dataSet.getColors(); int entryCount = dataSet.getEntryCount(); if (dataSet is IBarDataSet && dataSet.isStacked()) { IBarDataSet bds = dataSet; List sLabels = bds.getStackLabels(); - for (int j = 0; j < clrs.length && j < bds.getStackSize(); j++) { + for (int j = 0; j < clrs!.length && j < bds.getStackSize(); j++) { _computedEntries.add(LegendEntry( sLabels[j % sLabels.length], dataSet.getForm(), @@ -102,9 +102,9 @@ class LegendRenderer extends Renderer { } else if (dataSet is IPieDataSet) { IPieDataSet pds = dataSet; - for (int j = 0; j < clrs.length && j < entryCount; j++) { + for (int j = 0; j < clrs!.length && j < entryCount; j++) { _computedEntries.add(LegendEntry( - pds.getEntryForIndex(j).label, + pds.getEntryForIndex(j)!.label, dataSet.getForm(), dataSet.getFormSize(), dataSet.getFormLineWidth(), @@ -145,15 +145,15 @@ class LegendRenderer extends Renderer { } else { // all others - for (int j = 0; j < clrs.length && j < entryCount; j++) { - String label; + for (int j = 0; j < clrs!.length && j < entryCount; j++) { + String? label; // if multiple colors are set for a DataSet, group them if (j < clrs.length - 1 && j < entryCount - 1) { label = null; } else { // add label to the last entry - label = data.getDataSetByIndex(i).getLabel(); + label = data.getDataSetByIndex(i)!.getLabel(); } _computedEntries.add(LegendEntry( @@ -167,93 +167,93 @@ class LegendRenderer extends Renderer { } } - if (_legend.extraEntries != null) { - _computedEntries.addAll(_legend.extraEntries); + if (_legend!.extraEntries != null) { + _computedEntries.addAll(_legend!.extraEntries!); } - _legend.entries = (_computedEntries); + _legend!.entries = (_computedEntries); } _legendLabelPaint = getLabelPainter(); // calculate all dimensions of the _legend - _legend.calculateDimensions(_legendLabelPaint, viewPortHandler); + _legend!.calculateDimensions(_legendLabelPaint, viewPortHandler); } TextPainter getLabelPainter() { - var fontFamily = _legend.typeface?.fontFamily; - var fontWeight = _legend.typeface?.fontWeight; - return PainterUtils.create(_legendLabelPaint, null, _legend.textColor, _legend.textSize, + var fontFamily = _legend!.typeface?.fontFamily; + var fontWeight = _legend!.typeface?.fontWeight; + return PainterUtils.create(_legendLabelPaint, null, _legend!.textColor, _legend!.textSize, fontFamily: fontFamily, fontWeight: fontWeight); } void renderLegend(Canvas c) { - if (!_legend.enabled) return; + if (!_legend!.enabled) return; _legendLabelPaint = getLabelPainter(); - double labelLineHeight = Utils.getLineHeight1(_legendLabelPaint); - double labelLineSpacing = Utils.getLineSpacing1(_legendLabelPaint) + - Utils.convertDpToPixel(_legend.yEntrySpace); + double labelLineHeight = Utils.getLineHeight1(_legendLabelPaint!); + double labelLineSpacing = Utils.getLineSpacing1(_legendLabelPaint!) + + Utils.convertDpToPixel(_legend!.yEntrySpace)!; double formYOffset = - labelLineHeight - Utils.calcTextHeight(_legendLabelPaint, "ABC") / 2; + labelLineHeight - Utils.calcTextHeight(_legendLabelPaint!, "ABC") / 2; - List entries = _legend.entries; + List entries = _legend!.entries; - double formToTextSpace = Utils.convertDpToPixel(_legend.formToTextSpace); - double xEntrySpace = Utils.convertDpToPixel(_legend.xEntrySpace); - LegendOrientation orientation = _legend.orientation; - LegendHorizontalAlignment horizontalAlignment = _legend.horizontalAlignment; - LegendVerticalAlignment verticalAlignment = _legend.verticalAlignment; - LegendDirection direction = _legend.direction; - double defaultFormSize = Utils.convertDpToPixel(_legend.formSize); + double? formToTextSpace = Utils.convertDpToPixel(_legend!.formToTextSpace); + double? xEntrySpace = Utils.convertDpToPixel(_legend!.xEntrySpace); + LegendOrientation orientation = _legend!.orientation; + LegendHorizontalAlignment horizontalAlignment = _legend!.horizontalAlignment; + LegendVerticalAlignment verticalAlignment = _legend!.verticalAlignment; + LegendDirection direction = _legend!.direction; + double? defaultFormSize = Utils.convertDpToPixel(_legend!.formSize); // space between the entries - double stackSpace = Utils.convertDpToPixel(_legend.stackSpace); + double? stackSpace = Utils.convertDpToPixel(_legend!.stackSpace); - double yoffset = _legend.yOffset; - double xoffset = _legend.xOffset; - double originPosX = 0; + double? yoffset = _legend!.yOffset; + double? xoffset = _legend!.xOffset; + double? originPosX = 0; switch (horizontalAlignment) { case LegendHorizontalAlignment.LEFT: if (orientation == LegendOrientation.VERTICAL) originPosX = xoffset; else - originPosX = viewPortHandler.contentLeft() + xoffset; + originPosX = viewPortHandler!.contentLeft() + xoffset!; if (direction == LegendDirection.RIGHT_TO_LEFT) - originPosX += _legend.neededWidth; + originPosX += _legend!.neededWidth; break; case LegendHorizontalAlignment.RIGHT: if (orientation == LegendOrientation.VERTICAL) - originPosX = viewPortHandler.getChartWidth() - xoffset; + originPosX = viewPortHandler!.getChartWidth() - xoffset!; else - originPosX = viewPortHandler.contentRight() - xoffset; + originPosX = viewPortHandler!.contentRight() - xoffset!; if (direction == LegendDirection.LEFT_TO_RIGHT) - originPosX -= _legend.neededWidth; + originPosX -= _legend!.neededWidth; break; case LegendHorizontalAlignment.CENTER: if (orientation == LegendOrientation.VERTICAL) - originPosX = viewPortHandler.getChartWidth() / 2; + originPosX = viewPortHandler!.getChartWidth() / 2; else - originPosX = viewPortHandler.contentLeft() + - viewPortHandler.contentWidth() / 2; + originPosX = viewPortHandler!.contentLeft() + + viewPortHandler!.contentWidth() / 2; originPosX += - (direction == LegendDirection.LEFT_TO_RIGHT ? xoffset : -xoffset); + (direction == LegendDirection.LEFT_TO_RIGHT ? xoffset! : -xoffset!); // Horizontally layed out legends do the center offset on a line basis, // So here we offset the vertical ones only. if (orientation == LegendOrientation.VERTICAL) { originPosX += (direction == LegendDirection.LEFT_TO_RIGHT - ? -_legend.neededWidth / 2.0 + xoffset - : _legend.neededWidth / 2.0 - xoffset); + ? -_legend!.neededWidth / 2.0 + xoffset + : _legend!.neededWidth / 2.0 - xoffset); } break; @@ -262,13 +262,13 @@ class LegendRenderer extends Renderer { switch (orientation) { case LegendOrientation.HORIZONTAL: { - List calculatedLineSizes = _legend.calculatedLineSizes; - List calculatedLabelSizes = _legend.calculatedLabelSizes; - List calculatedLabelBreakPoints = - _legend.calculatedLabelBreakPoints; + List calculatedLineSizes = _legend!.calculatedLineSizes; + List calculatedLabelSizes = _legend!.calculatedLabelSizes; + List calculatedLabelBreakPoints = + _legend!.calculatedLabelBreakPoints; - double posX = originPosX; - double posY = 0; + double? posX = originPosX; + double? posY = 0; switch (verticalAlignment) { case LegendVerticalAlignment.TOP: @@ -276,29 +276,29 @@ class LegendRenderer extends Renderer { break; case LegendVerticalAlignment.BOTTOM: - posY = viewPortHandler.getChartHeight() - - yoffset - - _legend.neededHeight; + posY = viewPortHandler!.getChartHeight() - + yoffset! - + _legend!.neededHeight; break; case LegendVerticalAlignment.CENTER: - posY = (viewPortHandler.getChartHeight() - _legend.neededHeight) / + posY = (viewPortHandler!.getChartHeight() - _legend!.neededHeight) / 2 + - yoffset; + yoffset!; break; } int lineIndex = 0; for (int i = 0, count = entries.length; i < count; i++) { - LegendEntry e = entries[i]; + LegendEntry e = entries[i]!; bool drawingForm = e.form != LegendForm.NONE; - double formSize = e.formSize.isNaN + double? formSize = e.formSize.isNaN ? defaultFormSize : Utils.convertDpToPixel(e.formSize); if (i < calculatedLabelBreakPoints.length && - calculatedLabelBreakPoints[i]) { + calculatedLabelBreakPoints[i]!) { posX = originPosX; posY += labelLineHeight + labelLineSpacing; } @@ -307,8 +307,8 @@ class LegendRenderer extends Renderer { horizontalAlignment == LegendHorizontalAlignment.CENTER && lineIndex < calculatedLineSizes.length) { posX += (direction == LegendDirection.RIGHT_TO_LEFT - ? calculatedLineSizes[lineIndex].width - : -calculatedLineSizes[lineIndex].width) / + ? calculatedLineSizes[lineIndex]!.width + : -calculatedLineSizes[lineIndex]!.width) / 2; lineIndex++; } @@ -316,34 +316,34 @@ class LegendRenderer extends Renderer { bool isStacked = e.label == null; // grouped forms have null labels if (drawingForm) { - if (direction == LegendDirection.RIGHT_TO_LEFT) posX -= formSize; + if (direction == LegendDirection.RIGHT_TO_LEFT) posX -= formSize!; - drawForm(c, posX, posY + formYOffset, e, _legend); + drawForm(c, posX, posY! + formYOffset, e, _legend); - if (direction == LegendDirection.LEFT_TO_RIGHT) posX += formSize; + if (direction == LegendDirection.LEFT_TO_RIGHT) posX += formSize!; } if (!isStacked) { if (drawingForm) posX += direction == LegendDirection.RIGHT_TO_LEFT - ? -formToTextSpace - : formToTextSpace; + ? -formToTextSpace! + : formToTextSpace!; if (direction == LegendDirection.RIGHT_TO_LEFT) - posX -= calculatedLabelSizes[i].width; + posX -= calculatedLabelSizes[i]!.width; - drawLabel(c, posX, posY + labelLineHeight, e.label); + drawLabel(c, posX!, posY! + labelLineHeight, e.label); if (direction == LegendDirection.LEFT_TO_RIGHT) - posX += calculatedLabelSizes[i].width; + posX += calculatedLabelSizes[i]!.width; posX += direction == LegendDirection.RIGHT_TO_LEFT - ? -xEntrySpace - : xEntrySpace; + ? -xEntrySpace! + : xEntrySpace!; } else posX += direction == LegendDirection.RIGHT_TO_LEFT - ? -stackSpace - : stackSpace; + ? -stackSpace! + : stackSpace!; } break; @@ -360,66 +360,66 @@ class LegendRenderer extends Renderer { case LegendVerticalAlignment.TOP: posY = (horizontalAlignment == LegendHorizontalAlignment.CENTER ? 0 - : viewPortHandler.contentTop()); - posY += yoffset; + : viewPortHandler!.contentTop()); + posY += yoffset!; break; case LegendVerticalAlignment.BOTTOM: posY = (horizontalAlignment == LegendHorizontalAlignment.CENTER - ? viewPortHandler.getChartHeight() - : viewPortHandler.contentBottom()); - posY -= _legend.neededHeight + yoffset; + ? viewPortHandler!.getChartHeight() + : viewPortHandler!.contentBottom()); + posY -= _legend!.neededHeight + yoffset!; break; case LegendVerticalAlignment.CENTER: - posY = viewPortHandler.getChartHeight() / 2 - - _legend.neededHeight / 2 + - _legend.yOffset; + posY = viewPortHandler!.getChartHeight() / 2 - + _legend!.neededHeight / 2 + + _legend!.yOffset!; break; } for (int i = 0; i < entries.length; i++) { - LegendEntry e = entries[i]; + LegendEntry e = entries[i]!; bool drawingForm = e.form != LegendForm.NONE; - double formSize = e.formSize.isNaN + double? formSize = e.formSize.isNaN ? defaultFormSize : Utils.convertDpToPixel(e.formSize); - double posX = originPosX; + double? posX = originPosX; if (drawingForm) { if (direction == LegendDirection.LEFT_TO_RIGHT) posX += stack; else - posX -= formSize - stack; + posX -= formSize! - stack; drawForm(c, posX, posY + formYOffset, e, _legend); - if (direction == LegendDirection.LEFT_TO_RIGHT) posX += formSize; + if (direction == LegendDirection.LEFT_TO_RIGHT) posX += formSize!; } if (e.label != null) { if (drawingForm && !wasStacked) posX += direction == LegendDirection.LEFT_TO_RIGHT - ? formToTextSpace - : -formToTextSpace; + ? formToTextSpace! + : -formToTextSpace!; else if (wasStacked) posX = originPosX; if (direction == LegendDirection.RIGHT_TO_LEFT) - posX -= Utils.calcTextWidth(_legendLabelPaint, e.label); + posX -= Utils.calcTextWidth(_legendLabelPaint!, e.label); if (!wasStacked) { - drawLabel(c, posX, posY + labelLineHeight, e.label); + drawLabel(c, posX!, posY + labelLineHeight, e.label); } else { posY += labelLineHeight + labelLineSpacing; - drawLabel(c, posX, posY + labelLineHeight, e.label); + drawLabel(c, posX!, posY + labelLineHeight, e.label); } // make a step down posY += labelLineHeight + labelLineSpacing; stack = 0; } else { - stack += formSize + stackSpace; + stack += formSize! + stackSpace!; wasStacked = true; } } @@ -439,17 +439,17 @@ class LegendRenderer extends Renderer { /// @param entry the entry to render /// @param legend the legend context void drawForm( - Canvas c, double x, double y, LegendEntry entry, Legend legend) { + Canvas c, double? x, double y, LegendEntry entry, Legend? legend) { if (entry.formColor == ColorUtils.COLOR_SKIP || entry.formColor == ColorUtils.COLOR_NONE) return; c.save(); LegendForm form = entry.form; - if (form == LegendForm.DEFAULT) form = legend.shape; + if (form == LegendForm.DEFAULT) form = legend!.shape; final double formSize = Utils.convertDpToPixel( - entry.formSize.isNaN ? legend.formSize : entry.formSize); + entry.formSize.isNaN ? legend!.formSize : entry.formSize)!; final double half = formSize / 2; switch (form) { @@ -467,7 +467,7 @@ class LegendRenderer extends Renderer { ..isAntiAlias = true ..color = entry.formColor ..style = PaintingStyle.fill; - c.drawCircle(Offset(x + half, y), half, _legendFormPaint); + c.drawCircle(Offset(x! + half, y), half, _legendFormPaint!); break; case LegendForm.SQUARE: @@ -475,19 +475,19 @@ class LegendRenderer extends Renderer { ..isAntiAlias = true ..color = entry.formColor ..style = PaintingStyle.fill; - c.drawRect(Rect.fromLTRB(x, y - half, x + formSize, y + half), - _legendFormPaint); + c.drawRect(Rect.fromLTRB(x!, y - half, x + formSize, y + half), + _legendFormPaint!); break; case LegendForm.LINE: { final double formLineWidth = Utils.convertDpToPixel( entry.formLineWidth.isNaN - ? legend.formLineWidth - : entry.formLineWidth); - final DashPathEffect formLineDashEffect = + ? legend!.formLineWidth + : entry.formLineWidth)!; + final DashPathEffect? formLineDashEffect = entry.formLineDashEffect == null - ? legend.getFormLineDashEffect() + ? legend!.getFormLineDashEffect() : entry.formLineDashEffect; _legendFormPaint = Paint() ..isAntiAlias = true @@ -495,22 +495,22 @@ class LegendRenderer extends Renderer { ..style = PaintingStyle.stroke ..strokeWidth = formLineWidth; _lineFormPath.reset(); - _lineFormPath.moveTo(x, y); + _lineFormPath.moveTo(x!, y); _lineFormPath.lineTo(x + formSize, y); if (formLineDashEffect != null) { _lineFormPath = formLineDashEffect.convert2DashPath(_lineFormPath); } - c.drawPath(_lineFormPath, _legendFormPaint); + c.drawPath(_lineFormPath, _legendFormPaint!); } break; } c.restore(); } - void drawLabel(Canvas c, double x, double y, String label) { - _legendLabelPaint.text = - TextSpan(text: label, style: _legendLabelPaint.text.style); - _legendLabelPaint.layout(); - _legendLabelPaint.paint(c, Offset(x, y - _legendLabelPaint.height)); + void drawLabel(Canvas c, double x, double y, String? label) { + _legendLabelPaint!.text = + TextSpan(text: label, style: _legendLabelPaint!.text!.style); + _legendLabelPaint!.layout(); + _legendLabelPaint!.paint(c, Offset(x, y - _legendLabelPaint!.height)); } } diff --git a/mp_chart/lib/mp/core/render/line_chart_renderer.dart b/mp_chart/lib/mp/core/render/line_chart_renderer.dart index 550f14d5..a52fb95a 100644 --- a/mp_chart/lib/mp/core/render/line_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/line_chart_renderer.dart @@ -25,10 +25,10 @@ import 'package:mp_chart/mp/core/poolable/point.dart'; import 'package:mp_chart/mp/core/utils/utils.dart'; class LineChartRenderer extends LineRadarRenderer { - LineDataProvider _provider; + LineDataProvider? _provider; /// paint for the inner circle of the value indicators - Paint _circlePaintInner; + Paint? _circlePaintInner; /** * Bitmap object used for drawing the paths (otherwise they are too long if @@ -48,8 +48,8 @@ class LineChartRenderer extends LineRadarRenderer { Path _cubicPath = Path(); Path _cubicFillPath = Path(); - LineChartRenderer(LineDataProvider chart, Animator animator, - ViewPortHandler viewPortHandler) + LineChartRenderer(LineDataProvider chart, Animator? animator, + ViewPortHandler? viewPortHandler) : super(animator, viewPortHandler) { _provider = chart; @@ -59,7 +59,7 @@ class LineChartRenderer extends LineRadarRenderer { ..color = ColorUtils.WHITE; } - LineDataProvider get provider => _provider; + LineDataProvider? get provider => _provider; @override void initBuffers() {} @@ -84,9 +84,9 @@ class LineChartRenderer extends LineRadarRenderer { // // drawBitmap.eraseColor(Color.TRANSPARENT); - LineData lineData = _provider.getLineData(); + LineData lineData = _provider!.getLineData()!; - for (ILineDataSet set in lineData.dataSets) { + for (ILineDataSet set in lineData.dataSets!) { if (set.isVisible()) drawDataSet(c, set); } // c.drawBitmap(drawBitmap, 0, 0, renderPaint); @@ -95,7 +95,7 @@ class LineChartRenderer extends LineRadarRenderer { void drawDataSet(Canvas c, ILineDataSet dataSet) { if (dataSet.getEntryCount() < 1) return; - renderPaint..strokeWidth = dataSet.getLineWidth(); + renderPaint..strokeWidth = dataSet.getLineWidth()!; switch (dataSet.getMode()) { case Mode.LINEAR: @@ -114,33 +114,33 @@ class LineChartRenderer extends LineRadarRenderer { } void drawHorizontalBezier(Canvas canvas, ILineDataSet dataSet) { - double phaseY = animator.getPhaseY(); - Transformer trans = _provider.getTransformer(dataSet.getAxisDependency()); + double phaseY = animator!.getPhaseY(); + Transformer? trans = _provider!.getTransformer(dataSet.getAxisDependency()); - xBounds.set(_provider, dataSet); + xBounds!.set(_provider!, dataSet); - List list = List(); + List list = List(); - if (xBounds.range >= 1) { - Entry prev = dataSet.getEntryForIndex(xBounds.min); + if (xBounds!.range! >= 1) { + Entry prev = dataSet.getEntryForIndex(xBounds!.min)!; Entry cur = prev; // let the spline start - _cubicPath.moveTo(cur.x, cur.y * phaseY); + _cubicPath.moveTo(cur.x!, cur.y! * phaseY); list.add(cur.x); - list.add(cur.y * phaseY); + list.add(cur.y! * phaseY); - for (int j = xBounds.min + 1; j <= xBounds.range + xBounds.min; j++) { + for (int j = xBounds!.min! + 1; j <= xBounds!.range! + xBounds!.min!; j++) { prev = cur; - cur = dataSet.getEntryForIndex(j); + cur = dataSet.getEntryForIndex(j)!; - final double cpx = (prev.x) + (cur.x - prev.x) / 2.0; + final double cpx = prev.x! + (cur.x! - prev.x!) / 2.0; list.add(cpx); - list.add(prev.y * phaseY); + list.add(prev.y! * phaseY); list.add(cpx); - list.add(cur.y * phaseY); + list.add(cur.y! * phaseY); list.add(cur.x); - list.add(cur.y * phaseY); + list.add(cur.y! * phaseY); } } @@ -152,24 +152,24 @@ class LineChartRenderer extends LineRadarRenderer { ..color = dataSet.getColor1() ..style = PaintingStyle.stroke; - trans.pointValuesToPixel(list); + trans!.pointValuesToPixel(list); _cubicPath.reset(); if (dataSet.isDrawFilledEnabled()) { _cubicFillPath.reset(); } - _cubicPath.moveTo(list[0], list[1]); + _cubicPath.moveTo(list[0]!, list[1]!); if (dataSet.isDrawFilledEnabled()) { - _cubicFillPath.moveTo(list[0], list[1]); + _cubicFillPath.moveTo(list[0]!, list[1]!); } int i = 2; - for (int j = xBounds.min + 1; j <= xBounds.range + xBounds.min; j++) { - _cubicPath.cubicTo(list[i], list[i + 1], list[i + 2], list[i + 3], - list[i + 4], list[i + 5]); + for (int j = xBounds!.min! + 1; j <= xBounds!.range! + xBounds!.min!; j++) { + _cubicPath.cubicTo(list[i]!, list[i + 1]!, list[i + 2]!, list[i + 3]!, + list[i + 4]!, list[i + 5]!); if (dataSet.isDrawFilledEnabled()) { - _cubicFillPath.cubicTo(list[i], list[i + 1], list[i + 2], list[i + 3], - list[i + 4], list[i + 5]); + _cubicFillPath.cubicTo(list[i]!, list[i + 1]!, list[i + 2]!, list[i + 3]!, + list[i + 4]!, list[i + 5]!); } i += 6; } @@ -177,27 +177,27 @@ class LineChartRenderer extends LineRadarRenderer { // if filled is enabled, close the path if (dataSet.isDrawFilledEnabled()) { // create a path, this is bad for performance - drawCubicFill(canvas, dataSet, _cubicFillPath, trans, xBounds); + drawCubicFill(canvas, dataSet, _cubicFillPath, trans, xBounds!); } if (dataSet.getDashPathEffect() != null) { - _cubicPath = dataSet.getDashPathEffect().convert2DashPath(_cubicPath); + _cubicPath = dataSet.getDashPathEffect()!.convert2DashPath(_cubicPath); } - canvas.drawPath(_cubicPath, renderPaint); + canvas.drawPath(_cubicPath, renderPaint!); } void drawCubicBezier(Canvas canvas, ILineDataSet dataSet) { - double phaseY = animator.getPhaseY(); + double phaseY = animator!.getPhaseY(); - Transformer trans = _provider.getTransformer(dataSet.getAxisDependency()); + Transformer? trans = _provider!.getTransformer(dataSet.getAxisDependency()); - xBounds.set(_provider, dataSet); + xBounds!.set(_provider!, dataSet); double intensity = dataSet.getCubicIntensity(); - List list = List(); + List list = List(); - if (xBounds.range >= 1) { + if (xBounds!.range! >= 1) { double prevDx = 0; double prevDy = 0; double curDx = 0; @@ -208,22 +208,22 @@ class LineChartRenderer extends LineRadarRenderer { // So in the starting `prev` and `cur`, go -2, -1 // And in the `lastIndex`, add +1 - final int firstIndex = xBounds.min + 1; + final int firstIndex = xBounds!.min! + 1; // final int lastIndex = xBounds.min + xBounds.range; - Entry prevPrev; - Entry prev = dataSet.getEntryForIndex(max(firstIndex - 2, 0)); - Entry cur = dataSet.getEntryForIndex(max(firstIndex - 1, 0)); - Entry next = cur; + Entry? prevPrev; + Entry? prev = dataSet.getEntryForIndex(max(firstIndex - 2, 0)); + Entry? cur = dataSet.getEntryForIndex(max(firstIndex - 1, 0)); + Entry? next = cur; int nextIndex = -1; if (cur == null) return; // let the spline start list.add(cur.x); - list.add(cur.y * phaseY); + list.add(cur.y! * phaseY); - for (int j = xBounds.min + 1; j <= xBounds.range + xBounds.min; j++) { + for (int j = xBounds!.min! + 1; j <= xBounds!.range! + xBounds!.min!; j++) { prevPrev = prev; prev = cur; cur = nextIndex == j ? next : dataSet.getEntryForIndex(j); @@ -231,17 +231,17 @@ class LineChartRenderer extends LineRadarRenderer { nextIndex = j + 1 < dataSet.getEntryCount() ? j + 1 : j; next = dataSet.getEntryForIndex(nextIndex); - prevDx = (cur.x - prevPrev.x) * intensity; - prevDy = (cur.y - prevPrev.y) * intensity; - curDx = (next.x - prev.x) * intensity; - curDy = (next.y - prev.y) * intensity; + prevDx = (cur!.x! - prevPrev!.x!) * intensity; + prevDy = (cur.y! - prevPrev.y!) * intensity; + curDx = (next!.x! - prev!.x!) * intensity; + curDy = (next.y! - prev.y!) * intensity; - list.add(prev.x + prevDx); - list.add((prev.y + prevDy) * phaseY); - list.add(cur.x - curDx); - list.add((cur.y - curDy) * phaseY); + list.add(prev.x! + prevDx); + list.add((prev.y! + prevDy) * phaseY); + list.add(cur.x! - curDx); + list.add((cur.y! - curDy) * phaseY); list.add(cur.x); - list.add(cur.y * phaseY); + list.add(cur.y! * phaseY); } } @@ -253,37 +253,37 @@ class LineChartRenderer extends LineRadarRenderer { ..color = dataSet.getColor1() ..style = PaintingStyle.stroke; - trans.pointValuesToPixel(list); + trans!.pointValuesToPixel(list); _cubicPath.reset(); if (dataSet.isDrawFilledEnabled()) { _cubicFillPath.reset(); } - _cubicPath.moveTo(list[0], list[1]); + _cubicPath.moveTo(list[0]!, list[1]!); if (dataSet.isDrawFilledEnabled()) { - _cubicFillPath.moveTo(list[0], list[1]); + _cubicFillPath.moveTo(list[0]!, list[1]!); } int i = 2; - for (int j = xBounds.min + 1; j <= xBounds.range + xBounds.min; j++) { - _cubicPath.cubicTo(list[i], list[i + 1], list[i + 2], list[i + 3], - list[i + 4], list[i + 5]); + for (int j = xBounds!.min! + 1; j <= xBounds!.range! + xBounds!.min!; j++) { + _cubicPath.cubicTo(list[i]!, list[i + 1]!, list[i + 2]!, list[i + 3]!, + list[i + 4]!, list[i + 5]!); if (dataSet.isDrawFilledEnabled()) { - _cubicFillPath.cubicTo(list[i], list[i + 1], list[i + 2], list[i + 3], - list[i + 4], list[i + 5]); + _cubicFillPath.cubicTo(list[i]!, list[i + 1]!, list[i + 2]!, list[i + 3]!, + list[i + 4]!, list[i + 5]!); } i += 6; } // if filled is enabled, close the path if (dataSet.isDrawFilledEnabled()) { - drawCubicFill(canvas, dataSet, _cubicFillPath, trans, xBounds); + drawCubicFill(canvas, dataSet, _cubicFillPath, trans, xBounds!); } if (dataSet.getDashPathEffect() != null) { - _cubicPath = dataSet.getDashPathEffect().convert2DashPath(_cubicPath); + _cubicPath = dataSet.getDashPathEffect()!.convert2DashPath(_cubicPath); } - canvas.drawPath(_cubicPath, renderPaint); + canvas.drawPath(_cubicPath, renderPaint!); } void drawCubicFill(Canvas c, ILineDataSet dataSet, Path spline, @@ -291,16 +291,16 @@ class LineChartRenderer extends LineRadarRenderer { double fillMin = dataSet.getFillFormatter().getFillLinePosition(dataSet, _provider); - List list = List(); - list.add(dataSet.getEntryForIndex(bounds.min + bounds.range).x); + List list = List(); + list.add(dataSet.getEntryForIndex(bounds.min! + bounds.range!)!.x); list.add(fillMin); - list.add(dataSet.getEntryForIndex(bounds.min).x); + list.add(dataSet.getEntryForIndex(bounds.min)!.x); list.add(fillMin); trans.pointValuesToPixel(list); - spline.lineTo(list[0], list[1]); - spline.lineTo(list[2], list[3]); + spline.lineTo(list[0]!, list[1]!); + spline.lineTo(list[2]!, list[3]!); spline.close(); // final Drawable drawable = dataSet.getFillDrawable(); @@ -309,8 +309,8 @@ class LineChartRenderer extends LineRadarRenderer { // } else { if (dataSet.isGradientEnabled()) { - drawFilledPath3(c, spline, dataSet.getGradientColor1().startColor.value, - dataSet.getGradientColor1().endColor.value, dataSet.getFillAlpha()); + drawFilledPath3(c, spline, dataSet.getGradientColor1()!.startColor.value, + dataSet.getGradientColor1()!.endColor.value, dataSet.getFillAlpha()); } else { drawFilledPath2( c, spline, dataSet.getFillColor().value, dataSet.getFillAlpha()); @@ -319,7 +319,7 @@ class LineChartRenderer extends LineRadarRenderer { // } } - List mLineBuffer = List(4); + List mLineBuffer = List(4); /// Draws a normal line. /// @@ -331,9 +331,9 @@ class LineChartRenderer extends LineRadarRenderer { final bool isDrawSteppedEnabled = dataSet.getMode() == Mode.STEPPED; final int pointsPerEntryPair = isDrawSteppedEnabled ? 4 : 2; - Transformer trans = _provider.getTransformer(dataSet.getAxisDependency()); + Transformer? trans = _provider!.getTransformer(dataSet.getAxisDependency()); - double phaseY = animator.getPhaseY(); + double phaseY = animator!.getPhaseY(); renderPaint..style = PaintingStyle.stroke; @@ -346,26 +346,26 @@ class LineChartRenderer extends LineRadarRenderer { // canvas = c; // } - xBounds.set(_provider, dataSet); + xBounds!.set(_provider!, dataSet); // if drawing filled is enabled if (dataSet.isDrawFilledEnabled() && entryCount > 0) { - drawLinearFill(canvas, dataSet, trans, xBounds); + drawLinearFill(canvas, dataSet, trans, xBounds!); } // more than 1 color - if (dataSet.getColors().length > 1) { + if (dataSet.getColors()!.length > 1) { if (mLineBuffer.length <= pointsPerEntryPair * 2) mLineBuffer = List(pointsPerEntryPair * 4); - for (int j = xBounds.min; j <= xBounds.range + xBounds.min; j++) { - Entry e = dataSet.getEntryForIndex(j); + for (int j = xBounds!.min!; j <= xBounds!.range! + xBounds!.min!; j++) { + Entry? e = dataSet.getEntryForIndex(j); if (e == null) continue; mLineBuffer[0] = e.x; - mLineBuffer[1] = e.y * phaseY; + mLineBuffer[1] = e.y! * phaseY; - if (j < xBounds.max) { + if (j < xBounds!.max!) { e = dataSet.getEntryForIndex(j + 1); if (e == null) break; @@ -376,25 +376,25 @@ class LineChartRenderer extends LineRadarRenderer { mLineBuffer[4] = mLineBuffer[2]; mLineBuffer[5] = mLineBuffer[3]; mLineBuffer[6] = e.x; - mLineBuffer[7] = e.y * phaseY; + mLineBuffer[7] = e.y! * phaseY; } else { mLineBuffer[2] = e.x; - mLineBuffer[3] = e.y * phaseY; + mLineBuffer[3] = e.y! * phaseY; } } else { mLineBuffer[2] = mLineBuffer[0]; mLineBuffer[3] = mLineBuffer[1]; } - trans.pointValuesToPixel(mLineBuffer); + trans!.pointValuesToPixel(mLineBuffer); - if (!viewPortHandler.isInBoundsRight(mLineBuffer[0])) break; + if (!viewPortHandler!.isInBoundsRight(mLineBuffer[0])) break; // make sure the lines don't do shitty things outside // bounds - if (!viewPortHandler.isInBoundsLeft(mLineBuffer[2]) || - (!viewPortHandler.isInBoundsTop(mLineBuffer[1]) && - !viewPortHandler.isInBoundsBottom(mLineBuffer[3]))) continue; + if (!viewPortHandler!.isInBoundsLeft(mLineBuffer[2]) || + (!viewPortHandler!.isInBoundsTop(mLineBuffer[1]) && + !viewPortHandler!.isInBoundsBottom(mLineBuffer[3]))) continue; // get the color that is set for this line-segment renderPaint..color = dataSet.getColor2(j); @@ -411,36 +411,36 @@ class LineChartRenderer extends LineRadarRenderer { mLineBuffer = List( max((entryCount) * pointsPerEntryPair, pointsPerEntryPair) * 4); - Entry e1, e2; + Entry? e1, e2; - e1 = dataSet.getEntryForIndex(xBounds.min); + e1 = dataSet.getEntryForIndex(xBounds!.min); if (e1 != null) { int j = 0; - for (int x = xBounds.min; x <= xBounds.range + xBounds.min; x++) { + for (int x = xBounds!.min!; x <= xBounds!.range! + xBounds!.min!; x++) { e1 = dataSet.getEntryForIndex(x == 0 ? 0 : (x - 1)); e2 = dataSet.getEntryForIndex(x); if (e1 == null || e2 == null) continue; mLineBuffer[j++] = e1.x; - mLineBuffer[j++] = e1.y * phaseY; + mLineBuffer[j++] = e1.y! * phaseY; if (isDrawSteppedEnabled) { mLineBuffer[j++] = e2.x; - mLineBuffer[j++] = e1.y * phaseY; + mLineBuffer[j++] = e1.y! * phaseY; mLineBuffer[j++] = e2.x; - mLineBuffer[j++] = e1.y * phaseY; + mLineBuffer[j++] = e1.y! * phaseY; } mLineBuffer[j++] = e2.x; - mLineBuffer[j++] = e2.y * phaseY; + mLineBuffer[j++] = e2.y! * phaseY; } if (j > 0) { - trans.pointValuesToPixel(mLineBuffer); + trans!.pointValuesToPixel(mLineBuffer); - final int size = max((xBounds.range + 1) * pointsPerEntryPair, + final int size = max((xBounds!.range! + 1) * pointsPerEntryPair, pointsPerEntryPair) * 2; @@ -460,9 +460,9 @@ class LineChartRenderer extends LineRadarRenderer { /// @param trans /// @param bounds void drawLinearFill( - Canvas c, ILineDataSet dataSet, Transformer trans, XBounds bounds) { - final int startingIndex = bounds.min; - final int endingIndex = bounds.range + bounds.min; + Canvas c, ILineDataSet dataSet, Transformer? trans, XBounds bounds) { + final int startingIndex = bounds.min!; + final int endingIndex = bounds.range! + bounds.min!; final int indexInterval = 128; int currentStartIndex = 0; @@ -481,15 +481,15 @@ class LineChartRenderer extends LineRadarRenderer { currentStartIndex, currentEndIndex, filled, - trans, + trans!, ); if (dataSet.isGradientEnabled()) { drawFilledPath3( c, filled, - dataSet.getGradientColor1().startColor.value, - dataSet.getGradientColor1().endColor.value, + dataSet.getGradientColor1()!.startColor.value, + dataSet.getGradientColor1()!.endColor.value, dataSet.getFillAlpha()); } else { drawFilledPath2( @@ -512,36 +512,36 @@ class LineChartRenderer extends LineRadarRenderer { final int endIndex, final Path outputPath, final Transformer trans) { final double fillMin = dataSet.getFillFormatter().getFillLinePosition(dataSet, _provider); - final double phaseY = animator.getPhaseY(); + final double phaseY = animator!.getPhaseY(); final bool isDrawSteppedEnabled = dataSet.getMode() == Mode.STEPPED; - List points = List(); + List points = List(); final Path filled = outputPath; filled.reset(); - final Entry entry = dataSet.getEntryForIndex(startIndex); + final Entry entry = dataSet.getEntryForIndex(startIndex)!; points.add(entry.x); points.add(fillMin); points.add(entry.x); - points.add(entry.y * phaseY); + points.add(entry.y! * phaseY); // filled.moveTo(entry.x, fillMin); // filled.lineTo(entry.x, entry.y * phaseY); // create a path - Entry currentEntry; - Entry previousEntry = entry; + Entry? currentEntry; + Entry? previousEntry = entry; for (int x = startIndex + 1; x <= endIndex; x++) { currentEntry = dataSet.getEntryForIndex(x); if (isDrawSteppedEnabled) { - points.add(currentEntry.x); - points.add(previousEntry.y * phaseY); + points.add(currentEntry!.x); + points.add(previousEntry!.y! * phaseY); // filled.lineTo(currentEntry.x, previousEntry.y * phaseY); } - points.add(currentEntry.x); - points.add(currentEntry.y * phaseY); + points.add(currentEntry!.x); + points.add(currentEntry.y! * phaseY); // filled.lineTo(currentEntry.x, currentEntry.y * phaseY); previousEntry = currentEntry; @@ -556,9 +556,9 @@ class LineChartRenderer extends LineRadarRenderer { trans.pointValuesToPixel(points); if (points.length > 2) { - filled.moveTo(points[0], points[1]); + filled.moveTo(points[0]!, points[1]!); for (int i = 2; i < points.length; i += 2) { - filled.lineTo(points[i], points[i + 1]); + filled.lineTo(points[i]!, points[i + 1]!); } } @@ -567,8 +567,8 @@ class LineChartRenderer extends LineRadarRenderer { @override void drawValues(Canvas c) { - if (isDrawingValuesAllowed(_provider)) { - List dataSets = _provider.getLineData().dataSets; + if (isDrawingValuesAllowed(_provider!)) { + List dataSets = _provider!.getLineData()!.dataSets!; for (int i = 0; i < dataSets.length; i++) { ILineDataSet dataSet = dataSets[i]; @@ -579,44 +579,44 @@ class LineChartRenderer extends LineRadarRenderer { applyValueTextStyle(dataSet); Transformer trans = - _provider.getTransformer(dataSet.getAxisDependency()); + _provider!.getTransformer(dataSet.getAxisDependency())!; // make sure the values do not interfear with the circles - int valOffset = (dataSet.getCircleRadius() * 1.75).toInt(); + int valOffset = (dataSet.getCircleRadius()! * 1.75).toInt(); if (!dataSet.isDrawCirclesEnabled()) valOffset = valOffset ~/ 2; - xBounds.set(_provider, dataSet); + xBounds!.set(_provider!, dataSet); - List positions = trans.generateTransformedValuesLine( + List positions = trans.generateTransformedValuesLine( dataSet, - animator.getPhaseX(), - animator.getPhaseY(), - xBounds.min, - xBounds.max); - ValueFormatter formatter = dataSet.getValueFormatter(); + animator!.getPhaseX(), + animator!.getPhaseY(), + xBounds!.min!, + xBounds!.max!); + ValueFormatter? formatter = dataSet.getValueFormatter(); MPPointF iconsOffset = MPPointF.getInstance3(dataSet.getIconsOffset()); iconsOffset.x = Utils.convertDpToPixel(iconsOffset.x); iconsOffset.y = Utils.convertDpToPixel(iconsOffset.y); for (int j = 0; j < positions.length; j += 2) { - double x = positions[j]; - double y = positions[j + 1]; + double? x = positions[j]; + double? y = positions[j + 1]; - if (!viewPortHandler.isInBoundsRight(x)) break; + if (!viewPortHandler!.isInBoundsRight(x)) break; - if (!viewPortHandler.isInBoundsLeft(x) || - !viewPortHandler.isInBoundsY(y)) continue; + if (!viewPortHandler!.isInBoundsLeft(x) || + !viewPortHandler!.isInBoundsY(y)) continue; - Entry entry = dataSet.getEntryForIndex(j ~/ 2 + xBounds.min); + Entry entry = dataSet.getEntryForIndex(j ~/ 2 + xBounds!.min!)!; if (dataSet.isDrawValuesEnabled()) { drawValue( c, - formatter.getPointLabel(entry), - x, - y - valOffset, + formatter!.getPointLabel(entry), + x!, + y! - valOffset, dataSet.getValueTextColor2(j ~/ 2), dataSet.getValueTextSize(), dataSet.getValueTypeface()); @@ -625,10 +625,10 @@ class LineChartRenderer extends LineRadarRenderer { if (entry.mIcon != null && dataSet.isDrawIconsEnabled()) { CanvasUtils.drawImage( c, - Offset(x + iconsOffset.x, y + iconsOffset.y), - entry.mIcon, + Offset(x! + iconsOffset.x!, y! + iconsOffset.y!), + entry.mIcon!, Size(15, 15), - drawPaint); + drawPaint!); } } @@ -639,12 +639,12 @@ class LineChartRenderer extends LineRadarRenderer { @override void drawValue(Canvas c, String valueText, double x, double y, Color color, - double textSize, TypeFace typeFace) { + double? textSize, TypeFace? typeFace) { valuePaint = PainterUtils.create(valuePaint, valueText, color, textSize, fontFamily: typeFace?.fontFamily, fontWeight: typeFace?.fontWeight); - valuePaint.layout(); - valuePaint.paint( - c, Offset(x - valuePaint.width / 2, y - valuePaint.height)); + valuePaint!.layout(); + valuePaint!.paint( + c, Offset(x - valuePaint!.width / 2, y - valuePaint!.height)); } @override @@ -658,20 +658,20 @@ class LineChartRenderer extends LineRadarRenderer { // HashMap mImageCaches = HashMap<>(); /// buffer for drawing the circles - List mCirclesBuffer = List(2); + List mCirclesBuffer = List(2); Map mImageCaches = Map(); void drawCircles(Canvas c) { renderPaint..style = PaintingStyle.fill; - double phaseY = animator.getPhaseY(); + double phaseY = animator!.getPhaseY(); mCirclesBuffer[0] = 0; mCirclesBuffer[1] = 0; - List dataSets = _provider.getLineData().dataSets; + List dataSets = _provider!.getLineData()!.dataSets!; - Transformer trans; + Transformer? trans; for (int i = 0; i < dataSets.length; i++) { ILineDataSet dataSet = dataSets[i]; @@ -681,53 +681,53 @@ class LineChartRenderer extends LineRadarRenderer { _circlePaintInner..color = dataSet.getCircleHoleColor(); - trans = _provider.getTransformer(dataSet.getAxisDependency()); - xBounds.set(_provider, dataSet); + trans = _provider!.getTransformer(dataSet.getAxisDependency()); + xBounds!.set(_provider!, dataSet); - double circleRadius = dataSet.getCircleRadius(); - double circleHoleRadius = dataSet.getCircleHoleRadius(); + double? circleRadius = dataSet.getCircleRadius(); + double? circleHoleRadius = dataSet.getCircleHoleRadius(); bool drawCircleHole = dataSet.isDrawCircleHoleEnabled() && - circleHoleRadius < circleRadius && + circleHoleRadius! < circleRadius! && circleHoleRadius > 0; bool drawTransparentCircleHole = drawCircleHole && dataSet.getCircleHoleColor() == ColorUtils.COLOR_NONE; - int boundsRangeCount = xBounds.range + xBounds.min; + int boundsRangeCount = xBounds!.range! + xBounds!.min!; - for (int j = xBounds.min; j <= boundsRangeCount; j++) { - Entry e = dataSet.getEntryForIndex(j); + for (int j = xBounds!.min!; j <= boundsRangeCount; j++) { + Entry? e = dataSet.getEntryForIndex(j); if (e == null) break; mCirclesBuffer[0] = e.x; - mCirclesBuffer[1] = e.y * phaseY; + mCirclesBuffer[1] = e.y! * phaseY; - trans.pointValuesToPixel(mCirclesBuffer); + trans!.pointValuesToPixel(mCirclesBuffer); - if (!viewPortHandler.isInBoundsRight(mCirclesBuffer[0])) break; + if (!viewPortHandler!.isInBoundsRight(mCirclesBuffer[0])) break; - if (!viewPortHandler.isInBoundsLeft(mCirclesBuffer[0]) || - !viewPortHandler.isInBoundsY(mCirclesBuffer[1])) continue; + if (!viewPortHandler!.isInBoundsLeft(mCirclesBuffer[0]) || + !viewPortHandler!.isInBoundsY(mCirclesBuffer[1])) continue; int colorCount = dataSet.getCircleColorCount(); - double circleRadius = dataSet.getCircleRadius(); - double circleHoleRadius = dataSet.getCircleHoleRadius(); + double? circleRadius = dataSet.getCircleRadius(); + double? circleHoleRadius = dataSet.getCircleHoleRadius(); renderPaint..color = dataSet.getCircleColor(i % colorCount); if (drawTransparentCircleHole) { - c.drawCircle(Offset(mCirclesBuffer[0], mCirclesBuffer[1]), - circleRadius, renderPaint); + c.drawCircle(Offset(mCirclesBuffer[0]!, mCirclesBuffer[1]!), + circleRadius!, renderPaint!); - c.drawCircle(Offset(mCirclesBuffer[0], mCirclesBuffer[1]), - circleHoleRadius, renderPaint); + c.drawCircle(Offset(mCirclesBuffer[0]!, mCirclesBuffer[1]!), + circleHoleRadius!, renderPaint!); } else { - c.drawCircle(Offset(mCirclesBuffer[0], mCirclesBuffer[1]), - circleRadius, renderPaint); + c.drawCircle(Offset(mCirclesBuffer[0]!, mCirclesBuffer[1]!), + circleRadius!, renderPaint!); if (drawCircleHole) { - c.drawCircle(Offset(mCirclesBuffer[0], mCirclesBuffer[1]), - circleHoleRadius, _circlePaintInner); + c.drawCircle(Offset(mCirclesBuffer[0]!, mCirclesBuffer[1]!), + circleHoleRadius!, _circlePaintInner!); } } } @@ -741,21 +741,21 @@ class LineChartRenderer extends LineRadarRenderer { } @override - void drawHighlighted(Canvas c, List indices) { - LineData lineData = _provider.getLineData(); + void drawHighlighted(Canvas c, List? indices) { + LineData? lineData = _provider!.getLineData(); - for (Highlight high in indices) { - ILineDataSet set = lineData.getDataSetByIndex(high.dataSetIndex); + for (Highlight high in indices!) { + ILineDataSet? set = lineData!.getDataSetByIndex(high.dataSetIndex); if (set == null || !set.isHighlightEnabled()) continue; - Entry e = set.getEntryForXValue2(high.x, high.y); + Entry? e = set.getEntryForXValue2(high.x, high.y); if (!isInBoundsX(e, set)) continue; - MPPointD pix = _provider - .getTransformer(set.getAxisDependency()) - .getPixelForValues(e.x, e.y * animator.getPhaseY()); + MPPointD pix = _provider! + .getTransformer(set.getAxisDependency())! + .getPixelForValues(e!.x, e.y! * animator!.getPhaseY()); high.setDraw(pix.x, pix.y); diff --git a/mp_chart/lib/mp/core/render/line_radar_renderer.dart b/mp_chart/lib/mp/core/render/line_radar_renderer.dart index 5c9790c3..37dfcd31 100644 --- a/mp_chart/lib/mp/core/render/line_radar_renderer.dart +++ b/mp_chart/lib/mp/core/render/line_radar_renderer.dart @@ -4,7 +4,7 @@ import 'package:mp_chart/mp/core/render/line_scatter_candle_radar_renderer.dart' import 'package:mp_chart/mp/core/view_port.dart'; abstract class LineRadarRenderer extends LineScatterCandleRadarRenderer { - LineRadarRenderer(Animator animator, ViewPortHandler viewPortHandler) + LineRadarRenderer(Animator? animator, ViewPortHandler? viewPortHandler) : super(animator, viewPortHandler); /// Draws the provided path in filled mode with the provided drawable. @@ -49,15 +49,15 @@ abstract class LineRadarRenderer extends LineScatterCandleRadarRenderer { // c.restore(); // } else { // save - var previous = renderPaint.style; - Color previousColor = renderPaint.color; + var previous = renderPaint!.style; + Color previousColor = renderPaint!.color; // set renderPaint ..style = PaintingStyle.fill ..color = Color(color); - c.drawPath(filledPath, renderPaint); + c.drawPath(filledPath, renderPaint!); // restore renderPaint @@ -78,8 +78,8 @@ abstract class LineRadarRenderer extends LineScatterCandleRadarRenderer { // c.restore(); // } else { // save - var previous = renderPaint.style; - Color previousColor = renderPaint.color; + var previous = renderPaint!.style; + Color previousColor = renderPaint!.color; final Gradient gradient = LinearGradient( begin: Alignment.topCenter, @@ -97,7 +97,7 @@ abstract class LineRadarRenderer extends LineScatterCandleRadarRenderer { bounds.height, )); - c.drawPath(filledPath, renderPaint); + c.drawPath(filledPath, renderPaint!); // restore renderPaint diff --git a/mp_chart/lib/mp/core/render/line_scatter_candle_radar_renderer.dart b/mp_chart/lib/mp/core/render/line_scatter_candle_radar_renderer.dart index 5f179c84..8c9a2cb4 100644 --- a/mp_chart/lib/mp/core/render/line_scatter_candle_radar_renderer.dart +++ b/mp_chart/lib/mp/core/render/line_scatter_candle_radar_renderer.dart @@ -10,7 +10,7 @@ abstract class LineScatterCandleRadarRenderer Path _highlightLinePath = Path(); LineScatterCandleRadarRenderer( - Animator animator, ViewPortHandler viewPortHandler) + Animator? animator, ViewPortHandler? viewPortHandler) : super(animator, viewPortHandler); /// Draws vertical & horizontal highlight-lines if enabled. @@ -20,40 +20,40 @@ abstract class LineScatterCandleRadarRenderer /// @param y y-position of the highlight line intersection /// @param set the currently drawn dataset void drawHighlightLines( - Canvas c, double x, double y, ILineScatterCandleRadarDataSet set) { + Canvas c, double? x, double? y, ILineScatterCandleRadarDataSet set) { // set color and stroke-width highlightPaint ..color = set.getHighLightColor() - ..strokeWidth = set.getHighlightLineWidth(); + ..strokeWidth = set.getHighlightLineWidth()!; // draw vertical highlight lines if (set.isVerticalHighlightIndicatorEnabled()) { // create vertical path _highlightLinePath.reset(); - _highlightLinePath.moveTo(x, viewPortHandler.contentTop()); - _highlightLinePath.lineTo(x, viewPortHandler.contentBottom()); + _highlightLinePath.moveTo(x!, viewPortHandler!.contentTop()); + _highlightLinePath.lineTo(x, viewPortHandler!.contentBottom()); if (set.getDashPathEffectHighlight() != null) { _highlightLinePath = set - .getDashPathEffectHighlight() + .getDashPathEffectHighlight()! .convert2DashPath(_highlightLinePath); } - c.drawPath(_highlightLinePath, highlightPaint); + c.drawPath(_highlightLinePath, highlightPaint!); } // draw horizontal highlight lines if (set.isHorizontalHighlightIndicatorEnabled()) { // create horizontal path _highlightLinePath.reset(); - _highlightLinePath.moveTo(viewPortHandler.contentLeft(), y); - _highlightLinePath.lineTo(viewPortHandler.contentRight(), y); + _highlightLinePath.moveTo(viewPortHandler!.contentLeft(), y!); + _highlightLinePath.lineTo(viewPortHandler!.contentRight(), y); if (set.getDashPathEffectHighlight() != null) { _highlightLinePath = set - .getDashPathEffectHighlight() + .getDashPathEffectHighlight()! .convert2DashPath(_highlightLinePath); } - c.drawPath(_highlightLinePath, highlightPaint); + c.drawPath(_highlightLinePath, highlightPaint!); } } } diff --git a/mp_chart/lib/mp/core/render/pie_chart_renderer.dart b/mp_chart/lib/mp/core/render/pie_chart_renderer.dart index 400af40f..29486452 100644 --- a/mp_chart/lib/mp/core/render/pie_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/pie_chart_renderer.dart @@ -21,24 +21,24 @@ import 'package:mp_chart/mp/core/view_port.dart'; import 'package:mp_chart/mp/painter/pie_chart_painter.dart'; class PieChartRenderer extends DataRenderer { - PieChartPainter _painter; + PieChartPainter? _painter; /// paint for the hole in the center of the pie chart and the transparent /// circle - Paint _holePaint; - Paint _transparentCirclePaint; - Paint _valueLinePaint; + Paint? _holePaint; + Paint? _transparentCirclePaint; + Paint? _valueLinePaint; /// paint object for the text that can be displayed in the center of the /// chart - TextPainter _centerTextPaint; + TextPainter? _centerTextPaint; /// paint object used for drwing the slice-text - TextPainter _entryLabelsPaint; + TextPainter? _entryLabelsPaint; // StaticLayout _centerTextLayout; // ignore: unused_field - String _centerTextLastValue; + String? _centerTextLastValue; // ignore: unused_field Rect _centerTextLastBounds = Rect.zero; @@ -53,8 +53,8 @@ class PieChartRenderer extends DataRenderer { // Canvas mBitmapCanvas; PieChartRenderer( - PieChartPainter chart, Animator animator, ViewPortHandler viewPortHandler, - {TypeFace centerTextTypeface, TypeFace entryLabelTypeface}) + PieChartPainter chart, Animator? animator, ViewPortHandler? viewPortHandler, + {TypeFace? centerTextTypeface, TypeFace? entryLabelTypeface}) : super(animator, viewPortHandler) { _painter = chart; @@ -87,19 +87,19 @@ class PieChartRenderer extends DataRenderer { ..style = PaintingStyle.stroke; } - PieChartPainter get painter => _painter; + PieChartPainter? get painter => _painter; - Paint get holePaint => _holePaint; + Paint? get holePaint => _holePaint; - Paint get transparentCirclePaint => _transparentCirclePaint; + Paint? get transparentCirclePaint => _transparentCirclePaint; - TextPainter get centerTextPaint => _centerTextPaint; + TextPainter? get centerTextPaint => _centerTextPaint; // ignore: unnecessary_getters_setters - TextPainter get entryLabelsPaint => _entryLabelsPaint; + TextPainter? get entryLabelsPaint => _entryLabelsPaint; // ignore: unnecessary_getters_setters - set entryLabelsPaint(TextPainter value) { + set entryLabelsPaint(TextPainter? value) { _entryLabelsPaint = value; } @@ -127,9 +127,9 @@ class PieChartRenderer extends DataRenderer { // // drawBitmap.eraseColor(Color.TRANSPARENT); - PieData pieData = _painter.getData(); + PieData pieData = _painter!.getData() as PieData; - for (IPieDataSet set in pieData.dataSets) { + for (IPieDataSet set in pieData.dataSets!) { if (set.isVisible() && set.getEntryCount() > 0) drawDataSet(c, set); } } @@ -149,13 +149,13 @@ class PieChartRenderer extends DataRenderer { // Other point of the arc double arcEndPointX = - center.x + radius * cos((startAngle + sweepAngle) * Utils.FDEG2RAD); + center.x! + radius * cos((startAngle + sweepAngle) * Utils.FDEG2RAD); double arcEndPointY = - center.y + radius * sin((startAngle + sweepAngle) * Utils.FDEG2RAD); + center.y! + radius * sin((startAngle + sweepAngle) * Utils.FDEG2RAD); // Middle point on the arc - double arcMidPointX = center.x + radius * cos(angleMiddle * Utils.FDEG2RAD); - double arcMidPointY = center.y + radius * sin(angleMiddle * Utils.FDEG2RAD); + double arcMidPointX = center.x! + radius * cos(angleMiddle * Utils.FDEG2RAD); + double arcMidPointY = center.y! + radius * sin(angleMiddle * Utils.FDEG2RAD); // This is the base of the contained triangle double basePointsDistance = sqrt(pow(arcEndPointX - arcStartPointX, 2) + @@ -182,16 +182,16 @@ class PieChartRenderer extends DataRenderer { /// /// @param dataSet /// @return - double getSliceSpace(IPieDataSet dataSet) { + double? getSliceSpace(IPieDataSet dataSet) { if (!dataSet.isAutomaticallyDisableSliceSpacingEnabled()) return dataSet.getSliceSpace(); double spaceSizeRatio = - dataSet.getSliceSpace() / viewPortHandler.getSmallestContentExtension(); + dataSet.getSliceSpace()! / viewPortHandler!.getSmallestContentExtension(); double minValueRatio = - dataSet.getYMin() / (_painter.getData() as PieData).getYValueSum() * 2; + dataSet.getYMin()! / (_painter!.getData() as PieData).getYValueSum() * 2; - double sliceSpace = + double? sliceSpace = spaceSizeRatio > minValueRatio ? 0 : dataSet.getSliceSpace(); return sliceSpace; @@ -199,62 +199,62 @@ class PieChartRenderer extends DataRenderer { void drawDataSet(Canvas c, IPieDataSet dataSet) { double angle = 0; - double rotationAngle = _painter.getRotationAngle(); + double rotationAngle = _painter!.getRotationAngle(); - double phaseX = animator.getPhaseX(); - double phaseY = animator.getPhaseY(); + double phaseX = animator!.getPhaseX(); + double phaseY = animator!.getPhaseY(); - final Rect circleBox = _painter.getCircleBox(); + final Rect circleBox = _painter!.getCircleBox(); int entryCount = dataSet.getEntryCount(); - final List drawAngles = _painter.getDrawAngles(); - final MPPointF center = _painter.getCenterCircleBox(); - final double radius = _painter.getRadius(); - bool drawInnerArc = _painter.isDrawHoleEnabled() && - !_painter.isDrawSlicesUnderHoleEnabled(); + final List drawAngles = _painter!.getDrawAngles(); + final MPPointF center = _painter!.getCenterCircleBox(); + final double radius = _painter!.getRadius(); + bool drawInnerArc = _painter!.isDrawHoleEnabled() && + !_painter!.isDrawSlicesUnderHoleEnabled(); final double userInnerRadius = - drawInnerArc ? radius * (_painter.getHoleRadius() / 100.0) : 0.0; + drawInnerArc ? radius * (_painter!.getHoleRadius() / 100.0) : 0.0; final double roundedRadius = - (radius - (radius * _painter.getHoleRadius() / 100)) / 2; + (radius - (radius * _painter!.getHoleRadius() / 100)) / 2; Rect roundedCircleBox = Rect.zero; final bool drawRoundedSlices = - drawInnerArc && _painter.isDrawRoundedSlicesEnabled(); + drawInnerArc && _painter!.isDrawRoundedSlicesEnabled(); int visibleAngleCount = 0; for (int j = 0; j < entryCount; j++) { // draw only if the value is greater than zero - if ((dataSet.getEntryForIndex(j).getValue().abs() > + if ((dataSet.getEntryForIndex(j)!.getValue()!.abs() > Utils.FLOAT_EPSILON)) { visibleAngleCount++; } } - renderPaint..color = _painter.getHoleColor(); - c.drawCircle(Offset(center.x, center.y), radius, renderPaint); + renderPaint..color = _painter!.getHoleColor(); + c.drawCircle(Offset(center.x!, center.y!), radius, renderPaint!); - final double sliceSpace = + final double? sliceSpace = visibleAngleCount <= 1 ? 0.0 : getSliceSpace(dataSet); for (int j = 0; j < entryCount; j++) { - double sliceAngle = drawAngles[j]; + double? sliceAngle = drawAngles[j]; double innerRadius = userInnerRadius; - Entry e = dataSet.getEntryForIndex(j); + Entry e = dataSet.getEntryForIndex(j)!; // draw only if the value is greater than zero - if (!(e.y.abs() > Utils.FLOAT_EPSILON)) { - angle += sliceAngle * phaseX; + if (!(e.y!.abs() > Utils.FLOAT_EPSILON)) { + angle += sliceAngle! * phaseX; continue; } // Don't draw if it's highlighted, unless the chart uses rounded slices - if (_painter.needsHighlight(j) && !drawRoundedSlices) { - angle += sliceAngle * phaseX; + if (_painter!.needsHighlight(j) && !drawRoundedSlices) { + angle += sliceAngle! * phaseX; continue; } final bool accountForSliceSpacing = - sliceSpace > 0.0 && sliceAngle <= 180.0; + sliceSpace! > 0.0 && sliceAngle! <= 180.0; renderPaint..color = dataSet.getColor2(j); @@ -262,7 +262,7 @@ class PieChartRenderer extends DataRenderer { visibleAngleCount == 1 ? 0.0 : sliceSpace / (Utils.FDEG2RAD * radius); final double startAngleOuter = rotationAngle + (angle + sliceSpaceAngleOuter / 2.0) * phaseY; - double sweepAngleOuter = (sliceAngle - sliceSpaceAngleOuter) * phaseY; + double sweepAngleOuter = (sliceAngle! - sliceSpaceAngleOuter) * phaseY; if (sweepAngleOuter < 0.0) { sweepAngleOuter = 0.0; } @@ -270,24 +270,24 @@ class PieChartRenderer extends DataRenderer { mPathBuffer.reset(); if (drawRoundedSlices) { - double x = center.x + + double x = center.x! + (radius - roundedRadius) * cos(startAngleOuter * Utils.FDEG2RAD); - double y = center.y + + double y = center.y! + (radius - roundedRadius) * sin(startAngleOuter * Utils.FDEG2RAD); roundedCircleBox = Rect.fromLTRB(x - roundedRadius, y - roundedRadius, x + roundedRadius, y + roundedRadius); } double arcStartPointX = - center.x + radius * cos(startAngleOuter * Utils.FDEG2RAD); + center.x! + radius * cos(startAngleOuter * Utils.FDEG2RAD); double arcStartPointY = - center.y + radius * sin(startAngleOuter * Utils.FDEG2RAD); + center.y! + radius * sin(startAngleOuter * Utils.FDEG2RAD); if (sweepAngleOuter >= 360.0 && sweepAngleOuter % 360 <= Utils.FLOAT_EPSILON) { // Android is doing "mod 360" - mPathBuffer.addOval(Rect.fromLTRB(center.x - radius, center.y - radius, - center.x + radius, center.y + radius)); + mPathBuffer.addOval(Rect.fromLTRB(center.x! - radius, center.y! - radius, + center.x! + radius, center.y! + radius)); } else { if (drawRoundedSlices) { mPathBuffer.arcTo( @@ -303,10 +303,10 @@ class PieChartRenderer extends DataRenderer { // API < 21 does not receive doubles in addArc, but a RectF mInnerRectBuffer = Rect.fromLTRB( - center.x - innerRadius, - center.y - innerRadius, - center.x + innerRadius, - center.y + innerRadius); + center.x! - innerRadius, + center.y! - innerRadius, + center.x! + innerRadius, + center.y! + innerRadius); if (drawInnerArc && (innerRadius > 0.0 || accountForSliceSpacing)) { if (accountForSliceSpacing) { @@ -340,15 +340,15 @@ class PieChartRenderer extends DataRenderer { sweepAngleOuter % 360 <= Utils.FLOAT_EPSILON) { // Android is doing "mod 360" mPathBuffer.addOval(Rect.fromLTRB( - center.x - innerRadius, - center.y - innerRadius, - center.x + innerRadius, - center.y + innerRadius)); + center.x! - innerRadius, + center.y! - innerRadius, + center.x! + innerRadius, + center.y! + innerRadius)); } else { if (drawRoundedSlices) { - double x = center.x + + double x = center.x! + (radius - roundedRadius) * cos(endAngleInner * Utils.FDEG2RAD); - double y = center.y + + double y = center.y! + (radius - roundedRadius) * sin(endAngleInner * Utils.FDEG2RAD); roundedCircleBox = Rect.fromLTRB(x - roundedRadius, y - roundedRadius, x + roundedRadius, y + roundedRadius); @@ -365,8 +365,8 @@ class PieChartRenderer extends DataRenderer { startAngleOuter, sweepAngleOuter); mPathBuffer.lineTo( - center.x + sliceSpaceOffset * cos(angleMiddle * Utils.FDEG2RAD), - center.y + + center.x! + sliceSpaceOffset * cos(angleMiddle * Utils.FDEG2RAD), + center.y! + sliceSpaceOffset * sin(angleMiddle * Utils.FDEG2RAD)); } @@ -388,54 +388,54 @@ class PieChartRenderer extends DataRenderer { sweepAngleOuter); double arcEndPointX = - center.x + sliceSpaceOffset * cos(angleMiddle * Utils.FDEG2RAD); + center.x! + sliceSpaceOffset * cos(angleMiddle * Utils.FDEG2RAD); double arcEndPointY = - center.y + sliceSpaceOffset * sin(angleMiddle * Utils.FDEG2RAD); + center.y! + sliceSpaceOffset * sin(angleMiddle * Utils.FDEG2RAD); mPathBuffer.lineTo(arcEndPointX, arcEndPointY); } else { - mPathBuffer.lineTo(center.x, center.y); + mPathBuffer.lineTo(center.x!, center.y!); } } } mPathBuffer.close(); - c.drawPath(mPathBuffer, renderPaint); + c.drawPath(mPathBuffer, renderPaint!); angle += sliceAngle * phaseX; } - renderPaint..color = _painter.getHoleColor(); + renderPaint..color = _painter!.getHoleColor(); c.drawCircle( - Offset(center.x, center.y), mInnerRectBuffer.width / 2, renderPaint); + Offset(center.x!, center.y!), mInnerRectBuffer.width / 2, renderPaint!); MPPointF.recycleInstance(center); } @override void drawValues(Canvas c) { - MPPointF center = _painter.getCenterCircleBox(); + MPPointF center = _painter!.getCenterCircleBox(); // get whole the radius - double radius = _painter.getRadius(); - double rotationAngle = _painter.getRotationAngle(); - List drawAngles = _painter.getDrawAngles(); - List absoluteAngles = _painter.getAbsoluteAngles(); + double radius = _painter!.getRadius(); + double rotationAngle = _painter!.getRotationAngle(); + List drawAngles = _painter!.getDrawAngles(); + List absoluteAngles = _painter!.getAbsoluteAngles(); - double phaseX = animator.getPhaseX(); - double phaseY = animator.getPhaseY(); + double phaseX = animator!.getPhaseX(); + double phaseY = animator!.getPhaseY(); final double roundedRadius = - (radius - (radius * _painter.getHoleRadius() / 100)) / 2; - final double holeRadiusPercent = _painter.getHoleRadius() / 100.0; + (radius - (radius * _painter!.getHoleRadius() / 100)) / 2; + final double holeRadiusPercent = _painter!.getHoleRadius() / 100.0; double labelRadiusOffset = radius / 10 * 3.6; - if (_painter.isDrawHoleEnabled()) { + if (_painter!.isDrawHoleEnabled()) { labelRadiusOffset = (radius - (radius * holeRadiusPercent)) / 2; - if (!_painter.isDrawSlicesUnderHoleEnabled() && - _painter.isDrawRoundedSlicesEnabled()) { + if (!_painter!.isDrawSlicesUnderHoleEnabled() && + _painter!.isDrawRoundedSlicesEnabled()) { // Add curved circle slice and spacing to rotation angle, so that it sits nicely inside rotationAngle += roundedRadius * 360 / (pi * 2 * radius); } @@ -443,19 +443,19 @@ class PieChartRenderer extends DataRenderer { final double labelRadius = radius - labelRadiusOffset; - PieData data = _painter.getData(); - List dataSets = data.dataSets; + PieData data = _painter!.getData() as PieData; + List dataSets = data.dataSets!; double yValueSum = data.getYValueSum(); - bool drawEntryLabels = _painter.isDrawEntryLabelsEnabled(); + bool drawEntryLabels = _painter!.isDrawEntryLabelsEnabled(); double angle; int xIndex = 0; c.save(); - double offset = Utils.convertDpToPixel(5.0); + double? offset = Utils.convertDpToPixel(5.0); for (int i = 0; i < dataSets.length; i++) { IPieDataSet dataSet = dataSets[i]; @@ -471,33 +471,33 @@ class PieChartRenderer extends DataRenderer { applyValueTextStyle(dataSet); double lineHeight = - Utils.calcTextHeight(valuePaint, "Q") + Utils.convertDpToPixel(4); + Utils.calcTextHeight(valuePaint!, "Q") + Utils.convertDpToPixel(4)!; - ValueFormatter formatter = dataSet.getValueFormatter(); + ValueFormatter? formatter = dataSet.getValueFormatter(); int entryCount = dataSet.getEntryCount(); _valueLinePaint ..color = dataSet.getValueLineColor() - ..strokeWidth = Utils.convertDpToPixel(dataSet.getValueLineWidth()); + ..strokeWidth = Utils.convertDpToPixel(dataSet.getValueLineWidth())!; - final double sliceSpace = getSliceSpace(dataSet); + final double? sliceSpace = getSliceSpace(dataSet); MPPointF iconsOffset = MPPointF.getInstance3(dataSet.getIconsOffset()); iconsOffset.x = Utils.convertDpToPixel(iconsOffset.x); iconsOffset.y = Utils.convertDpToPixel(iconsOffset.y); for (int j = 0; j < entryCount; j++) { - PieEntry entry = dataSet.getEntryForIndex(j); + PieEntry entry = dataSet.getEntryForIndex(j)!; if (xIndex == 0) angle = 0.0; else - angle = absoluteAngles[xIndex - 1] * phaseX; + angle = absoluteAngles[xIndex - 1]! * phaseX; - final double sliceAngle = drawAngles[xIndex]; + final double sliceAngle = drawAngles[xIndex]!; final double sliceSpaceMiddleAngle = - sliceSpace / (Utils.FDEG2RAD * labelRadius); + sliceSpace! / (Utils.FDEG2RAD * labelRadius); // offset needed to center the drawn text in the slice final double angleOffset = @@ -507,13 +507,13 @@ class PieChartRenderer extends DataRenderer { final double transformedAngle = rotationAngle + angle * phaseY; - double value = _painter.isUsePercentValuesEnabled() - ? entry.y / yValueSum * 100 + double? value = _painter!.isUsePercentValuesEnabled() + ? entry.y! / yValueSum * 100 : entry.y; - String formattedValue = formatter.getPieLabel(value, entry); - String entryLabel = entry.label; - double entryLabelTextSize = entry.labelTextSize; - Color entryLabelColor = entry.labelColor; + String formattedValue = formatter!.getPieLabel(value, entry); + String? entryLabel = entry.label; + double? entryLabelTextSize = entry.labelTextSize; + Color? entryLabelColor = entry.labelColor; final double sliceXBase = cos(transformedAngle * Utils.FDEG2RAD); final double sliceYBase = sin(transformedAngle * Utils.FDEG2RAD); @@ -538,7 +538,7 @@ class PieChartRenderer extends DataRenderer { double line1Radius; - if (_painter.isDrawHoleEnabled()) + if (_painter!.isDrawHoleEnabled()) line1Radius = (radius - (radius * holeRadiusPercent)) * valueLinePart1OffsetPercentage + (radius * holeRadiusPercent); @@ -551,26 +551,26 @@ class PieChartRenderer extends DataRenderer { sin(transformedAngle * Utils.FDEG2RAD).abs() : labelRadius * valueLineLength2; - final double pt0x = line1Radius * sliceXBase + center.x; - final double pt0y = line1Radius * sliceYBase + center.y; + final double pt0x = line1Radius * sliceXBase + center.x!; + final double pt0y = line1Radius * sliceYBase + center.y!; final double pt1x = - labelRadius * (1 + valueLineLength1) * sliceXBase + center.x; + labelRadius * (1 + valueLineLength1) * sliceXBase + center.x!; final double pt1y = - labelRadius * (1 + valueLineLength1) * sliceYBase + center.y; + labelRadius * (1 + valueLineLength1) * sliceYBase + center.y!; if (transformedAngle % 360.0 >= 90.0 && transformedAngle % 360.0 <= 270.0) { pt2x = pt1x - polyline2Width; pt2y = pt1y; - labelPtx = pt2x - offset; + labelPtx = pt2x - offset!; labelPty = pt2y; } else { pt2x = pt1x + polyline2Width; pt2y = pt1y; - labelPtx = pt2x + offset; + labelPtx = pt2x + offset!; labelPty = pt2y; } @@ -579,8 +579,8 @@ class PieChartRenderer extends DataRenderer { _valueLinePaint..color = dataSet.getColor2(j); } - c.drawLine(Offset(pt0x, pt0y), Offset(pt1x, pt1y), _valueLinePaint); - c.drawLine(Offset(pt1x, pt1y), Offset(pt2x, pt2y), _valueLinePaint); + c.drawLine(Offset(pt0x, pt0y), Offset(pt1x, pt1y), _valueLinePaint!); + c.drawLine(Offset(pt1x, pt1y), Offset(pt2x, pt2y), _valueLinePaint!); } // draw everything, depending on settings @@ -621,8 +621,8 @@ class PieChartRenderer extends DataRenderer { if (drawXInside || drawYInside) { // calculate the text position - double x = labelRadius * sliceXBase + center.x; - double y = labelRadius * sliceYBase + center.y; + double x = labelRadius * sliceXBase + center.x!; + double y = labelRadius * sliceYBase + center.y!; // draw everything, depending on settings if (drawXInside && drawYInside) { @@ -660,12 +660,12 @@ class PieChartRenderer extends DataRenderer { } if (entry.mIcon != null && dataSet.isDrawIconsEnabled()) { - double x = (labelRadius + iconsOffset.y) * sliceXBase + center.x; - double y = (labelRadius + iconsOffset.y) * sliceYBase + center.y; - y += iconsOffset.x; + double x = (labelRadius + iconsOffset.y!) * sliceXBase + center.x!; + double y = (labelRadius + iconsOffset.y!) * sliceYBase + center.y!; + y += iconsOffset.x!; CanvasUtils.drawImage( - c, Offset(x, y), entry.mIcon, Size(15, 15), drawPaint); + c, Offset(x, y), entry.mIcon!, Size(15, 15), drawPaint!); } xIndex++; @@ -678,24 +678,24 @@ class PieChartRenderer extends DataRenderer { } void drawValueByHeight(Canvas c, String valueText, double x, double y, - Color color, bool useHeight, double textSize, TypeFace typeFace) { + Color color, bool useHeight, double? textSize, TypeFace? typeFace) { valuePaint = PainterUtils.create(valuePaint, valueText, color, textSize, fontFamily: typeFace?.fontFamily, fontWeight: typeFace?.fontWeight); - valuePaint.layout(); - valuePaint.paint( + valuePaint!.layout(); + valuePaint!.paint( c, Offset( - x - valuePaint.width / 2, useHeight ? y - valuePaint.height : y)); + x - valuePaint!.width / 2, useHeight ? y - valuePaint!.height : y)); } @override void drawValue(Canvas c, String valueText, double x, double y, Color color, - double textSize, TypeFace typeFace) { + double? textSize, TypeFace? typeFace) { valuePaint = PainterUtils.create(valuePaint, valueText, color, textSize, fontFamily: typeFace?.fontFamily, fontWeight: typeFace?.fontWeight); - valuePaint.layout(); - valuePaint.paint( - c, Offset(x - valuePaint.width / 2, y - valuePaint.height)); + valuePaint!.layout(); + valuePaint!.paint( + c, Offset(x - valuePaint!.width / 2, y - valuePaint!.height)); } /// Draws an entry label at the specified position. @@ -705,15 +705,15 @@ class PieChartRenderer extends DataRenderer { /// @param x /// @param y void drawEntryLabel(Canvas c, String label, double x, double y, - {double labelTextSize, Color labelColor}) { + {double? labelTextSize, Color? labelColor}) { _entryLabelsPaint = PainterUtils.create( _entryLabelsPaint, label, labelColor ?? ColorUtils.WHITE, labelTextSize ?? Utils.convertDpToPixel(10)); - _entryLabelsPaint.layout(); - _entryLabelsPaint.paint(c, - Offset(x - _entryLabelsPaint.width / 2, y - _entryLabelsPaint.height)); + _entryLabelsPaint!.layout(); + _entryLabelsPaint!.paint(c, + Offset(x - _entryLabelsPaint!.width / 2, y - _entryLabelsPaint!.height)); } @override @@ -729,10 +729,10 @@ class PieChartRenderer extends DataRenderer { /// hole void drawHole(Canvas c) { // if (_painter.isDrawHoleEnabled() && mBitmapCanvas != null) { - if (_painter.isDrawHoleEnabled()) { - double radius = _painter.getRadius(); - double holeRadius = radius * (_painter.getHoleRadius() / 100); - MPPointF center = _painter.getCenterCircleBox(); + if (_painter!.isDrawHoleEnabled()) { + double radius = _painter!.getRadius(); + double holeRadius = radius * (_painter!.getHoleRadius() / 100); + MPPointF center = _painter!.getCenterCircleBox(); // if (_holePaint.color.alpha > 0) { // // draw the hole-circle @@ -742,40 +742,40 @@ class PieChartRenderer extends DataRenderer { // } // only draw the circle if it can be seen (not covered by the hole) - if (_transparentCirclePaint.color.alpha > 0 && - _painter.getTransparentCircleRadius() > _painter.getHoleRadius()) { - int alpha = _transparentCirclePaint.color.alpha; + if (_transparentCirclePaint!.color.alpha > 0 && + _painter!.getTransparentCircleRadius() > _painter!.getHoleRadius()) { + int alpha = _transparentCirclePaint!.color.alpha; double secondHoleRadius = - radius * (_painter.getTransparentCircleRadius() / 100); + radius * (_painter!.getTransparentCircleRadius() / 100); - _transparentCirclePaint.color = Color.fromARGB( - (alpha * animator.getPhaseX() * animator.getPhaseY()).toInt(), - _transparentCirclePaint.color.red, - _transparentCirclePaint.color.green, - _transparentCirclePaint.color.blue); + _transparentCirclePaint!.color = Color.fromARGB( + (alpha * animator!.getPhaseX() * animator!.getPhaseY()).toInt(), + _transparentCirclePaint!.color.red, + _transparentCirclePaint!.color.green, + _transparentCirclePaint!.color.blue); // draw the transparent-circle mHoleCirclePath.reset(); mHoleCirclePath.addOval(Rect.fromLTRB( - center.x - secondHoleRadius, - center.y - secondHoleRadius, - center.x + secondHoleRadius, - center.y + secondHoleRadius)); + center.x! - secondHoleRadius, + center.y! - secondHoleRadius, + center.x! + secondHoleRadius, + center.y! + secondHoleRadius)); mHoleCirclePath.addOval(Rect.fromLTRB( - center.x - holeRadius, - center.y - holeRadius, - center.x + holeRadius, - center.y + holeRadius)); + center.x! - holeRadius, + center.y! - holeRadius, + center.x! + holeRadius, + center.y! + holeRadius)); // mBitmapCanvas.drawPath(mHoleCirclePath, _transparentCirclePaint); - c.drawPath(mHoleCirclePath, _transparentCirclePaint); + c.drawPath(mHoleCirclePath, _transparentCirclePaint!); // reset alpha - _transparentCirclePaint.color = Color.fromARGB( + _transparentCirclePaint!.color = Color.fromARGB( alpha, - _transparentCirclePaint.color.red, - _transparentCirclePaint.color.green, - _transparentCirclePaint.color.blue); + _transparentCirclePaint!.color.red, + _transparentCirclePaint!.color.green, + _transparentCirclePaint!.color.blue); } MPPointF.recycleInstance(center); } @@ -786,19 +786,19 @@ class PieChartRenderer extends DataRenderer { /// draws the description text in the center of the pie chart makes most /// sense when center-hole is enabled void drawCenterText(Canvas c) { - String centerText = _painter.getCenterText(); + String centerText = _painter!.getCenterText(); - if (_painter.isDrawCenterTextEnabled() && centerText != null) { - MPPointF center = _painter.getCenterCircleBox(); - MPPointF offset = _painter.getCenterTextOffset(); + if (_painter!.isDrawCenterTextEnabled() && centerText != null) { + MPPointF center = _painter!.getCenterCircleBox(); + MPPointF offset = _painter!.getCenterTextOffset(); - double x = center.x + offset.x; - double y = center.y + offset.y; + double x = center.x! + offset.x!; + double y = center.y! + offset.y!; - double innerRadius = _painter.isDrawHoleEnabled() && - !_painter.isDrawSlicesUnderHoleEnabled() - ? _painter.getRadius() * (_painter.getHoleRadius() / 100) - : _painter.getRadius(); + double innerRadius = _painter!.isDrawHoleEnabled() && + !_painter!.isDrawSlicesUnderHoleEnabled() + ? _painter!.getRadius() * (_painter!.getHoleRadius() / 100) + : _painter!.getRadius(); _rectBuffer[0] = Rect.fromLTRB( x - innerRadius, y - innerRadius, x + innerRadius, y + innerRadius); @@ -807,7 +807,7 @@ class PieChartRenderer extends DataRenderer { x - innerRadius, y - innerRadius, x + innerRadius, y + innerRadius); // Rect boundingRect = _rectBuffer[1]; - double radiusPercent = _painter.getCenterTextRadiusPercent() / 100; + double radiusPercent = _painter!.getCenterTextRadiusPercent() / 100; if (radiusPercent > 0.0) { var dx = (_rectBuffer[1].width - _rectBuffer[1].width * radiusPercent) / 2.0; @@ -832,20 +832,20 @@ class PieChartRenderer extends DataRenderer { c.save(); _centerTextPaint = PainterUtils.create(_centerTextPaint, centerText, - _painter.centerTextColor ?? ColorUtils.BLACK, - _painter.centerTextSize ?? Utils.convertDpToPixel(12), - fontFamily: _painter.centerTextTypeface?.fontFamily, - fontWeight: _painter.centerTextTypeface?.fontWeight); - _centerTextPaint.layout(); - _centerTextPaint.paint( + _painter!.centerTextColor ?? ColorUtils.BLACK, + _painter!.centerTextSize ?? Utils.convertDpToPixel(12), + fontFamily: _painter!.centerTextTypeface?.fontFamily, + fontWeight: _painter!.centerTextTypeface?.fontWeight); + _centerTextPaint!.layout(); + _centerTextPaint!.paint( c, Offset( _rectBuffer[1].left + _rectBuffer[1].width / 2 - - _centerTextPaint.width / 2, + _centerTextPaint!.width / 2, _rectBuffer[1].top + _rectBuffer[1].height / 2 - - _centerTextPaint.height / 2)); + _centerTextPaint!.height / 2)); c.restore(); @@ -857,35 +857,35 @@ class PieChartRenderer extends DataRenderer { Rect _drawHighlightedRectF = Rect.zero; @override - void drawHighlighted(Canvas c, List indices) { - final bool drawInnerArc = _painter.isDrawHoleEnabled() && - !_painter.isDrawSlicesUnderHoleEnabled(); - if (drawInnerArc && _painter.isDrawRoundedSlicesEnabled()) return; + void drawHighlighted(Canvas c, List? indices) { + final bool drawInnerArc = _painter!.isDrawHoleEnabled() && + !_painter!.isDrawSlicesUnderHoleEnabled(); + if (drawInnerArc && _painter!.isDrawRoundedSlicesEnabled()) return; - double phaseX = animator.getPhaseX(); - double phaseY = animator.getPhaseY(); + double phaseX = animator!.getPhaseX(); + double phaseY = animator!.getPhaseY(); double angle; - double rotationAngle = _painter.getRotationAngle(); + double rotationAngle = _painter!.getRotationAngle(); - List drawAngles = _painter.getDrawAngles(); - List absoluteAngles = _painter.getAbsoluteAngles(); - final MPPointF center = _painter.getCenterCircleBox(); - final double radius = _painter.getRadius(); + List drawAngles = _painter!.getDrawAngles(); + List absoluteAngles = _painter!.getAbsoluteAngles(); + final MPPointF center = _painter!.getCenterCircleBox(); + final double radius = _painter!.getRadius(); final double userInnerRadius = - drawInnerArc ? radius * (_painter.getHoleRadius() / 100.0) : 0.0; + drawInnerArc ? radius * (_painter!.getHoleRadius() / 100.0) : 0.0; // final Rect highlightedCircleBox = _drawHighlightedRectF; _drawHighlightedRectF = Rect.zero; - for (int i = 0; i < indices.length; i++) { + for (int i = 0; i < indices!.length; i++) { // get the index to highlight - int index = indices[i].x.toInt(); + int index = indices[i].x!.toInt(); if (index >= drawAngles.length) continue; - IPieDataSet set = - _painter.getData().getDataSetByIndex(indices[i].dataSetIndex); + IPieDataSet? set = + _painter!.getData()!.getDataSetByIndex(indices[i].dataSetIndex) as IPieDataSet?; if (set == null || !set.isHighlightEnabled()) continue; @@ -893,7 +893,7 @@ class PieChartRenderer extends DataRenderer { int visibleAngleCount = 0; for (int j = 0; j < entryCount; j++) { // draw only if the value is greater than zero - if ((set.getEntryForIndex(j).y.abs() > Utils.FLOAT_EPSILON)) { + if ((set.getEntryForIndex(j)!.y!.abs() > Utils.FLOAT_EPSILON)) { visibleAngleCount++; } } @@ -901,26 +901,26 @@ class PieChartRenderer extends DataRenderer { if (index == 0) angle = 0.0; else - angle = absoluteAngles[index - 1] * phaseX; + angle = absoluteAngles[index - 1]! * phaseX; final double sliceSpace = - visibleAngleCount <= 1 ? 0.0 : set.getSliceSpace(); + visibleAngleCount <= 1 ? 0.0 : set.getSliceSpace()!; - double sliceAngle = drawAngles[index]; + double sliceAngle = drawAngles[index]!; double innerRadius = userInnerRadius; - double shift = set.getSelectionShift(); + double shift = set.getSelectionShift()!; final double highlightedRadius = radius + shift; _drawHighlightedRectF = Rect.fromLTRB( - _painter.getCircleBox().left - shift, - _painter.getCircleBox().top - shift, - _painter.getCircleBox().right + shift, - _painter.getCircleBox().bottom + shift); + _painter!.getCircleBox().left - shift, + _painter!.getCircleBox().top - shift, + _painter!.getCircleBox().right + shift, + _painter!.getCircleBox().bottom + shift); final bool accountForSliceSpacing = sliceSpace > 0.0 && sliceAngle <= 180.0; - renderPaint.color = set.getColor2(index); + renderPaint!.color = set.getColor2(index); final double sliceSpaceAngleOuter = visibleAngleCount == 1 ? 0.0 : sliceSpace / (Utils.FDEG2RAD * radius); @@ -949,15 +949,15 @@ class PieChartRenderer extends DataRenderer { sweepAngleOuter % 360 <= Utils.FLOAT_EPSILON) { // Android is doing "mod 360" mPathBuffer.addOval(Rect.fromLTRB( - center.x - highlightedRadius, - center.y - highlightedRadius, - center.x + highlightedRadius, - center.y + highlightedRadius)); + center.x! - highlightedRadius, + center.y! - highlightedRadius, + center.x! + highlightedRadius, + center.y! + highlightedRadius)); } else { mPathBuffer.moveTo( - center.x + + center.x! + highlightedRadius * cos(startAngleShifted * Utils.FDEG2RAD), - center.y + + center.y! + highlightedRadius * sin(startAngleShifted * Utils.FDEG2RAD)); mPathBuffer.arcTo( @@ -973,18 +973,18 @@ class PieChartRenderer extends DataRenderer { center, radius, sliceAngle * phaseY, - center.x + radius * cos(startAngleOuter * Utils.FDEG2RAD), - center.y + radius * sin(startAngleOuter * Utils.FDEG2RAD), + center.x! + radius * cos(startAngleOuter * Utils.FDEG2RAD), + center.y! + radius * sin(startAngleOuter * Utils.FDEG2RAD), startAngleOuter, sweepAngleOuter); } // API < 21 does not receive doubles in addArc, but a RectF mInnerRectBuffer = Rect.fromLTRB( - center.x - innerRadius, - center.y - innerRadius, - center.x + innerRadius, - center.y + innerRadius); + center.x! - innerRadius, + center.y! - innerRadius, + center.x! + innerRadius, + center.y! + innerRadius); if (drawInnerArc && (innerRadius > 0.0 || accountForSliceSpacing)) { if (accountForSliceSpacing) { @@ -1011,17 +1011,17 @@ class PieChartRenderer extends DataRenderer { sweepAngleOuter % 360 <= Utils.FLOAT_EPSILON) { // Android is doing "mod 360" mPathBuffer.addOval(Rect.fromLTRB( - center.x - innerRadius, - center.y - innerRadius, - center.x + innerRadius, - center.y + innerRadius)); + center.x! - innerRadius, + center.y! - innerRadius, + center.x! + innerRadius, + center.y! + innerRadius)); } else { final double angleMiddle = startAngleOuter + sweepAngleOuter / 2.0; final double arcEndPointX = - center.x + sliceSpaceRadius * cos(angleMiddle * Utils.FDEG2RAD); + center.x! + sliceSpaceRadius * cos(angleMiddle * Utils.FDEG2RAD); final double arcEndPointY = - center.y + sliceSpaceRadius * sin(angleMiddle * Utils.FDEG2RAD); + center.y! + sliceSpaceRadius * sin(angleMiddle * Utils.FDEG2RAD); mPathBuffer.lineTo(arcEndPointX, arcEndPointY); // mPathBuffer.lineTo( // center.x + innerRadius * cos(endAngleInner * Utils.FDEG2RAD), @@ -1036,13 +1036,13 @@ class PieChartRenderer extends DataRenderer { final double angleMiddle = startAngleOuter + sweepAngleOuter / 2.0; final double arcEndPointX = - center.x + sliceSpaceRadius * cos(angleMiddle * Utils.FDEG2RAD); + center.x! + sliceSpaceRadius * cos(angleMiddle * Utils.FDEG2RAD); final double arcEndPointY = - center.y + sliceSpaceRadius * sin(angleMiddle * Utils.FDEG2RAD); + center.y! + sliceSpaceRadius * sin(angleMiddle * Utils.FDEG2RAD); mPathBuffer.lineTo(arcEndPointX, arcEndPointY); } else { - mPathBuffer.lineTo(center.x, center.y); + mPathBuffer.lineTo(center.x!, center.y!); } } } @@ -1050,9 +1050,9 @@ class PieChartRenderer extends DataRenderer { mPathBuffer.close(); // mBitmapCanvas.drawPath(mPathBuffer, renderPaint); - c.drawPath(mPathBuffer, renderPaint); - renderPaint..color = _painter.getHoleColor(); - c.drawOval(mInnerRectBuffer, renderPaint); + c.drawPath(mPathBuffer, renderPaint!); + renderPaint..color = _painter!.getHoleColor(); + c.drawOval(mInnerRectBuffer, renderPaint!); } MPPointF.recycleInstance(center); @@ -1062,41 +1062,41 @@ class PieChartRenderer extends DataRenderer { /// /// @param c void drawRoundedSlices(Canvas c) { - if (!_painter.isDrawRoundedSlicesEnabled()) return; + if (!_painter!.isDrawRoundedSlicesEnabled()) return; - IPieDataSet dataSet = (_painter.getData() as PieData).getDataSet(); + IPieDataSet dataSet = (_painter!.getData() as PieData).getDataSet(); if (!dataSet.isVisible()) return; - double phaseX = animator.getPhaseX(); - double phaseY = animator.getPhaseY(); + double phaseX = animator!.getPhaseX(); + double phaseY = animator!.getPhaseY(); - MPPointF center = _painter.getCenterCircleBox(); - double r = _painter.getRadius(); + MPPointF center = _painter!.getCenterCircleBox(); + double r = _painter!.getRadius(); // calculate the radius of the "slice-circle" - double circleRadius = (r - (r * _painter.getHoleRadius() / 100)) / 2; + double circleRadius = (r - (r * _painter!.getHoleRadius() / 100)) / 2; - List drawAngles = _painter.getDrawAngles(); - double angle = _painter.getRotationAngle(); + List drawAngles = _painter!.getDrawAngles(); + double angle = _painter!.getRotationAngle(); for (int j = 0; j < dataSet.getEntryCount(); j++) { - double sliceAngle = drawAngles[j]; + double sliceAngle = drawAngles[j]!; - Entry e = dataSet.getEntryForIndex(j); + Entry e = dataSet.getEntryForIndex(j)!; // draw only if the value is greater than zero - if ((e.y.abs() > Utils.FLOAT_EPSILON)) { + if ((e.y!.abs() > Utils.FLOAT_EPSILON)) { double x = ((r - circleRadius) * cos((angle + sliceAngle) * phaseY / 180 * pi) + - center.x); + center.x!); double y = ((r - circleRadius) * sin((angle + sliceAngle) * phaseY / 180 * pi) + - center.y); + center.y!); - renderPaint.color = dataSet.getColor2(j); + renderPaint!.color = dataSet.getColor2(j); // mBitmapCanvas.drawCircle(x, y, circleRadius, renderPaint); - c.drawCircle(Offset(x, y), circleRadius, renderPaint); + c.drawCircle(Offset(x, y), circleRadius, renderPaint!); } angle += sliceAngle * phaseX; @@ -1123,14 +1123,14 @@ class PieChartRenderer extends DataRenderer { // } void setHoleColor(Color color) { - holePaint.color = color; + holePaint!.color = color; } /// Sets the color the transparent-circle should have. /// /// @param color void setTransparentCircleColor(Color color) { - Paint p = transparentCirclePaint; + Paint p = transparentCirclePaint!; p.color = Color.fromARGB(p.color?.alpha == null ? 255 : p.color?.alpha, color.red, color.green, color.blue); } @@ -1141,8 +1141,8 @@ class PieChartRenderer extends DataRenderer { /// /// @param alpha 0-255 void setTransparentCircleAlpha(int alpha) { - Color color = transparentCirclePaint.color; - transparentCirclePaint.color = + Color color = transparentCirclePaint!.color; + transparentCirclePaint!.color = Color.fromARGB(alpha, color.red, color.green, color.blue); } @@ -1157,7 +1157,7 @@ class PieChartRenderer extends DataRenderer { /// /// @param size void setEntryLabelTextSize(double size) { - var style = entryLabelsPaint.text.style; + var style = entryLabelsPaint!.text!.style; entryLabelsPaint = PainterUtils.create( entryLabelsPaint, null, diff --git a/mp_chart/lib/mp/core/render/radar_chart_renderer.dart b/mp_chart/lib/mp/core/render/radar_chart_renderer.dart index 2c04c90a..49ac86c7 100644 --- a/mp_chart/lib/mp/core/render/radar_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/radar_chart_renderer.dart @@ -16,21 +16,21 @@ import 'package:mp_chart/mp/core/poolable/point.dart'; import 'package:mp_chart/mp/core/utils/utils.dart'; class RadarChartRenderer extends LineRadarRenderer { - RadarChartPainter _painter; + RadarChartPainter? _painter; /// paint for drawing the web - Paint _webPaint; - Paint _highlightCirclePaint; + Paint? _webPaint; + Paint? _highlightCirclePaint; - RadarChartRenderer(RadarChartPainter chart, Animator animator, - ViewPortHandler viewPortHandler) + RadarChartRenderer(RadarChartPainter chart, Animator? animator, + ViewPortHandler? viewPortHandler) : super(animator, viewPortHandler) { _painter = chart; _highlightCirclePaint = Paint() ..isAntiAlias = true ..style = PaintingStyle.stroke - ..strokeWidth = Utils.convertDpToPixel(2) + ..strokeWidth = Utils.convertDpToPixel(2)! ..color = Color.fromARGB(255, 255, 187, 115); _webPaint = Paint() @@ -42,20 +42,20 @@ class RadarChartRenderer extends LineRadarRenderer { ..style; } - Paint get webPaint => _webPaint; + Paint? get webPaint => _webPaint; - RadarChartPainter get painter => _painter; + RadarChartPainter? get painter => _painter; @override void initBuffers() {} @override void drawData(Canvas c) { - RadarData radarData = _painter.getData(); + RadarData radarData = _painter!.getData() as RadarData; - int mostEntries = radarData.getMaxEntryCountSet().getEntryCount(); + int mostEntries = radarData.getMaxEntryCountSet()!.getEntryCount(); - for (IRadarDataSet set in radarData.dataSets) { + for (IRadarDataSet set in radarData.dataSets!) { if (set.isVisible()) { drawDataSet(c, set, mostEntries); } @@ -70,16 +70,16 @@ class RadarChartRenderer extends LineRadarRenderer { /// @param dataSet /// @param mostEntries the entry count of the dataset with the most entries void drawDataSet(Canvas c, IRadarDataSet dataSet, int mostEntries) { - double phaseX = animator.getPhaseX(); - double phaseY = animator.getPhaseY(); + double phaseX = animator!.getPhaseX(); + double phaseY = animator!.getPhaseY(); - double sliceangle = _painter.getSliceAngle(); + double sliceangle = _painter!.getSliceAngle(); // calculate the factor that is needed for transforming the value to // pixels - double factor = _painter.getFactor(); + double factor = _painter!.getFactor(); - MPPointF center = _painter.getCenterOffsets(); + MPPointF center = _painter!.getCenterOffsets(); MPPointF pOut = MPPointF.getInstance1(0, 0); Path surface = mDrawDataSetSurfacePathBuffer; surface.reset(); @@ -87,28 +87,28 @@ class RadarChartRenderer extends LineRadarRenderer { bool hasMovedToPoint = false; for (int j = 0; j < dataSet.getEntryCount(); j++) { - renderPaint.color = dataSet.getColor2(j); + renderPaint!.color = dataSet.getColor2(j); - RadarEntry e = dataSet.getEntryForIndex(j); + RadarEntry e = dataSet.getEntryForIndex(j)!; Utils.getPosition( center, - (e.y - _painter.getYChartMin()) * factor * phaseY, - sliceangle * j * phaseX + _painter.getRotationAngle(), + (e.y! - _painter!.getYChartMin()!) * factor * phaseY, + sliceangle * j * phaseX + _painter!.getRotationAngle(), pOut); - if (pOut.x.isNaN) continue; + if (pOut.x!.isNaN) continue; if (!hasMovedToPoint) { - surface.moveTo(pOut.x, pOut.y); + surface.moveTo(pOut.x!, pOut.y!); hasMovedToPoint = true; } else - surface.lineTo(pOut.x, pOut.y); + surface.lineTo(pOut.x!, pOut.y!); } if (dataSet.getEntryCount() > mostEntries) { // if this is not the largest set, draw a line to the center before closing - surface.lineTo(center.x, center.y); + surface.lineTo(center.x!, center.y!); } surface.close(); @@ -124,8 +124,8 @@ class RadarChartRenderer extends LineRadarRenderer { drawFilledPath3( c, surface, - dataSet.getGradientColor1().startColor.value, - dataSet.getGradientColor1().endColor.value, + dataSet.getGradientColor1()!.startColor.value, + dataSet.getGradientColor1()!.endColor.value, dataSet.getFillAlpha()); } else { drawFilledPath2( @@ -135,12 +135,12 @@ class RadarChartRenderer extends LineRadarRenderer { } renderPaint - ..strokeWidth = dataSet.getLineWidth() + ..strokeWidth = dataSet.getLineWidth()! ..style = PaintingStyle.stroke; // draw the line (only if filled is disabled or alpha is below 255) if (!dataSet.isDrawFilledEnabled() || dataSet.getFillAlpha() < 255) - c.drawPath(surface, renderPaint); + c.drawPath(surface, renderPaint!); MPPointF.recycleInstance(center); MPPointF.recycleInstance(pOut); @@ -148,64 +148,64 @@ class RadarChartRenderer extends LineRadarRenderer { @override void drawValues(Canvas c) { - double phaseX = animator.getPhaseX(); - double phaseY = animator.getPhaseY(); + double phaseX = animator!.getPhaseX(); + double phaseY = animator!.getPhaseY(); - double sliceangle = _painter.getSliceAngle(); + double sliceangle = _painter!.getSliceAngle(); // calculate the factor that is needed for transforming the value to // pixels - double factor = _painter.getFactor(); + double factor = _painter!.getFactor(); - MPPointF center = _painter.getCenterOffsets(); + MPPointF center = _painter!.getCenterOffsets(); MPPointF pOut = MPPointF.getInstance1(0, 0); MPPointF pIcon = MPPointF.getInstance1(0, 0); - double yoffset = Utils.convertDpToPixel(5); + double? yoffset = Utils.convertDpToPixel(5); - for (int i = 0; i < _painter.getData().getDataSetCount(); i++) { - IRadarDataSet dataSet = _painter.getData().getDataSetByIndex(i); + for (int i = 0; i < _painter!.getData()!.getDataSetCount(); i++) { + IRadarDataSet dataSet = _painter!.getData()!.getDataSetByIndex(i) as IRadarDataSet; if (!shouldDrawValues(dataSet)) continue; // apply the text-styling defined by the DataSet applyValueTextStyle(dataSet); - ValueFormatter formatter = dataSet.getValueFormatter(); + ValueFormatter? formatter = dataSet.getValueFormatter(); MPPointF iconsOffset = MPPointF.getInstance3(dataSet.getIconsOffset()); iconsOffset.x = Utils.convertDpToPixel(iconsOffset.x); iconsOffset.y = Utils.convertDpToPixel(iconsOffset.y); for (int j = 0; j < dataSet.getEntryCount(); j++) { - RadarEntry entry = dataSet.getEntryForIndex(j); + RadarEntry entry = dataSet.getEntryForIndex(j)!; Utils.getPosition( center, - (entry.y - _painter.getYChartMin()) * factor * phaseY, - sliceangle * j * phaseX + _painter.getRotationAngle(), + (entry.y! - _painter!.getYChartMin()!) * factor * phaseY, + sliceangle * j * phaseX + _painter!.getRotationAngle(), pOut); if (dataSet.isDrawValuesEnabled()) { drawValue( c, - formatter.getRadarLabel(entry), - pOut.x, - pOut.y - yoffset, + formatter!.getRadarLabel(entry), + pOut.x!, + pOut.y! - yoffset!, dataSet.getValueTextColor2(j), dataSet.getValueTextSize(), dataSet.getValueTypeface()); } if (entry.mIcon != null && dataSet.isDrawIconsEnabled()) { - Utils.getPosition(center, entry.y * factor * phaseY + iconsOffset.y, - sliceangle * j * phaseX + _painter.getRotationAngle(), pIcon); + Utils.getPosition(center, entry.y! * factor * phaseY + iconsOffset.y!, + sliceangle * j * phaseX + _painter!.getRotationAngle(), pIcon); //noinspection SuspiciousNameCombination - pIcon.y += iconsOffset.x; + pIcon.y += iconsOffset.x!; - CanvasUtils.drawImage(c, Offset(pIcon.x, pIcon.y), entry.mIcon, - Size(15, 15), drawPaint); + CanvasUtils.drawImage(c, Offset(pIcon.x!, pIcon.y!), entry.mIcon!, + Size(15, 15), drawPaint!); } } @@ -219,12 +219,12 @@ class RadarChartRenderer extends LineRadarRenderer { @override void drawValue(Canvas c, String valueText, double x, double y, Color color, - double textSize, TypeFace typeFace) { + double? textSize, TypeFace? typeFace) { valuePaint = PainterUtils.create(valuePaint, valueText, color, textSize, fontFamily: typeFace?.fontFamily, fontWeight: typeFace?.fontWeight); - valuePaint.layout(); - valuePaint.paint( - c, Offset(x - valuePaint.width / 2, y - valuePaint.height)); + valuePaint!.layout(); + valuePaint!.paint( + c, Offset(x - valuePaint!.width / 2, y - valuePaint!.height)); } @override @@ -233,57 +233,57 @@ class RadarChartRenderer extends LineRadarRenderer { } void drawWeb(Canvas c) { - double sliceangle = _painter.getSliceAngle(); + double sliceangle = _painter!.getSliceAngle(); // calculate the factor that is needed for transforming the value to // pixels - double factor = _painter.getFactor(); - double rotationangle = _painter.getRotationAngle(); + double factor = _painter!.getFactor(); + double rotationangle = _painter!.getRotationAngle(); - MPPointF center = _painter.getCenterOffsets(); + MPPointF center = _painter!.getCenterOffsets(); // draw the web lines that come from the center - var color = _painter.webColor; + var color = _painter!.webColor!; _webPaint - ..strokeWidth = _painter.webLineWidth + ..strokeWidth = _painter!.webLineWidth ..color = - Color.fromARGB(_painter.webAlpha, color.red, color.green, color.blue); + Color.fromARGB(_painter!.webAlpha, color.red, color.green, color.blue); - final int xIncrements = 1 + _painter.skipWebLineCount; + final int xIncrements = 1 + _painter!.skipWebLineCount; int maxEntryCount = - _painter.getData().getMaxEntryCountSet().getEntryCount(); + _painter!.getData()!.getMaxEntryCountSet()!.getEntryCount(); MPPointF p = MPPointF.getInstance1(0, 0); for (int i = 0; i < maxEntryCount; i += xIncrements) { - Utils.getPosition(center, _painter.yAxis.axisRange * factor, + Utils.getPosition(center, _painter!.yAxis!.axisRange * factor, sliceangle * i + rotationangle, p); - c.drawLine(Offset(center.x, center.y), Offset(p.x, p.y), _webPaint); + c.drawLine(Offset(center.x!, center.y!), Offset(p.x!, p.y!), _webPaint!); } MPPointF.recycleInstance(p); // draw the inner-web - color = _painter.webColorInner; + color = _painter!.webColorInner!; _webPaint - ..strokeWidth = _painter.innerWebLineWidth + ..strokeWidth = _painter!.innerWebLineWidth ..color = - Color.fromARGB(_painter.webAlpha, color.red, color.green, color.blue); + Color.fromARGB(_painter!.webAlpha, color.red, color.green, color.blue); - int labelCount = _painter.yAxis.entryCount; + int labelCount = _painter!.yAxis!.entryCount; MPPointF p1out = MPPointF.getInstance1(0, 0); MPPointF p2out = MPPointF.getInstance1(0, 0); for (int j = 0; j < labelCount; j++) { - for (int i = 0; i < _painter.getData().getEntryCount(); i++) { + for (int i = 0; i < _painter!.getData()!.getEntryCount(); i++) { double r = - (_painter.yAxis.entries[j] - _painter.getYChartMin()) * factor; + (_painter!.yAxis!.entries[j]! - _painter!.getYChartMin()!) * factor; Utils.getPosition(center, r, sliceangle * i + rotationangle, p1out); Utils.getPosition( center, r, sliceangle * (i + 1) + rotationangle, p2out); c.drawLine( - Offset(p1out.x, p1out.y), Offset(p2out.x, p2out.y), _webPaint); + Offset(p1out.x!, p1out.y!), Offset(p2out.x!, p2out.y!), _webPaint!); } } MPPointF.recycleInstance(p1out); @@ -291,34 +291,34 @@ class RadarChartRenderer extends LineRadarRenderer { } @override - void drawHighlighted(Canvas c, List indices) { - double sliceangle = _painter.getSliceAngle(); + void drawHighlighted(Canvas c, List? indices) { + double sliceangle = _painter!.getSliceAngle(); // calculate the factor that is needed for transforming the value to // pixels - double factor = _painter.getFactor(); + double factor = _painter!.getFactor(); - MPPointF center = _painter.getCenterOffsets(); + MPPointF center = _painter!.getCenterOffsets(); MPPointF pOut = MPPointF.getInstance1(0, 0); - RadarData radarData = _painter.getData(); + RadarData? radarData = _painter!.getData() as RadarData?; - for (Highlight high in indices) { - IRadarDataSet set = radarData.getDataSetByIndex(high.dataSetIndex); + for (Highlight high in indices!) { + IRadarDataSet? set = radarData!.getDataSetByIndex(high.dataSetIndex); if (set == null || !set.isHighlightEnabled()) continue; - RadarEntry e = set.getEntryForIndex(high.x.toInt()); + RadarEntry? e = set.getEntryForIndex(high.x!.toInt()); if (!isInBoundsX(e, set)) continue; - double y = (e.y - _painter.getYChartMin()); + double y = (e!.y! - _painter!.getYChartMin()!); Utils.getPosition( center, - y * factor * animator.getPhaseY(), - sliceangle * high.x * animator.getPhaseX() + - _painter.getRotationAngle(), + y * factor * animator!.getPhaseY(), + sliceangle * high.x! * animator!.getPhaseX() + + _painter!.getRotationAngle(), pOut); high.setDraw(pOut.x, pOut.y); @@ -327,7 +327,7 @@ class RadarChartRenderer extends LineRadarRenderer { drawHighlightLines(c, pOut.x, pOut.y, set); if (set.isDrawHighlightCircleEnabled()) { - if (!pOut.x.isNaN && !pOut.y.isNaN) { + if (!pOut.x!.isNaN && !pOut.y!.isNaN) { Color strokeColor = set.getHighlightCircleStrokeColor(); if (strokeColor == ColorUtils.COLOR_NONE) { strokeColor = set.getColor2(0); @@ -359,8 +359,8 @@ class RadarChartRenderer extends LineRadarRenderer { void drawHighlightCircle( Canvas c, MPPointF point, - double innerRadius, - double outerRadius, + double? innerRadius, + double? outerRadius, Color fillColor, Color strokeColor, double strokeWidth) { @@ -372,27 +372,27 @@ class RadarChartRenderer extends LineRadarRenderer { if (fillColor != ColorUtils.COLOR_NONE) { Path p = mDrawHighlightCirclePathBuffer; p.reset(); - p.addOval(Rect.fromLTRB(point.x - outerRadius, point.y - outerRadius, - point.x + outerRadius, point.y + outerRadius)); + p.addOval(Rect.fromLTRB(point.x! - outerRadius!, point.y! - outerRadius, + point.x! + outerRadius, point.y! + outerRadius)); // p.addCircle(point.x, point.y, outerRadius, Path.Direction.CW); - if (innerRadius > 0.0) { - p.addOval(Rect.fromLTRB(point.x - innerRadius, point.y - innerRadius, - point.x + innerRadius, point.y + innerRadius)); + if (innerRadius! > 0.0) { + p.addOval(Rect.fromLTRB(point.x! - innerRadius, point.y! - innerRadius, + point.x! + innerRadius, point.y! + innerRadius)); // p.addCircle(point.x, point.y, innerRadius, Path.Direction.CCW); } _highlightCirclePaint ..color = fillColor ..style = PaintingStyle.fill; - c.drawPath(p, _highlightCirclePaint); + c.drawPath(p, _highlightCirclePaint!); } if (strokeColor != ColorUtils.COLOR_NONE) { _highlightCirclePaint ..color = strokeColor ..style = PaintingStyle.stroke - ..strokeWidth = Utils.convertDpToPixel(strokeWidth); + ..strokeWidth = Utils.convertDpToPixel(strokeWidth)!; c.drawCircle( - Offset(point.x, point.y), outerRadius, _highlightCirclePaint); + Offset(point.x!, point.y!), outerRadius!, _highlightCirclePaint!); } c.restore(); diff --git a/mp_chart/lib/mp/core/render/renderer.dart b/mp_chart/lib/mp/core/render/renderer.dart index 6438fbbe..05573715 100644 --- a/mp_chart/lib/mp/core/render/renderer.dart +++ b/mp_chart/lib/mp/core/render/renderer.dart @@ -2,15 +2,15 @@ import 'package:mp_chart/mp/core/view_port.dart'; abstract class Renderer { /// the component that handles the drawing area of the chart and it's offsets - ViewPortHandler _viewPortHandler; + ViewPortHandler? _viewPortHandler; Renderer(this._viewPortHandler); // ignore: unnecessary_getters_setters - ViewPortHandler get viewPortHandler => _viewPortHandler; + ViewPortHandler? get viewPortHandler => _viewPortHandler; // ignore: unnecessary_getters_setters - set viewPortHandler(ViewPortHandler value) { + set viewPortHandler(ViewPortHandler? value) { _viewPortHandler = value; } } diff --git a/mp_chart/lib/mp/core/render/scatter_chart_renderer.dart b/mp_chart/lib/mp/core/render/scatter_chart_renderer.dart index 1610855c..0d632764 100644 --- a/mp_chart/lib/mp/core/render/scatter_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/scatter_chart_renderer.dart @@ -19,59 +19,59 @@ import 'package:mp_chart/mp/core/poolable/point.dart'; import 'package:mp_chart/mp/core/utils/utils.dart'; class ScatterChartRenderer extends LineScatterCandleRadarRenderer { - ScatterDataProvider _provider; + ScatterDataProvider? _provider; - ScatterChartRenderer(ScatterDataProvider chart, Animator animator, - ViewPortHandler viewPortHandler) + ScatterChartRenderer(ScatterDataProvider chart, Animator? animator, + ViewPortHandler? viewPortHandler) : super(animator, viewPortHandler) { _provider = chart; } - ScatterDataProvider get provider => _provider; + ScatterDataProvider? get provider => _provider; @override void initBuffers() {} @override void drawData(Canvas c) { - ScatterData scatterData = _provider.getScatterData(); + ScatterData scatterData = _provider!.getScatterData()!; - for (IScatterDataSet set in scatterData.dataSets) { + for (IScatterDataSet set in scatterData.dataSets!) { if (set.isVisible()) drawDataSet(c, set); } } - List mPixelBuffer = List(2); + List mPixelBuffer = List(2); void drawDataSet(Canvas c, IScatterDataSet dataSet) { if (dataSet.getEntryCount() < 1) return; - Transformer trans = _provider.getTransformer(dataSet.getAxisDependency()); + Transformer? trans = _provider!.getTransformer(dataSet.getAxisDependency()); - double phaseY = animator.getPhaseY(); + double phaseY = animator!.getPhaseY(); - IShapeRenderer renderer = dataSet.getShapeRenderer(); + IShapeRenderer? renderer = dataSet.getShapeRenderer(); if (renderer == null) { return; } - int max = (min((dataSet.getEntryCount() * animator.getPhaseX()).ceil(), + int max = (min((dataSet.getEntryCount() * animator!.getPhaseX()).ceil(), dataSet.getEntryCount())); for (int i = 0; i < max; i++) { - Entry e = dataSet.getEntryForIndex(i); + Entry e = dataSet.getEntryForIndex(i)!; mPixelBuffer[0] = e.x; - mPixelBuffer[1] = e.y * phaseY; + mPixelBuffer[1] = e.y! * phaseY; - trans.pointValuesToPixel(mPixelBuffer); + trans!.pointValuesToPixel(mPixelBuffer); - if (!viewPortHandler.isInBoundsRight(mPixelBuffer[0])) break; + if (!viewPortHandler!.isInBoundsRight(mPixelBuffer[0])) break; - if (!viewPortHandler.isInBoundsLeft(mPixelBuffer[0]) || - !viewPortHandler.isInBoundsY(mPixelBuffer[1])) continue; + if (!viewPortHandler!.isInBoundsLeft(mPixelBuffer[0]) || + !viewPortHandler!.isInBoundsY(mPixelBuffer[1])) continue; - renderPaint.color = dataSet.getColor2(i ~/ 2); + renderPaint!.color = dataSet.getColor2(i ~/ 2); renderer.renderShape(c, dataSet, viewPortHandler, mPixelBuffer[0], mPixelBuffer[1], renderPaint); } @@ -80,49 +80,49 @@ class ScatterChartRenderer extends LineScatterCandleRadarRenderer { @override void drawValues(Canvas c) { // if values are drawn - if (isDrawingValuesAllowed(_provider)) { - List dataSets = _provider.getScatterData().dataSets; + if (isDrawingValuesAllowed(_provider!)) { + List? dataSets = _provider!.getScatterData()!.dataSets; - for (int i = 0; i < _provider.getScatterData().getDataSetCount(); i++) { - IScatterDataSet dataSet = dataSets[i]; + for (int i = 0; i < _provider!.getScatterData()!.getDataSetCount(); i++) { + IScatterDataSet dataSet = dataSets![i]; if (!shouldDrawValues(dataSet) || dataSet.getEntryCount() < 1) continue; // apply the text-styling defined by the DataSet applyValueTextStyle(dataSet); - xBounds.set(_provider, dataSet); + xBounds!.set(_provider!, dataSet); - List positions = _provider - .getTransformer(dataSet.getAxisDependency()) - .generateTransformedValuesScatter(dataSet, animator.getPhaseX(), - animator.getPhaseY(), xBounds.min, xBounds.max); + List positions = _provider! + .getTransformer(dataSet.getAxisDependency())! + .generateTransformedValuesScatter(dataSet, animator!.getPhaseX(), + animator!.getPhaseY(), xBounds!.min!, xBounds!.max!); - double shapeSize = + double? shapeSize = Utils.convertDpToPixel(dataSet.getScatterShapeSize()); - ValueFormatter formatter = dataSet.getValueFormatter(); + ValueFormatter? formatter = dataSet.getValueFormatter(); MPPointF iconsOffset = MPPointF.getInstance3(dataSet.getIconsOffset()); iconsOffset.x = Utils.convertDpToPixel(iconsOffset.x); iconsOffset.y = Utils.convertDpToPixel(iconsOffset.y); for (int j = 0; j < positions.length; j += 2) { - if (!viewPortHandler.isInBoundsRight(positions[j])) break; + if (!viewPortHandler!.isInBoundsRight(positions[j])) break; // make sure the lines don't do shitty things outside bounds - if ((!viewPortHandler.isInBoundsLeft(positions[j]) || - !viewPortHandler.isInBoundsY(positions[j + 1]))) continue; + if ((!viewPortHandler!.isInBoundsLeft(positions[j]) || + !viewPortHandler!.isInBoundsY(positions[j + 1]))) continue; - Entry entry = dataSet.getEntryForIndex(j ~/ 2 + xBounds.min); + Entry entry = dataSet.getEntryForIndex(j ~/ 2 + xBounds!.min!)!; if (dataSet.isDrawValuesEnabled()) { drawValue( c, - formatter.getPointLabel(entry), - positions[j], - positions[j + 1] - shapeSize, - dataSet.getValueTextColor2(j ~/ 2 + xBounds.min), + formatter!.getPointLabel(entry), + positions[j]!, + positions[j + 1]! - shapeSize!, + dataSet.getValueTextColor2(j ~/ 2 + xBounds!.min!), dataSet.getValueTextSize(), dataSet.getValueTypeface()); } @@ -130,11 +130,11 @@ class ScatterChartRenderer extends LineScatterCandleRadarRenderer { if (entry.mIcon != null && dataSet.isDrawIconsEnabled()) { CanvasUtils.drawImage( c, - Offset(positions[j] + iconsOffset.x, - positions[j + 1] + iconsOffset.y), - entry.mIcon, + Offset(positions[j]! + iconsOffset.x!, + positions[j + 1]! + iconsOffset.y!), + entry.mIcon!, Size(15, 15), - drawPaint); + drawPaint!); } } @@ -145,33 +145,33 @@ class ScatterChartRenderer extends LineScatterCandleRadarRenderer { @override void drawValue(Canvas c, String valueText, double x, double y, Color color, - double textSize, TypeFace typeFace) { + double? textSize, TypeFace? typeFace) { valuePaint = PainterUtils.create(valuePaint, valueText, color, textSize, fontFamily: typeFace?.fontFamily, fontWeight: typeFace?.fontWeight); - valuePaint.layout(); - valuePaint.paint( - c, Offset(x - valuePaint.width / 2, y - valuePaint.height)); + valuePaint!.layout(); + valuePaint!.paint( + c, Offset(x - valuePaint!.width / 2, y - valuePaint!.height)); } @override void drawExtras(Canvas c) {} @override - void drawHighlighted(Canvas c, List indices) { - ScatterData scatterData = _provider.getScatterData(); + void drawHighlighted(Canvas c, List? indices) { + ScatterData? scatterData = _provider!.getScatterData(); - for (Highlight high in indices) { - IScatterDataSet set = scatterData.getDataSetByIndex(high.dataSetIndex); + for (Highlight high in indices!) { + IScatterDataSet? set = scatterData!.getDataSetByIndex(high.dataSetIndex); if (set == null || !set.isHighlightEnabled()) continue; - final Entry e = set.getEntryForXValue2(high.x, high.y); + final Entry? e = set.getEntryForXValue2(high.x, high.y); if (!isInBoundsX(e, set)) continue; - MPPointD pix = _provider - .getTransformer(set.getAxisDependency()) - .getPixelForValues(e.x, e.y * animator.getPhaseY()); + MPPointD pix = _provider! + .getTransformer(set.getAxisDependency())! + .getPixelForValues(e!.x, e.y! * animator!.getPhaseY()); high.setDraw(pix.x, pix.y); diff --git a/mp_chart/lib/mp/core/render/square_shape_renderer.dart b/mp_chart/lib/mp/core/render/square_shape_renderer.dart index 83c63e32..c1ef9009 100644 --- a/mp_chart/lib/mp/core/render/square_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/square_shape_renderer.dart @@ -11,14 +11,14 @@ class SquareShapeRenderer implements IShapeRenderer { void renderShape( Canvas c, IScatterDataSet dataSet, - ViewPortHandler viewPortHandler, - double posX, - double posY, - Paint renderPaint) { + ViewPortHandler? viewPortHandler, + double? posX, + double? posY, + Paint? renderPaint) { final double shapeSize = dataSet.getScatterShapeSize(); final double shapeHalf = shapeSize / 2; final double shapeHoleSizeHalf = - Utils.convertDpToPixel(dataSet.getScatterShapeHoleRadius()); + Utils.convertDpToPixel(dataSet.getScatterShapeHoleRadius())!; final double shapeHoleSize = shapeHoleSizeHalf * 2.0; final double shapeStrokeSize = (shapeSize - shapeHoleSize) / 2.0; final double shapeStrokeSizeHalf = shapeStrokeSize / 2.0; @@ -32,11 +32,11 @@ class SquareShapeRenderer implements IShapeRenderer { c.drawRect( Rect.fromLTRB( - posX - shapeHoleSizeHalf - shapeStrokeSizeHalf, - posY - shapeHoleSizeHalf - shapeStrokeSizeHalf, + posX! - shapeHoleSizeHalf - shapeStrokeSizeHalf, + posY! - shapeHoleSizeHalf - shapeStrokeSizeHalf, posX + shapeHoleSizeHalf + shapeStrokeSizeHalf, posY + shapeHoleSizeHalf + shapeStrokeSizeHalf), - renderPaint); + renderPaint!); if (shapeHoleColor != ColorUtils.COLOR_NONE) { renderPaint @@ -49,10 +49,10 @@ class SquareShapeRenderer implements IShapeRenderer { renderPaint); } } else { - renderPaint.style = PaintingStyle.fill; + renderPaint!.style = PaintingStyle.fill; c.drawRect( - Rect.fromLTRB(posX - shapeHalf, posY - shapeHalf, posX + shapeHalf, + Rect.fromLTRB(posX! - shapeHalf, posY! - shapeHalf, posX + shapeHalf, posY + shapeHalf), renderPaint); } diff --git a/mp_chart/lib/mp/core/render/triangle_shape_renderer.dart b/mp_chart/lib/mp/core/render/triangle_shape_renderer.dart index b222ff61..218d5d0c 100644 --- a/mp_chart/lib/mp/core/render/triangle_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/triangle_shape_renderer.dart @@ -13,26 +13,26 @@ class TriangleShapeRenderer implements IShapeRenderer { void renderShape( Canvas c, IScatterDataSet dataSet, - ViewPortHandler viewPortHandler, - double posX, - double posY, - Paint renderPaint) { + ViewPortHandler? viewPortHandler, + double? posX, + double? posY, + Paint? renderPaint) { final double shapeSize = dataSet.getScatterShapeSize(); final double shapeHalf = shapeSize / 2; final double shapeHoleSizeHalf = - Utils.convertDpToPixel(dataSet.getScatterShapeHoleRadius()); + Utils.convertDpToPixel(dataSet.getScatterShapeHoleRadius())!; final double shapeHoleSize = shapeHoleSizeHalf * 2.0; final double shapeStrokeSize = (shapeSize - shapeHoleSize) / 2.0; final Color shapeHoleColor = dataSet.getScatterShapeHoleColor(); - renderPaint.style = PaintingStyle.fill; + renderPaint!.style = PaintingStyle.fill; // create a triangle path Path tri = _trianglePathBuffer; tri.reset(); - tri.moveTo(posX, posY - shapeHalf); + tri.moveTo(posX!, posY! - shapeHalf); tri.lineTo(posX + shapeHalf, posY + shapeHalf); tri.lineTo(posX - shapeHalf, posY + shapeHalf); diff --git a/mp_chart/lib/mp/core/render/x_axis_renderer.dart b/mp_chart/lib/mp/core/render/x_axis_renderer.dart index f34e5fbc..b30fe90b 100644 --- a/mp_chart/lib/mp/core/render/x_axis_renderer.dart +++ b/mp_chart/lib/mp/core/render/x_axis_renderer.dart @@ -14,9 +14,9 @@ import 'package:mp_chart/mp/core/poolable/size.dart'; import 'package:mp_chart/mp/core/utils/utils.dart'; class XAxisRenderer extends AxisRenderer { - XAxis _xAxis; + XAxis? _xAxis; - XAxisRenderer(ViewPortHandler viewPortHandler, XAxis xAxis, Transformer trans) + XAxisRenderer(ViewPortHandler? viewPortHandler, XAxis? xAxis, Transformer? trans) : super(viewPortHandler, trans, xAxis) { this._xAxis = xAxis; @@ -26,23 +26,23 @@ class XAxisRenderer extends AxisRenderer { void setupGridPaint() { gridPaint = Paint() - ..color = _xAxis.gridColor + ..color = _xAxis!.gridColor ..style = PaintingStyle.stroke - ..strokeWidth = _xAxis.gridLineWidth; + ..strokeWidth = _xAxis!.gridLineWidth; } - XAxis get xAxis => _xAxis; + XAxis? get xAxis => _xAxis; @override - void computeAxis(double min, double max, bool inverted) { + void computeAxis(double? min, double? max, bool inverted) { // calculate the starting and entry point of the y-labels (depending on // zoom / contentrect bounds) - if (viewPortHandler.contentWidth() > 10 && - !viewPortHandler.isFullyZoomedOutX()) { - MPPointD p1 = trans.getValuesByTouchPoint1( - viewPortHandler.contentLeft(), viewPortHandler.contentTop()); - MPPointD p2 = trans.getValuesByTouchPoint1( - viewPortHandler.contentRight(), viewPortHandler.contentTop()); + if (viewPortHandler!.contentWidth() > 10 && + !viewPortHandler!.isFullyZoomedOutX()) { + MPPointD p1 = trans!.getValuesByTouchPoint1( + viewPortHandler!.contentLeft(), viewPortHandler!.contentTop()); + MPPointD p2 = trans!.getValuesByTouchPoint1( + viewPortHandler!.contentRight(), viewPortHandler!.contentTop()); if (inverted) { min = p2.x; @@ -56,7 +56,7 @@ class XAxisRenderer extends AxisRenderer { MPPointD.recycleInstance2(p2); } - computeAxisValues(min, max); + computeAxisValues(min!, max!); } @override @@ -66,26 +66,26 @@ class XAxisRenderer extends AxisRenderer { } void computeSize() { - String longest = _xAxis.getLongestLabel(); + String longest = _xAxis!.getLongestLabel(); axisLabelPaint = PainterUtils.create( - axisLabelPaint, null, axisLabelPaint.text.style.color, _xAxis.textSize, - fontWeight: _xAxis.typeface?.fontWeight, - fontFamily: _xAxis.typeface?.fontFamily); + axisLabelPaint, null, axisLabelPaint!.text!.style!.color, _xAxis!.textSize, + fontWeight: _xAxis!.typeface?.fontWeight, + fontFamily: _xAxis!.typeface?.fontFamily); - final FSize labelSize = Utils.calcTextSize1(axisLabelPaint, longest); + final FSize labelSize = Utils.calcTextSize1(axisLabelPaint!, longest); final double labelWidth = labelSize.width; final double labelHeight = - Utils.calcTextHeight(axisLabelPaint, "Q").toDouble(); + Utils.calcTextHeight(axisLabelPaint!, "Q").toDouble(); final FSize labelRotatedSize = Utils.getSizeOfRotatedRectangleByDegrees( - labelWidth, labelHeight, _xAxis.labelRotationAngle); + labelWidth, labelHeight, _xAxis!.labelRotationAngle); - _xAxis.labelWidth = labelWidth.round(); - _xAxis.labelHeight = labelHeight.round(); - _xAxis.labelRotatedWidth = labelRotatedSize.width.round(); - _xAxis.labelRotatedHeight = labelRotatedSize.height.round(); + _xAxis!.labelWidth = labelWidth.round(); + _xAxis!.labelHeight = labelHeight.round(); + _xAxis!.labelRotatedWidth = labelRotatedSize.width.round(); + _xAxis!.labelRotatedHeight = labelRotatedSize.height.round(); FSize.recycleInstance(labelRotatedSize); FSize.recycleInstance(labelSize); @@ -93,43 +93,43 @@ class XAxisRenderer extends AxisRenderer { @override void renderAxisLabels(Canvas c) { - if (!_xAxis.enabled || !_xAxis.drawLabels) return; + if (!_xAxis!.enabled || !_xAxis!.drawLabels) return; - axisLabelPaint.text = TextSpan( + axisLabelPaint!.text = TextSpan( style: TextStyle( - fontSize: _xAxis.textSize, - color: _xAxis.textColor, - fontFamily: _xAxis.typeface?.fontFamily, - fontWeight: _xAxis.typeface?.fontWeight)); + fontSize: _xAxis!.textSize, + color: _xAxis!.textColor, + fontFamily: _xAxis!.typeface?.fontFamily, + fontWeight: _xAxis!.typeface?.fontWeight)); MPPointF pointF = MPPointF.getInstance1(0, 0); - if (_xAxis.position == XAxisPosition.TOP) { + if (_xAxis!.position == XAxisPosition.TOP) { pointF.x = 0.5; pointF.y = 1.0; - drawLabels(c, viewPortHandler.contentTop(), pointF, _xAxis.position); - } else if (_xAxis.position == XAxisPosition.TOP_INSIDE) { + drawLabels(c, viewPortHandler!.contentTop(), pointF, _xAxis!.position); + } else if (_xAxis!.position == XAxisPosition.TOP_INSIDE) { pointF.x = 0.5; pointF.y = 1.0; - drawLabels(c, viewPortHandler.contentTop() + _xAxis.labelRotatedHeight, - pointF, _xAxis.position); - } else if (_xAxis.position == XAxisPosition.BOTTOM) { + drawLabels(c, viewPortHandler!.contentTop() + _xAxis!.labelRotatedHeight, + pointF, _xAxis!.position); + } else if (_xAxis!.position == XAxisPosition.BOTTOM) { pointF.x = 0.5; pointF.y = 0.0; - drawLabels(c, viewPortHandler.contentBottom(), pointF, _xAxis.position); - } else if (_xAxis.position == XAxisPosition.BOTTOM_INSIDE) { + drawLabels(c, viewPortHandler!.contentBottom(), pointF, _xAxis!.position); + } else if (_xAxis!.position == XAxisPosition.BOTTOM_INSIDE) { pointF.x = 0.5; pointF.y = 0.0; - drawLabels(c, viewPortHandler.contentBottom() - _xAxis.labelRotatedHeight, - pointF, _xAxis.position); + drawLabels(c, viewPortHandler!.contentBottom() - _xAxis!.labelRotatedHeight, + pointF, _xAxis!.position); } else { // BOTH SIDED pointF.x = 0.5; pointF.y = 1.0; - drawLabels(c, viewPortHandler.contentTop(), pointF, XAxisPosition.TOP); + drawLabels(c, viewPortHandler!.contentTop(), pointF, XAxisPosition.TOP); pointF.x = 0.5; pointF.y = 0.0; drawLabels( - c, viewPortHandler.contentBottom(), pointF, XAxisPosition.BOTTOM); + c, viewPortHandler!.contentBottom(), pointF, XAxisPosition.BOTTOM); } MPPointF.recycleInstance(pointF); } @@ -138,41 +138,41 @@ class XAxisRenderer extends AxisRenderer { @override void renderAxisLine(Canvas c) { - if (!_xAxis.drawAxisLine || !_xAxis.enabled) return; + if (!_xAxis!.drawAxisLine || !_xAxis!.enabled) return; axisLinePaint = Paint() ..style = PaintingStyle.stroke - ..color = _xAxis.axisLineColor - ..strokeWidth = _xAxis.axisLineWidth; + ..color = _xAxis!.axisLineColor + ..strokeWidth = _xAxis!.axisLineWidth; - if (_xAxis.position == XAxisPosition.TOP || - _xAxis.position == XAxisPosition.TOP_INSIDE || - _xAxis.position == XAxisPosition.BOTH_SIDED) { + if (_xAxis!.position == XAxisPosition.TOP || + _xAxis!.position == XAxisPosition.TOP_INSIDE || + _xAxis!.position == XAxisPosition.BOTH_SIDED) { _axisLinePath.reset(); _axisLinePath.moveTo( - viewPortHandler.contentLeft(), viewPortHandler.contentTop()); + viewPortHandler!.contentLeft(), viewPortHandler!.contentTop()); _axisLinePath.lineTo( - viewPortHandler.contentRight(), viewPortHandler.contentTop()); - if (xAxis.axisLineDashPathEffect != null) { + viewPortHandler!.contentRight(), viewPortHandler!.contentTop()); + if (xAxis!.axisLineDashPathEffect != null) { _axisLinePath = - xAxis.axisLineDashPathEffect.convert2DashPath(_axisLinePath); + xAxis!.axisLineDashPathEffect!.convert2DashPath(_axisLinePath); } - c.drawPath(_axisLinePath, axisLinePaint); + c.drawPath(_axisLinePath, axisLinePaint!); } - if (_xAxis.position == XAxisPosition.BOTTOM || - _xAxis.position == XAxisPosition.BOTTOM_INSIDE || - _xAxis.position == XAxisPosition.BOTH_SIDED) { + if (_xAxis!.position == XAxisPosition.BOTTOM || + _xAxis!.position == XAxisPosition.BOTTOM_INSIDE || + _xAxis!.position == XAxisPosition.BOTH_SIDED) { _axisLinePath.reset(); _axisLinePath.moveTo( - viewPortHandler.contentLeft(), viewPortHandler.contentBottom()); + viewPortHandler!.contentLeft(), viewPortHandler!.contentBottom()); _axisLinePath.lineTo( - viewPortHandler.contentRight(), viewPortHandler.contentBottom()); - if (xAxis.axisLineDashPathEffect != null) { + viewPortHandler!.contentRight(), viewPortHandler!.contentBottom()); + if (xAxis!.axisLineDashPathEffect != null) { _axisLinePath = - xAxis.axisLineDashPathEffect.convert2DashPath(_axisLinePath); + xAxis!.axisLineDashPathEffect!.convert2DashPath(_axisLinePath); } - c.drawPath(_axisLinePath, axisLinePaint); + c.drawPath(_axisLinePath, axisLinePaint!); } } @@ -181,44 +181,44 @@ class XAxisRenderer extends AxisRenderer { /// @param pos void drawLabels(Canvas c, double pos, MPPointF anchor, XAxisPosition position) { - final double labelRotationAngleDegrees = _xAxis.labelRotationAngle; - bool centeringEnabled = _xAxis.isCenterAxisLabelsEnabled(); + final double labelRotationAngleDegrees = _xAxis!.labelRotationAngle; + bool centeringEnabled = _xAxis!.isCenterAxisLabelsEnabled(); - List positions = List(_xAxis.entryCount * 2); + List positions = List(_xAxis!.entryCount * 2); for (int i = 0; i < positions.length; i += 2) { // only fill x values if (centeringEnabled) { - positions[i] = _xAxis.centeredEntries[i ~/ 2]; + positions[i] = _xAxis!.centeredEntries[i ~/ 2]; } else { - positions[i] = _xAxis.entries[i ~/ 2]; + positions[i] = _xAxis!.entries[i ~/ 2]; } positions[i + 1] = 0; } - trans.pointValuesToPixel(positions); + trans!.pointValuesToPixel(positions); for (int i = 0; i < positions.length; i += 2) { - double x = positions[i]; + double? x = positions[i]; - if (viewPortHandler.isInBoundsX(x)) { - String label = _xAxis - .getValueFormatter() - .getAxisLabel(_xAxis.entries[i ~/ 2], _xAxis); + if (viewPortHandler!.isInBoundsX(x)) { + String label = _xAxis! + .getValueFormatter()! + .getAxisLabel(_xAxis!.entries[i ~/ 2], _xAxis); - if (_xAxis.avoidFirstLastClipping) { + if (_xAxis!.avoidFirstLastClipping) { // avoid clipping of the last - if (i / 2 == _xAxis.entryCount - 1 && _xAxis.entryCount > 1) { + if (i / 2 == _xAxis!.entryCount - 1 && _xAxis!.entryCount > 1) { double width = - Utils.calcTextWidth(axisLabelPaint, label).toDouble(); + Utils.calcTextWidth(axisLabelPaint!, label).toDouble(); - if (width > viewPortHandler.offsetRight() * 2 && - x + width > viewPortHandler.getChartWidth()) x -= width / 2; + if (width > viewPortHandler!.offsetRight() * 2 && + x! + width > viewPortHandler!.getChartWidth()) x -= width / 2; // avoid clipping of the first } else if (i == 0) { double width = - Utils.calcTextWidth(axisLabelPaint, label).toDouble(); + Utils.calcTextWidth(axisLabelPaint!, label).toDouble(); x += width / 2; } } @@ -235,39 +235,39 @@ class XAxisRenderer extends AxisRenderer { } } - void drawLabel(Canvas c, String formattedLabel, double x, double y, + void drawLabel(Canvas c, String formattedLabel, double? x, double y, MPPointF anchor, double angleDegrees, XAxisPosition position) { Utils.drawXAxisValue( c, formattedLabel, x, y, - axisLabelPaint, + axisLabelPaint!, anchor, angleDegrees, position); } Path mRenderGridLinesPath = Path(); - List mRenderGridLinesBuffer = List(2); + List mRenderGridLinesBuffer = List(2); @override void renderGridLines(Canvas c) { - if (!_xAxis.drawGridLines || !_xAxis.enabled) return; + if (!_xAxis!.drawGridLines || !_xAxis!.enabled) return; c.save(); c.clipRect(getGridClippingRect()); - if (mRenderGridLinesBuffer.length != axis.entryCount * 2) { - mRenderGridLinesBuffer = List(_xAxis.entryCount * 2); + if (mRenderGridLinesBuffer.length != axis!.entryCount * 2) { + mRenderGridLinesBuffer = List(_xAxis!.entryCount * 2); } - List positions = mRenderGridLinesBuffer; + List positions = mRenderGridLinesBuffer; for (int i = 0; i < positions.length; i += 2) { - positions[i] = _xAxis.entries[i ~/ 2]; - positions[i + 1] = _xAxis.entries[i ~/ 2]; + positions[i] = _xAxis!.entries[i ~/ 2]; + positions[i + 1] = _xAxis!.entries[i ~/ 2]; } - trans.pointValuesToPixel(positions); + trans!.pointValuesToPixel(positions); setupGridPaint(); @@ -275,7 +275,7 @@ class XAxisRenderer extends AxisRenderer { gridLinePath.reset(); for (int i = 0; i < positions.length; i += 2) { - drawGridLine(c, positions[i], positions[i + 1], gridLinePath); + drawGridLine(c, positions[i]!, positions[i + 1], gridLinePath); } c.restore(); @@ -285,16 +285,16 @@ class XAxisRenderer extends AxisRenderer { Rect getGridClippingRect() { mGridClippingRect = Rect.fromLTRB( - viewPortHandler + viewPortHandler! .getContentRect() - .left - axis.gridLineWidth, - viewPortHandler + .left - axis!.gridLineWidth, + viewPortHandler! .getContentRect() - .top - axis.gridLineWidth, - viewPortHandler + .top - axis!.gridLineWidth, + viewPortHandler! .getContentRect() .right, - viewPortHandler + viewPortHandler! .getContentRect() .bottom); return mGridClippingRect; @@ -306,21 +306,21 @@ class XAxisRenderer extends AxisRenderer { /// @param x /// @param y /// @param gridLinePath - void drawGridLine(Canvas c, double x, double y, Path path) { - path.moveTo(x, viewPortHandler.contentBottom()); - path.lineTo(x, viewPortHandler.contentTop()); + void drawGridLine(Canvas c, double x, double? y, Path path) { + path.moveTo(x, viewPortHandler!.contentBottom()); + path.lineTo(x, viewPortHandler!.contentTop()); // draw a path because lines don't support dashing on lower android versions - if (xAxis.gridDashPathEffect != null) { - path = xAxis.gridDashPathEffect.convert2DashPath(path); + if (xAxis!.gridDashPathEffect != null) { + path = xAxis!.gridDashPathEffect!.convert2DashPath(path); } - c.drawPath(path, gridPaint); + c.drawPath(path, gridPaint!); path.reset(); } - List mRenderLimitLinesBuffer = List(2); + List mRenderLimitLinesBuffer = List(2); Rect mLimitLineClippingRect = Rect.zero; /// Draws the LimitLines associated with this axis to the screen. @@ -328,11 +328,11 @@ class XAxisRenderer extends AxisRenderer { /// @param c @override void renderLimitLines(Canvas c) { - List limitLines = _xAxis.getLimitLines(); + List? limitLines = _xAxis!.getLimitLines(); if (limitLines == null || limitLines.length <= 0) return; - List position = mRenderLimitLinesBuffer; + List position = mRenderLimitLinesBuffer; position[0] = 0; position[1] = 0; @@ -343,16 +343,16 @@ class XAxisRenderer extends AxisRenderer { c.save(); mLimitLineClippingRect = Rect.fromLTRB( - viewPortHandler + viewPortHandler! .getContentRect() - .left - l.lineWidth, - viewPortHandler + .left - l.lineWidth!, + viewPortHandler! .getContentRect() - .top - l.lineWidth, - viewPortHandler + .top - l.lineWidth!, + viewPortHandler! .getContentRect() .right, - viewPortHandler + viewPortHandler! .getContentRect() .bottom); c.clipRect(mLimitLineClippingRect); @@ -360,46 +360,46 @@ class XAxisRenderer extends AxisRenderer { position[0] = l.limit; position[1] = 0; - trans.pointValuesToPixel(position); + trans!.pointValuesToPixel(position); renderLimitLineLine(c, l, position); - renderLimitLineLabel(c, l, position, 2.0 + l.yOffset); + renderLimitLineLabel(c, l, position, 2.0 + l.yOffset!); c.restore(); } } - List _limitLineSegmentsBuffer = List(4); + List _limitLineSegmentsBuffer = List(4); Path _limitLinePath = Path(); void renderLimitLineLine(Canvas c, LimitLine limitLine, - List position) { + List position) { _limitLineSegmentsBuffer[0] = position[0]; - _limitLineSegmentsBuffer[1] = viewPortHandler.contentTop(); + _limitLineSegmentsBuffer[1] = viewPortHandler!.contentTop(); _limitLineSegmentsBuffer[2] = position[0]; - _limitLineSegmentsBuffer[3] = viewPortHandler.contentBottom(); + _limitLineSegmentsBuffer[3] = viewPortHandler!.contentBottom(); _limitLinePath.reset(); _limitLinePath.moveTo( - _limitLineSegmentsBuffer[0], _limitLineSegmentsBuffer[1]); + _limitLineSegmentsBuffer[0]!, _limitLineSegmentsBuffer[1]!); _limitLinePath.lineTo( - _limitLineSegmentsBuffer[2], _limitLineSegmentsBuffer[3]); + _limitLineSegmentsBuffer[2]!, _limitLineSegmentsBuffer[3]!); limitLinePaint ..style = PaintingStyle.stroke ..color = limitLine.lineColor - ..strokeWidth = limitLine.lineWidth; + ..strokeWidth = limitLine.lineWidth!; if (limitLine.dashPathEffect != null) { _limitLinePath = - limitLine.dashPathEffect.convert2DashPath(_limitLinePath); + limitLine.dashPathEffect!.convert2DashPath(_limitLinePath); } - c.drawPath(_limitLinePath, limitLinePaint); + c.drawPath(_limitLinePath, limitLinePaint!); } void renderLimitLineLabel(Canvas c, LimitLine limitLine, - List position, double yOffset) { - String label = limitLine.label; + List position, double yOffset) { + String? label = limitLine.label; // if drawing the limit-value label is enabled if (label != null && label.isNotEmpty) { @@ -408,7 +408,7 @@ class XAxisRenderer extends AxisRenderer { fontFamily: limitLine.typeface?.fontFamily, fontWeight: limitLine.typeface?.fontWeight); - double xOffset = limitLine.lineWidth + limitLine.xOffset; + double xOffset = limitLine.lineWidth! + limitLine.xOffset!; final LimitLabelPosition labelPosition = limitLine.labelPosition; @@ -417,15 +417,15 @@ class XAxisRenderer extends AxisRenderer { Utils.calcTextHeight(painter, label).toDouble(); painter.textAlign = TextAlign.left; painter.layout(); - var offset = Offset(position[0] + xOffset, - viewPortHandler.contentTop() + yOffset + labelLineHeight); + var offset = Offset(position[0]! + xOffset, + viewPortHandler!.contentTop() + yOffset + labelLineHeight); CanvasUtils.renderLimitLabelBackground(c, painter, offset, limitLine); painter.paint(c, offset); } else if (labelPosition == LimitLabelPosition.RIGHT_BOTTOM) { painter.textAlign = TextAlign.left; painter.layout(); - var offset = Offset(position[0] + xOffset, - viewPortHandler.contentBottom() - yOffset - painter.height); + var offset = Offset(position[0]! + xOffset, + viewPortHandler!.contentBottom() - yOffset - painter.height); CanvasUtils.renderLimitLabelBackground(c, painter, offset, limitLine); painter.paint(c, offset); } else if (labelPosition == LimitLabelPosition.CENTER_TOP) { @@ -433,15 +433,15 @@ class XAxisRenderer extends AxisRenderer { Utils.calcTextHeight(painter, label).toDouble(); painter.textAlign = TextAlign.left; painter.layout(); - var offset = Offset(position[0] - painter.width / 2, - viewPortHandler.contentTop() + yOffset + labelLineHeight); + var offset = Offset(position[0]! - painter.width / 2, + viewPortHandler!.contentTop() + yOffset + labelLineHeight); CanvasUtils.renderLimitLabelBackground(c, painter, offset, limitLine); painter.paint(c, offset); } else if (labelPosition == LimitLabelPosition.CENTER_BOTTOM) { painter.textAlign = TextAlign.right; painter.layout(); - var offset = Offset(position[0] - painter.width / 2, - viewPortHandler.contentBottom() - yOffset - painter.height); + var offset = Offset(position[0]! - painter.width / 2, + viewPortHandler!.contentBottom() - yOffset - painter.height); CanvasUtils.renderLimitLabelBackground(c, painter, offset, limitLine); painter.paint(c, offset); } else if (labelPosition == LimitLabelPosition.LEFT_TOP) { @@ -449,15 +449,15 @@ class XAxisRenderer extends AxisRenderer { final double labelLineHeight = Utils.calcTextHeight(painter, label).toDouble(); painter.layout(); - var offset = Offset(position[0] - xOffset - painter.width, - viewPortHandler.contentTop() + yOffset + labelLineHeight); + var offset = Offset(position[0]! - xOffset - painter.width, + viewPortHandler!.contentTop() + yOffset + labelLineHeight); CanvasUtils.renderLimitLabelBackground(c, painter, offset, limitLine); painter.paint(c, offset); } else { painter.textAlign = TextAlign.right; painter.layout(); - var offset = Offset(position[0] - xOffset - painter.width, - viewPortHandler.contentBottom() - yOffset - painter.height); + var offset = Offset(position[0]! - xOffset - painter.width, + viewPortHandler!.contentBottom() - yOffset - painter.height); CanvasUtils.renderLimitLabelBackground(c, painter, offset, limitLine); painter.paint(c, offset); } diff --git a/mp_chart/lib/mp/core/render/x_axis_renderer_horizontal_bar_chart.dart b/mp_chart/lib/mp/core/render/x_axis_renderer_horizontal_bar_chart.dart index f35e9e74..830562b8 100644 --- a/mp_chart/lib/mp/core/render/x_axis_renderer_horizontal_bar_chart.dart +++ b/mp_chart/lib/mp/core/render/x_axis_renderer_horizontal_bar_chart.dart @@ -15,19 +15,19 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; class XAxisRendererHorizontalBarChart extends XAxisRenderer { XAxisRendererHorizontalBarChart( - ViewPortHandler viewPortHandler, XAxis xAxis, Transformer trans) + ViewPortHandler? viewPortHandler, XAxis? xAxis, Transformer? trans) : super(viewPortHandler, xAxis, trans); @override - void computeAxis(double min, double max, bool inverted) { + void computeAxis(double? min, double? max, bool inverted) { // calculate the starting and entry point of the y-labels (depending on // zoom / contentrect bounds) - if (viewPortHandler.contentWidth() > 10 && - !viewPortHandler.isFullyZoomedOutY()) { - MPPointD p1 = trans.getValuesByTouchPoint1( - viewPortHandler.contentLeft(), viewPortHandler.contentBottom()); - MPPointD p2 = trans.getValuesByTouchPoint1( - viewPortHandler.contentLeft(), viewPortHandler.contentTop()); + if (viewPortHandler!.contentWidth() > 10 && + !viewPortHandler!.isFullyZoomedOutY()) { + MPPointD p1 = trans!.getValuesByTouchPoint1( + viewPortHandler!.contentLeft(), viewPortHandler!.contentBottom()); + MPPointD p2 = trans!.getValuesByTouchPoint1( + viewPortHandler!.contentLeft(), viewPortHandler!.contentTop()); if (inverted) { min = p2.y; @@ -41,7 +41,7 @@ class XAxisRendererHorizontalBarChart extends XAxisRenderer { MPPointD.recycleInstance2(p2); } - computeAxisValues(min, max); + computeAxisValues(min!, max!); } @override @@ -49,68 +49,68 @@ class XAxisRendererHorizontalBarChart extends XAxisRenderer { axisLabelPaint = PainterUtils.create( axisLabelPaint, null, - axisLabelPaint.text.style.color == null + axisLabelPaint!.text!.style!.color == null ? ColorUtils.HOLO_GREEN_DARK - : axisLabelPaint.text.style.color, - xAxis.textSize, - fontWeight: xAxis.typeface?.fontWeight, - fontFamily: xAxis.typeface?.fontFamily); + : axisLabelPaint!.text!.style!.color, + xAxis!.textSize, + fontWeight: xAxis!.typeface?.fontWeight, + fontFamily: xAxis!.typeface?.fontFamily); - String longest = xAxis.getLongestLabel(); + String longest = xAxis!.getLongestLabel(); - final FSize labelSize = Utils.calcTextSize1(axisLabelPaint, longest); + final FSize labelSize = Utils.calcTextSize1(axisLabelPaint!, longest); final double labelWidth = - (labelSize.width + xAxis.xOffset * 3.5).toInt().toDouble(); + (labelSize.width + xAxis!.xOffset! * 3.5).toInt().toDouble(); final double labelHeight = labelSize.height; final FSize labelRotatedSize = Utils.getSizeOfRotatedRectangleByDegrees( - labelSize.width, labelHeight, xAxis.labelRotationAngle); + labelSize.width, labelHeight, xAxis!.labelRotationAngle); - xAxis.labelWidth = labelWidth.round(); - xAxis.labelHeight = labelHeight.round(); - xAxis.labelRotatedWidth = - (labelRotatedSize.width + xAxis.xOffset * 3.5).toInt(); - xAxis.labelRotatedHeight = labelRotatedSize.height.round(); + xAxis!.labelWidth = labelWidth.round(); + xAxis!.labelHeight = labelHeight.round(); + xAxis!.labelRotatedWidth = + (labelRotatedSize.width + xAxis!.xOffset! * 3.5).toInt(); + xAxis!.labelRotatedHeight = labelRotatedSize.height.round(); FSize.recycleInstance(labelRotatedSize); } @override void renderAxisLabels(Canvas c) { - if (!xAxis.enabled || !xAxis.drawLabels) return; + if (!xAxis!.enabled || !xAxis!.drawLabels) return; axisLabelPaint = PainterUtils.create( - axisLabelPaint, null, xAxis.textColor, xAxis.textSize, - fontFamily: xAxis.typeface?.fontFamily, - fontWeight: xAxis.typeface?.fontWeight); + axisLabelPaint, null, xAxis!.textColor, xAxis!.textSize, + fontFamily: xAxis!.typeface?.fontFamily, + fontWeight: xAxis!.typeface?.fontWeight); MPPointF pointF = MPPointF.getInstance1(0, 0); - if (xAxis.position == XAxisPosition.TOP) { + if (xAxis!.position == XAxisPosition.TOP) { pointF.x = 0.0; pointF.y = 0.5; - drawLabels(c, viewPortHandler.contentRight(), pointF, xAxis.position); - } else if (xAxis.position == XAxisPosition.TOP_INSIDE) { + drawLabels(c, viewPortHandler!.contentRight(), pointF, xAxis!.position); + } else if (xAxis!.position == XAxisPosition.TOP_INSIDE) { pointF.x = 1.0; pointF.y = 0.5; - drawLabels(c, viewPortHandler.contentRight(), pointF, xAxis.position); - } else if (xAxis.position == XAxisPosition.BOTTOM) { + drawLabels(c, viewPortHandler!.contentRight(), pointF, xAxis!.position); + } else if (xAxis!.position == XAxisPosition.BOTTOM) { pointF.x = 1.0; pointF.y = 0.5; - drawLabels(c, viewPortHandler.contentLeft(), pointF, xAxis.position); - } else if (xAxis.position == XAxisPosition.BOTTOM_INSIDE) { + drawLabels(c, viewPortHandler!.contentLeft(), pointF, xAxis!.position); + } else if (xAxis!.position == XAxisPosition.BOTTOM_INSIDE) { pointF.x = 1.0; pointF.y = 0.5; - drawLabels(c, viewPortHandler.contentLeft(), pointF, xAxis.position); + drawLabels(c, viewPortHandler!.contentLeft(), pointF, xAxis!.position); } else { // BOTH SIDED pointF.x = 0.0; pointF.y = 0.5; - drawLabels(c, viewPortHandler.contentRight(), pointF, xAxis.position); + drawLabels(c, viewPortHandler!.contentRight(), pointF, xAxis!.position); pointF.x = 1.0; pointF.y = 0.5; - drawLabels(c, viewPortHandler.contentLeft(), pointF, xAxis.position); + drawLabels(c, viewPortHandler!.contentLeft(), pointF, xAxis!.position); } MPPointF.recycleInstance(pointF); @@ -119,30 +119,30 @@ class XAxisRendererHorizontalBarChart extends XAxisRenderer { @override void drawLabels( Canvas c, double pos, MPPointF anchor, XAxisPosition position) { - final double labelRotationAngleDegrees = xAxis.labelRotationAngle; - bool centeringEnabled = xAxis.isCenterAxisLabelsEnabled(); + final double labelRotationAngleDegrees = xAxis!.labelRotationAngle; + bool centeringEnabled = xAxis!.isCenterAxisLabelsEnabled(); - List positions = List(xAxis.entryCount * 2); + List positions = List(xAxis!.entryCount * 2); for (int i = 0; i < positions.length; i += 2) { // only fill x values if (centeringEnabled) { - positions[i + 1] = xAxis.centeredEntries[i ~/ 2]; + positions[i + 1] = xAxis!.centeredEntries[i ~/ 2]; } else { - positions[i + 1] = xAxis.entries[i ~/ 2]; + positions[i + 1] = xAxis!.entries[i ~/ 2]; } } - trans.pointValuesToPixel(positions); + trans!.pointValuesToPixel(positions); for (int i = 0; i < positions.length; i += 2) { - double y = positions[i + 1]; + double? y = positions[i + 1]; - if (viewPortHandler.isInBoundsY(y)) { - String label = xAxis - .getValueFormatter() - .getAxisLabel(xAxis.entries[i ~/ 2], xAxis); - Utils.drawXAxisValueHorizontal(c, label, pos, y, axisLabelPaint, anchor, + if (viewPortHandler!.isInBoundsY(y)) { + String label = xAxis! + .getValueFormatter()! + .getAxisLabel(xAxis!.entries[i ~/ 2], xAxis); + Utils.drawXAxisValueHorizontal(c, label, pos, y, axisLabelPaint!, anchor, labelRotationAngleDegrees, position); } } @@ -151,51 +151,51 @@ class XAxisRendererHorizontalBarChart extends XAxisRenderer { @override Rect getGridClippingRect() { mGridClippingRect = Rect.fromLTRB( - viewPortHandler.getContentRect().left, - viewPortHandler.getContentRect().top, - viewPortHandler.getContentRect().right + axis.gridLineWidth, - viewPortHandler.getContentRect().bottom + axis.gridLineWidth); + viewPortHandler!.getContentRect().left, + viewPortHandler!.getContentRect().top, + viewPortHandler!.getContentRect().right + axis!.gridLineWidth, + viewPortHandler!.getContentRect().bottom + axis!.gridLineWidth); return mGridClippingRect; } @override - void drawGridLine(Canvas c, double x, double y, Path gridLinePath) { - gridLinePath.moveTo(viewPortHandler.contentRight(), y); - gridLinePath.lineTo(viewPortHandler.contentLeft(), y); + void drawGridLine(Canvas c, double x, double? y, Path gridLinePath) { + gridLinePath.moveTo(viewPortHandler!.contentRight(), y!); + gridLinePath.lineTo(viewPortHandler!.contentLeft(), y); // draw a path because lines don't support dashing on lower android versions - c.drawPath(gridLinePath, gridPaint); + c.drawPath(gridLinePath, gridPaint!); gridLinePath.reset(); } @override void renderAxisLine(Canvas c) { - if (!xAxis.drawAxisLine || !xAxis.enabled) return; + if (!xAxis!.drawAxisLine || !xAxis!.enabled) return; axisLinePaint = Paint() ..style = PaintingStyle.stroke - ..color = xAxis.axisLineColor - ..strokeWidth = xAxis.axisLineWidth; + ..color = xAxis!.axisLineColor + ..strokeWidth = xAxis!.axisLineWidth; - if (xAxis.position == XAxisPosition.TOP || - xAxis.position == XAxisPosition.TOP_INSIDE || - xAxis.position == XAxisPosition.BOTH_SIDED) { + if (xAxis!.position == XAxisPosition.TOP || + xAxis!.position == XAxisPosition.TOP_INSIDE || + xAxis!.position == XAxisPosition.BOTH_SIDED) { c.drawLine( - Offset(viewPortHandler.contentRight(), viewPortHandler.contentTop()), + Offset(viewPortHandler!.contentRight(), viewPortHandler!.contentTop()), Offset( - viewPortHandler.contentRight(), viewPortHandler.contentBottom()), - axisLinePaint); + viewPortHandler!.contentRight(), viewPortHandler!.contentBottom()), + axisLinePaint!); } - if (xAxis.position == XAxisPosition.BOTTOM || - xAxis.position == XAxisPosition.BOTTOM_INSIDE || - xAxis.position == XAxisPosition.BOTH_SIDED) { + if (xAxis!.position == XAxisPosition.BOTTOM || + xAxis!.position == XAxisPosition.BOTTOM_INSIDE || + xAxis!.position == XAxisPosition.BOTH_SIDED) { c.drawLine( - Offset(viewPortHandler.contentLeft(), viewPortHandler.contentTop()), + Offset(viewPortHandler!.contentLeft(), viewPortHandler!.contentTop()), Offset( - viewPortHandler.contentLeft(), viewPortHandler.contentBottom()), - axisLinePaint); + viewPortHandler!.contentLeft(), viewPortHandler!.contentBottom()), + axisLinePaint!); } } @@ -207,11 +207,11 @@ class XAxisRendererHorizontalBarChart extends XAxisRenderer { /// @param c @override void renderLimitLines(Canvas c) { - List limitLines = xAxis.getLimitLines(); + List? limitLines = xAxis!.getLimitLines(); if (limitLines == null || limitLines.length <= 0) return; - List pts = mRenderLimitLinesBuffer; + List pts = mRenderLimitLinesBuffer; pts[0] = 0; pts[1] = 0; @@ -225,92 +225,92 @@ class XAxisRendererHorizontalBarChart extends XAxisRenderer { c.save(); mLimitLineClippingRect = Rect.fromLTRB( - viewPortHandler.getContentRect().left, - viewPortHandler.getContentRect().top, - viewPortHandler.getContentRect().right + l.lineWidth, - viewPortHandler.getContentRect().bottom + l.lineWidth); + viewPortHandler!.getContentRect().left, + viewPortHandler!.getContentRect().top, + viewPortHandler!.getContentRect().right + l.lineWidth!, + viewPortHandler!.getContentRect().bottom + l.lineWidth!); c.clipRect(mLimitLineClippingRect); limitLinePaint ..style = PaintingStyle.stroke ..color = l.lineColor - ..strokeWidth = l.lineWidth; + ..strokeWidth = l.lineWidth!; pts[1] = l.limit; - trans.pointValuesToPixel(pts); + trans!.pointValuesToPixel(pts); - limitLinePath.moveTo(viewPortHandler.contentLeft(), pts[1]); - limitLinePath.lineTo(viewPortHandler.contentRight(), pts[1]); + limitLinePath.moveTo(viewPortHandler!.contentLeft(), pts[1]!); + limitLinePath.lineTo(viewPortHandler!.contentRight(), pts[1]!); if (l.dashPathEffect != null) { - limitLinePath = l.dashPathEffect.convert2DashPath(limitLinePath); + limitLinePath = l.dashPathEffect!.convert2DashPath(limitLinePath); } - c.drawPath(limitLinePath, limitLinePaint); + c.drawPath(limitLinePath, limitLinePaint!); limitLinePath.reset(); - String label = l.label; + String? label = l.label; // if drawing the limit-value label is enabled if (label != null && label.isNotEmpty) { final double labelLineHeight = - Utils.calcTextHeight(axisLabelPaint, label).toDouble(); - double xOffset = l.xOffset; - double yOffset = l.lineWidth + labelLineHeight + l.yOffset; + Utils.calcTextHeight(axisLabelPaint!, label).toDouble(); + double? xOffset = l.xOffset; + double yOffset = l.lineWidth! + labelLineHeight + l.yOffset!; final LimitLabelPosition position = l.labelPosition; if (position == LimitLabelPosition.RIGHT_TOP) { axisLabelPaint = PainterUtils.create( axisLabelPaint, label, l.textColor, l.textSize); - axisLabelPaint.layout(); + axisLabelPaint!.layout(); var offset = Offset( - viewPortHandler.contentRight() - xOffset - axisLabelPaint.width, - pts[1] - yOffset); + viewPortHandler!.contentRight() - xOffset! - axisLabelPaint!.width, + pts[1]! - yOffset); CanvasUtils.renderLimitLabelBackground(c, axisLabelPaint, offset, l); - axisLabelPaint.paint(c, offset); + axisLabelPaint!.paint(c, offset); } else if (position == LimitLabelPosition.RIGHT_BOTTOM) { axisLabelPaint = PainterUtils.create( axisLabelPaint, label, l.textColor, l.textSize); - axisLabelPaint.layout(); + axisLabelPaint!.layout(); var offset = Offset( - viewPortHandler.contentRight() - xOffset - axisLabelPaint.width, - pts[1] + yOffset); + viewPortHandler!.contentRight() - xOffset! - axisLabelPaint!.width, + pts[1]! + yOffset); CanvasUtils.renderLimitLabelBackground(c, axisLabelPaint, offset, l); - axisLabelPaint.paint(c, offset); + axisLabelPaint!.paint(c, offset); } else if (position == LimitLabelPosition.RIGHT_CENTER) { axisLabelPaint = PainterUtils.create( axisLabelPaint, label, l.textColor, l.textSize); - axisLabelPaint.layout(); + axisLabelPaint!.layout(); var offset = Offset( - viewPortHandler.contentRight() - xOffset - axisLabelPaint.width, - pts[1] - axisLabelPaint.height / 2); + viewPortHandler!.contentRight() - xOffset! - axisLabelPaint!.width, + pts[1]! - axisLabelPaint!.height / 2); CanvasUtils.renderLimitLabelBackground(c, axisLabelPaint, offset, l); - axisLabelPaint.paint(c, offset); + axisLabelPaint!.paint(c, offset); } else if (position == LimitLabelPosition.LEFT_CENTER) { axisLabelPaint = PainterUtils.create( axisLabelPaint, label, l.textColor, l.textSize); - axisLabelPaint.layout(); - var offset = Offset(viewPortHandler.contentLeft() + xOffset, - pts[1] - axisLabelPaint.height / 2); + axisLabelPaint!.layout(); + var offset = Offset(viewPortHandler!.contentLeft() + xOffset!, + pts[1]! - axisLabelPaint!.height / 2); CanvasUtils.renderLimitLabelBackground(c, axisLabelPaint, offset, l); - axisLabelPaint.paint(c, offset); + axisLabelPaint!.paint(c, offset); } else if (position == LimitLabelPosition.LEFT_TOP) { axisLabelPaint = PainterUtils.create( axisLabelPaint, label, l.textColor, l.textSize); - axisLabelPaint.layout(); + axisLabelPaint!.layout(); var offset = - Offset(viewPortHandler.contentLeft() + xOffset, pts[1] - yOffset); + Offset(viewPortHandler!.contentLeft() + xOffset!, pts[1]! - yOffset); CanvasUtils.renderLimitLabelBackground(c, axisLabelPaint, offset, l); - axisLabelPaint.paint(c, offset); + axisLabelPaint!.paint(c, offset); } else { axisLabelPaint = PainterUtils.create( axisLabelPaint, label, l.textColor, l.textSize); - axisLabelPaint.layout(); + axisLabelPaint!.layout(); var offset = - Offset(viewPortHandler.offsetLeft() + xOffset, pts[1] + yOffset); + Offset(viewPortHandler!.offsetLeft() + xOffset!, pts[1]! + yOffset); CanvasUtils.renderLimitLabelBackground(c, axisLabelPaint, offset, l); - axisLabelPaint.paint(c, offset); + axisLabelPaint!.paint(c, offset); } } diff --git a/mp_chart/lib/mp/core/render/x_axis_renderer_radar_chart.dart b/mp_chart/lib/mp/core/render/x_axis_renderer_radar_chart.dart index a342d0e8..218dcd13 100644 --- a/mp_chart/lib/mp/core/render/x_axis_renderer_radar_chart.dart +++ b/mp_chart/lib/mp/core/render/x_axis_renderer_radar_chart.dart @@ -9,25 +9,25 @@ import 'package:mp_chart/mp/core/poolable/point.dart'; import 'package:mp_chart/mp/core/utils/utils.dart'; class XAxisRendererRadarChart extends XAxisRenderer { - RadarChartPainter _painter; + late RadarChartPainter _painter; XAxisRendererRadarChart( - ViewPortHandler viewPortHandler, XAxis xAxis, RadarChartPainter chart) + ViewPortHandler? viewPortHandler, XAxis? xAxis, RadarChartPainter chart) : super(viewPortHandler, xAxis, null) { _painter = chart; } @override void renderAxisLabels(Canvas c) { - if (!xAxis.enabled || !xAxis.drawLabels) return; + if (!xAxis!.enabled || !xAxis!.drawLabels) return; - final double labelRotationAngleDegrees = xAxis.labelRotationAngle; + final double labelRotationAngleDegrees = xAxis!.labelRotationAngle; final MPPointF drawLabelAnchor = MPPointF.getInstance1(0.5, 0.25); axisLabelPaint = PainterUtils.create( - null, null, xAxis.textColor, xAxis.textSize, - fontWeight: xAxis.typeface?.fontWeight, - fontFamily: xAxis.typeface?.fontFamily); + null, null, xAxis!.textColor, xAxis!.textSize, + fontWeight: xAxis!.typeface?.fontWeight, + fontFamily: xAxis!.typeface?.fontFamily); double sliceangle = _painter.getSliceAngle(); @@ -38,21 +38,21 @@ class XAxisRendererRadarChart extends XAxisRenderer { MPPointF center = _painter.getCenterOffsets(); MPPointF pOut = MPPointF.getInstance1(0, 0); for (int i = 0; - i < _painter.getData().getMaxEntryCountSet().getEntryCount(); + i < _painter.getData()!.getMaxEntryCountSet()!.getEntryCount(); i++) { String label = - xAxis.getValueFormatter().getAxisLabel(i.toDouble(), xAxis); + xAxis!.getValueFormatter()!.getAxisLabel(i.toDouble(), xAxis); double angle = (sliceangle * i + _painter.getRotationAngle()) % 360; Utils.getPosition( center, - _painter.yAxis.axisRange * factor + xAxis.labelRotatedWidth / 2, + _painter.yAxis!.axisRange * factor + xAxis!.labelRotatedWidth / 2, angle, pOut); - drawLabel(c, label, pOut.x, pOut.y - xAxis.labelRotatedHeight / 2.0, - drawLabelAnchor, labelRotationAngleDegrees, xAxis.position); + drawLabel(c, label, pOut.x, pOut.y! - xAxis!.labelRotatedHeight / 2.0, + drawLabelAnchor, labelRotationAngleDegrees, xAxis!.position); } MPPointF.recycleInstance(center); @@ -60,9 +60,9 @@ class XAxisRendererRadarChart extends XAxisRenderer { MPPointF.recycleInstance(drawLabelAnchor); } - void drawLabel(Canvas c, String formattedLabel, double x, double y, + void drawLabel(Canvas c, String formattedLabel, double? x, double y, MPPointF anchor, double angleDegrees, XAxisPosition position) { - Utils.drawRadarXAxisValue(c, formattedLabel, x, y, axisLabelPaint, anchor, + Utils.drawRadarXAxisValue(c, formattedLabel, x, y, axisLabelPaint!, anchor, angleDegrees, position); } diff --git a/mp_chart/lib/mp/core/render/x_shape_renderer.dart b/mp_chart/lib/mp/core/render/x_shape_renderer.dart index bf3a7cbf..793c9781 100644 --- a/mp_chart/lib/mp/core/render/x_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/x_shape_renderer.dart @@ -10,18 +10,18 @@ class XShapeRenderer implements IShapeRenderer { void renderShape( Canvas c, IScatterDataSet dataSet, - ViewPortHandler viewPortHandler, - double posX, - double posY, - Paint renderPaint) { + ViewPortHandler? viewPortHandler, + double? posX, + double? posY, + Paint? renderPaint) { final double shapeHalf = dataSet.getScatterShapeSize() / 2; renderPaint ..style = PaintingStyle.stroke - ..strokeWidth = Utils.convertDpToPixel(1); + ..strokeWidth = Utils.convertDpToPixel(1)!; - c.drawLine(Offset(posX - shapeHalf, posY - shapeHalf), - Offset(posX + shapeHalf, posY + shapeHalf), renderPaint); + c.drawLine(Offset(posX! - shapeHalf, posY! - shapeHalf), + Offset(posX + shapeHalf, posY + shapeHalf), renderPaint!); c.drawLine(Offset(posX + shapeHalf, posY - shapeHalf), Offset(posX - shapeHalf, posY + shapeHalf), renderPaint); } diff --git a/mp_chart/lib/mp/core/render/y_axis_renderer.dart b/mp_chart/lib/mp/core/render/y_axis_renderer.dart index 182d5aef..0e697262 100644 --- a/mp_chart/lib/mp/core/render/y_axis_renderer.dart +++ b/mp_chart/lib/mp/core/render/y_axis_renderer.dart @@ -16,11 +16,11 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; import 'package:mp_chart/mp/core/view_port.dart'; class YAxisRenderer extends AxisRenderer { - YAxis _yAxis; + YAxis? _yAxis; - Paint _zeroLinePaint; + Paint? _zeroLinePaint; - YAxisRenderer(ViewPortHandler viewPortHandler, YAxis yAxis, Transformer trans) + YAxisRenderer(ViewPortHandler? viewPortHandler, YAxis? yAxis, Transformer? trans) : super(viewPortHandler, trans, yAxis) { this._yAxis = yAxis; @@ -35,43 +35,43 @@ class YAxisRenderer extends AxisRenderer { } } - YAxis get yAxis => _yAxis; + YAxis? get yAxis => _yAxis; // ignore: unnecessary_getters_setters - Paint get zeroLinePaint => _zeroLinePaint; + Paint? get zeroLinePaint => _zeroLinePaint; // ignore: unnecessary_getters_setters - set zeroLinePaint(Paint value) { + set zeroLinePaint(Paint? value) { _zeroLinePaint = value; } /// draws the y-axis labels to the screen @override void renderAxisLabels(Canvas c) { - if (!_yAxis.enabled || !_yAxis.drawLabels) return; + if (!_yAxis!.enabled || !_yAxis!.drawLabels) return; - List positions = getTransformedPositions(); + List positions = getTransformedPositions(); - AxisDependency dependency = _yAxis.axisDependency; - YAxisLabelPosition labelPosition = _yAxis.position; + AxisDependency? dependency = _yAxis!.axisDependency; + YAxisLabelPosition labelPosition = _yAxis!.position; double xPos = 0; axisLabelPaint = PainterUtils.create( - axisLabelPaint, null, _yAxis.textColor, _yAxis.textSize, - fontFamily: _yAxis.typeface?.fontFamily, - fontWeight: _yAxis.typeface?.fontWeight); + axisLabelPaint, null, _yAxis!.textColor, _yAxis!.textSize, + fontFamily: _yAxis!.typeface?.fontFamily, + fontWeight: _yAxis!.typeface?.fontWeight); if (dependency == AxisDependency.LEFT) { if (labelPosition == YAxisLabelPosition.OUTSIDE_CHART) { - xPos = viewPortHandler.offsetLeft(); + xPos = viewPortHandler!.offsetLeft(); } else { - xPos = viewPortHandler.offsetLeft(); + xPos = viewPortHandler!.offsetLeft(); } } else { if (labelPosition == YAxisLabelPosition.OUTSIDE_CHART) { - xPos = viewPortHandler.contentRight(); + xPos = viewPortHandler!.contentRight(); } else { - xPos = viewPortHandler.contentRight(); + xPos = viewPortHandler!.contentRight(); } } @@ -80,34 +80,34 @@ class YAxisRenderer extends AxisRenderer { @override void renderAxisLine(Canvas c) { - if (!_yAxis.enabled || !_yAxis.drawAxisLine) return; + if (!_yAxis!.enabled || !_yAxis!.drawAxisLine) return; axisLinePaint = Paint() ..style = PaintingStyle.stroke - ..color = _yAxis.axisLineColor - ..strokeWidth = _yAxis.axisLineWidth; + ..color = _yAxis!.axisLineColor + ..strokeWidth = _yAxis!.axisLineWidth; _renderGridLinesPath.reset(); - if (_yAxis.axisDependency == AxisDependency.LEFT) { + if (_yAxis!.axisDependency == AxisDependency.LEFT) { _renderGridLinesPath.moveTo( - viewPortHandler.contentLeft(), viewPortHandler.contentTop()); + viewPortHandler!.contentLeft(), viewPortHandler!.contentTop()); _renderGridLinesPath.lineTo( - viewPortHandler.contentLeft(), viewPortHandler.contentBottom()); - if (_yAxis.axisLineDashPathEffect != null) { - _renderGridLinesPath = _yAxis.axisLineDashPathEffect + viewPortHandler!.contentLeft(), viewPortHandler!.contentBottom()); + if (_yAxis!.axisLineDashPathEffect != null) { + _renderGridLinesPath = _yAxis!.axisLineDashPathEffect! .convert2DashPath(_renderGridLinesPath); } - c.drawPath(_renderGridLinesPath, axisLinePaint); + c.drawPath(_renderGridLinesPath, axisLinePaint!); } else { _renderGridLinesPath.moveTo( - viewPortHandler.contentRight(), viewPortHandler.contentTop()); + viewPortHandler!.contentRight(), viewPortHandler!.contentTop()); _renderGridLinesPath.lineTo( - viewPortHandler.contentRight(), viewPortHandler.contentBottom()); - if (_yAxis.axisLineDashPathEffect != null) { - _renderGridLinesPath = _yAxis.axisLineDashPathEffect + viewPortHandler!.contentRight(), viewPortHandler!.contentBottom()); + if (_yAxis!.axisLineDashPathEffect != null) { + _renderGridLinesPath = _yAxis!.axisLineDashPathEffect! .convert2DashPath(_renderGridLinesPath); } - c.drawPath(_renderGridLinesPath, axisLinePaint); + c.drawPath(_renderGridLinesPath, axisLinePaint!); } } @@ -118,44 +118,44 @@ class YAxisRenderer extends AxisRenderer { void drawYLabels( Canvas c, double fixedPosition, - List positions, - AxisDependency axisDependency, + List positions, + AxisDependency? axisDependency, YAxisLabelPosition position, ) { - final int from = _yAxis.drawBottomYLabelEntry ? 0 : 1; + final int from = _yAxis!.drawBottomYLabelEntry ? 0 : 1; final int to = - _yAxis.drawTopYLabelEntry ? _yAxis.entryCount : (_yAxis.entryCount - 1); + _yAxis!.drawTopYLabelEntry ? _yAxis!.entryCount : (_yAxis!.entryCount - 1); // draw for (int i = from; i < to; i++) { - String text = _yAxis.getFormattedLabel(i); + String text = _yAxis!.getFormattedLabel(i); - axisLabelPaint.text = - TextSpan(text: text, style: axisLabelPaint.text.style); - axisLabelPaint.layout(); + axisLabelPaint!.text = + TextSpan(text: text, style: axisLabelPaint!.text!.style); + axisLabelPaint!.layout(); if (axisDependency == AxisDependency.LEFT) { if (position == YAxisLabelPosition.OUTSIDE_CHART) { - axisLabelPaint.paint( + axisLabelPaint!.paint( c, - Offset(fixedPosition - axisLabelPaint.width, - positions[i * 2 + 1] - axisLabelPaint.height / 2)); + Offset(fixedPosition - axisLabelPaint!.width, + positions[i * 2 + 1]! - axisLabelPaint!.height / 2)); } else { - axisLabelPaint.paint( + axisLabelPaint!.paint( c, Offset(fixedPosition, - positions[i * 2 + 1] - axisLabelPaint.height / 2)); + positions[i * 2 + 1]! - axisLabelPaint!.height / 2)); } } else { if (position == YAxisLabelPosition.OUTSIDE_CHART) { - axisLabelPaint.paint( + axisLabelPaint!.paint( c, Offset(fixedPosition, - positions[i * 2 + 1] - axisLabelPaint.height / 2)); + positions[i * 2 + 1]! - axisLabelPaint!.height / 2)); } else { - axisLabelPaint.paint( + axisLabelPaint!.paint( c, - Offset(fixedPosition - axisLabelPaint.width, - positions[i * 2 + 1] - axisLabelPaint.height / 2)); + Offset(fixedPosition - axisLabelPaint!.width, + positions[i * 2 + 1]! - axisLabelPaint!.height / 2)); } } } @@ -165,18 +165,18 @@ class YAxisRenderer extends AxisRenderer { @override void renderGridLines(Canvas c) { - if (!_yAxis.enabled) return; + if (!_yAxis!.enabled) return; - if (_yAxis.drawGridLines) { + if (_yAxis!.drawGridLines) { c.save(); c.clipRect(getGridClippingRect()); - List positions = getTransformedPositions(); + List positions = getTransformedPositions(); gridPaint ..style = PaintingStyle.stroke - ..color = _yAxis.gridColor - ..strokeWidth = _yAxis.gridLineWidth; + ..color = _yAxis!.gridColor + ..strokeWidth = _yAxis!.gridLineWidth; Path gridLinePath = _renderGridLinesPath; gridLinePath.reset(); @@ -184,13 +184,13 @@ class YAxisRenderer extends AxisRenderer { // draw the grid for (int i = 0; i < positions.length; i += 2) { // draw a path because lines don't support dashing on lower android versions - if (yAxis.gridDashPathEffect != null) { + if (yAxis!.gridDashPathEffect != null) { c.drawPath( - yAxis.gridDashPathEffect + yAxis!.gridDashPathEffect! .convert2DashPath(linePath(gridLinePath, i, positions)), - gridPaint); + gridPaint!); } else { - c.drawPath(linePath(gridLinePath, i, positions), gridPaint); + c.drawPath(linePath(gridLinePath, i, positions), gridPaint!); } gridLinePath.reset(); } @@ -198,7 +198,7 @@ class YAxisRenderer extends AxisRenderer { c.restore(); } - if (_yAxis.drawZeroLine) { + if (_yAxis!.drawZeroLine) { drawZeroLine(c); } } @@ -207,10 +207,10 @@ class YAxisRenderer extends AxisRenderer { Rect getGridClippingRect() { _gridClippingRect = Rect.fromLTRB( - viewPortHandler.getContentRect().left, - viewPortHandler.getContentRect().top, - viewPortHandler.getContentRect().right + axis.gridLineWidth, - viewPortHandler.getContentRect().bottom + axis.gridLineWidth); + viewPortHandler!.getContentRect().left, + viewPortHandler!.getContentRect().top, + viewPortHandler!.getContentRect().right + axis!.gridLineWidth, + viewPortHandler!.getContentRect().bottom + axis!.gridLineWidth); return _gridClippingRect; } @@ -220,32 +220,32 @@ class YAxisRenderer extends AxisRenderer { /// @param i /// @param positions /// @return - Path linePath(Path p, int i, List positions) { - p.moveTo(viewPortHandler.offsetLeft(), positions[i + 1]); - p.lineTo(viewPortHandler.contentRight(), positions[i + 1]); + Path linePath(Path p, int i, List positions) { + p.moveTo(viewPortHandler!.offsetLeft(), positions[i + 1]!); + p.lineTo(viewPortHandler!.contentRight(), positions[i + 1]!); return p; } - List mGetTransformedPositionsBuffer = List(2); + List mGetTransformedPositionsBuffer = List(2); /// Transforms the values contained in the axis entries to screen pixels and returns them in form of a double array /// of x- and y-coordinates. /// /// @return - List getTransformedPositions() { - if (mGetTransformedPositionsBuffer.length != _yAxis.entryCount * 2) { - mGetTransformedPositionsBuffer = List(_yAxis.entryCount * 2); + List getTransformedPositions() { + if (mGetTransformedPositionsBuffer.length != _yAxis!.entryCount * 2) { + mGetTransformedPositionsBuffer = List(_yAxis!.entryCount * 2); } - List positions = mGetTransformedPositionsBuffer; + List positions = mGetTransformedPositionsBuffer; for (int i = 0; i < positions.length; i += 2) { // only fill y values, x values are not needed for y-labels positions[i] = 0.0; - positions[i + 1] = _yAxis.entries[i ~/ 2]; + positions[i + 1] = _yAxis!.entries[i ~/ 2]; } - trans.pointValuesToPixel(positions); + trans!.pointValuesToPixel(positions); return positions; } @@ -256,34 +256,34 @@ class YAxisRenderer extends AxisRenderer { void drawZeroLine(Canvas c) { c.save(); _zeroLineClippingRect = Rect.fromLTRB( - viewPortHandler.getContentRect().left, - viewPortHandler.getContentRect().top, - viewPortHandler.getContentRect().right + _yAxis.zeroLineWidth, - viewPortHandler.getContentRect().bottom + _yAxis.zeroLineWidth); + viewPortHandler!.getContentRect().left, + viewPortHandler!.getContentRect().top, + viewPortHandler!.getContentRect().right + _yAxis!.zeroLineWidth, + viewPortHandler!.getContentRect().bottom + _yAxis!.zeroLineWidth); c.clipRect(_zeroLineClippingRect); // draw zero line - MPPointD pos = trans.getPixelForValues(0, 0); + MPPointD pos = trans!.getPixelForValues(0, 0); _zeroLinePaint ..style = PaintingStyle.stroke - ..color = _yAxis.zeroLineColor - ..strokeWidth = _yAxis.zeroLineWidth; + ..color = _yAxis!.zeroLineColor + ..strokeWidth = _yAxis!.zeroLineWidth; Path zeroLinePath = _drawZeroLinePath; zeroLinePath.reset(); - zeroLinePath.moveTo(viewPortHandler.contentLeft(), pos.y); - zeroLinePath.lineTo(viewPortHandler.contentRight(), pos.y); + zeroLinePath.moveTo(viewPortHandler!.contentLeft(), pos.y!); + zeroLinePath.lineTo(viewPortHandler!.contentRight(), pos.y!); // draw a path because lines don't support dashing on lower android versions - c.drawPath(zeroLinePath, _zeroLinePaint); + c.drawPath(zeroLinePath, _zeroLinePaint!); c.restore(); } Path _renderLimitLines = Path(); - List _renderLimitLinesBuffer = List(2); + List _renderLimitLinesBuffer = List(2); Rect _limitLineClippingRect = Rect.zero; // ignore: unnecessary_getters_setters @@ -299,11 +299,11 @@ class YAxisRenderer extends AxisRenderer { /// @param c @override void renderLimitLines(Canvas c) { - List limitLines = _yAxis.getLimitLines(); + List? limitLines = _yAxis!.getLimitLines(); if (limitLines == null || limitLines.length <= 0) return; - List pts = _renderLimitLinesBuffer; + List pts = _renderLimitLinesBuffer; pts[0] = 0; pts[1] = 0; Path limitLinePath = _renderLimitLines; @@ -316,31 +316,31 @@ class YAxisRenderer extends AxisRenderer { c.save(); _limitLineClippingRect = Rect.fromLTRB( - viewPortHandler.getContentRect().left, - viewPortHandler.getContentRect().top, - viewPortHandler.getContentRect().right + l.lineWidth, - viewPortHandler.getContentRect().bottom + l.lineWidth); + viewPortHandler!.getContentRect().left, + viewPortHandler!.getContentRect().top, + viewPortHandler!.getContentRect().right + l.lineWidth!, + viewPortHandler!.getContentRect().bottom + l.lineWidth!); c.clipRect(_limitLineClippingRect); limitLinePaint ..style = PaintingStyle.stroke - ..strokeWidth = l.lineWidth + ..strokeWidth = l.lineWidth! ..color = l.lineColor; pts[1] = l.limit; - trans.pointValuesToPixel(pts); + trans!.pointValuesToPixel(pts); - limitLinePath.moveTo(viewPortHandler.contentLeft(), pts[1]); - limitLinePath.lineTo(viewPortHandler.contentRight(), pts[1]); + limitLinePath.moveTo(viewPortHandler!.contentLeft(), pts[1]!); + limitLinePath.lineTo(viewPortHandler!.contentRight(), pts[1]!); if (l.dashPathEffect != null) { - limitLinePath = l.dashPathEffect.convert2DashPath(limitLinePath); + limitLinePath = l.dashPathEffect!.convert2DashPath(limitLinePath); } - c.drawPath(limitLinePath, limitLinePaint); + c.drawPath(limitLinePath, limitLinePaint!); limitLinePath.reset(); - String label = l.label; + String? label = l.label; // if drawing the limit-value label is enabled if (label != null && label.isNotEmpty) { @@ -350,41 +350,41 @@ class YAxisRenderer extends AxisRenderer { fontFamily: l.typeface?.fontFamily); final double labelLineHeight = Utils.calcTextHeight(painter, label).toDouble(); - double xOffset = Utils.convertDpToPixel(4) + l.xOffset; - double yOffset = l.lineWidth + labelLineHeight + l.yOffset; + double xOffset = Utils.convertDpToPixel(4)! + l.xOffset!; + double yOffset = l.lineWidth! + labelLineHeight + l.yOffset!; painter.layout(); final LimitLabelPosition position = l.labelPosition; if (position == LimitLabelPosition.RIGHT_TOP) { var offset = Offset( - viewPortHandler.contentRight() - xOffset - painter.width, - pts[1] - yOffset + labelLineHeight - painter.height); + viewPortHandler!.contentRight() - xOffset - painter.width, + pts[1]! - yOffset + labelLineHeight - painter.height); CanvasUtils.renderLimitLabelBackground(c, painter, offset, l); painter.paint(c, offset); } else if (position == LimitLabelPosition.RIGHT_BOTTOM) { var offset = Offset( - viewPortHandler.contentRight() - xOffset - painter.width, - pts[1] + yOffset - painter.height); + viewPortHandler!.contentRight() - xOffset - painter.width, + pts[1]! + yOffset - painter.height); CanvasUtils.renderLimitLabelBackground(c, painter, offset, l); painter.paint(c, offset); } else if (position == LimitLabelPosition.RIGHT_CENTER) { var offset = Offset( - viewPortHandler.contentRight() - xOffset - painter.width, - pts[1] - (l.lineWidth + labelLineHeight) / 2); + viewPortHandler!.contentRight() - xOffset - painter.width, + pts[1]! - (l.lineWidth! + labelLineHeight) / 2); CanvasUtils.renderLimitLabelBackground(c, painter, offset, l); painter.paint(c, offset); } else if (position == LimitLabelPosition.LEFT_CENTER) { - var offset = Offset(viewPortHandler.contentLeft() + xOffset, - pts[1] - (l.lineWidth + labelLineHeight) / 2); + var offset = Offset(viewPortHandler!.contentLeft() + xOffset, + pts[1]! - (l.lineWidth! + labelLineHeight) / 2); CanvasUtils.renderLimitLabelBackground(c, painter, offset, l); painter.paint(c, offset); } else if (position == LimitLabelPosition.LEFT_TOP) { - var offset = Offset(viewPortHandler.contentLeft() + xOffset, - pts[1] - yOffset + labelLineHeight - painter.height); + var offset = Offset(viewPortHandler!.contentLeft() + xOffset, + pts[1]! - yOffset + labelLineHeight - painter.height); CanvasUtils.renderLimitLabelBackground(c, painter, offset, l); painter.paint(c, offset); } else { - var offset = Offset(viewPortHandler.offsetLeft() + xOffset, - pts[1] + yOffset - painter.height); + var offset = Offset(viewPortHandler!.offsetLeft() + xOffset, + pts[1]! + yOffset - painter.height); CanvasUtils.renderLimitLabelBackground(c, painter, offset, l); painter.paint(c, offset); } diff --git a/mp_chart/lib/mp/core/render/y_axis_renderer_horizontal_bar_chart.dart b/mp_chart/lib/mp/core/render/y_axis_renderer_horizontal_bar_chart.dart index eb9a5f00..7ebea6b5 100644 --- a/mp_chart/lib/mp/core/render/y_axis_renderer_horizontal_bar_chart.dart +++ b/mp_chart/lib/mp/core/render/y_axis_renderer_horizontal_bar_chart.dart @@ -16,7 +16,7 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; class YAxisRendererHorizontalBarChart extends YAxisRenderer { YAxisRendererHorizontalBarChart( - ViewPortHandler viewPortHandler, YAxis yAxis, Transformer trans) + ViewPortHandler? viewPortHandler, YAxis? yAxis, Transformer? trans) : super(viewPortHandler, yAxis, trans); /// Computes the axis values. @@ -24,15 +24,15 @@ class YAxisRendererHorizontalBarChart extends YAxisRenderer { /// @param yMin - the minimum y-value in the data object for this axis /// @param yMax - the maximum y-value in the data object for this axis @override - void computeAxis(double yMin, double yMax, bool inverted) { + void computeAxis(double? yMin, double? yMax, bool inverted) { // calculate the starting and entry point of the y-labels (depending on // zoom / contentrect bounds) - if (viewPortHandler.contentHeight() > 10 && - !viewPortHandler.isFullyZoomedOutX()) { - MPPointD p1 = trans.getValuesByTouchPoint1( - viewPortHandler.contentLeft(), viewPortHandler.contentTop()); - MPPointD p2 = trans.getValuesByTouchPoint1( - viewPortHandler.contentRight(), viewPortHandler.contentTop()); + if (viewPortHandler!.contentHeight() > 10 && + !viewPortHandler!.isFullyZoomedOutX()) { + MPPointD p1 = trans!.getValuesByTouchPoint1( + viewPortHandler!.contentLeft(), viewPortHandler!.contentTop()); + MPPointD p2 = trans!.getValuesByTouchPoint1( + viewPortHandler!.contentRight(), viewPortHandler!.contentTop()); if (!inverted) { yMin = p1.x; @@ -46,40 +46,40 @@ class YAxisRendererHorizontalBarChart extends YAxisRenderer { MPPointD.recycleInstance2(p2); } - computeAxisValues(yMin, yMax); + computeAxisValues(yMin!, yMax!); } /// draws the y-axis labels to the screen @override void renderAxisLabels(Canvas c) { - if (!yAxis.enabled || !yAxis.drawLabels) return; + if (!yAxis!.enabled || !yAxis!.drawLabels) return; - List positions = getTransformedPositions(); + List positions = getTransformedPositions(); axisLabelPaint = PainterUtils.create( - axisLabelPaint, null, yAxis.textColor, yAxis.textSize, - fontFamily: yAxis.typeface?.fontFamily, - fontWeight: yAxis.typeface?.fontWeight); + axisLabelPaint, null, yAxis!.textColor, yAxis!.textSize, + fontFamily: yAxis!.typeface?.fontFamily, + fontWeight: yAxis!.typeface?.fontWeight); // double baseYOffset = Utils.convertDpToPixel(2.5); // double textHeight = Utils.calcTextHeight(axisLabelPaint, "Q").toDouble(); - AxisDependency dependency = yAxis.axisDependency; - YAxisLabelPosition labelPosition = yAxis.position; + AxisDependency? dependency = yAxis!.axisDependency; + YAxisLabelPosition labelPosition = yAxis!.position; double yPos = 0; if (dependency == AxisDependency.LEFT) { if (labelPosition == YAxisLabelPosition.OUTSIDE_CHART) { - yPos = viewPortHandler.contentTop(); + yPos = viewPortHandler!.contentTop(); } else { - yPos = viewPortHandler.contentTop(); + yPos = viewPortHandler!.contentTop(); } } else { if (labelPosition == YAxisLabelPosition.OUTSIDE_CHART) { - yPos = viewPortHandler.contentBottom(); + yPos = viewPortHandler!.contentBottom(); } else { - yPos = viewPortHandler.contentBottom(); + yPos = viewPortHandler!.contentBottom(); } } @@ -88,24 +88,24 @@ class YAxisRendererHorizontalBarChart extends YAxisRenderer { @override void renderAxisLine(Canvas c) { - if (!yAxis.enabled || !yAxis.drawAxisLine) return; + if (!yAxis!.enabled || !yAxis!.drawAxisLine) return; axisLinePaint = Paint() ..style = PaintingStyle.stroke - ..color = yAxis.axisLineColor - ..strokeWidth = yAxis.axisLineWidth; + ..color = yAxis!.axisLineColor + ..strokeWidth = yAxis!.axisLineWidth; - if (yAxis.axisDependency == AxisDependency.LEFT) { + if (yAxis!.axisDependency == AxisDependency.LEFT) { c.drawLine( - Offset(viewPortHandler.contentLeft(), viewPortHandler.contentTop()), - Offset(viewPortHandler.contentRight(), viewPortHandler.contentTop()), - axisLinePaint); + Offset(viewPortHandler!.contentLeft(), viewPortHandler!.contentTop()), + Offset(viewPortHandler!.contentRight(), viewPortHandler!.contentTop()), + axisLinePaint!); } else { c.drawLine( Offset( - viewPortHandler.contentLeft(), viewPortHandler.contentBottom()), + viewPortHandler!.contentLeft(), viewPortHandler!.contentBottom()), Offset( - viewPortHandler.contentRight(), viewPortHandler.contentBottom()), - axisLinePaint); + viewPortHandler!.contentRight(), viewPortHandler!.contentBottom()), + axisLinePaint!); } } @@ -114,81 +114,81 @@ class YAxisRendererHorizontalBarChart extends YAxisRenderer { /// @param fixedPosition /// @param positions @override - void drawYLabels(Canvas c, double fixedPosition, List positions, - AxisDependency axisDependency, YAxisLabelPosition position) { + void drawYLabels(Canvas c, double fixedPosition, List positions, + AxisDependency? axisDependency, YAxisLabelPosition position) { axisLabelPaint = PainterUtils.create( - axisLabelPaint, null, yAxis.textColor, yAxis.textSize, - fontWeight: yAxis.typeface?.fontWeight, - fontFamily: yAxis.typeface?.fontFamily); + axisLabelPaint, null, yAxis!.textColor, yAxis!.textSize, + fontWeight: yAxis!.typeface?.fontWeight, + fontFamily: yAxis!.typeface?.fontFamily); - final int from = yAxis.drawBottomYLabelEntry ? 0 : 1; + final int from = yAxis!.drawBottomYLabelEntry ? 0 : 1; final int to = - yAxis.drawTopYLabelEntry ? yAxis.entryCount : (yAxis.entryCount - 1); + yAxis!.drawTopYLabelEntry ? yAxis!.entryCount : (yAxis!.entryCount - 1); for (int i = from; i < to; i++) { - String text = yAxis.getFormattedLabel(i); - axisLabelPaint.text = - TextSpan(text: text, style: axisLabelPaint.text.style); - axisLabelPaint.layout(); + String text = yAxis!.getFormattedLabel(i); + axisLabelPaint!.text = + TextSpan(text: text, style: axisLabelPaint!.text!.style); + axisLabelPaint!.layout(); if (axisDependency == AxisDependency.LEFT) { if (position == YAxisLabelPosition.OUTSIDE_CHART) { - axisLabelPaint.paint( + axisLabelPaint!.paint( c, - Offset(positions[i * 2] - axisLabelPaint.width / 2, - fixedPosition - axisLabelPaint.height)); + Offset(positions[i * 2]! - axisLabelPaint!.width / 2, + fixedPosition - axisLabelPaint!.height)); } else { - axisLabelPaint.paint( + axisLabelPaint!.paint( c, Offset( - positions[i * 2] - axisLabelPaint.width / 2, fixedPosition)); + positions[i * 2]! - axisLabelPaint!.width / 2, fixedPosition)); } } else { if (position == YAxisLabelPosition.OUTSIDE_CHART) { - axisLabelPaint.paint( + axisLabelPaint!.paint( c, Offset( - positions[i * 2] - axisLabelPaint.width / 2, fixedPosition)); + positions[i * 2]! - axisLabelPaint!.width / 2, fixedPosition)); } else { - axisLabelPaint.paint( + axisLabelPaint!.paint( c, - Offset(positions[i * 2] - axisLabelPaint.width / 2, - fixedPosition - axisLabelPaint.height)); + Offset(positions[i * 2]! - axisLabelPaint!.width / 2, + fixedPosition - axisLabelPaint!.height)); } } } } @override - List getTransformedPositions() { - if (mGetTransformedPositionsBuffer.length != yAxis.entryCount * 2) { - mGetTransformedPositionsBuffer = List(yAxis.entryCount * 2); + List getTransformedPositions() { + if (mGetTransformedPositionsBuffer.length != yAxis!.entryCount * 2) { + mGetTransformedPositionsBuffer = List(yAxis!.entryCount * 2); } - List positions = mGetTransformedPositionsBuffer; + List positions = mGetTransformedPositionsBuffer; for (int i = 0; i < positions.length; i += 2) { // only fill x values, y values are not needed for x-labels - positions[i] = yAxis.entries[i ~/ 2]; + positions[i] = yAxis!.entries[i ~/ 2]; } - trans.pointValuesToPixel(positions); + trans!.pointValuesToPixel(positions); return positions; } @override Rect getGridClippingRect() { gridClippingRect = Rect.fromLTRB( - viewPortHandler.getContentRect().left - axis.gridLineWidth, - viewPortHandler.getContentRect().top - axis.gridLineWidth, - viewPortHandler.getContentRect().right, - viewPortHandler.getContentRect().bottom); + viewPortHandler!.getContentRect().left - axis!.gridLineWidth, + viewPortHandler!.getContentRect().top - axis!.gridLineWidth, + viewPortHandler!.getContentRect().right, + viewPortHandler!.getContentRect().bottom); return gridClippingRect; } @override - Path linePath(Path p, int i, List positions) { - p.moveTo(positions[i], viewPortHandler.contentTop()); - p.lineTo(positions[i], viewPortHandler.contentBottom()); + Path linePath(Path p, int i, List positions) { + p.moveTo(positions[i]!, viewPortHandler!.contentTop()); + p.lineTo(positions[i]!, viewPortHandler!.contentBottom()); return p; } @@ -198,33 +198,33 @@ class YAxisRendererHorizontalBarChart extends YAxisRenderer { void drawZeroLine(Canvas c) { c.save(); zeroLineClippingRect = Rect.fromLTRB( - viewPortHandler.getContentRect().left - yAxis.zeroLineWidth, - viewPortHandler.getContentRect().top - yAxis.zeroLineWidth, - viewPortHandler.getContentRect().right, - viewPortHandler.getContentRect().bottom); + viewPortHandler!.getContentRect().left - yAxis!.zeroLineWidth, + viewPortHandler!.getContentRect().top - yAxis!.zeroLineWidth, + viewPortHandler!.getContentRect().right, + viewPortHandler!.getContentRect().bottom); c.clipRect(limitLineClippingRect); // draw zero line - MPPointD pos = trans.getPixelForValues(0, 0); + MPPointD pos = trans!.getPixelForValues(0, 0); zeroLinePaint - ..color = yAxis.zeroLineColor - ..strokeWidth = yAxis.zeroLineWidth; + ..color = yAxis!.zeroLineColor + ..strokeWidth = yAxis!.zeroLineWidth; Path zeroLinePath = mDrawZeroLinePathBuffer; zeroLinePath.reset(); - zeroLinePath.moveTo(pos.x - 1, viewPortHandler.contentTop()); - zeroLinePath.lineTo(pos.x - 1, viewPortHandler.contentBottom()); + zeroLinePath.moveTo(pos.x! - 1, viewPortHandler!.contentTop()); + zeroLinePath.lineTo(pos.x! - 1, viewPortHandler!.contentBottom()); // draw a path because lines don't support dashing on lower android versions - c.drawPath(zeroLinePath, zeroLinePaint); + c.drawPath(zeroLinePath, zeroLinePaint!); c.restore(); } Path mRenderLimitLinesPathBuffer = Path(); - List mRenderLimitLinesBuffer = List(4); + List mRenderLimitLinesBuffer = List(4); /// Draws the LimitLines associated with this axis to the screen. /// This is the standard XAxis renderer using the YAxis limit lines. @@ -232,11 +232,11 @@ class YAxisRendererHorizontalBarChart extends YAxisRenderer { /// @param c @override void renderLimitLines(Canvas c) { - List limitLines = yAxis.getLimitLines(); + List? limitLines = yAxis!.getLimitLines(); if (limitLines == null || limitLines.length <= 0) return; - List pts = mRenderLimitLinesBuffer; + List pts = mRenderLimitLinesBuffer; pts[0] = 0; pts[1] = 0; pts[2] = 0; @@ -251,89 +251,89 @@ class YAxisRendererHorizontalBarChart extends YAxisRenderer { c.save(); limitLineClippingRect = Rect.fromLTRB( - viewPortHandler.getContentRect().left - l.lineWidth, - viewPortHandler.getContentRect().top - l.lineWidth, - viewPortHandler.getContentRect().right, - viewPortHandler.getContentRect().bottom); + viewPortHandler!.getContentRect().left - l.lineWidth!, + viewPortHandler!.getContentRect().top - l.lineWidth!, + viewPortHandler!.getContentRect().right, + viewPortHandler!.getContentRect().bottom); c.clipRect(limitLineClippingRect); pts[0] = l.limit; pts[2] = l.limit; - trans.pointValuesToPixel(pts); + trans!.pointValuesToPixel(pts); - pts[1] = viewPortHandler.contentTop(); - pts[3] = viewPortHandler.contentBottom(); + pts[1] = viewPortHandler!.contentTop(); + pts[3] = viewPortHandler!.contentBottom(); - limitLinePath.moveTo(pts[0], pts[1]); - limitLinePath.lineTo(pts[2], pts[3]); + limitLinePath.moveTo(pts[0]!, pts[1]!); + limitLinePath.lineTo(pts[2]!, pts[3]!); limitLinePaint ..style = PaintingStyle.stroke ..color = l.lineColor - ..strokeWidth = l.lineWidth; + ..strokeWidth = l.lineWidth!; if (l.dashPathEffect != null) { - limitLinePath = l.dashPathEffect.convert2DashPath(limitLinePath); + limitLinePath = l.dashPathEffect!.convert2DashPath(limitLinePath); } - c.drawPath(limitLinePath, limitLinePaint); + c.drawPath(limitLinePath, limitLinePaint!); limitLinePath.reset(); - String label = l.label; + String? label = l.label; // if drawing the limit-value label is enabled if (label != null && label.isNotEmpty) { axisLabelPaint = PainterUtils.create(axisLabelPaint, label, l.textColor, l.textSize); - axisLabelPaint.layout(); + axisLabelPaint!.layout(); final LimitLabelPosition position = l.labelPosition; if (position == LimitLabelPosition.RIGHT_TOP) { final double labelLineHeight = - Utils.calcTextHeight(axisLabelPaint, label).toDouble(); - var offset = Offset(pts[0] + l.xOffset, - viewPortHandler.contentTop() + labelLineHeight); + Utils.calcTextHeight(axisLabelPaint!, label).toDouble(); + var offset = Offset(pts[0]! + l.xOffset!, + viewPortHandler!.contentTop() + labelLineHeight); CanvasUtils.renderLimitLabelBackground(c, axisLabelPaint, offset, l); - axisLabelPaint.paint(c, offset); + axisLabelPaint!.paint(c, offset); } else if (position == LimitLabelPosition.RIGHT_BOTTOM) { var offset = Offset( - pts[0] + l.xOffset, - viewPortHandler.contentBottom() - - l.yOffset - - axisLabelPaint.height); + pts[0]! + l.xOffset!, + viewPortHandler!.contentBottom() - + l.yOffset! - + axisLabelPaint!.height); CanvasUtils.renderLimitLabelBackground(c, axisLabelPaint, offset, l); - axisLabelPaint.paint(c, offset); + axisLabelPaint!.paint(c, offset); } else if (position == LimitLabelPosition.CENTER_BOTTOM) { var offset = Offset( - pts[0] - axisLabelPaint.width / 2, - viewPortHandler.contentBottom() - - l.yOffset - - axisLabelPaint.height); + pts[0]! - axisLabelPaint!.width / 2, + viewPortHandler!.contentBottom() - + l.yOffset! - + axisLabelPaint!.height); CanvasUtils.renderLimitLabelBackground(c, axisLabelPaint, offset, l); - axisLabelPaint.paint(c, offset); + axisLabelPaint!.paint(c, offset); } else if (position == LimitLabelPosition.CENTER_TOP) { final double labelLineHeight = - Utils.calcTextHeight(axisLabelPaint, label).toDouble(); - var offset = Offset(pts[0] - axisLabelPaint.width / 2, - viewPortHandler.contentTop() + labelLineHeight); + Utils.calcTextHeight(axisLabelPaint!, label).toDouble(); + var offset = Offset(pts[0]! - axisLabelPaint!.width / 2, + viewPortHandler!.contentTop() + labelLineHeight); CanvasUtils.renderLimitLabelBackground(c, axisLabelPaint, offset, l); - axisLabelPaint.paint(c, offset); + axisLabelPaint!.paint(c, offset); } else if (position == LimitLabelPosition.LEFT_TOP) { final double labelLineHeight = - Utils.calcTextHeight(axisLabelPaint, label).toDouble(); - var offset = Offset(pts[0] - l.xOffset - axisLabelPaint.width, - viewPortHandler.contentTop() + labelLineHeight); + Utils.calcTextHeight(axisLabelPaint!, label).toDouble(); + var offset = Offset(pts[0]! - l.xOffset! - axisLabelPaint!.width, + viewPortHandler!.contentTop() + labelLineHeight); CanvasUtils.renderLimitLabelBackground(c, axisLabelPaint, offset, l); - axisLabelPaint.paint(c, offset); + axisLabelPaint!.paint(c, offset); } else { var offset = Offset( - pts[0] - l.xOffset - axisLabelPaint.width, - viewPortHandler.contentBottom() - - l.yOffset - - axisLabelPaint.height); + pts[0]! - l.xOffset! - axisLabelPaint!.width, + viewPortHandler!.contentBottom() - + l.yOffset! - + axisLabelPaint!.height); CanvasUtils.renderLimitLabelBackground(c, axisLabelPaint, offset, l); - axisLabelPaint.paint(c, offset); + axisLabelPaint!.paint(c, offset); } } diff --git a/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart b/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart index 82f29993..5b85f9df 100644 --- a/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart +++ b/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart @@ -11,28 +11,28 @@ import 'package:mp_chart/mp/core/poolable/point.dart'; import 'package:mp_chart/mp/core/utils/utils.dart'; class YAxisRendererRadarChart extends YAxisRenderer { - RadarChartPainter _painter; + RadarChartPainter? _painter; YAxisRendererRadarChart( - ViewPortHandler viewPortHandler, YAxis yAxis, RadarChartPainter chart) + ViewPortHandler? viewPortHandler, YAxis? yAxis, RadarChartPainter chart) : super(viewPortHandler, yAxis, null) { this._painter = chart; } - RadarChartPainter get painter => _painter; + RadarChartPainter? get painter => _painter; @override void computeAxisValues(double min, double max) { double yMin = min; double yMax = max; - int labelCount = axis.labelCount; + int labelCount = axis!.labelCount; double range = (yMax - yMin).abs(); if (labelCount == 0 || range <= 0 || range.isInfinite) { - axis.entries = List(); - axis.centeredEntries = List(); - axis.entryCount = 0; + axis!.entries = List(); + axis!.centeredEntries = List(); + axis!.entryCount = 0; return; } @@ -42,12 +42,12 @@ class YAxisRendererRadarChart extends YAxisRenderer { // If granularity is enabled, then do not allow the interval to go below specified granularity. // This is used to avoid repeated values when rounding values for display. - if (axis.granularityEnabled) - interval = interval < axis.granularity ? axis.granularity : interval; + if (axis!.granularityEnabled) + interval = interval < axis!.granularity ? axis!.granularity : interval; // Normalize interval double intervalMagnitude = - Utils.roundToNextSignificant(pow(10.0, log(interval) / ln10)); + Utils.roundToNextSignificant(pow(10.0, log(interval) / ln10) as double); int intervalSigDigit = (interval ~/ intervalMagnitude); if (intervalSigDigit > 5) { // Use one order of magnitude higher, to avoid intervals like 0.9 or @@ -55,23 +55,23 @@ class YAxisRendererRadarChart extends YAxisRenderer { interval = (10 * intervalMagnitude).floor().toDouble(); } - bool centeringEnabled = axis.isCenterAxisLabelsEnabled(); + bool centeringEnabled = axis!.isCenterAxisLabelsEnabled(); int n = centeringEnabled ? 1 : 0; // force label count - if (axis.forceLabels) { + if (axis!.forceLabels) { double step = range / (labelCount - 1); - axis.entryCount = labelCount; + axis!.entryCount = labelCount; - if (axis.entries.length < labelCount) { + if (axis!.entries.length < labelCount) { // Ensure stops contains at least numStops elements. - axis.entries = List(labelCount); + axis!.entries = List(labelCount); } double v = min; for (int i = 0; i < labelCount; i++) { - axis.entries[i] = v; + axis!.entries[i] = v; v += step; } @@ -100,11 +100,11 @@ class YAxisRendererRadarChart extends YAxisRenderer { n++; - axis.entryCount = n; + axis!.entryCount = n; - if (axis.entries.length < n) { + if (axis!.entries.length < n) { // Ensure stops contains at least numStops elements. - axis.entries = List(n); + axis!.entries = List(n); } f = first; @@ -113,63 +113,63 @@ class YAxisRendererRadarChart extends YAxisRenderer { 0.0) // Fix for negative zero case (Where value == -0.0, and 0.0 == -0.0) f = 0.0; - axis.entries[i] = f.toDouble(); + axis!.entries[i] = f.toDouble(); } } // set decimals if (interval < 1) { - axis.decimals = (-log(interval) / ln10).ceil(); + axis!.decimals = (-log(interval) / ln10).ceil(); } else { - axis.decimals = 0; + axis!.decimals = 0; } if (centeringEnabled) { - if (axis.centeredEntries.length < n) { - axis.centeredEntries = List(n); + if (axis!.centeredEntries.length < n) { + axis!.centeredEntries = List(n); } - double offset = (axis.entries[1] - axis.entries[0]) / 2; + double offset = (axis!.entries[1]! - axis!.entries[0]!) / 2; for (int i = 0; i < n; i++) { - axis.centeredEntries[i] = axis.entries[i] + offset; + axis!.centeredEntries[i] = axis!.entries[i]! + offset; } } - axis.axisMinimum = axis.entries[0]; - axis.axisMaximum = axis.entries[n - 1]; - axis.axisRange = (axis.axisMaximum - axis.axisMinimum).abs(); + axis!.axisMinimum = axis!.entries[0]; + axis!.axisMaximum = axis!.entries[n - 1]; + axis!.axisRange = (axis!.axisMaximum! - axis!.axisMinimum!).abs(); } @override void renderAxisLabels(Canvas c) { - if (!yAxis.enabled || !yAxis.drawLabels) return; + if (!yAxis!.enabled || !yAxis!.drawLabels) return; // axisLabelPaint.setTypeface(yAxis.getTypeface()); - MPPointF center = _painter.getCenterOffsets(); + MPPointF center = _painter!.getCenterOffsets(); MPPointF pOut = MPPointF.getInstance1(0, 0); - double factor = _painter.getFactor(); + double factor = _painter!.getFactor(); - final int from = yAxis.drawBottomYLabelEntry ? 0 : 1; + final int from = yAxis!.drawBottomYLabelEntry ? 0 : 1; final int to = - yAxis.drawTopYLabelEntry ? yAxis.entryCount : (yAxis.entryCount - 1); + yAxis!.drawTopYLabelEntry ? yAxis!.entryCount : (yAxis!.entryCount - 1); for (int j = from; j < to; j++) { - double r = (yAxis.entries[j] - yAxis.axisMinimum) * factor; + double r = (yAxis!.entries[j]! - yAxis!.axisMinimum!) * factor; - Utils.getPosition(center, r, _painter.getRotationAngle(), pOut); + Utils.getPosition(center, r, _painter!.getRotationAngle(), pOut); - String label = yAxis.getFormattedLabel(j); + String label = yAxis!.getFormattedLabel(j); axisLabelPaint = PainterUtils.create( - axisLabelPaint, label, yAxis.textColor, yAxis.textSize, - fontWeight: yAxis.typeface?.fontWeight, - fontFamily: yAxis.typeface?.fontFamily); - axisLabelPaint.layout(); - axisLabelPaint.paint( + axisLabelPaint, label, yAxis!.textColor, yAxis!.textSize, + fontWeight: yAxis!.typeface?.fontWeight, + fontFamily: yAxis!.typeface?.fontFamily); + axisLabelPaint!.layout(); + axisLabelPaint!.paint( c, - Offset(pOut.x + 10 - axisLabelPaint.width, - pOut.y - axisLabelPaint.height)); + Offset(pOut.x! + 10 - axisLabelPaint!.width, + pOut.y! - axisLabelPaint!.height)); } MPPointF.recycleInstance(center); MPPointF.recycleInstance(pOut); @@ -179,17 +179,17 @@ class YAxisRendererRadarChart extends YAxisRenderer { @override void renderLimitLines(Canvas c) { - List limitLines = yAxis.getLimitLines(); + List? limitLines = yAxis!.getLimitLines(); if (limitLines == null) return; - double sliceangle = _painter.getSliceAngle(); + double sliceangle = _painter!.getSliceAngle(); // calculate the factor that is needed for transforming the value to // pixels - double factor = _painter.getFactor(); + double factor = _painter!.getFactor(); - MPPointF center = _painter.getCenterOffsets(); + MPPointF center = _painter!.getCenterOffsets(); MPPointF pOut = MPPointF.getInstance1(0, 0); for (int i = 0; i < limitLines.length; i++) { LimitLine l = limitLines[i]; @@ -199,30 +199,30 @@ class YAxisRendererRadarChart extends YAxisRenderer { limitLinePaint ..style = PaintingStyle.stroke ..color = (l.lineColor) - ..strokeWidth = l.lineWidth; + ..strokeWidth = l.lineWidth!; - double r = (l.limit - _painter.getYChartMin()) * factor; + double r = (l.limit - _painter!.getYChartMin()!) * factor; Path limitPath = mRenderLimitLinesPathBuffer; limitPath.reset(); for (int j = 0; - j < _painter.getData().getMaxEntryCountSet().getEntryCount(); + j < _painter!.getData()!.getMaxEntryCountSet()!.getEntryCount(); j++) { Utils.getPosition( - center, r, sliceangle * j + _painter.getRotationAngle(), pOut); + center, r, sliceangle * j + _painter!.getRotationAngle(), pOut); if (j == 0) - limitPath.moveTo(pOut.x, pOut.y); + limitPath.moveTo(pOut.x!, pOut.y!); else - limitPath.lineTo(pOut.x, pOut.y); + limitPath.lineTo(pOut.x!, pOut.y!); } limitPath.close(); if (l.dashPathEffect != null) { - limitPath = l.dashPathEffect.convert2DashPath(limitPath); + limitPath = l.dashPathEffect!.convert2DashPath(limitPath); } - c.drawPath(limitPath, limitLinePaint); + c.drawPath(limitPath, limitLinePaint!); } MPPointF.recycleInstance(center); MPPointF.recycleInstance(pOut); diff --git a/mp_chart/lib/mp/core/touch_listener.dart b/mp_chart/lib/mp/core/touch_listener.dart index 21ff3862..1f888f15 100644 --- a/mp_chart/lib/mp/core/touch_listener.dart +++ b/mp_chart/lib/mp/core/touch_listener.dart @@ -1,17 +1,17 @@ mixin OnTouchEventListener { TouchValueType valueType(); - void onTapDown(double x, double y); - void onSingleTapUp(double x, double y); - void onDoubleTapUp(double x, double y); - void onMoveStart(double x, double y); - void onMoveUpdate(double x, double y); - void onMoveEnd(double x, double y); - void onScaleStart(double x, double y); - void onScaleUpdate(double x, double y); - void onScaleEnd(double x, double y); - void onDragStart(double x, double y); - void onDragUpdate(double x, double y); - void onDragEnd(double x, double y); + void onTapDown(double? x, double? y); + void onSingleTapUp(double? x, double? y); + void onDoubleTapUp(double? x, double? y); + void onMoveStart(double? x, double? y); + void onMoveUpdate(double? x, double? y); + void onMoveEnd(double? x, double? y); + void onScaleStart(double? x, double? y); + void onScaleUpdate(double? x, double? y); + void onScaleEnd(double? x, double? y); + void onDragStart(double? x, double? y); + void onDragUpdate(double? x, double? y); + void onDragEnd(double? x, double? y); } enum TouchValueType{ diff --git a/mp_chart/lib/mp/core/transformer/transformer.dart b/mp_chart/lib/mp/core/transformer/transformer.dart index a5f35069..42ba2d63 100644 --- a/mp_chart/lib/mp/core/transformer/transformer.dart +++ b/mp_chart/lib/mp/core/transformer/transformer.dart @@ -16,13 +16,13 @@ class Transformer { /// matrix for handling the different offsets of the chart Matrix4 _matrixOffset = Matrix4.identity(); - ViewPortHandler _viewPortHandler; + ViewPortHandler? _viewPortHandler; - Transformer(ViewPortHandler viewPortHandler) { + Transformer(ViewPortHandler? viewPortHandler) { this._viewPortHandler = viewPortHandler; } - ViewPortHandler get viewPortHandler => _viewPortHandler; + ViewPortHandler? get viewPortHandler => _viewPortHandler; // ignore: unnecessary_getters_setters Matrix4 get matrixOffset => _matrixOffset; @@ -41,8 +41,8 @@ class Transformer { /// @param yChartMin void prepareMatrixValuePx( double xChartMin, double deltaX, double deltaY, double yChartMin) { - double scaleX = ((_viewPortHandler.contentWidth()) / deltaX); - double scaleY = ((_viewPortHandler.contentHeight()) / deltaY); + double scaleX = ((_viewPortHandler!.contentWidth()) / deltaX); + double scaleY = ((_viewPortHandler!.contentHeight()) / deltaY); if (scaleX.isInfinite) { scaleX = 0; @@ -66,23 +66,23 @@ class Transformer { // offset.postTranslate(mOffsetLeft, getHeight() - mOffsetBottom); if (!copyInverseed) - Matrix4Utils.postTranslate(_matrixOffset, _viewPortHandler.offsetLeft(), - _viewPortHandler.getChartHeight() - _viewPortHandler.offsetBottom()); + Matrix4Utils.postTranslate(_matrixOffset, _viewPortHandler!.offsetLeft(), + _viewPortHandler!.getChartHeight() - _viewPortHandler!.offsetBottom()); else { - Matrix4Utils.postTranslate(_matrixOffset, _viewPortHandler.offsetLeft(), - -_viewPortHandler.offsetTop()); + Matrix4Utils.postTranslate(_matrixOffset, _viewPortHandler!.offsetLeft(), + -_viewPortHandler!.offsetTop()); Matrix4Utils.postScale(_matrixOffset, 1.0, -1.0); } } - List _valuePointsForGenerateTransformedValuesScatter = List(1); + List _valuePointsForGenerateTransformedValuesScatter = List(1); /// Transforms an List of Entry into a double array containing the x and /// y values Matrix4Utils.transformed with all matrices for the SCATTERCHART. /// /// @param data /// @return - List generateTransformedValuesScatter( + List generateTransformedValuesScatter( IScatterDataSet data, double phaseX, double phaseY, int from, int to) { int count = (((to - from) * phaseX + 1) * 2).toInt(); count = count % 2 == 0 ? count : count - 1; @@ -90,14 +90,14 @@ class Transformer { if (_valuePointsForGenerateTransformedValuesScatter.length != count) { _valuePointsForGenerateTransformedValuesScatter = List(count); } - List valuePoints = _valuePointsForGenerateTransformedValuesScatter; + List valuePoints = _valuePointsForGenerateTransformedValuesScatter; for (int j = 0; j < count; j += 2) { - Entry e = data.getEntryForIndex(j ~/ 2 + from); + Entry? e = data.getEntryForIndex(j ~/ 2 + from); if (e != null) { valuePoints[j] = e.x; - valuePoints[j + 1] = e.y * phaseY; + valuePoints[j + 1] = e.y! * phaseY; } else { valuePoints[j] = 0; valuePoints[j + 1] = 0; @@ -109,14 +109,14 @@ class Transformer { return valuePoints; } - List _valuePointsForGenerateTransformedValuesBubble = List(1); + List _valuePointsForGenerateTransformedValuesBubble = List(1); /// Transforms an List of Entry into a double array containing the x and /// y values Matrix4Utils.transformed with all matrices for the BUBBLECHART. /// /// @param data /// @return - List generateTransformedValuesBubble( + List generateTransformedValuesBubble( IBubbleDataSet data, double phaseY, int from, int to) { final int count = (to - from + 1) * 2; // (int) Math.ceil((to - from) * phaseX) * 2; @@ -124,14 +124,14 @@ class Transformer { if (_valuePointsForGenerateTransformedValuesBubble.length != count) { _valuePointsForGenerateTransformedValuesBubble = List(count); } - List valuePoints = _valuePointsForGenerateTransformedValuesBubble; + List valuePoints = _valuePointsForGenerateTransformedValuesBubble; for (int j = 0; j < count; j += 2) { - Entry e = data.getEntryForIndex(j ~/ 2 + from); + Entry? e = data.getEntryForIndex(j ~/ 2 + from); if (e != null) { valuePoints[j] = e.x; - valuePoints[j + 1] = e.y * phaseY; + valuePoints[j + 1] = e.y! * phaseY; } else { valuePoints[j] = 0; valuePoints[j + 1] = 0; @@ -143,28 +143,28 @@ class Transformer { return valuePoints; } - List _valuePointsForGenerateTransformedValuesLine = List(1); + List _valuePointsForGenerateTransformedValuesLine = List(1); /// Transforms an List of Entry into a double array containing the x and /// y values Matrix4Utils.transformed with all matrices for the LINECHART. /// /// @param data /// @return - List generateTransformedValuesLine( + List generateTransformedValuesLine( ILineDataSet data, double phaseX, double phaseY, int min, int max) { final int count = ((((max - min) * phaseX) + 1).toInt() * 2); if (_valuePointsForGenerateTransformedValuesLine.length != count) { _valuePointsForGenerateTransformedValuesLine = List(count); } - List valuePoints = _valuePointsForGenerateTransformedValuesLine; + List valuePoints = _valuePointsForGenerateTransformedValuesLine; for (int j = 0; j < count; j += 2) { - Entry e = data.getEntryForIndex(j ~/ 2 + min); + Entry? e = data.getEntryForIndex(j ~/ 2 + min); if (e != null) { valuePoints[j] = e.x; - valuePoints[j + 1] = e.y * phaseY; + valuePoints[j + 1] = e.y! * phaseY; } else { valuePoints[j] = 0; valuePoints[j + 1] = 0; @@ -176,14 +176,14 @@ class Transformer { return valuePoints; } - List _valuePointsForGenerateTransformedValuesCandle = List(1); + List _valuePointsForGenerateTransformedValuesCandle = List(1); /// Transforms an List of Entry into a double array containing the x and /// y values Matrix4Utils.transformed with all matrices for the CANDLESTICKCHART. /// /// @param data /// @return - List generateTransformedValuesCandle( + List generateTransformedValuesCandle( ICandleDataSet data, double phaseX, double phaseY, int from, int to) { int count = (((to - from) * phaseX + 1) * 2).toInt(); count = count % 2 == 0 ? count : count - 1; @@ -191,10 +191,10 @@ class Transformer { if (_valuePointsForGenerateTransformedValuesCandle.length != count) { _valuePointsForGenerateTransformedValuesCandle = List(count); } - List valuePoints = _valuePointsForGenerateTransformedValuesCandle; + List valuePoints = _valuePointsForGenerateTransformedValuesCandle; for (int j = 0; j < count; j += 2) { - CandleEntry e = data.getEntryForIndex(j ~/ 2 + from); + CandleEntry? e = data.getEntryForIndex(j ~/ 2 + from); if (e != null) { valuePoints[j] = e.x; @@ -214,9 +214,9 @@ class Transformer { /// matrix order "value-touch-offset" when Matrix4Utils.transforming. /// /// @param pts - void pointValuesToPixel(List pts) { + void pointValuesToPixel(List pts) { Matrix4Utils.mapPoints(_matrixValueToPx, pts); - Matrix4Utils.mapPoints(_viewPortHandler.getMatrixTouch(), pts); + Matrix4Utils.mapPoints(_viewPortHandler!.getMatrixTouch(), pts); Matrix4Utils.mapPoints(_matrixOffset, pts); } @@ -225,7 +225,7 @@ class Transformer { /// @param r Rect rectValueToPixel(Rect r) { r = Matrix4Utils.mapRect(_matrixValueToPx, r); - r = Matrix4Utils.mapRect(_viewPortHandler.getMatrixTouch(), r); + r = Matrix4Utils.mapRect(_viewPortHandler!.getMatrixTouch(), r); r = Matrix4Utils.mapRect(_matrixOffset, r); return r; } @@ -239,7 +239,7 @@ class Transformer { r = Rect.fromLTRB(r.left, r.top * phaseY, r.right, r.bottom * phaseY); r = Matrix4Utils.mapRect(_matrixValueToPx, r); - r = Matrix4Utils.mapRect(_viewPortHandler.getMatrixTouch(), r); + r = Matrix4Utils.mapRect(_viewPortHandler!.getMatrixTouch(), r); r = Matrix4Utils.mapRect(_matrixOffset, r); return r; } @@ -249,7 +249,7 @@ class Transformer { r = Rect.fromLTRB(r.left * phaseY, r.top, r.right * phaseY, r.bottom); r = Matrix4Utils.mapRect(_matrixValueToPx, r); - r = Matrix4Utils.mapRect(_viewPortHandler.getMatrixTouch(), r); + r = Matrix4Utils.mapRect(_viewPortHandler!.getMatrixTouch(), r); r = Matrix4Utils.mapRect(_matrixOffset, r); return r; } @@ -259,7 +259,7 @@ class Transformer { /// @param r Rect rectValueToPixelHorizontal1(Rect r) { r = Matrix4Utils.mapRect(_matrixValueToPx, r); - r = Matrix4Utils.mapRect(_viewPortHandler.getMatrixTouch(), r); + r = Matrix4Utils.mapRect(_viewPortHandler!.getMatrixTouch(), r); r = Matrix4Utils.mapRect(_matrixOffset, r); return r; } @@ -273,7 +273,7 @@ class Transformer { r = Rect.fromLTRB(r.left * phaseY, r.top, r.right * phaseY, r.bottom); r = Matrix4Utils.mapRect(_matrixValueToPx, r); - r = Matrix4Utils.mapRect(_viewPortHandler.getMatrixTouch(), r); + r = Matrix4Utils.mapRect(_viewPortHandler!.getMatrixTouch(), r); r = Matrix4Utils.mapRect(_matrixOffset, r); return r; } @@ -294,14 +294,14 @@ class Transformer { /// into values on the chart. /// /// @param pixels - void pixelsToValue(List pixels) { + void pixelsToValue(List pixels) { _pixelToValueMatrixBuffer = Matrix4.identity(); Matrix4 tmp = _pixelToValueMatrixBuffer; // copyInverse all matrixes to convert back to the original value tmp.copyInverse(_matrixOffset); Matrix4Utils.mapPoints(tmp, pixels); - tmp.copyInverse(_viewPortHandler.getMatrixTouch()); + tmp.copyInverse(_viewPortHandler!.getMatrixTouch()); Matrix4Utils.mapPoints(tmp, pixels); tmp.copyInverse(_matrixValueToPx); @@ -309,7 +309,7 @@ class Transformer { } /// buffer for performance - List _ptsBuffer = List(2); + List _ptsBuffer = List(2); /// Returns a recyclable MPPointD instance. /// returns the x and y values in the chart at the given touch point @@ -342,14 +342,14 @@ class Transformer { /// @param x /// @param y /// @return - MPPointD getPixelForValues(double x, double y) { + MPPointD getPixelForValues(double? x, double? y) { _ptsBuffer[0] = x; _ptsBuffer[1] = y; pointValuesToPixel(_ptsBuffer); - double xPx = _ptsBuffer[0]; - double yPx = _ptsBuffer[1]; + double? xPx = _ptsBuffer[0]; + double? yPx = _ptsBuffer[1]; return MPPointD.getInstance1(xPx, yPx); } @@ -366,7 +366,7 @@ class Transformer { Matrix4 getValueToPixelMatrix() { _matrixValueToPx.copyInto(_mBuffer1); - Matrix4Utils.postConcat(_mBuffer1, _viewPortHandler.matrixTouch); + Matrix4Utils.postConcat(_mBuffer1, _viewPortHandler!.matrixTouch); Matrix4Utils.postConcat(_mBuffer1, _matrixOffset); return _mBuffer1; } diff --git a/mp_chart/lib/mp/core/transformer/transformer_horizontal_bar_chart.dart b/mp_chart/lib/mp/core/transformer/transformer_horizontal_bar_chart.dart index 0c231d1c..b3c87298 100644 --- a/mp_chart/lib/mp/core/transformer/transformer_horizontal_bar_chart.dart +++ b/mp_chart/lib/mp/core/transformer/transformer_horizontal_bar_chart.dart @@ -4,7 +4,7 @@ import 'package:mp_chart/mp/core/utils/matrix4_utils.dart'; import 'package:mp_chart/mp/core/view_port.dart'; class TransformerHorizontalBarChart extends Transformer { - TransformerHorizontalBarChart(ViewPortHandler viewPortHandler) + TransformerHorizontalBarChart(ViewPortHandler? viewPortHandler) : super(viewPortHandler); /// Prepares the matrix that contains all offsets. @@ -16,13 +16,13 @@ class TransformerHorizontalBarChart extends Transformer { // offset.postTranslate(mOffsetLeft, getHeight() - mOffsetBottom); if (!inverted) - Matrix4Utils.postTranslate(matrixOffset, viewPortHandler.offsetLeft(), - viewPortHandler.getChartHeight() - viewPortHandler.offsetBottom()); + Matrix4Utils.postTranslate(matrixOffset, viewPortHandler!.offsetLeft(), + viewPortHandler!.getChartHeight() - viewPortHandler!.offsetBottom()); else { Matrix4Utils.setTranslate( matrixOffset, - -(viewPortHandler.getChartWidth() - viewPortHandler.offsetRight()), - viewPortHandler.getChartHeight() - viewPortHandler.offsetBottom()); + -(viewPortHandler!.getChartWidth() - viewPortHandler!.offsetRight()), + viewPortHandler!.getChartHeight() - viewPortHandler!.offsetBottom()); Matrix4Utils.postScale(matrixOffset, -1.0, 1.0); } diff --git a/mp_chart/lib/mp/core/utils/canvas_utils.dart b/mp_chart/lib/mp/core/utils/canvas_utils.dart index e4bffe53..c60e27d2 100644 --- a/mp_chart/lib/mp/core/utils/canvas_utils.dart +++ b/mp_chart/lib/mp/core/utils/canvas_utils.dart @@ -6,21 +6,21 @@ import 'package:mp_chart/mp/core/limit_line.dart'; abstract class CanvasUtils { static void drawLines( - ui.Canvas canvas, List pts, int offset, int count, ui.Paint paint, - {DashPathEffect effect}) { + ui.Canvas canvas, List pts, int offset, int count, ui.Paint? paint, + {DashPathEffect? effect}) { if (effect == null) { for (int i = offset; i < count; i += 4) { - canvas.drawLine(ui.Offset(pts[i], pts[i + 1]), - ui.Offset(pts[i + 2], pts[i + 3]), paint); + canvas.drawLine(ui.Offset(pts[i]!, pts[i + 1]!), + ui.Offset(pts[i + 2]!, pts[i + 3]!), paint!); } } else { var path = Path(); for (int i = offset; i < count; i += 4) { path.reset(); - path.moveTo(pts[i], pts[i + 1]); - path.lineTo(pts[i + 2], pts[i + 3]); + path.moveTo(pts[i]!, pts[i + 1]!); + path.lineTo(pts[i + 2]!, pts[i + 3]!); path = effect.convert2DashPath(path); - canvas.drawPath(path, paint); + canvas.drawPath(path, paint!); } } } @@ -45,7 +45,7 @@ abstract class CanvasUtils { static const double LABEL_SPACE = 2; - static void renderLimitLabelBackground(Canvas canvas, TextPainter textPainter, + static void renderLimitLabelBackground(Canvas canvas, TextPainter? textPainter, Offset offset, LimitLine limitLine) { if (limitLine.drawBackground) { Paint paint = Paint()..color = limitLine.backgroundColor; @@ -53,7 +53,7 @@ abstract class CanvasUtils { Rect.fromLTRB( offset.dx - LABEL_SPACE, offset.dy - LABEL_SPACE, - offset.dx + LABEL_SPACE + textPainter.width, + offset.dx + LABEL_SPACE + textPainter!.width, offset.dy + LABEL_SPACE + textPainter.height), paint); } diff --git a/mp_chart/lib/mp/core/utils/highlight_utils.dart b/mp_chart/lib/mp/core/utils/highlight_utils.dart index 34553e49..8fa00cfa 100644 --- a/mp_chart/lib/mp/core/utils/highlight_utils.dart +++ b/mp_chart/lib/mp/core/utils/highlight_utils.dart @@ -4,13 +4,13 @@ import 'package:mp_chart/mp/core/highlight/highlight.dart'; import 'package:mp_chart/mp/painter/painter.dart'; abstract class HighlightUtils { - static Highlight performHighlight( - ChartPainter painter, Highlight curHighlight, Highlight lastHighlight) { + static Highlight? performHighlight( + ChartPainter? painter, Highlight? curHighlight, Highlight? lastHighlight) { if (curHighlight == null || curHighlight.equalTo(lastHighlight)) { - painter.highlightValue6(null, true); + painter!.highlightValue6(null, true); lastHighlight = null; } else { - painter.highlightValue6(curHighlight, true); + painter!.highlightValue6(curHighlight, true); lastHighlight = curHighlight; } return lastHighlight; @@ -18,7 +18,7 @@ abstract class HighlightUtils { static Highlight performHighlightDrag( ChartPainter painter, Highlight lastHighlight, Offset offset) { - Highlight h = painter.getHighlightByTouchPoint(offset.dx, offset.dy); + Highlight? h = painter.getHighlightByTouchPoint(offset.dx, offset.dy); if (h != null && !h.equalTo(lastHighlight)) { lastHighlight = h; diff --git a/mp_chart/lib/mp/core/utils/matrix4_utils.dart b/mp_chart/lib/mp/core/utils/matrix4_utils.dart index 2c94715e..69b2dabc 100644 --- a/mp_chart/lib/mp/core/utils/matrix4_utils.dart +++ b/mp_chart/lib/mp/core/utils/matrix4_utils.dart @@ -98,13 +98,13 @@ abstract class Matrix4Utils { (Matrix4.identity()..setTranslationRaw(tx, ty, 0.0)).copyInto(m); } - static void mapPoints(Matrix4 m, List valuePoints) { - double x = 0; - double y = 0; + static void mapPoints(Matrix4 m, List valuePoints) { + double? x = 0; + double? y = 0; for (int i = 0; i < valuePoints.length; i += 2) { x = valuePoints[i] == null ? 0 : valuePoints[i]; y = valuePoints[i + 1] == null ? 0 : valuePoints[i + 1]; - final Vector3 transformed = m.perspectiveTransform(Vector3(x, y, 0)); + final Vector3 transformed = m.perspectiveTransform(Vector3(x!, y!, 0)); valuePoints[i] = transformed.x; valuePoints[i + 1] = transformed.y; } diff --git a/mp_chart/lib/mp/core/utils/painter_utils.dart b/mp_chart/lib/mp/core/utils/painter_utils.dart index 36100dd9..4766a40b 100644 --- a/mp_chart/lib/mp/core/utils/painter_utils.dart +++ b/mp_chart/lib/mp/core/utils/painter_utils.dart @@ -4,8 +4,8 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; abstract class PainterUtils { static TextPainter create( - TextPainter painter, String text, Color color, double fontSize, - {String fontFamily, FontWeight fontWeight = FontWeight.w400}) { + TextPainter? painter, String? text, Color? color, double? fontSize, + {String? fontFamily, FontWeight? fontWeight = FontWeight.w400}) { if (painter == null) { return _create(text, color, fontSize, fontFamily: fontFamily, fontWeight: fontWeight); @@ -13,9 +13,9 @@ abstract class PainterUtils { if (painter.text != null && (painter.text is TextSpan)) { var preText = (painter.text as TextSpan).text; - var preColor = painter.text.style.color; + var preColor = painter.text!.style!.color; preColor = preColor == null ? ColorUtils.BLACK : preColor; - var preFontSize = painter.text.style.fontSize; + var preFontSize = painter.text!.style!.fontSize; preFontSize = preFontSize == null ? Utils.convertDpToPixel(13) : preFontSize; return _create( @@ -30,8 +30,8 @@ abstract class PainterUtils { } } - static TextPainter _create(String text, Color color, double fontSize, - {String fontFamily, FontWeight fontWeight = FontWeight.w400}) { + static TextPainter _create(String? text, Color? color, double? fontSize, + {String? fontFamily, FontWeight? fontWeight = FontWeight.w400}) { return TextPainter( textAlign: TextAlign.center, textDirection: TextDirection.ltr, @@ -41,8 +41,8 @@ abstract class PainterUtils { fontFamily: fontFamily, fontWeight: fontWeight))); } - static TextStyle createTextStyle(Color color, double fontSize, - {String fontFamily, FontWeight fontWeight = FontWeight.w400}) { + static TextStyle createTextStyle(Color? color, double? fontSize, + {String? fontFamily, FontWeight? fontWeight = FontWeight.w400}) { if (fontWeight == null) { fontWeight = FontWeight.w400; } diff --git a/mp_chart/lib/mp/core/utils/screen_utils.dart b/mp_chart/lib/mp/core/utils/screen_utils.dart index dbedd2dc..a6dee8cb 100644 --- a/mp_chart/lib/mp/core/utils/screen_utils.dart +++ b/mp_chart/lib/mp/core/utils/screen_utils.dart @@ -38,7 +38,7 @@ class ScreenUtils { double _statusBarHeight = 0.0; double _bottomBarHeight = 0.0; double _appBarHeight = 0.0; - MediaQueryData _mediaQueryData; + MediaQueryData? _mediaQueryData; static final ScreenUtils _singleton = ScreenUtils(); @@ -84,7 +84,7 @@ class ScreenUtils { double get bottomBarHeight => _bottomBarHeight; /// media Query Data - MediaQueryData get mediaQueryData => _mediaQueryData; + MediaQueryData? get mediaQueryData => _mediaQueryData; /// screen width /// 当前屏幕 宽 @@ -193,8 +193,8 @@ class ScreenUtils { /// returns the font size after adaptation according to the screen density. /// 返回根据屏幕宽适配后字体尺寸 /// fontSize 字体尺寸 - double getSp(double fontSize) { + double? getSp(double? fontSize) { if (_screenDensity == 0.0) return fontSize; - return fontSize * _screenWidth / _designW; + return fontSize! * _screenWidth / _designW; } } diff --git a/mp_chart/lib/mp/core/utils/utils.dart b/mp_chart/lib/mp/core/utils/utils.dart index 7183e4ad..7c1f5866 100644 --- a/mp_chart/lib/mp/core/utils/utils.dart +++ b/mp_chart/lib/mp/core/utils/utils.dart @@ -22,7 +22,7 @@ abstract class Utils { static void drawXAxisValue( Canvas c, String text, - double x, + double? x, double y, TextPainter paint, MPPointF anchor, @@ -35,14 +35,14 @@ abstract class Utils { paint.textAlign = TextAlign.left; if (angleDegrees != 0) { - double translateX = x; + double translateX = x!; double translateY = y; c.save(); c.translate(translateX, translateY); c.rotate(angleDegrees); - paint.text = TextSpan(text: text, style: paint.text.style); + paint.text = TextSpan(text: text, style: paint.text!.style); paint.layout(); switch (position) { case XAxisPosition.BOTTOM: @@ -63,10 +63,10 @@ abstract class Utils { c.restore(); } else { - drawOffsetX += x; + drawOffsetX += x!; drawOffsetY += y; - paint.text = TextSpan(text: text, style: paint.text.style); + paint.text = TextSpan(text: text, style: paint.text!.style); paint.layout(); switch (position) { case XAxisPosition.BOTTOM: @@ -98,7 +98,7 @@ abstract class Utils { static void drawRadarXAxisValue( Canvas c, String text, - double x, + double? x, double y, TextPainter paint, MPPointF anchor, @@ -109,14 +109,14 @@ abstract class Utils { double drawOffsetX = 0; double drawOffsetY = 0; if (angleDegrees != 0) { - double translateX = x; + double translateX = x!; double translateY = y; c.save(); c.translate(translateX, translateY); c.rotate(angleDegrees); - paint.text = TextSpan(text: text, style: paint.text.style); + paint.text = TextSpan(text: text, style: paint.text!.style); paint.layout(); switch (position) { case XAxisPosition.BOTTOM: @@ -137,10 +137,10 @@ abstract class Utils { c.restore(); } else { - drawOffsetX += x; + drawOffsetX += x!; drawOffsetY += y; - paint.text = TextSpan(text: text, style: paint.text.style); + paint.text = TextSpan(text: text, style: paint.text!.style); paint.layout(); paint.paint(c, Offset(drawOffsetX - paint.width / 2, drawOffsetY)); } @@ -151,7 +151,7 @@ abstract class Utils { Canvas c, String text, double x, - double y, + double? y, TextPainter paint, MPPointF anchor, double angleDegrees, @@ -164,13 +164,13 @@ abstract class Utils { if (angleDegrees != 0) { double translateX = x; - double translateY = y; + double translateY = y!; c.save(); c.translate(translateX, translateY); c.rotate(angleDegrees); - paint.text = TextSpan(text: text, style: paint.text.style); + paint.text = TextSpan(text: text, style: paint.text!.style); paint.layout(); switch (position) { case XAxisPosition.BOTTOM: @@ -192,9 +192,9 @@ abstract class Utils { c.restore(); } else { drawOffsetX += x; - drawOffsetY += y; + drawOffsetY += y!; - paint.text = TextSpan(text: text, style: paint.text.style); + paint.text = TextSpan(text: text, style: paint.text!.style); paint.layout(); switch (position) { case XAxisPosition.BOTTOM: @@ -256,7 +256,7 @@ abstract class Utils { static void calcTextSize4( TextPainter paint, String demoText, FSize outputFSize) { - paint.text = TextSpan(text: demoText, style: paint.text.style); + paint.text = TextSpan(text: demoText, style: paint.text!.style); paint.layout(); outputFSize.width = paint.width; outputFSize.height = paint.height; @@ -305,20 +305,20 @@ abstract class Utils { return mDefaultValueFormatter; } - static double convertDpToPixel(double dp) { + static double? convertDpToPixel(double? dp) { return ScreenUtils.getInstance().getSp(dp); } - static int calcTextWidth(TextPainter p, String demoText) { + static int calcTextWidth(TextPainter p, String? demoText) { TextPainter painter = PainterUtils.create( - p, demoText, p.text.style.color, p.text.style.fontSize); + p, demoText, p.text!.style!.color, p.text!.style!.fontSize); painter.layout(); return painter.width.toInt(); } static int calcTextHeight(TextPainter p, String demoText) { TextPainter painter = PainterUtils.create( - p, demoText, p.text.style.color, p.text.style.fontSize); + p, demoText, p.text!.style!.color, p.text!.style!.fontSize); painter.layout(); return painter.height.toInt(); } @@ -331,7 +331,7 @@ abstract class Utils { static void calcTextSize2(TextPainter p, String demoText, FSize outputFSize) { TextPainter painter = PainterUtils.create( - p, demoText, p.text.style.color, p.text.style.fontSize); + p, demoText, p.text!.style!.color, p.text!.style!.fontSize); painter.layout(); outputFSize.width = painter.width; outputFSize.height = painter.height; @@ -369,7 +369,7 @@ abstract class Utils { final double d = (log(number < 0 ? -number : number) / ln10).ceil().toDouble(); final int pw = 1 - d.toInt(); - final double magnitude = pow(10.0, pw); + final double magnitude = pow(10.0, pw) as double; final int shifted = (number * magnitude).round(); return shifted / magnitude; } @@ -382,8 +382,8 @@ abstract class Utils { static void getPosition( MPPointF center, double dist, double angle, MPPointF outputPoint) { - outputPoint.x = (center.x + dist * cos((angle / 180 * pi))); - outputPoint.y = (center.y + dist * sin((angle / 180 * pi))); + outputPoint.x = (center.x! + dist * cos((angle / 180 * pi))); + outputPoint.y = (center.y! + dist * sin((angle / 180 * pi))); } static double optimizeScale(double scale) { @@ -395,7 +395,7 @@ abstract class Utils { static MPPointF local2Chart(Controller controller, double x, double y, {bool inverted = false}) { - ViewPortHandler vph = controller.painter.viewPortHandler; + ViewPortHandler vph = controller.painter!.viewPortHandler!; double xTrans = x - vph.offsetLeft(); double yTrans = 0.0; @@ -405,7 +405,7 @@ abstract class Utils { yTrans = -(y - vph.offsetTop()); } else { yTrans = - -(controller.painter.getMeasuredHeight() - y - vph.offsetBottom()); + -(controller.painter!.getMeasuredHeight() - y - vph.offsetBottom()); } return MPPointF.getInstance1(xTrans, yTrans); diff --git a/mp_chart/lib/mp/core/value_formatter/day_axis_value_formatter.dart b/mp_chart/lib/mp/core/value_formatter/day_axis_value_formatter.dart index 651f3259..6f3d7b3c 100644 --- a/mp_chart/lib/mp/core/value_formatter/day_axis_value_formatter.dart +++ b/mp_chart/lib/mp/core/value_formatter/day_axis_value_formatter.dart @@ -18,15 +18,15 @@ class DayAxisValueFormatter extends ValueFormatter { ..add("Nov") ..add("Dec"); - BarLineScatterCandleBubbleController _controller; + late BarLineScatterCandleBubbleController _controller; DayAxisValueFormatter(BarLineScatterCandleBubbleController controller) { this._controller = controller; } @override - String getFormattedValue1(double value) { - int days = value.toInt(); + String getFormattedValue1(double? value) { + int days = value!.toInt(); int year = determineYear(days); @@ -34,7 +34,7 @@ class DayAxisValueFormatter extends ValueFormatter { String monthName = _months[month % _months.length]; String yearName = year.toString(); - if (_controller.painter.getVisibleXRange() > 30 * 6) { + if (_controller.painter!.getVisibleXRange() > 30 * 6) { return monthName + " " + yearName; } else { int dayOfMonth = determineDayOfMonth(days, month + 12 * (year - 2016)); diff --git a/mp_chart/lib/mp/core/value_formatter/default_axis_value_formatter.dart b/mp_chart/lib/mp/core/value_formatter/default_axis_value_formatter.dart index 94ae4ffb..82f89b32 100644 --- a/mp_chart/lib/mp/core/value_formatter/default_axis_value_formatter.dart +++ b/mp_chart/lib/mp/core/value_formatter/default_axis_value_formatter.dart @@ -3,10 +3,10 @@ import 'package:mp_chart/mp/core/value_formatter/value_formatter.dart'; class DefaultAxisValueFormatter extends ValueFormatter { /// decimalformat for formatting - NumberFormat _format; + late NumberFormat _format; /// the number of decimal digits this formatter uses - int _digits; + int? _digits; /// Constructor that specifies to how many digits the value should be /// formatted. @@ -25,10 +25,10 @@ class DefaultAxisValueFormatter extends ValueFormatter { } @override - String getFormattedValue1(double value) { + String getFormattedValue1(double? value) { // avoid memory allocations here (for performance) return _format.format(value); } - int get digits => _digits; + int? get digits => _digits; } diff --git a/mp_chart/lib/mp/core/value_formatter/default_value_formatter.dart b/mp_chart/lib/mp/core/value_formatter/default_value_formatter.dart index 3bb82038..dbd90b99 100644 --- a/mp_chart/lib/mp/core/value_formatter/default_value_formatter.dart +++ b/mp_chart/lib/mp/core/value_formatter/default_value_formatter.dart @@ -3,9 +3,9 @@ import 'package:mp_chart/mp/core/value_formatter/value_formatter.dart'; class DefaultValueFormatter extends ValueFormatter { /// DecimalFormat for formatting - NumberFormat _format; + late NumberFormat _format; - int _decimalDigits; + int? _decimalDigits; /// Constructor that specifies to how many digits the value should be /// formatted. @@ -34,7 +34,7 @@ class DefaultValueFormatter extends ValueFormatter { } @override - String getFormattedValue1(double value) { + String getFormattedValue1(double? value) { // put more logic here ... // avoid memory allocations here (for performance reasons) @@ -46,5 +46,5 @@ class DefaultValueFormatter extends ValueFormatter { return _format.toString(); } - int get decimalDigits => _decimalDigits; + int? get decimalDigits => _decimalDigits; } diff --git a/mp_chart/lib/mp/core/value_formatter/large_value_formatter.dart b/mp_chart/lib/mp/core/value_formatter/large_value_formatter.dart index 187bf6de..56ac6a15 100644 --- a/mp_chart/lib/mp/core/value_formatter/large_value_formatter.dart +++ b/mp_chart/lib/mp/core/value_formatter/large_value_formatter.dart @@ -9,7 +9,7 @@ class LargeValueFormatter extends ValueFormatter { ..add("b") ..add("t"); int _maxLength = 5; - NumberFormat _format; + late NumberFormat _format; String _text = ""; /// Creates a formatter that appends a specified text to the result string @@ -21,7 +21,7 @@ class LargeValueFormatter extends ValueFormatter { } @override - String getFormattedValue1(double value) { + String getFormattedValue1(double? value) { return makePretty(value) + _text; } @@ -46,10 +46,10 @@ class LargeValueFormatter extends ValueFormatter { /// Formats each number properly. Special thanks to Roman Gromov /// (https://github.com/romangromov) for this piece of code. - String makePretty(double number) { + String makePretty(double? number) { String r = _format.format(number); - int numericValue1 = int.tryParse(r[r.length - 1]); - int numericValue2 = int.tryParse(r[r.length - 2]); + int? numericValue1 = int.tryParse(r[r.length - 1]); + int? numericValue2 = int.tryParse(r[r.length - 2]); int combined = int.parse("$numericValue2$numericValue1"); r = r.replaceAllMapped( diff --git a/mp_chart/lib/mp/core/value_formatter/my_value_formatter.dart b/mp_chart/lib/mp/core/value_formatter/my_value_formatter.dart index 6d8b1b51..26ad8b8a 100644 --- a/mp_chart/lib/mp/core/value_formatter/my_value_formatter.dart +++ b/mp_chart/lib/mp/core/value_formatter/my_value_formatter.dart @@ -4,8 +4,8 @@ import 'package:mp_chart/mp/core/axis/x_axis.dart'; import 'package:mp_chart/mp/core/value_formatter/value_formatter.dart'; class MyValueFormatter extends ValueFormatter { - NumberFormat _format; - String _suffix; + late NumberFormat _format; + late String _suffix; MyValueFormatter(String suffix) { _format = NumberFormat("###,###,###,##0.0"); @@ -13,15 +13,15 @@ class MyValueFormatter extends ValueFormatter { } @override - String getFormattedValue1(double value) { + String getFormattedValue1(double? value) { return _format.format(value) + _suffix; } @override - String getAxisLabel(double value, AxisBase axis) { + String getAxisLabel(double? value, AxisBase? axis) { if (axis is XAxis) { return _format.format(value); - } else if (value > 0) { + } else if (value! > 0) { return _format.format(value) + _suffix; } else { return _format.format(value); diff --git a/mp_chart/lib/mp/core/value_formatter/percent_formatter.dart b/mp_chart/lib/mp/core/value_formatter/percent_formatter.dart index 6ac95aaf..4dd91a80 100644 --- a/mp_chart/lib/mp/core/value_formatter/percent_formatter.dart +++ b/mp_chart/lib/mp/core/value_formatter/percent_formatter.dart @@ -4,9 +4,9 @@ import 'package:mp_chart/mp/core/entry/pie_entry.dart'; import 'package:mp_chart/mp/core/value_formatter/value_formatter.dart'; class PercentFormatter extends ValueFormatter { - NumberFormat _format; - PieChartController _controller; - bool _percentSignSeparated; + late NumberFormat _format; + PieChartController? _controller; + late bool _percentSignSeparated; PercentFormatter() { _format = NumberFormat("###,###,##0.0"); @@ -18,15 +18,15 @@ class PercentFormatter extends ValueFormatter { } @override - String getFormattedValue1(double value) { + String getFormattedValue1(double? value) { return _format.format(value) + (_percentSignSeparated ? " %" : "%"); } @override - String getPieLabel(double value, PieEntry pieEntry) { + String getPieLabel(double? value, PieEntry pieEntry) { if (_controller != null && - _controller.painter != null && - _controller.painter.isUsePercentValuesEnabled()) { + _controller!.painter != null && + _controller!.painter!.isUsePercentValuesEnabled()) { // Converted to percent return getFormattedValue1(value); } else { diff --git a/mp_chart/lib/mp/core/value_formatter/stacked_value_formatter.dart b/mp_chart/lib/mp/core/value_formatter/stacked_value_formatter.dart index c706231e..975f88a8 100644 --- a/mp_chart/lib/mp/core/value_formatter/stacked_value_formatter.dart +++ b/mp_chart/lib/mp/core/value_formatter/stacked_value_formatter.dart @@ -4,12 +4,12 @@ import 'package:mp_chart/mp/core/value_formatter/value_formatter.dart'; class StackedValueFormatter extends ValueFormatter { /// if true, all stack values of the stacked bar entry are drawn, else only top - bool _drawWholeStack; + late bool _drawWholeStack; /// a string that should be appended behind the value - String _suffix; + late String _suffix; - NumberFormat _format; + late NumberFormat _format; /// Constructor. /// @@ -32,7 +32,7 @@ class StackedValueFormatter extends ValueFormatter { @override String getBarStackedLabel(double value, BarEntry entry) { if (!_drawWholeStack) { - List vals = entry.yVals; + List? vals = entry.yVals; if (vals != null) { // find out if we are on top of the stack diff --git a/mp_chart/lib/mp/core/value_formatter/value_formatter.dart b/mp_chart/lib/mp/core/value_formatter/value_formatter.dart index 7d6e6a12..633c7307 100644 --- a/mp_chart/lib/mp/core/value_formatter/value_formatter.dart +++ b/mp_chart/lib/mp/core/value_formatter/value_formatter.dart @@ -17,11 +17,11 @@ abstract class ValueFormatter { return getFormattedValue1(value); } - String getFormattedValue1(double value) { + String getFormattedValue1(double? value) { return value.toString(); } - String getAxisLabel(double value, AxisBase axis) { + String getAxisLabel(double? value, AxisBase? axis) { return getFormattedValue1(value); } @@ -37,7 +37,7 @@ abstract class ValueFormatter { return getFormattedValue1(entry.y); } - String getPieLabel(double value, PieEntry pieEntry) { + String getPieLabel(double? value, PieEntry pieEntry) { return getFormattedValue1(value); } diff --git a/mp_chart/lib/mp/core/view_port.dart b/mp_chart/lib/mp/core/view_port.dart index 51ecb236..20ea8115 100644 --- a/mp_chart/lib/mp/core/view_port.dart +++ b/mp_chart/lib/mp/core/view_port.dart @@ -40,10 +40,10 @@ class ViewPortHandler { double _transY = 0; /// offset that allows the chart to be dragged over its bounds on the x-axis - double _transOffsetX = 0; + double? _transOffsetX = 0; /// offset that allows the chart to be dragged over its bounds on the y-axis - double _transOffsetY = 0; + double? _transOffsetY = 0; /// Constructor - don't forget calling setChartDimens(...) ViewPortHandler(); @@ -255,7 +255,7 @@ class ViewPortHandler { return save; } - List valsBufferForFitScreen = List(16); + List valsBufferForFitScreen = List(16); /// Resets all zooming and dragging and makes the chart fit exactly it's /// bounds. @@ -278,7 +278,7 @@ class ViewPortHandler { ..storage[7] = 0 ..storage[0] = 1 ..storage[5] = 1; - List vals = valsBufferForFitScreen; + List vals = valsBufferForFitScreen; for (int i = 0; i < 16; i++) { vals[i] = outputMatrix.storage[i]; } @@ -326,7 +326,7 @@ class ViewPortHandler { refresh(save); } - List matrixBuffer = List(16); + List matrixBuffer = List(16); /// call this method to refresh the graph with a given matrix /// @@ -348,11 +348,11 @@ class ViewPortHandler { matrixBuffer[i] = matrix.storage[i]; } - double curTransX = matrixBuffer[12]; - double curScaleX = matrixBuffer[0]; + double curTransX = matrixBuffer[12]!; + double curScaleX = matrixBuffer[0]!; - double curTransY = matrixBuffer[13]; - double curScaleY = matrixBuffer[5]; + double curTransY = matrixBuffer[13]!; + double curScaleY = matrixBuffer[5]!; // min scale-x is 1f _scaleX = min(max(_minScaleX, curScaleX), _maxScaleX); @@ -369,10 +369,10 @@ class ViewPortHandler { } double maxTransX = -width * (_scaleX - 1); - _transX = min(max(curTransX, maxTransX - _transOffsetX), _transOffsetX); + _transX = min(max(curTransX, maxTransX - _transOffsetX!), _transOffsetX!); double maxTransY = height * (_scaleY - 1); - _transY = max(min(curTransY, maxTransY + _transOffsetY), -_transOffsetY); + _transY = max(min(curTransY, maxTransY + _transOffsetY!), -_transOffsetY!); matrixBuffer[12] = _transX; matrixBuffer[0] = _scaleX; @@ -381,7 +381,7 @@ class ViewPortHandler { matrixBuffer[5] = _scaleY; for (int i = 0; i < 16; i++) { - matrix.storage[i] = matrixBuffer[i]; + matrix.storage[i] = matrixBuffer[i]!; } } @@ -458,35 +458,35 @@ class ViewPortHandler { /// BELOW METHODS FOR BOUNDS CHECK - bool isInBoundsX(double x) { + bool isInBoundsX(double? x) { return isInBoundsLeft(x) && isInBoundsRight(x); } - bool isInBoundsY(double y) { + bool isInBoundsY(double? y) { return isInBoundsTop(y) && isInBoundsBottom(y); } - bool isInBounds(double x, double y) { + bool isInBounds(double? x, double? y) { return isInBoundsX(x) && isInBoundsY(y); } - bool isInBoundsLeft(double x) { + bool isInBoundsLeft(double? x) { if (x == null) return false; return _contentRect.left <= x + 1; } - bool isInBoundsRight(double x) { + bool isInBoundsRight(double? x) { if (x == null) return false; x = ((x * 100.0).toInt()) / 100.0; return _contentRect.right >= x - 1; } - bool isInBoundsTop(double y) { + bool isInBoundsTop(double? y) { if (y == null) return false; return _contentRect.top <= y; } - bool isInBoundsBottom(double y) { + bool isInBoundsBottom(double? y) { if (y == null) return false; y = ((y * 100.0).toInt()) / 100.0; return _contentRect.bottom >= y; @@ -574,7 +574,7 @@ class ViewPortHandler { /// /// @return bool hasNoDragOffset() { - return _transOffsetX <= 0 && _transOffsetY <= 0; + return _transOffsetX! <= 0 && _transOffsetY! <= 0; } /// Returns true if the chart is not yet fully zoomed out on the x-axis diff --git a/mp_chart/lib/mp/painter/bar_chart_painter.dart b/mp_chart/lib/mp/painter/bar_chart_painter.dart index 5498fb6d..ccbd9be2 100644 --- a/mp_chart/lib/mp/painter/bar_chart_painter.dart +++ b/mp_chart/lib/mp/painter/bar_chart_painter.dart @@ -24,7 +24,7 @@ import 'package:mp_chart/mp/core/transformer/transformer.dart'; import 'package:mp_chart/mp/core/view_port.dart'; import 'package:mp_chart/mp/painter/bar_line_chart_painter.dart'; -class BarChartPainter extends BarLineChartBasePainter +class BarChartPainter extends BarLineChartBasePainter implements BarDataProvider { /// flag that indicates whether the highlight should be full-bar oriented, or single-value? final bool _highlightFullBarEnabled; @@ -38,26 +38,26 @@ class BarChartPainter extends BarLineChartBasePainter final bool _fitBars; BarChartPainter( - BarData data, - Animator animator, - ViewPortHandler viewPortHandler, - double maxHighlightDistance, + BarData? data, + Animator? animator, + ViewPortHandler? viewPortHandler, + double? maxHighlightDistance, bool highLightPerTapEnabled, double extraLeftOffset, double extraTopOffset, double extraRightOffset, double extraBottomOffset, - IMarker marker, - Description desc, + IMarker? marker, + Description? desc, bool drawMarkers, - Color infoBgColor, - TextPainter infoPainter, - TextPainter descPainter, - XAxis xAxis, - Legend legend, - LegendRenderer legendRenderer, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectedListener, + Color? infoBgColor, + TextPainter? infoPainter, + TextPainter? descPainter, + XAxis? xAxis, + Legend? legend, + LegendRenderer? legendRenderer, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectedListener, int maxVisibleCount, bool autoScaleMinMaxEnabled, bool pinchZoomEnabled, @@ -67,29 +67,29 @@ class BarChartPainter extends BarLineChartBasePainter bool dragYEnabled, bool scaleXEnabled, bool scaleYEnabled, - Paint gridBackgroundPaint, - Paint backgroundPaint, - Paint borderPaint, + Paint? gridBackgroundPaint, + Paint? backgroundPaint, + Paint? borderPaint, bool drawGridBackground, bool drawBorders, bool clipValuesToContent, double minOffset, bool keepPositionOnRotation, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, - Matrix4 zoomMatrixBuffer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, + Matrix4? zoomMatrixBuffer, bool customViewPortEnabled, bool highlightFullBarEnabled, bool drawValueAboveBar, bool drawBarShadow, bool fitBars, - ChartTransListener chartTransListener) + ChartTransListener? chartTransListener) : _highlightFullBarEnabled = highlightFullBarEnabled, _drawValueAboveBar = drawValueAboveBar, _drawBarShadow = drawBarShadow, @@ -156,17 +156,17 @@ class BarChartPainter extends BarLineChartBasePainter @override void calcMinMax() { if (_fitBars) { - xAxis.calculate(getBarData().xMin - getBarData().barWidth / 2.0, - getBarData().xMax + getBarData().barWidth / 2.0); + xAxis!.calculate(getBarData()!.xMin! - getBarData()!.barWidth / 2.0, + getBarData()!.xMax! + getBarData()!.barWidth / 2.0); } else { - xAxis.calculate(getBarData().xMin, getBarData().xMax); + xAxis!.calculate(getBarData()!.xMin, getBarData()!.xMax); } // calculate axis range (min / max) according to provided data - axisLeft.calculate(getBarData().getYMin2(AxisDependency.LEFT), - getBarData().getYMax2(AxisDependency.LEFT)); - axisRight.calculate(getBarData().getYMin2(AxisDependency.RIGHT), - getBarData().getYMax2(AxisDependency.RIGHT)); + axisLeft!.calculate(getBarData()!.getYMin2(AxisDependency.LEFT), + getBarData()!.getYMax2(AxisDependency.LEFT)); + axisRight!.calculate(getBarData()!.getYMin2(AxisDependency.RIGHT), + getBarData()!.getYMax2(AxisDependency.RIGHT)); } /// Returns the Highlight object (contains x-index and DataSet index) of the selected value at the given touch @@ -177,11 +177,11 @@ class BarChartPainter extends BarLineChartBasePainter /// @param y /// @return @override - Highlight getHighlightByTouchPoint(double x, double y) { + Highlight? getHighlightByTouchPoint(double x, double y) { if (getBarData() == null) { return null; } else { - Highlight h = highlighter.getHighlight(x, y); + Highlight? h = highlighter!.getHighlight(x, y); if (h == null || !isHighlightFullBarEnabled()) return h; // For isHighlightFullBarEnabled, remove stackIndex @@ -204,7 +204,7 @@ class BarChartPainter extends BarLineChartBasePainter Rect getBarBounds(BarEntry e) { Rect bounds = Rect.zero; - IBarDataSet set = getBarData().getDataSetForEntry(e); + IBarDataSet? set = getBarData()!.getDataSetForEntry(e); if (set == null) { bounds = Rect.fromLTRB(double.minPositive, double.minPositive, @@ -212,10 +212,10 @@ class BarChartPainter extends BarLineChartBasePainter return bounds; } - double y = e.y; - double x = e.x; + double y = e.y!; + double x = e.x!; - double barWidth = getBarData().barWidth; + double barWidth = getBarData()!.barWidth; double left = x - barWidth / 2.0; double right = x + barWidth / 2.0; @@ -224,7 +224,7 @@ class BarChartPainter extends BarLineChartBasePainter bounds = Rect.fromLTRB(left, top, right, bottom); - return getTransformer(set.getAxisDependency()).rectValueToPixel(bounds); + return getTransformer(set.getAxisDependency())!.rectValueToPixel(bounds); } /// returns true if drawing values above bars is enabled, false if not @@ -272,12 +272,12 @@ class BarChartPainter extends BarLineChartBasePainter throw Exception( "You need to set data for the chart before grouping bars."); } else { - getBarData().groupBars(fromX, groupSpace, barSpace); + getBarData()!.groupBars(fromX, groupSpace, barSpace); } } @override - BarData getBarData() { - return getData(); + BarData? getBarData() { + return getData() as BarData?; } } diff --git a/mp_chart/lib/mp/painter/bar_line_chart_painter.dart b/mp_chart/lib/mp/painter/bar_line_chart_painter.dart index 319ec8ab..14c9fe3e 100644 --- a/mp_chart/lib/mp/painter/bar_line_chart_painter.dart +++ b/mp_chart/lib/mp/painter/bar_line_chart_painter.dart @@ -34,9 +34,9 @@ import 'package:mp_chart/mp/painter/painter.dart'; abstract class BarLineChartBasePainter< T extends BarLineScatterCandleBubbleData< - IBarLineScatterCandleBubbleDataSet>> extends ChartPainter + IBarLineScatterCandleBubbleDataSet>?> extends ChartPainter implements BarLineScatterCandleBubbleDataProvider { - final ChartTransListener _chartTransListener; + final ChartTransListener? _chartTransListener; /// the maximum number of entries to which values will be drawn /// (entry numbers greater than this value will cause value-labels to disappear) @@ -66,11 +66,11 @@ abstract class BarLineChartBasePainter< final bool _scaleYEnabled; /// paint object for the (by default) lightgrey background of the grid - final Paint _gridBackgroundPaint; + final Paint? _gridBackgroundPaint; - final Paint _backgroundPaint; + final Paint? _backgroundPaint; - final Paint _borderPaint; + final Paint? _borderPaint; /// flag indicating if the grid background should be drawn or not final bool _drawGridBackground; @@ -88,46 +88,46 @@ abstract class BarLineChartBasePainter< /// the listener for user drawing on the chart // ignore: unused_field - final OnDrawListener _drawListener; + final OnDrawListener? _drawListener; /// the object representing the labels on the left y-axis - final YAxis _axisLeft; + final YAxis? _axisLeft; /// the object representing the labels on the right y-axis - final YAxis _axisRight; + final YAxis? _axisRight; - final YAxisRenderer _axisRendererLeft; - final YAxisRenderer _axisRendererRight; + final YAxisRenderer? _axisRendererLeft; + final YAxisRenderer? _axisRendererRight; - final Transformer _leftAxisTransformer; - final Transformer _rightAxisTransformer; + final Transformer? _leftAxisTransformer; + final Transformer? _rightAxisTransformer; - final XAxisRenderer _xAxisRenderer; + final XAxisRenderer? _xAxisRenderer; /// flag that indicates if a custom viewport offset has been set bool _customViewPortEnabled; /// CODE BELOW THIS RELATED TO SCALING AND GESTURES AND MODIFICATION OF THE /// VIEWPORT - final Matrix4 _zoomMatrixBuffer; + final Matrix4? _zoomMatrixBuffer; ///////////////////////////////// Rect _offsetsBuffer = Rect.zero; - YAxis get axisLeft => _axisLeft; + YAxis? get axisLeft => _axisLeft; - YAxis get axisRight => _axisRight; + YAxis? get axisRight => _axisRight; - YAxisRenderer get axisRendererLeft => _axisRendererLeft; + YAxisRenderer? get axisRendererLeft => _axisRendererLeft; - YAxisRenderer get axisRendererRight => _axisRendererRight; + YAxisRenderer? get axisRendererRight => _axisRendererRight; double get minOffset => _minOffset; - Transformer get leftAxisTransformer => _leftAxisTransformer; + Transformer? get leftAxisTransformer => _leftAxisTransformer; - Transformer get rightAxisTransformer => _rightAxisTransformer; + Transformer? get rightAxisTransformer => _rightAxisTransformer; bool get highlightPerDragEnabled => _highlightPerDragEnabled; @@ -143,25 +143,25 @@ abstract class BarLineChartBasePainter< BarLineChartBasePainter( T data, - Animator animator, - ViewPortHandler viewPortHandler, - double maxHighlightDistance, + Animator? animator, + ViewPortHandler? viewPortHandler, + double? maxHighlightDistance, bool highLightPerTapEnabled, double extraLeftOffset, double extraTopOffset, double extraRightOffset, double extraBottomOffset, - IMarker marker, - Description desc, + IMarker? marker, + Description? desc, bool drawMarkers, - Color infoBgColor, - TextPainter infoPainter, - TextPainter descPainter, - XAxis xAxis, - Legend legend, - LegendRenderer legendRenderer, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectedListener, + Color? infoBgColor, + TextPainter? infoPainter, + TextPainter? descPainter, + XAxis? xAxis, + Legend? legend, + LegendRenderer? legendRenderer, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectedListener, int maxVisibleCount, bool autoScaleMinMaxEnabled, bool pinchZoomEnabled, @@ -171,25 +171,25 @@ abstract class BarLineChartBasePainter< bool dragYEnabled, bool scaleXEnabled, bool scaleYEnabled, - Paint gridBackgroundPaint, - Paint borderPaint, + Paint? gridBackgroundPaint, + Paint? borderPaint, bool drawGridBackground, bool drawBorders, bool clipValuesToContent, double minOffset, bool keepPositionOnRotation, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, - Matrix4 zoomMatrixBuffer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, + Matrix4? zoomMatrixBuffer, bool customViewPortEnabled, - Paint backgroundPaint, - ChartTransListener chartTransListener) + Paint? backgroundPaint, + ChartTransListener? chartTransListener) : _keepPositionOnRotation = keepPositionOnRotation, _leftAxisTransformer = leftAxisTransformer, _rightAxisTransformer = rightAxisTransformer, @@ -250,7 +250,7 @@ abstract class BarLineChartBasePainter< void onPaint(Canvas canvas, Size size) { if (_backgroundPaint != null) { canvas.drawRect( - Rect.fromLTRB(0, 0, size.width, size.height), _backgroundPaint); + Rect.fromLTRB(0, 0, size.width, size.height), _backgroundPaint!); } // execute all drawing commands @@ -258,75 +258,75 @@ abstract class BarLineChartBasePainter< compute(); - _xAxisRenderer.renderAxisLine(canvas); - _axisRendererLeft.renderAxisLine(canvas); - _axisRendererRight.renderAxisLine(canvas); + _xAxisRenderer!.renderAxisLine(canvas); + _axisRendererLeft!.renderAxisLine(canvas); + _axisRendererRight!.renderAxisLine(canvas); - if (xAxis.drawGridLinesBehindData) _xAxisRenderer.renderGridLines(canvas); + if (xAxis!.drawGridLinesBehindData) _xAxisRenderer!.renderGridLines(canvas); - if (_axisLeft.drawGridLinesBehindData) - _axisRendererLeft.renderGridLines(canvas); + if (_axisLeft!.drawGridLinesBehindData) + _axisRendererLeft!.renderGridLines(canvas); - if (_axisRight.drawGridLinesBehindData) - _axisRendererRight.renderGridLines(canvas); + if (_axisRight!.drawGridLinesBehindData) + _axisRendererRight!.renderGridLines(canvas); - if (xAxis.enabled && xAxis.drawLimitLineBehindData) - _xAxisRenderer.renderLimitLines(canvas); + if (xAxis!.enabled && xAxis!.drawLimitLineBehindData) + _xAxisRenderer!.renderLimitLines(canvas); - if (_axisLeft.enabled && _axisLeft.drawLimitLineBehindData) - _axisRendererLeft.renderLimitLines(canvas); + if (_axisLeft!.enabled && _axisLeft!.drawLimitLineBehindData) + _axisRendererLeft!.renderLimitLines(canvas); - if (_axisRight.enabled && _axisRight.drawLimitLineBehindData) - _axisRendererRight.renderLimitLines(canvas); + if (_axisRight!.enabled && _axisRight!.drawLimitLineBehindData) + _axisRendererRight!.renderLimitLines(canvas); // make sure the data cannot be drawn outside the content-rect canvas.save(); - canvas.clipRect(viewPortHandler.getContentRect()); + canvas.clipRect(viewPortHandler!.getContentRect()); - renderer.drawData(canvas); + renderer!.drawData(canvas); - if (!xAxis.drawGridLinesBehindData) _xAxisRenderer.renderGridLines(canvas); + if (!xAxis!.drawGridLinesBehindData) _xAxisRenderer!.renderGridLines(canvas); - if (!_axisLeft.drawGridLinesBehindData) - _axisRendererLeft.renderGridLines(canvas); + if (!_axisLeft!.drawGridLinesBehindData) + _axisRendererLeft!.renderGridLines(canvas); - if (!_axisRight.drawGridLinesBehindData) - _axisRendererRight.renderGridLines(canvas); + if (!_axisRight!.drawGridLinesBehindData) + _axisRendererRight!.renderGridLines(canvas); // if highlighting is enabled if (valuesToHighlight()) - renderer.drawHighlighted(canvas, indicesToHighlight); + renderer!.drawHighlighted(canvas, indicesToHighlight); // Removes clipping rectangle canvas.restore(); - renderer.drawExtras(canvas); + renderer!.drawExtras(canvas); - if (xAxis.enabled && !xAxis.drawLimitLineBehindData) - _xAxisRenderer.renderLimitLines(canvas); + if (xAxis!.enabled && !xAxis!.drawLimitLineBehindData) + _xAxisRenderer!.renderLimitLines(canvas); - if (_axisLeft.enabled && !_axisLeft.drawLimitLineBehindData) - _axisRendererLeft.renderLimitLines(canvas); + if (_axisLeft!.enabled && !_axisLeft!.drawLimitLineBehindData) + _axisRendererLeft!.renderLimitLines(canvas); - if (_axisRight.enabled && !_axisRight.drawLimitLineBehindData) - _axisRendererRight.renderLimitLines(canvas); + if (_axisRight!.enabled && !_axisRight!.drawLimitLineBehindData) + _axisRendererRight!.renderLimitLines(canvas); - _xAxisRenderer.renderAxisLabels(canvas); - _axisRendererLeft.renderAxisLabels(canvas); - _axisRendererRight.renderAxisLabels(canvas); + _xAxisRenderer!.renderAxisLabels(canvas); + _axisRendererLeft!.renderAxisLabels(canvas); + _axisRendererRight!.renderAxisLabels(canvas); if (_clipValuesToContent) { canvas.save(); - canvas.clipRect(viewPortHandler.getContentRect()); + canvas.clipRect(viewPortHandler!.getContentRect()); - renderer.drawValues(canvas); + renderer!.drawValues(canvas); canvas.restore(); } else { - renderer.drawValues(canvas); + renderer!.drawValues(canvas); } - legendRenderer.renderLegend(canvas); + legendRenderer!.renderLegend(canvas); drawDescription(canvas, size); @@ -334,16 +334,16 @@ abstract class BarLineChartBasePainter< } void prepareValuePxMatrix() { - _rightAxisTransformer.prepareMatrixValuePx(xAxis.axisMinimum, - xAxis.axisRange, _axisRight.axisRange, _axisRight.axisMinimum); + _rightAxisTransformer!.prepareMatrixValuePx(xAxis!.axisMinimum!, + xAxis!.axisRange, _axisRight!.axisRange, _axisRight!.axisMinimum!); - _leftAxisTransformer.prepareMatrixValuePx(xAxis.axisMinimum, - xAxis.axisRange, _axisLeft.axisRange, _axisLeft.axisMinimum); + _leftAxisTransformer!.prepareMatrixValuePx(xAxis!.axisMinimum!, + xAxis!.axisRange, _axisLeft!.axisRange, _axisLeft!.axisMinimum!); } void prepareOffsetMatrix() { - _rightAxisTransformer.prepareMatrixOffset(_axisRight.inverted); - _leftAxisTransformer.prepareMatrixOffset(_axisLeft.inverted); + _rightAxisTransformer!.prepareMatrixOffset(_axisRight!.inverted); + _leftAxisTransformer!.prepareMatrixOffset(_axisLeft!.inverted); } /// Performs auto scaling of the axis by recalculating the minimum and maximum y-values based on the entries currently in view. @@ -351,20 +351,20 @@ abstract class BarLineChartBasePainter< final double fromX = getLowestVisibleX(); final double toX = getHighestVisibleX(); - getData().calcMinMaxY(fromX, toX); + getData()!.calcMinMaxY(fromX, toX); - xAxis.calculate(getData().xMin, getData().xMax); + xAxis!.calculate(getData()!.xMin, getData()!.xMax); // calculate axis range (min / max) according to provided data - if (axisLeft.enabled) { - axisLeft.calculate(getData().getYMin2(AxisDependency.LEFT), - getData().getYMax2(AxisDependency.LEFT)); + if (axisLeft!.enabled) { + axisLeft!.calculate(getData()!.getYMin2(AxisDependency.LEFT), + getData()!.getYMax2(AxisDependency.LEFT)); } - if (axisRight.enabled) { - axisRight.calculate(getData().getYMin2(AxisDependency.RIGHT), - getData().getYMax2(AxisDependency.RIGHT)); + if (axisRight!.enabled) { + axisRight!.calculate(getData()!.getYMin2(AxisDependency.RIGHT), + getData()!.getYMax2(AxisDependency.RIGHT)); } calculateOffsets(); @@ -372,28 +372,28 @@ abstract class BarLineChartBasePainter< @override void calcMinMax() { - xAxis.calculate(getData().xMin, getData().xMax); + xAxis!.calculate(getData()!.xMin, getData()!.xMax); // calculate axis range (min / max) according to provided data - _axisLeft.calculate(getData().getYMin2(AxisDependency.LEFT), - getData().getYMax2(AxisDependency.LEFT)); - _axisRight.calculate(getData().getYMin2(AxisDependency.RIGHT), - getData().getYMax2(AxisDependency.RIGHT)); + _axisLeft!.calculate(getData()!.getYMin2(AxisDependency.LEFT), + getData()!.getYMax2(AxisDependency.LEFT)); + _axisRight!.calculate(getData()!.getYMin2(AxisDependency.RIGHT), + getData()!.getYMax2(AxisDependency.RIGHT)); } Rect calculateLegendOffsets(Rect offsets) { offsets = Rect.fromLTRB(0.0, 0.0, 0.0, 0.0); // setup offsets for legend - if (legend != null && legend.enabled && !legend.drawInside) { - switch (legend.orientation) { + if (legend != null && legend!.enabled && !legend!.drawInside) { + switch (legend!.orientation) { case LegendOrientation.VERTICAL: - switch (legend.horizontalAlignment) { + switch (legend!.horizontalAlignment) { case LegendHorizontalAlignment.LEFT: offsets = Rect.fromLTRB( min( - legend.neededWidth, - viewPortHandler.getChartWidth() * - legend.maxSizePercent) + - legend.xOffset, + legend!.neededWidth, + viewPortHandler!.getChartWidth() * + legend!.maxSizePercent) + + legend!.xOffset!, 0.0, 0.0, 0.0); @@ -404,23 +404,23 @@ abstract class BarLineChartBasePainter< 0.0, 0.0, min( - legend.neededWidth, - viewPortHandler.getChartWidth() * - legend.maxSizePercent) + - legend.xOffset, + legend!.neededWidth, + viewPortHandler!.getChartWidth() * + legend!.maxSizePercent) + + legend!.xOffset!, 0.0); break; case LegendHorizontalAlignment.CENTER: - switch (legend.verticalAlignment) { + switch (legend!.verticalAlignment) { case LegendVerticalAlignment.TOP: offsets = Rect.fromLTRB( 0.0, min( - legend.neededHeight, - viewPortHandler.getChartHeight() * - legend.maxSizePercent) + - legend.yOffset, + legend!.neededHeight, + viewPortHandler!.getChartHeight() * + legend!.maxSizePercent) + + legend!.yOffset!, 0.0, 0.0); break; @@ -431,10 +431,10 @@ abstract class BarLineChartBasePainter< 0.0, 0.0, min( - legend.neededHeight, - viewPortHandler.getChartHeight() * - legend.maxSizePercent) + - legend.yOffset); + legend!.neededHeight, + viewPortHandler!.getChartHeight() * + legend!.maxSizePercent) + + legend!.yOffset!); break; default: @@ -445,15 +445,15 @@ abstract class BarLineChartBasePainter< break; case LegendOrientation.HORIZONTAL: - switch (legend.verticalAlignment) { + switch (legend!.verticalAlignment) { case LegendVerticalAlignment.TOP: offsets = Rect.fromLTRB( 0.0, min( - legend.neededHeight, - viewPortHandler.getChartHeight() * - legend.maxSizePercent) + - legend.yOffset, + legend!.neededHeight, + viewPortHandler!.getChartHeight() * + legend!.maxSizePercent) + + legend!.yOffset!, 0.0, 0.0); break; @@ -464,10 +464,10 @@ abstract class BarLineChartBasePainter< 0.0, 0.0, min( - legend.neededHeight, - viewPortHandler.getChartHeight() * - legend.maxSizePercent) + - legend.yOffset); + legend!.neededHeight, + viewPortHandler!.getChartHeight() * + legend!.maxSizePercent) + + legend!.yOffset!); break; default: @@ -484,24 +484,24 @@ abstract class BarLineChartBasePainter< autoScale(); } - if (_axisLeft.enabled) { - _axisRendererLeft.computeAxis( - _axisLeft.axisMinimum, _axisLeft.axisMaximum, _axisLeft.inverted); + if (_axisLeft!.enabled) { + _axisRendererLeft!.computeAxis( + _axisLeft!.axisMinimum, _axisLeft!.axisMaximum, _axisLeft!.inverted); } - if (_axisRight.enabled) { - _axisRendererRight.computeAxis( - _axisRight.axisMinimum, _axisRight.axisMaximum, _axisRight.inverted); + if (_axisRight!.enabled) { + _axisRendererRight!.computeAxis( + _axisRight!.axisMinimum, _axisRight!.axisMaximum, _axisRight!.inverted); } - if (xAxis.enabled) { - _xAxisRenderer.computeAxis(xAxis.axisMinimum, xAxis.axisMaximum, false); + if (xAxis!.enabled) { + _xAxisRenderer!.computeAxis(xAxis!.axisMinimum, xAxis!.axisMaximum, false); } } @override void calculateOffsets() { - if (legend != null) legendRenderer.computeLegend(getData()); + if (legend != null) legendRenderer!.computeLegend(getData()); renderer?.initBuffers(); calcMinMax(); @@ -516,27 +516,27 @@ abstract class BarLineChartBasePainter< offsetBottom += _offsetsBuffer.bottom; // offsets for y-labels - if (_axisLeft.needsOffset()) { + if (_axisLeft!.needsOffset()) { offsetLeft += - _axisLeft.getRequiredWidthSpace(_axisRendererLeft.axisLabelPaint); + _axisLeft!.getRequiredWidthSpace(_axisRendererLeft!.axisLabelPaint); } - if (_axisRight.needsOffset()) { + if (_axisRight!.needsOffset()) { offsetRight += - _axisRight.getRequiredWidthSpace(_axisRendererRight.axisLabelPaint); + _axisRight!.getRequiredWidthSpace(_axisRendererRight!.axisLabelPaint); } - if (xAxis.enabled && xAxis.drawLabels) { - double xLabelHeight = xAxis.labelRotatedHeight + - xAxis.yOffset + - xAxis.getRequiredHeightSpace(_xAxisRenderer.axisLabelPaint); + if (xAxis!.enabled && xAxis!.drawLabels) { + double xLabelHeight = xAxis!.labelRotatedHeight + + xAxis!.yOffset! + + xAxis!.getRequiredHeightSpace(_xAxisRenderer!.axisLabelPaint); // offsets for x-labels - if (xAxis.position == XAxisPosition.BOTTOM) { + if (xAxis!.position == XAxisPosition.BOTTOM) { offsetBottom += xLabelHeight; - } else if (xAxis.position == XAxisPosition.TOP) { + } else if (xAxis!.position == XAxisPosition.TOP) { offsetTop += xLabelHeight; - } else if (xAxis.position == XAxisPosition.BOTH_SIDED) { + } else if (xAxis!.position == XAxisPosition.BOTH_SIDED) { offsetBottom += xLabelHeight; offsetTop += xLabelHeight; } @@ -547,9 +547,9 @@ abstract class BarLineChartBasePainter< offsetBottom += extraBottomOffset; offsetLeft += extraLeftOffset; - double minOffset = Utils.convertDpToPixel(_minOffset); + double minOffset = Utils.convertDpToPixel(_minOffset)!; - viewPortHandler.restrainViewPort( + viewPortHandler!.restrainViewPort( max(minOffset, offsetLeft), max(minOffset, offsetTop), max(minOffset, offsetRight), @@ -564,11 +564,11 @@ abstract class BarLineChartBasePainter< void drawGridBackground(Canvas c) { if (_drawGridBackground) { // draw the grid background - c.drawRect(viewPortHandler.getContentRect(), _gridBackgroundPaint); + c.drawRect(viewPortHandler!.getContentRect(), _gridBackgroundPaint!); } if (_drawBorders) { - c.drawRect(viewPortHandler.getContentRect(), _borderPaint); + c.drawRect(viewPortHandler!.getContentRect(), _borderPaint!); } } @@ -577,7 +577,7 @@ abstract class BarLineChartBasePainter< /// backwards. /// /// @return - Transformer getTransformer(AxisDependency which) { + Transformer? getTransformer(AxisDependency which) { if (which == AxisDependency.LEFT) return _leftAxisTransformer; else @@ -591,7 +591,7 @@ abstract class BarLineChartBasePainter< /// @param scaleY if < 1f --> zoom out, if > 1f --> zoom in /// @param x /// @param y - void zoom(double scaleX, double scaleY, double x, double y) { + void zoom(double scaleX, double scaleY, double? x, double? y) { if (scaleX.isInfinite || scaleX.isNaN || scaleY.isInfinite || @@ -599,19 +599,19 @@ abstract class BarLineChartBasePainter< return; } - viewPortHandler.zoom4(scaleX, scaleY, x, -y, _zoomMatrixBuffer); - viewPortHandler.refresh(_zoomMatrixBuffer); + viewPortHandler!.zoom4(scaleX, scaleY, x!, -y!, _zoomMatrixBuffer!); + viewPortHandler!.refresh(_zoomMatrixBuffer!); if (_chartTransListener != null) { - _chartTransListener.scale(scaleX, scaleY, x, y); + _chartTransListener!.scale(scaleX, scaleY, x, y); } } void translate(double dx, double dy) { - Matrix4Utils.postTranslate(viewPortHandler.matrixTouch, dx, dy); - viewPortHandler.limitTransAndScale( - viewPortHandler.matrixTouch, viewPortHandler.contentRect); + Matrix4Utils.postTranslate(viewPortHandler!.matrixTouch, dx, dy); + viewPortHandler!.limitTransAndScale( + viewPortHandler!.matrixTouch, viewPortHandler!.contentRect); if (_chartTransListener != null) { - _chartTransListener.translate(dx, dy); + _chartTransListener!.translate(dx, dy); } } @@ -622,7 +622,7 @@ abstract class BarLineChartBasePainter< /// @param axis the axis for which this limit should apply void setVisibleYRangeMaximum(double maxYRange, AxisDependency axis) { double yScale = getAxisRange(axis) / maxYRange; - viewPortHandler.setMinimumScaleY(yScale); + viewPortHandler!.setMinimumScaleY(yScale); } /// Sets the size of the area (range on the y-axis) that should be minimum visible at once, no further zooming in possible. @@ -631,7 +631,7 @@ abstract class BarLineChartBasePainter< /// @param axis the axis for which this limit should apply void setVisibleYRangeMinimum(double minYRange, AxisDependency axis) { double yScale = getAxisRange(axis) / minYRange; - viewPortHandler.setMaximumScaleY(yScale); + viewPortHandler!.setMaximumScaleY(yScale); } /// Limits the maximum and minimum y range that can be visible by pinching and zooming. @@ -643,7 +643,7 @@ abstract class BarLineChartBasePainter< double minYRange, double maxYRange, AxisDependency axis) { double minScale = getAxisRange(axis) / minYRange; double maxScale = getAxisRange(axis) / maxYRange; - viewPortHandler.setMinMaxScaleY(minScale, maxScale); + viewPortHandler!.setMinMaxScaleY(minScale, maxScale); } /** @@ -657,12 +657,12 @@ abstract class BarLineChartBasePainter< /// @return double getAxisRange(AxisDependency axis) { if (axis == AxisDependency.LEFT) - return _axisLeft.axisRange; + return _axisLeft!.axisRange; else - return _axisRight.axisRange; + return _axisRight!.axisRange; } - List mGetPositionBuffer = List(2); + List mGetPositionBuffer = List(2); /// Returns a recyclable MPPointF instance. /// Returns the position (in pixels) the provided Entry has inside the chart @@ -676,7 +676,7 @@ abstract class BarLineChartBasePainter< mGetPositionBuffer[0] = e.x; mGetPositionBuffer[1] = e.y; - getTransformer(axis).pointValuesToPixel(mGetPositionBuffer); + getTransformer(axis)!.pointValuesToPixel(mGetPositionBuffer); return MPPointF.getInstance1(mGetPositionBuffer[0], mGetPositionBuffer[1]); } @@ -693,7 +693,7 @@ abstract class BarLineChartBasePainter< /// /// @param width void setBorderWidth(double width) { - _borderPaint..strokeWidth = Utils.convertDpToPixel(width); + _borderPaint..strokeWidth = Utils.convertDpToPixel(width)!; } /// Sets the color of the chart border lines. @@ -720,7 +720,7 @@ abstract class BarLineChartBasePainter< void getValuesByTouchPoint2( double x, double y, AxisDependency axis, MPPointD outputPoint) { - getTransformer(axis).getValuesByTouchPoint2(x, y, outputPoint); + getTransformer(axis)!.getValuesByTouchPoint2(x, y, outputPoint); } /// Returns a recyclable MPPointD instance @@ -731,7 +731,7 @@ abstract class BarLineChartBasePainter< /// @param y /// @return MPPointD getPixelForValues(double x, double y, AxisDependency axis) { - return getTransformer(axis).getPixelForValues(x, y); + return getTransformer(axis)!.getPixelForValues(x, y); } /// returns the Entry object displayed at the touched position of the chart @@ -739,10 +739,10 @@ abstract class BarLineChartBasePainter< /// @param x /// @param y /// @return - Entry getEntryByTouchPoint(double x, double y) { - Highlight h = getHighlightByTouchPoint(x, y); + Entry? getEntryByTouchPoint(double x, double y) { + Highlight? h = getHighlightByTouchPoint(x, y); if (h != null) { - return getData().getEntryForHighlight(h); + return getData()!.getEntryForHighlight(h); } return null; } @@ -752,11 +752,11 @@ abstract class BarLineChartBasePainter< /// @param x /// @param y /// @return - IBarLineScatterCandleBubbleDataSet getDataSetByTouchPoint( + IBarLineScatterCandleBubbleDataSet? getDataSetByTouchPoint( double x, double y) { - Highlight h = getHighlightByTouchPoint(x, y); + Highlight? h = getHighlightByTouchPoint(x, y); if (h != null) { - return getData().getDataSetByIndex(h.dataSetIndex); + return getData()!.getDataSetByIndex(h.dataSetIndex); } return null; } @@ -770,11 +770,11 @@ abstract class BarLineChartBasePainter< /// @return @override double getLowestVisibleX() { - getTransformer(AxisDependency.LEFT).getValuesByTouchPoint2( - viewPortHandler.contentLeft(), - viewPortHandler.contentBottom(), + getTransformer(AxisDependency.LEFT)!.getValuesByTouchPoint2( + viewPortHandler!.contentLeft(), + viewPortHandler!.contentBottom(), posForGetLowestVisibleX); - double result = max(xAxis.axisMinimum, posForGetLowestVisibleX.x); + double result = max(xAxis!.axisMinimum!, posForGetLowestVisibleX.x!); return result; } @@ -787,11 +787,11 @@ abstract class BarLineChartBasePainter< /// @return @override double getHighestVisibleX() { - getTransformer(AxisDependency.LEFT).getValuesByTouchPoint2( - viewPortHandler.contentRight(), - viewPortHandler.contentBottom(), + getTransformer(AxisDependency.LEFT)!.getValuesByTouchPoint2( + viewPortHandler!.contentRight(), + viewPortHandler!.contentBottom(), posForGetHighestVisibleX); - double result = min(xAxis.axisMaximum, posForGetHighestVisibleX.x); + double result = min(xAxis!.axisMaximum!, posForGetHighestVisibleX.x!); return result; } @@ -807,7 +807,7 @@ abstract class BarLineChartBasePainter< if (viewPortHandler == null) return 1; else - return viewPortHandler.getScaleX(); + return viewPortHandler!.getScaleX(); } /// returns the current y-scale factor @@ -815,14 +815,14 @@ abstract class BarLineChartBasePainter< if (viewPortHandler == null) return 1; else - return viewPortHandler.getScaleY(); + return viewPortHandler!.getScaleY(); } /// if the chart is fully zoomed out, return true /// /// @return bool isFullyZoomedOut() { - return viewPortHandler.isFullyZoomedOut(); + return viewPortHandler!.isFullyZoomedOut(); } /// Returns the y-axis object to the corresponding AxisDependency. In the @@ -830,7 +830,7 @@ abstract class BarLineChartBasePainter< /// /// @param axis /// @return - YAxis getAxis(AxisDependency axis) { + YAxis? getAxis(AxisDependency axis) { if (axis == AxisDependency.LEFT) return _axisLeft; else @@ -839,7 +839,7 @@ abstract class BarLineChartBasePainter< @override bool isInverted(AxisDependency axis) { - return getAxis(axis).inverted; + return getAxis(axis)!.inverted; } /// Set an offset in dp that allows the user to drag the chart over it's @@ -847,7 +847,7 @@ abstract class BarLineChartBasePainter< /// /// @param offset void setDragOffsetX(double offset) { - viewPortHandler.setDragOffsetX(offset); + viewPortHandler!.setDragOffsetX(offset); } /// Set an offset in dp that allows the user to drag the chart over it's @@ -855,24 +855,24 @@ abstract class BarLineChartBasePainter< /// /// @param offset void setDragOffsetY(double offset) { - viewPortHandler.setDragOffsetY(offset); + viewPortHandler!.setDragOffsetY(offset); } /// Returns true if both drag offsets (x and y) are zero or smaller. /// /// @return bool hasNoDragOffset() { - return viewPortHandler.hasNoDragOffset(); + return viewPortHandler!.hasNoDragOffset(); } @override double getYChartMax() { - return max(_axisLeft.axisMaximum, _axisRight.axisMaximum); + return max(_axisLeft!.axisMaximum!, _axisRight!.axisMaximum!); } @override double getYChartMin() { - return min(_axisLeft.axisMinimum, _axisRight.axisMinimum); + return min(_axisLeft!.axisMinimum!, _axisRight!.axisMinimum!); } @override @@ -881,21 +881,21 @@ abstract class BarLineChartBasePainter< } @override - BarLineScatterCandleBubbleData getData() { - return super.getData(); + BarLineScatterCandleBubbleData? getData() { + return super.getData() as BarLineScatterCandleBubbleData>?; } /// Returns true if either the left or the right or both axes are inverted. /// /// @return bool isAnyAxisInverted() { - if (_axisLeft.inverted) return true; - if (_axisRight.inverted) return true; + if (_axisLeft!.inverted) return true; + if (_axisRight!.inverted) return true; return false; } bool updateEntry(int index, Entry entry, int dataSetIndex){ - var dataSet = getData().getDataSetByIndex(dataSetIndex); + var dataSet = getData()!.getDataSetByIndex(dataSetIndex); if(dataSet == null) { return false; } @@ -904,14 +904,14 @@ abstract class BarLineChartBasePainter< } void addEntryByIndex(int index, Entry entry, int dataSetIndex){ - var dataSet = getData().getDataSetByIndex(dataSetIndex); + var dataSet = getData()!.getDataSetByIndex(dataSetIndex); if(dataSet != null){ dataSet.addEntryByIndex(index, entry); } } void addEntry(Entry entry, int dataSetIndex){ - var dataSet = getData().getDataSetByIndex(dataSetIndex); + var dataSet = getData()!.getDataSetByIndex(dataSetIndex); if(dataSet != null) { addEntryByIndex(dataSet.getEntryCount(), entry, dataSetIndex); } diff --git a/mp_chart/lib/mp/painter/bubble_chart_painter.dart b/mp_chart/lib/mp/painter/bubble_chart_painter.dart index fc974bc7..2c0666d8 100644 --- a/mp_chart/lib/mp/painter/bubble_chart_painter.dart +++ b/mp_chart/lib/mp/painter/bubble_chart_painter.dart @@ -18,29 +18,29 @@ import 'package:mp_chart/mp/core/transformer/transformer.dart'; import 'package:mp_chart/mp/core/view_port.dart'; import 'package:mp_chart/mp/painter/bar_line_chart_painter.dart'; -class BubbleChartPainter extends BarLineChartBasePainter +class BubbleChartPainter extends BarLineChartBasePainter implements BubbleDataProvider { BubbleChartPainter( - BubbleData data, - Animator animator, - ViewPortHandler viewPortHandler, - double maxHighlightDistance, + BubbleData? data, + Animator? animator, + ViewPortHandler? viewPortHandler, + double? maxHighlightDistance, bool highLightPerTapEnabled, double extraLeftOffset, double extraTopOffset, double extraRightOffset, double extraBottomOffset, - IMarker marker, - Description desc, + IMarker? marker, + Description? desc, bool drawMarkers, - Color infoBgColor, - TextPainter infoPainter, - TextPainter descPainter, - XAxis xAxis, - Legend legend, - LegendRenderer legendRenderer, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectedListener, + Color? infoBgColor, + TextPainter? infoPainter, + TextPainter? descPainter, + XAxis? xAxis, + Legend? legend, + LegendRenderer? legendRenderer, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectedListener, int maxVisibleCount, bool autoScaleMinMaxEnabled, bool pinchZoomEnabled, @@ -50,25 +50,25 @@ class BubbleChartPainter extends BarLineChartBasePainter bool dragYEnabled, bool scaleXEnabled, bool scaleYEnabled, - Paint gridBackgroundPaint, - Paint backgroundPaint, - Paint borderPaint, + Paint? gridBackgroundPaint, + Paint? backgroundPaint, + Paint? borderPaint, bool drawGridBackground, bool drawBorders, bool clipValuesToContent, double minOffset, bool keepPositionOnRotation, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, - Matrix4 zoomMatrixBuffer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, + Matrix4? zoomMatrixBuffer, bool customViewPortEnabled, - ChartTransListener chartTransListener) + ChartTransListener? chartTransListener) : super( data, animator, @@ -126,7 +126,7 @@ class BubbleChartPainter extends BarLineChartBasePainter } @override - BubbleData getBubbleData() { - return getData(); + BubbleData? getBubbleData() { + return getData() as BubbleData?; } } diff --git a/mp_chart/lib/mp/painter/candlestick_chart_painter.dart b/mp_chart/lib/mp/painter/candlestick_chart_painter.dart index c23786de..f60add74 100644 --- a/mp_chart/lib/mp/painter/candlestick_chart_painter.dart +++ b/mp_chart/lib/mp/painter/candlestick_chart_painter.dart @@ -18,29 +18,29 @@ import 'package:mp_chart/mp/core/transformer/transformer.dart'; import 'package:mp_chart/mp/core/view_port.dart'; import 'package:mp_chart/mp/painter/bar_line_chart_painter.dart'; -class CandlestickChartPainter extends BarLineChartBasePainter +class CandlestickChartPainter extends BarLineChartBasePainter implements CandleDataProvider { CandlestickChartPainter( - CandleData data, - Animator animator, - ViewPortHandler viewPortHandler, - double maxHighlightDistance, + CandleData? data, + Animator? animator, + ViewPortHandler? viewPortHandler, + double? maxHighlightDistance, bool highLightPerTapEnabled, double extraLeftOffset, double extraTopOffset, double extraRightOffset, double extraBottomOffset, - IMarker marker, - Description desc, + IMarker? marker, + Description? desc, bool drawMarkers, - Color infoBgColor, - TextPainter infoPainter, - TextPainter descPainter, - XAxis xAxis, - Legend legend, - LegendRenderer legendRenderer, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectedListener, + Color? infoBgColor, + TextPainter? infoPainter, + TextPainter? descPainter, + XAxis? xAxis, + Legend? legend, + LegendRenderer? legendRenderer, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectedListener, int maxVisibleCount, bool autoScaleMinMaxEnabled, bool pinchZoomEnabled, @@ -50,25 +50,25 @@ class CandlestickChartPainter extends BarLineChartBasePainter bool dragYEnabled, bool scaleXEnabled, bool scaleYEnabled, - Paint gridBackgroundPaint, - Paint backgroundPaint, - Paint borderPaint, + Paint? gridBackgroundPaint, + Paint? backgroundPaint, + Paint? borderPaint, bool drawGridBackground, bool drawBorders, bool clipValuesToContent, double minOffset, bool keepPositionOnRotation, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, - Matrix4 zoomMatrixBuffer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, + Matrix4? zoomMatrixBuffer, bool customViewPortEnabled, - ChartTransListener chartTransListener) + ChartTransListener? chartTransListener) : super( data, animator, @@ -123,12 +123,12 @@ class CandlestickChartPainter extends BarLineChartBasePainter void initDefaultWithData() { super.initDefaultWithData(); renderer = CandleStickChartRenderer(this, animator, viewPortHandler); - xAxis.spaceMin = (0.5); - xAxis.spaceMax = (0.5); + xAxis!.spaceMin = (0.5); + xAxis!.spaceMax = (0.5); } @override - CandleData getCandleData() { - return getData(); + CandleData? getCandleData() { + return getData() as CandleData?; } } diff --git a/mp_chart/lib/mp/painter/combined_chart_painter.dart b/mp_chart/lib/mp/painter/combined_chart_painter.dart index 01c4cf27..f6c44f1a 100644 --- a/mp_chart/lib/mp/painter/combined_chart_painter.dart +++ b/mp_chart/lib/mp/painter/combined_chart_painter.dart @@ -30,7 +30,7 @@ import 'package:mp_chart/mp/painter/bar_line_chart_painter.dart'; enum DrawOrder { BAR, BUBBLE, LINE, CANDLE, SCATTER } -class CombinedChartPainter extends BarLineChartBasePainter +class CombinedChartPainter extends BarLineChartBasePainter implements CombinedDataProvider { /// if set to true, all values are drawn above their bars, instead of below /// their top @@ -43,29 +43,29 @@ class CombinedChartPainter extends BarLineChartBasePainter /// maximum value bool _drawBarShadow = false; - List _drawOrder; + List? _drawOrder; CombinedChartPainter( - CombinedData data, - Animator animator, - ViewPortHandler viewPortHandler, - double maxHighlightDistance, + CombinedData? data, + Animator? animator, + ViewPortHandler? viewPortHandler, + double? maxHighlightDistance, bool highLightPerTapEnabled, double extraLeftOffset, double extraTopOffset, double extraRightOffset, double extraBottomOffset, - IMarker marker, - Description desc, + IMarker? marker, + Description? desc, bool drawMarkers, - Color infoBgColor, - TextPainter infoPainter, - TextPainter descPainter, - XAxis xAxis, - Legend legend, - LegendRenderer legendRenderer, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectedListener, + Color? infoBgColor, + TextPainter? infoPainter, + TextPainter? descPainter, + XAxis? xAxis, + Legend? legend, + LegendRenderer? legendRenderer, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectedListener, int maxVisibleCount, bool autoScaleMinMaxEnabled, bool pinchZoomEnabled, @@ -75,30 +75,30 @@ class CombinedChartPainter extends BarLineChartBasePainter bool dragYEnabled, bool scaleXEnabled, bool scaleYEnabled, - Paint gridBackgroundPaint, - Paint backgroundPaint, - Paint borderPaint, + Paint? gridBackgroundPaint, + Paint? backgroundPaint, + Paint? borderPaint, bool drawGridBackground, bool drawBorders, bool clipValuesToContent, double minOffset, bool keepPositionOnRotation, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, - Matrix4 zoomMatrixBuffer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, + Matrix4? zoomMatrixBuffer, bool customViewPortEnabled, bool highlightFullBarEnabled, bool drawValueAboveBar, bool drawBarShadow, bool fitBars, - List drawOrder, - ChartTransListener chartTransListener) + List? drawOrder, + ChartTransListener? chartTransListener) : _drawBarShadow = drawBarShadow, _highlightFullBarEnabled = highlightFullBarEnabled, _drawValueAboveBar = drawValueAboveBar, @@ -169,12 +169,12 @@ class CombinedChartPainter extends BarLineChartBasePainter highlighter = CombinedHighlighter(this, this); renderer = CombinedChartRenderer(this, animator, viewPortHandler); (renderer as CombinedChartRenderer).createRenderers(); - renderer.initBuffers(); + renderer!.initBuffers(); } @override - CombinedData getCombinedData() { - return getData(); + CombinedData? getCombinedData() { + return getData() as CombinedData?; } /// Returns the Highlight object (contains x-index and DataSet index) of the selected value at the given touch @@ -185,11 +185,11 @@ class CombinedChartPainter extends BarLineChartBasePainter /// @param y /// @return @override - Highlight getHighlightByTouchPoint(double x, double y) { + Highlight? getHighlightByTouchPoint(double x, double y) { if (getCombinedData() == null) { return null; } else { - Highlight h = highlighter.getHighlight(x, y); + Highlight? h = highlighter!.getHighlight(x, y); if (h == null || !isHighlightFullBarEnabled()) return h; // For isHighlightFullBarEnabled, remove stackIndex @@ -206,33 +206,33 @@ class CombinedChartPainter extends BarLineChartBasePainter } @override - LineData getLineData() { + LineData? getLineData() { if (getCombinedData() == null) return null; - return getCombinedData().getLineData(); + return getCombinedData()!.getLineData(); } @override - BarData getBarData() { + BarData? getBarData() { if (getCombinedData() == null) return null; - return getCombinedData().getBarData(); + return getCombinedData()!.getBarData(); } @override - ScatterData getScatterData() { + ScatterData? getScatterData() { if (getCombinedData() == null) return null; - return getCombinedData().getScatterData(); + return getCombinedData()!.getScatterData(); } @override - CandleData getCandleData() { + CandleData? getCandleData() { if (getCombinedData() == null) return null; - return getCombinedData().getCandleData(); + return getCombinedData()!.getCandleData(); } @override - BubbleData getBubbleData() { + BubbleData? getBubbleData() { if (getCombinedData() == null) return null; - return getCombinedData().getBubbleData(); + return getCombinedData()!.getBubbleData(); } @override @@ -278,7 +278,7 @@ class CombinedChartPainter extends BarLineChartBasePainter /// Returns the currently set draw order. /// /// @return - List getDrawOrder() { + List? getDrawOrder() { return _drawOrder; } @@ -298,29 +298,29 @@ class CombinedChartPainter extends BarLineChartBasePainter // if there is no marker view or drawing marker is disabled if (marker == null || !isDrawMarkers || !valuesToHighlight()) return; - for (int i = 0; i < indicesToHighlight.length; i++) { - Highlight highlight = indicesToHighlight[i]; + for (int i = 0; i < indicesToHighlight!.length; i++) { + Highlight highlight = indicesToHighlight![i]; - IDataSet set = getCombinedData().getDataSetByHighlight(highlight); + IDataSet? set = getCombinedData()!.getDataSetByHighlight(highlight); - Entry e = getCombinedData().getEntryForHighlight(highlight); + Entry? e = getCombinedData()!.getEntryForHighlight(highlight); if (e == null) continue; - int entryIndex = set.getEntryIndex2(e); + int entryIndex = set!.getEntryIndex2(e); // make sure entry not null - if (entryIndex > set.getEntryCount() * animator.getPhaseX()) continue; + if (entryIndex > set.getEntryCount() * animator!.getPhaseX()) continue; - List pos = getMarkerPosition(highlight); + List pos = getMarkerPosition(highlight); // check bounds - if (!viewPortHandler.isInBounds(pos[0], pos[1])) continue; + if (!viewPortHandler!.isInBounds(pos[0], pos[1])) continue; // callbacks to update the content - marker.refreshContent(e, highlight); + marker!.refreshContent(e, highlight); // draw the marker - marker.draw(canvas, pos[0], pos[1]); + marker!.draw(canvas, pos[0], pos[1]); } } } diff --git a/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart b/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart index 5b968f1e..abfbdeea 100644 --- a/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart +++ b/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart @@ -32,26 +32,26 @@ import 'package:mp_chart/mp/painter/bar_chart_painter.dart'; class HorizontalBarChartPainter extends BarChartPainter { HorizontalBarChartPainter( - BarData data, - Animator animator, - ViewPortHandler viewPortHandler, - double maxHighlightDistance, + BarData? data, + Animator? animator, + ViewPortHandler? viewPortHandler, + double? maxHighlightDistance, bool highLightPerTapEnabled, double extraLeftOffset, double extraTopOffset, double extraRightOffset, double extraBottomOffset, - IMarker marker, - Description desc, + IMarker? marker, + Description? desc, bool drawMarkers, - Color infoBgColor, - TextPainter infoPainter, - TextPainter descPainter, - XAxis xAxis, - Legend legend, - LegendRenderer legendRenderer, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectedListener, + Color? infoBgColor, + TextPainter? infoPainter, + TextPainter? descPainter, + XAxis? xAxis, + Legend? legend, + LegendRenderer? legendRenderer, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectedListener, int maxVisibleCount, bool autoScaleMinMaxEnabled, bool pinchZoomEnabled, @@ -61,29 +61,29 @@ class HorizontalBarChartPainter extends BarChartPainter { bool dragYEnabled, bool scaleXEnabled, bool scaleYEnabled, - Paint gridBackgroundPaint, - Paint backgroundPaint, - Paint borderPaint, + Paint? gridBackgroundPaint, + Paint? backgroundPaint, + Paint? borderPaint, bool drawGridBackground, bool drawBorders, bool clipValuesToContent, double minOffset, bool keepPositionOnRotation, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, - Matrix4 zoomMatrixBuffer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, + Matrix4? zoomMatrixBuffer, bool customViewPortEnabled, bool highlightFullBarEnabled, bool drawValueAboveBar, bool drawBarShadow, bool fitBars, - ChartTransListener chartTransListener) + ChartTransListener? chartTransListener) : super( data, animator, @@ -149,7 +149,7 @@ class HorizontalBarChartPainter extends BarChartPainter { @override void calculateOffsets() { - if (legend != null) legendRenderer.computeLegend(getBarData()); + if (legend != null) legendRenderer!.computeLegend(getBarData()); renderer?.initBuffers(); calcMinMax(); @@ -163,25 +163,25 @@ class HorizontalBarChartPainter extends BarChartPainter { offsetBottom += _offsetsBuffer.bottom; // offsets for y-labels - if (axisLeft.needsOffset()) { + if (axisLeft!.needsOffset()) { offsetTop += - axisLeft.getRequiredHeightSpace(axisRendererLeft.axisLabelPaint); + axisLeft!.getRequiredHeightSpace(axisRendererLeft!.axisLabelPaint); } - if (axisRight.needsOffset()) { + if (axisRight!.needsOffset()) { offsetBottom += - axisRight.getRequiredHeightSpace(axisRendererRight.axisLabelPaint); + axisRight!.getRequiredHeightSpace(axisRendererRight!.axisLabelPaint); } - double xlabelwidth = xAxis.labelRotatedWidth.toDouble(); + double xlabelwidth = xAxis!.labelRotatedWidth.toDouble(); - if (xAxis.enabled) { + if (xAxis!.enabled) { // offsets for x-labels - if (xAxis.position == XAxisPosition.BOTTOM) { + if (xAxis!.position == XAxisPosition.BOTTOM) { offsetLeft += xlabelwidth; - } else if (xAxis.position == XAxisPosition.TOP) { + } else if (xAxis!.position == XAxisPosition.TOP) { offsetRight += xlabelwidth; - } else if (xAxis.position == XAxisPosition.BOTH_SIDED) { + } else if (xAxis!.position == XAxisPosition.BOTH_SIDED) { offsetLeft += xlabelwidth; offsetRight += xlabelwidth; } @@ -192,9 +192,9 @@ class HorizontalBarChartPainter extends BarChartPainter { offsetBottom += extraBottomOffset; offsetLeft += extraLeftOffset; - double offset = Utils.convertDpToPixel(minOffset); + double offset = Utils.convertDpToPixel(minOffset)!; - viewPortHandler.restrainViewPort( + viewPortHandler!.restrainViewPort( max(offset, offsetLeft), max(offset, offsetTop), max(offset, offsetRight), @@ -206,21 +206,21 @@ class HorizontalBarChartPainter extends BarChartPainter { @override void prepareValuePxMatrix() { - rightAxisTransformer.prepareMatrixValuePx(axisRight.axisMinimum, - axisRight.axisRange, xAxis.axisRange, xAxis.axisMinimum); - leftAxisTransformer.prepareMatrixValuePx(axisLeft.axisMinimum, - axisLeft.axisRange, xAxis.axisRange, xAxis.axisMinimum); + rightAxisTransformer!.prepareMatrixValuePx(axisRight!.axisMinimum!, + axisRight!.axisRange, xAxis!.axisRange, xAxis!.axisMinimum!); + leftAxisTransformer!.prepareMatrixValuePx(axisLeft!.axisMinimum!, + axisLeft!.axisRange, xAxis!.axisRange, xAxis!.axisMinimum!); } @override - List getMarkerPosition(Highlight high) { + List getMarkerPosition(Highlight high) { return new List()..add(high.drawY)..add(high.drawX); } @override Rect getBarBounds(BarEntry e) { Rect bounds = Rect.zero; - IBarDataSet set = getBarData().getDataSetForEntry(e); + IBarDataSet? set = getBarData()!.getDataSetForEntry(e); if (set == null) { bounds = Rect.fromLTRB(double.minPositive, double.minPositive, @@ -228,10 +228,10 @@ class HorizontalBarChartPainter extends BarChartPainter { return bounds; } - double y = e.y; - double x = e.x; + double y = e.y!; + double x = e.x!; - double barWidth = getBarData().barWidth; + double barWidth = getBarData()!.barWidth; double top = x - barWidth / 2; double bottom = x + barWidth / 2; @@ -240,10 +240,10 @@ class HorizontalBarChartPainter extends BarChartPainter { bounds = Rect.fromLTRB(left, top, right, bottom); - return getTransformer(set.getAxisDependency()).rectValueToPixel(bounds); + return getTransformer(set.getAxisDependency())!.rectValueToPixel(bounds); } - List mGetPositionBuffer = List(2); + List mGetPositionBuffer = List(2); /// Returns a recyclable MPPointF instance. /// @@ -254,11 +254,11 @@ class HorizontalBarChartPainter extends BarChartPainter { MPPointF getPosition(Entry e, AxisDependency axis) { if (e == null) return null; - List vals = mGetPositionBuffer; + List vals = mGetPositionBuffer; vals[0] = e.y; vals[1] = e.x; - getTransformer(axis).pointValuesToPixel(vals); + getTransformer(axis)!.pointValuesToPixel(vals); return MPPointF.getInstance1(vals[0], vals[1]); } @@ -270,30 +270,30 @@ class HorizontalBarChartPainter extends BarChartPainter { /// @param y /// @return @override - Highlight getHighlightByTouchPoint(double x, double y) { + Highlight? getHighlightByTouchPoint(double x, double y) { if (getBarData() != null) { - return highlighter.getHighlight(y, x); // switch x and y + return highlighter!.getHighlight(y, x); // switch x and y } return null; } @override double getLowestVisibleX() { - getTransformer(AxisDependency.LEFT).getValuesByTouchPoint2( - viewPortHandler.contentLeft(), - viewPortHandler.contentBottom(), + getTransformer(AxisDependency.LEFT)!.getValuesByTouchPoint2( + viewPortHandler!.contentLeft(), + viewPortHandler!.contentBottom(), posForGetLowestVisibleX); - double result = max(xAxis.axisMinimum, posForGetLowestVisibleX.y); + double result = max(xAxis!.axisMinimum!, posForGetLowestVisibleX.y!); return result; } @override double getHighestVisibleX() { - getTransformer(AxisDependency.LEFT).getValuesByTouchPoint2( - viewPortHandler.contentLeft(), - viewPortHandler.contentTop(), + getTransformer(AxisDependency.LEFT)!.getValuesByTouchPoint2( + viewPortHandler!.contentLeft(), + viewPortHandler!.contentTop(), posForGetHighestVisibleX); - double result = min(xAxis.axisMaximum, posForGetHighestVisibleX.y); + double result = min(xAxis!.axisMaximum!, posForGetHighestVisibleX.y!); return result; } @@ -318,13 +318,13 @@ class HorizontalBarChartPainter extends BarChartPainter { @override void setVisibleYRangeMaximum(double maxYRange, AxisDependency axis) { double yScale = getAxisRange(axis) / maxYRange; - viewPortHandler.setMinimumScaleX(yScale); + viewPortHandler!.setMinimumScaleX(yScale); } @override void setVisibleYRangeMinimum(double minYRange, AxisDependency axis) { double yScale = getAxisRange(axis) / minYRange; - viewPortHandler.setMaximumScaleX(yScale); + viewPortHandler!.setMaximumScaleX(yScale); } @override @@ -332,6 +332,6 @@ class HorizontalBarChartPainter extends BarChartPainter { double minYRange, double maxYRange, AxisDependency axis) { double minScale = getAxisRange(axis) / minYRange; double maxScale = getAxisRange(axis) / maxYRange; - viewPortHandler.setMinMaxScaleX(minScale, maxScale); + viewPortHandler!.setMinMaxScaleX(minScale, maxScale); } } diff --git a/mp_chart/lib/mp/painter/line_chart_painter.dart b/mp_chart/lib/mp/painter/line_chart_painter.dart index 3bb0f4d5..33dcc439 100644 --- a/mp_chart/lib/mp/painter/line_chart_painter.dart +++ b/mp_chart/lib/mp/painter/line_chart_painter.dart @@ -19,29 +19,29 @@ import 'package:mp_chart/mp/core/transformer/transformer.dart'; import 'package:mp_chart/mp/core/view_port.dart'; import 'package:mp_chart/mp/painter/bar_line_chart_painter.dart'; -class LineChartPainter extends BarLineChartBasePainter +class LineChartPainter extends BarLineChartBasePainter implements LineDataProvider { LineChartPainter( - LineData data, - Animator animator, - ViewPortHandler viewPortHandler, - double maxHighlightDistance, + LineData? data, + Animator? animator, + ViewPortHandler? viewPortHandler, + double? maxHighlightDistance, bool highLightPerTapEnabled, double extraLeftOffset, double extraTopOffset, double extraRightOffset, double extraBottomOffset, - IMarker marker, - Description desc, + IMarker? marker, + Description? desc, bool drawMarkers, - Color infoBgColor, - TextPainter infoPainter, - TextPainter descPainter, - XAxis xAxis, - Legend legend, - LegendRenderer legendRenderer, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectedListener, + Color? infoBgColor, + TextPainter? infoPainter, + TextPainter? descPainter, + XAxis? xAxis, + Legend? legend, + LegendRenderer? legendRenderer, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectedListener, int maxVisibleCount, bool autoScaleMinMaxEnabled, bool pinchZoomEnabled, @@ -51,25 +51,25 @@ class LineChartPainter extends BarLineChartBasePainter bool dragYEnabled, bool scaleXEnabled, bool scaleYEnabled, - Paint gridBackgroundPaint, - Paint backgroundPaint, - Paint borderPaint, + Paint? gridBackgroundPaint, + Paint? backgroundPaint, + Paint? borderPaint, bool drawGridBackground, bool drawBorders, bool clipValuesToContent, double minOffset, bool keepPositionOnRotation, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, - Matrix4 zoomMatrixBuffer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, + Matrix4? zoomMatrixBuffer, bool customViewPortEnabled, - ChartTransListener chartTransListener) + ChartTransListener? chartTransListener) : super( data, animator, @@ -127,7 +127,7 @@ class LineChartPainter extends BarLineChartBasePainter } @override - LineData getLineData() { - return getData(); + LineData? getLineData() { + return getData() as LineData?; } } diff --git a/mp_chart/lib/mp/painter/painter.dart b/mp_chart/lib/mp/painter/painter.dart index 901510ac..4c40ddf0 100644 --- a/mp_chart/lib/mp/painter/painter.dart +++ b/mp_chart/lib/mp/painter/painter.dart @@ -22,7 +22,7 @@ import 'package:mp_chart/mp/core/value_formatter/default_value_formatter.dart'; import 'package:mp_chart/mp/core/value_formatter/value_formatter.dart'; import 'package:mp_chart/mp/core/view_port.dart'; -abstract class ChartPainter>> +abstract class ChartPainter>?> extends CustomPainter implements ChartInterface { /// object that holds all data that was originally set for the chart, before @@ -30,13 +30,13 @@ abstract class ChartPainter>> final T _data; /// object responsible for animations - final Animator _animator; + final Animator? _animator; /// object that manages the bounds and drawing constraints of the chart - final ViewPortHandler _viewPortHandler; + final ViewPortHandler? _viewPortHandler; /// The maximum distance in dp away from an entry causing it to highlight. - final double _maxHighlightDistance; + final double? _maxHighlightDistance; /// Flag that indicates if highlighting per tap (touch) is enabled final bool _highLightPerTapEnabled; @@ -47,45 +47,45 @@ abstract class ChartPainter>> _extraLeftOffset; /// the view that represents the marker - final IMarker _marker; + final IMarker? _marker; /// the object responsible for representing the description text - final Description _description; + final Description? _description; /// if set to true, the marker view is drawn when a value is clicked final bool _drawMarkers; /// paint object used for drawing the description text in the bottom right /// corner of the chart - final TextPainter _descPaint; + final TextPainter? _descPaint; /// paint object for drawing the information text when there are no values in /// the chart - final TextPainter _infoPaint; + final TextPainter? _infoPaint; - final Color _infoBackgroundColor; + final Color? _infoBackgroundColor; /// the object representing the labels on the x-axis - final XAxis _xAxis; + final XAxis? _xAxis; /// the legend object containing all data associated with the legend - final Legend _legend; - final LegendRenderer _legendRenderer; + final Legend? _legend; + final LegendRenderer? _legendRenderer; - final OnChartValueSelectedListener _selectionListener; + final OnChartValueSelectedListener? _selectionListener; - final DataRendererSettingFunction _rendererSettingFunction; + final DataRendererSettingFunction? _rendererSettingFunction; /////////////////////////////////////////////////// /// object responsible for rendering the data - DataRenderer renderer; - IHighlighter highlighter; + DataRenderer? renderer; + IHighlighter? highlighter; /// array of Highlight objects that reference the highlighted slices in the /// chart - List _indicesToHighlight; + List? _indicesToHighlight; - Size _size; + Size? _size; /// flag that indicates if offsets calculation has already been done or not bool _offsetsCalculated = false; @@ -95,13 +95,13 @@ abstract class ChartPainter>> bool _isInit = false; - XAxis get xAxis => _xAxis; + XAxis? get xAxis => _xAxis; - Legend get legend => _legend; + Legend? get legend => _legend; - ViewPortHandler get viewPortHandler => _viewPortHandler; + ViewPortHandler? get viewPortHandler => _viewPortHandler; - LegendRenderer get legendRenderer => _legendRenderer; + LegendRenderer? get legendRenderer => _legendRenderer; double get extraLeftOffset => _extraLeftOffset; @@ -111,38 +111,38 @@ abstract class ChartPainter>> double get extraBottomOffset => _extraBottomOffset; - IMarker get marker => _marker; + IMarker? get marker => _marker; bool get isDrawMarkers => _drawMarkers; - Animator get animator => _animator; + Animator? get animator => _animator; - Size get size => _size; + Size? get size => _size; - List get indicesToHighlight => _indicesToHighlight; + List? get indicesToHighlight => _indicesToHighlight; bool get highLightPerTapEnabled => _highLightPerTapEnabled; ChartPainter(T data, - Animator animator, - ViewPortHandler viewPortHandler, - double maxHighlightDistance, + Animator? animator, + ViewPortHandler? viewPortHandler, + double? maxHighlightDistance, bool highLightPerTapEnabled, double extraLeftOffset, double extraTopOffset, double extraRightOffset, double extraBottomOffset, - IMarker marker, - Description desc, + IMarker? marker, + Description? desc, bool drawMarkers, - Color infoBgColor, - TextPainter infoPainter, - TextPainter descPainter, - XAxis xAxis, - Legend legend, - LegendRenderer legendRenderer, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectedListener) + Color? infoBgColor, + TextPainter? infoPainter, + TextPainter? descPainter, + XAxis? xAxis, + Legend? legend, + LegendRenderer? legendRenderer, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectedListener) : _data = data, _viewPortHandler = viewPortHandler, _animator = animator, @@ -165,12 +165,12 @@ abstract class ChartPainter>> _selectionListener = selectedListener, super() { initDefaultNormal(); - if (data == null || data.dataSets == null || data.dataSets.length == 0) { + if (data == null || data.dataSets == null || data.dataSets!.length == 0) { return; } initDefaultWithData(); if (_rendererSettingFunction != null && renderer != null) { - _rendererSettingFunction(renderer); + _rendererSettingFunction!(renderer); } init(); _isInit = true; @@ -180,7 +180,7 @@ abstract class ChartPainter>> // calculate how many digits are needed _setupDefaultFormatter(_data.getYMin1(), _data.getYMax1()); - for (IDataSet set in _data.dataSets) { + for (IDataSet set in _data.dataSets!) { if (set.needsFormatter() || set.getValueFormatter() == _defaultValueFormatter) set.setValueFormatter(_defaultValueFormatter); @@ -201,13 +201,13 @@ abstract class ChartPainter>> /// Calculates the required number of digits for the values that might be /// drawn in the chart (if enabled), and creates the default-value-formatter - void _setupDefaultFormatter(double min1, double max1) { + void _setupDefaultFormatter(double? min1, double? max1) { double reference = 0; if (_data == null || _data.getEntryCount() < 2) { - reference = max(min1.abs(), max1.abs()); + reference = max(min1!.abs(), max1!.abs()); } else { - reference = (max1 - min1).abs(); + reference = (max1! - min1!).abs(); } int digits = Utils.getDecimals(reference); @@ -217,11 +217,11 @@ abstract class ChartPainter>> } double getMeasuredHeight() { - return _size == null ? 0.0 : _size.height; + return _size == null ? 0.0 : _size!.height; } double getMeasuredWidth() { - return _size == null ? 0.0 : _size.width; + return _size == null ? 0.0 : _size!.width; } @override @@ -231,11 +231,11 @@ abstract class ChartPainter>> if (!_isInit) { canvas.drawRect(Rect.fromLTRB(0, 0, size.width, size.height), Paint() - ..color = _infoBackgroundColor); + ..color = _infoBackgroundColor!); MPPointF c = getCenter(size); - _infoPaint.layout(); - _infoPaint.paint(canvas, - Offset(c.x - _infoPaint.width / 2, c.y - _infoPaint.height / 2)); + _infoPaint!.layout(); + _infoPaint!.paint(canvas, + Offset(c.x! - _infoPaint!.width / 2, c.y! - _infoPaint!.height / 2)); return; } @@ -254,21 +254,21 @@ abstract class ChartPainter>> /// Draws the description text in the bottom right corner of the chart (per default) void drawDescription(Canvas c, Size size) { // check if description should be drawn - if (_description != null && _description.enabled) { - MPPointF position = _description.position; - double x, y; + if (_description != null && _description!.enabled) { + MPPointF? position = _description!.position; + double? x, y; // if no position specified, draw on default position if (position == null) { - x = size.width - _viewPortHandler.offsetRight() - _description.xOffset; + x = size.width - _viewPortHandler!.offsetRight() - _description!.xOffset!; y = size.height - - _viewPortHandler.offsetBottom() - - _description.yOffset; + _viewPortHandler!.offsetBottom() - + _description!.yOffset!; } else { x = position.x; y = position.y; } - _descPaint.layout(); - _descPaint.paint(c, Offset(x, y)); + _descPaint!.layout(); + _descPaint!.paint(c, Offset(x!, y!)); } } @@ -279,8 +279,8 @@ abstract class ChartPainter>> /// @return bool valuesToHighlight() { var res = _indicesToHighlight == null || - _indicesToHighlight.length <= 0 || - _indicesToHighlight[0] == null + _indicesToHighlight!.length <= 0 || + _indicesToHighlight![0] == null ? false : true; return res; @@ -355,8 +355,8 @@ abstract class ChartPainter>> /// /// @param high - the highlight object /// @param callListener - call the listener - void highlightValue6(Highlight high, bool callListener) { - Entry e; + void highlightValue6(Highlight? high, bool callListener) { + Entry? e; if (high == null) { _indicesToHighlight = null; @@ -382,8 +382,8 @@ abstract class ChartPainter>> } } - void selectedValue(Highlight high) { - Entry e = _data.getEntryForHighlight(high); + void selectedValue(Highlight? high) { + Entry? e = _data.getEntryForHighlight(high); _selectionListener?.onValueSelected(e, null); } @@ -394,11 +394,11 @@ abstract class ChartPainter>> /// @param x /// @param y /// @return - Highlight getHighlightByTouchPoint(double x, double y) { + Highlight? getHighlightByTouchPoint(double x, double y) { if (_data == null || highlighter == null) { return null; } else { - return highlighter.getHighlight(x, y); + return highlighter!.getHighlight(x, y); } } @@ -406,27 +406,27 @@ abstract class ChartPainter>> void drawMarkers(Canvas canvas) { if (_marker == null || !_drawMarkers || !valuesToHighlight()) return; - for (int i = 0; i < _indicesToHighlight.length; i++) { - Highlight highlight = _indicesToHighlight[i]; + for (int i = 0; i < _indicesToHighlight!.length; i++) { + Highlight highlight = _indicesToHighlight![i]; - IDataSet set = _data.getDataSetByIndex(highlight.dataSetIndex); + IDataSet set = _data.getDataSetByIndex(highlight.dataSetIndex)!; - Entry e = _data.getEntryForHighlight(_indicesToHighlight[i]); + Entry? e = _data.getEntryForHighlight(_indicesToHighlight![i]); int entryIndex = set.getEntryIndex2(e); // make sure entry not null - if (e == null || entryIndex > set.getEntryCount() * _animator.getPhaseX()) + if (e == null || entryIndex > set.getEntryCount() * _animator!.getPhaseX()) continue; - List pos = getMarkerPosition(highlight); + List pos = getMarkerPosition(highlight); // check bounds - if (!_viewPortHandler.isInBounds(pos[0], pos[1])) continue; + if (!_viewPortHandler!.isInBounds(pos[0], pos[1])) continue; // callbacks to update the content - _marker.refreshContent(e, highlight); + _marker!.refreshContent(e, highlight); // draw the marker - _marker.draw(canvas, pos[0], pos[1]); + _marker!.draw(canvas, pos[0], pos[1]); } } @@ -435,13 +435,13 @@ abstract class ChartPainter>> /// /// @param high /// @return - List getMarkerPosition(Highlight high) { - return List() + List getMarkerPosition(Highlight high) { + return List() ..add(high.drawX)..add(high.drawY); } @override - ChartData> getData() { + ChartData>? getData() { return _data; } @@ -451,7 +451,7 @@ abstract class ChartPainter>> } @override - double getMaxHighlightDistance() { + double? getMaxHighlightDistance() { return _maxHighlightDistance; } @@ -470,7 +470,7 @@ abstract class ChartPainter>> /// @return @override MPPointF getCenterOffsets() { - return _viewPortHandler.getContentCenter(); + return _viewPortHandler!.getContentCenter(); } @override diff --git a/mp_chart/lib/mp/painter/pie_chart_painter.dart b/mp_chart/lib/mp/painter/pie_chart_painter.dart index 6966585c..5ae57907 100644 --- a/mp_chart/lib/mp/painter/pie_chart_painter.dart +++ b/mp_chart/lib/mp/painter/pie_chart_painter.dart @@ -22,7 +22,7 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; import 'package:mp_chart/mp/core/view_port.dart'; import 'package:mp_chart/mp/painter/pie_redar_chart_painter.dart'; -class PieChartPainter extends PieRadarChartPainter { +class PieChartPainter extends PieRadarChartPainter { /// flag indicating if entry labels should be drawn or not final bool _drawEntryLabels; // = true @@ -66,51 +66,51 @@ class PieChartPainter extends PieRadarChartPainter { Rect _circleBox = Rect.zero; /// array that holds the width of each pie-slice in degrees - List _drawAngles = List(1); + List _drawAngles = List(1); /// array that holds the absolute angle in degrees of each slice - List _absoluteAngles = List(1); + List _absoluteAngles = List(1); /// Hole color Color _holeColor; MPPointF _centerTextOffset; - TypeFace _centerTextTypeface; - TypeFace get centerTextTypeface => _centerTextTypeface; + TypeFace? _centerTextTypeface; + TypeFace? get centerTextTypeface => _centerTextTypeface; /// Center text color - final Color _centerTextColor; - Color get centerTextColor => _centerTextColor; + final Color? _centerTextColor; + Color? get centerTextColor => _centerTextColor; /// Center text font size - final double _centerTextSize; - double get centerTextSize => _centerTextSize; - TypeFace _entryLabelTypeface; + final double? _centerTextSize; + double? get centerTextSize => _centerTextSize; + TypeFace? _entryLabelTypeface; PieChartPainter( - PieData data, - Animator animator, - ViewPortHandler viewPortHandler, - double maxHighlightDistance, + PieData? data, + Animator? animator, + ViewPortHandler? viewPortHandler, + double? maxHighlightDistance, bool highLightPerTapEnabled, double extraLeftOffset, double extraTopOffset, double extraRightOffset, double extraBottomOffset, - IMarker marker, - Description desc, + IMarker? marker, + Description? desc, bool drawMarkers, - Color infoBgColor, - TextPainter infoPainter, - TextPainter descPainter, - XAxis xAxis, - Legend legend, - LegendRenderer legendRenderer, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectedListener, + Color? infoBgColor, + TextPainter? infoPainter, + TextPainter? descPainter, + XAxis? xAxis, + Legend? legend, + LegendRenderer? legendRenderer, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectedListener, double rotationAngle, - double rawRotationAngle, + double? rawRotationAngle, bool rotateEnabled, double minOffset, bool drawEntryLabels, @@ -121,18 +121,18 @@ class PieChartPainter extends PieRadarChartPainter { String centerText, double centerTextOffsetX, double centerTextOffsetY, - TypeFace entryLabelTypeface, - TypeFace centerTextTypeface, + TypeFace? entryLabelTypeface, + TypeFace? centerTextTypeface, double holeRadiusPercent, double transparentCircleRadiusPercent, bool drawCenterText, double centerTextRadiusPercent, double maxAngle, double minAngleForSlices, - Color backgroundColor, + Color? backgroundColor, Color holeColor, - Color centerTextColor, - double centerTextSize) + Color? centerTextColor, + double? centerTextSize) : _drawEntryLabels = drawEntryLabels, _drawHole = drawHole, _drawSlicesUnderHole = drawSlicesUnderHole, @@ -191,17 +191,17 @@ class PieChartPainter extends PieRadarChartPainter { @override void onPaint(Canvas canvas, Size size) { super.onPaint(canvas, size); - renderer.drawData(canvas); + renderer!.drawData(canvas); if (valuesToHighlight()) { - renderer.drawHighlighted(canvas, indicesToHighlight); + renderer!.drawHighlighted(canvas, indicesToHighlight); } - renderer.drawExtras(canvas); + renderer!.drawExtras(canvas); - renderer.drawValues(canvas); + renderer!.drawValues(canvas); - legendRenderer.renderLegend(canvas); + legendRenderer!.renderLegend(canvas); drawDescription(canvas, size); @@ -219,12 +219,12 @@ class PieChartPainter extends PieRadarChartPainter { MPPointF c = getCenterOffsets(); - double shift = (getData() as PieData).getDataSet().getSelectionShift(); + double shift = (getData() as PieData).getDataSet().getSelectionShift()!; // create the circle box that will contain the pie-chart (the bounds of // the pie-chart) - _circleBox = Rect.fromLTRB(c.x - radius + shift, c.y - radius + shift, - c.x + radius - shift, c.y + radius - shift); + _circleBox = Rect.fromLTRB(c.x! - radius + shift, c.y! - radius + shift, + c.x! + radius - shift, c.y! + radius - shift); MPPointF.recycleInstance(c); } @@ -249,24 +249,24 @@ class PieChartPainter extends PieRadarChartPainter { double rotationAngle = getRotationAngle(); - int entryIndex = highlight.x.toInt(); + int entryIndex = highlight.x!.toInt(); // offset needed to center the drawn text in the slice - double offset = _drawAngles[entryIndex] / 2; + double offset = _drawAngles[entryIndex]! / 2; // calculate the text position double x = (r * - cos(((rotationAngle + _absoluteAngles[entryIndex] - offset) * - animator.getPhaseY()) / + cos(((rotationAngle + _absoluteAngles[entryIndex]! - offset) * + animator!.getPhaseY()) / 180 * pi) + - center.x); + center.x!); double y = (r * - sin((rotationAngle + _absoluteAngles[entryIndex] - offset) * - animator.getPhaseY() / + sin((rotationAngle + _absoluteAngles[entryIndex]! - offset) * + animator!.getPhaseY() / 180 * pi) + - center.y); + center.y!); MPPointF.recycleInstance(center); return List()..add(x)..add(y); @@ -274,7 +274,7 @@ class PieChartPainter extends PieRadarChartPainter { /// calculates the needed angles for the chart slices void calcAngles() { - int entryCount = getData().getEntryCount(); + int entryCount = getData()!.getEntryCount(); if (_drawAngles.length != entryCount) { _drawAngles = List(entryCount); @@ -293,22 +293,22 @@ class PieChartPainter extends PieRadarChartPainter { double yValueSum = (getData() as PieData).getYValueSum(); - List dataSets = getData().dataSets; + List? dataSets = getData()!.dataSets as List?; bool hasMinAngle = _minAngleForSlices != 0 && entryCount * _minAngleForSlices <= _maxAngle; - List minAngles = List(entryCount); + List minAngles = List(entryCount); int cnt = 0; double offset = 0; double diff = 0; - for (int i = 0; i < getData().getDataSetCount(); i++) { - IPieDataSet set = dataSets[i]; + for (int i = 0; i < getData()!.getDataSetCount(); i++) { + IPieDataSet set = dataSets![i]; for (int j = 0; j < set.getEntryCount(); j++) { double drawAngle = - calcAngle2(set.getEntryForIndex(j).y.abs(), yValueSum); + calcAngle2(set.getEntryForIndex(j)!.y!.abs(), yValueSum); if (hasMinAngle) { double temp = drawAngle - _minAngleForSlices; @@ -326,7 +326,7 @@ class PieChartPainter extends PieRadarChartPainter { if (cnt == 0) { _absoluteAngles[cnt] = _drawAngles[cnt]; } else { - _absoluteAngles[cnt] = _absoluteAngles[cnt - 1] + _drawAngles[cnt]; + _absoluteAngles[cnt] = _absoluteAngles[cnt - 1]! + _drawAngles[cnt]!; } cnt++; @@ -337,11 +337,11 @@ class PieChartPainter extends PieRadarChartPainter { // Correct bigger slices by relatively reducing their angles based on the total angle needed to subtract // This requires that `entryCount * _minAngleForSlices <= _maxAngle` be true to properly work! for (int i = 0; i < entryCount; i++) { - minAngles[i] -= (minAngles[i] - _minAngleForSlices) / diff * offset; + minAngles[i] -= (minAngles[i]! - _minAngleForSlices) / diff * offset; if (i == 0) { _absoluteAngles[0] = minAngles[0]; } else { - _absoluteAngles[i] = _absoluteAngles[i - 1] + minAngles[i]; + _absoluteAngles[i] = _absoluteAngles[i - 1]! + minAngles[i]!; } } @@ -356,10 +356,10 @@ class PieChartPainter extends PieRadarChartPainter { bool needsHighlight(int index) { // no highlight if (!valuesToHighlight()) return false; - for (int i = 0; i < indicesToHighlight.length; i++) + for (int i = 0; i < indicesToHighlight!.length; i++) // check if the xvalue for the given dataset needs highlight - if (indicesToHighlight[i].x.toInt() == index) return true; + if (indicesToHighlight![i].x!.toInt() == index) return true; return false; } @@ -387,7 +387,7 @@ class PieChartPainter extends PieRadarChartPainter { double a = Utils.getNormalizedAngle(angle - getRotationAngle()); for (int i = 0; i < _absoluteAngles.length; i++) { - if (_absoluteAngles[i] > a) return i; + if (_absoluteAngles[i]! > a) return i; } return -1; // return -1 if no index found @@ -398,7 +398,7 @@ class PieChartPainter extends PieRadarChartPainter { /// @param xIndex /// @return int getDataSetIndexForIndex(int xIndex) { - List dataSets = getData().dataSets; + List dataSets = getData()!.dataSets as List; for (int i = 0; i < dataSets.length; i++) { if (dataSets[i].getEntryForXValue2(xIndex.toDouble(), double.nan) != null) @@ -413,7 +413,7 @@ class PieChartPainter extends PieRadarChartPainter { /// each slice takes /// /// @return - List getDrawAngles() { + List getDrawAngles() { return _drawAngles; } @@ -421,7 +421,7 @@ class PieChartPainter extends PieRadarChartPainter { /// slices end) /// /// @return - List getAbsoluteAngles() { + List getAbsoluteAngles() { return _absoluteAngles; } @@ -458,8 +458,8 @@ class PieChartPainter extends PieRadarChartPainter { @override double getRequiredLegendOffset() { // ignore: null_aware_before_operator - var offset = legendRenderer.legendLabelPaint.text?.style?.fontSize * 2.0; - return offset == null ? Utils.convertDpToPixel(9) : offset; + var offset = legendRenderer!.legendLabelPaint!.text?.style?.fontSize! * 2.0; + return offset == null ? Utils.convertDpToPixel(9)! : offset; } @override diff --git a/mp_chart/lib/mp/painter/pie_redar_chart_painter.dart b/mp_chart/lib/mp/painter/pie_redar_chart_painter.dart index bd8d46af..81baa33b 100644 --- a/mp_chart/lib/mp/painter/pie_redar_chart_painter.dart +++ b/mp_chart/lib/mp/painter/pie_redar_chart_painter.dart @@ -22,13 +22,13 @@ import 'package:mp_chart/mp/painter/painter.dart'; import 'radar_chart_painter.dart'; -abstract class PieRadarChartPainter>> +abstract class PieRadarChartPainter>?> extends ChartPainter { /// holds the normalized version of the current rotation angle of the chart double _rotationAngle; //270 /// holds the raw version of the current rotation angle of the chart - double _rawRotationAngle; //270 + double? _rawRotationAngle; //270 /// flag that indicates if rotation is enabled or not final bool _rotateEnabled; //true @@ -36,34 +36,34 @@ abstract class PieRadarChartPainter>> /// Sets the minimum offset (padding) around the chart, defaults to 0.f final double _minOffset; //0.0 - Color _backgroundColor; + Color? _backgroundColor; PieRadarChartPainter( T data, - Animator animator, - ViewPortHandler viewPortHandler, - double maxHighlightDistance, + Animator? animator, + ViewPortHandler? viewPortHandler, + double? maxHighlightDistance, bool highLightPerTapEnabled, double extraLeftOffset, double extraTopOffset, double extraRightOffset, double extraBottomOffset, - IMarker marker, - Description desc, + IMarker? marker, + Description? desc, bool drawMarkers, - Color infoBgColor, - TextPainter infoPainter, - TextPainter descPainter, - XAxis xAxis, - Legend legend, - LegendRenderer legendRenderer, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectedListener, + Color? infoBgColor, + TextPainter? infoPainter, + TextPainter? descPainter, + XAxis? xAxis, + Legend? legend, + LegendRenderer? legendRenderer, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectedListener, double rotationAngle, - double rawRotationAngle, + double? rawRotationAngle, bool rotateEnabled, double minOffset, - Color backgroundColor) + Color? backgroundColor) : _rotationAngle = rotationAngle, _rawRotationAngle = rawRotationAngle, _rotateEnabled = rotateEnabled, @@ -98,53 +98,53 @@ abstract class PieRadarChartPainter>> @override int getMaxVisibleCount() { - return getData().getEntryCount(); + return getData()!.getEntryCount(); } @override void onPaint(Canvas canvas, Size size) { if (_backgroundColor != null) { - canvas.drawColor(_backgroundColor, BlendMode.src); + canvas.drawColor(_backgroundColor!, BlendMode.src); } } @override void calculateOffsets() { - if (legend != null) legendRenderer.computeLegend(getData()); + if (legend != null) legendRenderer!.computeLegend(getData()); renderer?.initBuffers(); calcMinMax(); double legendLeft = 0, legendRight = 0, legendBottom = 0, legendTop = 0; - if (legend != null && legend.enabled && !legend.drawInside) { - double fullLegendWidth = min(legend.neededWidth, - viewPortHandler.getChartWidth() * legend.maxSizePercent); + if (legend != null && legend!.enabled && !legend!.drawInside) { + double fullLegendWidth = min(legend!.neededWidth, + viewPortHandler!.getChartWidth() * legend!.maxSizePercent); - switch (legend.orientation) { + switch (legend!.orientation) { case LegendOrientation.VERTICAL: { double xLegendOffset = 0.0; - if (legend.horizontalAlignment == LegendHorizontalAlignment.LEFT || - legend.horizontalAlignment == LegendHorizontalAlignment.RIGHT) { - if (legend.verticalAlignment == LegendVerticalAlignment.CENTER) { + if (legend!.horizontalAlignment == LegendHorizontalAlignment.LEFT || + legend!.horizontalAlignment == LegendHorizontalAlignment.RIGHT) { + if (legend!.verticalAlignment == LegendVerticalAlignment.CENTER) { // this is the space between the legend and the chart - final double spacing = Utils.convertDpToPixel(13); + final double spacing = Utils.convertDpToPixel(13)!; xLegendOffset = fullLegendWidth + spacing; } else { // this is the space between the legend and the chart - double spacing = Utils.convertDpToPixel(8); + double spacing = Utils.convertDpToPixel(8)!; double legendWidth = fullLegendWidth + spacing; double legendHeight = - legend.neededHeight + legend.textHeightMax; + legend!.neededHeight + legend!.textHeightMax; - var center = getCenter(size); + var center = getCenter(size!); - double bottomX = legend.horizontalAlignment == + double bottomX = legend!.horizontalAlignment == LegendHorizontalAlignment.RIGHT - ? size.width - legendWidth + 15.0 + ? size!.width - legendWidth + 15.0 : legendWidth - 15.0; double bottomY = legendHeight + 15.0; double distLegend = distanceToCenter(bottomX, bottomY); @@ -153,15 +153,15 @@ abstract class PieRadarChartPainter>> center, getRadius(), getAngleForPoint(bottomX, bottomY)); double distReference = - distanceToCenter(reference.x, reference.y); - double minOffset = Utils.convertDpToPixel(5); + distanceToCenter(reference.x!, reference.y!); + double? minOffset = Utils.convertDpToPixel(5); - if (bottomY >= center.y && - size.height - legendWidth > size.width) { + if (bottomY >= center.y! && + size!.height - legendWidth > size!.width) { xLegendOffset = legendWidth; } else if (distLegend < distReference) { double diff = distReference - distLegend; - xLegendOffset = minOffset + diff; + xLegendOffset = minOffset! + diff; } else { xLegendOffset = legendWidth; } @@ -171,7 +171,7 @@ abstract class PieRadarChartPainter>> } } - switch (legend.horizontalAlignment) { + switch (legend!.horizontalAlignment) { case LegendHorizontalAlignment.LEFT: legendLeft = xLegendOffset; break; @@ -181,18 +181,18 @@ abstract class PieRadarChartPainter>> break; case LegendHorizontalAlignment.CENTER: - switch (legend.verticalAlignment) { + switch (legend!.verticalAlignment) { case LegendVerticalAlignment.TOP: legendTop = min( - legend.neededHeight, - viewPortHandler.getChartHeight() * - legend.maxSizePercent); + legend!.neededHeight, + viewPortHandler!.getChartHeight() * + legend!.maxSizePercent); break; case LegendVerticalAlignment.BOTTOM: legendBottom = min( - legend.neededHeight, - viewPortHandler.getChartHeight() * - legend.maxSizePercent); + legend!.neededHeight, + viewPortHandler!.getChartHeight() * + legend!.maxSizePercent); break; default: break; @@ -205,17 +205,17 @@ abstract class PieRadarChartPainter>> case LegendOrientation.HORIZONTAL: double yLegendOffset = 0.0; - if (legend.verticalAlignment == LegendVerticalAlignment.TOP || - legend.verticalAlignment == LegendVerticalAlignment.BOTTOM) { + if (legend!.verticalAlignment == LegendVerticalAlignment.TOP || + legend!.verticalAlignment == LegendVerticalAlignment.BOTTOM) { // It's possible that we do not need this offset anymore as it // is available through the extraOffsets, but changing it can mean // changing default visibility for existing apps. double yOffset = getRequiredLegendOffset(); - yLegendOffset = min(legend.neededHeight + yOffset, - viewPortHandler.getChartHeight() * legend.maxSizePercent); + yLegendOffset = min(legend!.neededHeight + yOffset, + viewPortHandler!.getChartHeight() * legend!.maxSizePercent); - switch (legend.verticalAlignment) { + switch (legend!.verticalAlignment) { case LegendVerticalAlignment.TOP: legendTop = yLegendOffset; break; @@ -229,19 +229,19 @@ abstract class PieRadarChartPainter>> break; } - legendLeft += getRequiredBaseOffset(); - legendRight += getRequiredBaseOffset(); - legendTop += getRequiredBaseOffset(); - legendBottom += getRequiredBaseOffset(); + legendLeft += getRequiredBaseOffset()!; + legendRight += getRequiredBaseOffset()!; + legendTop += getRequiredBaseOffset()!; + legendBottom += getRequiredBaseOffset()!; } - double minOffset = Utils.convertDpToPixel(_minOffset); + double? minOffset = Utils.convertDpToPixel(_minOffset); if (this is RadarChartPainter) { - XAxis x = this.xAxis; + XAxis x = this.xAxis!; if (x.enabled && x.drawLabels) { - minOffset = max(minOffset, x.labelRotatedWidth.toDouble()); + minOffset = max(minOffset!, x.labelRotatedWidth.toDouble()); } } @@ -250,13 +250,13 @@ abstract class PieRadarChartPainter>> legendBottom += extraBottomOffset; legendLeft += extraLeftOffset; - double offsetLeft = max(minOffset, legendLeft); + double offsetLeft = max(minOffset!, legendLeft); double offsetTop = max(minOffset, legendTop); double offsetRight = max(minOffset, legendRight); double offsetBottom = - max(minOffset, max(getRequiredBaseOffset(), legendBottom)); + max(minOffset, max(getRequiredBaseOffset()!, legendBottom)); - viewPortHandler.restrainViewPort( + viewPortHandler!.restrainViewPort( offsetLeft, offsetTop, offsetRight, offsetBottom); } @@ -270,13 +270,13 @@ abstract class PieRadarChartPainter>> double getAngleForPoint(double x, double y) { MPPointF c = getCenterOffsets(); - double tx = x - c.x, ty = y - c.y; + double tx = x - c.x!, ty = y - c.y!; double length = sqrt(tx * tx + ty * ty); double r = acos(ty / length); double angle = r * 180.0 / pi; - if (x > c.x) angle = 360 - angle; + if (x > c.x!) angle = 360 - angle; // add 90° because chart starts EAST angle = angle + 90; @@ -305,8 +305,8 @@ abstract class PieRadarChartPainter>> void getPosition2( MPPointF center, double dist, double angle, MPPointF outputPoint) { - outputPoint.x = (center.x + dist * cos(angle / 180.0 * pi)); - outputPoint.y = (center.y + dist * sin(angle / 180.0 * pi)); + outputPoint.x = (center.x! + dist * cos(angle / 180.0 * pi)); + outputPoint.y = (center.y! + dist * sin(angle / 180.0 * pi)); } /// Returns the distance of a certain point on the chart to the center of the @@ -323,16 +323,16 @@ abstract class PieRadarChartPainter>> double xDist = 0; double yDist = 0; - if (x > c.x) { - xDist = x - c.x; + if (x > c.x!) { + xDist = x - c.x!; } else { - xDist = c.x - x; + xDist = c.x! - x; } - if (y > c.y) { - yDist = y - c.y; + if (y > c.y!) { + yDist = y - c.y!; } else { - yDist = c.y - y; + yDist = c.y! - y; } // pythagoras @@ -365,7 +365,7 @@ abstract class PieRadarChartPainter>> /// gestures and animations. /// /// @return - double getRawRotationAngle() { + double? getRawRotationAngle() { return _rawRotationAngle; } @@ -394,10 +394,10 @@ abstract class PieRadarChartPainter>> /// @return double getDiameter() { Rect content = Rect.fromLTRB( - viewPortHandler.getContentRect().left + extraLeftOffset, - viewPortHandler.getContentRect().top + extraTopOffset, - viewPortHandler.getContentRect().right - extraRightOffset, - viewPortHandler.getContentRect().bottom - extraBottomOffset); + viewPortHandler!.getContentRect().left + extraLeftOffset, + viewPortHandler!.getContentRect().top + extraTopOffset, + viewPortHandler!.getContentRect().right - extraRightOffset, + viewPortHandler!.getContentRect().bottom - extraBottomOffset); return min(content.width, content.height); } @@ -415,20 +415,20 @@ abstract class PieRadarChartPainter>> /// legend size. /// /// @return - double getRequiredBaseOffset(); + double? getRequiredBaseOffset(); @override - double getYChartMax() { + double? getYChartMax() { return 0; } @override - double getYChartMin() { + double? getYChartMin() { return 0; } void setRotationAngle(double angle) { _rawRotationAngle = angle; - _rotationAngle = Utils.getNormalizedAngle(_rawRotationAngle); + _rotationAngle = Utils.getNormalizedAngle(_rawRotationAngle!); } } diff --git a/mp_chart/lib/mp/painter/radar_chart_painter.dart b/mp_chart/lib/mp/painter/radar_chart_painter.dart index f1400bae..e77e5fdd 100644 --- a/mp_chart/lib/mp/painter/radar_chart_painter.dart +++ b/mp_chart/lib/mp/painter/radar_chart_painter.dart @@ -20,7 +20,7 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; import 'package:mp_chart/mp/core/view_port.dart'; import 'package:mp_chart/mp/painter/pie_redar_chart_painter.dart'; -class RadarChartPainter extends PieRadarChartPainter { +class RadarChartPainter extends PieRadarChartPainter { /// width of the main web lines final double _webLineWidth; @@ -28,10 +28,10 @@ class RadarChartPainter extends PieRadarChartPainter { final double _innerWebLineWidth; /// color for the main web lines - final Color _webColor; // = Color.fromARGB(255, 122, 122, 122) + final Color? _webColor; // = Color.fromARGB(255, 122, 122, 122) /// color for the inner web - final Color _webColorInner; // = Color.fromARGB(255, 122, 122, 122) + final Color? _webColorInner; // = Color.fromARGB(255, 122, 122, 122) /// transparency the grid is drawn with (0-255) final int _webAlpha; @@ -43,15 +43,15 @@ class RadarChartPainter extends PieRadarChartPainter { final int _skipWebLineCount; /// the object reprsenting the y-axis labels - final YAxis _yAxis; + final YAxis? _yAxis; //////////// - YAxisRendererRadarChart _yAxisRenderer; - XAxisRendererRadarChart _xAxisRenderer; + late YAxisRendererRadarChart _yAxisRenderer; + late XAxisRendererRadarChart _xAxisRenderer; - Color get webColor => _webColor; + Color? get webColor => _webColor; - Color get webColorInner => _webColorInner; + Color? get webColorInner => _webColorInner; double get webLineWidth => _webLineWidth; @@ -61,42 +61,42 @@ class RadarChartPainter extends PieRadarChartPainter { int get skipWebLineCount => _skipWebLineCount; - YAxis get yAxis => _yAxis; + YAxis? get yAxis => _yAxis; RadarChartPainter( - RadarData data, - Animator animator, - ViewPortHandler viewPortHandler, - double maxHighlightDistance, + RadarData? data, + Animator? animator, + ViewPortHandler? viewPortHandler, + double? maxHighlightDistance, bool highLightPerTapEnabled, double extraLeftOffset, double extraTopOffset, double extraRightOffset, double extraBottomOffset, - IMarker marker, - Description desc, + IMarker? marker, + Description? desc, bool drawMarkers, - Color infoBgColor, - TextPainter infoPainter, - TextPainter descPainter, - XAxis xAxis, - Legend legend, - LegendRenderer legendRenderer, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectedListener, + Color? infoBgColor, + TextPainter? infoPainter, + TextPainter? descPainter, + XAxis? xAxis, + Legend? legend, + LegendRenderer? legendRenderer, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectedListener, double rotationAngle, - double rawRotationAngle, + double? rawRotationAngle, bool rotateEnabled, double minOffset, double webLineWidth, double innerWebLineWidth, - Color webColor, - Color webColorInner, + Color? webColor, + Color? webColorInner, int webAlpha, bool drawWeb, int skipWebLineCount, - YAxis yAxis, - Color backgroundColor) + YAxis? yAxis, + Color? backgroundColor) : _webLineWidth = webLineWidth, _innerWebLineWidth = innerWebLineWidth, _webColor = webColor, @@ -145,10 +145,10 @@ class RadarChartPainter extends PieRadarChartPainter { @override void calcMinMax() { super.calcMinMax(); - _yAxis.calculate(getData().getYMin2(AxisDependency.LEFT), - getData().getYMax2(AxisDependency.LEFT)); - xAxis.calculate( - 0, getData().getMaxEntryCountSet().getEntryCount().toDouble()); + _yAxis!.calculate(getData()!.getYMin2(AxisDependency.LEFT), + getData()!.getYMax2(AxisDependency.LEFT)); + xAxis!.calculate( + 0, getData()!.getMaxEntryCountSet()!.getEntryCount().toDouble()); } @override @@ -156,38 +156,38 @@ class RadarChartPainter extends PieRadarChartPainter { super.calculateOffsets(); calcMinMax(); _yAxisRenderer.computeAxis( - _yAxis.axisMinimum, _yAxis.axisMaximum, _yAxis.inverted); - _xAxisRenderer.computeAxis(xAxis.axisMinimum, xAxis.axisMaximum, false); - if (legend != null && !legend.isLegendCustom) - legendRenderer.computeLegend(getData()); + _yAxis!.axisMinimum, _yAxis!.axisMaximum, _yAxis!.inverted); + _xAxisRenderer.computeAxis(xAxis!.axisMinimum, xAxis!.axisMaximum, false); + if (legend != null && !legend!.isLegendCustom) + legendRenderer!.computeLegend(getData()); } @override void onPaint(Canvas canvas, Size size) { super.onPaint(canvas, size); - if (xAxis.enabled) - _xAxisRenderer.computeAxis(xAxis.axisMinimum, xAxis.axisMaximum, false); + if (xAxis!.enabled) + _xAxisRenderer.computeAxis(xAxis!.axisMinimum, xAxis!.axisMaximum, false); _xAxisRenderer.renderAxisLabels(canvas); - if (_drawWeb) renderer.drawExtras(canvas); + if (_drawWeb) renderer!.drawExtras(canvas); - if (_yAxis.enabled && _yAxis.drawLimitLineBehindData) + if (_yAxis!.enabled && _yAxis!.drawLimitLineBehindData) _yAxisRenderer.renderLimitLines(canvas); - renderer.drawData(canvas); + renderer!.drawData(canvas); if (valuesToHighlight()) - renderer.drawHighlighted(canvas, indicesToHighlight); + renderer!.drawHighlighted(canvas, indicesToHighlight); - if (_yAxis.enabled && !_yAxis.drawLimitLineBehindData) + if (_yAxis!.enabled && !_yAxis!.drawLimitLineBehindData) _yAxisRenderer.renderLimitLines(canvas); _yAxisRenderer.renderAxisLabels(canvas); - renderer.drawValues(canvas); + renderer!.drawValues(canvas); - legendRenderer.renderLegend(canvas); + legendRenderer!.renderLegend(canvas); drawDescription(canvas, size); @@ -198,15 +198,15 @@ class RadarChartPainter extends PieRadarChartPainter { /// /// @return double getFactor() { - Rect content = viewPortHandler.getContentRect(); - return min(content.width / 2, content.height / 2) / _yAxis.axisRange; + Rect content = viewPortHandler!.getContentRect(); + return min(content.width / 2, content.height / 2) / _yAxis!.axisRange; } /// Returns the angle that each slice in the radar chart occupies. /// /// @return double getSliceAngle() { - return 360 / getData().getMaxEntryCountSet().getEntryCount(); + return 360 / getData()!.getMaxEntryCountSet()!.getEntryCount(); } @override @@ -216,7 +216,7 @@ class RadarChartPainter extends PieRadarChartPainter { double sliceangle = getSliceAngle(); - int max = getData().getMaxEntryCountSet().getEntryCount(); + int max = getData()!.getMaxEntryCountSet()!.getEntryCount(); int index = 0; @@ -234,30 +234,30 @@ class RadarChartPainter extends PieRadarChartPainter { @override double getRequiredLegendOffset() { - var size = legendRenderer.legendLabelPaint.text.style.fontSize; - return (size == null ? Utils.convertDpToPixel(9) : size) * 4.0; + var size = legendRenderer!.legendLabelPaint!.text!.style!.fontSize; + return (size == null ? Utils.convertDpToPixel(9) : size)! * 4.0; } @override - double getRequiredBaseOffset() { - return xAxis.enabled && xAxis.drawLabels - ? xAxis.labelRotatedWidth.toDouble() + double? getRequiredBaseOffset() { + return xAxis!.enabled && xAxis!.drawLabels + ? xAxis!.labelRotatedWidth.toDouble() : Utils.convertDpToPixel(10); } @override double getRadius() { - Rect content = viewPortHandler.getContentRect(); + Rect content = viewPortHandler!.getContentRect(); return min(content.width / 2, content.height / 2); } /// Returns the maximum value this chart can display on it's y-axis. - double getYChartMax() { - return _yAxis.axisMaximum; + double? getYChartMax() { + return _yAxis!.axisMaximum; } /// Returns the minimum value this chart can display on it's y-axis. - double getYChartMin() { - return _yAxis.axisMinimum; + double? getYChartMin() { + return _yAxis!.axisMinimum; } } diff --git a/mp_chart/lib/mp/painter/scatter_chart_painter.dart b/mp_chart/lib/mp/painter/scatter_chart_painter.dart index a5350678..553d35b2 100644 --- a/mp_chart/lib/mp/painter/scatter_chart_painter.dart +++ b/mp_chart/lib/mp/painter/scatter_chart_painter.dart @@ -18,29 +18,29 @@ import 'package:mp_chart/mp/core/transformer/transformer.dart'; import 'package:mp_chart/mp/core/view_port.dart'; import 'package:mp_chart/mp/painter/bar_line_chart_painter.dart'; -class ScatterChartPainter extends BarLineChartBasePainter +class ScatterChartPainter extends BarLineChartBasePainter implements ScatterDataProvider { ScatterChartPainter( - ScatterData data, - Animator animator, - ViewPortHandler viewPortHandler, - double maxHighlightDistance, + ScatterData? data, + Animator? animator, + ViewPortHandler? viewPortHandler, + double? maxHighlightDistance, bool highLightPerTapEnabled, double extraLeftOffset, double extraTopOffset, double extraRightOffset, double extraBottomOffset, - IMarker marker, - Description desc, + IMarker? marker, + Description? desc, bool drawMarkers, - Color infoBgColor, - TextPainter infoPainter, - TextPainter descPainter, - XAxis xAxis, - Legend legend, - LegendRenderer legendRenderer, - DataRendererSettingFunction rendererSettingFunction, - OnChartValueSelectedListener selectedListener, + Color? infoBgColor, + TextPainter? infoPainter, + TextPainter? descPainter, + XAxis? xAxis, + Legend? legend, + LegendRenderer? legendRenderer, + DataRendererSettingFunction? rendererSettingFunction, + OnChartValueSelectedListener? selectedListener, int maxVisibleCount, bool autoScaleMinMaxEnabled, bool pinchZoomEnabled, @@ -50,25 +50,25 @@ class ScatterChartPainter extends BarLineChartBasePainter bool dragYEnabled, bool scaleXEnabled, bool scaleYEnabled, - Paint gridBackgroundPaint, - Paint backgroundPaint, - Paint borderPaint, + Paint? gridBackgroundPaint, + Paint? backgroundPaint, + Paint? borderPaint, bool drawGridBackground, bool drawBorders, bool clipValuesToContent, double minOffset, bool keepPositionOnRotation, - OnDrawListener drawListener, - YAxis axisLeft, - YAxis axisRight, - YAxisRenderer axisRendererLeft, - YAxisRenderer axisRendererRight, - Transformer leftAxisTransformer, - Transformer rightAxisTransformer, - XAxisRenderer xAxisRenderer, - Matrix4 zoomMatrixBuffer, + OnDrawListener? drawListener, + YAxis? axisLeft, + YAxis? axisRight, + YAxisRenderer? axisRendererLeft, + YAxisRenderer? axisRendererRight, + Transformer? leftAxisTransformer, + Transformer? rightAxisTransformer, + XAxisRenderer? xAxisRenderer, + Matrix4? zoomMatrixBuffer, bool customViewPortEnabled, - ChartTransListener chartTransListener) + ChartTransListener? chartTransListener) : super( data, animator, @@ -123,12 +123,12 @@ class ScatterChartPainter extends BarLineChartBasePainter void initDefaultWithData() { super.initDefaultWithData(); renderer = ScatterChartRenderer(this, animator, viewPortHandler); - xAxis.spaceMin = (0.5); - xAxis.spaceMax = (0.5); + xAxis!.spaceMin = (0.5); + xAxis!.spaceMax = (0.5); } @override - ScatterData getScatterData() { - return getData(); + ScatterData? getScatterData() { + return getData() as ScatterData?; } } diff --git a/mp_chart/pubspec.yaml b/mp_chart/pubspec.yaml index 2c0c7d89..5ccf0132 100644 --- a/mp_chart/pubspec.yaml +++ b/mp_chart/pubspec.yaml @@ -5,7 +5,7 @@ author: SunPointed<410338643@qq.com> homepage: https://github.com/SunPointed/MPFlutterChart environment: - sdk: ">=2.1.0 <3.0.0" + sdk: '>=2.12.0 <3.0.0' dependencies: intl: ^0.17.0 @@ -13,7 +13,11 @@ dependencies: screenshot: ^1.0.0-nullsafety.1 path_drawing: ^0.5.0 image_gallery_saver: ^1.6.9 - optimized_gesture_detector: ^0.0.6 + optimized_gesture_detector: + git: + url: https://github.com/tkakoi-orphe/OptimizedGestureDetector.git + ref: null-safety + path: ./ vector_math: ^2.1.0 flutter: sdk: flutter From 7dfb0495e19f9de67a3fa4b1fbe01619e97468c9 Mon Sep 17 00:00:00 2001 From: Takuro KAKOI Date: Fri, 24 Sep 2021 21:15:53 +0900 Subject: [PATCH 02/29] update null-safety --- ...line_scatter_candle_bubble_controller.dart | 18 ++--- mp_chart/lib/mp/core/cache.dart | 4 +- mp_chart/lib/mp/core/entry/bar_entry.dart | 2 +- mp_chart/lib/mp/core/poolable/point.dart | 12 +-- .../lib/mp/core/transformer/transformer.dart | 18 ++--- mp_chart/lib/mp/core/utils/color_utils.dart | 75 ++++++++++--------- .../lib/mp/core/utils/dart_adapter_utils.dart | 2 +- .../day_axis_value_formatter.dart | 26 +++---- .../large_value_formatter.dart | 12 +-- mp_chart/lib/mp/core/view_port.dart | 4 +- .../mp/painter/bar_line_chart_painter.dart | 10 +-- .../mp/painter/combined_chart_painter.dart | 14 ++-- .../painter/horizontal_bar_chart_painter.dart | 6 +- mp_chart/lib/mp/painter/painter.dart | 24 +++--- .../lib/mp/painter/pie_chart_painter.dart | 16 ++-- 15 files changed, 124 insertions(+), 119 deletions(-) diff --git a/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart b/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart index 3d779f10..1fd43ca2 100644 --- a/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart +++ b/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart @@ -236,7 +236,7 @@ abstract class BarLineScatterCandleBubbleController< /// /// @param xValue void moveViewToX(double xValue) { - List pts = List(); + List pts = List.empty(); pts.add(xValue); pts.add(0.0); @@ -251,7 +251,7 @@ abstract class BarLineScatterCandleBubbleController< /// @param axis - which axis should be used as a reference for the y-axis void moveViewToY(double yValue, AxisDependency axis) { double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); - List pts = List(); + List pts = List.empty(); pts.add(0.0); pts.add(yValue + yInView / 2); @@ -268,7 +268,7 @@ abstract class BarLineScatterCandleBubbleController< /// @param axis - which axis should be used as a reference for the y-axis void moveViewTo(double xValue, double yValue, AxisDependency axis) { double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); - List pts = List(); + List pts = List.empty(); pts.add(xValue); pts.add(yValue + yInView / 2); painter?.getTransformer(axis)?.pointValuesToPixel(pts); @@ -290,7 +290,7 @@ abstract class BarLineScatterCandleBubbleController< double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); yValue = yValue + yInView / 2; - List pts = List(); + List pts = List.empty(); pts.add(xValue); pts.add(yValue); double? xOrigin = bounds.x; @@ -313,7 +313,7 @@ abstract class BarLineScatterCandleBubbleController< /// @param axis - which axis should be used as a reference for the y-axis void centerViewToY(double yValue, AxisDependency axis) { double valsInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); - List pts = List(); + List pts = List.empty(); pts.add(0.0); pts.add(yValue + valsInView / 2); painter?.getTransformer(axis)?.pointValuesToPixel(pts); @@ -330,7 +330,7 @@ abstract class BarLineScatterCandleBubbleController< void centerViewTo(double xValue, double yValue, AxisDependency axis) { double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); double xInView = xAxis!.axisRange / viewPortHandler!.getScaleX(); - List pts = List(); + List pts = List.empty(); pts.add(xValue - xInView / 2); pts.add(yValue + yInView / 2); painter?.getTransformer(axis)?.pointValuesToPixel(pts); @@ -353,7 +353,7 @@ abstract class BarLineScatterCandleBubbleController< xValue = xValue - xInView / 2; yValue = yValue + yInView / 2; - List pts = List(); + List pts = List.empty(); pts.add(xValue); pts.add(yValue); double? xOrigin = bounds.x; @@ -473,8 +473,8 @@ abstract class BarLineScatterCandleBubbleController< if (_decelerationLastTime == 0) { _decelerationLastTime = currentTime; } else { - _decelerationVelocity.x *= _dragDecelerationFrictionCoef; - _decelerationVelocity.y *= _dragDecelerationFrictionCoef; + _decelerationVelocity.x = _decelerationVelocity.x! * _dragDecelerationFrictionCoef; + _decelerationVelocity.y = _decelerationVelocity.y! * _dragDecelerationFrictionCoef; double timeInterval = (currentTime - _decelerationLastTime) / 1000; diff --git a/mp_chart/lib/mp/core/cache.dart b/mp_chart/lib/mp/core/cache.dart index ca579250..a68c5eb9 100644 --- a/mp_chart/lib/mp/core/cache.dart +++ b/mp_chart/lib/mp/core/cache.dart @@ -19,10 +19,10 @@ class DataSetImageCache { bool changeRequired = false; if (_circleBitmaps == null) { - _circleBitmaps = List(size); + _circleBitmaps = []..length = size; changeRequired = true; } else if (_circleBitmaps!.length != size) { - _circleBitmaps = List(size); + _circleBitmaps = []..length = size; changeRequired = true; } diff --git a/mp_chart/lib/mp/core/entry/bar_entry.dart b/mp_chart/lib/mp/core/entry/bar_entry.dart index 9118365b..0b0dcaf4 100644 --- a/mp_chart/lib/mp/core/entry/bar_entry.dart +++ b/mp_chart/lib/mp/core/entry/bar_entry.dart @@ -108,7 +108,7 @@ class BarEntry extends Entry { if (values == null || values.length == 0) return; - _ranges = List(values.length); + _ranges = []..length = values.length; double negRemain = -negativeSum!; double posRemain = 0.0; diff --git a/mp_chart/lib/mp/core/poolable/point.dart b/mp_chart/lib/mp/core/poolable/point.dart index dd86d63d..0c222059 100644 --- a/mp_chart/lib/mp/core/poolable/point.dart +++ b/mp_chart/lib/mp/core/poolable/point.dart @@ -140,7 +140,7 @@ class ObjectPool { "Object Pool must be instantiated with a capacity greater than 0!"); } this.desiredCapacity = withCapacity; - this.objects = List(this.desiredCapacity); + this.objects = [this.desiredCapacity]; this.objectsPointer = 0; this.modelObject = object; this.replenishPercentage = 1.0; @@ -196,7 +196,7 @@ class ObjectPool { T result = objects[this.objectsPointer!] as T; result.currentOwnerId = Poolable.NO_OWNER; - this.objectsPointer--; + this.objectsPointer = this.objectsPointer! - 1; return result; } @@ -216,7 +216,7 @@ class ObjectPool { } } - this.objectsPointer++; + this.objectsPointer = this.objectsPointer! + 1; if (this.objectsPointer! >= objects.length) { this.resizePool(); } @@ -250,13 +250,13 @@ class ObjectPool { object.currentOwnerId = this.poolId; this.objects[this.objectsPointer! + 1 + i] = object; } - this.objectsPointer += objectsListSize; + this.objectsPointer = this.objectsPointer! + objectsListSize; } void resizePool() { final int oldCapacity = this.desiredCapacity!; - this.desiredCapacity *= 2; - List temp = List(this.desiredCapacity); + this.desiredCapacity = this.desiredCapacity! * 2; + List temp = [this.desiredCapacity]; for (int i = 0; i < oldCapacity; i++) { temp[i] = this.objects[i]; } diff --git a/mp_chart/lib/mp/core/transformer/transformer.dart b/mp_chart/lib/mp/core/transformer/transformer.dart index 42ba2d63..69626840 100644 --- a/mp_chart/lib/mp/core/transformer/transformer.dart +++ b/mp_chart/lib/mp/core/transformer/transformer.dart @@ -75,7 +75,7 @@ class Transformer { } } - List _valuePointsForGenerateTransformedValuesScatter = List(1); + List _valuePointsForGenerateTransformedValuesScatter = []..length = 1; /// Transforms an List of Entry into a double array containing the x and /// y values Matrix4Utils.transformed with all matrices for the SCATTERCHART. @@ -88,7 +88,7 @@ class Transformer { count = count % 2 == 0 ? count : count - 1; if (_valuePointsForGenerateTransformedValuesScatter.length != count) { - _valuePointsForGenerateTransformedValuesScatter = List(count); + _valuePointsForGenerateTransformedValuesScatter = []..length = count; } List valuePoints = _valuePointsForGenerateTransformedValuesScatter; @@ -109,7 +109,7 @@ class Transformer { return valuePoints; } - List _valuePointsForGenerateTransformedValuesBubble = List(1); + List _valuePointsForGenerateTransformedValuesBubble = []..length = 1; /// Transforms an List of Entry into a double array containing the x and /// y values Matrix4Utils.transformed with all matrices for the BUBBLECHART. @@ -122,7 +122,7 @@ class Transformer { (to - from + 1) * 2; // (int) Math.ceil((to - from) * phaseX) * 2; if (_valuePointsForGenerateTransformedValuesBubble.length != count) { - _valuePointsForGenerateTransformedValuesBubble = List(count); + _valuePointsForGenerateTransformedValuesBubble = []..length = count; } List valuePoints = _valuePointsForGenerateTransformedValuesBubble; @@ -143,7 +143,7 @@ class Transformer { return valuePoints; } - List _valuePointsForGenerateTransformedValuesLine = List(1); + List _valuePointsForGenerateTransformedValuesLine = []..length = 1; /// Transforms an List of Entry into a double array containing the x and /// y values Matrix4Utils.transformed with all matrices for the LINECHART. @@ -155,7 +155,7 @@ class Transformer { final int count = ((((max - min) * phaseX) + 1).toInt() * 2); if (_valuePointsForGenerateTransformedValuesLine.length != count) { - _valuePointsForGenerateTransformedValuesLine = List(count); + _valuePointsForGenerateTransformedValuesLine = []..length = count; } List valuePoints = _valuePointsForGenerateTransformedValuesLine; @@ -176,7 +176,7 @@ class Transformer { return valuePoints; } - List _valuePointsForGenerateTransformedValuesCandle = List(1); + List _valuePointsForGenerateTransformedValuesCandle = []..length = 1; /// Transforms an List of Entry into a double array containing the x and /// y values Matrix4Utils.transformed with all matrices for the CANDLESTICKCHART. @@ -189,7 +189,7 @@ class Transformer { count = count % 2 == 0 ? count : count - 1; if (_valuePointsForGenerateTransformedValuesCandle.length != count) { - _valuePointsForGenerateTransformedValuesCandle = List(count); + _valuePointsForGenerateTransformedValuesCandle = []..length = count; } List valuePoints = _valuePointsForGenerateTransformedValuesCandle; @@ -309,7 +309,7 @@ class Transformer { } /// buffer for performance - List _ptsBuffer = List(2); + List _ptsBuffer = []..length = 2; /// Returns a recyclable MPPointD instance. /// returns the x and y values in the chart at the given touch point diff --git a/mp_chart/lib/mp/core/utils/color_utils.dart b/mp_chart/lib/mp/core/utils/color_utils.dart index b156538f..e05f505e 100644 --- a/mp_chart/lib/mp/core/utils/color_utils.dart +++ b/mp_chart/lib/mp/core/utils/color_utils.dart @@ -71,51 +71,56 @@ abstract class ColorUtils { static const Color HOLO_ORANGE_DARK = Color(0xffff8800); // ignore: non_constant_identifier_names - static final List VORDIPLOM_COLORS = List() - ..add(Color.fromARGB(255, 192, 255, 140)) - ..add(Color.fromARGB(255, 255, 247, 140)) - ..add(Color.fromARGB(255, 255, 208, 140)) - ..add(Color.fromARGB(255, 140, 234, 255)) - ..add(Color.fromARGB(255, 255, 140, 157)); + static final List VORDIPLOM_COLORS = [ + Color.fromARGB(255, 192, 255, 140), + Color.fromARGB(255, 255, 247, 140), + Color.fromARGB(255, 255, 208, 140), + Color.fromARGB(255, 140, 234, 255), + Color.fromARGB(255, 255, 140, 157)]; // ignore: non_constant_identifier_names - static final List JOYFUL_COLORS = List() - ..add(Color.fromARGB(255, 217, 80, 138)) - ..add(Color.fromARGB(255, 254, 149, 7)) - ..add(Color.fromARGB(255, 254, 247, 120)) - ..add(Color.fromARGB(255, 106, 167, 134)) - ..add(Color.fromARGB(255, 53, 194, 209)); + static final List JOYFUL_COLORS = [ + Color.fromARGB(255, 217, 80, 138), + Color.fromARGB(255, 254, 149, 7), + Color.fromARGB(255, 254, 247, 120), + Color.fromARGB(255, 106, 167, 134), + Color.fromARGB(255, 53, 194, 209), + ]; // ignore: non_constant_identifier_names - static final List MATERIAL_COLORS = List() - ..add(Color(0xFF2ecc71)) - ..add(Color(0xFFf1c40f)) - ..add(Color(0xFFe74c3c)) - ..add(Color(0xFF3498db)); + static final List MATERIAL_COLORS = [ + Color(0xFF2ecc71), + Color(0xFFf1c40f), + Color(0xFFe74c3c), + Color(0xFF3498db), + ]; // ignore: non_constant_identifier_names - static final List COLORFUL_COLORS = List() - ..add(Color.fromARGB(255, 193, 37, 82)) - ..add(Color.fromARGB(255, 255, 102, 0)) - ..add(Color.fromARGB(255, 245, 199, 0)) - ..add(Color.fromARGB(255, 106, 150, 31)) - ..add(Color.fromARGB(255, 179, 100, 53)); + static final List COLORFUL_COLORS = [ + Color.fromARGB(255, 193, 37, 82), + Color.fromARGB(255, 255, 102, 0), + Color.fromARGB(255, 245, 199, 0), + Color.fromARGB(255, 106, 150, 31), + Color.fromARGB(255, 179, 100, 53), + ]; // ignore: non_constant_identifier_names - static final List LIBERTY_COLORS = List() - ..add(Color.fromARGB(255, 207, 248, 246)) - ..add(Color.fromARGB(255, 148, 212, 212)) - ..add(Color.fromARGB(255, 136, 180, 187)) - ..add(Color.fromARGB(255, 118, 174, 175)) - ..add(Color.fromARGB(255, 42, 109, 130)); + static final List LIBERTY_COLORS = [ + Color.fromARGB(255, 207, 248, 246), + Color.fromARGB(255, 148, 212, 212), + Color.fromARGB(255, 136, 180, 187), + Color.fromARGB(255, 118, 174, 175), + Color.fromARGB(255, 42, 109, 130), + ]; // ignore: non_constant_identifier_names - static final List PASTEL_COLORS = List() - ..add(Color.fromARGB(255, 64, 89, 128)) - ..add(Color.fromARGB(255, 149, 165, 124)) - ..add(Color.fromARGB(255, 217, 184, 162)) - ..add(Color.fromARGB(255, 191, 134, 134)) - ..add(Color.fromARGB(255, 179, 48, 80)); + static final List PASTEL_COLORS = [ + Color.fromARGB(255, 64, 89, 128), + Color.fromARGB(255, 149, 165, 124), + Color.fromARGB(255, 217, 184, 162), + Color.fromARGB(255, 191, 134, 134), + Color.fromARGB(255, 179, 48, 80), + ]; static Color colorWithAlpha(Color strokeColor, int alpha) { return Color.fromARGB( diff --git a/mp_chart/lib/mp/core/utils/dart_adapter_utils.dart b/mp_chart/lib/mp/core/utils/dart_adapter_utils.dart index 925e4a2e..7876c98a 100644 --- a/mp_chart/lib/mp/core/utils/dart_adapter_utils.dart +++ b/mp_chart/lib/mp/core/utils/dart_adapter_utils.dart @@ -1,5 +1,5 @@ abstract class DartAdapterUtils { static bool equalsIgnoreCase(String string1, String string2) { - return string1?.toLowerCase() == string2?.toLowerCase(); + return string1.toLowerCase() == string2.toLowerCase(); } } diff --git a/mp_chart/lib/mp/core/value_formatter/day_axis_value_formatter.dart b/mp_chart/lib/mp/core/value_formatter/day_axis_value_formatter.dart index 6f3d7b3c..9c4ca931 100644 --- a/mp_chart/lib/mp/core/value_formatter/day_axis_value_formatter.dart +++ b/mp_chart/lib/mp/core/value_formatter/day_axis_value_formatter.dart @@ -4,19 +4,19 @@ import 'package:mp_chart/mp/controller/bar_line_scatter_candle_bubble_controller import 'package:mp_chart/mp/core/value_formatter/value_formatter.dart'; class DayAxisValueFormatter extends ValueFormatter { - final List _months = List() - ..add("Jan") - ..add("Feb") - ..add("Mar") - ..add("Apr") - ..add("May") - ..add("Jun") - ..add("Jul") - ..add("Aug") - ..add("Sep") - ..add("Oct") - ..add("Nov") - ..add("Dec"); + final List _months = [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec",]; late BarLineScatterCandleBubbleController _controller; diff --git a/mp_chart/lib/mp/core/value_formatter/large_value_formatter.dart b/mp_chart/lib/mp/core/value_formatter/large_value_formatter.dart index 56ac6a15..35db5a2f 100644 --- a/mp_chart/lib/mp/core/value_formatter/large_value_formatter.dart +++ b/mp_chart/lib/mp/core/value_formatter/large_value_formatter.dart @@ -2,12 +2,12 @@ import 'package:intl/intl.dart'; import 'package:mp_chart/mp/core/value_formatter/value_formatter.dart'; class LargeValueFormatter extends ValueFormatter { - List _suffix = List() - ..add("") - ..add("k") - ..add("m") - ..add("b") - ..add("t"); + List _suffix = [ + "", + "k", + "m", + "b", + "t",]; int _maxLength = 5; late NumberFormat _format; String _text = ""; diff --git a/mp_chart/lib/mp/core/view_port.dart b/mp_chart/lib/mp/core/view_port.dart index 20ea8115..b2daedf3 100644 --- a/mp_chart/lib/mp/core/view_port.dart +++ b/mp_chart/lib/mp/core/view_port.dart @@ -255,7 +255,7 @@ class ViewPortHandler { return save; } - List valsBufferForFitScreen = List(16); + List valsBufferForFitScreen = []..length = 16; /// Resets all zooming and dragging and makes the chart fit exactly it's /// bounds. @@ -326,7 +326,7 @@ class ViewPortHandler { refresh(save); } - List matrixBuffer = List(16); + List matrixBuffer = []..length = 16; /// call this method to refresh the graph with a given matrix /// diff --git a/mp_chart/lib/mp/painter/bar_line_chart_painter.dart b/mp_chart/lib/mp/painter/bar_line_chart_painter.dart index 14c9fe3e..00d9094c 100644 --- a/mp_chart/lib/mp/painter/bar_line_chart_painter.dart +++ b/mp_chart/lib/mp/painter/bar_line_chart_painter.dart @@ -662,7 +662,7 @@ abstract class BarLineChartBasePainter< return _axisRight!.axisRange; } - List mGetPositionBuffer = List(2); + List mGetPositionBuffer = []..length = 2; /// Returns a recyclable MPPointF instance. /// Returns the position (in pixels) the provided Entry has inside the chart @@ -670,7 +670,7 @@ abstract class BarLineChartBasePainter< /// /// @param e /// @return - MPPointF getPosition(Entry e, AxisDependency axis) { + MPPointF? getPosition(Entry e, AxisDependency axis) { if (e == null) return null; mGetPositionBuffer[0] = e.x; @@ -686,21 +686,21 @@ abstract class BarLineChartBasePainter< /// /// @param color void setGridBackgroundColor(Color color) { - _gridBackgroundPaint..color = color; + _gridBackgroundPaint!..color = color; } /// Sets the width of the border lines in dp. /// /// @param width void setBorderWidth(double width) { - _borderPaint..strokeWidth = Utils.convertDpToPixel(width)!; + _borderPaint!..strokeWidth = Utils.convertDpToPixel(width)!; } /// Sets the color of the chart border lines. /// /// @param color void setBorderColor(Color color) { - _borderPaint..color = color; + _borderPaint!..color = color; } /// Returns a recyclable MPPointD instance diff --git a/mp_chart/lib/mp/painter/combined_chart_painter.dart b/mp_chart/lib/mp/painter/combined_chart_painter.dart index f6c44f1a..93446414 100644 --- a/mp_chart/lib/mp/painter/combined_chart_painter.dart +++ b/mp_chart/lib/mp/painter/combined_chart_painter.dart @@ -31,7 +31,7 @@ import 'package:mp_chart/mp/painter/bar_line_chart_painter.dart'; enum DrawOrder { BAR, BUBBLE, LINE, CANDLE, SCATTER } class CombinedChartPainter extends BarLineChartBasePainter - implements CombinedDataProvider { + implements CombinedDataProvider? { /// if set to true, all values are drawn above their bars, instead of below /// their top bool _drawValueAboveBar = true; @@ -154,12 +154,12 @@ class CombinedChartPainter extends BarLineChartBasePainter chartTransListener); List initDrawOrder() { - return List() - ..add(DrawOrder.BAR) - ..add(DrawOrder.BUBBLE) - ..add(DrawOrder.LINE) - ..add(DrawOrder.CANDLE) - ..add(DrawOrder.SCATTER); + return [ + DrawOrder.BAR, + DrawOrder.BUBBLE, + DrawOrder.LINE, + DrawOrder.CANDLE, + DrawOrder.SCATTER]; } @override diff --git a/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart b/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart index abfbdeea..0d30bf35 100644 --- a/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart +++ b/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart @@ -214,7 +214,7 @@ class HorizontalBarChartPainter extends BarChartPainter { @override List getMarkerPosition(Highlight high) { - return new List()..add(high.drawY)..add(high.drawX); + return [high.drawY,high.drawX];//new List()..add(high.drawY)..add(high.drawX); } @override @@ -243,7 +243,7 @@ class HorizontalBarChartPainter extends BarChartPainter { return getTransformer(set.getAxisDependency())!.rectValueToPixel(bounds); } - List mGetPositionBuffer = List(2); + List mGetPositionBuffer = []..length = 2; /// Returns a recyclable MPPointF instance. /// @@ -251,7 +251,7 @@ class HorizontalBarChartPainter extends BarChartPainter { /// @param axis /// @return @override - MPPointF getPosition(Entry e, AxisDependency axis) { + MPPointF? getPosition(Entry e, AxisDependency axis) { if (e == null) return null; List vals = mGetPositionBuffer; diff --git a/mp_chart/lib/mp/painter/painter.dart b/mp_chart/lib/mp/painter/painter.dart index 4c40ddf0..001b60d5 100644 --- a/mp_chart/lib/mp/painter/painter.dart +++ b/mp_chart/lib/mp/painter/painter.dart @@ -178,9 +178,9 @@ abstract class ChartPainter>?> void initDefaultWithData() { // calculate how many digits are needed - _setupDefaultFormatter(_data.getYMin1(), _data.getYMax1()); + _setupDefaultFormatter(_data!.getYMin1(), _data!.getYMax1()); - for (IDataSet set in _data.dataSets!) { + for (IDataSet set in _data!.dataSets!) { if (set.needsFormatter() || set.getValueFormatter() == _defaultValueFormatter) set.setValueFormatter(_defaultValueFormatter); @@ -204,7 +204,7 @@ abstract class ChartPainter>?> void _setupDefaultFormatter(double? min1, double? max1) { double reference = 0; - if (_data == null || _data.getEntryCount() < 2) { + if (_data == null || _data!.getEntryCount() < 2) { reference = max(min1!.abs(), max1!.abs()); } else { reference = (max1! - min1!).abs(); @@ -333,7 +333,7 @@ abstract class ChartPainter>?> /// @param callListener Should the listener be called for this change void highlightValue4(double x, double y, int dataSetIndex, bool callListener) { - if (dataSetIndex < 0 || dataSetIndex >= _data.getDataSetCount()) { + if (dataSetIndex < 0 || dataSetIndex >= _data!.getDataSetCount()) { highlightValue6(null, callListener); } else { highlightValue6( @@ -361,14 +361,15 @@ abstract class ChartPainter>?> if (high == null) { _indicesToHighlight = null; } else { - e = _data.getEntryForHighlight(high); + e = _data!.getEntryForHighlight(high); if (e == null) { _indicesToHighlight = null; high = null; } else { // set the indices to highlight - _indicesToHighlight = List() - ..add(high); + _indicesToHighlight = [ + high + ]; } } @@ -383,7 +384,7 @@ abstract class ChartPainter>?> } void selectedValue(Highlight? high) { - Entry? e = _data.getEntryForHighlight(high); + Entry? e = _data!.getEntryForHighlight(high); _selectionListener?.onValueSelected(e, null); } @@ -409,9 +410,9 @@ abstract class ChartPainter>?> for (int i = 0; i < _indicesToHighlight!.length; i++) { Highlight highlight = _indicesToHighlight![i]; - IDataSet set = _data.getDataSetByIndex(highlight.dataSetIndex)!; + IDataSet set = _data!.getDataSetByIndex(highlight.dataSetIndex)!; - Entry? e = _data.getEntryForHighlight(_indicesToHighlight![i]); + Entry? e = _data!.getEntryForHighlight(_indicesToHighlight![i]); int entryIndex = set.getEntryIndex2(e); // make sure entry not null if (e == null || entryIndex > set.getEntryCount() * _animator!.getPhaseX()) @@ -436,8 +437,7 @@ abstract class ChartPainter>?> /// @param high /// @return List getMarkerPosition(Highlight high) { - return List() - ..add(high.drawX)..add(high.drawY); + return [high.drawX,high.drawY]; } @override diff --git a/mp_chart/lib/mp/painter/pie_chart_painter.dart b/mp_chart/lib/mp/painter/pie_chart_painter.dart index 5ae57907..bed0f7e9 100644 --- a/mp_chart/lib/mp/painter/pie_chart_painter.dart +++ b/mp_chart/lib/mp/painter/pie_chart_painter.dart @@ -66,10 +66,10 @@ class PieChartPainter extends PieRadarChartPainter { Rect _circleBox = Rect.zero; /// array that holds the width of each pie-slice in degrees - List _drawAngles = List(1); + List _drawAngles = []..length =1; /// array that holds the absolute angle in degrees of each slice - List _absoluteAngles = List(1); + List _absoluteAngles = []..length =1; /// Hole color Color _holeColor; @@ -269,7 +269,7 @@ class PieChartPainter extends PieRadarChartPainter { center.y!); MPPointF.recycleInstance(center); - return List()..add(x)..add(y); + return [x,y]; } /// calculates the needed angles for the chart slices @@ -277,14 +277,14 @@ class PieChartPainter extends PieRadarChartPainter { int entryCount = getData()!.getEntryCount(); if (_drawAngles.length != entryCount) { - _drawAngles = List(entryCount); + _drawAngles = []..length = entryCount; } else { for (int i = 0; i < entryCount; i++) { _drawAngles[i] = 0; } } if (_absoluteAngles.length != entryCount) { - _absoluteAngles = List(entryCount); + _absoluteAngles = []..length = entryCount; } else { for (int i = 0; i < entryCount; i++) { _absoluteAngles[i] = 0; @@ -297,7 +297,7 @@ class PieChartPainter extends PieRadarChartPainter { bool hasMinAngle = _minAngleForSlices != 0 && entryCount * _minAngleForSlices <= _maxAngle; - List minAngles = List(entryCount); + List minAngles = []..length = entryCount; int cnt = 0; double offset = 0; @@ -337,7 +337,7 @@ class PieChartPainter extends PieRadarChartPainter { // Correct bigger slices by relatively reducing their angles based on the total angle needed to subtract // This requires that `entryCount * _minAngleForSlices <= _maxAngle` be true to properly work! for (int i = 0; i < entryCount; i++) { - minAngles[i] -= (minAngles[i]! - _minAngleForSlices) / diff * offset; + minAngles[i] = minAngles[i]! - ( (minAngles[i]! - _minAngleForSlices) / diff * offset); if (i == 0) { _absoluteAngles[0] = minAngles[0]; } else { @@ -458,7 +458,7 @@ class PieChartPainter extends PieRadarChartPainter { @override double getRequiredLegendOffset() { // ignore: null_aware_before_operator - var offset = legendRenderer!.legendLabelPaint!.text?.style?.fontSize! * 2.0; + var offset = legendRenderer!.legendLabelPaint!.text!.style!.fontSize! * 2.0; return offset == null ? Utils.convertDpToPixel(9)! : offset; } From 00a58efed2a16b110dd12adc93d253c90711fd3f Mon Sep 17 00:00:00 2001 From: Takuro KAKOI Date: Fri, 24 Sep 2021 22:11:03 +0900 Subject: [PATCH 03/29] update --- .../data_provider/line_data_provider.dart | 2 +- .../lib/mp/core/render/axis_renderer.dart | 10 ++--- .../mp/core/render/bar_chart_renderer.dart | 22 +++++------ .../mp/core/render/bubble_chart_renderer.dart | 10 ++--- .../render/candle_stick_chart_renderer.dart | 10 ++--- .../render/chevron_down_shape_renderer.dart | 2 +- .../render/chevron_up_shape_renderer.dart | 2 +- .../mp/core/render/circle_shape_renderer.dart | 2 +- .../core/render/combined_chart_renderer.dart | 9 ++++- .../mp/core/render/cross_shape_renderer.dart | 2 +- .../render/horizontal_bar_chart_renderer.dart | 12 +++--- .../lib/mp/core/render/legend_renderer.dart | 38 ++++++++++--------- .../mp/core/render/line_chart_renderer.dart | 34 ++++++++--------- .../mp/core/render/line_radar_renderer.dart | 8 ++-- .../line_scatter_candle_radar_renderer.dart | 2 +- .../mp/core/render/pie_chart_renderer.dart | 16 ++++---- .../mp/core/render/radar_chart_renderer.dart | 12 +++--- .../core/render/scatter_chart_renderer.dart | 2 +- .../mp/core/render/square_shape_renderer.dart | 2 +- .../lib/mp/core/render/x_axis_renderer.dart | 14 +++---- .../x_axis_renderer_horizontal_bar_chart.dart | 4 +- .../lib/mp/core/render/x_shape_renderer.dart | 4 +- .../lib/mp/core/render/y_axis_renderer.dart | 12 +++--- .../y_axis_renderer_horizontal_bar_chart.dart | 8 ++-- .../render/y_axis_renderer_radar_chart.dart | 12 +++--- .../mp/painter/combined_chart_painter.dart | 2 +- 26 files changed, 131 insertions(+), 122 deletions(-) diff --git a/mp_chart/lib/mp/core/data_provider/line_data_provider.dart b/mp_chart/lib/mp/core/data_provider/line_data_provider.dart index 7cfc8fec..9c3aa446 100644 --- a/mp_chart/lib/mp/core/data_provider/line_data_provider.dart +++ b/mp_chart/lib/mp/core/data_provider/line_data_provider.dart @@ -6,5 +6,5 @@ import 'package:mp_chart/mp/core/enums/axis_dependency.dart'; mixin LineDataProvider implements BarLineScatterCandleBubbleDataProvider { LineData? getLineData(); - YAxis getAxis(AxisDependency dependency); + YAxis? getAxis(AxisDependency dependency); } diff --git a/mp_chart/lib/mp/core/render/axis_renderer.dart b/mp_chart/lib/mp/core/render/axis_renderer.dart index 57ee341b..b28d685f 100644 --- a/mp_chart/lib/mp/core/render/axis_renderer.dart +++ b/mp_chart/lib/mp/core/render/axis_renderer.dart @@ -138,8 +138,8 @@ abstract class AxisRenderer extends Renderer { double range = (yMax - yMin).abs(); if (labelCount == 0 || range <= 0 || range.isInfinite) { - _axis!.entries = List(); - _axis!.centeredEntries = List(); + _axis!.entries = List.empty(); + _axis!.centeredEntries = List.empty(); _axis!.entryCount = 0; return; } @@ -176,7 +176,7 @@ abstract class AxisRenderer extends Renderer { if (_axis!.entries.length < labelCount) { // Ensure stops contains at least numStops elements. - _axis!.entries = List(labelCount); + _axis!.entries = []..length = (labelCount); } double v = min; @@ -213,7 +213,7 @@ abstract class AxisRenderer extends Renderer { if (_axis!.entries.length < num) { // Ensure stops contains at least numStops elements. - _axis!.entries = List(num); + _axis!.entries = []..length = (num); } i = 0; @@ -235,7 +235,7 @@ abstract class AxisRenderer extends Renderer { if (_axis!.isCenterAxisLabelsEnabled()) { if (_axis!.centeredEntries.length < num) { - _axis!.centeredEntries = List(num); + _axis!.centeredEntries = []..length = (num); } int offset = interval ~/ 2; diff --git a/mp_chart/lib/mp/core/render/bar_chart_renderer.dart b/mp_chart/lib/mp/core/render/bar_chart_renderer.dart index f127b70c..9d5a509a 100644 --- a/mp_chart/lib/mp/core/render/bar_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/bar_chart_renderer.dart @@ -83,7 +83,7 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { @override void initBuffers() { BarData barData = _provider!.getBarData()!; - _barBuffers = List(barData.getDataSetCount()); + _barBuffers = []..length = (barData.getDataSetCount()); for (int i = 0; i < _barBuffers!.length; i++) { IBarDataSet set = barData.getDataSetByIndex(i)!; @@ -110,8 +110,8 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { void drawDataSet(Canvas c, IBarDataSet dataSet, int index) { Transformer? trans = _provider!.getTransformer(dataSet.getAxisDependency()); - _barBorderPaint..color = dataSet.getBarBorderColor(); - _barBorderPaint + _barBorderPaint!..color = dataSet.getBarBorderColor(); + _barBorderPaint! ..strokeWidth = Utils.convertDpToPixel(dataSet.getBarBorderWidth())!; final bool drawBorder = dataSet.getBarBorderWidth() > 0.0; @@ -121,7 +121,7 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { // draw the bar shadow before the values if (_provider!.isDrawBarShadowEnabled()) { - _shadowPaint..color = dataSet.getBarShadowColor(); + _shadowPaint!..color = dataSet.getBarShadowColor(); BarData barData = _provider!.getBarData()!; @@ -172,7 +172,7 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { final bool isSingleColor = dataSet.getColors()!.length == 1; if (isSingleColor) { - renderPaint..color = dataSet.getColor1(); + renderPaint!..color = dataSet.getColor1(); } for (int j = 0; j < buffer.size(); j += 4) { @@ -183,15 +183,15 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { if (!isSingleColor) { // Set the color for the currently drawn value. If the index // is out of bounds, reuse colors. - renderPaint..color = dataSet.getColor2(j ~/ 4); + renderPaint!..color = dataSet.getColor2(j ~/ 4); } if (dataSet.getGradientColor1() != null) { GradientColor gradientColor = dataSet.getGradientColor1()!; - renderPaint + renderPaint! ..shader = (LinearGradient( - colors: List() + colors: List.empty() ..add(gradientColor.startColor) ..add(gradientColor.endColor), tileMode: TileMode.mirror)) @@ -203,9 +203,9 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { } if (dataSet.getGradientColors() != null) { - renderPaint + renderPaint! ..shader = (LinearGradient( - colors: List() + colors: List.empty() ..add(dataSet.getGradientColor2(j ~/ 4).startColor) ..add(dataSet.getGradientColor2(j ~/ 4).endColor), tileMode: TileMode.mirror)) @@ -390,7 +390,7 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { // draw stack values } else { - List transformed = List(vals.length * 2); + List transformed = []..length = (vals.length * 2); double posY = 0.0; double negY = -entry.negativeSum!; diff --git a/mp_chart/lib/mp/core/render/bubble_chart_renderer.dart b/mp_chart/lib/mp/core/render/bubble_chart_renderer.dart index c7a11813..0768c3e0 100644 --- a/mp_chart/lib/mp/core/render/bubble_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/bubble_chart_renderer.dart @@ -25,9 +25,9 @@ class BubbleChartRenderer extends BarLineScatterCandleBubbleRenderer { : super(animator, viewPortHandler) { _provider = chart; - renderPaint..style = PaintingStyle.fill; + renderPaint!..style = PaintingStyle.fill; - highlightPaint + highlightPaint! ..style = PaintingStyle.stroke ..strokeWidth = Utils.convertDpToPixel(1.5)!; } @@ -46,8 +46,8 @@ class BubbleChartRenderer extends BarLineScatterCandleBubbleRenderer { } } - List sizeBuffer = List(4); - List pointBuffer = List(2); + List sizeBuffer = []..length = (4); + List pointBuffer = []..length = (2); double getShapeSize( double? entrySize, double maxSize, double reference, bool normalizeSize) { @@ -256,7 +256,7 @@ class BubbleChartRenderer extends BarLineScatterCandleBubbleRenderer { var hsv = HSVColor.fromColor(originalColor); var color = hsv.toColor(); - highlightPaint + highlightPaint! ..color = color ..strokeWidth = set.getHighlightCircleWidth()!; c.drawCircle( diff --git a/mp_chart/lib/mp/core/render/candle_stick_chart_renderer.dart b/mp_chart/lib/mp/core/render/candle_stick_chart_renderer.dart index 3a48a386..afd05876 100644 --- a/mp_chart/lib/mp/core/render/candle_stick_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/candle_stick_chart_renderer.dart @@ -19,11 +19,11 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; class CandleStickChartRenderer extends LineScatterCandleRadarRenderer { CandleDataProvider? _porvider; - List _shadowBuffers = List(8); - List _bodyBuffers = List(4); - List _rangeBuffers = List(4); - List _openBuffers = List(4); - List _closeBuffers = List(4); + List _shadowBuffers = []..length = (8); + List _bodyBuffers = []..length = (4); + List _rangeBuffers = []..length = (4); + List _openBuffers = []..length = (4); + List _closeBuffers = []..length = (4); CandleStickChartRenderer(CandleDataProvider chart, Animator? animator, ViewPortHandler? viewPortHandler) diff --git a/mp_chart/lib/mp/core/render/chevron_down_shape_renderer.dart b/mp_chart/lib/mp/core/render/chevron_down_shape_renderer.dart index 5facb67f..0c152127 100644 --- a/mp_chart/lib/mp/core/render/chevron_down_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/chevron_down_shape_renderer.dart @@ -16,7 +16,7 @@ class ChevronDownShapeRenderer implements IShapeRenderer { Paint? renderPaint) { final double shapeHalf = dataSet.getScatterShapeSize() / 2; - renderPaint + renderPaint! ..style = PaintingStyle.stroke ..strokeWidth = Utils.convertDpToPixel(1)!; diff --git a/mp_chart/lib/mp/core/render/chevron_up_shape_renderer.dart b/mp_chart/lib/mp/core/render/chevron_up_shape_renderer.dart index 903d51b1..04a8efa2 100644 --- a/mp_chart/lib/mp/core/render/chevron_up_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/chevron_up_shape_renderer.dart @@ -16,7 +16,7 @@ class ChevronUpShapeRenderer implements IShapeRenderer { Paint? renderPaint) { final double shapeHalf = dataSet.getScatterShapeSize() / 2; - renderPaint + renderPaint! ..style = PaintingStyle.stroke ..strokeWidth = Utils.convertDpToPixel(1)!; diff --git a/mp_chart/lib/mp/core/render/circle_shape_renderer.dart b/mp_chart/lib/mp/core/render/circle_shape_renderer.dart index 17a3c334..698f3753 100644 --- a/mp_chart/lib/mp/core/render/circle_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/circle_shape_renderer.dart @@ -26,7 +26,7 @@ class CircleShapeRenderer implements IShapeRenderer { final Color shapeHoleColor = dataSet.getScatterShapeHoleColor(); if (shapeSize > 0.0) { - renderPaint + renderPaint! ..style = PaintingStyle.stroke ..strokeWidth = shapeStrokeSize; diff --git a/mp_chart/lib/mp/core/render/combined_chart_renderer.dart b/mp_chart/lib/mp/core/render/combined_chart_renderer.dart index 3924f981..aa1ef1df 100644 --- a/mp_chart/lib/mp/core/render/combined_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/combined_chart_renderer.dart @@ -13,10 +13,15 @@ import 'package:mp_chart/mp/core/render/scatter_chart_renderer.dart'; import 'package:mp_chart/mp/core/view_port.dart'; import 'package:mp_chart/mp/painter/combined_chart_painter.dart'; import 'package:mp_chart/mp/painter/painter.dart'; +import 'package:mp_chart/mp/core/data_interfaces/i_bar_line_scatter_candle_bubble_data_set.dart'; +import 'package:mp_chart/mp/core/data/bar_line_scatter_candle_bubble_data.dart'; +import 'package:mp_chart/mp/core/entry/entry.dart'; + + class CombinedChartRenderer extends DataRenderer { /// all rederers for the different kinds of data this combined-renderer can draw - List _renderers = List(); + List _renderers = List.empty(); ChartPainter? _painter; @@ -90,7 +95,7 @@ class CombinedChartRenderer extends DataRenderer { for (DataRenderer renderer in _renderers) renderer.drawExtras(c); } - List mHighlightBuffer = List(); + List mHighlightBuffer = List.empty(); @override void drawHighlighted(Canvas c, List? indices) { diff --git a/mp_chart/lib/mp/core/render/cross_shape_renderer.dart b/mp_chart/lib/mp/core/render/cross_shape_renderer.dart index d6c67958..4af54d5b 100644 --- a/mp_chart/lib/mp/core/render/cross_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/cross_shape_renderer.dart @@ -16,7 +16,7 @@ class CrossShapeRenderer implements IShapeRenderer { Paint? renderPaint) { final double shapeHalf = dataSet.getScatterShapeSize() / 2; - renderPaint + renderPaint! ..style = PaintingStyle.stroke ..strokeWidth = Utils.convertDpToPixel(1)!; diff --git a/mp_chart/lib/mp/core/render/horizontal_bar_chart_renderer.dart b/mp_chart/lib/mp/core/render/horizontal_bar_chart_renderer.dart index 67b471d6..31310983 100644 --- a/mp_chart/lib/mp/core/render/horizontal_bar_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/horizontal_bar_chart_renderer.dart @@ -28,7 +28,7 @@ class HorizontalBarChartRenderer extends BarChartRenderer { @override void initBuffers() { BarData barData = provider!.getBarData()!; - barBuffers = List(barData.getDataSetCount()); + barBuffers = []..length = (barData.getDataSetCount()); for (int i = 0; i < barBuffers!.length; i++) { IBarDataSet set = barData.getDataSetByIndex(i)!; @@ -45,7 +45,7 @@ class HorizontalBarChartRenderer extends BarChartRenderer { void drawDataSet(Canvas c, IBarDataSet dataSet, int index) { Transformer? trans = provider!.getTransformer(dataSet.getAxisDependency()); - barBorderPaint + barBorderPaint! ..color = dataSet.getBarBorderColor() ..strokeWidth = Utils.convertDpToPixel(dataSet.getBarBorderWidth())!; @@ -56,7 +56,7 @@ class HorizontalBarChartRenderer extends BarChartRenderer { // draw the bar shadow before the values if (provider!.isDrawBarShadowEnabled()) { - shadowPaint..color = dataSet.getBarShadowColor(); + shadowPaint!..color = dataSet.getBarShadowColor(); BarData barData = provider!.getBarData()!; @@ -107,7 +107,7 @@ class HorizontalBarChartRenderer extends BarChartRenderer { final bool isSingleColor = dataSet.getColors()!.length == 1; if (isSingleColor) { - renderPaint..color = dataSet.getColor1(); + renderPaint!..color = dataSet.getColor1(); } for (int j = 0; j < buffer.size(); j += 4) { @@ -118,7 +118,7 @@ class HorizontalBarChartRenderer extends BarChartRenderer { if (!isSingleColor) { // Set the color for the currently drawn value. If the index // is out of bounds, reuse colors. - renderPaint..color = (dataSet.getColor2(j ~/ 4)); + renderPaint!..color = (dataSet.getColor2(j ~/ 4)); } c.drawRect( @@ -290,7 +290,7 @@ class HorizontalBarChartRenderer extends BarChartRenderer { c, Offset(px, py), entry.mIcon!, Size(15, 15), drawPaint!); } } else { - List transformed = List(vals.length * 2); + List transformed = []..length = (vals.length * 2); double posY = 0; double negY = -entry.negativeSum!; diff --git a/mp_chart/lib/mp/core/render/legend_renderer.dart b/mp_chart/lib/mp/core/render/legend_renderer.dart index a2fbe0e4..d04b49ce 100644 --- a/mp_chart/lib/mp/core/render/legend_renderer.dart +++ b/mp_chart/lib/mp/core/render/legend_renderer.dart @@ -59,14 +59,14 @@ class LegendRenderer extends Renderer { _legendLabelPaint = value; } - List _computedEntries = List(16); + List _computedEntries = []..length = 16; /// Prepares the legend and calculates all needed forms, labels and colors. /// /// @param data void computeLegend(ChartData? data) { if (!_legend!.isLegendCustom) { - _computedEntries = List(); + _computedEntries = List.empty(); // loop for building up the colors and labels used in the legend for (int i = 0; i < data!.getDataSetCount(); i++) { @@ -223,7 +223,7 @@ class LegendRenderer extends Renderer { originPosX = viewPortHandler!.contentLeft() + xoffset!; if (direction == LegendDirection.RIGHT_TO_LEFT) - originPosX += _legend!.neededWidth; + originPosX = originPosX! + _legend!.neededWidth; break; @@ -300,13 +300,13 @@ class LegendRenderer extends Renderer { if (i < calculatedLabelBreakPoints.length && calculatedLabelBreakPoints[i]!) { posX = originPosX; - posY += labelLineHeight + labelLineSpacing; + posY = posY! + labelLineHeight + labelLineSpacing; } if (posX == originPosX && horizontalAlignment == LegendHorizontalAlignment.CENTER && lineIndex < calculatedLineSizes.length) { - posX += (direction == LegendDirection.RIGHT_TO_LEFT + posX = posX! + (direction == LegendDirection.RIGHT_TO_LEFT ? calculatedLineSizes[lineIndex]!.width : -calculatedLineSizes[lineIndex]!.width) / 2; @@ -316,21 +316,22 @@ class LegendRenderer extends Renderer { bool isStacked = e.label == null; // grouped forms have null labels if (drawingForm) { - if (direction == LegendDirection.RIGHT_TO_LEFT) posX -= formSize!; + if (direction == LegendDirection.RIGHT_TO_LEFT) posX = posX! - formSize!; drawForm(c, posX, posY! + formYOffset, e, _legend); - if (direction == LegendDirection.LEFT_TO_RIGHT) posX += formSize!; + if (direction == LegendDirection.LEFT_TO_RIGHT) posX = posX! + formSize!; } if (!isStacked) { - if (drawingForm) - posX += direction == LegendDirection.RIGHT_TO_LEFT + if (drawingForm){ + posX = posX! + direction.index; + posX == LegendDirection.RIGHT_TO_LEFT ? -formToTextSpace! : formToTextSpace!; - + } if (direction == LegendDirection.RIGHT_TO_LEFT) - posX -= calculatedLabelSizes[i]!.width; + posX = posX! - calculatedLabelSizes[i]!.width; drawLabel(c, posX!, posY! + labelLineHeight, e.label); @@ -341,7 +342,8 @@ class LegendRenderer extends Renderer { ? -xEntrySpace! : xEntrySpace!; } else - posX += direction == LegendDirection.RIGHT_TO_LEFT + posX = posX! + direction.index; + posX == LegendDirection.RIGHT_TO_LEFT ? -stackSpace! : stackSpace!; } @@ -389,9 +391,9 @@ class LegendRenderer extends Renderer { if (drawingForm) { if (direction == LegendDirection.LEFT_TO_RIGHT) - posX += stack; + posX = posX! + stack; else - posX -= formSize! - stack; + posX = posX! - formSize! - stack; drawForm(c, posX, posY + formYOffset, e, _legend); @@ -399,14 +401,16 @@ class LegendRenderer extends Renderer { } if (e.label != null) { - if (drawingForm && !wasStacked) - posX += direction == LegendDirection.LEFT_TO_RIGHT + if (drawingForm && !wasStacked){ + posX = posX! + direction.index; + posX == LegendDirection.LEFT_TO_RIGHT ? formToTextSpace! : -formToTextSpace!; + } else if (wasStacked) posX = originPosX; if (direction == LegendDirection.RIGHT_TO_LEFT) - posX -= Utils.calcTextWidth(_legendLabelPaint!, e.label); + posX = posX! - Utils.calcTextWidth(_legendLabelPaint!, e.label); if (!wasStacked) { drawLabel(c, posX!, posY + labelLineHeight, e.label); diff --git a/mp_chart/lib/mp/core/render/line_chart_renderer.dart b/mp_chart/lib/mp/core/render/line_chart_renderer.dart index a52fb95a..52289acb 100644 --- a/mp_chart/lib/mp/core/render/line_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/line_chart_renderer.dart @@ -95,7 +95,7 @@ class LineChartRenderer extends LineRadarRenderer { void drawDataSet(Canvas c, ILineDataSet dataSet) { if (dataSet.getEntryCount() < 1) return; - renderPaint..strokeWidth = dataSet.getLineWidth()!; + renderPaint!..strokeWidth = dataSet.getLineWidth()!; switch (dataSet.getMode()) { case Mode.LINEAR: @@ -119,7 +119,7 @@ class LineChartRenderer extends LineRadarRenderer { xBounds!.set(_provider!, dataSet); - List list = List(); + List list = List.empty(); if (xBounds!.range! >= 1) { Entry prev = dataSet.getEntryForIndex(xBounds!.min)!; @@ -148,7 +148,7 @@ class LineChartRenderer extends LineRadarRenderer { return; } - renderPaint + renderPaint! ..color = dataSet.getColor1() ..style = PaintingStyle.stroke; @@ -195,7 +195,7 @@ class LineChartRenderer extends LineRadarRenderer { double intensity = dataSet.getCubicIntensity(); - List list = List(); + List list = List.empty(); if (xBounds!.range! >= 1) { double prevDx = 0; @@ -249,7 +249,7 @@ class LineChartRenderer extends LineRadarRenderer { return; } - renderPaint + renderPaint! ..color = dataSet.getColor1() ..style = PaintingStyle.stroke; @@ -291,7 +291,7 @@ class LineChartRenderer extends LineRadarRenderer { double fillMin = dataSet.getFillFormatter().getFillLinePosition(dataSet, _provider); - List list = List(); + List list = List.empty(); list.add(dataSet.getEntryForIndex(bounds.min! + bounds.range!)!.x); list.add(fillMin); list.add(dataSet.getEntryForIndex(bounds.min)!.x); @@ -319,7 +319,7 @@ class LineChartRenderer extends LineRadarRenderer { // } } - List mLineBuffer = List(4); + List mLineBuffer = []..length = 4; /// Draws a normal line. /// @@ -335,7 +335,7 @@ class LineChartRenderer extends LineRadarRenderer { double phaseY = animator!.getPhaseY(); - renderPaint..style = PaintingStyle.stroke; + renderPaint!..style = PaintingStyle.stroke; // Canvas canvas = null; // @@ -356,7 +356,7 @@ class LineChartRenderer extends LineRadarRenderer { // more than 1 color if (dataSet.getColors()!.length > 1) { if (mLineBuffer.length <= pointsPerEntryPair * 2) - mLineBuffer = List(pointsPerEntryPair * 4); + mLineBuffer = []..length = (pointsPerEntryPair * 4); for (int j = xBounds!.min!; j <= xBounds!.range! + xBounds!.min!; j++) { Entry? e = dataSet.getEntryForIndex(j); @@ -397,7 +397,7 @@ class LineChartRenderer extends LineRadarRenderer { !viewPortHandler!.isInBoundsBottom(mLineBuffer[3]))) continue; // get the color that is set for this line-segment - renderPaint..color = dataSet.getColor2(j); + renderPaint!..color = dataSet.getColor2(j); CanvasUtils.drawLines( canvas, mLineBuffer, 0, pointsPerEntryPair * 2, renderPaint, @@ -408,7 +408,7 @@ class LineChartRenderer extends LineRadarRenderer { if (mLineBuffer.length < max((entryCount) * pointsPerEntryPair, pointsPerEntryPair) * 2) - mLineBuffer = List( + mLineBuffer = []..length = ( max((entryCount) * pointsPerEntryPair, pointsPerEntryPair) * 4); Entry? e1, e2; @@ -444,7 +444,7 @@ class LineChartRenderer extends LineRadarRenderer { pointsPerEntryPair) * 2; - renderPaint..color = dataSet.getColor1(); + renderPaint!..color = dataSet.getColor1(); CanvasUtils.drawLines(canvas, mLineBuffer, 0, size, renderPaint, effect: dataSet.getDashPathEffect()); @@ -515,7 +515,7 @@ class LineChartRenderer extends LineRadarRenderer { final double phaseY = animator!.getPhaseY(); final bool isDrawSteppedEnabled = dataSet.getMode() == Mode.STEPPED; - List points = List(); + List points = List.empty(); final Path filled = outputPath; filled.reset(); @@ -658,11 +658,11 @@ class LineChartRenderer extends LineRadarRenderer { // HashMap mImageCaches = HashMap<>(); /// buffer for drawing the circles - List mCirclesBuffer = List(2); + List mCirclesBuffer = []..length = 2; Map mImageCaches = Map(); void drawCircles(Canvas c) { - renderPaint..style = PaintingStyle.fill; + renderPaint!..style = PaintingStyle.fill; double phaseY = animator!.getPhaseY(); @@ -679,7 +679,7 @@ class LineChartRenderer extends LineRadarRenderer { !dataSet.isDrawCirclesEnabled() || dataSet.getEntryCount() == 0) continue; - _circlePaintInner..color = dataSet.getCircleHoleColor(); + _circlePaintInner!..color = dataSet.getCircleHoleColor(); trans = _provider!.getTransformer(dataSet.getAxisDependency()); xBounds!.set(_provider!, dataSet); @@ -713,7 +713,7 @@ class LineChartRenderer extends LineRadarRenderer { double? circleRadius = dataSet.getCircleRadius(); double? circleHoleRadius = dataSet.getCircleHoleRadius(); - renderPaint..color = dataSet.getCircleColor(i % colorCount); + renderPaint!..color = dataSet.getCircleColor(i % colorCount); if (drawTransparentCircleHole) { c.drawCircle(Offset(mCirclesBuffer[0]!, mCirclesBuffer[1]!), diff --git a/mp_chart/lib/mp/core/render/line_radar_renderer.dart b/mp_chart/lib/mp/core/render/line_radar_renderer.dart index 37dfcd31..19dd8096 100644 --- a/mp_chart/lib/mp/core/render/line_radar_renderer.dart +++ b/mp_chart/lib/mp/core/render/line_radar_renderer.dart @@ -53,14 +53,14 @@ abstract class LineRadarRenderer extends LineScatterCandleRadarRenderer { Color previousColor = renderPaint!.color; // set - renderPaint + renderPaint! ..style = PaintingStyle.fill ..color = Color(color); c.drawPath(filledPath, renderPaint!); // restore - renderPaint + renderPaint! ..style = previous ..color = previousColor; // } @@ -88,7 +88,7 @@ abstract class LineRadarRenderer extends LineScatterCandleRadarRenderer { ); Rect bounds = filledPath.getBounds(); // set - renderPaint + renderPaint! ..style = PaintingStyle.fill ..shader = gradient.createShader(Rect.fromLTWH( bounds.left, @@ -100,7 +100,7 @@ abstract class LineRadarRenderer extends LineScatterCandleRadarRenderer { c.drawPath(filledPath, renderPaint!); // restore - renderPaint + renderPaint! ..style = previous ..color = previousColor; // } diff --git a/mp_chart/lib/mp/core/render/line_scatter_candle_radar_renderer.dart b/mp_chart/lib/mp/core/render/line_scatter_candle_radar_renderer.dart index 8c9a2cb4..e5e1d81f 100644 --- a/mp_chart/lib/mp/core/render/line_scatter_candle_radar_renderer.dart +++ b/mp_chart/lib/mp/core/render/line_scatter_candle_radar_renderer.dart @@ -22,7 +22,7 @@ abstract class LineScatterCandleRadarRenderer void drawHighlightLines( Canvas c, double? x, double? y, ILineScatterCandleRadarDataSet set) { // set color and stroke-width - highlightPaint + highlightPaint! ..color = set.getHighLightColor() ..strokeWidth = set.getHighlightLineWidth()!; diff --git a/mp_chart/lib/mp/core/render/pie_chart_renderer.dart b/mp_chart/lib/mp/core/render/pie_chart_renderer.dart index 29486452..81c9f35f 100644 --- a/mp_chart/lib/mp/core/render/pie_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/pie_chart_renderer.dart @@ -42,7 +42,7 @@ class PieChartRenderer extends DataRenderer { // ignore: unused_field Rect _centerTextLastBounds = Rect.zero; - List _rectBuffer = List() + List _rectBuffer = [] ..add(Rect.zero) ..add(Rect.zero) ..add(Rect.zero); @@ -229,7 +229,7 @@ class PieChartRenderer extends DataRenderer { } } - renderPaint..color = _painter!.getHoleColor(); + renderPaint!..color = _painter!.getHoleColor(); c.drawCircle(Offset(center.x!, center.y!), radius, renderPaint!); final double? sliceSpace = @@ -256,7 +256,7 @@ class PieChartRenderer extends DataRenderer { final bool accountForSliceSpacing = sliceSpace! > 0.0 && sliceAngle! <= 180.0; - renderPaint..color = dataSet.getColor2(j); + renderPaint!..color = dataSet.getColor2(j); final double sliceSpaceAngleOuter = visibleAngleCount == 1 ? 0.0 : sliceSpace / (Utils.FDEG2RAD * radius); @@ -406,7 +406,7 @@ class PieChartRenderer extends DataRenderer { angle += sliceAngle * phaseX; } - renderPaint..color = _painter!.getHoleColor(); + renderPaint!..color = _painter!.getHoleColor(); c.drawCircle( Offset(center.x!, center.y!), mInnerRectBuffer.width / 2, renderPaint!); @@ -477,7 +477,7 @@ class PieChartRenderer extends DataRenderer { int entryCount = dataSet.getEntryCount(); - _valueLinePaint + _valueLinePaint! ..color = dataSet.getValueLineColor() ..strokeWidth = Utils.convertDpToPixel(dataSet.getValueLineWidth())!; @@ -576,7 +576,7 @@ class PieChartRenderer extends DataRenderer { if (dataSet.getValueLineColor() != ColorUtils.COLOR_NONE) { if (dataSet.isUsingSliceColorAsValueLineColor()) { - _valueLinePaint..color = dataSet.getColor2(j); + _valueLinePaint!..color = dataSet.getColor2(j); } c.drawLine(Offset(pt0x, pt0y), Offset(pt1x, pt1y), _valueLinePaint!); @@ -1051,7 +1051,7 @@ class PieChartRenderer extends DataRenderer { // mBitmapCanvas.drawPath(mPathBuffer, renderPaint); c.drawPath(mPathBuffer, renderPaint!); - renderPaint..color = _painter!.getHoleColor(); + renderPaint!..color = _painter!.getHoleColor(); c.drawOval(mInnerRectBuffer, renderPaint!); } @@ -1131,7 +1131,7 @@ class PieChartRenderer extends DataRenderer { /// @param color void setTransparentCircleColor(Color color) { Paint p = transparentCirclePaint!; - p.color = Color.fromARGB(p.color?.alpha == null ? 255 : p.color?.alpha, + p.color = Color.fromARGB(p.color.alpha == null ? 255 : p.color.alpha, color.red, color.green, color.blue); } diff --git a/mp_chart/lib/mp/core/render/radar_chart_renderer.dart b/mp_chart/lib/mp/core/render/radar_chart_renderer.dart index 49ac86c7..f3ec0f23 100644 --- a/mp_chart/lib/mp/core/render/radar_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/radar_chart_renderer.dart @@ -134,7 +134,7 @@ class RadarChartRenderer extends LineRadarRenderer { // } } - renderPaint + renderPaint! ..strokeWidth = dataSet.getLineWidth()! ..style = PaintingStyle.stroke; @@ -202,7 +202,7 @@ class RadarChartRenderer extends LineRadarRenderer { sliceangle * j * phaseX + _painter!.getRotationAngle(), pIcon); //noinspection SuspiciousNameCombination - pIcon.y += iconsOffset.x!; + pIcon.y = pIcon.y! + iconsOffset.x!; CanvasUtils.drawImage(c, Offset(pIcon.x!, pIcon.y!), entry.mIcon!, Size(15, 15), drawPaint!); @@ -244,7 +244,7 @@ class RadarChartRenderer extends LineRadarRenderer { // draw the web lines that come from the center var color = _painter!.webColor!; - _webPaint + _webPaint! ..strokeWidth = _painter!.webLineWidth ..color = Color.fromARGB(_painter!.webAlpha, color.red, color.green, color.blue); @@ -264,7 +264,7 @@ class RadarChartRenderer extends LineRadarRenderer { // draw the inner-web color = _painter!.webColorInner!; - _webPaint + _webPaint! ..strokeWidth = _painter!.innerWebLineWidth ..color = Color.fromARGB(_painter!.webAlpha, color.red, color.green, color.blue); @@ -380,14 +380,14 @@ class RadarChartRenderer extends LineRadarRenderer { point.x! + innerRadius, point.y! + innerRadius)); // p.addCircle(point.x, point.y, innerRadius, Path.Direction.CCW); } - _highlightCirclePaint + _highlightCirclePaint! ..color = fillColor ..style = PaintingStyle.fill; c.drawPath(p, _highlightCirclePaint!); } if (strokeColor != ColorUtils.COLOR_NONE) { - _highlightCirclePaint + _highlightCirclePaint! ..color = strokeColor ..style = PaintingStyle.stroke ..strokeWidth = Utils.convertDpToPixel(strokeWidth)!; diff --git a/mp_chart/lib/mp/core/render/scatter_chart_renderer.dart b/mp_chart/lib/mp/core/render/scatter_chart_renderer.dart index 0d632764..f2291727 100644 --- a/mp_chart/lib/mp/core/render/scatter_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/scatter_chart_renderer.dart @@ -41,7 +41,7 @@ class ScatterChartRenderer extends LineScatterCandleRadarRenderer { } } - List mPixelBuffer = List(2); + List mPixelBuffer = []..length = 2; void drawDataSet(Canvas c, IScatterDataSet dataSet) { if (dataSet.getEntryCount() < 1) return; diff --git a/mp_chart/lib/mp/core/render/square_shape_renderer.dart b/mp_chart/lib/mp/core/render/square_shape_renderer.dart index c1ef9009..df9086e4 100644 --- a/mp_chart/lib/mp/core/render/square_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/square_shape_renderer.dart @@ -26,7 +26,7 @@ class SquareShapeRenderer implements IShapeRenderer { final Color shapeHoleColor = dataSet.getScatterShapeHoleColor(); if (shapeSize > 0.0) { - renderPaint + renderPaint! ..style = PaintingStyle.stroke ..strokeWidth = shapeStrokeSize; diff --git a/mp_chart/lib/mp/core/render/x_axis_renderer.dart b/mp_chart/lib/mp/core/render/x_axis_renderer.dart index b30fe90b..039e8cdb 100644 --- a/mp_chart/lib/mp/core/render/x_axis_renderer.dart +++ b/mp_chart/lib/mp/core/render/x_axis_renderer.dart @@ -184,7 +184,7 @@ class XAxisRenderer extends AxisRenderer { final double labelRotationAngleDegrees = _xAxis!.labelRotationAngle; bool centeringEnabled = _xAxis!.isCenterAxisLabelsEnabled(); - List positions = List(_xAxis!.entryCount * 2); + List positions = []..length = (_xAxis!.entryCount * 2); for (int i = 0; i < positions.length; i += 2) { // only fill x values @@ -219,7 +219,7 @@ class XAxisRenderer extends AxisRenderer { } else if (i == 0) { double width = Utils.calcTextWidth(axisLabelPaint!, label).toDouble(); - x += width / 2; + x = x! + width / 2; } } @@ -249,7 +249,7 @@ class XAxisRenderer extends AxisRenderer { } Path mRenderGridLinesPath = Path(); - List mRenderGridLinesBuffer = List(2); + List mRenderGridLinesBuffer = []..length = 2; @override void renderGridLines(Canvas c) { @@ -259,7 +259,7 @@ class XAxisRenderer extends AxisRenderer { c.clipRect(getGridClippingRect()); if (mRenderGridLinesBuffer.length != axis!.entryCount * 2) { - mRenderGridLinesBuffer = List(_xAxis!.entryCount * 2); + mRenderGridLinesBuffer = []..length = (_xAxis!.entryCount * 2); } List positions = mRenderGridLinesBuffer; @@ -320,7 +320,7 @@ class XAxisRenderer extends AxisRenderer { path.reset(); } - List mRenderLimitLinesBuffer = List(2); + List mRenderLimitLinesBuffer = []..length = 2; Rect mLimitLineClippingRect = Rect.zero; /// Draws the LimitLines associated with this axis to the screen. @@ -369,7 +369,7 @@ class XAxisRenderer extends AxisRenderer { } } - List _limitLineSegmentsBuffer = List(4); + List _limitLineSegmentsBuffer = []..length = 4; Path _limitLinePath = Path(); void renderLimitLineLine(Canvas c, LimitLine limitLine, @@ -385,7 +385,7 @@ class XAxisRenderer extends AxisRenderer { _limitLinePath.lineTo( _limitLineSegmentsBuffer[2]!, _limitLineSegmentsBuffer[3]!); - limitLinePaint + limitLinePaint! ..style = PaintingStyle.stroke ..color = limitLine.lineColor ..strokeWidth = limitLine.lineWidth!; diff --git a/mp_chart/lib/mp/core/render/x_axis_renderer_horizontal_bar_chart.dart b/mp_chart/lib/mp/core/render/x_axis_renderer_horizontal_bar_chart.dart index 830562b8..a1c39a8f 100644 --- a/mp_chart/lib/mp/core/render/x_axis_renderer_horizontal_bar_chart.dart +++ b/mp_chart/lib/mp/core/render/x_axis_renderer_horizontal_bar_chart.dart @@ -122,7 +122,7 @@ class XAxisRendererHorizontalBarChart extends XAxisRenderer { final double labelRotationAngleDegrees = xAxis!.labelRotationAngle; bool centeringEnabled = xAxis!.isCenterAxisLabelsEnabled(); - List positions = List(xAxis!.entryCount * 2); + List positions = []..length = (xAxis!.entryCount * 2); for (int i = 0; i < positions.length; i += 2) { // only fill x values @@ -231,7 +231,7 @@ class XAxisRendererHorizontalBarChart extends XAxisRenderer { viewPortHandler!.getContentRect().bottom + l.lineWidth!); c.clipRect(mLimitLineClippingRect); - limitLinePaint + limitLinePaint! ..style = PaintingStyle.stroke ..color = l.lineColor ..strokeWidth = l.lineWidth!; diff --git a/mp_chart/lib/mp/core/render/x_shape_renderer.dart b/mp_chart/lib/mp/core/render/x_shape_renderer.dart index 793c9781..71983d5d 100644 --- a/mp_chart/lib/mp/core/render/x_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/x_shape_renderer.dart @@ -16,12 +16,12 @@ class XShapeRenderer implements IShapeRenderer { Paint? renderPaint) { final double shapeHalf = dataSet.getScatterShapeSize() / 2; - renderPaint + renderPaint! ..style = PaintingStyle.stroke ..strokeWidth = Utils.convertDpToPixel(1)!; c.drawLine(Offset(posX! - shapeHalf, posY! - shapeHalf), - Offset(posX + shapeHalf, posY + shapeHalf), renderPaint!); + Offset(posX + shapeHalf, posY + shapeHalf), renderPaint); c.drawLine(Offset(posX + shapeHalf, posY - shapeHalf), Offset(posX - shapeHalf, posY + shapeHalf), renderPaint); } diff --git a/mp_chart/lib/mp/core/render/y_axis_renderer.dart b/mp_chart/lib/mp/core/render/y_axis_renderer.dart index 0e697262..eace766b 100644 --- a/mp_chart/lib/mp/core/render/y_axis_renderer.dart +++ b/mp_chart/lib/mp/core/render/y_axis_renderer.dart @@ -173,7 +173,7 @@ class YAxisRenderer extends AxisRenderer { List positions = getTransformedPositions(); - gridPaint + gridPaint! ..style = PaintingStyle.stroke ..color = _yAxis!.gridColor ..strokeWidth = _yAxis!.gridLineWidth; @@ -227,7 +227,7 @@ class YAxisRenderer extends AxisRenderer { return p; } - List mGetTransformedPositionsBuffer = List(2); + List mGetTransformedPositionsBuffer = []..length = 2; /// Transforms the values contained in the axis entries to screen pixels and returns them in form of a double array /// of x- and y-coordinates. @@ -235,7 +235,7 @@ class YAxisRenderer extends AxisRenderer { /// @return List getTransformedPositions() { if (mGetTransformedPositionsBuffer.length != _yAxis!.entryCount * 2) { - mGetTransformedPositionsBuffer = List(_yAxis!.entryCount * 2); + mGetTransformedPositionsBuffer = []..length = (_yAxis!.entryCount * 2); } List positions = mGetTransformedPositionsBuffer; @@ -265,7 +265,7 @@ class YAxisRenderer extends AxisRenderer { // draw zero line MPPointD pos = trans!.getPixelForValues(0, 0); - _zeroLinePaint + _zeroLinePaint! ..style = PaintingStyle.stroke ..color = _yAxis!.zeroLineColor ..strokeWidth = _yAxis!.zeroLineWidth; @@ -283,7 +283,7 @@ class YAxisRenderer extends AxisRenderer { } Path _renderLimitLines = Path(); - List _renderLimitLinesBuffer = List(2); + List _renderLimitLinesBuffer = []..length = 2; Rect _limitLineClippingRect = Rect.zero; // ignore: unnecessary_getters_setters @@ -322,7 +322,7 @@ class YAxisRenderer extends AxisRenderer { viewPortHandler!.getContentRect().bottom + l.lineWidth!); c.clipRect(_limitLineClippingRect); - limitLinePaint + limitLinePaint! ..style = PaintingStyle.stroke ..strokeWidth = l.lineWidth! ..color = l.lineColor; diff --git a/mp_chart/lib/mp/core/render/y_axis_renderer_horizontal_bar_chart.dart b/mp_chart/lib/mp/core/render/y_axis_renderer_horizontal_bar_chart.dart index 7ebea6b5..d97130a6 100644 --- a/mp_chart/lib/mp/core/render/y_axis_renderer_horizontal_bar_chart.dart +++ b/mp_chart/lib/mp/core/render/y_axis_renderer_horizontal_bar_chart.dart @@ -162,7 +162,7 @@ class YAxisRendererHorizontalBarChart extends YAxisRenderer { @override List getTransformedPositions() { if (mGetTransformedPositionsBuffer.length != yAxis!.entryCount * 2) { - mGetTransformedPositionsBuffer = List(yAxis!.entryCount * 2); + mGetTransformedPositionsBuffer = []..length = (yAxis!.entryCount * 2); } List positions = mGetTransformedPositionsBuffer; @@ -207,7 +207,7 @@ class YAxisRendererHorizontalBarChart extends YAxisRenderer { // draw zero line MPPointD pos = trans!.getPixelForValues(0, 0); - zeroLinePaint + zeroLinePaint! ..color = yAxis!.zeroLineColor ..strokeWidth = yAxis!.zeroLineWidth; @@ -224,7 +224,7 @@ class YAxisRendererHorizontalBarChart extends YAxisRenderer { } Path mRenderLimitLinesPathBuffer = Path(); - List mRenderLimitLinesBuffer = List(4); + List mRenderLimitLinesBuffer = []..length = 4; /// Draws the LimitLines associated with this axis to the screen. /// This is the standard XAxis renderer using the YAxis limit lines. @@ -268,7 +268,7 @@ class YAxisRendererHorizontalBarChart extends YAxisRenderer { limitLinePath.moveTo(pts[0]!, pts[1]!); limitLinePath.lineTo(pts[2]!, pts[3]!); - limitLinePaint + limitLinePaint! ..style = PaintingStyle.stroke ..color = l.lineColor ..strokeWidth = l.lineWidth!; diff --git a/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart b/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart index 5b85f9df..5481a3d8 100644 --- a/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart +++ b/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart @@ -30,8 +30,8 @@ class YAxisRendererRadarChart extends YAxisRenderer { double range = (yMax - yMin).abs(); if (labelCount == 0 || range <= 0 || range.isInfinite) { - axis!.entries = List(); - axis!.centeredEntries = List(); + axis!.entries = List.empty(); + axis!.centeredEntries = List.empty(); axis!.entryCount = 0; return; } @@ -65,7 +65,7 @@ class YAxisRendererRadarChart extends YAxisRenderer { if (axis!.entries.length < labelCount) { // Ensure stops contains at least numStops elements. - axis!.entries = List(labelCount); + axis!.entries = []..length = labelCount; } double v = min; @@ -104,7 +104,7 @@ class YAxisRendererRadarChart extends YAxisRenderer { if (axis!.entries.length < n) { // Ensure stops contains at least numStops elements. - axis!.entries = List(n); + axis!.entries = []..length = n; } f = first; @@ -126,7 +126,7 @@ class YAxisRendererRadarChart extends YAxisRenderer { if (centeringEnabled) { if (axis!.centeredEntries.length < n) { - axis!.centeredEntries = List(n); + axis!.centeredEntries = []..length = n; } double offset = (axis!.entries[1]! - axis!.entries[0]!) / 2; @@ -196,7 +196,7 @@ class YAxisRendererRadarChart extends YAxisRenderer { if (!l.enabled) continue; - limitLinePaint + limitLinePaint! ..style = PaintingStyle.stroke ..color = (l.lineColor) ..strokeWidth = l.lineWidth!; diff --git a/mp_chart/lib/mp/painter/combined_chart_painter.dart b/mp_chart/lib/mp/painter/combined_chart_painter.dart index 93446414..49866fdf 100644 --- a/mp_chart/lib/mp/painter/combined_chart_painter.dart +++ b/mp_chart/lib/mp/painter/combined_chart_painter.dart @@ -31,7 +31,7 @@ import 'package:mp_chart/mp/painter/bar_line_chart_painter.dart'; enum DrawOrder { BAR, BUBBLE, LINE, CANDLE, SCATTER } class CombinedChartPainter extends BarLineChartBasePainter - implements CombinedDataProvider? { + implements CombinedDataProvider { /// if set to true, all values are drawn above their bars, instead of below /// their top bool _drawValueAboveBar = true; From cba181e44bad7dff0f8666c0ec29a4268fc5b22a Mon Sep 17 00:00:00 2001 From: Takuro KAKOI Date: Fri, 24 Sep 2021 22:41:51 +0900 Subject: [PATCH 04/29] update --- mp_chart/lib/mp/core/animator.dart | 18 +++++------ mp_chart/lib/mp/core/axis/axis_base.dart | 6 ++-- .../lib/mp/core/buffer/abstract_buffer.dart | 2 +- mp_chart/lib/mp/core/data/chart_data.dart | 6 ++-- mp_chart/lib/mp/core/data/combined_data.dart | 4 +-- mp_chart/lib/mp/core/data/pie_data.dart | 2 +- .../mp/core/data_interfaces/i_data_set.dart | 6 ++-- .../i_line_radar_data_set.dart | 4 +-- .../i_line_scatter_candle_radar_data_set.dart | 2 +- .../lib/mp/core/data_set/bar_data_set.dart | 4 +-- ...r_line_scatter_candle_bubble_data_set.dart | 2 +- .../lib/mp/core/data_set/base_data_set.dart | 30 +++++++++---------- .../lib/mp/core/data_set/bubble_data_set.dart | 2 +- .../lib/mp/core/data_set/candle_data_set.dart | 2 +- mp_chart/lib/mp/core/data_set/data_set.dart | 12 ++++---- .../lib/mp/core/data_set/line_data_set.dart | 6 ++-- .../mp/core/data_set/line_radar_data_set.dart | 2 +- .../line_scatter_candle_radar_data_set.dart | 2 +- .../lib/mp/core/data_set/pie_data_set.dart | 2 +- .../lib/mp/core/data_set/radar_data_set.dart | 2 +- .../mp/core/data_set/scatter_data_set.dart | 2 +- .../mp/core/highlight/chart_hightlighter.dart | 4 +-- .../highlight/horizontal_bar_highlighter.dart | 2 +- .../core/highlight/pie_radar_highlighter.dart | 2 +- mp_chart/lib/mp/core/legend/legend.dart | 16 +++++----- mp_chart/test/mp_chart_test.dart | 2 +- 26 files changed, 72 insertions(+), 72 deletions(-) diff --git a/mp_chart/lib/mp/core/animator.dart b/mp_chart/lib/mp/core/animator.dart index 55126713..1f498b9b 100644 --- a/mp_chart/lib/mp/core/animator.dart +++ b/mp_chart/lib/mp/core/animator.dart @@ -159,7 +159,7 @@ class ChartAnimator extends Animator { } durationMillis -= REFRESH_RATE; } - listener?.onRotateUpdate(angle); + listener.onRotateUpdate(angle); }); } @@ -184,7 +184,7 @@ class ChartAnimator extends Animator { } durationMillis -= REFRESH_RATE; } - listener?.onAnimationUpdate(phaseX, phaseY); + listener.onAnimationUpdate(phaseX, phaseY); }); } @@ -223,7 +223,7 @@ class ChartAnimator extends Animator { durationMillisX -= REFRESH_RATE; durationMillisY -= REFRESH_RATE; } - listener?.onAnimationUpdate(phaseX, phaseY); + listener.onAnimationUpdate(phaseX, phaseY); }); } @@ -262,7 +262,7 @@ class ChartAnimator extends Animator { durationMillisX -= REFRESH_RATE; durationMillisY -= REFRESH_RATE; } - listener?.onAnimationUpdate(phaseX, phaseY); + listener.onAnimationUpdate(phaseX, phaseY); }); } @@ -287,7 +287,7 @@ class ChartAnimator extends Animator { } durationMillis -= REFRESH_RATE; } - listener?.onAnimationUpdate(phaseX, phaseY); + listener.onAnimationUpdate(phaseX, phaseY); }); } } @@ -326,7 +326,7 @@ class ChartAnimatorBySys extends Animator { if (phaseX >= MAX) { phaseX = MAX; } - this.listener?.onAnimationUpdate(phaseX, phaseY); + this.listener.onAnimationUpdate(phaseX, phaseY); } break; case ANIMATE_Y: @@ -335,7 +335,7 @@ class ChartAnimatorBySys extends Animator { if (phaseY >= MAX) { phaseY = MAX; } - this.listener?.onAnimationUpdate(phaseX, phaseY); + this.listener.onAnimationUpdate(phaseX, phaseY); } break; case ANIMATE_XY: @@ -365,7 +365,7 @@ class ChartAnimatorBySys extends Animator { phaseX = easingFunction_1.getInterpolation(percentMin); } } - this.listener?.onAnimationUpdate(phaseX, phaseY); + this.listener.onAnimationUpdate(phaseX, phaseY); } break; case ANIMATE_SPIN: @@ -376,7 +376,7 @@ class ChartAnimatorBySys extends Animator { if (angle! >= toAngle!) { angle = toAngle; } - this.listener?.onRotateUpdate(angle); + this.listener.onRotateUpdate(angle); } break; default: diff --git a/mp_chart/lib/mp/core/axis/axis_base.dart b/mp_chart/lib/mp/core/axis/axis_base.dart index 656606e0..27f971da 100644 --- a/mp_chart/lib/mp/core/axis/axis_base.dart +++ b/mp_chart/lib/mp/core/axis/axis_base.dart @@ -19,9 +19,9 @@ abstract class AxisBase extends ComponentBase { double _axisLineWidth = 1; - List _entries = List(); + List _entries = List.empty(); - List _centeredEntries = List(); + List _centeredEntries = List.empty(); /// the number of entries the legend contains int _entryCount = 0; @@ -95,7 +95,7 @@ abstract class AxisBase extends ComponentBase { textSize = 10; xOffset = 5; yOffset = 5; - this._limitLines = List(); + this._limitLines = List.empty(); } // ignore: unnecessary_getters_setters diff --git a/mp_chart/lib/mp/core/buffer/abstract_buffer.dart b/mp_chart/lib/mp/core/buffer/abstract_buffer.dart index 6ea2c7dd..9eabe1e0 100644 --- a/mp_chart/lib/mp/core/buffer/abstract_buffer.dart +++ b/mp_chart/lib/mp/core/buffer/abstract_buffer.dart @@ -24,7 +24,7 @@ abstract class AbstractBuffer { /// @param size AbstractBuffer(int size) { _index = 0; - _buffer = List(size); + _buffer = []..length = (size); } /// limits the drawing on the x-axis diff --git a/mp_chart/lib/mp/core/data/chart_data.dart b/mp_chart/lib/mp/core/data/chart_data.dart index 68a70a41..d4a9310b 100644 --- a/mp_chart/lib/mp/core/data/chart_data.dart +++ b/mp_chart/lib/mp/core/data/chart_data.dart @@ -34,7 +34,7 @@ class ChartData> { /// Default constructor. ChartData() { - _dataSets = List(); + _dataSets = List.empty(); } /// Constructor taking single or multiple DataSet objects. @@ -234,7 +234,7 @@ class ChartData> { /// /// @return List getDataSetLabels() { - List types = List(_dataSets!.length); + List types = []..length = (_dataSets!.length); for (int i = 0; i < _dataSets!.length; i++) { types[i] = _dataSets![i].getLabel(); @@ -467,7 +467,7 @@ class ChartData> { clrcnt += _dataSets![i].getColors()!.length; } - List colors = List(clrcnt); + List colors = []..length = (clrcnt); int cnt = 0; for (int i = 0; i < _dataSets!.length; i++) { diff --git a/mp_chart/lib/mp/core/data/combined_data.dart b/mp_chart/lib/mp/core/data/combined_data.dart index 99d2d271..10d421fb 100644 --- a/mp_chart/lib/mp/core/data/combined_data.dart +++ b/mp_chart/lib/mp/core/data/combined_data.dart @@ -47,7 +47,7 @@ class CombinedData extends BarLineScatterCandleBubbleData< @override void calcMinMax1() { if (dataSets == null) { - dataSets = List(); + dataSets = List>.empty(); } dataSets!.clear(); @@ -112,7 +112,7 @@ class CombinedData extends BarLineScatterCandleBubbleData< /// @return List getAllData() { List data = - List(); + List.empty(); if (_lineData != null) data.add(_lineData); if (_barData != null) data.add(_barData); if (_scatterData != null) data.add(_scatterData); diff --git a/mp_chart/lib/mp/core/data/pie_data.dart b/mp_chart/lib/mp/core/data/pie_data.dart index 283d9be5..dfd6dcab 100644 --- a/mp_chart/lib/mp/core/data/pie_data.dart +++ b/mp_chart/lib/mp/core/data/pie_data.dart @@ -5,7 +5,7 @@ import 'package:mp_chart/mp/core/highlight/highlight.dart'; import 'package:mp_chart/mp/core/utils/dart_adapter_utils.dart'; class PieData extends ChartData { - PieData(IPieDataSet dataSet) : super.fromList(List()..add(dataSet)); + PieData(IPieDataSet dataSet) : super.fromList([]..add(dataSet)); /// Sets the PieDataSet this data object should represent. /// diff --git a/mp_chart/lib/mp/core/data_interfaces/i_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_data_set.dart index faad0bf7..a18aef49 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_data_set.dart @@ -26,11 +26,11 @@ mixin IDataSet { T getEntryForXValue1(double? xValue, double closestToY, Rounding rounding); - T getEntryForXValue2(double? xValue, double? closestToY); + T? getEntryForXValue2(double? xValue, double? closestToY); - List getEntriesForXValue(double? xValue); + List getEntriesForXValue(double? xValue); - T getEntryForIndex(int? index); + T? getEntryForIndex(int? index); int getEntryIndex1(double xValue, double closestToY, Rounding rounding); diff --git a/mp_chart/lib/mp/core/data_interfaces/i_line_radar_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_line_radar_data_set.dart index d2fd83bb..349af20e 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_line_radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_line_radar_data_set.dart @@ -3,8 +3,8 @@ import 'dart:ui'; import 'package:mp_chart/mp/core/data_interfaces/i_line_scatter_candle_radar_data_set.dart'; import 'package:mp_chart/mp/core/entry/entry.dart'; -mixin ILineRadarDataSet - implements ILineScatterCandleRadarDataSet { +mixin ILineRadarDataSet + implements ILineScatterCandleRadarDataSet { /// Returns the color that is used for filling the line surface area. /// /// @return diff --git a/mp_chart/lib/mp/core/data_interfaces/i_line_scatter_candle_radar_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_line_scatter_candle_radar_data_set.dart index ff9093f4..611112cc 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_line_scatter_candle_radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_line_scatter_candle_radar_data_set.dart @@ -3,7 +3,7 @@ import 'package:mp_chart/mp/core/data_interfaces/i_bar_line_scatter_candle_bubbl import 'package:mp_chart/mp/core/entry/entry.dart'; mixin ILineScatterCandleRadarDataSet - implements IBarLineScatterCandleBubbleDataSet { + implements IBarLineScatterCandleBubbleDataSet { /// Returns true if vertical highlight indicator lines are enabled (drawn) /// @return bool isVerticalHighlightIndicatorEnabled(); diff --git a/mp_chart/lib/mp/core/data_set/bar_data_set.dart b/mp_chart/lib/mp/core/data_set/bar_data_set.dart index 67264b34..d3315cf0 100644 --- a/mp_chart/lib/mp/core/data_set/bar_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/bar_data_set.dart @@ -27,7 +27,7 @@ class BarDataSet extends BarLineScatterCandleBubbleDataSet int _entryCountStacks = 0; /// array of labels used to describe the different values of the stacked bars - List _stackLabels = List()..add("Stack"); + List _stackLabels = []..add("Stack"); BarDataSet(List yVals, String label) : super(yVals, label) { setHighLightColor(Color.fromARGB(255, 0, 0, 0)); @@ -37,7 +37,7 @@ class BarDataSet extends BarLineScatterCandleBubbleDataSet @override DataSet copy1() { - List entries = List(); + List entries = List.empty(); for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/bar_line_scatter_candle_bubble_data_set.dart b/mp_chart/lib/mp/core/data_set/bar_line_scatter_candle_bubble_data_set.dart index 6de19329..3a18b3e4 100644 --- a/mp_chart/lib/mp/core/data_set/bar_line_scatter_candle_bubble_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/bar_line_scatter_candle_bubble_data_set.dart @@ -6,7 +6,7 @@ import 'package:mp_chart/mp/core/data_set/data_set.dart'; import 'package:mp_chart/mp/core/entry/entry.dart'; abstract class BarLineScatterCandleBubbleDataSet - extends DataSet implements IBarLineScatterCandleBubbleDataSet { + extends DataSet implements IBarLineScatterCandleBubbleDataSet { Color _highLightColor = Color.fromARGB(255, 255, 187, 115); BarLineScatterCandleBubbleDataSet(List yVals, String label) diff --git a/mp_chart/lib/mp/core/data_set/base_data_set.dart b/mp_chart/lib/mp/core/data_set/base_data_set.dart index e78599c8..d558e1e1 100644 --- a/mp_chart/lib/mp/core/data_set/base_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/base_data_set.dart @@ -60,8 +60,8 @@ abstract class BaseDataSet implements IDataSet { /// Default constructor. BaseDataSet() { - _colors = List(); - _valueColors = List(); + _colors = List.empty(); + _valueColors = List.empty(); // default color _colors!.add(ui.Color.fromARGB(255, 140, 234, 255)); _valueColors!.add(ColorUtils.BLACK); @@ -71,8 +71,8 @@ abstract class BaseDataSet implements IDataSet { /// /// @param label BaseDataSet.withLabel(String label) { - _colors = List(); - _valueColors = List(); + _colors = List.empty(); + _valueColors = List.empty(); // default color _colors!.add(ui.Color.fromARGB(255, 140, 234, 255)); @@ -140,7 +140,7 @@ abstract class BaseDataSet implements IDataSet { /// /// @param color void addColor(ui.Color color) { - if (_colors == null) _colors = List(); + if (_colors == null) _colors = List.empty(); _colors!.add(color); } @@ -196,7 +196,7 @@ abstract class BaseDataSet implements IDataSet { /// Resets all colors of this DataSet and recreates the colors array. void resetColors() { if (_colors == null) { - _colors = List(); + _colors = List.empty(); } _colors!.clear(); } @@ -375,7 +375,7 @@ abstract class BaseDataSet implements IDataSet { @override int getIndexInEntries(int xIndex) { for (int i = 0; i < getEntryCount(); i++) { - if (xIndex == getEntryForIndex(i).x) return i; + if (xIndex == getEntryForIndex(i)!.x) return i; } return -1; @@ -384,8 +384,8 @@ abstract class BaseDataSet implements IDataSet { @override bool removeFirst() { if (getEntryCount() > 0) { - T entry = getEntryForIndex(0); - return removeEntry1(entry); + T? entry = getEntryForIndex(0); + return removeEntry1(entry!); } else return false; } @@ -393,22 +393,22 @@ abstract class BaseDataSet implements IDataSet { @override bool removeLast() { if (getEntryCount() > 0) { - T e = getEntryForIndex(getEntryCount() - 1); - return removeEntry1(e); + T? e = getEntryForIndex(getEntryCount() - 1); + return removeEntry1(e!); } else return false; } @override bool removeEntryByXValue(double xValue) { - T e = getEntryForXValue2(xValue, double.nan); - return removeEntry1(e); + T? e = getEntryForXValue2(xValue, double.nan); + return removeEntry1(e!); } @override bool removeEntry2(int index) { - T e = getEntryForIndex(index); - return removeEntry1(e); + T? e = getEntryForIndex(index); + return removeEntry1(e!); } @override diff --git a/mp_chart/lib/mp/core/data_set/bubble_data_set.dart b/mp_chart/lib/mp/core/data_set/bubble_data_set.dart index 86cf13b1..90eebba6 100644 --- a/mp_chart/lib/mp/core/data_set/bubble_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/bubble_data_set.dart @@ -37,7 +37,7 @@ class BubbleDataSet extends BarLineScatterCandleBubbleDataSet @override DataSet copy1() { - List entries = List(); + List entries = List.empty(); for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/candle_data_set.dart b/mp_chart/lib/mp/core/data_set/candle_data_set.dart index b98f32f4..1d8ba57b 100644 --- a/mp_chart/lib/mp/core/data_set/candle_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/candle_data_set.dart @@ -51,7 +51,7 @@ class CandleDataSet extends LineScatterCandleRadarDataSet @override DataSet copy1() { - List entries = List(); + List entries = List.empty(); for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/data_set.dart b/mp_chart/lib/mp/core/data_set/data_set.dart index 5cd4c63e..43a14321 100644 --- a/mp_chart/lib/mp/core/data_set/data_set.dart +++ b/mp_chart/lib/mp/core/data_set/data_set.dart @@ -27,7 +27,7 @@ abstract class DataSet extends BaseDataSet { DataSet(List values, String label) : super.withLabel(label) { this._values = values; - if (_values == null) _values = List(); + if (_values == null) _values = List.empty(); calcMinMax(); } @@ -74,13 +74,13 @@ abstract class DataSet extends BaseDataSet { } void calcMinMaxX1(T e) { - if (e.x! < _xMin!) _xMin = e.x; + if (e!.x! < _xMin!) _xMin = e.x; if (e.x! > _xMax!) _xMax = e.x; } void calcMinMaxY1(T e) { - if (e.y! < _yMin!) _yMin = e.y; + if (e!.y! < _yMin!) _yMin = e.y; if (e.y! > _yMax!) _yMax = e.y; } @@ -169,7 +169,7 @@ abstract class DataSet extends BaseDataSet { if (e == null) return; if (_values == null) { - _values = List(); + _values = List.empty(); } calcMinMax1(e); @@ -194,7 +194,7 @@ abstract class DataSet extends BaseDataSet { List? valueDatas = values; if (valueDatas == null) { - valueDatas = List(); + valueDatas = List.empty(); } calcMinMax1(e); @@ -352,7 +352,7 @@ abstract class DataSet extends BaseDataSet { @override List getEntriesForXValue(double? xValue) { - List entries = List(); + List entries = List.empty(); int low = 0; int high = _values!.length - 1; diff --git a/mp_chart/lib/mp/core/data_set/line_data_set.dart b/mp_chart/lib/mp/core/data_set/line_data_set.dart index 3650e8d5..97b9b997 100644 --- a/mp_chart/lib/mp/core/data_set/line_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/line_data_set.dart @@ -47,7 +47,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { // mLineWidth = Utils.convertDpToPixel(1f); if (_circleColors == null) { - _circleColors = List(); + _circleColors = List.empty(); } _circleColors!.clear(); @@ -246,7 +246,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { /// resets the circle-colors array and creates a one void resetCircleColors() { if (_circleColors == null) { - _circleColors = List(); + _circleColors = List.empty(); } _circleColors!.clear(); } @@ -293,7 +293,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { @override DataSet copy1() { - List entries = List(); + List entries = List.empty(); for (int i = 0; i < values!.length; i++) { entries.add(Entry( x: values![i]!.x, diff --git a/mp_chart/lib/mp/core/data_set/line_radar_data_set.dart b/mp_chart/lib/mp/core/data_set/line_radar_data_set.dart index d30c6661..7e98d9ec 100644 --- a/mp_chart/lib/mp/core/data_set/line_radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/line_radar_data_set.dart @@ -8,7 +8,7 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; abstract class LineRadarDataSet extends LineScatterCandleRadarDataSet - implements ILineRadarDataSet { + implements ILineRadarDataSet { /// the color that is used for filling the line surface Color _fillColor = Color.fromARGB(255, 140, 234, 255); diff --git a/mp_chart/lib/mp/core/data_set/line_scatter_candle_radar_data_set.dart b/mp_chart/lib/mp/core/data_set/line_scatter_candle_radar_data_set.dart index 66458582..340f7510 100644 --- a/mp_chart/lib/mp/core/data_set/line_scatter_candle_radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/line_scatter_candle_radar_data_set.dart @@ -7,7 +7,7 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; abstract class LineScatterCandleRadarDataSet extends BarLineScatterCandleBubbleDataSet - implements ILineScatterCandleRadarDataSet { + implements ILineScatterCandleRadarDataSet { bool _drawVerticalHighlightIndicator = true; bool _drawHorizontalHighlightIndicator = true; diff --git a/mp_chart/lib/mp/core/data_set/pie_data_set.dart b/mp_chart/lib/mp/core/data_set/pie_data_set.dart index 149c8e9f..f16b2830 100644 --- a/mp_chart/lib/mp/core/data_set/pie_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/pie_data_set.dart @@ -29,7 +29,7 @@ class PieDataSet extends DataSet implements IPieDataSet { @override DataSet copy1() { - List entries = List(); + List entries = List.empty(); for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/radar_data_set.dart b/mp_chart/lib/mp/core/data_set/radar_data_set.dart index 88fd4224..ecc9a1fd 100644 --- a/mp_chart/lib/mp/core/data_set/radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/radar_data_set.dart @@ -97,7 +97,7 @@ class RadarDataSet extends LineRadarDataSet @override DataSet copy1() { - List entries = List(); + List entries = List.empty(); for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/scatter_data_set.dart b/mp_chart/lib/mp/core/data_set/scatter_data_set.dart index 150be6c5..9e234447 100644 --- a/mp_chart/lib/mp/core/data_set/scatter_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/scatter_data_set.dart @@ -37,7 +37,7 @@ class ScatterDataSet extends LineScatterCandleRadarDataSet @override DataSet copy1() { - List entries = List(); + List entries = List.empty(); for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart b/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart index f7483ea5..d2131682 100644 --- a/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart +++ b/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart @@ -16,7 +16,7 @@ class ChartHighlighter T? _provider; /// buffer for storing previously highlighted values - List _highlightBuffer = List(); + List _highlightBuffer = List.empty(); ChartHighlighter(T provider) { this._provider = provider; @@ -144,7 +144,7 @@ class ChartHighlighter /// @return List buildHighlights( IDataSet set, int dataSetIndex, double? xVal, Rounding rounding) { - List highlights = List(); + List highlights = List.empty(); //noinspection unchecked List entries = set.getEntriesForXValue(xVal); diff --git a/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart b/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart index 086e6cb6..63acdd24 100644 --- a/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart +++ b/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart @@ -33,7 +33,7 @@ class HorizontalBarHighlighter extends BarHighlighter { @override List buildHighlights( IDataSet set, int dataSetIndex, double? xVal, Rounding rounding) { - List highlights = List(); + List highlights = List.empty(); //noinspection unchecked List entries = set.getEntriesForXValue(xVal); diff --git a/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart b/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart index 2b8b983b..f95bbb64 100644 --- a/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart +++ b/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart @@ -8,7 +8,7 @@ abstract class PieRadarHighlighter T? _painter; /// buffer for storing previously highlighted values - List _highlightBuffer = List(); + List _highlightBuffer = List.empty(); PieRadarHighlighter(T painter) { this._painter = painter; diff --git a/mp_chart/lib/mp/core/legend/legend.dart b/mp_chart/lib/mp/core/legend/legend.dart index 8b19daea..02d28609 100644 --- a/mp_chart/lib/mp/core/legend/legend.dart +++ b/mp_chart/lib/mp/core/legend/legend.dart @@ -16,7 +16,7 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; class Legend extends ComponentBase { /// The legend entries array - List _entries = List(); + List _entries = List.empty(); /// Entries that will be appended to the end of the auto calculated entries after calculating the legend. /// (if the legend has already been calculated, you will need to call notifyDataSetChanged() to let the changes take effect) @@ -77,9 +77,9 @@ class Legend extends ComponentBase { /// flag that indicates if word wrapping is enabled bool _wordWrapEnabled = false; - List _calculatedLabelSizes = List(16); - List _calculatedLabelBreakPoints = List(16); - List _calculatedLineSizes = List(16); + List _calculatedLabelSizes = []..length = (16); + List _calculatedLabelBreakPoints = []..length = (16); + List _calculatedLineSizes = []..length = (16); /// default constructor Legend() { @@ -164,7 +164,7 @@ class Legend extends ComponentBase { /// (if the legend has already been calculated, you will need to call notifyDataSetChanged() /// to let the changes take effect) void setExtra2(List colors, List labels) { - List entries = List(); + List entries = List.empty(); for (int i = 0; i < min(colors.length, labels.length); i++) { final LegendEntry entry = LegendEntry.empty(); entry.formColor = colors[i]; @@ -423,9 +423,9 @@ class Legend extends ComponentBase { double requiredWidth = 0; int stackedStartIndex = -1; - _calculatedLabelBreakPoints = List(); - _calculatedLabelSizes = List(); - _calculatedLineSizes = List(); + _calculatedLabelBreakPoints = List.empty(); + _calculatedLabelSizes = List.empty(); + _calculatedLineSizes = List.empty(); for (int i = 0; i < entryCount; i++) { LegendEntry e = entries[i]!; diff --git a/mp_chart/test/mp_chart_test.dart b/mp_chart/test/mp_chart_test.dart index c2d701e0..13f25847 100644 --- a/mp_chart/test/mp_chart_test.dart +++ b/mp_chart/test/mp_chart_test.dart @@ -10,7 +10,7 @@ void main() { expect(calculator.addOne(2), 3); expect(calculator.addOne(-7), -6); expect(calculator.addOne(0), 1); - expect(() => calculator.addOne(null), throwsNoSuchMethodError); + expect(() => calculator.addOne(0), throwsNoSuchMethodError); }); /** From 86d2ed045e4066a5c17cea2ad377967a643e6cba Mon Sep 17 00:00:00 2001 From: Takuro KAKOI Date: Fri, 24 Sep 2021 22:42:18 +0900 Subject: [PATCH 05/29] update --- mp_chart/lib/mp/core/data_interfaces/i_line_radar_data_set.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp_chart/lib/mp/core/data_interfaces/i_line_radar_data_set.dart b/mp_chart/lib/mp/core/data_interfaces/i_line_radar_data_set.dart index 349af20e..93cc4f51 100644 --- a/mp_chart/lib/mp/core/data_interfaces/i_line_radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_interfaces/i_line_radar_data_set.dart @@ -3,7 +3,7 @@ import 'dart:ui'; import 'package:mp_chart/mp/core/data_interfaces/i_line_scatter_candle_radar_data_set.dart'; import 'package:mp_chart/mp/core/entry/entry.dart'; -mixin ILineRadarDataSet +mixin ILineRadarDataSet implements ILineScatterCandleRadarDataSet { /// Returns the color that is used for filling the line surface area. /// From ed937e7823d25c42c855147dcedc9978b435aa4d Mon Sep 17 00:00:00 2001 From: Takuro KAKOI Date: Fri, 24 Sep 2021 22:43:09 +0900 Subject: [PATCH 06/29] update --- mp_chart/lib/mp/core/render/chevron_down_shape_renderer.dart | 2 +- mp_chart/lib/mp/core/render/chevron_up_shape_renderer.dart | 2 +- mp_chart/lib/mp/core/render/circle_shape_renderer.dart | 2 +- mp_chart/lib/mp/core/render/cross_shape_renderer.dart | 2 +- mp_chart/lib/mp/core/render/data_renderer.dart | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mp_chart/lib/mp/core/render/chevron_down_shape_renderer.dart b/mp_chart/lib/mp/core/render/chevron_down_shape_renderer.dart index 0c152127..cbca82f6 100644 --- a/mp_chart/lib/mp/core/render/chevron_down_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/chevron_down_shape_renderer.dart @@ -21,7 +21,7 @@ class ChevronDownShapeRenderer implements IShapeRenderer { ..strokeWidth = Utils.convertDpToPixel(1)!; c.drawLine(Offset(posX!, posY! + (2 * shapeHalf)), - Offset(posX + (2 * shapeHalf), posY), renderPaint!); + Offset(posX + (2 * shapeHalf), posY), renderPaint); c.drawLine(Offset(posX, posY + (2 * shapeHalf)), Offset(posX - (2 * shapeHalf), posY), renderPaint); diff --git a/mp_chart/lib/mp/core/render/chevron_up_shape_renderer.dart b/mp_chart/lib/mp/core/render/chevron_up_shape_renderer.dart index 04a8efa2..ce29a558 100644 --- a/mp_chart/lib/mp/core/render/chevron_up_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/chevron_up_shape_renderer.dart @@ -21,7 +21,7 @@ class ChevronUpShapeRenderer implements IShapeRenderer { ..strokeWidth = Utils.convertDpToPixel(1)!; c.drawLine(Offset(posX!, posY! - (2 * shapeHalf)), - Offset(posX + (2 * shapeHalf), posY), renderPaint!); + Offset(posX + (2 * shapeHalf), posY), renderPaint); c.drawLine(Offset(posX, posY - (2 * shapeHalf)), Offset(posX - (2 * shapeHalf), posY), renderPaint); diff --git a/mp_chart/lib/mp/core/render/circle_shape_renderer.dart b/mp_chart/lib/mp/core/render/circle_shape_renderer.dart index 698f3753..ce89f2ee 100644 --- a/mp_chart/lib/mp/core/render/circle_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/circle_shape_renderer.dart @@ -31,7 +31,7 @@ class CircleShapeRenderer implements IShapeRenderer { ..strokeWidth = shapeStrokeSize; c.drawCircle(Offset(posX!, posY!), shapeHoleSizeHalf + shapeStrokeSizeHalf, - renderPaint!); + renderPaint); if (shapeHoleColor != ColorUtils.COLOR_NONE) { renderPaint diff --git a/mp_chart/lib/mp/core/render/cross_shape_renderer.dart b/mp_chart/lib/mp/core/render/cross_shape_renderer.dart index 4af54d5b..31ce2e2d 100644 --- a/mp_chart/lib/mp/core/render/cross_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/cross_shape_renderer.dart @@ -21,7 +21,7 @@ class CrossShapeRenderer implements IShapeRenderer { ..strokeWidth = Utils.convertDpToPixel(1)!; c.drawLine(Offset(posX! - shapeHalf, posY!), Offset(posX + shapeHalf, posY), - renderPaint!); + renderPaint); c.drawLine(Offset(posX, posY - shapeHalf), Offset(posX, posY + shapeHalf), renderPaint); } diff --git a/mp_chart/lib/mp/core/render/data_renderer.dart b/mp_chart/lib/mp/core/render/data_renderer.dart index b446c79f..b6ebcf92 100644 --- a/mp_chart/lib/mp/core/render/data_renderer.dart +++ b/mp_chart/lib/mp/core/render/data_renderer.dart @@ -79,8 +79,8 @@ abstract class DataRenderer extends Renderer { void applyValueTextStyle(IDataSet set) { _valuePaint = PainterUtils.create(_valuePaint, null, Color.fromARGB(255, 63, 63, 63), Utils.convertDpToPixel(9), - fontFamily: set?.getValueTypeface()?.fontFamily, - fontWeight: set?.getValueTypeface()?.fontWeight); + fontFamily: set.getValueTypeface()?.fontFamily, + fontWeight: set.getValueTypeface()?.fontWeight); } /// Initializes the buffers used for rendering with a size. Since this From 114db84cba618357062b2ae1b07bd47904a03b38 Mon Sep 17 00:00:00 2001 From: Takuro KAKOI Date: Fri, 24 Sep 2021 22:43:30 +0900 Subject: [PATCH 07/29] update --- mp_chart/lib/mp/core/render/square_shape_renderer.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp_chart/lib/mp/core/render/square_shape_renderer.dart b/mp_chart/lib/mp/core/render/square_shape_renderer.dart index df9086e4..eaa42dc4 100644 --- a/mp_chart/lib/mp/core/render/square_shape_renderer.dart +++ b/mp_chart/lib/mp/core/render/square_shape_renderer.dart @@ -36,7 +36,7 @@ class SquareShapeRenderer implements IShapeRenderer { posY! - shapeHoleSizeHalf - shapeStrokeSizeHalf, posX + shapeHoleSizeHalf + shapeStrokeSizeHalf, posY + shapeHoleSizeHalf + shapeStrokeSizeHalf), - renderPaint!); + renderPaint); if (shapeHoleColor != ColorUtils.COLOR_NONE) { renderPaint From 7ecc529f55051c962f828315ae35953966f854a9 Mon Sep 17 00:00:00 2001 From: Takuro KAKOI Date: Fri, 24 Sep 2021 22:57:47 +0900 Subject: [PATCH 08/29] migrate command examples --- mp_chart/example/ios/Podfile | 67 +-- mp_chart/example/ios/Podfile.lock | 22 +- .../ios/Runner.xcodeproj/project.pbxproj | 15 +- mp_chart/example/lib/demo/action_state.dart | 466 +++++++++--------- .../example/lib/demo/bar_chart/basic.dart | 30 +- .../example/lib/demo/bar_chart/basic2.dart | 4 +- .../lib/demo/bar_chart/horizontal.dart | 2 +- .../example/lib/demo/bar_chart/multiple.dart | 16 +- .../example/lib/demo/bar_chart/negative.dart | 14 +- mp_chart/example/lib/demo/bar_chart/sine.dart | 8 +- .../example/lib/demo/bar_chart/stacked.dart | 6 +- .../example/lib/demo/bar_chart/stacked2.dart | 18 +- .../example/lib/demo/even_more/dynamic.dart | 66 +-- .../example/lib/demo/even_more/hourly.dart | 12 +- .../example/lib/demo/even_more/realtime.dart | 60 +-- .../example/lib/demo/line_chart/basic.dart | 10 +- .../example/lib/demo/line_chart/colorful.dart | 22 +- .../example/lib/demo/line_chart/cubic.dart | 22 +- .../lib/demo/line_chart/dual_axis.dart | 18 +- .../example/lib/demo/line_chart/filled.dart | 32 +- .../lib/demo/line_chart/invert_axis.dart | 12 +- .../example/lib/demo/line_chart/multiple.dart | 12 +- .../lib/demo/line_chart/performance.dart | 8 +- .../example/lib/demo/other_chart/bubble.dart | 6 +- .../lib/demo/other_chart/candlestick.dart | 4 +- .../lib/demo/other_chart/combined.dart | 6 +- .../example/lib/demo/other_chart/radar.dart | 6 +- .../lib/demo/other_chart/scatter_plot.dart | 20 +- .../example/lib/demo/pie_chart/basic.dart | 4 +- .../example/lib/demo/pie_chart/half_pie.dart | 6 +- .../lib/demo/pie_chart/value_lines.dart | 4 +- .../lib/demo/scrolling_chart/multiple.dart | 10 +- .../lib/demo/scrolling_chart/tall_bar.dart | 6 +- .../lib/demo/scrolling_chart/view_pager.dart | 28 +- mp_chart/example/lib/main.dart | 12 +- mp_chart/example/pubspec.yaml | 15 +- 36 files changed, 524 insertions(+), 545 deletions(-) diff --git a/mp_chart/example/ios/Podfile b/mp_chart/example/ios/Podfile index 64ba7492..1e8c3c90 100644 --- a/mp_chart/example/ios/Podfile +++ b/mp_chart/example/ios/Podfile @@ -10,63 +10,32 @@ project 'Runner', { 'Release' => :release, } -def parse_KV_file(file, separator='=') - file_abs_path = File.expand_path(file) - if !File.exists? file_abs_path - return []; +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" end - pods_ary = [] - skip_line_start_symbols = ["#", "/"] - File.foreach(file_abs_path) { |line| - next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ } - plugin = line.split(pattern=separator) - if plugin.length == 2 - podname = plugin[0].strip() - path = plugin[1].strip() - podpath = File.expand_path("#{path}", file_abs_path) - pods_ary.push({:name => podname, :path => podpath}); - else - puts "Invalid plugin specification: #{line}" - end - } - return pods_ary + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" end -target 'Runner' do - # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock - # referring to absolute paths on developers' machines. - system('rm -rf .symlinks') - system('mkdir -p .symlinks/plugins') +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - # Flutter Pods - generated_xcode_build_settings = parse_KV_file('./Flutter/Generated.xcconfig') - if generated_xcode_build_settings.empty? - puts "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first." - end - generated_xcode_build_settings.map { |p| - if p[:name] == 'FLUTTER_FRAMEWORK_DIR' - symlink = File.join('.symlinks', 'flutter') - File.symlink(File.dirname(p[:path]), symlink) - pod 'Flutter', :path => File.join(symlink, File.basename(p[:path])) - end - } +flutter_ios_podfile_setup - # Plugin Pods - plugin_pods = parse_KV_file('../.flutter-plugins') - plugin_pods.map { |p| - symlink = File.join('.symlinks', 'plugins', p[:name]) - File.symlink(p[:path], symlink) - pod p[:name], :path => File.join(symlink, 'ios') - } -end +target 'Runner' do + use_frameworks! + use_modular_headers! -# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system. -install! 'cocoapods', :disable_input_output_paths => true + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) +end post_install do |installer| installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['ENABLE_BITCODE'] = 'NO' - end + flutter_additional_ios_build_settings(target) end end diff --git a/mp_chart/example/ios/Podfile.lock b/mp_chart/example/ios/Podfile.lock index 54d54e7d..3ba93246 100644 --- a/mp_chart/example/ios/Podfile.lock +++ b/mp_chart/example/ios/Podfile.lock @@ -1,16 +1,16 @@ PODS: - Flutter (1.0.0) - - image_gallery_saver (0.0.1): + - image_gallery_saver (1.5.0): - Flutter - path_provider (0.0.1): - Flutter - - permission_handler (3.3.0): + - "permission_handler (5.1.0+2)": - Flutter - url_launcher (0.0.1): - Flutter DEPENDENCIES: - - Flutter (from `.symlinks/flutter/ios`) + - Flutter (from `Flutter`) - image_gallery_saver (from `.symlinks/plugins/image_gallery_saver/ios`) - path_provider (from `.symlinks/plugins/path_provider/ios`) - permission_handler (from `.symlinks/plugins/permission_handler/ios`) @@ -18,7 +18,7 @@ DEPENDENCIES: EXTERNAL SOURCES: Flutter: - :path: ".symlinks/flutter/ios" + :path: Flutter image_gallery_saver: :path: ".symlinks/plugins/image_gallery_saver/ios" path_provider: @@ -29,12 +29,12 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/url_launcher/ios" SPEC CHECKSUMS: - Flutter: 58dd7d1b27887414a370fcccb9e645c08ffd7a6a - image_gallery_saver: 73b3cd8ad9c950c739878af9c311744d1bf5405d - path_provider: fb74bd0465e96b594bb3b5088ee4a4e7bb1f2a9d - permission_handler: 67637977b227d62d46bfbf524f335f8568de5a73 - url_launcher: a1c0cc845906122c4784c542523d8cacbded5626 + Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a + image_gallery_saver: 259eab68fb271cfd57d599904f7acdc7832e7ef2 + path_provider: d1e9807085df1f9cc9318206cd649dc0b76be3de + permission_handler: ccb20a9fad0ee9b1314a52b70b76b473c5f8dab0 + url_launcher: b6e016d912f04be9f5bf6e8e82dc599b7ba59649 -PODFILE CHECKSUM: 7fb83752f59ead6285236625b82473f90b1cb932 +PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c -COCOAPODS: 1.7.3 +COCOAPODS: 1.10.1 diff --git a/mp_chart/example/ios/Runner.xcodeproj/project.pbxproj b/mp_chart/example/ios/Runner.xcodeproj/project.pbxproj index b0c9ec30..0c7c955e 100644 --- a/mp_chart/example/ios/Runner.xcodeproj/project.pbxproj +++ b/mp_chart/example/ios/Runner.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 113C2BFAE03FA55F4F4A29A7 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 80C48FECBDC6D714F4687207 /* libPods-Runner.a */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 69CE8466233DB7F800B13DEF /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69CE8465233DB7F800B13DEF /* File.swift */; }; @@ -17,6 +16,7 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + EC79D4135BDA3AB4E48AB86C /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 679F6DD822D8016877AD5305 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -38,12 +38,12 @@ 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 2B596E6E9C519EEB8127D2E6 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 679F6DD822D8016877AD5305 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 69CE8464233DB7F700B13DEF /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 69CE8465233DB7F800B13DEF /* File.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = File.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 80C48FECBDC6D714F4687207 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -60,7 +60,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 113C2BFAE03FA55F4F4A29A7 /* libPods-Runner.a in Frameworks */, + EC79D4135BDA3AB4E48AB86C /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -136,7 +136,7 @@ AC100587C26539BEA403EC71 /* Frameworks */ = { isa = PBXGroup; children = ( - 80C48FECBDC6D714F4687207 /* libPods-Runner.a */, + 679F6DD822D8016877AD5305 /* Pods_Runner.framework */, ); name = Frameworks; sourceTree = ""; @@ -271,9 +271,16 @@ files = ( ); inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/image_gallery_saver/image_gallery_saver.framework", + "${BUILT_PRODUCTS_DIR}/path_provider/path_provider.framework", + "${BUILT_PRODUCTS_DIR}/url_launcher/url_launcher.framework", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/image_gallery_saver.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; diff --git a/mp_chart/example/lib/demo/action_state.dart b/mp_chart/example/lib/demo/action_state.dart index f0d98081..bde7bc19 100644 --- a/mp_chart/example/lib/demo/action_state.dart +++ b/mp_chart/example/lib/demo/action_state.dart @@ -109,38 +109,38 @@ abstract class SimpleActionState @override getBuilder() { return (BuildContext context) => - >[item('View on GitHub', 'A')]; + >[item('View on GitHub', 'A') as PopupMenuItem]; } } abstract class LineActionState extends ActionState { - LineChartController controller; + LineChartController? controller; @override getBuilder() { return (BuildContext context) => >[ - item('View on GitHub', 'A'), - item('Toggle Values', 'B'), - item('Toggle Icons', 'C'), - item('Toggle Filled', 'D'), - item('Toggle Circles', 'E'), - item('Toggle Cubic', 'F'), - item('Toggle Stepped', 'G'), - item('Toggle Horizontal Cubic', 'H'), - item('Toggle PinchZoom', 'I'), - item('Toggle Auto Scale', 'J'), - item('Toggle Highlight', 'K'), - item('Animate X', 'L'), - item('Animate Y', 'M'), - item('Animate XY', 'N'), - item('Save to Gallery', 'O'), + item('View on GitHub', 'A') as PopupMenuItem, + item('Toggle Values', 'B') as PopupMenuItem, + item('Toggle Icons', 'C') as PopupMenuItem, + item('Toggle Filled', 'D') as PopupMenuItem, + item('Toggle Circles', 'E') as PopupMenuItem, + item('Toggle Cubic', 'F') as PopupMenuItem, + item('Toggle Stepped', 'G') as PopupMenuItem, + item('Toggle Horizontal Cubic', 'H') as PopupMenuItem, + item('Toggle PinchZoom', 'I') as PopupMenuItem, + item('Toggle Auto Scale', 'J') as PopupMenuItem, + item('Toggle Highlight', 'K') as PopupMenuItem, + item('Animate X', 'L') as PopupMenuItem, + item('Animate Y', 'M') as PopupMenuItem, + item('Animate XY', 'N') as PopupMenuItem, + item('Save to Gallery', 'O') as PopupMenuItem, ]; } @override void itemClick(String action) { - if (controller.state == null) { + if (controller!.state == null) { return; } @@ -149,23 +149,23 @@ abstract class LineActionState Util.openGithub(); break; case 'B': - List sets = controller.data.dataSets; + List sets = controller!.data!.dataSets!; for (ILineDataSet iSet in sets) { LineDataSet set = iSet as LineDataSet; set.setDrawValues(!set.isDrawValuesEnabled()); } - controller.state.setStateIfNotDispose(); + controller!.state!.setStateIfNotDispose(); break; case 'C': - List sets = controller.data.dataSets; + List sets = controller!.data!.dataSets!; for (ILineDataSet iSet in sets) { LineDataSet set = iSet as LineDataSet; set.setDrawIcons(!set.isDrawIconsEnabled()); } - controller.state.setStateIfNotDispose(); + controller!.state!.setStateIfNotDispose(); break; case 'D': - List sets = controller.data.dataSets; + List sets = controller!.data!.dataSets!; for (ILineDataSet iSet in sets) { LineDataSet set = iSet as LineDataSet; @@ -174,10 +174,10 @@ abstract class LineActionState else set.setDrawFilled(true); } - controller.state.setStateIfNotDispose(); + controller!.state!.setStateIfNotDispose(); break; case 'E': - List sets = controller.data.dataSets; + List sets = controller!.data!.dataSets!; for (ILineDataSet iSet in sets) { LineDataSet set = iSet as LineDataSet; @@ -186,10 +186,10 @@ abstract class LineActionState else set.setDrawCircles(true); } - controller.state.setStateIfNotDispose(); + controller!.state!.setStateIfNotDispose(); break; case 'F': - List sets = controller.data.dataSets; + List sets = controller!.data!.dataSets!; for (ILineDataSet iSet in sets) { LineDataSet set = iSet as LineDataSet; @@ -197,20 +197,20 @@ abstract class LineActionState ? Mode.LINEAR : Mode.CUBIC_BEZIER); } - controller.state.setStateIfNotDispose(); + controller!.state!.setStateIfNotDispose(); break; case 'G': - List sets = controller.data.dataSets; + List sets = controller!.data!.dataSets!; for (ILineDataSet iSet in sets) { LineDataSet set = iSet as LineDataSet; set.setMode( set.getMode() == Mode.STEPPED ? Mode.LINEAR : Mode.STEPPED); } - controller.state.setStateIfNotDispose(); + controller!.state!.setStateIfNotDispose(); break; case 'H': - List sets = controller.data.dataSets; + List sets = controller!.data!.dataSets!; for (ILineDataSet iSet in sets) { LineDataSet set = iSet as LineDataSet; @@ -218,41 +218,41 @@ abstract class LineActionState ? Mode.LINEAR : Mode.HORIZONTAL_BEZIER); } - controller.state.setStateIfNotDispose(); + controller!.state!.setStateIfNotDispose(); break; case 'I': - controller.pinchZoomEnabled = !controller.pinchZoomEnabled; - controller.state.setStateIfNotDispose(); + controller!.pinchZoomEnabled = !controller!.pinchZoomEnabled; + controller!.state!.setStateIfNotDispose(); break; case 'J': - controller.autoScaleMinMaxEnabled = !controller.autoScaleMinMaxEnabled; - controller.state.setStateIfNotDispose(); + controller!.autoScaleMinMaxEnabled = !controller!.autoScaleMinMaxEnabled; + controller!.state!.setStateIfNotDispose(); break; case 'K': - if (controller.data != null) { - controller.data - .setHighlightEnabled(!controller.data.isHighlightEnabled()); - controller.state.setStateIfNotDispose(); + if (controller!.data != null) { + controller!.data! + .setHighlightEnabled(!controller!.data!.isHighlightEnabled()); + controller!.state!.setStateIfNotDispose(); } break; case 'L': - controller.animator + controller!.animator ..reset() ..animateX1(2000); break; case 'M': - controller.animator + controller!.animator ..reset() ..animateY2(2000, Easing.EaseInCubic); break; case 'N': - controller.animator + controller!.animator ..reset() ..animateXY1(2000, 2000); break; case 'O': captureImg(() { - controller.state.capture(); + controller!.state!.capture(); }); break; } @@ -260,22 +260,22 @@ abstract class LineActionState } abstract class BarActionState extends ActionState { - BarChartController controller; + late BarChartController controller; @override getBuilder() { return (BuildContext context) => >[ - item('View on GitHub', 'A'), - item('Toggle Bar Borders', 'B'), - item('Toggle Values', 'C'), - item('Toggle Icons', 'D'), - item('Toggle Highlight', 'E'), - item('Toggle PinchZoom', 'F'), - item('Toggle Auto Scale', 'G'), - item('Animate X', 'H'), - item('Animate Y', 'I'), - item('Animate XY', 'J'), - item('Save to Gallery', 'K'), + item('View on GitHub', 'A') as PopupMenuItem, + item('Toggle Bar Borders', 'B') as PopupMenuItem, + item('Toggle Values', 'C') as PopupMenuItem, + item('Toggle Icons', 'D') as PopupMenuItem, + item('Toggle Highlight', 'E') as PopupMenuItem, + item('Toggle PinchZoom', 'F') as PopupMenuItem, + item('Toggle Auto Scale', 'G') as PopupMenuItem, + item('Animate X', 'H') as PopupMenuItem, + item('Animate Y', 'I') as PopupMenuItem, + item('Animate XY', 'J') as PopupMenuItem, + item('Save to Gallery', 'K') as PopupMenuItem, ]; } @@ -290,38 +290,38 @@ abstract class BarActionState extends ActionState { Util.openGithub(); break; case 'B': - for (IBarDataSet set in controller.data.dataSets) + for (IBarDataSet set in controller.data!.dataSets!) (set as BarDataSet) .setBarBorderWidth(set.getBarBorderWidth() == 1.0 ? 0.0 : 1.0); - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'C': - for (IDataSet set in controller.data.dataSets) + for (IDataSet set in controller.data!.dataSets!) set.setDrawValues(!set.isDrawValuesEnabled()); - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'D': - List sets = controller.data.dataSets; + List sets = controller.data!.dataSets!; for (IBarDataSet iSet in sets) { BarDataSet set = iSet as BarDataSet; set.setDrawIcons(!set.isDrawIconsEnabled()); } - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'E': if (controller.data != null) { - controller.data - .setHighlightEnabled(!controller.data.isHighlightEnabled()); - controller.state.setStateIfNotDispose(); + controller.data! + .setHighlightEnabled(!controller.data!.isHighlightEnabled()); + controller.state!.setStateIfNotDispose(); } break; case 'F': controller.pinchZoomEnabled = !controller.pinchZoomEnabled; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'G': controller.autoScaleMinMaxEnabled = !controller.autoScaleMinMaxEnabled; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'H': controller.animator @@ -340,7 +340,7 @@ abstract class BarActionState extends ActionState { break; case 'K': captureImg(() { - controller.state.capture(); + controller.state!.capture(); }); break; } @@ -349,22 +349,22 @@ abstract class BarActionState extends ActionState { abstract class HorizontalBarActionState extends ActionState { - HorizontalBarChartController controller; + late HorizontalBarChartController controller; @override getBuilder() { return (BuildContext context) => >[ - item('View on GitHub', 'A'), - item('Toggle Bar Borders', 'B'), - item('Toggle Values', 'C'), - item('Toggle Icons', 'D'), - item('Toggle Highlight', 'E'), - item('Toggle PinchZoom', 'F'), - item('Toggle Auto Scale', 'G'), - item('Animate X', 'H'), - item('Animate Y', 'I'), - item('Animate XY', 'J'), - item('Save to Gallery', 'K'), + item('View on GitHub', 'A') as PopupMenuItem, + item('Toggle Bar Borders', 'B') as PopupMenuItem, + item('Toggle Values', 'C') as PopupMenuItem, + item('Toggle Icons', 'D') as PopupMenuItem, + item('Toggle Highlight', 'E') as PopupMenuItem, + item('Toggle PinchZoom', 'F') as PopupMenuItem, + item('Toggle Auto Scale', 'G') as PopupMenuItem, + item('Animate X', 'H') as PopupMenuItem, + item('Animate Y', 'I') as PopupMenuItem, + item('Animate XY', 'J') as PopupMenuItem, + item('Save to Gallery', 'K') as PopupMenuItem, ]; } @@ -379,38 +379,38 @@ abstract class HorizontalBarActionState Util.openGithub(); break; case 'B': - for (IBarDataSet set in controller.data.dataSets) + for (IBarDataSet set in controller.data!.dataSets!) (set as BarDataSet) .setBarBorderWidth(set.getBarBorderWidth() == 1.0 ? 0.0 : 1.0); - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'C': - for (IDataSet set in controller.data.dataSets) + for (IDataSet set in controller.data!.dataSets!) set.setDrawValues(!set.isDrawValuesEnabled()); - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'D': - List sets = controller.data.dataSets; + List sets = controller.data!.dataSets!; for (IBarDataSet iSet in sets) { BarDataSet set = iSet as BarDataSet; set.setDrawIcons(!set.isDrawIconsEnabled()); } - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'E': if (controller.data != null) { - controller.data - .setHighlightEnabled(!controller.data.isHighlightEnabled()); - controller.state.setStateIfNotDispose(); + controller.data! + .setHighlightEnabled(!controller.data!.isHighlightEnabled()); + controller.state!.setStateIfNotDispose(); } break; case 'F': controller.pinchZoomEnabled = !controller.pinchZoomEnabled; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'G': controller.autoScaleMinMaxEnabled = !controller.autoScaleMinMaxEnabled; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'H': controller.animator @@ -429,7 +429,7 @@ abstract class HorizontalBarActionState break; case 'K': captureImg(() { - controller.state.capture(); + controller.state!.capture(); }); break; } @@ -437,25 +437,25 @@ abstract class HorizontalBarActionState } abstract class PieActionState extends ActionState { - PieChartController controller; + late PieChartController controller; @override getBuilder() { return (BuildContext context) => >[ - item('View on GitHub', 'A'), - item('Toggle Y-Values', 'B'), - item('Toggle X-Values', 'C'), - item('Toggle Icons', 'D'), - item('Toggle Percent', 'E'), - item('Toggle Minimum Angles', 'F'), - item('Toggle Hole', 'G'), - item('Toggle Curved Slices Cubic', 'H'), - item('Draw Center Text', 'I'), - item('Spin Animation', 'J'), - item('Animate X', 'K'), - item('Animate Y', 'L'), - item('Animate XY', 'M'), - item('Save to Gallery', 'N'), + item('View on GitHub', 'A') as PopupMenuItem, + item('Toggle Y-Values', 'B') as PopupMenuItem, + item('Toggle X-Values', 'C') as PopupMenuItem, + item('Toggle Icons', 'D') as PopupMenuItem, + item('Toggle Percent', 'E') as PopupMenuItem, + item('Toggle Minimum Angles', 'F') as PopupMenuItem, + item('Toggle Hole', 'G') as PopupMenuItem, + item('Toggle Curved Slices Cubic', 'H') as PopupMenuItem, + item('Draw Center Text', 'I') as PopupMenuItem, + item('Spin Animation', 'J') as PopupMenuItem, + item('Animate X', 'K') as PopupMenuItem, + item('Animate Y', 'L') as PopupMenuItem, + item('Animate XY', 'M') as PopupMenuItem, + item('Save to Gallery', 'N') as PopupMenuItem, ]; } @@ -470,22 +470,22 @@ abstract class PieActionState extends ActionState { Util.openGithub(); break; case 'B': - for (IDataSet set in controller.data.dataSets) + for (IDataSet set in controller.data!.dataSets!) set.setDrawValues(!set.isDrawValuesEnabled()); - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'C': controller.drawEntryLabels = !controller.drawEntryLabels; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'D': - for (IDataSet set in controller.data.dataSets) + for (IDataSet set in controller.data!.dataSets!) set.setDrawIcons(!set.isDrawIconsEnabled()); - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'E': controller.usePercentValues = !controller.usePercentValues; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'F': if (controller.minAngleForSlices == 0) { @@ -493,11 +493,11 @@ abstract class PieActionState extends ActionState { } else { controller.minAngleForSlices = 0; } - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'G': controller.drawHole = !controller.drawHole; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'H': bool toSet = !controller.drawRoundedSlices || !controller.drawHole; @@ -508,11 +508,11 @@ abstract class PieActionState extends ActionState { if (toSet && controller.drawSlicesUnderHole) { controller.drawSlicesUnderHole = false; } - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'I': controller.drawCenterText = !controller.drawCenterText; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'J': controller.animator @@ -537,7 +537,7 @@ abstract class PieActionState extends ActionState { break; case 'N': captureImg(() { - controller.state.capture(); + controller.state!.capture(); }); break; } @@ -546,16 +546,16 @@ abstract class PieActionState extends ActionState { abstract class CombinedActionState extends ActionState { - CombinedChartController controller; + late CombinedChartController controller; @override getBuilder() { return (BuildContext context) => >[ - item('View on GitHub', 'A'), - item('Toggle Line Values', 'B'), - item('Toggle Bar Values', 'C'), - item('Remove Data Set', 'D'), - item('Set Y Range Test', 'E') + item('View on GitHub', 'A') as PopupMenuItem, + item('Toggle Line Values', 'B') as PopupMenuItem, + item('Toggle Bar Values', 'C') as PopupMenuItem, + item('Remove Data Set', 'D') as PopupMenuItem, + item('Set Y Range Test', 'E') as PopupMenuItem ]; } @@ -570,30 +570,30 @@ abstract class CombinedActionState Util.openGithub(); break; case 'B': - for (IDataSet set in controller.data.dataSets) { + for (IDataSet set in controller.data!.dataSets!) { if (set is LineDataSet) set.setDrawValues(!set.isDrawValuesEnabled()); } - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'C': - for (IDataSet set in controller.data.dataSets) { + for (IDataSet set in controller.data!.dataSets!) { if (set is BarDataSet) set.setDrawValues(!set.isDrawValuesEnabled()); } - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'D': - if (controller.data.getDataSetCount() > 1) { - int rnd = _getRandom(controller.data.getDataSetCount().toDouble(), 0) + if (controller.data!.getDataSetCount() > 1) { + int rnd = _getRandom(controller.data!.getDataSetCount().toDouble(), 0) .toInt(); - controller.data - .removeDataSet1(controller.data.getDataSetByIndex(rnd)); - controller.data.notifyDataChanged(); - controller.state.setStateIfNotDispose(); + controller.data! + .removeDataSet1(controller.data!.getDataSetByIndex(rnd)!); + controller.data!.notifyDataChanged(); + controller.state!.setStateIfNotDispose(); } break; case 'E': controller.setVisibleYRangeMaximum(100, AxisDependency.LEFT); - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; } } @@ -605,21 +605,21 @@ abstract class CombinedActionState abstract class ScatterActionState extends ActionState { - ScatterChartController controller; + late ScatterChartController controller; @override getBuilder() { return (BuildContext context) => >[ - item('View on GitHub', 'A'), - item('Toggle Values', 'B'), - item('Toggle Icons', 'C'), - item('Toggle Highlight', 'D'), - item('Animate X', 'E'), - item('Animate Y', 'F'), - item('Animate XY', 'G'), - item('Toggle PinchZoom', 'H'), - item('Toggle Auto Scale', 'I'), - item('Save to Gallery', 'J'), + item('View on GitHub', 'A') as PopupMenuItem, + item('Toggle Values', 'B') as PopupMenuItem, + item('Toggle Icons', 'C') as PopupMenuItem, + item('Toggle Highlight', 'D') as PopupMenuItem, + item('Animate X', 'E') as PopupMenuItem, + item('Animate Y', 'F') as PopupMenuItem, + item('Animate XY', 'G') as PopupMenuItem, + item('Toggle PinchZoom', 'H') as PopupMenuItem, + item('Toggle Auto Scale', 'I') as PopupMenuItem, + item('Save to Gallery', 'J') as PopupMenuItem, ]; } @@ -634,23 +634,23 @@ abstract class ScatterActionState Util.openGithub(); break; case 'B': - List sets = controller.data.dataSets; + List sets = controller.data!.dataSets!; for (IScatterDataSet iSet in sets) { ScatterDataSet set = iSet as ScatterDataSet; set.setDrawValues(!set.isDrawValuesEnabled()); } - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'C': - for (IDataSet set in controller.data.dataSets) + for (IDataSet set in controller.data!.dataSets!) set.setDrawIcons(!set.isDrawIconsEnabled()); - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'D': if (controller.data != null) { - controller.data - .setHighlightEnabled(!controller.data.isHighlightEnabled()); - controller.state.setStateIfNotDispose(); + controller.data! + .setHighlightEnabled(!controller.data!.isHighlightEnabled()); + controller.state!.setStateIfNotDispose(); } break; case 'E': @@ -670,15 +670,15 @@ abstract class ScatterActionState break; case 'H': controller.pinchZoomEnabled = !controller.pinchZoomEnabled; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'I': controller.autoScaleMinMaxEnabled = !controller.autoScaleMinMaxEnabled; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'J': captureImg(() { - controller.state.capture(); + controller.state!.capture(); }); break; } @@ -687,21 +687,21 @@ abstract class ScatterActionState abstract class BubbleActionState extends ActionState { - BubbleChartController controller; + late BubbleChartController controller; @override getBuilder() { return (BuildContext context) => >[ - item('View on GitHub', 'A'), - item('Toggle Values', 'B'), - item('Toggle Icons', 'C'), - item('Toggle Highlight', 'D'), - item('Toggle PinchZoom', 'H'), - item('Toggle Auto Scale', 'I'), - item('Animate X', 'E'), - item('Animate Y', 'F'), - item('Animate XY', 'G'), - item('Save to Gallery', 'J'), + item('View on GitHub', 'A') as PopupMenuItem, + item('Toggle Values', 'B') as PopupMenuItem, + item('Toggle Icons', 'C') as PopupMenuItem, + item('Toggle Highlight', 'D') as PopupMenuItem, + item('Toggle PinchZoom', 'H') as PopupMenuItem, + item('Toggle Auto Scale', 'I') as PopupMenuItem, + item('Animate X', 'E') as PopupMenuItem, + item('Animate Y', 'F') as PopupMenuItem, + item('Animate XY', 'G') as PopupMenuItem, + item('Save to Gallery', 'J') as PopupMenuItem, ]; } @@ -716,20 +716,20 @@ abstract class BubbleActionState Util.openGithub(); break; case 'B': - for (IDataSet set in controller.data.dataSets) + for (IDataSet set in controller.data!.dataSets!) set.setDrawValues(!set.isDrawValuesEnabled()); - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'C': - for (IDataSet set in controller.data.dataSets) + for (IDataSet set in controller.data!.dataSets!) set.setDrawIcons(!set.isDrawIconsEnabled()); - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'D': if (controller.data != null) { - controller.data - .setHighlightEnabled(!controller.data.isHighlightEnabled()); - controller.state.setStateIfNotDispose(); + controller.data! + .setHighlightEnabled(!controller.data!.isHighlightEnabled()); + controller.state!.setStateIfNotDispose(); } break; case 'E': @@ -749,15 +749,15 @@ abstract class BubbleActionState break; case 'H': controller.pinchZoomEnabled = !controller.pinchZoomEnabled; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'I': controller.autoScaleMinMaxEnabled = !controller.autoScaleMinMaxEnabled; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'J': captureImg(() { - controller.state.capture(); + controller.state!.capture(); }); break; } @@ -766,22 +766,22 @@ abstract class BubbleActionState abstract class CandlestickActionState extends ActionState { - CandlestickChartController controller; + late CandlestickChartController controller; @override getBuilder() { return (BuildContext context) => >[ - item('View on GitHub', 'A'), - item('Toggle Values', 'B'), - item('Toggle Icons', 'C'), - item('Toggle Highlight', 'D'), - item('Toggle Shadow Color', 'K'), - item('Toggle PinchZoom', 'H'), - item('Toggle Auto Scale', 'I'), - item('Animate X', 'E'), - item('Animate Y', 'F'), - item('Animate XY', 'G'), - item('Save to Gallery', 'J'), + item('View on GitHub', 'A') as PopupMenuItem, + item('Toggle Values', 'B') as PopupMenuItem, + item('Toggle Icons', 'C') as PopupMenuItem, + item('Toggle Highlight', 'D') as PopupMenuItem, + item('Toggle Shadow Color', 'K') as PopupMenuItem, + item('Toggle PinchZoom', 'H') as PopupMenuItem, + item('Toggle Auto Scale', 'I') as PopupMenuItem, + item('Animate X', 'E') as PopupMenuItem, + item('Animate Y', 'F') as PopupMenuItem, + item('Animate XY', 'G') as PopupMenuItem, + item('Save to Gallery', 'J') as PopupMenuItem, ]; } @@ -796,20 +796,20 @@ abstract class CandlestickActionState Util.openGithub(); break; case 'B': - for (IDataSet set in controller.data.dataSets) + for (IDataSet set in controller.data!.dataSets!) set.setDrawValues(!set.isDrawValuesEnabled()); - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'C': - for (IDataSet set in controller.data.dataSets) + for (IDataSet set in controller.data!.dataSets!) set.setDrawIcons(!set.isDrawIconsEnabled()); - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'D': if (controller.data != null) { - controller.data - .setHighlightEnabled(!controller.data.isHighlightEnabled()); - controller.state.setStateIfNotDispose(); + controller.data! + .setHighlightEnabled(!controller.data!.isHighlightEnabled()); + controller.state!.setStateIfNotDispose(); } break; case 'E': @@ -829,23 +829,23 @@ abstract class CandlestickActionState break; case 'H': controller.pinchZoomEnabled = !controller.pinchZoomEnabled; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'I': controller.autoScaleMinMaxEnabled = !controller.autoScaleMinMaxEnabled; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'J': captureImg(() { - controller.state.capture(); + controller.state!.capture(); }); break; case 'K': - for (ICandleDataSet set in controller.data.dataSets) { + for (ICandleDataSet set in controller.data!.dataSets!) { (set as CandleDataSet) .setShadowColorSameAsCandle(!set.getShadowColorSameAsCandle()); } - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; } } @@ -853,25 +853,25 @@ abstract class CandlestickActionState abstract class RadarActionState extends ActionState { - RadarChartController controller; + late RadarChartController controller; @override getBuilder() { return (BuildContext context) => >[ - item('View on GitHub', 'A'), - item('Toggle Values', 'B'), - item('Toggle Icons', 'C'), - item('Toggle Filled', 'D'), - item('Toggle Highlight', 'E'), - item('Toggle Highlight Circle', 'F'), - item('Toggle Rotation', 'G'), - item('Toggle Y-Values', 'H'), - item('Toggle X-Values', 'I'), - item('Spin Animation', 'J'), - item('Animate X', 'K'), - item('Animate Y', 'L'), - item('Animate XY', 'M'), - item('Save to Gallery', 'N'), + item('View on GitHub', 'A') as PopupMenuItem, + item('Toggle Values', 'B') as PopupMenuItem, + item('Toggle Icons', 'C') as PopupMenuItem, + item('Toggle Filled', 'D') as PopupMenuItem, + item('Toggle Highlight', 'E') as PopupMenuItem, + item('Toggle Highlight Circle', 'F') as PopupMenuItem, + item('Toggle Rotation', 'G') as PopupMenuItem, + item('Toggle Y-Values', 'H') as PopupMenuItem, + item('Toggle X-Values', 'I') as PopupMenuItem, + item('Spin Animation', 'J') as PopupMenuItem, + item('Animate X', 'K') as PopupMenuItem, + item('Animate Y', 'L') as PopupMenuItem, + item('Animate XY', 'M') as PopupMenuItem, + item('Save to Gallery', 'N') as PopupMenuItem, ]; } @@ -886,51 +886,51 @@ abstract class RadarActionState Util.openGithub(); break; case 'B': - for (IDataSet set in controller.data.dataSets) + for (IDataSet set in controller.data!.dataSets!) set.setDrawValues(!set.isDrawValuesEnabled()); - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'C': - for (IDataSet set in controller.data.dataSets) + for (IDataSet set in controller.data!.dataSets!) set.setDrawIcons(!set.isDrawIconsEnabled()); - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'D': - List sets = controller.data.dataSets; + List sets = controller.data!.dataSets!; for (IRadarDataSet set in sets) { if (set.isDrawFilledEnabled()) set.setDrawFilled(false); else set.setDrawFilled(true); } - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'E': if (controller.data != null) { - controller.data - .setHighlightEnabled(!controller.data.isHighlightEnabled()); - controller.state.setStateIfNotDispose(); + controller.data! + .setHighlightEnabled(!controller.data!.isHighlightEnabled()); + controller.state!.setStateIfNotDispose(); } break; case 'F': - List sets = controller.data.dataSets; + List sets = controller.data!.dataSets!; for (IRadarDataSet set in sets) { set.setDrawHighlightCircleEnabled( !set.isDrawHighlightCircleEnabled()); } - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'G': controller.rotateEnabled = !controller.rotateEnabled; - controller.state.setStateIfNotDispose(); + controller.state!.setStateIfNotDispose(); break; case 'H': - controller.yAxis.enabled = !controller.yAxis.enabled; - controller.state.setStateIfNotDispose(); + controller.yAxis!.enabled = !controller.yAxis!.enabled; + controller.state!.setStateIfNotDispose(); break; case 'I': - controller.xAxis.enabled = !controller.xAxis.enabled; - controller.state.setStateIfNotDispose(); + controller.xAxis!.enabled = !controller.xAxis!.enabled; + controller.state!.setStateIfNotDispose(); break; case 'J': controller.animator @@ -955,7 +955,7 @@ abstract class RadarActionState break; case 'N': captureImg(() { - controller.state.capture(); + controller.state!.capture(); }); break; } diff --git a/mp_chart/example/lib/demo/bar_chart/basic.dart b/mp_chart/example/lib/demo/bar_chart/basic.dart index 847bad31..79033a2a 100644 --- a/mp_chart/example/lib/demo/bar_chart/basic.dart +++ b/mp_chart/example/lib/demo/bar_chart/basic.dart @@ -178,7 +178,7 @@ class BarChartBasicState extends BarActionState ..drawGridLines = false ..setGranularity(1.0) ..setLabelCount1(7) - ..setValueFormatter(DayAxisValueFormatter(controller)); + ..setValueFormatter(DayAxisValueFormatter(controller as BarLineScatterCandleBubbleController>?>>)); }, selectionListener: this, drawBarShadow: false, @@ -257,7 +257,7 @@ class BarChartBasicState extends BarActionState void onNothingSelected() {} @override - void onValueSelected(Entry e, Highlight h) { + void onValueSelected(Entry? e, Highlight? h) { // if (e == null) // return; // @@ -278,7 +278,7 @@ class BarChartBasicState extends BarActionState class MyChartTransListener with ChartTransListener { @override - void scale(double scaleX, double scaleY, double x, double y) { + void scale(double scaleX, double scaleY, double? x, double? y) { print("scale scaleX: $scaleX, scaleY: $scaleY, x: $x, y: $y"); } @@ -290,47 +290,47 @@ class MyChartTransListener with ChartTransListener { class MyTouchEventListener with OnTouchEventListener { @override - void onDoubleTapUp(double x, double y) { + void onDoubleTapUp(double? x, double? y) { print("onDoubleTapUp x: $x, y: $y"); } @override - void onMoveEnd(double x, double y) { + void onMoveEnd(double? x, double? y) { print("onMoveEnd x: $x, y: $y"); } @override - void onMoveStart(double x, double y) { + void onMoveStart(double? x, double? y) { print("onMoveStart x: $x, y: $y"); } @override - void onMoveUpdate(double x, double y) { + void onMoveUpdate(double? x, double? y) { print("onMoveUpdate x: $x, y: $y"); } @override - void onScaleEnd(double x, double y) { + void onScaleEnd(double? x, double? y) { print("onScaleEnd x: $x, y: $y"); } @override - void onScaleStart(double x, double y) { + void onScaleStart(double? x, double? y) { print("onScaleStart x: $x, y: $y"); } @override - void onScaleUpdate(double x, double y) { + void onScaleUpdate(double? x, double? y) { print("onScaleUpdate x: $x, y: $y"); } @override - void onSingleTapUp(double x, double y) { + void onSingleTapUp(double? x, double? y) { print("onSingleTapUp x: $x, y: $y"); } @override - void onTapDown(double x, double y) { + void onTapDown(double? x, double? y) { print("onTapDown x: $x, y: $y"); } @@ -340,17 +340,17 @@ class MyTouchEventListener with OnTouchEventListener { } @override - void onDragEnd(double x, double y) { + void onDragEnd(double? x, double? y) { print("onDragEnd x: $x, y: $y"); } @override - void onDragStart(double x, double y) { + void onDragStart(double? x, double? y) { print("onDragStart x: $x, y: $y"); } @override - void onDragUpdate(double x, double y) { + void onDragUpdate(double? x, double? y) { print("onDragUpdate x: $x, y: $y"); } } diff --git a/mp_chart/example/lib/demo/bar_chart/basic2.dart b/mp_chart/example/lib/demo/bar_chart/basic2.dart index cb5dce4a..18e849a4 100644 --- a/mp_chart/example/lib/demo/bar_chart/basic2.dart +++ b/mp_chart/example/lib/demo/bar_chart/basic2.dart @@ -152,10 +152,10 @@ class BarChartBasic2State extends BarActionState { var desc = Description()..enabled = false; controller = BarChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft.drawGridLines = false; + axisLeft!.drawGridLines = false; }, legendSettingFunction: (legend, controller) { - legend.enabled = false; + legend!.enabled = false; }, xAxisSettingFunction: (xAxis, controller) { xAxis diff --git a/mp_chart/example/lib/demo/bar_chart/horizontal.dart b/mp_chart/example/lib/demo/bar_chart/horizontal.dart index f7cda5f8..cb4554f4 100644 --- a/mp_chart/example/lib/demo/bar_chart/horizontal.dart +++ b/mp_chart/example/lib/demo/bar_chart/horizontal.dart @@ -251,7 +251,7 @@ class BarChartHorizontalState void onNothingSelected() {} @override - void onValueSelected(Entry e, Highlight h) { + void onValueSelected(Entry? e, Highlight? h) { // if (e == null) // return; // diff --git a/mp_chart/example/lib/demo/bar_chart/multiple.dart b/mp_chart/example/lib/demo/bar_chart/multiple.dart index 08c289e7..42bcaa1e 100644 --- a/mp_chart/example/lib/demo/bar_chart/multiple.dart +++ b/mp_chart/example/lib/demo/bar_chart/multiple.dart @@ -147,7 +147,7 @@ class BarChartMultipleState extends BarActionState ..setAxisMinimum(0); }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { legend @@ -188,13 +188,13 @@ class BarChartMultipleState extends BarActionState description: desc); } - int groupCount; - int startYear; - int endYear; + late int groupCount; + late int startYear; + late int endYear; bool isDataInitial = false; void _initBarData(int count, double range) async { - List imgs = List(3); + List imgs = List(3); imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); @@ -255,12 +255,12 @@ class BarChartMultipleState extends BarActionState void onNothingSelected() {} @override - void onValueSelected(Entry e, Highlight h) {} + void onValueSelected(Entry? e, Highlight? h) {} } class A extends ValueFormatter { @override - String getFormattedValue1(double value) { - return value.toInt().toString(); + String getFormattedValue1(double? value) { + return value!.toInt().toString(); } } diff --git a/mp_chart/example/lib/demo/bar_chart/negative.dart b/mp_chart/example/lib/demo/bar_chart/negative.dart index f62951bc..e0cc8095 100644 --- a/mp_chart/example/lib/demo/bar_chart/negative.dart +++ b/mp_chart/example/lib/demo/bar_chart/negative.dart @@ -22,7 +22,7 @@ class BarChartNegative extends StatefulWidget { } class BarChartNegativeState extends SimpleActionState { - BarChartController _controller; + late BarChartController _controller; List _data = List(); @override @@ -105,10 +105,10 @@ class BarChartNegativeState extends SimpleActionState { ..zeroLineWidth = 0.7; }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { - legend.enabled = (false); + legend!.enabled = (false); }, xAxisSettingFunction: (xAxis, controller) { xAxis @@ -145,8 +145,8 @@ class A extends ValueFormatter { A(this._data) : super(); @override - String getFormattedValue1(double value) { - return _data[min(max(value.toInt(), 0), _data.length - 1)].xAxisValue; + String getFormattedValue1(double? value) { + return _data[min(max(value!.toInt(), 0), _data.length - 1)].xAxisValue; } } @@ -159,14 +159,14 @@ class Data { } class Formatter extends ValueFormatter { - NumberFormat _format; + late NumberFormat _format; Formatter() : super() { _format = NumberFormat("######.0"); } @override - String getFormattedValue1(double value) { + String getFormattedValue1(double? value) { return _format.format(value); } } diff --git a/mp_chart/example/lib/demo/bar_chart/sine.dart b/mp_chart/example/lib/demo/bar_chart/sine.dart index e16229ca..6afa4425 100644 --- a/mp_chart/example/lib/demo/bar_chart/sine.dart +++ b/mp_chart/example/lib/demo/bar_chart/sine.dart @@ -23,7 +23,7 @@ class BarChartSine extends StatefulWidget { } class BarChartSineState extends BarActionState { - List _data; + List? _data; var random = Random(1); int _count = 150; @@ -37,7 +37,7 @@ class BarChartSineState extends BarActionState { var datas = lines[i].split("#"); var x = double.parse(datas[1]); var y = double.parse(datas[0]); - _data.add(BarEntry(x: x, y: y)); + _data!.add(BarEntry(x: x, y: y)); } _initBarData(_count); }); @@ -137,7 +137,7 @@ class BarChartSineState extends BarActionState { ..xEntrySpace = (4); }, xAxisSettingFunction: (xAxis, controller) { - xAxis.enabled = (false); + xAxis!.enabled = (false); }, drawGridBackground: false, dragXEnabled: true, @@ -156,7 +156,7 @@ class BarChartSineState extends BarActionState { List entries = List(); for (int i = 0; i < count; i++) { - entries.add(_data[i]); + entries.add(_data![i]); } BarDataSet set = BarDataSet(entries, "Sinus Function"); diff --git a/mp_chart/example/lib/demo/bar_chart/stacked.dart b/mp_chart/example/lib/demo/bar_chart/stacked.dart index f8f37787..3f6decd7 100644 --- a/mp_chart/example/lib/demo/bar_chart/stacked.dart +++ b/mp_chart/example/lib/demo/bar_chart/stacked.dart @@ -182,7 +182,7 @@ class BarChartStackedState extends BarActionState ..setAxisMinimum(0); }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { legend @@ -196,7 +196,7 @@ class BarChartStackedState extends BarActionState ..xEntrySpace = (6); }, xAxisSettingFunction: (xAxis, controller) { - xAxis.position = (XAxisPosition.TOP); + xAxis!.position = (XAxisPosition.TOP); }, drawGridBackground: false, dragXEnabled: true, @@ -217,5 +217,5 @@ class BarChartStackedState extends BarActionState void onNothingSelected() {} @override - void onValueSelected(Entry e, Highlight h) {} + void onValueSelected(Entry? e, Highlight? h) {} } diff --git a/mp_chart/example/lib/demo/bar_chart/stacked2.dart b/mp_chart/example/lib/demo/bar_chart/stacked2.dart index 3e5185d1..def08157 100644 --- a/mp_chart/example/lib/demo/bar_chart/stacked2.dart +++ b/mp_chart/example/lib/demo/bar_chart/stacked2.dart @@ -94,7 +94,7 @@ class BarChartStacked2State extends HorizontalBarActionState set.setStackLabels(List()..add("Men")..add("Women")); controller.data = BarData(List()..add(set)); - controller.data.barWidth = (8.5); + controller.data!.barWidth = (8.5); setState(() {}); } @@ -103,7 +103,7 @@ class BarChartStacked2State extends HorizontalBarActionState var desc = Description()..enabled = false; controller = HorizontalBarChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft.enabled = (false); + axisLeft!.enabled = (false); }, axisRightSettingFunction: (axisRight, controller) { axisRight @@ -155,31 +155,31 @@ class BarChartStacked2State extends HorizontalBarActionState void onNothingSelected() {} @override - void onValueSelected(Entry e, Highlight h) {} + void onValueSelected(Entry? e, Highlight? h) {} } class A extends ValueFormatter { - NumberFormat mFormat; + late NumberFormat mFormat; A() { mFormat = NumberFormat("###"); } @override - String getFormattedValue1(double value) { - return mFormat.format(value.abs()) + "m"; + String getFormattedValue1(double? value) { + return mFormat.format(value!.abs()) + "m"; } } class B extends ValueFormatter { - NumberFormat mFormat; + late NumberFormat mFormat; B() { mFormat = NumberFormat("###"); } @override - String getFormattedValue1(double value) { - return mFormat.format(value) + "-" + mFormat.format(value + 10); + String getFormattedValue1(double? value) { + return mFormat.format(value) + "-" + mFormat.format(value! + 10); } } diff --git a/mp_chart/example/lib/demo/even_more/dynamic.dart b/mp_chart/example/lib/demo/even_more/dynamic.dart index 0d440e52..c020a44c 100644 --- a/mp_chart/example/lib/demo/even_more/dynamic.dart +++ b/mp_chart/example/lib/demo/even_more/dynamic.dart @@ -25,7 +25,7 @@ class EvenMoreDynamic extends StatefulWidget { class EvenMoreDynamicState extends ActionState implements OnChartValueSelectedListener { - LineChartController controller; + LineChartController? controller; @override void initState() { @@ -42,7 +42,7 @@ class EvenMoreDynamicState extends ActionState left: 0, top: 0, bottom: 0, - child: LineChart(controller), + child: LineChart(controller!), ), ], ); @@ -51,13 +51,13 @@ class EvenMoreDynamicState extends ActionState @override getBuilder() { return (BuildContext context) => >[ - item('View on GitHub', 'A'), - item('Add Entry', 'B'), - item('Remove Entry', 'C'), - item('Add Data Set', 'D'), - item('Remove Data Set', 'E'), - item('Clear chart', 'F'), - item('Save to Gallery', 'G'), + item('View on GitHub', 'A') as PopupMenuItem, + item('Add Entry', 'B') as PopupMenuItem, + item('Remove Entry', 'C') as PopupMenuItem, + item('Add Data Set', 'D') as PopupMenuItem, + item('Remove Data Set', 'E') as PopupMenuItem, + item('Clear chart', 'F') as PopupMenuItem, + item('Save to Gallery', 'G') as PopupMenuItem, ]; } @@ -68,7 +68,7 @@ class EvenMoreDynamicState extends ActionState @override void itemClick(String action) { - if (controller.state == null) { + if (controller!.state == null) { return; } @@ -78,27 +78,27 @@ class EvenMoreDynamicState extends ActionState break; case 'B': _addEntry(); - controller.state.setStateIfNotDispose(); + controller!.state!.setStateIfNotDispose(); break; case 'C': _removeLastEntry(); - controller.state.setStateIfNotDispose(); + controller!.state!.setStateIfNotDispose(); break; case 'D': _addDataSet(); - controller.state.setStateIfNotDispose(); + controller!.state!.setStateIfNotDispose(); break; case 'E': _removeDataSet(); - controller.state.setStateIfNotDispose(); + controller!.state!.setStateIfNotDispose(); break; case 'F': - controller.data = null; - controller.state.setStateIfNotDispose(); + controller!.data = null; + controller!.state!.setStateIfNotDispose(); break; case 'G': captureImg(() { - controller.state.capture(); + controller!.state!.capture(); }); break; } @@ -124,20 +124,20 @@ class EvenMoreDynamicState extends ActionState void onNothingSelected() {} @override - void onValueSelected(Entry e, Highlight h) {} + void onValueSelected(Entry? e, Highlight? h) {} final List colors = ColorUtils.VORDIPLOM_COLORS; var random = Random(1); void _addEntry() { - LineData data = controller?.data; + LineData? data = controller?.data; if (data == null) { data = LineData(); - controller.data = data; + controller!.data = data; } - ILineDataSet set = data.getDataSetByIndex(0); + ILineDataSet? set = data.getDataSetByIndex(0); // set.addEntry(...); // can be called as well if (set == null) { @@ -148,7 +148,7 @@ class EvenMoreDynamicState extends ActionState // choose a random dataSet int randomDataSetIndex = (random.nextDouble() * data.getDataSetCount()).toInt(); - ILineDataSet randomSet = data.getDataSetByIndex(randomDataSetIndex); + ILineDataSet randomSet = data.getDataSetByIndex(randomDataSetIndex)!; double value = (random.nextDouble() * 50) + 50 * (randomDataSetIndex + 1); @@ -161,10 +161,10 @@ class EvenMoreDynamicState extends ActionState randomDataSetIndex); data.notifyDataChanged(); - controller.setVisibleXRangeMaximum(6); - controller.moveViewTo( + controller!.setVisibleXRangeMaximum(6); + controller!.moveViewTo( (data.getEntryCount() - 7).toDouble(), 50, AxisDependency.LEFT); - controller.state?.setStateIfNotDispose(); + controller!.state?.setStateIfNotDispose(); } LineDataSet _createSet() { @@ -180,24 +180,24 @@ class EvenMoreDynamicState extends ActionState } void _removeLastEntry() { - LineData data = controller?.data; + LineData? data = controller?.data; if (data != null) { - ILineDataSet set = data.getDataSetByIndex(0); + ILineDataSet? set = data.getDataSetByIndex(0); if (set != null) { Entry e = set.getEntryForXValue2( - (set.getEntryCount() - 1).toDouble(), double.nan); + (set.getEntryCount() - 1).toDouble(), double.nan)!; data.removeEntry1(e, 0); } } } void _addDataSet() { - LineData data = controller?.data; + LineData? data = controller?.data; if (data == null) { - controller.data = LineData(); + controller!.data = LineData(); } else { int count = (data.getDataSetCount() + 1); - int amount = data.getDataSetByIndex(0).getEntryCount(); + int amount = data.getDataSetByIndex(0)!.getEntryCount(); List values = List(); for (int i = 0; i < amount; i++) { values.add(new Entry( @@ -217,9 +217,9 @@ class EvenMoreDynamicState extends ActionState } void _removeDataSet() { - LineData data = controller.data; + LineData? data = controller!.data; if (data != null) { - data.removeDataSet1(data.getDataSetByIndex(data.getDataSetCount() - 1)); + data.removeDataSet1(data.getDataSetByIndex(data.getDataSetCount() - 1)!); } } } diff --git a/mp_chart/example/lib/demo/even_more/hourly.dart b/mp_chart/example/lib/demo/even_more/hourly.dart index 2eaf0949..113e1cf2 100644 --- a/mp_chart/example/lib/demo/even_more/hourly.dart +++ b/mp_chart/example/lib/demo/even_more/hourly.dart @@ -47,7 +47,7 @@ class EvenMoreHourlyState extends LineActionState { left: 0, top: 0, bottom: 100, - child: LineChart(controller), + child: LineChart(controller!), ), Positioned( left: 0, @@ -110,11 +110,11 @@ class EvenMoreHourlyState extends LineActionState { ..textColor = (Color.fromARGB(255, 255, 192, 56)); }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { (controller as LineChartController).setViewPortOffsets(0, 0, 0, 0); - legend.enabled = (false); + legend!.enabled = (false); }, xAxisSettingFunction: (xAxis, controller) { xAxis @@ -171,8 +171,8 @@ class EvenMoreHourlyState extends LineActionState { set1.setDrawCircleHole(false); // create a data object with the data sets - controller.data = LineData.fromList(List()..add(set1)); - controller.data + controller!.data = LineData.fromList(List()..add(set1)); + controller!.data ..setValueTextColor(ColorUtils.getHoloBlue()) ..setValueTextSize(9); @@ -188,7 +188,7 @@ class A extends ValueFormatter { final intl.DateFormat mFormat = intl.DateFormat("dd MMM HH:mm"); @override - String getFormattedValue1(double value) { + String getFormattedValue1(double? value) { return mFormat.format(DateTime.now()); } } diff --git a/mp_chart/example/lib/demo/even_more/realtime.dart b/mp_chart/example/lib/demo/even_more/realtime.dart index 1fd3387f..23cafd13 100644 --- a/mp_chart/example/lib/demo/even_more/realtime.dart +++ b/mp_chart/example/lib/demo/even_more/realtime.dart @@ -27,7 +27,7 @@ class EvenMoreRealtime extends StatefulWidget { class EvenMoreRealtimeState extends ActionState implements OnChartValueSelectedListener { - LineChartController controller; + LineChartController? controller; var random = Random(1); var isMultipleRun = false; @@ -46,7 +46,7 @@ class EvenMoreRealtimeState extends ActionState left: 0, top: 0, bottom: 0, - child: LineChart(controller), + child: LineChart(controller!), ), ], ); @@ -56,12 +56,12 @@ class EvenMoreRealtimeState extends ActionState getBuilder() { return (BuildContext context) => >[ - item('View on GitHub', 'A'), - item('Add Entry', 'B'), - item('Clear Chart', 'C'), - item('Add Multiple', 'D'), - item('Save to Gallery', 'E'), - item('Update Random Single Entry', 'F'), + item('View on GitHub', 'A') as PopupMenuItem, + item('Add Entry', 'B') as PopupMenuItem, + item('Clear Chart', 'C') as PopupMenuItem, + item('Add Multiple', 'D') as PopupMenuItem, + item('Save to Gallery', 'E') as PopupMenuItem, + item('Update Random Single Entry', 'F') as PopupMenuItem, ]; } @@ -72,7 +72,7 @@ class EvenMoreRealtimeState extends ActionState @override void itemClick(String action) { - if (controller.state == null) { + if (controller!.state == null) { return; } @@ -82,19 +82,19 @@ class EvenMoreRealtimeState extends ActionState break; case 'B': _addEntry(); - controller.state.setStateIfNotDispose(); + controller!.state!.setStateIfNotDispose(); break; case 'C': _clearChart(); - controller.state.setStateIfNotDispose(); + controller!.state!.setStateIfNotDispose(); break; case 'D': _addMultiple(); - controller.state.setStateIfNotDispose(); + controller!.state!.setStateIfNotDispose(); break; case 'E': captureImg(() { - controller.state.capture(); + controller!.state!.capture(); }); break; case 'F': @@ -130,7 +130,7 @@ class EvenMoreRealtimeState extends ActionState ..drawGridLines = true; }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = false; + axisRight!.enabled = false; }, drawGridBackground: false, dragXEnabled: true, @@ -142,11 +142,11 @@ class EvenMoreRealtimeState extends ActionState pinchZoomEnabled: true, description: desc); - LineData data = controller?.data; + LineData? data = controller?.data; if (data == null) { data = LineData(); - controller.data = data; + controller!.data = data; } } @@ -154,13 +154,13 @@ class EvenMoreRealtimeState extends ActionState void onNothingSelected() {} @override - void onValueSelected(Entry e, Highlight h) {} + void onValueSelected(Entry? e, Highlight? h) {} void _addEntry() { - LineData data = controller.data; + LineData? data = controller!.data; if (data != null) { - ILineDataSet set = data.getDataSetByIndex(0); + ILineDataSet? set = data.getDataSetByIndex(0); // set.addEntry(...); // can be called as well if (set == null) { @@ -176,21 +176,21 @@ class EvenMoreRealtimeState extends ActionState data.notifyDataChanged(); // limit the number of visible entries - controller.setVisibleXRangeMaximum(120); + controller!.setVisibleXRangeMaximum(120); // chart.setVisibleYRange(30, AxisDependency.LEFT); // move to the latest entry - controller.moveViewToX(data.getEntryCount().toDouble()); + controller!.moveViewToX(data.getEntryCount().toDouble()); - controller.state?.setStateIfNotDispose(); + controller!.state?.setStateIfNotDispose(); } } void _updateEntry(){ - LineData data = controller.data; + LineData? data = controller!.data; if (data != null) { - ILineDataSet set = data.getDataSetByIndex(0); + ILineDataSet? set = data.getDataSetByIndex(0); // set.addEntry(...); // can be called as well if (set == null) { @@ -204,26 +204,26 @@ class EvenMoreRealtimeState extends ActionState //for test ChartData's updateEntryByIndex var index = (random.nextDouble() * set.getEntryCount()).toInt(); - var x = set.getEntryForIndex(index).x; + var x = set.getEntryForIndex(index)!.x; data.updateEntryByIndex(index, Entry(x: x, y: (random.nextDouble() * 40) + 30.0), 0); data.notifyDataChanged(); // limit the number of visible entries - controller.setVisibleXRangeMaximum(120); + controller!.setVisibleXRangeMaximum(120); // chart.setVisibleYRange(30, AxisDependency.LEFT); // move to the latest entry - controller.moveViewToX(data.getEntryCount().toDouble()); + controller!.moveViewToX(data.getEntryCount().toDouble()); - controller.state?.setStateIfNotDispose(); + controller!.state?.setStateIfNotDispose(); } } void _clearChart() { - controller.data?.clearValues(); - controller.state?.setStateIfNotDispose(); + controller!.data?.clearValues(); + controller!.state?.setStateIfNotDispose(); } void _addMultiple() { diff --git a/mp_chart/example/lib/demo/line_chart/basic.dart b/mp_chart/example/lib/demo/line_chart/basic.dart index 309740ea..d9cb1490 100644 --- a/mp_chart/example/lib/demo/line_chart/basic.dart +++ b/mp_chart/example/lib/demo/line_chart/basic.dart @@ -173,10 +173,10 @@ class LineChartBasicState extends LineActionState { ..setAxisMinimum(-50); }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { - legend.shape = (LegendForm.LINE); + legend!.shape = (LegendForm.LINE); }, xAxisSettingFunction: (xAxis, controller) { xAxis @@ -249,14 +249,14 @@ class LineChartBasicState extends LineActionState { dataSets.add(set1); // add the data sets // create a data object with the data sets - controller.data = LineData.fromList(dataSets); + controller!.data = LineData.fromList(dataSets); setState(() {}); } Widget _initLineChart() { - var lineChart = LineChart(controller); - controller.animator + var lineChart = LineChart(controller!); + controller!.animator ..reset() ..animateX1(1500); return lineChart; diff --git a/mp_chart/example/lib/demo/line_chart/colorful.dart b/mp_chart/example/lib/demo/line_chart/colorful.dart index 3d9c9c91..a904b62b 100644 --- a/mp_chart/example/lib/demo/line_chart/colorful.dart +++ b/mp_chart/example/lib/demo/line_chart/colorful.dart @@ -19,7 +19,7 @@ class LineChartColorful extends StatefulWidget { } class LineChartColorfulState extends SimpleActionState { - List _controllers = List(4); + List _controllers = List(4); var random = Random(1); int _count = 36; double _range = 100.0; @@ -54,19 +54,19 @@ class LineChartColorfulState extends SimpleActionState { crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( - child: getLineChart(_controllers[0]), + child: getLineChart(_controllers[0]!), flex: 1, ), Expanded( - child: getLineChart(_controllers[1]), + child: getLineChart(_controllers[1]!), flex: 1, ), Expanded( - child: getLineChart(_controllers[2]), + child: getLineChart(_controllers[2]!), flex: 1, ), Expanded( - child: getLineChart(_controllers[3]), + child: getLineChart(_controllers[3]!), flex: 1, ), ], @@ -84,9 +84,9 @@ class LineChartColorfulState extends SimpleActionState { void _initLineData(int count, double range) { for (int i = 0; i < _controllers.length; i++) { - _controllers[i].data = _getData(36, 100); - _controllers[i].data.setValueTypeface(Util.BOLD); - (_controllers[i].data.getDataSetByIndex(0) as LineDataSet) + _controllers[i]!.data = _getData(36, 100); + _controllers[i]!.data!.setValueTypeface(Util.BOLD); + (_controllers[i]!.data!.getDataSetByIndex(0) as LineDataSet) .setCircleHoleColor(_colors[i % _colors.length]); } } @@ -126,14 +126,14 @@ class LineChartColorfulState extends SimpleActionState { ..spacePercentBottom = (40); }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { - legend.enabled = (false); + legend!.enabled = (false); (controller as LineChartController).setViewPortOffsets(0, 0, 0, 0); }, xAxisSettingFunction: (xAxis, controller) { - xAxis.enabled = (false); + xAxis!.enabled = (false); }, drawGridBackground: true, dragXEnabled: true, diff --git a/mp_chart/example/lib/demo/line_chart/cubic.dart b/mp_chart/example/lib/demo/line_chart/cubic.dart index 8745db2c..cad377ef 100644 --- a/mp_chart/example/lib/demo/line_chart/cubic.dart +++ b/mp_chart/example/lib/demo/line_chart/cubic.dart @@ -138,21 +138,21 @@ class LineChartCubicState extends LineActionState { ..axisLineColor = (ColorUtils.WHITE); }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { (controller as LineChartController).setViewPortOffsets(0, 0, 0, 0); - legend.enabled = (false); - var data = (controller as LineChartController).data; + legend!.enabled = (false); + var data = controller.data; if (data != null) { - var formatter = data.getDataSetByIndex(0).getFillFormatter(); + var formatter = data.getDataSetByIndex(0)!.getFillFormatter(); if (formatter is A) { formatter.setPainter(controller); } } }, xAxisSettingFunction: (xAxis, controller) { - xAxis.enabled = (false); + xAxis!.enabled = (false); }, drawGridBackground: true, dragXEnabled: true, @@ -193,7 +193,7 @@ class LineChartCubicState extends LineActionState { set1.setFillFormatter(A()); // create a data object with the data sets - controller.data = LineData.fromList(List()..add(set1)) + controller!.data = LineData.fromList(List()..add(set1)) ..setValueTypeface(Util.LIGHT) ..setValueTextSize(9) ..setDrawValues(false); @@ -202,8 +202,8 @@ class LineChartCubicState extends LineActionState { } Widget _initLineChart() { - var lineChart = LineChart(controller); - controller.animator + var lineChart = LineChart(controller!); + controller!.animator ..reset() ..animateXY1(2000, 2000); return lineChart; @@ -211,7 +211,7 @@ class LineChartCubicState extends LineActionState { } class A implements IFillFormatter { - LineChartController _controller; + late LineChartController _controller; void setPainter(LineChartController controller) { _controller = controller; @@ -219,7 +219,7 @@ class A implements IFillFormatter { @override double getFillLinePosition( - ILineDataSet dataSet, LineDataProvider dataProvider) { - return _controller?.painter?.axisLeft?.axisMinimum; + ILineDataSet dataSet, LineDataProvider? dataProvider) { + return _controller?.painter?.axisLeft?.axisMinimum!; } } diff --git a/mp_chart/example/lib/demo/line_chart/dual_axis.dart b/mp_chart/example/lib/demo/line_chart/dual_axis.dart index 3c2c22b7..dacc8951 100644 --- a/mp_chart/example/lib/demo/line_chart/dual_axis.dart +++ b/mp_chart/example/lib/demo/line_chart/dual_axis.dart @@ -133,11 +133,11 @@ class LineChartDualAxisState extends LineActionState void onNothingSelected() {} @override - void onValueSelected(Entry e, Highlight h) { + void onValueSelected(Entry? e, Highlight? h) { controller?.centerViewToAnimated( - e.x, - e.y, - controller.data.getDataSetByIndex(h.dataSetIndex).getAxisDependency(), + e!.x!, + e.y!, + controller!.data!.getDataSetByIndex(h!.dataSetIndex)!.getAxisDependency(), 500); } @@ -197,7 +197,7 @@ class LineChartDualAxisState extends LineActionState } void _initLineData(int count, double range) async { - List imgs = List(3); + List imgs = List(3); imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); @@ -267,9 +267,9 @@ class LineChartDualAxisState extends LineActionState set3.setHighLightColor(Color.fromARGB(255, 244, 117, 117)); // create a data object with the data sets - controller.data = + controller!.data = LineData.fromList(List()..add(set1)..add(set2)..add(set3)); - controller.data + controller!.data ..setValueTextColor(ColorUtils.WHITE) ..setValueTextSize(9); @@ -277,8 +277,8 @@ class LineChartDualAxisState extends LineActionState } Widget _initLineChart() { - var lineChart = LineChart(controller); - controller.animator + var lineChart = LineChart(controller!); + controller!.animator ..reset() ..animateX1(1500); return lineChart; diff --git a/mp_chart/example/lib/demo/line_chart/filled.dart b/mp_chart/example/lib/demo/line_chart/filled.dart index 945cb09f..e2557daf 100644 --- a/mp_chart/example/lib/demo/line_chart/filled.dart +++ b/mp_chart/example/lib/demo/line_chart/filled.dart @@ -22,7 +22,7 @@ class LineChartFilled extends StatefulWidget { } class LineChartFilledState extends SimpleActionState { - LineChartController _controller; + late LineChartController _controller; var random = Random(1); int _count = 45; double _range = 100.0; @@ -135,27 +135,27 @@ class LineChartFilledState extends SimpleActionState { ..drawGridLines = (false); }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { - legend.enabled = (false); + legend!.enabled = (false); var formatter1 = (controller as LineChartController) - .data - .getDataSetByIndex(0) + .data! + .getDataSetByIndex(0)! .getFillFormatter(); if (formatter1 is A) { formatter1.setPainter(controller); } - var formatter2 = (controller as LineChartController) - .data - .getDataSetByIndex(1) + var formatter2 = controller + .data! + .getDataSetByIndex(1)! .getFillFormatter(); if (formatter2 is B) { formatter2.setPainter(controller); } }, xAxisSettingFunction: (xAxis, controller) { - xAxis.enabled = (false); + xAxis!.enabled = (false); }, drawBorders: true, drawGridBackground: true, @@ -217,7 +217,7 @@ class LineChartFilledState extends SimpleActionState { // create a data object with the data sets _controller.data = LineData.fromList(List()..add(set1)..add(set2)); - _controller.data.setDrawValues(false); + _controller.data!.setDrawValues(false); setState(() {}); } @@ -226,7 +226,7 @@ class LineChartFilledState extends SimpleActionState { } class A implements IFillFormatter { - LineChartController _controller; + late LineChartController _controller; void setPainter(LineChartController controller) { _controller = controller; @@ -234,13 +234,13 @@ class A implements IFillFormatter { @override double getFillLinePosition( - ILineDataSet dataSet, LineDataProvider dataProvider) { - return _controller?.painter?.axisLeft?.axisMinimum; + ILineDataSet dataSet, LineDataProvider? dataProvider) { + return _controller?.painter?.axisLeft?.axisMinimum!; } } class B implements IFillFormatter { - LineChartController _controller; + late LineChartController _controller; void setPainter(LineChartController controller) { _controller = controller; @@ -248,7 +248,7 @@ class B implements IFillFormatter { @override double getFillLinePosition( - ILineDataSet dataSet, LineDataProvider dataProvider) { - return _controller?.painter?.axisLeft?.axisMaximum; + ILineDataSet dataSet, LineDataProvider? dataProvider) { + return _controller?.painter?.axisLeft?.axisMaximum!; } } diff --git a/mp_chart/example/lib/demo/line_chart/invert_axis.dart b/mp_chart/example/lib/demo/line_chart/invert_axis.dart index df637985..47ed4b2a 100644 --- a/mp_chart/example/lib/demo/line_chart/invert_axis.dart +++ b/mp_chart/example/lib/demo/line_chart/invert_axis.dart @@ -46,7 +46,7 @@ class LineChartInvertAxisState extends LineActionState left: 0, top: 0, bottom: 100, - child: LineChart(controller)), + child: LineChart(controller!)), Positioned( left: 0, right: 0, @@ -126,7 +126,7 @@ class LineChartInvertAxisState extends LineActionState void onNothingSelected() {} @override - void onValueSelected(Entry e, Highlight h) {} + void onValueSelected(Entry? e, Highlight? h) {} void _initController() { var desc = Description()..enabled = false; @@ -137,10 +137,10 @@ class LineChartInvertAxisState extends LineActionState ..inverted = (true); }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { - legend.shape = (LegendForm.LINE); + legend!.shape = (LegendForm.LINE); }, xAxisSettingFunction: (xAxis, controller) { xAxis @@ -169,7 +169,7 @@ class LineChartInvertAxisState extends LineActionState // sort by x-value entries.sort((entry1, entry2) { - double diff = entry1.x - entry2.x; + double diff = entry1.x! - entry2.x!; if (diff == 0) return 0; @@ -187,7 +187,7 @@ class LineChartInvertAxisState extends LineActionState set1.setCircleRadius(4); // create a data object with the data sets - controller.data = LineData.fromList(List()..add(set1)); + controller!.data = LineData.fromList(List()..add(set1)); setState(() {}); } diff --git a/mp_chart/example/lib/demo/line_chart/multiple.dart b/mp_chart/example/lib/demo/line_chart/multiple.dart index 7526d899..3ad20691 100644 --- a/mp_chart/example/lib/demo/line_chart/multiple.dart +++ b/mp_chart/example/lib/demo/line_chart/multiple.dart @@ -62,9 +62,9 @@ class LineChartMultipleState extends LineActionState void onNothingSelected() {} @override - void onValueSelected(Entry e, Highlight h) { + void onValueSelected(Entry? e, Highlight? h) { print( - "VAL SELECTED Value: ${e.y}, xIndex: ${e.x}, DataSet index: ${h.dataSetIndex}"); + "VAL SELECTED Value: ${e!.y}, xIndex: ${e.x}, DataSet index: ${h!.dataSetIndex}"); } @override @@ -86,7 +86,7 @@ class LineChartMultipleState extends LineActionState left: 0, top: 0, bottom: 100, - child: LineChart(controller)), + child: LineChart(controller!)), Positioned( left: 0, right: 0, @@ -166,7 +166,7 @@ class LineChartMultipleState extends LineActionState var desc = Description()..enabled = false; controller = LineChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft.enabled = (false); + axisLeft!.enabled = (false); }, axisRightSettingFunction: (axisRight, controller) { axisRight @@ -198,7 +198,7 @@ class LineChartMultipleState extends LineActionState } void _initLineData(int count, double range) async { - List imgs = List(3); + List imgs = List(3); imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); @@ -228,7 +228,7 @@ class LineChartMultipleState extends LineActionState (dataSets[0] as LineDataSet).setColors1(ColorUtils.VORDIPLOM_COLORS); (dataSets[0] as LineDataSet).setCircleColors(ColorUtils.VORDIPLOM_COLORS); - controller.data = LineData.fromList(dataSets); + controller!.data = LineData.fromList(dataSets); setState(() {}); } diff --git a/mp_chart/example/lib/demo/line_chart/performance.dart b/mp_chart/example/lib/demo/line_chart/performance.dart index ffb1646b..f2f22fdb 100644 --- a/mp_chart/example/lib/demo/line_chart/performance.dart +++ b/mp_chart/example/lib/demo/line_chart/performance.dart @@ -20,7 +20,7 @@ class LineChartPerformance extends StatefulWidget { class LineChartPerformanceState extends SimpleActionState { - LineChartController _controller; + late LineChartController _controller; var random = Random(1); double _range = 100.0; int _count = 0; @@ -94,13 +94,13 @@ class LineChartPerformanceState var desc = Description()..enabled = false; _controller = LineChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft.drawGridLines = (false); + axisLeft!.drawGridLines = (false); }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { - legend.enabled = (false); + legend!.enabled = (false); }, xAxisSettingFunction: (xAxis, controller) { xAxis diff --git a/mp_chart/example/lib/demo/other_chart/bubble.dart b/mp_chart/example/lib/demo/other_chart/bubble.dart index 3e9602a0..96342c4f 100644 --- a/mp_chart/example/lib/demo/other_chart/bubble.dart +++ b/mp_chart/example/lib/demo/other_chart/bubble.dart @@ -141,7 +141,7 @@ class OtherChartBubbleState extends BubbleActionState ..setDrawZeroLine(false); }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { legend @@ -168,7 +168,7 @@ class OtherChartBubbleState extends BubbleActionState } void _initBubbleData(int count, double range) async { - List imgs = List(3); + List imgs = List(3); imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); @@ -231,5 +231,5 @@ class OtherChartBubbleState extends BubbleActionState void onNothingSelected() {} @override - void onValueSelected(Entry e, Highlight h) {} + void onValueSelected(Entry? e, Highlight? h) {} } diff --git a/mp_chart/example/lib/demo/other_chart/candlestick.dart b/mp_chart/example/lib/demo/other_chart/candlestick.dart index f25d466a..dc8f74da 100644 --- a/mp_chart/example/lib/demo/other_chart/candlestick.dart +++ b/mp_chart/example/lib/demo/other_chart/candlestick.dart @@ -136,10 +136,10 @@ class OtherChartCandlestickState ..drawAxisLine = (false); }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { - legend.enabled = (false); + legend!.enabled = (false); }, xAxisSettingFunction: (xAxis, controller) { xAxis diff --git a/mp_chart/example/lib/demo/other_chart/combined.dart b/mp_chart/example/lib/demo/other_chart/combined.dart index 6054010a..27371d24 100644 --- a/mp_chart/example/lib/demo/other_chart/combined.dart +++ b/mp_chart/example/lib/demo/other_chart/combined.dart @@ -94,7 +94,7 @@ class OtherChartCombinedState extends CombinedActionState { ..setGranularity(1) ..setValueFormatter(A()) ..setAxisMaximum( - controller.data == null ? 0 : controller.data.xMax + 0.25); + controller.data == null ? 0 : controller.data!.xMax! + 0.25); }, drawGridBackground: false, drawBarShadow: false, @@ -275,7 +275,7 @@ final List months = List() class A extends ValueFormatter { @override - String getFormattedValue1(double value) { - return months[value.toInt() % months.length]; + String getFormattedValue1(double? value) { + return months[value!.toInt() % months.length]; } } diff --git a/mp_chart/example/lib/demo/other_chart/radar.dart b/mp_chart/example/lib/demo/other_chart/radar.dart index 24a627e4..ae3d434d 100644 --- a/mp_chart/example/lib/demo/other_chart/radar.dart +++ b/mp_chart/example/lib/demo/other_chart/radar.dart @@ -76,7 +76,7 @@ class OtherChartRadarState extends RadarActionState { ..typeface = Util.LIGHT ..xEntrySpace = (7) ..yEntrySpace = (5) - ..formSize = Utils.convertDpToPixel(25) + ..formSize = Utils.convertDpToPixel(25)! ..textColor = (ColorUtils.RED); }, xAxisSettingFunction: (xAxis, controller) { @@ -166,7 +166,7 @@ class A extends ValueFormatter { ..add("Pizza"); @override - String getFormattedValue1(double value) { - return mActivities[value.toInt() % mActivities.length]; + String getFormattedValue1(double? value) { + return mActivities[value!.toInt() % mActivities.length]; } } diff --git a/mp_chart/example/lib/demo/other_chart/scatter_plot.dart b/mp_chart/example/lib/demo/other_chart/scatter_plot.dart index 2eab8001..acf70360 100644 --- a/mp_chart/example/lib/demo/other_chart/scatter_plot.dart +++ b/mp_chart/example/lib/demo/other_chart/scatter_plot.dart @@ -140,7 +140,7 @@ class OtherChartScatterPlotState ..typeface = Util.LIGHT; }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { legend @@ -169,7 +169,7 @@ class OtherChartScatterPlotState } void _initScatterData(int count, double range) async { - List imgs = List(3); + List imgs = List(3); imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); @@ -217,7 +217,7 @@ class OtherChartScatterPlotState // create a data object with the data sets controller.data = ScatterData.fromList(dataSets); - controller.data.setValueTypeface(Util.LIGHT); + controller.data!.setValueTypeface(Util.LIGHT); setState(() {}); } @@ -226,7 +226,7 @@ class OtherChartScatterPlotState void onNothingSelected() {} @override - void onValueSelected(Entry e, Highlight h) {} + void onValueSelected(Entry? e, Highlight? h) {} } class CustomScatterShapeRenderer implements IShapeRenderer { @@ -234,13 +234,13 @@ class CustomScatterShapeRenderer implements IShapeRenderer { void renderShape( Canvas c, IScatterDataSet dataSet, - ViewPortHandler viewPortHandler, - double posX, - double posY, - Paint renderPaint) { + ViewPortHandler? viewPortHandler, + double? posX, + double? posY, + Paint? renderPaint) { final double shapeHalf = dataSet.getScatterShapeSize() / 2; - c.drawLine(Offset(posX - shapeHalf, posY - shapeHalf), - Offset(posX + shapeHalf, posY + shapeHalf), renderPaint); + c.drawLine(Offset(posX! - shapeHalf, posY! - shapeHalf), + Offset(posX + shapeHalf, posY + shapeHalf), renderPaint!); } } diff --git a/mp_chart/example/lib/demo/pie_chart/basic.dart b/mp_chart/example/lib/demo/pie_chart/basic.dart index f2ba3dfb..b52c36db 100644 --- a/mp_chart/example/lib/demo/pie_chart/basic.dart +++ b/mp_chart/example/lib/demo/pie_chart/basic.dart @@ -165,7 +165,7 @@ class PieChartBasicState extends PieActionState ..enabled = true; controller = PieChartController( legendSettingFunction: (legend, controller) { - _formatter.setPieChartPainter(controller); + _formatter.setPieChartPainter(controller as PieChartController); legend ..verticalAlignment = (LegendVerticalAlignment.TOP) ..horizontalAlignment = (LegendHorizontalAlignment.RIGHT) @@ -245,7 +245,7 @@ class PieChartBasicState extends PieActionState void onNothingSelected() {} @override - void onValueSelected(Entry e, Highlight h) {} + void onValueSelected(Entry? e, Highlight? h) {} String _generateCenterSpannableText() { return "basic pie chart"; diff --git a/mp_chart/example/lib/demo/pie_chart/half_pie.dart b/mp_chart/example/lib/demo/pie_chart/half_pie.dart index cbe7d882..12ed695a 100644 --- a/mp_chart/example/lib/demo/pie_chart/half_pie.dart +++ b/mp_chart/example/lib/demo/pie_chart/half_pie.dart @@ -26,7 +26,7 @@ class PieChartHalfPie extends StatefulWidget { } class PieChartHalfPieState extends SimpleActionState { - PieChartController _controller; + late PieChartController _controller; var random = Random(1); @override @@ -81,7 +81,7 @@ class PieChartHalfPieState extends SimpleActionState { var desc = Description()..enabled = false; _controller = PieChartController( legendSettingFunction: (legend, controller) { - _formatter.setPieChartPainter(controller); + _formatter.setPieChartPainter(controller as PieChartController); legend ..verticalAlignment = (LegendVerticalAlignment.TOP) ..horizontalAlignment = (LegendHorizontalAlignment.CENTER) @@ -150,7 +150,7 @@ class PieChartHalfPieState extends SimpleActionState { Widget _initPieChart() { var pieChart = PieChart(_controller); - _controller.animator.animateY2(1400, Easing.EaseInOutQuad); + _controller.animator!.animateY2(1400, Easing.EaseInOutQuad); return pieChart; } } diff --git a/mp_chart/example/lib/demo/pie_chart/value_lines.dart b/mp_chart/example/lib/demo/pie_chart/value_lines.dart index 3b902189..81d62743 100644 --- a/mp_chart/example/lib/demo/pie_chart/value_lines.dart +++ b/mp_chart/example/lib/demo/pie_chart/value_lines.dart @@ -164,7 +164,7 @@ class PieChartValueLinesState extends PieActionState var desc = Description()..enabled = false; controller = PieChartController( legendSettingFunction: (legend, controller) { - _formatter.setPieChartPainter(controller); + _formatter.setPieChartPainter(controller as PieChartController); legend ..verticalAlignment = (LegendVerticalAlignment.TOP) ..horizontalAlignment = (LegendHorizontalAlignment.RIGHT) @@ -254,5 +254,5 @@ class PieChartValueLinesState extends PieActionState void onNothingSelected() {} @override - void onValueSelected(Entry e, Highlight h) {} + void onValueSelected(Entry? e, Highlight? h) {} } diff --git a/mp_chart/example/lib/demo/scrolling_chart/multiple.dart b/mp_chart/example/lib/demo/scrolling_chart/multiple.dart index faef07a6..ab0bdbf6 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/multiple.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/multiple.dart @@ -104,13 +104,13 @@ class ScrollingChartMultipleState } Widget _renderItem(int index) { - Chart chart; + Chart? chart; if (_controllers[index] is LineChartController) { - chart = _getLineChart(_controllers[index]); + chart = _getLineChart(_controllers[index] as LineChartController); } else if (_controllers[index] is BarChartController) { - chart = _getBarChart(_controllers[index]); + chart = _getBarChart(_controllers[index] as BarChartController); } else if (_controllers[index] is PieChartController) { - chart = _getPieChart(_controllers[index]); + chart = _getPieChart(_controllers[index] as PieChartController); } return Container(height: 200, child: chart); @@ -225,7 +225,7 @@ class ScrollingChartMultipleState List values2 = List(); for (int i = 0; i < 12; i++) { - values2.add(Entry(x: i.toDouble(), y: values1[i].y - 30)); + values2.add(Entry(x: i.toDouble(), y: values1[i].y! - 30)); } LineDataSet d2 = LineDataSet(values2, "New DataSet $cnt, (2)"); diff --git a/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart b/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart index 6b9ee205..4c10ad8b 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart @@ -22,7 +22,7 @@ class ScrollingChartTallBar extends StatefulWidget { class ScrollingChartTallBarState extends SimpleActionState { - BarChartController _controller; + late BarChartController _controller; var random = Random(1); bool _isParentMove = true; double _curX = 0.0; @@ -132,10 +132,10 @@ class ScrollingChartTallBarState var desc = Description()..enabled = false; _controller = BarChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft.drawGridLines = (false); + axisLeft!.drawGridLines = (false); }, legendSettingFunction: (legend, controller) { - legend.enabled = (false); + legend!.enabled = (false); }, xAxisSettingFunction: (xAxis, controller) { xAxis diff --git a/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart b/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart index 2de6fda8..818bbc2e 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart @@ -42,11 +42,11 @@ class ScrollingChartViewPager extends StatefulWidget { class ScrollingChartViewPagerState extends SimpleActionState { - LineChartController _lineChartController1; - LineChartController _lineChartController2; - BarChartController _barChartController; - ScatterChartController _scatterChartController; - PieChartController _pieChartController; + late LineChartController _lineChartController1; + late LineChartController _lineChartController2; + late BarChartController _barChartController; + late ScatterChartController _scatterChartController; + late PieChartController _pieChartController; var random = Random(1); @override @@ -151,10 +151,10 @@ class ScrollingChartViewPagerState ..setAxisMinimum(-1.2); }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, xAxisSettingFunction: (xAxis, controller) { - xAxis.enabled = (false); + xAxis!.enabled = (false); }, drawGridBackground: false, dragXEnabled: true, @@ -165,10 +165,10 @@ class ScrollingChartViewPagerState _lineChartController2 = LineChartController( axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, xAxisSettingFunction: (xAxis, controller) { - xAxis.enabled = (false); + xAxis!.enabled = (false); }, drawGridBackground: false, dragXEnabled: true, @@ -180,13 +180,13 @@ class ScrollingChartViewPagerState _barChartController = BarChartController( resolveGestureHorizontalConflict: true, axisLeftSettingFunction: (axisLeft, controller) { - axisLeft.setAxisMinimum(0); + axisLeft!.setAxisMinimum(0); }, axisRightSettingFunction: (axisRight, controller) { - axisRight.enabled = (false); + axisRight!.enabled = (false); }, xAxisSettingFunction: (xAxis, controller) { - xAxis.enabled = (false); + xAxis!.enabled = (false); }, drawGridBackground: false, dragXEnabled: true, @@ -199,7 +199,7 @@ class ScrollingChartViewPagerState _scatterChartController = ScatterChartController( resolveGestureHorizontalConflict: true, axisRightSettingFunction: (axisRight, controller) { - axisRight.drawGridLines = (false); + axisRight!.drawGridLines = (false); }, legendSettingFunction: (legend, controller) { legend @@ -209,7 +209,7 @@ class ScrollingChartViewPagerState ..yOffset = (13); }, xAxisSettingFunction: (xAxis, controller) { - xAxis.position = (XAxisPosition.BOTTOM); + xAxis!.position = (XAxisPosition.BOTTOM); }, drawGridBackground: false, dragXEnabled: true, diff --git a/mp_chart/example/lib/main.dart b/mp_chart/example/lib/main.dart index cb23d86c..27e3f779 100644 --- a/mp_chart/example/lib/main.dart +++ b/mp_chart/example/lib/main.dart @@ -96,7 +96,7 @@ class MyApp extends StatelessWidget { } class MyHomePage extends StatefulWidget { - MyHomePage({Key key, this.title}) : super(key: key); + MyHomePage({Key? key, this.title}) : super(key: key); // This widget is the home page of your application. It is stateful, meaning // that it has a State object (defined below) that contains fields that affect @@ -107,7 +107,7 @@ class MyHomePage extends StatefulWidget { // used by the build method of the State. Fields in a Widget subclass are // always marked "final". - final String title; + final String? title; @override _MyHomePageState createState() => _MyHomePageState(); @@ -148,13 +148,13 @@ class _MyHomePageState extends State { appBar: AppBar( // Here we take the value from the MyHomePage object that was created by // the App.build method, and use it to set our appbar title. - title: Text(widget.title), + title: Text(widget.title!), actions: [ PopupMenuButton( itemBuilder: (BuildContext context) => >[ - _item('View on GitHub', 'A'), - _item('Problem Report', 'B'), - _item('Developer Website', 'C'), + _item('View on GitHub', 'A') as PopupMenuItem, + _item('Problem Report', 'B') as PopupMenuItem, + _item('Developer Website', 'C') as PopupMenuItem, ], onSelected: (String action) { _itemClick(action); diff --git a/mp_chart/example/pubspec.yaml b/mp_chart/example/pubspec.yaml index 433abcc9..88661b33 100644 --- a/mp_chart/example/pubspec.yaml +++ b/mp_chart/example/pubspec.yaml @@ -14,19 +14,22 @@ description: flutter charts just like MPAndroidChart version: 1.0.1 environment: - sdk: ">=2.2.0 <3.0.0" + sdk: '>=2.12.0 <3.0.0' dependencies: - url_launcher: ^5.1.3 - permission_handler: ^3.2.0 + url_launcher: ^6.0.12 + permission_handler: ^8.1.6 flutter: sdk: flutter - mp_chart: ^0.2.2 + #mp_chart: ^0.2.2 + mp_chart: # self null-safety + path: ../ + # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^0.1.2 + cupertino_icons: ^1.0.3 - intl: ^0.17.0-nullsafety.1 + intl: ^0.17.0 dev_dependencies: flutter_test: From 25d8256e66cf5b442b50f7a7e4f424d579bd8f0b Mon Sep 17 00:00:00 2001 From: Takuro KAKOI Date: Sat, 25 Sep 2021 00:21:21 +0900 Subject: [PATCH 09/29] update example --- .../example/lib/demo/bar_chart/basic.dart | 20 ++++++---- .../example/lib/demo/bar_chart/basic2.dart | 10 ++--- .../lib/demo/bar_chart/horizontal.dart | 16 ++++---- .../example/lib/demo/bar_chart/multiple.dart | 20 +++++----- .../example/lib/demo/bar_chart/negative.dart | 14 +++---- mp_chart/example/lib/demo/bar_chart/sine.dart | 16 ++++---- .../example/lib/demo/bar_chart/stacked.dart | 16 ++++---- .../example/lib/demo/bar_chart/stacked2.dart | 38 +++++++++---------- .../example/lib/demo/even_more/dynamic.dart | 4 +- .../example/lib/demo/even_more/hourly.dart | 10 ++--- .../example/lib/demo/even_more/realtime.dart | 8 ++-- .../example/lib/demo/line_chart/basic.dart | 10 ++--- .../example/lib/demo/line_chart/colorful.dart | 12 +++--- .../example/lib/demo/line_chart/cubic.dart | 10 ++--- .../lib/demo/line_chart/dual_axis.dart | 22 +++++------ .../example/lib/demo/line_chart/filled.dart | 12 +++--- .../lib/demo/line_chart/invert_axis.dart | 8 ++-- .../example/lib/demo/line_chart/multiple.dart | 14 +++---- .../lib/demo/line_chart/performance.dart | 6 +-- .../example/lib/demo/other_chart/bubble.dart | 18 ++++----- .../lib/demo/other_chart/candlestick.dart | 8 ++-- .../lib/demo/other_chart/combined.dart | 34 ++++++++--------- .../example/lib/demo/other_chart/radar.dart | 18 ++++----- .../lib/demo/other_chart/scatter_plot.dart | 16 ++++---- .../example/lib/demo/pie_chart/basic.dart | 10 ++--- .../example/lib/demo/pie_chart/half_pie.dart | 6 +-- .../lib/demo/pie_chart/value_lines.dart | 10 ++--- .../demo/scrolling_chart/many_bar_chart.dart | 14 +++---- .../lib/demo/scrolling_chart/multiple.dart | 36 +++++++++--------- .../lib/demo/scrolling_chart/tall_bar.dart | 8 ++-- .../lib/demo/scrolling_chart/view_pager.dart | 38 +++++++++---------- 31 files changed, 243 insertions(+), 239 deletions(-) diff --git a/mp_chart/example/lib/demo/bar_chart/basic.dart b/mp_chart/example/lib/demo/bar_chart/basic.dart index 79033a2a..f0f8720d 100644 --- a/mp_chart/example/lib/demo/bar_chart/basic.dart +++ b/mp_chart/example/lib/demo/bar_chart/basic.dart @@ -26,6 +26,10 @@ import 'package:mp_chart/mp/core/chart_trans_listener.dart'; import 'package:mp_chart/mp/core/utils/color_utils.dart'; import 'package:mp_chart/mp/core/value_formatter/day_axis_value_formatter.dart'; import 'package:mp_chart/mp/core/value_formatter/my_value_formatter.dart'; +import 'package:mp_chart/mp/controller/bar_line_scatter_candle_bubble_controller.dart'; +import 'package:mp_chart/mp/painter/bar_line_chart_painter.dart'; +import 'package:mp_chart/mp/core/data_interfaces/i_bar_line_scatter_candle_bubble_data_set.dart'; +import 'package:mp_chart/mp/core/data/bar_line_scatter_candle_bubble_data.dart'; class BarChartBasic extends StatefulWidget { @override @@ -143,7 +147,7 @@ class BarChartBasicState extends BarActionState controller = BarChartController( chartTransListener: MyChartTransListener(), axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..setLabelCount2(8, false) ..typeface = Util.LIGHT ..setValueFormatter(MyValueFormatter("\$")) @@ -152,7 +156,7 @@ class BarChartBasicState extends BarActionState ..setAxisMinimum(0); }, axisRightSettingFunction: (axisRight, controller) { - axisRight + axisRight! ..drawGridLines = false ..typeface = Util.LIGHT ..setLabelCount2(8, false) @@ -161,7 +165,7 @@ class BarChartBasicState extends BarActionState ..setAxisMinimum(0); }, legendSettingFunction: (legend, controller) { - legend + legend! ..verticalAlignment = LegendVerticalAlignment.BOTTOM ..orientation = LegendOrientation.HORIZONTAL ..drawInside = false @@ -172,7 +176,7 @@ class BarChartBasicState extends BarActionState ..xEntrySpace = 4; }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..typeface = Util.LIGHT ..position = XAxisPosition.BOTTOM ..drawGridLines = false @@ -197,7 +201,7 @@ class BarChartBasicState extends BarActionState void _initData(int count, double range, ui.Image img) { double start = 1; - List values = List(); + List values = List.empty(); for (int i = start.toInt(); i < start + count; i++) { double val = (random.nextDouble() * (range + 1)); @@ -228,7 +232,7 @@ class BarChartBasicState extends BarActionState Color endColor4 = ColorUtils.HOLO_RED_DARK; Color endColor5 = ColorUtils.HOLO_ORANGE_DARK; - List gradientColors = List(); + List gradientColors = List.empty(); gradientColors.add(GradientColor(startColor1, endColor1)); gradientColors.add(GradientColor(startColor2, endColor2)); gradientColors.add(GradientColor(startColor3, endColor3)); @@ -237,11 +241,11 @@ class BarChartBasicState extends BarActionState set1.setGradientColors(gradientColors); - List dataSets = List(); + List dataSets = List.empty(); dataSets.add(set1); controller.data = BarData(dataSets); - controller.data + controller.data! ..setValueTextSize(10) ..setValueTypeface(Util.LIGHT) ..barWidth = 0.9; diff --git a/mp_chart/example/lib/demo/bar_chart/basic2.dart b/mp_chart/example/lib/demo/bar_chart/basic2.dart index 18e849a4..3d145b3b 100644 --- a/mp_chart/example/lib/demo/bar_chart/basic2.dart +++ b/mp_chart/example/lib/demo/bar_chart/basic2.dart @@ -123,7 +123,7 @@ class BarChartBasic2State extends BarActionState { void _initBarData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List values = List(); + List values = List.empty(); for (int i = 0; i < count; i++) { double multi = (range + 1); @@ -137,11 +137,11 @@ class BarChartBasic2State extends BarActionState { set1.setColors1(ColorUtils.VORDIPLOM_COLORS); set1.setDrawValues(false); - List dataSets = List(); + List dataSets = List.empty(); dataSets.add(set1); controller.data = BarData(dataSets); - controller.data + controller.data! ..setValueTextSize(10) ..barWidth = 0.9; @@ -158,7 +158,7 @@ class BarChartBasic2State extends BarActionState { legend!.enabled = false; }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..position = XAxisPosition.BOTTOM ..drawGridLines = false; }, @@ -176,7 +176,7 @@ class BarChartBasic2State extends BarActionState { Widget _initBarChart() { var barChart = BarChart(controller); - controller.animator + controller.animator! ..reset() ..animateY1(1500); return barChart; diff --git a/mp_chart/example/lib/demo/bar_chart/horizontal.dart b/mp_chart/example/lib/demo/bar_chart/horizontal.dart index cb4554f4..fa24fefa 100644 --- a/mp_chart/example/lib/demo/bar_chart/horizontal.dart +++ b/mp_chart/example/lib/demo/bar_chart/horizontal.dart @@ -136,7 +136,7 @@ class BarChartHorizontalState var img = await ImageLoader.loadImage('assets/img/star.png'); double barWidth = 9; double spaceForBar = 10; - List values = List(); + List values = List.empty(); for (int i = 0; i < count; i++) { double val = random.nextDouble() * range; @@ -149,11 +149,11 @@ class BarChartHorizontalState set1.setDrawIcons(false); - List dataSets = List(); + List dataSets = List.empty(); dataSets.add(set1); controller.data = BarData(dataSets); - controller.data + controller.data! ..setValueTextSize(10) ..setValueTypeface(Util.LIGHT) ..barWidth = barWidth; @@ -191,7 +191,7 @@ class BarChartHorizontalState ll4.typeface = Util.EXTRA_BOLD; controller = HorizontalBarChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..addLimitLine(ll1) ..addLimitLine(ll2) ..typeface = Util.LIGHT @@ -200,14 +200,14 @@ class BarChartHorizontalState ..setAxisMinimum(0); }, axisRightSettingFunction: (axisRight, controller) { - axisRight + axisRight! ..typeface = Util.LIGHT ..drawAxisLine = true ..drawGridLines = false ..setAxisMinimum(0); }, legendSettingFunction: (legend, controller) { - legend + legend! ..verticalAlignment = (LegendVerticalAlignment.BOTTOM) ..horizontalAlignment = (LegendHorizontalAlignment.LEFT) ..orientation = (LegendOrientation.HORIZONTAL) @@ -216,7 +216,7 @@ class BarChartHorizontalState ..xEntrySpace = (4); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..addLimitLine(ll3) ..addLimitLine(ll4) ..position = XAxisPosition.BOTTOM @@ -241,7 +241,7 @@ class BarChartHorizontalState Widget _initBarChart() { var barChart = HorizontalBarChart(controller); - controller.animator + controller.animator! ..reset() ..animateY1(2500); return barChart; diff --git a/mp_chart/example/lib/demo/bar_chart/multiple.dart b/mp_chart/example/lib/demo/bar_chart/multiple.dart index 42bcaa1e..3b35dcd9 100644 --- a/mp_chart/example/lib/demo/bar_chart/multiple.dart +++ b/mp_chart/example/lib/demo/bar_chart/multiple.dart @@ -139,7 +139,7 @@ class BarChartMultipleState extends BarActionState controller = BarChartController( axisLeftSettingFunction: (axisLeft, controller) { ValueFormatter formatter = LargeValueFormatter(); - axisLeft + axisLeft! ..typeface = Util.LIGHT ..setValueFormatter(formatter) ..drawGridLines = (false) @@ -150,7 +150,7 @@ class BarChartMultipleState extends BarActionState axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { - legend + legend! ..verticalAlignment = (LegendVerticalAlignment.TOP) ..horizontalAlignment = (LegendHorizontalAlignment.RIGHT) ..orientation = (LegendOrientation.VERTICAL) @@ -162,7 +162,7 @@ class BarChartMultipleState extends BarActionState ..textSize = (8); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..typeface = Util.LIGHT ..setGranularity(1.0) ..centerAxisLabels = true @@ -194,7 +194,7 @@ class BarChartMultipleState extends BarActionState bool isDataInitial = false; void _initBarData(int count, double range) async { - List imgs = List(3); + List imgs = []..length = (3); imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); @@ -202,10 +202,10 @@ class BarChartMultipleState extends BarActionState startYear = 1980; endYear = startYear + groupCount; - List values1 = List(); - List values2 = List(); - List values3 = List(); - List values4 = List(); + List values1 = List.empty(); + List values2 = List.empty(); + List values3 = List.empty(); + List values4 = List.empty(); double randomMultiplier = range * 100000; @@ -239,8 +239,8 @@ class BarChartMultipleState extends BarActionState set4.setColor1(Color.fromARGB(255, 255, 102, 0)); controller.data = - BarData(List()..add(set1)..add(set2)..add(set3)..add(set4)); - controller.data + BarData([]..add(set1)..add(set2)..add(set3)..add(set4)); + controller.data! ..setValueFormatter(LargeValueFormatter()) ..setValueTypeface(Util.LIGHT) // specify the width each bar should have diff --git a/mp_chart/example/lib/demo/bar_chart/negative.dart b/mp_chart/example/lib/demo/bar_chart/negative.dart index e0cc8095..80580b7a 100644 --- a/mp_chart/example/lib/demo/bar_chart/negative.dart +++ b/mp_chart/example/lib/demo/bar_chart/negative.dart @@ -23,7 +23,7 @@ class BarChartNegative extends StatefulWidget { class BarChartNegativeState extends SimpleActionState { late BarChartController _controller; - List _data = List(); + List _data = List.empty(); @override void initState() { @@ -58,8 +58,8 @@ class BarChartNegativeState extends SimpleActionState { } void _initBarData() { - List values = List(); - List colors = List(); + List values = List.empty(); + List colors = List.empty(); Color green = Color.fromARGB(255, 110, 190, 102); Color red = Color.fromARGB(255, 211, 74, 88); @@ -82,8 +82,8 @@ class BarChartNegativeState extends SimpleActionState { set.setColors1(colors); set.setValueTextColors(colors); - _controller.data = BarData(List()..add(set)); - _controller.data + _controller.data = BarData([]..add(set)); + _controller.data! ..setValueTextSize(13) ..setValueTypeface(Util.REGULAR) ..setValueFormatter(Formatter()) @@ -94,7 +94,7 @@ class BarChartNegativeState extends SimpleActionState { var desc = Description()..enabled = false; _controller = BarChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..drawLabels = (false) ..spacePercentTop = (25) ..spacePercentBottom = (25) @@ -111,7 +111,7 @@ class BarChartNegativeState extends SimpleActionState { legend!.enabled = (false); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..position = (XAxisPosition.BOTTOM) ..typeface = Util.LIGHT ..drawGridLines = (false) diff --git a/mp_chart/example/lib/demo/bar_chart/sine.dart b/mp_chart/example/lib/demo/bar_chart/sine.dart index 6afa4425..afdfa5a1 100644 --- a/mp_chart/example/lib/demo/bar_chart/sine.dart +++ b/mp_chart/example/lib/demo/bar_chart/sine.dart @@ -31,7 +31,7 @@ class BarChartSineState extends BarActionState { void initState() { _initController(); Util.loadAsset("othersine.txt").then((value) { - _data = List(); + _data = List.empty(); List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -108,7 +108,7 @@ class BarChartSineState extends BarActionState { var desc = Description()..enabled = false; controller = BarChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..setLabelCount2(6, false) ..typeface = Util.LIGHT ..setAxisMaximum(2.5) @@ -117,7 +117,7 @@ class BarChartSineState extends BarActionState { ..setGranularity(0.1); }, axisRightSettingFunction: (axisRight, controller) { - axisRight + axisRight! ..drawGridLines = (false) ..typeface = Util.LIGHT ..setLabelCount2(6, false) @@ -126,7 +126,7 @@ class BarChartSineState extends BarActionState { ..setGranularity(0.1); }, legendSettingFunction: (legend, controller) { - legend + legend! ..verticalAlignment = (LegendVerticalAlignment.BOTTOM) ..horizontalAlignment = (LegendHorizontalAlignment.LEFT) ..orientation = (LegendOrientation.HORIZONTAL) @@ -154,7 +154,7 @@ class BarChartSineState extends BarActionState { void _initBarData(int count) { if (_data == null) return; - List entries = List(); + List entries = List .empty(); for (int i = 0; i < count; i++) { entries.add(_data![i]); } @@ -162,8 +162,8 @@ class BarChartSineState extends BarActionState { BarDataSet set = BarDataSet(entries, "Sinus Function"); set.setColor1(Color.fromARGB(255, 240, 120, 124)); - controller.data = BarData(List()..add(set)); - controller.data + controller.data = BarData([]..add(set)); + controller.data! ..setValueTextSize(10) ..setValueTypeface(Util.LIGHT) ..setDrawValues(false) @@ -174,7 +174,7 @@ class BarChartSineState extends BarActionState { Widget _initBarChart() { var barChart = BarChart(controller); - controller.animator + controller.animator! ..reset() ..animateXY1(1500, 1500); return barChart; diff --git a/mp_chart/example/lib/demo/bar_chart/stacked.dart b/mp_chart/example/lib/demo/bar_chart/stacked.dart index 3f6decd7..9087612e 100644 --- a/mp_chart/example/lib/demo/bar_chart/stacked.dart +++ b/mp_chart/example/lib/demo/bar_chart/stacked.dart @@ -133,7 +133,7 @@ class BarChartStackedState extends BarActionState void _initBarData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List values = List(); + List values = List.empty(); for (int i = 0; i < count; i++) { double mul = (range + 1); @@ -143,7 +143,7 @@ class BarChartStackedState extends BarActionState values.add(BarEntry.fromListYVals( x: i.toDouble(), - vals: List()..add(val1)..add(val2)..add(val3), + vals: []..add(val1)..add(val2)..add(val3), icon: img)); } @@ -153,13 +153,13 @@ class BarChartStackedState extends BarActionState set1.setDrawIcons(false); set1.setColors1(_getColors()); set1.setStackLabels( - List()..add("Births")..add("Divorces")..add("Marriages")); + []..add("Births")..add("Divorces")..add("Marriages")); - List dataSets = List(); + List dataSets = List.empty(); dataSets.add(set1); controller.data = BarData(dataSets); - controller.data + controller.data! ..setValueFormatter(StackedValueFormatter(false, "", 1)) ..setValueTextColor(ColorUtils.WHITE); @@ -167,7 +167,7 @@ class BarChartStackedState extends BarActionState } List _getColors() { - return List() + return [] ..add(ColorUtils.MATERIAL_COLORS[0]) ..add(ColorUtils.MATERIAL_COLORS[1]) ..add(ColorUtils.MATERIAL_COLORS[2]); @@ -177,7 +177,7 @@ class BarChartStackedState extends BarActionState var desc = Description()..enabled = false; controller = BarChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..setValueFormatter(MyValueFormatter("K")) ..setAxisMinimum(0); }, @@ -185,7 +185,7 @@ class BarChartStackedState extends BarActionState axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { - legend + legend! ..verticalAlignment = (LegendVerticalAlignment.BOTTOM) ..horizontalAlignment = (LegendHorizontalAlignment.RIGHT) ..orientation = (LegendOrientation.HORIZONTAL) diff --git a/mp_chart/example/lib/demo/bar_chart/stacked2.dart b/mp_chart/example/lib/demo/bar_chart/stacked2.dart index def08157..853e8b79 100644 --- a/mp_chart/example/lib/demo/bar_chart/stacked2.dart +++ b/mp_chart/example/lib/demo/bar_chart/stacked2.dart @@ -55,45 +55,45 @@ class BarChartStacked2State extends HorizontalBarActionState void _initBarData() async { var img = await ImageLoader.loadImage('assets/img/star.png'); // IMPORTANT: When using negative values in stacked bars, always make sure the negative values are in the array first - List values = List(); + List values = List.empty(); values.add(BarEntry.fromListYVals( - x: 5, vals: List()..add(-10)..add(10), icon: img)); + x: 5, vals: []..add(-10)..add(10), icon: img)); values.add(BarEntry.fromListYVals( - x: 15, vals: List()..add(-12)..add(13), icon: img)); + x: 15, vals: []..add(-12)..add(13), icon: img)); values.add(BarEntry.fromListYVals( - x: 25, vals: List()..add(-15)..add(15), icon: img)); + x: 25, vals: []..add(-15)..add(15), icon: img)); values.add(BarEntry.fromListYVals( - x: 35, vals: List()..add(-17)..add(17), icon: img)); + x: 35, vals: []..add(-17)..add(17), icon: img)); values.add(BarEntry.fromListYVals( - x: 45, vals: List()..add(-19)..add(20), icon: img)); + x: 45, vals: []..add(-19)..add(20), icon: img)); values.add(BarEntry.fromListYVals( - x: 45, vals: List()..add(-19)..add(20), icon: img + x: 45, vals: []..add(-19)..add(20), icon: img // getResources().getDrawable(R.drawable.star) )); values.add(BarEntry.fromListYVals( - x: 55, vals: List()..add(-19)..add(19), icon: img)); + x: 55, vals: []..add(-19)..add(19), icon: img)); values.add(BarEntry.fromListYVals( - x: 65, vals: List()..add(-16)..add(16), icon: img)); + x: 65, vals: []..add(-16)..add(16), icon: img)); values.add(BarEntry.fromListYVals( - x: 75, vals: List()..add(-13)..add(14), icon: img)); + x: 75, vals: []..add(-13)..add(14), icon: img)); values.add(BarEntry.fromListYVals( - x: 85, vals: List()..add(-10)..add(11), icon: img)); + x: 85, vals: []..add(-10)..add(11), icon: img)); values.add(BarEntry.fromListYVals( - x: 95, vals: List()..add(-5)..add(6), icon: img)); + x: 95, vals: []..add(-5)..add(6), icon: img)); values.add(BarEntry.fromListYVals( - x: 105, vals: List()..add(-1)..add(2), icon: img)); + x: 105, vals: []..add(-1)..add(2), icon: img)); BarDataSet set = BarDataSet(values, "Age Distribution"); set.setDrawIcons(false); set.setValueFormatter(B()); set.setValueTextSize(7); set.setAxisDependency(AxisDependency.RIGHT); - set.setColors1(List() + set.setColors1([] ..add(Color.fromARGB(255, 67, 67, 72)) ..add(Color.fromARGB(255, 124, 181, 236))); - set.setStackLabels(List()..add("Men")..add("Women")); + set.setStackLabels([]..add("Men")..add("Women")); - controller.data = BarData(List()..add(set)); + controller.data = BarData([]..add(set)); controller.data!.barWidth = (8.5); setState(() {}); @@ -106,7 +106,7 @@ class BarChartStacked2State extends HorizontalBarActionState axisLeft!.enabled = (false); }, axisRightSettingFunction: (axisRight, controller) { - axisRight + axisRight! ..setAxisMaximum(25) ..setAxisMinimum(-25) ..drawGridLines = (false) @@ -116,7 +116,7 @@ class BarChartStacked2State extends HorizontalBarActionState ..textSize = (9); }, legendSettingFunction: (legend, controller) { - legend + legend! ..verticalAlignment = (LegendVerticalAlignment.BOTTOM) ..horizontalAlignment = (LegendHorizontalAlignment.RIGHT) ..orientation = (LegendOrientation.HORIZONTAL) @@ -126,7 +126,7 @@ class BarChartStacked2State extends HorizontalBarActionState ..xEntrySpace = (6); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..position = (XAxisPosition.BOTH_SIDED) ..drawGridLines = (false) ..drawAxisLine = (false) diff --git a/mp_chart/example/lib/demo/even_more/dynamic.dart b/mp_chart/example/lib/demo/even_more/dynamic.dart index c020a44c..66921690 100644 --- a/mp_chart/example/lib/demo/even_more/dynamic.dart +++ b/mp_chart/example/lib/demo/even_more/dynamic.dart @@ -168,7 +168,7 @@ class EvenMoreDynamicState extends ActionState } LineDataSet _createSet() { - LineDataSet set = LineDataSet(null, "DataSet 1"); + LineDataSet set = LineDataSet(List.empty(), "DataSet 1"); set.setLineWidth(2.5); set.setCircleRadius(4.5); set.setColor1(Color.fromARGB(255, 240, 99, 99)); @@ -198,7 +198,7 @@ class EvenMoreDynamicState extends ActionState } else { int count = (data.getDataSetCount() + 1); int amount = data.getDataSetByIndex(0)!.getEntryCount(); - List values = List(); + List values = List.empty(); for (int i = 0; i < amount; i++) { values.add(new Entry( x: i.toDouble(), y: (random.nextDouble() * 50) + 50 * count)); diff --git a/mp_chart/example/lib/demo/even_more/hourly.dart b/mp_chart/example/lib/demo/even_more/hourly.dart index 113e1cf2..14f9b82b 100644 --- a/mp_chart/example/lib/demo/even_more/hourly.dart +++ b/mp_chart/example/lib/demo/even_more/hourly.dart @@ -98,7 +98,7 @@ class EvenMoreHourlyState extends LineActionState { var desc = Description()..enabled = false; controller = LineChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..position = (YAxisLabelPosition.INSIDE_CHART) // ..setTypeface(tfLight) ..textColor = (Color.fromARGB(255, 51, 181, 229)) @@ -117,7 +117,7 @@ class EvenMoreHourlyState extends LineActionState { legend!.enabled = (false); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..position = (XAxisPosition.TOP_INSIDE) // ..setTypeface(tfLight) ..textSize = (10) @@ -146,7 +146,7 @@ class EvenMoreHourlyState extends LineActionState { // now in hours int now = Util.currentTimeMillis(); - List values = List(); + List values = List.empty(); // count = hours double to = now + count; @@ -171,8 +171,8 @@ class EvenMoreHourlyState extends LineActionState { set1.setDrawCircleHole(false); // create a data object with the data sets - controller!.data = LineData.fromList(List()..add(set1)); - controller!.data + controller!.data = LineData.fromList([]..add(set1)); + controller!.data! ..setValueTextColor(ColorUtils.getHoloBlue()) ..setValueTextSize(9); diff --git a/mp_chart/example/lib/demo/even_more/realtime.dart b/mp_chart/example/lib/demo/even_more/realtime.dart index 23cafd13..1d75348a 100644 --- a/mp_chart/example/lib/demo/even_more/realtime.dart +++ b/mp_chart/example/lib/demo/even_more/realtime.dart @@ -108,13 +108,13 @@ class EvenMoreRealtimeState extends ActionState ..enabled = false; controller = LineChartController( legendSettingFunction: (legend, controller) { - legend + legend! ..shape = LegendForm.LINE ..typeface = Util.LIGHT ..textColor = ColorUtils.WHITE; }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..typeface = Util.LIGHT ..textColor = ColorUtils.WHITE ..drawGridLines = true @@ -122,7 +122,7 @@ class EvenMoreRealtimeState extends ActionState ..enabled = true; }, axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..typeface = Util.LIGHT ..textColor = ColorUtils.WHITE ..axisMaximum = 100.0 @@ -243,7 +243,7 @@ class EvenMoreRealtimeState extends ActionState } LineDataSet _createSet() { - LineDataSet set = LineDataSet(null, "Dynamic Data"); + LineDataSet set = LineDataSet(List.empty(), "Dynamic Data"); set.setAxisDependency(AxisDependency.LEFT); set.setColor1(ColorUtils.getHoloBlue()); set.setCircleColor(ColorUtils.WHITE); diff --git a/mp_chart/example/lib/demo/line_chart/basic.dart b/mp_chart/example/lib/demo/line_chart/basic.dart index d9cb1490..d1e8b5a5 100644 --- a/mp_chart/example/lib/demo/line_chart/basic.dart +++ b/mp_chart/example/lib/demo/line_chart/basic.dart @@ -163,7 +163,7 @@ class LineChartBasicState extends LineActionState { ll4.typeface = Util.EXTRA_BOLD; controller = LineChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..drawLimitLineBehindData = true ..enableGridDashedLine(10, 10, 0) ..enableAxisLineDashedLine(5, 5, 0) @@ -179,7 +179,7 @@ class LineChartBasicState extends LineActionState { legend!.shape = (LegendForm.LINE); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..addLimitLine(ll3) ..addLimitLine(ll4) ..drawLimitLineBehindData = true @@ -198,7 +198,7 @@ class LineChartBasicState extends LineActionState { void _initLineData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List values = List(); + List values = List.empty(); for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) - 30; @@ -245,7 +245,7 @@ class LineChartBasicState extends LineActionState { // set color of filled area set1.setGradientColor(ColorUtils.BLUE, ColorUtils.RED); - List dataSets = List(); + List dataSets = List.empty(); dataSets.add(set1); // add the data sets // create a data object with the data sets @@ -256,7 +256,7 @@ class LineChartBasicState extends LineActionState { Widget _initLineChart() { var lineChart = LineChart(controller!); - controller!.animator + controller!.animator! ..reset() ..animateX1(1500); return lineChart; diff --git a/mp_chart/example/lib/demo/line_chart/colorful.dart b/mp_chart/example/lib/demo/line_chart/colorful.dart index a904b62b..0ef7628c 100644 --- a/mp_chart/example/lib/demo/line_chart/colorful.dart +++ b/mp_chart/example/lib/demo/line_chart/colorful.dart @@ -19,12 +19,12 @@ class LineChartColorful extends StatefulWidget { } class LineChartColorfulState extends SimpleActionState { - List _controllers = List(4); + List _controllers = []..length = (4); var random = Random(1); int _count = 36; double _range = 100.0; - List _colors = List() + List _colors = [] ..add(Color.fromARGB(255, 137, 230, 81)) ..add(Color.fromARGB(255, 240, 240, 30)) ..add(Color.fromARGB(255, 89, 199, 250)) @@ -92,7 +92,7 @@ class LineChartColorfulState extends SimpleActionState { } LineData _getData(int count, double range) { - List values = List(); + List values = List.empty(); for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 3; @@ -113,14 +113,14 @@ class LineChartColorfulState extends SimpleActionState { set1.setDrawValues(false); // create a data object with the data sets - return LineData.fromList(List()..add(set1)); + return LineData.fromList([]..add(set1)); } LineChartController _setupChartController(Color color) { var desc = Description()..enabled = false; return LineChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..enabled = (false) ..spacePercentTop = (40) ..spacePercentBottom = (40); @@ -148,7 +148,7 @@ class LineChartColorfulState extends SimpleActionState { Widget getLineChart(LineChartController controller) { var lineChart = LineChart(controller); - controller.animator + controller.animator! ..reset() ..animateX1(2500); return lineChart; diff --git a/mp_chart/example/lib/demo/line_chart/cubic.dart b/mp_chart/example/lib/demo/line_chart/cubic.dart index cad377ef..f5f7effa 100644 --- a/mp_chart/example/lib/demo/line_chart/cubic.dart +++ b/mp_chart/example/lib/demo/line_chart/cubic.dart @@ -129,7 +129,7 @@ class LineChartCubicState extends LineActionState { var desc = Description()..enabled = false; controller = LineChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..typeface = Util.LIGHT ..setLabelCount2(6, false) ..textColor = (ColorUtils.WHITE) @@ -167,7 +167,7 @@ class LineChartCubicState extends LineActionState { void _initLineData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List values = List(); + List values = List.empty(); for (int i = 0; i < count; i++) { double val = (random.nextDouble() * (range + 1)) + 20; @@ -193,7 +193,7 @@ class LineChartCubicState extends LineActionState { set1.setFillFormatter(A()); // create a data object with the data sets - controller!.data = LineData.fromList(List()..add(set1)) + controller!.data = LineData.fromList([]..add(set1)) ..setValueTypeface(Util.LIGHT) ..setValueTextSize(9) ..setDrawValues(false); @@ -203,7 +203,7 @@ class LineChartCubicState extends LineActionState { Widget _initLineChart() { var lineChart = LineChart(controller!); - controller!.animator + controller!.animator! ..reset() ..animateXY1(2000, 2000); return lineChart; @@ -220,6 +220,6 @@ class A implements IFillFormatter { @override double getFillLinePosition( ILineDataSet dataSet, LineDataProvider? dataProvider) { - return _controller?.painter?.axisLeft?.axisMinimum!; + return _controller.painter!.axisLeft!.axisMinimum!; } } diff --git a/mp_chart/example/lib/demo/line_chart/dual_axis.dart b/mp_chart/example/lib/demo/line_chart/dual_axis.dart index dacc8951..8daf4d98 100644 --- a/mp_chart/example/lib/demo/line_chart/dual_axis.dart +++ b/mp_chart/example/lib/demo/line_chart/dual_axis.dart @@ -145,7 +145,7 @@ class LineChartDualAxisState extends LineActionState var desc = Description()..enabled = false; controller = LineChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..textColor = (ColorUtils.HOLO_BLUE) ..setAxisMaximum(200.0) ..setAxisMinimum(0.0) @@ -155,7 +155,7 @@ class LineChartDualAxisState extends LineActionState ..granularityEnabled = (true); }, axisRightSettingFunction: (axisRight, controller) { - axisRight + axisRight! ..textColor = (ColorUtils.RED) ..setAxisMaximum(900.0) ..setAxisMinimum(-200) @@ -165,7 +165,7 @@ class LineChartDualAxisState extends LineActionState ..granularityEnabled = (false); }, legendSettingFunction: (legend, controller) { - legend + legend! ..shape = (LegendForm.LINE) ..textSize = (11) ..typeface = Util.LIGHT @@ -176,7 +176,7 @@ class LineChartDualAxisState extends LineActionState ..drawInside = (false); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..typeface = Util.LIGHT ..textColor = (ColorUtils.WHITE) ..textSize = (11) @@ -197,25 +197,25 @@ class LineChartDualAxisState extends LineActionState } void _initLineData(int count, double range) async { - List imgs = List(3); + List imgs = []..length = (3); imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); - List values1 = List(); + List values1 = List.empty();; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * (range / 2.0)) + 50; values1.add(Entry(x: i.toDouble(), y: val, icon: imgs[0])); } - List values2 = List(); + List values2 = List.empty(); for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 450; values2.add(new Entry(x: i.toDouble(), y: val, icon: imgs[1])); } - List values3 = List(); + List values3 = List.empty(); for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 500; @@ -268,8 +268,8 @@ class LineChartDualAxisState extends LineActionState // create a data object with the data sets controller!.data = - LineData.fromList(List()..add(set1)..add(set2)..add(set3)); - controller!.data + LineData.fromList([]..add(set1)..add(set2)..add(set3)); + controller!.data! ..setValueTextColor(ColorUtils.WHITE) ..setValueTextSize(9); @@ -278,7 +278,7 @@ class LineChartDualAxisState extends LineActionState Widget _initLineChart() { var lineChart = LineChart(controller!); - controller!.animator + controller!.animator! ..reset() ..animateX1(1500); return lineChart; diff --git a/mp_chart/example/lib/demo/line_chart/filled.dart b/mp_chart/example/lib/demo/line_chart/filled.dart index e2557daf..b2331751 100644 --- a/mp_chart/example/lib/demo/line_chart/filled.dart +++ b/mp_chart/example/lib/demo/line_chart/filled.dart @@ -127,7 +127,7 @@ class LineChartFilledState extends SimpleActionState { var desc = Description()..enabled = false; _controller = LineChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..setAxisMaximum(900) ..setAxisMinimum(-250) ..drawAxisLine = (false) @@ -170,14 +170,14 @@ class LineChartFilledState extends SimpleActionState { } void _initLineData(int count, double range) { - List values1 = new List(); + List values1 = new List.empty(); for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 50; values1.add(new Entry(x: i.toDouble(), y: val)); } - List values2 = new List(); + List values2 = new List.empty(); for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 450; @@ -216,7 +216,7 @@ class LineChartFilledState extends SimpleActionState { set2.setFillFormatter(B()); // create a data object with the data sets - _controller.data = LineData.fromList(List()..add(set1)..add(set2)); + _controller.data = LineData.fromList([]..add(set1)..add(set2)); _controller.data!.setDrawValues(false); setState(() {}); @@ -235,7 +235,7 @@ class A implements IFillFormatter { @override double getFillLinePosition( ILineDataSet dataSet, LineDataProvider? dataProvider) { - return _controller?.painter?.axisLeft?.axisMinimum!; + return _controller.painter!.axisLeft!.axisMinimum!; } } @@ -249,6 +249,6 @@ class B implements IFillFormatter { @override double getFillLinePosition( ILineDataSet dataSet, LineDataProvider? dataProvider) { - return _controller?.painter?.axisLeft?.axisMaximum!; + return _controller.painter!.axisLeft!.axisMaximum!; } } diff --git a/mp_chart/example/lib/demo/line_chart/invert_axis.dart b/mp_chart/example/lib/demo/line_chart/invert_axis.dart index 47ed4b2a..76e8c652 100644 --- a/mp_chart/example/lib/demo/line_chart/invert_axis.dart +++ b/mp_chart/example/lib/demo/line_chart/invert_axis.dart @@ -132,7 +132,7 @@ class LineChartInvertAxisState extends LineActionState var desc = Description()..enabled = false; controller = LineChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..setAxisMinimum(0) ..inverted = (true); }, @@ -143,7 +143,7 @@ class LineChartInvertAxisState extends LineActionState legend!.shape = (LegendForm.LINE); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..avoidFirstLastClipping = (true) ..setAxisMinimum(0); }, @@ -159,7 +159,7 @@ class LineChartInvertAxisState extends LineActionState void _initLineData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List entries = List(); + List entries = List.empty(); for (int i = 0; i < count; i++) { double xVal = (random.nextDouble() * range); @@ -187,7 +187,7 @@ class LineChartInvertAxisState extends LineActionState set1.setCircleRadius(4); // create a data object with the data sets - controller!.data = LineData.fromList(List()..add(set1)); + controller!.data = LineData.fromList([]..add(set1)); setState(() {}); } diff --git a/mp_chart/example/lib/demo/line_chart/multiple.dart b/mp_chart/example/lib/demo/line_chart/multiple.dart index 3ad20691..071be1da 100644 --- a/mp_chart/example/lib/demo/line_chart/multiple.dart +++ b/mp_chart/example/lib/demo/line_chart/multiple.dart @@ -31,7 +31,7 @@ class LineChartMultipleState extends LineActionState int _count = 20; double _range = 100.0; - List colors = List() + List colors = [] ..add(ColorUtils.VORDIPLOM_COLORS[0]) ..add(ColorUtils.VORDIPLOM_COLORS[1]) ..add(ColorUtils.VORDIPLOM_COLORS[2]); @@ -169,19 +169,19 @@ class LineChartMultipleState extends LineActionState axisLeft!.enabled = (false); }, axisRightSettingFunction: (axisRight, controller) { - axisRight + axisRight! ..drawAxisLine = (false) ..drawGridLines = (false); }, legendSettingFunction: (legend, controller) { - legend + legend! ..verticalAlignment = (LegendVerticalAlignment.TOP) ..horizontalAlignment = (LegendHorizontalAlignment.RIGHT) ..orientation = (LegendOrientation.VERTICAL) ..drawInside = (false); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..drawAxisLine = (false) ..drawGridLines = (false); }, @@ -198,14 +198,14 @@ class LineChartMultipleState extends LineActionState } void _initLineData(int count, double range) async { - List imgs = List(3); + List imgs = []..length = (3); imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); - List dataSets = List(); + List dataSets = List.empty(); for (int z = 0; z < 3; z++) { - List values = List(); + List values = List.empty(); for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 3; diff --git a/mp_chart/example/lib/demo/line_chart/performance.dart b/mp_chart/example/lib/demo/line_chart/performance.dart index f2f22fdb..c23c28ca 100644 --- a/mp_chart/example/lib/demo/line_chart/performance.dart +++ b/mp_chart/example/lib/demo/line_chart/performance.dart @@ -103,7 +103,7 @@ class LineChartPerformanceState legend!.enabled = (false); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..drawGridLines = (true) ..drawAxisLine = (false); }, @@ -117,7 +117,7 @@ class LineChartPerformanceState } void _initLineData(double range) { - List values = List(); + List values = List.empty(); _count = (range + 1000).toInt(); @@ -137,7 +137,7 @@ class LineChartPerformanceState set1.setDrawFilled(false); // create a data object with the data sets - _controller.data = LineData.fromList(List()..add(set1)); + _controller.data = LineData.fromList([]..add(set1)); setState(() {}); } diff --git a/mp_chart/example/lib/demo/other_chart/bubble.dart b/mp_chart/example/lib/demo/other_chart/bubble.dart index 96342c4f..e6d0c648 100644 --- a/mp_chart/example/lib/demo/other_chart/bubble.dart +++ b/mp_chart/example/lib/demo/other_chart/bubble.dart @@ -134,7 +134,7 @@ class OtherChartBubbleState extends BubbleActionState var desc = Description()..enabled = false; controller = BubbleChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..spacePercentTop = (30) ..spacePercentBottom = (30) ..typeface = Util.LIGHT @@ -144,7 +144,7 @@ class OtherChartBubbleState extends BubbleActionState axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { - legend + legend! ..typeface = Util.LIGHT ..verticalAlignment = (LegendVerticalAlignment.TOP) ..horizontalAlignment = (LegendHorizontalAlignment.RIGHT) @@ -152,7 +152,7 @@ class OtherChartBubbleState extends BubbleActionState ..drawInside = (false); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..position = (XAxisPosition.BOTTOM) ..typeface = Util.LIGHT; }, @@ -168,13 +168,13 @@ class OtherChartBubbleState extends BubbleActionState } void _initBubbleData(int count, double range) async { - List imgs = List(3); + List imgs = []..length =(3); imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); - List values1 = List(); - List values2 = List(); - List values3 = List(); + List values1 = List.empty(); + List values2 = List.empty(); + List values3 = List.empty(); for (int i = 0; i < count; i++) { values1.add(BubbleEntry( @@ -210,14 +210,14 @@ class OtherChartBubbleState extends BubbleActionState set3.setColor3(ColorUtils.COLORFUL_COLORS[2], 130); set3.setDrawValues(true); - List dataSets = List(); + List dataSets = List.empty(); dataSets.add(set1); // add the data sets dataSets.add(set2); dataSets.add(set3); // create a data object with the data sets controller.data = BubbleData.fromList(dataSets); - controller.data + controller.data! ..setDrawValues(false) ..setValueTypeface(Util.LIGHT) ..setValueTextSize(8) diff --git a/mp_chart/example/lib/demo/other_chart/candlestick.dart b/mp_chart/example/lib/demo/other_chart/candlestick.dart index dc8f74da..2255f7e1 100644 --- a/mp_chart/example/lib/demo/other_chart/candlestick.dart +++ b/mp_chart/example/lib/demo/other_chart/candlestick.dart @@ -130,7 +130,7 @@ class OtherChartCandlestickState var desc = Description()..enabled = false; controller = CandlestickChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..setLabelCount2(7, false) ..drawGridLines = (false) ..drawAxisLine = (false); @@ -142,7 +142,7 @@ class OtherChartCandlestickState legend!.enabled = (false); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..position = (XAxisPosition.BOTTOM) ..drawGridLines = (true); }, @@ -161,7 +161,7 @@ class OtherChartCandlestickState var img = await ImageLoader.loadImage('assets/img/star.png'); // chart.resetTracking(); - List values = List(); + List values = List.empty(); for (int i = 0; i < count; i++) { double multi = (range + 1); @@ -198,7 +198,7 @@ class OtherChartCandlestickState set1.setNeutralColor(ColorUtils.BLUE); //set1.setHighlightLineWidth(1f); - controller.data = CandleData.fromList(List()..add(set1)); + controller.data = CandleData.fromList([]..add(set1)); setState(() {}); } diff --git a/mp_chart/example/lib/demo/other_chart/combined.dart b/mp_chart/example/lib/demo/other_chart/combined.dart index 27371d24..32c4f849 100644 --- a/mp_chart/example/lib/demo/other_chart/combined.dart +++ b/mp_chart/example/lib/demo/other_chart/combined.dart @@ -70,17 +70,17 @@ class OtherChartCombinedState extends CombinedActionState { var desc = Description()..enabled = false; controller = CombinedChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..drawGridLines = (false) ..setAxisMinimum(0); }, axisRightSettingFunction: (axisRight, controller) { - axisRight + axisRight! ..drawGridLines = (false) ..setAxisMinimum(0); }, legendSettingFunction: (legend, controller) { - legend + legend! ..wordWrapEnabled = (true) ..verticalAlignment = (LegendVerticalAlignment.BOTTOM) ..horizontalAlignment = (LegendHorizontalAlignment.CENTER) @@ -88,7 +88,7 @@ class OtherChartCombinedState extends CombinedActionState { ..drawInside = (false); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..position = (XAxisPosition.BOTH_SIDED) ..setAxisMinimum(0) ..setGranularity(1) @@ -106,7 +106,7 @@ class OtherChartCombinedState extends CombinedActionState { pinchZoomEnabled: false, maxVisibleCount: 60, description: desc, - drawOrder: List() + drawOrder: [] ..add(DrawOrder.BAR) ..add(DrawOrder.BUBBLE) ..add(DrawOrder.CANDLE) @@ -116,7 +116,7 @@ class OtherChartCombinedState extends CombinedActionState { void _initCombinedData() { controller.data = CombinedData(); - controller.data + controller.data! ..setData1(generateLineData()) ..setData2(generateBarData()) ..setData5(generateBubbleData()) @@ -132,7 +132,7 @@ class OtherChartCombinedState extends CombinedActionState { LineData generateLineData() { LineData d = LineData(); - List entries = List(); + List entries = List.empty(); for (int index = 0; index < _count; index++) entries.add(Entry(x: index + 0.5, y: getRandom(15, 5))); @@ -155,8 +155,8 @@ class OtherChartCombinedState extends CombinedActionState { } BarData generateBarData() { - List entries1 = List(); - List entries2 = List(); + List entries1 = List.empty(); + List entries2 = List.empty(); for (int index = 0; index < _count; index++) { entries1.add(BarEntry(x: 0, y: getRandom(25, 25))); @@ -164,7 +164,7 @@ class OtherChartCombinedState extends CombinedActionState { // stacked entries2.add(BarEntry.fromListYVals( x: 0, - vals: List() + vals: [] ..add(getRandom(13, 12)) ..add(getRandom(13, 12)))); } @@ -176,8 +176,8 @@ class OtherChartCombinedState extends CombinedActionState { set1.setAxisDependency(AxisDependency.LEFT); BarDataSet set2 = BarDataSet(entries2, ""); - set2.setStackLabels(List()..add("Stack 1")..add("Stack 2")); - set2.setColors1(List() + set2.setStackLabels([]..add("Stack 1")..add("Stack 2")); + set2.setColors1([] ..add(Color.fromARGB(255, 61, 165, 255)) ..add(Color.fromARGB(255, 23, 197, 255))); set2.setValueTextColor(Color.fromARGB(255, 61, 165, 255)); @@ -189,7 +189,7 @@ class OtherChartCombinedState extends CombinedActionState { double barWidth = 0.45; // x2 dataset // (0.45 + 0.02) * 2 + 0.06 = 1.00 -> interval per "group" - BarData d = BarData(List()..add(set1)..add(set2)); + BarData d = BarData([]..add(set1)..add(set2)); d.barWidth = (barWidth); // make this BarData object grouped @@ -201,7 +201,7 @@ class OtherChartCombinedState extends CombinedActionState { ScatterData generateScatterData() { ScatterData d = ScatterData(); - List entries = List(); + List entries = List.empty(); for (double index = 0; index < _count; index += 0.5) entries.add(Entry(x: index + 0.25, y: getRandom(10, 55))); @@ -219,7 +219,7 @@ class OtherChartCombinedState extends CombinedActionState { CandleData generateCandleData() { CandleData d = CandleData(); - List entries = List(); + List entries = List.empty(); for (int index = 0; index < _count; index += 2) entries.add(CandleEntry( @@ -239,7 +239,7 @@ class OtherChartCombinedState extends CombinedActionState { BubbleData generateBubbleData() { BubbleData bd = BubbleData(); - List entries = List(); + List entries = List.empty(); for (int index = 0; index < _count; index++) { double y = getRandom(10, 105); @@ -259,7 +259,7 @@ class OtherChartCombinedState extends CombinedActionState { } } -final List months = List() +final List months = [] ..add("Jan") ..add("Feb") ..add("Mar") diff --git a/mp_chart/example/lib/demo/other_chart/radar.dart b/mp_chart/example/lib/demo/other_chart/radar.dart index ae3d434d..4be5c51d 100644 --- a/mp_chart/example/lib/demo/other_chart/radar.dart +++ b/mp_chart/example/lib/demo/other_chart/radar.dart @@ -59,7 +59,7 @@ class OtherChartRadarState extends RadarActionState { var desc = Description()..enabled = false; controller = RadarChartController( yAxisSettingFunction: (yAxis, controller) { - yAxis + yAxis! ..typeface = Util.LIGHT ..setLabelCount2(5, false) ..textSize = (9) @@ -68,7 +68,7 @@ class OtherChartRadarState extends RadarActionState { ..drawLabels = (false); }, legendSettingFunction: (legend, controller) { - legend + legend! ..verticalAlignment = (LegendVerticalAlignment.TOP) ..horizontalAlignment = (LegendHorizontalAlignment.CENTER) ..orientation = (LegendOrientation.HORIZONTAL) @@ -80,7 +80,7 @@ class OtherChartRadarState extends RadarActionState { ..textColor = (ColorUtils.RED); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..textSize = (9) ..typeface = Util.LIGHT ..yOffset = (0) @@ -103,8 +103,8 @@ class OtherChartRadarState extends RadarActionState { double min = 20; int cnt = 5; - List entries1 = List(); - List entries2 = List(); + List entries1 = List.empty(); + List entries2 = List.empty(); // NOTE: The order of the entries when being added to the entries array determines their position around the center of // the chart. @@ -134,12 +134,12 @@ class OtherChartRadarState extends RadarActionState { set2.setDrawHighlightCircleEnabled(true); set2.setDrawHighlightIndicators(false); - List sets = List(); + List sets = List.empty(); sets.add(set1); sets.add(set2); controller.data = RadarData.fromList(sets); - controller.data + controller.data! ..setValueTypeface(Util.LIGHT) ..setValueTextSize(8) ..setDrawValues(false) @@ -150,7 +150,7 @@ class OtherChartRadarState extends RadarActionState { Widget _initCandleChart() { var radarChart = RadarChart(controller); - controller.animator + controller.animator! ..reset() ..animateXY2(1400, 1400, Easing.EaseInOutQuad); return radarChart; @@ -158,7 +158,7 @@ class OtherChartRadarState extends RadarActionState { } class A extends ValueFormatter { - final List mActivities = List() + final List mActivities = [] ..add("Burger") ..add("Steak") ..add("Salad") diff --git a/mp_chart/example/lib/demo/other_chart/scatter_plot.dart b/mp_chart/example/lib/demo/other_chart/scatter_plot.dart index acf70360..1649cf39 100644 --- a/mp_chart/example/lib/demo/other_chart/scatter_plot.dart +++ b/mp_chart/example/lib/demo/other_chart/scatter_plot.dart @@ -135,7 +135,7 @@ class OtherChartScatterPlotState var desc = Description()..enabled = false; controller = ScatterChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..setAxisMinimum(0) ..typeface = Util.LIGHT; }, @@ -143,7 +143,7 @@ class OtherChartScatterPlotState axisRight!.enabled = (false); }, legendSettingFunction: (legend, controller) { - legend + legend! ..verticalAlignment = (LegendVerticalAlignment.TOP) ..horizontalAlignment = (LegendHorizontalAlignment.RIGHT) ..orientation = (LegendOrientation.VERTICAL) @@ -152,7 +152,7 @@ class OtherChartScatterPlotState ..xOffset = (5); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..drawGridLines = (false) ..typeface = Util.LIGHT; }, @@ -169,14 +169,14 @@ class OtherChartScatterPlotState } void _initScatterData(int count, double range) async { - List imgs = List(3); + List imgs = []..length =(3); imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); - List values1 = List(); - List values2 = List(); - List values3 = List(); + List values1 = List.empty(); + List values2 = List.empty(); + List values3 = List.empty(); for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 3; @@ -210,7 +210,7 @@ class OtherChartScatterPlotState set2.setScatterShapeSize(8); set3.setScatterShapeSize(8); - List dataSets = List(); + List dataSets = List.empty(); dataSets.add(set1); // add the data sets dataSets.add(set2); dataSets.add(set3); diff --git a/mp_chart/example/lib/demo/pie_chart/basic.dart b/mp_chart/example/lib/demo/pie_chart/basic.dart index b52c36db..1b17602b 100644 --- a/mp_chart/example/lib/demo/pie_chart/basic.dart +++ b/mp_chart/example/lib/demo/pie_chart/basic.dart @@ -131,7 +131,7 @@ class PieChartBasicState extends PieActionState } // ignore: non_constant_identifier_names - final List PARTIES = List() + final List PARTIES = [] ..add("Party A") ..add("Party B") ..add("Party C") @@ -166,7 +166,7 @@ class PieChartBasicState extends PieActionState controller = PieChartController( legendSettingFunction: (legend, controller) { _formatter.setPieChartPainter(controller as PieChartController); - legend + legend! ..verticalAlignment = (LegendVerticalAlignment.TOP) ..horizontalAlignment = (LegendHorizontalAlignment.RIGHT) ..orientation = (LegendOrientation.VERTICAL) @@ -201,7 +201,7 @@ class PieChartBasicState extends PieActionState void _initPieData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List entries = List(); + List entries = List.empty(); // NOTE: The order of the entries when being added to the entries array determines their position around the center of // the chart. @@ -222,7 +222,7 @@ class PieChartBasicState extends PieActionState dataSet.setSelectionShift(5); // add a lot of colors - List colors = List(); + List colors = List.empty(); for (Color c in ColorUtils.VORDIPLOM_COLORS) colors.add(c); for (Color c in ColorUtils.JOYFUL_COLORS) colors.add(c); for (Color c in ColorUtils.COLORFUL_COLORS) colors.add(c); @@ -232,7 +232,7 @@ class PieChartBasicState extends PieActionState dataSet.setColors1(colors); controller.data = PieData(dataSet); - controller.data + controller.data! ..setValueFormatter(_formatter) ..setValueTextSize(11) ..setValueTextColor(ColorUtils.WHITE) diff --git a/mp_chart/example/lib/demo/pie_chart/half_pie.dart b/mp_chart/example/lib/demo/pie_chart/half_pie.dart index 12ed695a..619d830c 100644 --- a/mp_chart/example/lib/demo/pie_chart/half_pie.dart +++ b/mp_chart/example/lib/demo/pie_chart/half_pie.dart @@ -49,7 +49,7 @@ class PieChartHalfPieState extends SimpleActionState { } // ignore: non_constant_identifier_names - final List PARTIES = List() + final List PARTIES = [] ..add("Party A") ..add("Party B") ..add("Party C") @@ -82,7 +82,7 @@ class PieChartHalfPieState extends SimpleActionState { _controller = PieChartController( legendSettingFunction: (legend, controller) { _formatter.setPieChartPainter(controller as PieChartController); - legend + legend! ..verticalAlignment = (LegendVerticalAlignment.TOP) ..horizontalAlignment = (LegendHorizontalAlignment.CENTER) ..orientation = (LegendOrientation.HORIZONTAL) @@ -124,7 +124,7 @@ class PieChartHalfPieState extends SimpleActionState { var count = 4; var range = 100; - List values = List(); + List values = List.empty(); for (int i = 0; i < count; i++) { values.add(new PieEntry( diff --git a/mp_chart/example/lib/demo/pie_chart/value_lines.dart b/mp_chart/example/lib/demo/pie_chart/value_lines.dart index 81d62743..18cab64c 100644 --- a/mp_chart/example/lib/demo/pie_chart/value_lines.dart +++ b/mp_chart/example/lib/demo/pie_chart/value_lines.dart @@ -132,7 +132,7 @@ class PieChartValueLinesState extends PieActionState } // ignore: non_constant_identifier_names - final List PARTIES = List() + final List PARTIES = List.empty() ..add("Party A") ..add("Party B") ..add("Party C") @@ -165,7 +165,7 @@ class PieChartValueLinesState extends PieActionState controller = PieChartController( legendSettingFunction: (legend, controller) { _formatter.setPieChartPainter(controller as PieChartController); - legend + legend! ..verticalAlignment = (LegendVerticalAlignment.TOP) ..horizontalAlignment = (LegendHorizontalAlignment.RIGHT) ..orientation = (LegendOrientation.VERTICAL) @@ -199,7 +199,7 @@ class PieChartValueLinesState extends PieActionState void _initPieData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List entries = List(); + List entries = List.empty(); // NOTE: The order of the entries when being added to the entries array determines their position around the center of // the chart. @@ -217,7 +217,7 @@ class PieChartValueLinesState extends PieActionState dataSet.setSelectionShift(5); // add a lot of colors - List colors = List(); + List colors = List.empty(); for (Color c in ColorUtils.VORDIPLOM_COLORS) colors.add(c); for (Color c in ColorUtils.JOYFUL_COLORS) colors.add(c); for (Color c in ColorUtils.COLORFUL_COLORS) colors.add(c); @@ -244,7 +244,7 @@ class PieChartValueLinesState extends PieActionState Widget _initPieChart() { var pieChart = PieChart(controller); - controller.animator + controller.animator! ..reset() ..animateY2(1400, Easing.EaseInOutQuad); return pieChart; diff --git a/mp_chart/example/lib/demo/scrolling_chart/many_bar_chart.dart b/mp_chart/example/lib/demo/scrolling_chart/many_bar_chart.dart index 6e36b6a0..c00e8aec 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/many_bar_chart.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/many_bar_chart.dart @@ -22,7 +22,7 @@ class ScrollingChartManyBar extends StatefulWidget { class ScrollingChartManyBarState extends SimpleActionState { - List _controllers = List(); + List _controllers = List.empty(); var random = Random(1); bool _isParentMove = true; double _curX = 0.0; @@ -93,17 +93,17 @@ class ScrollingChartManyBarState for (int i = 0; i < 20; i++) { _controllers.add(BarChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..setLabelCount2(5, false) ..spacePercentTop = (15); }, axisRightSettingFunction: (axisRight, controller) { - axisRight + axisRight! ..setLabelCount2(5, false) ..spacePercentTop = (15); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..position = (XAxisPosition.BOTTOM) ..drawGridLines = (false); }, @@ -119,7 +119,7 @@ class ScrollingChartManyBarState Widget _renderItem(int index) { var barChart = BarChart(_controllers[index]); - _controllers[index].animator + _controllers[index].animator! ..reset() ..animateY1(700); return Container(height: 200, child: barChart); @@ -132,7 +132,7 @@ class ScrollingChartManyBarState } BarData generateData(int cnt) { - List entries = List(); + List entries = List.empty(); for (int i = 0; i < 12; i++) { entries @@ -143,7 +143,7 @@ class ScrollingChartManyBarState d.setColors1(ColorUtils.VORDIPLOM_COLORS); d.setBarShadowColor(Color.fromARGB(255, 203, 203, 203)); - List sets = List(); + List sets = List.empty(); sets.add(d); BarData cd = BarData(sets); diff --git a/mp_chart/example/lib/demo/scrolling_chart/multiple.dart b/mp_chart/example/lib/demo/scrolling_chart/multiple.dart index ab0bdbf6..4a76b0e6 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/multiple.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/multiple.dart @@ -38,7 +38,7 @@ class ScrollingChartMultiple extends StatefulWidget { class ScrollingChartMultipleState extends SimpleActionState { - List _controllers = List(); + List _controllers = List.empty(); var random = Random(1); bool _isParentMove = true; double _curX = 0.0; @@ -123,18 +123,18 @@ class ScrollingChartMultipleState if (i % 3 == 0) { _controllers.add(LineChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..setLabelCount2(5, false) ..setAxisMinimum(0); }, axisRightSettingFunction: (axisRight, controller) { - axisRight + axisRight! ..setLabelCount2(5, false) ..drawGridLines = (false) ..setAxisMinimum(0); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..position = (XAxisPosition.BOTTOM) ..drawGridLines = (false) ..drawAxisLine = (true); @@ -148,19 +148,19 @@ class ScrollingChartMultipleState } else if (i % 3 == 1) { _controllers.add(BarChartController( axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..setLabelCount2(5, false) ..setAxisMinimum(0) ..spacePercentTop = (20); }, axisRightSettingFunction: (axisRight, controller) { - axisRight + axisRight! ..setLabelCount2(5, false) ..setAxisMinimum(0) ..spacePercentTop = (20); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..position = (XAxisPosition.BOTTOM) ..drawAxisLine = (true) ..drawGridLines = (false); @@ -176,7 +176,7 @@ class ScrollingChartMultipleState } else if (i % 3 == 2) { _controllers.add(PieChartController( legendSettingFunction: (legend, controller) { - legend + legend! ..verticalAlignment = (LegendVerticalAlignment.TOP) ..horizontalAlignment = (LegendHorizontalAlignment.RIGHT) ..orientation = (LegendOrientation.VERTICAL) @@ -210,7 +210,7 @@ class ScrollingChartMultipleState } LineData _generateDataLine(int cnt) { - List values1 = List(); + List values1 = List.empty(); for (int i = 0; i < 12; i++) { values1.add(Entry(x: i.toDouble(), y: (random.nextDouble() * 65) + 40)); @@ -222,7 +222,7 @@ class ScrollingChartMultipleState d1.setHighLightColor(Color.fromARGB(255, 244, 117, 117)); d1.setDrawValues(false); - List values2 = List(); + List values2 = List.empty(); for (int i = 0; i < 12; i++) { values2.add(Entry(x: i.toDouble(), y: values1[i].y! - 30)); @@ -236,7 +236,7 @@ class ScrollingChartMultipleState d2.setCircleColor(ColorUtils.VORDIPLOM_COLORS[0]); d2.setDrawValues(false); - List sets = List(); + List sets = List.empty(); sets.add(d1); sets.add(d2); @@ -244,7 +244,7 @@ class ScrollingChartMultipleState } BarData _generateDataBar(int cnt) { - List entries = List(); + List entries = List.empty(); for (int i = 0; i < 12; i++) { entries @@ -255,13 +255,13 @@ class ScrollingChartMultipleState d.setColors1(ColorUtils.VORDIPLOM_COLORS); d.setHighLightAlpha(255); - BarData cd = BarData(List()..add(d)); + BarData cd = BarData([]..add(d)); cd.barWidth = (0.9); return cd; } PieData _generateDataPie() { - List entries = List(); + List entries = List.empty(); for (int i = 0; i < 4; i++) { entries.add(PieEntry( @@ -279,7 +279,7 @@ class ScrollingChartMultipleState LineChart _getLineChart(LineChartController controller) { var lineChart = LineChart(controller); - controller.animator + controller.animator! ..reset() ..animateX1(750); return lineChart; @@ -287,19 +287,19 @@ class ScrollingChartMultipleState BarChart _getBarChart(BarChartController controller) { var barChart = BarChart(controller); - controller.animator + controller.animator! ..reset() ..animateY1(700); return barChart; } PieChart _getPieChart(PieChartController controller) { - controller.data + controller.data! ..setValueFormatter(PercentFormatter()) ..setValueTextSize(11) ..setValueTextColor(ColorUtils.WHITE); var pieChart = PieChart(controller); - controller.animator + controller.animator! ..reset() ..animateY1(900); return pieChart; diff --git a/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart b/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart index 4c10ad8b..a7c87896 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart @@ -89,7 +89,7 @@ class ScrollingChartTallBarState Widget _renderItem() { var barChart = BarChart(_controller); - _controller.animator + _controller.animator! ..reset() ..animateY1(800); return Column( @@ -138,7 +138,7 @@ class ScrollingChartTallBarState legend!.enabled = (false); }, xAxisSettingFunction: (xAxis, controller) { - xAxis + xAxis! ..position = (XAxisPosition.BOTTOM) ..drawGridLines = (false); }, @@ -158,7 +158,7 @@ class ScrollingChartTallBarState } BarData generateData() { - List entries = List(); + List entries = List.empty(); for (int i = 0; i < 10; i++) { entries @@ -169,7 +169,7 @@ class ScrollingChartTallBarState d.setColors1(ColorUtils.VORDIPLOM_COLORS); d.setDrawValues(false); - List sets = List(); + List sets = List.empty(); sets.add(d); return BarData(sets); diff --git a/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart b/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart index 818bbc2e..bdfb3db5 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart @@ -146,7 +146,7 @@ class ScrollingChartViewPagerState _lineChartController1 = LineChartController( resolveGestureHorizontalConflict: true, axisLeftSettingFunction: (axisLeft, controller) { - axisLeft + axisLeft! ..setAxisMaximum(1.2) ..setAxisMinimum(-1.2); }, @@ -202,7 +202,7 @@ class ScrollingChartViewPagerState axisRight!.drawGridLines = (false); }, legendSettingFunction: (legend, controller) { - legend + legend! ..wordWrapEnabled = (true) ..formSize = (14) ..textSize = (9) @@ -222,7 +222,7 @@ class ScrollingChartViewPagerState _pieChartController = PieChartController( resolveGestureHorizontalConflict: true, legendSettingFunction: (legend, controller) { - legend + legend! ..verticalAlignment = (LegendVerticalAlignment.TOP) ..horizontalAlignment = (LegendHorizontalAlignment.RIGHT) ..orientation = (LegendOrientation.VERTICAL) @@ -235,10 +235,10 @@ class ScrollingChartViewPagerState } void _initLineData1() { - List sets = List(); + List sets = List.empty(); Util.loadAsset("sine.txt").then((value) { - List data = List(); + List data = List.empty(); List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -259,7 +259,7 @@ class ScrollingChartViewPagerState }); Util.loadAsset("cosine.txt").then((value) { - List data = List(); + List data = List.empty(); List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -281,10 +281,10 @@ class ScrollingChartViewPagerState } void _initLineData2() { - List sets = List(); + List sets = List.empty(); Util.loadAsset("n.txt").then((value) { - List data = List(); + List data = List.empty(); List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -307,7 +307,7 @@ class ScrollingChartViewPagerState }); Util.loadAsset("nlogn.txt").then((value) { - List data = List(); + List data = List.empty(); List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -330,7 +330,7 @@ class ScrollingChartViewPagerState }); Util.loadAsset("square.txt").then((value) { - List data = List(); + List data = List.empty(); List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -353,7 +353,7 @@ class ScrollingChartViewPagerState }); Util.loadAsset("three.txt").then((value) { - List data = List(); + List data = List.empty(); List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -376,7 +376,7 @@ class ScrollingChartViewPagerState }); } - List _labels = List() + List _labels = [] ..add("Company A") ..add("Company B") ..add("Company C") @@ -385,11 +385,11 @@ class ScrollingChartViewPagerState ..add("Company F"); void _initBarData() { - List sets = List(); + List sets = List.empty(); var range = 20000; for (int i = 0; i < 1; i++) { - List entries = List(); + List entries = List.empty(); for (int j = 0; j < 12; j++) { entries.add(BarEntry( @@ -409,12 +409,12 @@ class ScrollingChartViewPagerState var dataSets = 6; var range = 10000; var count = 200; - List sets = List(); + List sets = List.empty(); List shapes = ScatterShape.values; for (int i = 0; i < dataSets; i++) { - List entries = List(); + List entries = List.empty(); for (int j = 0; j < count; j++) { entries.add(Entry( @@ -436,7 +436,7 @@ class ScrollingChartViewPagerState void _initPieData() { int count = 4; - List entries1 = List(); + List entries1 = List.empty(); for (int i = 0; i < count; i++) { entries1.add(PieEntry( @@ -455,7 +455,7 @@ class ScrollingChartViewPagerState Widget _initLineChart1() { var lineChart = LineChart(_lineChartController1); - _lineChartController1.animator + _lineChartController1.animator! ..reset() ..animateX1(3000); return lineChart; @@ -463,7 +463,7 @@ class ScrollingChartViewPagerState Widget _initLineChart2() { var lineChart = LineChart(_lineChartController2); - _lineChartController2.animator + _lineChartController2.animator! ..reset() ..animateX1(3000); return lineChart; From 3d3493c1fc2433d96bfd4210535e0c93c324ce21 Mon Sep 17 00:00:00 2001 From: Takuro KAKOI Date: Sat, 25 Sep 2021 10:23:08 +0900 Subject: [PATCH 10/29] update --- mp_chart/example/lib/demo/action_state.dart | 54 ++++++++++--------- .../example/lib/demo/bar_chart/basic.dart | 6 +-- .../example/lib/demo/bar_chart/basic2.dart | 4 +- .../lib/demo/bar_chart/horizontal.dart | 4 +- .../example/lib/demo/bar_chart/multiple.dart | 8 +-- .../example/lib/demo/bar_chart/negative.dart | 6 +-- mp_chart/example/lib/demo/bar_chart/sine.dart | 4 +- .../example/lib/demo/bar_chart/stacked.dart | 4 +- .../example/lib/demo/bar_chart/stacked2.dart | 2 +- .../example/lib/demo/even_more/dynamic.dart | 2 +- .../example/lib/demo/even_more/hourly.dart | 2 +- .../example/lib/demo/line_chart/basic.dart | 4 +- .../example/lib/demo/line_chart/colorful.dart | 2 +- .../example/lib/demo/line_chart/cubic.dart | 2 +- .../lib/demo/line_chart/dual_axis.dart | 6 +-- .../lib/demo/line_chart/invert_axis.dart | 2 +- .../example/lib/demo/line_chart/multiple.dart | 4 +- .../lib/demo/line_chart/performance.dart | 2 +- .../example/lib/demo/other_chart/bubble.dart | 8 +-- .../lib/demo/other_chart/candlestick.dart | 2 +- .../lib/demo/other_chart/combined.dart | 12 ++--- .../example/lib/demo/other_chart/radar.dart | 6 +-- .../lib/demo/other_chart/scatter_plot.dart | 8 +-- .../example/lib/demo/pie_chart/basic.dart | 4 +- .../example/lib/demo/pie_chart/half_pie.dart | 2 +- .../lib/demo/pie_chart/value_lines.dart | 4 +- .../demo/scrolling_chart/many_bar_chart.dart | 6 +-- .../lib/demo/scrolling_chart/multiple.dart | 12 ++--- .../lib/demo/scrolling_chart/tall_bar.dart | 4 +- .../lib/demo/scrolling_chart/view_pager.dart | 26 ++++----- ...line_scatter_candle_bubble_controller.dart | 14 ++--- mp_chart/lib/mp/core/axis/axis_base.dart | 8 +-- mp_chart/lib/mp/core/data/chart_data.dart | 2 +- mp_chart/lib/mp/core/data/combined_data.dart | 4 +- .../lib/mp/core/data_set/bar_data_set.dart | 2 +- .../lib/mp/core/data_set/base_data_set.dart | 12 ++--- .../lib/mp/core/data_set/bubble_data_set.dart | 2 +- .../lib/mp/core/data_set/candle_data_set.dart | 2 +- mp_chart/lib/mp/core/data_set/data_set.dart | 8 +-- .../lib/mp/core/data_set/line_data_set.dart | 6 +-- .../lib/mp/core/data_set/pie_data_set.dart | 2 +- .../lib/mp/core/data_set/radar_data_set.dart | 2 +- .../mp/core/data_set/scatter_data_set.dart | 2 +- .../mp/core/highlight/chart_hightlighter.dart | 4 +- .../highlight/horizontal_bar_highlighter.dart | 2 +- .../core/highlight/pie_radar_highlighter.dart | 2 +- mp_chart/lib/mp/core/legend/legend.dart | 10 ++-- mp_chart/lib/mp/core/poolable/point.dart | 2 +- .../lib/mp/core/render/axis_renderer.dart | 4 +- .../core/render/combined_chart_renderer.dart | 4 +- .../lib/mp/core/render/legend_renderer.dart | 2 +- .../mp/core/render/line_chart_renderer.dart | 8 +-- .../render/y_axis_renderer_radar_chart.dart | 4 +- 53 files changed, 161 insertions(+), 159 deletions(-) diff --git a/mp_chart/example/lib/demo/action_state.dart b/mp_chart/example/lib/demo/action_state.dart index bde7bc19..8cdba63c 100644 --- a/mp_chart/example/lib/demo/action_state.dart +++ b/mp_chart/example/lib/demo/action_state.dart @@ -74,6 +74,7 @@ abstract class ActionState extends State { PopupMenuItemBuilder getBuilder(); void captureImg(CaptureCallback callback) { + /* PermissionHandler() .checkPermissionStatus(PermissionGroup.storage) .then((permission) { @@ -94,6 +95,7 @@ abstract class ActionState extends State { callback(); } }); + */ } } @@ -236,17 +238,17 @@ abstract class LineActionState } break; case 'L': - controller!.animator + controller!.animator! ..reset() ..animateX1(2000); break; case 'M': - controller!.animator + controller!.animator! ..reset() ..animateY2(2000, Easing.EaseInCubic); break; case 'N': - controller!.animator + controller!.animator! ..reset() ..animateXY1(2000, 2000); break; @@ -324,17 +326,17 @@ abstract class BarActionState extends ActionState { controller.state!.setStateIfNotDispose(); break; case 'H': - controller.animator + controller.animator! ..reset() ..animateX1(2000); break; case 'I': - controller.animator + controller.animator! ..reset() ..animateY1(2000); break; case 'J': - controller.animator + controller.animator! ..reset() ..animateXY1(2000, 2000); break; @@ -413,17 +415,17 @@ abstract class HorizontalBarActionState controller.state!.setStateIfNotDispose(); break; case 'H': - controller.animator + controller.animator! ..reset() ..animateX1(2000); break; case 'I': - controller.animator + controller.animator! ..reset() ..animateY1(2000); break; case 'J': - controller.animator + controller.animator! ..reset() ..animateXY1(2000, 2000); break; @@ -515,23 +517,23 @@ abstract class PieActionState extends ActionState { controller.state!.setStateIfNotDispose(); break; case 'J': - controller.animator + controller.animator! ..reset() ..spin(2000, controller.rotationAngle, controller.rotationAngle + 360, Easing.EaseInOutCubic); break; case 'K': - controller.animator + controller.animator! ..reset() ..animateX1(1400); break; case 'L': - controller.animator + controller.animator! ..reset() ..animateY1(1400); break; case 'M': - controller.animator + controller.animator! ..reset() ..animateXY1(1400, 1400); break; @@ -654,17 +656,17 @@ abstract class ScatterActionState } break; case 'E': - controller.animator + controller.animator! ..reset() ..animateX1(3000); break; case 'F': - controller.animator + controller.animator! ..reset() ..animateY1(3000); break; case 'G': - controller.animator + controller.animator! ..reset() ..animateXY1(3000, 3000); break; @@ -733,17 +735,17 @@ abstract class BubbleActionState } break; case 'E': - controller.animator + controller.animator! ..reset() ..animateX1(2000); break; case 'F': - controller.animator + controller.animator! ..reset() ..animateY1(2000); break; case 'G': - controller.animator + controller.animator! ..reset() ..animateXY1(2000, 2000); break; @@ -813,17 +815,17 @@ abstract class CandlestickActionState } break; case 'E': - controller.animator + controller.animator! ..reset() ..animateX1(2000); break; case 'F': - controller.animator + controller.animator! ..reset() ..animateY1(2000); break; case 'G': - controller.animator + controller.animator! ..reset() ..animateXY1(2000, 2000); break; @@ -933,23 +935,23 @@ abstract class RadarActionState controller.state!.setStateIfNotDispose(); break; case 'J': - controller.animator + controller.animator! ..reset() ..spin(2000, controller.rotationAngle, controller.rotationAngle + 360, Easing.EaseInOutCubic); break; case 'K': - controller.animator + controller.animator! ..reset() ..animateX1(1400); break; case 'L': - controller.animator + controller.animator! ..reset() ..animateY1(1400); break; case 'M': - controller.animator + controller.animator! ..reset() ..animateXY1(1400, 1400); break; diff --git a/mp_chart/example/lib/demo/bar_chart/basic.dart b/mp_chart/example/lib/demo/bar_chart/basic.dart index f0f8720d..187cd65f 100644 --- a/mp_chart/example/lib/demo/bar_chart/basic.dart +++ b/mp_chart/example/lib/demo/bar_chart/basic.dart @@ -201,7 +201,7 @@ class BarChartBasicState extends BarActionState void _initData(int count, double range, ui.Image img) { double start = 1; - List values = List.empty(); + List values = []; for (int i = start.toInt(); i < start + count; i++) { double val = (random.nextDouble() * (range + 1)); @@ -232,7 +232,7 @@ class BarChartBasicState extends BarActionState Color endColor4 = ColorUtils.HOLO_RED_DARK; Color endColor5 = ColorUtils.HOLO_ORANGE_DARK; - List gradientColors = List.empty(); + List gradientColors = []; gradientColors.add(GradientColor(startColor1, endColor1)); gradientColors.add(GradientColor(startColor2, endColor2)); gradientColors.add(GradientColor(startColor3, endColor3)); @@ -241,7 +241,7 @@ class BarChartBasicState extends BarActionState set1.setGradientColors(gradientColors); - List dataSets = List.empty(); + List dataSets = []; dataSets.add(set1); controller.data = BarData(dataSets); diff --git a/mp_chart/example/lib/demo/bar_chart/basic2.dart b/mp_chart/example/lib/demo/bar_chart/basic2.dart index 3d145b3b..d9db0f04 100644 --- a/mp_chart/example/lib/demo/bar_chart/basic2.dart +++ b/mp_chart/example/lib/demo/bar_chart/basic2.dart @@ -123,7 +123,7 @@ class BarChartBasic2State extends BarActionState { void _initBarData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List values = List.empty(); + List values = []; for (int i = 0; i < count; i++) { double multi = (range + 1); @@ -137,7 +137,7 @@ class BarChartBasic2State extends BarActionState { set1.setColors1(ColorUtils.VORDIPLOM_COLORS); set1.setDrawValues(false); - List dataSets = List.empty(); + List dataSets = []; dataSets.add(set1); controller.data = BarData(dataSets); diff --git a/mp_chart/example/lib/demo/bar_chart/horizontal.dart b/mp_chart/example/lib/demo/bar_chart/horizontal.dart index fa24fefa..81173751 100644 --- a/mp_chart/example/lib/demo/bar_chart/horizontal.dart +++ b/mp_chart/example/lib/demo/bar_chart/horizontal.dart @@ -136,7 +136,7 @@ class BarChartHorizontalState var img = await ImageLoader.loadImage('assets/img/star.png'); double barWidth = 9; double spaceForBar = 10; - List values = List.empty(); + List values = []; for (int i = 0; i < count; i++) { double val = random.nextDouble() * range; @@ -149,7 +149,7 @@ class BarChartHorizontalState set1.setDrawIcons(false); - List dataSets = List.empty(); + List dataSets = []; dataSets.add(set1); controller.data = BarData(dataSets); diff --git a/mp_chart/example/lib/demo/bar_chart/multiple.dart b/mp_chart/example/lib/demo/bar_chart/multiple.dart index 3b35dcd9..e6170d9f 100644 --- a/mp_chart/example/lib/demo/bar_chart/multiple.dart +++ b/mp_chart/example/lib/demo/bar_chart/multiple.dart @@ -202,10 +202,10 @@ class BarChartMultipleState extends BarActionState startYear = 1980; endYear = startYear + groupCount; - List values1 = List.empty(); - List values2 = List.empty(); - List values3 = List.empty(); - List values4 = List.empty(); + List values1 = []; + List values2 = []; + List values3 = []; + List values4 = []; double randomMultiplier = range * 100000; diff --git a/mp_chart/example/lib/demo/bar_chart/negative.dart b/mp_chart/example/lib/demo/bar_chart/negative.dart index 80580b7a..9a0e2d24 100644 --- a/mp_chart/example/lib/demo/bar_chart/negative.dart +++ b/mp_chart/example/lib/demo/bar_chart/negative.dart @@ -23,7 +23,7 @@ class BarChartNegative extends StatefulWidget { class BarChartNegativeState extends SimpleActionState { late BarChartController _controller; - List _data = List.empty(); + List _data = []; @override void initState() { @@ -58,8 +58,8 @@ class BarChartNegativeState extends SimpleActionState { } void _initBarData() { - List values = List.empty(); - List colors = List.empty(); + List values = []; + List colors = []; Color green = Color.fromARGB(255, 110, 190, 102); Color red = Color.fromARGB(255, 211, 74, 88); diff --git a/mp_chart/example/lib/demo/bar_chart/sine.dart b/mp_chart/example/lib/demo/bar_chart/sine.dart index afdfa5a1..3b019bb6 100644 --- a/mp_chart/example/lib/demo/bar_chart/sine.dart +++ b/mp_chart/example/lib/demo/bar_chart/sine.dart @@ -31,7 +31,7 @@ class BarChartSineState extends BarActionState { void initState() { _initController(); Util.loadAsset("othersine.txt").then((value) { - _data = List.empty(); + _data = []; List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -154,7 +154,7 @@ class BarChartSineState extends BarActionState { void _initBarData(int count) { if (_data == null) return; - List entries = List .empty(); + List entries = []; for (int i = 0; i < count; i++) { entries.add(_data![i]); } diff --git a/mp_chart/example/lib/demo/bar_chart/stacked.dart b/mp_chart/example/lib/demo/bar_chart/stacked.dart index 9087612e..f1cf8f5b 100644 --- a/mp_chart/example/lib/demo/bar_chart/stacked.dart +++ b/mp_chart/example/lib/demo/bar_chart/stacked.dart @@ -133,7 +133,7 @@ class BarChartStackedState extends BarActionState void _initBarData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List values = List.empty(); + List values = []; for (int i = 0; i < count; i++) { double mul = (range + 1); @@ -155,7 +155,7 @@ class BarChartStackedState extends BarActionState set1.setStackLabels( []..add("Births")..add("Divorces")..add("Marriages")); - List dataSets = List.empty(); + List dataSets = []; dataSets.add(set1); controller.data = BarData(dataSets); diff --git a/mp_chart/example/lib/demo/bar_chart/stacked2.dart b/mp_chart/example/lib/demo/bar_chart/stacked2.dart index 853e8b79..58ceca5b 100644 --- a/mp_chart/example/lib/demo/bar_chart/stacked2.dart +++ b/mp_chart/example/lib/demo/bar_chart/stacked2.dart @@ -55,7 +55,7 @@ class BarChartStacked2State extends HorizontalBarActionState void _initBarData() async { var img = await ImageLoader.loadImage('assets/img/star.png'); // IMPORTANT: When using negative values in stacked bars, always make sure the negative values are in the array first - List values = List.empty(); + List values = []; values.add(BarEntry.fromListYVals( x: 5, vals: []..add(-10)..add(10), icon: img)); values.add(BarEntry.fromListYVals( diff --git a/mp_chart/example/lib/demo/even_more/dynamic.dart b/mp_chart/example/lib/demo/even_more/dynamic.dart index 66921690..1dddc265 100644 --- a/mp_chart/example/lib/demo/even_more/dynamic.dart +++ b/mp_chart/example/lib/demo/even_more/dynamic.dart @@ -198,7 +198,7 @@ class EvenMoreDynamicState extends ActionState } else { int count = (data.getDataSetCount() + 1); int amount = data.getDataSetByIndex(0)!.getEntryCount(); - List values = List.empty(); + List values = []; for (int i = 0; i < amount; i++) { values.add(new Entry( x: i.toDouble(), y: (random.nextDouble() * 50) + 50 * count)); diff --git a/mp_chart/example/lib/demo/even_more/hourly.dart b/mp_chart/example/lib/demo/even_more/hourly.dart index 14f9b82b..d0b3ff01 100644 --- a/mp_chart/example/lib/demo/even_more/hourly.dart +++ b/mp_chart/example/lib/demo/even_more/hourly.dart @@ -146,7 +146,7 @@ class EvenMoreHourlyState extends LineActionState { // now in hours int now = Util.currentTimeMillis(); - List values = List.empty(); + List values = []; // count = hours double to = now + count; diff --git a/mp_chart/example/lib/demo/line_chart/basic.dart b/mp_chart/example/lib/demo/line_chart/basic.dart index d1e8b5a5..6cbaf9f0 100644 --- a/mp_chart/example/lib/demo/line_chart/basic.dart +++ b/mp_chart/example/lib/demo/line_chart/basic.dart @@ -198,7 +198,7 @@ class LineChartBasicState extends LineActionState { void _initLineData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List values = List.empty(); + List values = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) - 30; @@ -245,7 +245,7 @@ class LineChartBasicState extends LineActionState { // set color of filled area set1.setGradientColor(ColorUtils.BLUE, ColorUtils.RED); - List dataSets = List.empty(); + List dataSets = []; dataSets.add(set1); // add the data sets // create a data object with the data sets diff --git a/mp_chart/example/lib/demo/line_chart/colorful.dart b/mp_chart/example/lib/demo/line_chart/colorful.dart index 0ef7628c..2a7a8406 100644 --- a/mp_chart/example/lib/demo/line_chart/colorful.dart +++ b/mp_chart/example/lib/demo/line_chart/colorful.dart @@ -92,7 +92,7 @@ class LineChartColorfulState extends SimpleActionState { } LineData _getData(int count, double range) { - List values = List.empty(); + List values = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 3; diff --git a/mp_chart/example/lib/demo/line_chart/cubic.dart b/mp_chart/example/lib/demo/line_chart/cubic.dart index f5f7effa..bdc11698 100644 --- a/mp_chart/example/lib/demo/line_chart/cubic.dart +++ b/mp_chart/example/lib/demo/line_chart/cubic.dart @@ -167,7 +167,7 @@ class LineChartCubicState extends LineActionState { void _initLineData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List values = List.empty(); + List values = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * (range + 1)) + 20; diff --git a/mp_chart/example/lib/demo/line_chart/dual_axis.dart b/mp_chart/example/lib/demo/line_chart/dual_axis.dart index 8daf4d98..b79ee11c 100644 --- a/mp_chart/example/lib/demo/line_chart/dual_axis.dart +++ b/mp_chart/example/lib/demo/line_chart/dual_axis.dart @@ -201,21 +201,21 @@ class LineChartDualAxisState extends LineActionState imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); - List values1 = List.empty();; + List values1 = [];; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * (range / 2.0)) + 50; values1.add(Entry(x: i.toDouble(), y: val, icon: imgs[0])); } - List values2 = List.empty(); + List values2 = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 450; values2.add(new Entry(x: i.toDouble(), y: val, icon: imgs[1])); } - List values3 = List.empty(); + List values3 = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 500; diff --git a/mp_chart/example/lib/demo/line_chart/invert_axis.dart b/mp_chart/example/lib/demo/line_chart/invert_axis.dart index 76e8c652..1bd23097 100644 --- a/mp_chart/example/lib/demo/line_chart/invert_axis.dart +++ b/mp_chart/example/lib/demo/line_chart/invert_axis.dart @@ -159,7 +159,7 @@ class LineChartInvertAxisState extends LineActionState void _initLineData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List entries = List.empty(); + List entries = []; for (int i = 0; i < count; i++) { double xVal = (random.nextDouble() * range); diff --git a/mp_chart/example/lib/demo/line_chart/multiple.dart b/mp_chart/example/lib/demo/line_chart/multiple.dart index 071be1da..d57021cc 100644 --- a/mp_chart/example/lib/demo/line_chart/multiple.dart +++ b/mp_chart/example/lib/demo/line_chart/multiple.dart @@ -202,10 +202,10 @@ class LineChartMultipleState extends LineActionState imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); - List dataSets = List.empty(); + List dataSets = []; for (int z = 0; z < 3; z++) { - List values = List.empty(); + List values = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 3; diff --git a/mp_chart/example/lib/demo/line_chart/performance.dart b/mp_chart/example/lib/demo/line_chart/performance.dart index c23c28ca..4840b6bf 100644 --- a/mp_chart/example/lib/demo/line_chart/performance.dart +++ b/mp_chart/example/lib/demo/line_chart/performance.dart @@ -117,7 +117,7 @@ class LineChartPerformanceState } void _initLineData(double range) { - List values = List.empty(); + List values = []; _count = (range + 1000).toInt(); diff --git a/mp_chart/example/lib/demo/other_chart/bubble.dart b/mp_chart/example/lib/demo/other_chart/bubble.dart index e6d0c648..dfa5994c 100644 --- a/mp_chart/example/lib/demo/other_chart/bubble.dart +++ b/mp_chart/example/lib/demo/other_chart/bubble.dart @@ -172,9 +172,9 @@ class OtherChartBubbleState extends BubbleActionState imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); - List values1 = List.empty(); - List values2 = List.empty(); - List values3 = List.empty(); + List values1 = []; + List values2 = []; + List values3 = []; for (int i = 0; i < count; i++) { values1.add(BubbleEntry( @@ -210,7 +210,7 @@ class OtherChartBubbleState extends BubbleActionState set3.setColor3(ColorUtils.COLORFUL_COLORS[2], 130); set3.setDrawValues(true); - List dataSets = List.empty(); + List dataSets = []; dataSets.add(set1); // add the data sets dataSets.add(set2); dataSets.add(set3); diff --git a/mp_chart/example/lib/demo/other_chart/candlestick.dart b/mp_chart/example/lib/demo/other_chart/candlestick.dart index 2255f7e1..a6481828 100644 --- a/mp_chart/example/lib/demo/other_chart/candlestick.dart +++ b/mp_chart/example/lib/demo/other_chart/candlestick.dart @@ -161,7 +161,7 @@ class OtherChartCandlestickState var img = await ImageLoader.loadImage('assets/img/star.png'); // chart.resetTracking(); - List values = List.empty(); + List values = []; for (int i = 0; i < count; i++) { double multi = (range + 1); diff --git a/mp_chart/example/lib/demo/other_chart/combined.dart b/mp_chart/example/lib/demo/other_chart/combined.dart index 32c4f849..84f779cf 100644 --- a/mp_chart/example/lib/demo/other_chart/combined.dart +++ b/mp_chart/example/lib/demo/other_chart/combined.dart @@ -132,7 +132,7 @@ class OtherChartCombinedState extends CombinedActionState { LineData generateLineData() { LineData d = LineData(); - List entries = List.empty(); + List entries = []; for (int index = 0; index < _count; index++) entries.add(Entry(x: index + 0.5, y: getRandom(15, 5))); @@ -155,8 +155,8 @@ class OtherChartCombinedState extends CombinedActionState { } BarData generateBarData() { - List entries1 = List.empty(); - List entries2 = List.empty(); + List entries1 = []; + List entries2 = []; for (int index = 0; index < _count; index++) { entries1.add(BarEntry(x: 0, y: getRandom(25, 25))); @@ -201,7 +201,7 @@ class OtherChartCombinedState extends CombinedActionState { ScatterData generateScatterData() { ScatterData d = ScatterData(); - List entries = List.empty(); + List entries = []; for (double index = 0; index < _count; index += 0.5) entries.add(Entry(x: index + 0.25, y: getRandom(10, 55))); @@ -219,7 +219,7 @@ class OtherChartCombinedState extends CombinedActionState { CandleData generateCandleData() { CandleData d = CandleData(); - List entries = List.empty(); + List entries = []; for (int index = 0; index < _count; index += 2) entries.add(CandleEntry( @@ -239,7 +239,7 @@ class OtherChartCombinedState extends CombinedActionState { BubbleData generateBubbleData() { BubbleData bd = BubbleData(); - List entries = List.empty(); + List entries = []; for (int index = 0; index < _count; index++) { double y = getRandom(10, 105); diff --git a/mp_chart/example/lib/demo/other_chart/radar.dart b/mp_chart/example/lib/demo/other_chart/radar.dart index 4be5c51d..76184df3 100644 --- a/mp_chart/example/lib/demo/other_chart/radar.dart +++ b/mp_chart/example/lib/demo/other_chart/radar.dart @@ -103,8 +103,8 @@ class OtherChartRadarState extends RadarActionState { double min = 20; int cnt = 5; - List entries1 = List.empty(); - List entries2 = List.empty(); + List entries1 = []; + List entries2 = []; // NOTE: The order of the entries when being added to the entries array determines their position around the center of // the chart. @@ -134,7 +134,7 @@ class OtherChartRadarState extends RadarActionState { set2.setDrawHighlightCircleEnabled(true); set2.setDrawHighlightIndicators(false); - List sets = List.empty(); + List sets = []; sets.add(set1); sets.add(set2); diff --git a/mp_chart/example/lib/demo/other_chart/scatter_plot.dart b/mp_chart/example/lib/demo/other_chart/scatter_plot.dart index 1649cf39..59cfdde4 100644 --- a/mp_chart/example/lib/demo/other_chart/scatter_plot.dart +++ b/mp_chart/example/lib/demo/other_chart/scatter_plot.dart @@ -174,9 +174,9 @@ class OtherChartScatterPlotState imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); - List values1 = List.empty(); - List values2 = List.empty(); - List values3 = List.empty(); + List values1 = []; + List values2 = []; + List values3 = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 3; @@ -210,7 +210,7 @@ class OtherChartScatterPlotState set2.setScatterShapeSize(8); set3.setScatterShapeSize(8); - List dataSets = List.empty(); + List dataSets = []; dataSets.add(set1); // add the data sets dataSets.add(set2); dataSets.add(set3); diff --git a/mp_chart/example/lib/demo/pie_chart/basic.dart b/mp_chart/example/lib/demo/pie_chart/basic.dart index 1b17602b..4c2efa6d 100644 --- a/mp_chart/example/lib/demo/pie_chart/basic.dart +++ b/mp_chart/example/lib/demo/pie_chart/basic.dart @@ -201,7 +201,7 @@ class PieChartBasicState extends PieActionState void _initPieData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List entries = List.empty(); + List entries = []; // NOTE: The order of the entries when being added to the entries array determines their position around the center of // the chart. @@ -222,7 +222,7 @@ class PieChartBasicState extends PieActionState dataSet.setSelectionShift(5); // add a lot of colors - List colors = List.empty(); + List colors = []; for (Color c in ColorUtils.VORDIPLOM_COLORS) colors.add(c); for (Color c in ColorUtils.JOYFUL_COLORS) colors.add(c); for (Color c in ColorUtils.COLORFUL_COLORS) colors.add(c); diff --git a/mp_chart/example/lib/demo/pie_chart/half_pie.dart b/mp_chart/example/lib/demo/pie_chart/half_pie.dart index 619d830c..916842a9 100644 --- a/mp_chart/example/lib/demo/pie_chart/half_pie.dart +++ b/mp_chart/example/lib/demo/pie_chart/half_pie.dart @@ -124,7 +124,7 @@ class PieChartHalfPieState extends SimpleActionState { var count = 4; var range = 100; - List values = List.empty(); + List values = []; for (int i = 0; i < count; i++) { values.add(new PieEntry( diff --git a/mp_chart/example/lib/demo/pie_chart/value_lines.dart b/mp_chart/example/lib/demo/pie_chart/value_lines.dart index 18cab64c..f5f7bddd 100644 --- a/mp_chart/example/lib/demo/pie_chart/value_lines.dart +++ b/mp_chart/example/lib/demo/pie_chart/value_lines.dart @@ -199,7 +199,7 @@ class PieChartValueLinesState extends PieActionState void _initPieData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List entries = List.empty(); + List entries = []; // NOTE: The order of the entries when being added to the entries array determines their position around the center of // the chart. @@ -217,7 +217,7 @@ class PieChartValueLinesState extends PieActionState dataSet.setSelectionShift(5); // add a lot of colors - List colors = List.empty(); + List colors = []; for (Color c in ColorUtils.VORDIPLOM_COLORS) colors.add(c); for (Color c in ColorUtils.JOYFUL_COLORS) colors.add(c); for (Color c in ColorUtils.COLORFUL_COLORS) colors.add(c); diff --git a/mp_chart/example/lib/demo/scrolling_chart/many_bar_chart.dart b/mp_chart/example/lib/demo/scrolling_chart/many_bar_chart.dart index c00e8aec..8a4350ef 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/many_bar_chart.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/many_bar_chart.dart @@ -22,7 +22,7 @@ class ScrollingChartManyBar extends StatefulWidget { class ScrollingChartManyBarState extends SimpleActionState { - List _controllers = List.empty(); + List _controllers = []; var random = Random(1); bool _isParentMove = true; double _curX = 0.0; @@ -132,7 +132,7 @@ class ScrollingChartManyBarState } BarData generateData(int cnt) { - List entries = List.empty(); + List entries = []; for (int i = 0; i < 12; i++) { entries @@ -143,7 +143,7 @@ class ScrollingChartManyBarState d.setColors1(ColorUtils.VORDIPLOM_COLORS); d.setBarShadowColor(Color.fromARGB(255, 203, 203, 203)); - List sets = List.empty(); + List sets = []; sets.add(d); BarData cd = BarData(sets); diff --git a/mp_chart/example/lib/demo/scrolling_chart/multiple.dart b/mp_chart/example/lib/demo/scrolling_chart/multiple.dart index 4a76b0e6..9dabbe87 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/multiple.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/multiple.dart @@ -38,7 +38,7 @@ class ScrollingChartMultiple extends StatefulWidget { class ScrollingChartMultipleState extends SimpleActionState { - List _controllers = List.empty(); + List _controllers = []; var random = Random(1); bool _isParentMove = true; double _curX = 0.0; @@ -210,7 +210,7 @@ class ScrollingChartMultipleState } LineData _generateDataLine(int cnt) { - List values1 = List.empty(); + List values1 = []; for (int i = 0; i < 12; i++) { values1.add(Entry(x: i.toDouble(), y: (random.nextDouble() * 65) + 40)); @@ -222,7 +222,7 @@ class ScrollingChartMultipleState d1.setHighLightColor(Color.fromARGB(255, 244, 117, 117)); d1.setDrawValues(false); - List values2 = List.empty(); + List values2 = []; for (int i = 0; i < 12; i++) { values2.add(Entry(x: i.toDouble(), y: values1[i].y! - 30)); @@ -236,7 +236,7 @@ class ScrollingChartMultipleState d2.setCircleColor(ColorUtils.VORDIPLOM_COLORS[0]); d2.setDrawValues(false); - List sets = List.empty(); + List sets = []; sets.add(d1); sets.add(d2); @@ -244,7 +244,7 @@ class ScrollingChartMultipleState } BarData _generateDataBar(int cnt) { - List entries = List.empty(); + List entries = []; for (int i = 0; i < 12; i++) { entries @@ -261,7 +261,7 @@ class ScrollingChartMultipleState } PieData _generateDataPie() { - List entries = List.empty(); + List entries = []; for (int i = 0; i < 4; i++) { entries.add(PieEntry( diff --git a/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart b/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart index a7c87896..f4d623f1 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart @@ -158,7 +158,7 @@ class ScrollingChartTallBarState } BarData generateData() { - List entries = List.empty(); + List entries = []; for (int i = 0; i < 10; i++) { entries @@ -169,7 +169,7 @@ class ScrollingChartTallBarState d.setColors1(ColorUtils.VORDIPLOM_COLORS); d.setDrawValues(false); - List sets = List.empty(); + List sets = []; sets.add(d); return BarData(sets); diff --git a/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart b/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart index bdfb3db5..3765b078 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart @@ -235,10 +235,10 @@ class ScrollingChartViewPagerState } void _initLineData1() { - List sets = List.empty(); + List sets = []; Util.loadAsset("sine.txt").then((value) { - List data = List.empty(); + List data = []; List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -259,7 +259,7 @@ class ScrollingChartViewPagerState }); Util.loadAsset("cosine.txt").then((value) { - List data = List.empty(); + List data = []; List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -281,10 +281,10 @@ class ScrollingChartViewPagerState } void _initLineData2() { - List sets = List.empty(); + List sets = []; Util.loadAsset("n.txt").then((value) { - List data = List.empty(); + List data = []; List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -307,7 +307,7 @@ class ScrollingChartViewPagerState }); Util.loadAsset("nlogn.txt").then((value) { - List data = List.empty(); + List data = []; List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -330,7 +330,7 @@ class ScrollingChartViewPagerState }); Util.loadAsset("square.txt").then((value) { - List data = List.empty(); + List data = []; List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -353,7 +353,7 @@ class ScrollingChartViewPagerState }); Util.loadAsset("three.txt").then((value) { - List data = List.empty(); + List data = []; List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -385,11 +385,11 @@ class ScrollingChartViewPagerState ..add("Company F"); void _initBarData() { - List sets = List.empty(); + List sets = []; var range = 20000; for (int i = 0; i < 1; i++) { - List entries = List.empty(); + List entries = []; for (int j = 0; j < 12; j++) { entries.add(BarEntry( @@ -409,12 +409,12 @@ class ScrollingChartViewPagerState var dataSets = 6; var range = 10000; var count = 200; - List sets = List.empty(); + List sets = []; List shapes = ScatterShape.values; for (int i = 0; i < dataSets; i++) { - List entries = List.empty(); + List entries = []; for (int j = 0; j < count; j++) { entries.add(Entry( @@ -436,7 +436,7 @@ class ScrollingChartViewPagerState void _initPieData() { int count = 4; - List entries1 = List.empty(); + List entries1 = []; for (int i = 0; i < count; i++) { entries1.add(PieEntry( diff --git a/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart b/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart index 1fd43ca2..2fd3faf0 100644 --- a/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart +++ b/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart @@ -236,7 +236,7 @@ abstract class BarLineScatterCandleBubbleController< /// /// @param xValue void moveViewToX(double xValue) { - List pts = List.empty(); + List pts = []; pts.add(xValue); pts.add(0.0); @@ -251,7 +251,7 @@ abstract class BarLineScatterCandleBubbleController< /// @param axis - which axis should be used as a reference for the y-axis void moveViewToY(double yValue, AxisDependency axis) { double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); - List pts = List.empty(); + List pts = []; pts.add(0.0); pts.add(yValue + yInView / 2); @@ -268,7 +268,7 @@ abstract class BarLineScatterCandleBubbleController< /// @param axis - which axis should be used as a reference for the y-axis void moveViewTo(double xValue, double yValue, AxisDependency axis) { double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); - List pts = List.empty(); + List pts = []; pts.add(xValue); pts.add(yValue + yInView / 2); painter?.getTransformer(axis)?.pointValuesToPixel(pts); @@ -290,7 +290,7 @@ abstract class BarLineScatterCandleBubbleController< double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); yValue = yValue + yInView / 2; - List pts = List.empty(); + List pts = []; pts.add(xValue); pts.add(yValue); double? xOrigin = bounds.x; @@ -313,7 +313,7 @@ abstract class BarLineScatterCandleBubbleController< /// @param axis - which axis should be used as a reference for the y-axis void centerViewToY(double yValue, AxisDependency axis) { double valsInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); - List pts = List.empty(); + List pts = []; pts.add(0.0); pts.add(yValue + valsInView / 2); painter?.getTransformer(axis)?.pointValuesToPixel(pts); @@ -330,7 +330,7 @@ abstract class BarLineScatterCandleBubbleController< void centerViewTo(double xValue, double yValue, AxisDependency axis) { double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); double xInView = xAxis!.axisRange / viewPortHandler!.getScaleX(); - List pts = List.empty(); + List pts = []; pts.add(xValue - xInView / 2); pts.add(yValue + yInView / 2); painter?.getTransformer(axis)?.pointValuesToPixel(pts); @@ -353,7 +353,7 @@ abstract class BarLineScatterCandleBubbleController< xValue = xValue - xInView / 2; yValue = yValue + yInView / 2; - List pts = List.empty(); + List pts = []; pts.add(xValue); pts.add(yValue); double? xOrigin = bounds.x; diff --git a/mp_chart/lib/mp/core/axis/axis_base.dart b/mp_chart/lib/mp/core/axis/axis_base.dart index 27f971da..969c223b 100644 --- a/mp_chart/lib/mp/core/axis/axis_base.dart +++ b/mp_chart/lib/mp/core/axis/axis_base.dart @@ -19,9 +19,9 @@ abstract class AxisBase extends ComponentBase { double _axisLineWidth = 1; - List _entries = List.empty(); + List _entries = []; - List _centeredEntries = List.empty(); + List _centeredEntries = []; /// the number of entries the legend contains int _entryCount = 0; @@ -95,7 +95,7 @@ abstract class AxisBase extends ComponentBase { textSize = 10; xOffset = 5; yOffset = 5; - this._limitLines = List.empty(); + this._limitLines = [];//List[]; } // ignore: unnecessary_getters_setters @@ -253,7 +253,7 @@ abstract class AxisBase extends ComponentBase { /// /// @param l void addLimitLine(LimitLine l) { - _limitLines!.add(l); + _limitLines?.add(l); } /// Removes the specified LimitLine from the axis. diff --git a/mp_chart/lib/mp/core/data/chart_data.dart b/mp_chart/lib/mp/core/data/chart_data.dart index d4a9310b..ff521a94 100644 --- a/mp_chart/lib/mp/core/data/chart_data.dart +++ b/mp_chart/lib/mp/core/data/chart_data.dart @@ -34,7 +34,7 @@ class ChartData> { /// Default constructor. ChartData() { - _dataSets = List.empty(); + _dataSets = []; } /// Constructor taking single or multiple DataSet objects. diff --git a/mp_chart/lib/mp/core/data/combined_data.dart b/mp_chart/lib/mp/core/data/combined_data.dart index 10d421fb..91d8a0a1 100644 --- a/mp_chart/lib/mp/core/data/combined_data.dart +++ b/mp_chart/lib/mp/core/data/combined_data.dart @@ -47,7 +47,7 @@ class CombinedData extends BarLineScatterCandleBubbleData< @override void calcMinMax1() { if (dataSets == null) { - dataSets = List>.empty(); + dataSets = >[]; } dataSets!.clear(); @@ -112,7 +112,7 @@ class CombinedData extends BarLineScatterCandleBubbleData< /// @return List getAllData() { List data = - List.empty(); + []; if (_lineData != null) data.add(_lineData); if (_barData != null) data.add(_barData); if (_scatterData != null) data.add(_scatterData); diff --git a/mp_chart/lib/mp/core/data_set/bar_data_set.dart b/mp_chart/lib/mp/core/data_set/bar_data_set.dart index d3315cf0..6ff16a12 100644 --- a/mp_chart/lib/mp/core/data_set/bar_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/bar_data_set.dart @@ -37,7 +37,7 @@ class BarDataSet extends BarLineScatterCandleBubbleDataSet @override DataSet copy1() { - List entries = List.empty(); + List entries = []; for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/base_data_set.dart b/mp_chart/lib/mp/core/data_set/base_data_set.dart index d558e1e1..e0cdee10 100644 --- a/mp_chart/lib/mp/core/data_set/base_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/base_data_set.dart @@ -60,8 +60,8 @@ abstract class BaseDataSet implements IDataSet { /// Default constructor. BaseDataSet() { - _colors = List.empty(); - _valueColors = List.empty(); + _colors = []; + _valueColors = []; // default color _colors!.add(ui.Color.fromARGB(255, 140, 234, 255)); _valueColors!.add(ColorUtils.BLACK); @@ -71,8 +71,8 @@ abstract class BaseDataSet implements IDataSet { /// /// @param label BaseDataSet.withLabel(String label) { - _colors = List.empty(); - _valueColors = List.empty(); + _colors = []; + _valueColors = []; // default color _colors!.add(ui.Color.fromARGB(255, 140, 234, 255)); @@ -140,7 +140,7 @@ abstract class BaseDataSet implements IDataSet { /// /// @param color void addColor(ui.Color color) { - if (_colors == null) _colors = List.empty(); + if (_colors == null) _colors = []; _colors!.add(color); } @@ -196,7 +196,7 @@ abstract class BaseDataSet implements IDataSet { /// Resets all colors of this DataSet and recreates the colors array. void resetColors() { if (_colors == null) { - _colors = List.empty(); + _colors = []; } _colors!.clear(); } diff --git a/mp_chart/lib/mp/core/data_set/bubble_data_set.dart b/mp_chart/lib/mp/core/data_set/bubble_data_set.dart index 90eebba6..5c102f09 100644 --- a/mp_chart/lib/mp/core/data_set/bubble_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/bubble_data_set.dart @@ -37,7 +37,7 @@ class BubbleDataSet extends BarLineScatterCandleBubbleDataSet @override DataSet copy1() { - List entries = List.empty(); + List entries = []; for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/candle_data_set.dart b/mp_chart/lib/mp/core/data_set/candle_data_set.dart index 1d8ba57b..91ae030a 100644 --- a/mp_chart/lib/mp/core/data_set/candle_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/candle_data_set.dart @@ -51,7 +51,7 @@ class CandleDataSet extends LineScatterCandleRadarDataSet @override DataSet copy1() { - List entries = List.empty(); + List entries = []; for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/data_set.dart b/mp_chart/lib/mp/core/data_set/data_set.dart index 43a14321..648243c3 100644 --- a/mp_chart/lib/mp/core/data_set/data_set.dart +++ b/mp_chart/lib/mp/core/data_set/data_set.dart @@ -27,7 +27,7 @@ abstract class DataSet extends BaseDataSet { DataSet(List values, String label) : super.withLabel(label) { this._values = values; - if (_values == null) _values = List.empty(); + if (_values == null) _values = []; calcMinMax(); } @@ -169,7 +169,7 @@ abstract class DataSet extends BaseDataSet { if (e == null) return; if (_values == null) { - _values = List.empty(); + _values = []; } calcMinMax1(e); @@ -194,7 +194,7 @@ abstract class DataSet extends BaseDataSet { List? valueDatas = values; if (valueDatas == null) { - valueDatas = List.empty(); + valueDatas = []; } calcMinMax1(e); @@ -352,7 +352,7 @@ abstract class DataSet extends BaseDataSet { @override List getEntriesForXValue(double? xValue) { - List entries = List.empty(); + List entries = []; int low = 0; int high = _values!.length - 1; diff --git a/mp_chart/lib/mp/core/data_set/line_data_set.dart b/mp_chart/lib/mp/core/data_set/line_data_set.dart index 97b9b997..fbd564dd 100644 --- a/mp_chart/lib/mp/core/data_set/line_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/line_data_set.dart @@ -47,7 +47,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { // mLineWidth = Utils.convertDpToPixel(1f); if (_circleColors == null) { - _circleColors = List.empty(); + _circleColors = []; } _circleColors!.clear(); @@ -246,7 +246,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { /// resets the circle-colors array and creates a one void resetCircleColors() { if (_circleColors == null) { - _circleColors = List.empty(); + _circleColors = []; } _circleColors!.clear(); } @@ -293,7 +293,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { @override DataSet copy1() { - List entries = List.empty(); + List entries = []; for (int i = 0; i < values!.length; i++) { entries.add(Entry( x: values![i]!.x, diff --git a/mp_chart/lib/mp/core/data_set/pie_data_set.dart b/mp_chart/lib/mp/core/data_set/pie_data_set.dart index f16b2830..05604c83 100644 --- a/mp_chart/lib/mp/core/data_set/pie_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/pie_data_set.dart @@ -29,7 +29,7 @@ class PieDataSet extends DataSet implements IPieDataSet { @override DataSet copy1() { - List entries = List.empty(); + List entries = []; for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/radar_data_set.dart b/mp_chart/lib/mp/core/data_set/radar_data_set.dart index ecc9a1fd..c606ec81 100644 --- a/mp_chart/lib/mp/core/data_set/radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/radar_data_set.dart @@ -97,7 +97,7 @@ class RadarDataSet extends LineRadarDataSet @override DataSet copy1() { - List entries = List.empty(); + List entries = []; for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/scatter_data_set.dart b/mp_chart/lib/mp/core/data_set/scatter_data_set.dart index 9e234447..2f77a8cc 100644 --- a/mp_chart/lib/mp/core/data_set/scatter_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/scatter_data_set.dart @@ -37,7 +37,7 @@ class ScatterDataSet extends LineScatterCandleRadarDataSet @override DataSet copy1() { - List entries = List.empty(); + List entries = []; for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart b/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart index d2131682..37df45ff 100644 --- a/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart +++ b/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart @@ -16,7 +16,7 @@ class ChartHighlighter T? _provider; /// buffer for storing previously highlighted values - List _highlightBuffer = List.empty(); + List _highlightBuffer = []; ChartHighlighter(T provider) { this._provider = provider; @@ -144,7 +144,7 @@ class ChartHighlighter /// @return List buildHighlights( IDataSet set, int dataSetIndex, double? xVal, Rounding rounding) { - List highlights = List.empty(); + List highlights = []; //noinspection unchecked List entries = set.getEntriesForXValue(xVal); diff --git a/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart b/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart index 63acdd24..6feb653e 100644 --- a/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart +++ b/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart @@ -33,7 +33,7 @@ class HorizontalBarHighlighter extends BarHighlighter { @override List buildHighlights( IDataSet set, int dataSetIndex, double? xVal, Rounding rounding) { - List highlights = List.empty(); + List highlights = []; //noinspection unchecked List entries = set.getEntriesForXValue(xVal); diff --git a/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart b/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart index f95bbb64..33f1a3a3 100644 --- a/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart +++ b/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart @@ -8,7 +8,7 @@ abstract class PieRadarHighlighter T? _painter; /// buffer for storing previously highlighted values - List _highlightBuffer = List.empty(); + List _highlightBuffer = []; PieRadarHighlighter(T painter) { this._painter = painter; diff --git a/mp_chart/lib/mp/core/legend/legend.dart b/mp_chart/lib/mp/core/legend/legend.dart index 02d28609..afdb0c5b 100644 --- a/mp_chart/lib/mp/core/legend/legend.dart +++ b/mp_chart/lib/mp/core/legend/legend.dart @@ -16,7 +16,7 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; class Legend extends ComponentBase { /// The legend entries array - List _entries = List.empty(); + List _entries = []; /// Entries that will be appended to the end of the auto calculated entries after calculating the legend. /// (if the legend has already been calculated, you will need to call notifyDataSetChanged() to let the changes take effect) @@ -164,7 +164,7 @@ class Legend extends ComponentBase { /// (if the legend has already been calculated, you will need to call notifyDataSetChanged() /// to let the changes take effect) void setExtra2(List colors, List labels) { - List entries = List.empty(); + List entries = []; for (int i = 0; i < min(colors.length, labels.length); i++) { final LegendEntry entry = LegendEntry.empty(); entry.formColor = colors[i]; @@ -423,9 +423,9 @@ class Legend extends ComponentBase { double requiredWidth = 0; int stackedStartIndex = -1; - _calculatedLabelBreakPoints = List.empty(); - _calculatedLabelSizes = List.empty(); - _calculatedLineSizes = List.empty(); + _calculatedLabelBreakPoints = []; + _calculatedLabelSizes = []; + _calculatedLineSizes = []; for (int i = 0; i < entryCount; i++) { LegendEntry e = entries[i]!; diff --git a/mp_chart/lib/mp/core/poolable/point.dart b/mp_chart/lib/mp/core/poolable/point.dart index 0c222059..adaa771f 100644 --- a/mp_chart/lib/mp/core/poolable/point.dart +++ b/mp_chart/lib/mp/core/poolable/point.dart @@ -140,7 +140,7 @@ class ObjectPool { "Object Pool must be instantiated with a capacity greater than 0!"); } this.desiredCapacity = withCapacity; - this.objects = [this.desiredCapacity]; + this.objects = []..length = this.desiredCapacity!;//[this.desiredCapacity]; this.objectsPointer = 0; this.modelObject = object; this.replenishPercentage = 1.0; diff --git a/mp_chart/lib/mp/core/render/axis_renderer.dart b/mp_chart/lib/mp/core/render/axis_renderer.dart index b28d685f..a04bffa0 100644 --- a/mp_chart/lib/mp/core/render/axis_renderer.dart +++ b/mp_chart/lib/mp/core/render/axis_renderer.dart @@ -138,8 +138,8 @@ abstract class AxisRenderer extends Renderer { double range = (yMax - yMin).abs(); if (labelCount == 0 || range <= 0 || range.isInfinite) { - _axis!.entries = List.empty(); - _axis!.centeredEntries = List.empty(); + _axis!.entries = []; + _axis!.centeredEntries = []; _axis!.entryCount = 0; return; } diff --git a/mp_chart/lib/mp/core/render/combined_chart_renderer.dart b/mp_chart/lib/mp/core/render/combined_chart_renderer.dart index aa1ef1df..7686d68a 100644 --- a/mp_chart/lib/mp/core/render/combined_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/combined_chart_renderer.dart @@ -21,7 +21,7 @@ import 'package:mp_chart/mp/core/entry/entry.dart'; class CombinedChartRenderer extends DataRenderer { /// all rederers for the different kinds of data this combined-renderer can draw - List _renderers = List.empty(); + List _renderers = []; ChartPainter? _painter; @@ -95,7 +95,7 @@ class CombinedChartRenderer extends DataRenderer { for (DataRenderer renderer in _renderers) renderer.drawExtras(c); } - List mHighlightBuffer = List.empty(); + List mHighlightBuffer = []; @override void drawHighlighted(Canvas c, List? indices) { diff --git a/mp_chart/lib/mp/core/render/legend_renderer.dart b/mp_chart/lib/mp/core/render/legend_renderer.dart index d04b49ce..342b9a34 100644 --- a/mp_chart/lib/mp/core/render/legend_renderer.dart +++ b/mp_chart/lib/mp/core/render/legend_renderer.dart @@ -66,7 +66,7 @@ class LegendRenderer extends Renderer { /// @param data void computeLegend(ChartData? data) { if (!_legend!.isLegendCustom) { - _computedEntries = List.empty(); + _computedEntries = []; // loop for building up the colors and labels used in the legend for (int i = 0; i < data!.getDataSetCount(); i++) { diff --git a/mp_chart/lib/mp/core/render/line_chart_renderer.dart b/mp_chart/lib/mp/core/render/line_chart_renderer.dart index 52289acb..731309e3 100644 --- a/mp_chart/lib/mp/core/render/line_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/line_chart_renderer.dart @@ -119,7 +119,7 @@ class LineChartRenderer extends LineRadarRenderer { xBounds!.set(_provider!, dataSet); - List list = List.empty(); + List list = []; if (xBounds!.range! >= 1) { Entry prev = dataSet.getEntryForIndex(xBounds!.min)!; @@ -195,7 +195,7 @@ class LineChartRenderer extends LineRadarRenderer { double intensity = dataSet.getCubicIntensity(); - List list = List.empty(); + List list = []; if (xBounds!.range! >= 1) { double prevDx = 0; @@ -291,7 +291,7 @@ class LineChartRenderer extends LineRadarRenderer { double fillMin = dataSet.getFillFormatter().getFillLinePosition(dataSet, _provider); - List list = List.empty(); + List list = []; list.add(dataSet.getEntryForIndex(bounds.min! + bounds.range!)!.x); list.add(fillMin); list.add(dataSet.getEntryForIndex(bounds.min)!.x); @@ -515,7 +515,7 @@ class LineChartRenderer extends LineRadarRenderer { final double phaseY = animator!.getPhaseY(); final bool isDrawSteppedEnabled = dataSet.getMode() == Mode.STEPPED; - List points = List.empty(); + List points = []; final Path filled = outputPath; filled.reset(); diff --git a/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart b/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart index 5481a3d8..ad4244dd 100644 --- a/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart +++ b/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart @@ -30,8 +30,8 @@ class YAxisRendererRadarChart extends YAxisRenderer { double range = (yMax - yMin).abs(); if (labelCount == 0 || range <= 0 || range.isInfinite) { - axis!.entries = List.empty(); - axis!.centeredEntries = List.empty(); + axis!.entries = []; + axis!.centeredEntries = []; axis!.entryCount = 0; return; } From ee377150d5c27b405d74114a2c71d650b92ba42c Mon Sep 17 00:00:00 2001 From: Takuro KAKOI Date: Sat, 25 Sep 2021 10:31:43 +0900 Subject: [PATCH 11/29] update gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 22491239..bbe34fe5 100644 --- a/.gitignore +++ b/.gitignore @@ -66,6 +66,7 @@ pubspec.lock **/ios/Flutter/flutter_assets/ **/ios/ServiceDefinitions.json **/ios/Runner/GeneratedPluginRegistrant.* +**/ios/Flutter/Flutter.podspec # Exceptions to above rules. !**/ios/**/default.mode1v3 From 4449760b4ea41a032609dd6d759ea5268bac5e1d Mon Sep 17 00:00:00 2001 From: Takuro KAKOI Date: Tue, 28 Sep 2021 15:58:03 +0900 Subject: [PATCH 12/29] update --- mp_chart/example/lib/demo/action_state.dart | 113 +++++++++--------- .../example/lib/demo/bar_chart/basic.dart | 6 +- .../example/lib/demo/bar_chart/basic2.dart | 4 +- .../lib/demo/bar_chart/horizontal.dart | 4 +- .../example/lib/demo/bar_chart/multiple.dart | 8 +- .../example/lib/demo/bar_chart/negative.dart | 6 +- mp_chart/example/lib/demo/bar_chart/sine.dart | 4 +- .../example/lib/demo/bar_chart/stacked.dart | 4 +- .../example/lib/demo/bar_chart/stacked2.dart | 2 +- .../example/lib/demo/even_more/dynamic.dart | 4 +- .../example/lib/demo/even_more/hourly.dart | 2 +- .../example/lib/demo/even_more/realtime.dart | 2 +- .../example/lib/demo/line_chart/basic.dart | 4 +- .../example/lib/demo/line_chart/colorful.dart | 2 +- .../example/lib/demo/line_chart/cubic.dart | 2 +- .../lib/demo/line_chart/dual_axis.dart | 6 +- .../example/lib/demo/line_chart/filled.dart | 4 +- .../lib/demo/line_chart/invert_axis.dart | 2 +- .../example/lib/demo/line_chart/multiple.dart | 4 +- .../lib/demo/line_chart/performance.dart | 2 +- .../example/lib/demo/other_chart/bubble.dart | 8 +- .../lib/demo/other_chart/candlestick.dart | 2 +- .../lib/demo/other_chart/combined.dart | 12 +- .../example/lib/demo/other_chart/radar.dart | 6 +- .../lib/demo/other_chart/scatter_plot.dart | 8 +- .../example/lib/demo/pie_chart/basic.dart | 4 +- .../example/lib/demo/pie_chart/half_pie.dart | 2 +- .../lib/demo/pie_chart/value_lines.dart | 6 +- .../demo/scrolling_chart/many_bar_chart.dart | 6 +- .../lib/demo/scrolling_chart/multiple.dart | 12 +- .../lib/demo/scrolling_chart/tall_bar.dart | 4 +- .../lib/demo/scrolling_chart/view_pager.dart | 26 ++-- ...line_scatter_candle_bubble_controller.dart | 14 +-- mp_chart/lib/mp/core/axis/axis_base.dart | 8 +- mp_chart/lib/mp/core/data/chart_data.dart | 2 +- mp_chart/lib/mp/core/data/combined_data.dart | 11 +- .../lib/mp/core/data_set/bar_data_set.dart | 2 +- .../lib/mp/core/data_set/base_data_set.dart | 12 +- .../lib/mp/core/data_set/bubble_data_set.dart | 2 +- .../lib/mp/core/data_set/candle_data_set.dart | 2 +- mp_chart/lib/mp/core/data_set/data_set.dart | 8 +- .../lib/mp/core/data_set/line_data_set.dart | 6 +- .../lib/mp/core/data_set/pie_data_set.dart | 2 +- .../lib/mp/core/data_set/radar_data_set.dart | 2 +- .../mp/core/data_set/scatter_data_set.dart | 2 +- .../mp/core/highlight/chart_hightlighter.dart | 4 +- .../highlight/horizontal_bar_highlighter.dart | 2 +- .../core/highlight/pie_radar_highlighter.dart | 2 +- mp_chart/lib/mp/core/legend/legend.dart | 10 +- mp_chart/lib/mp/core/poolable/point.dart | 2 +- .../lib/mp/core/render/axis_renderer.dart | 4 +- .../mp/core/render/bar_chart_renderer.dart | 4 +- .../core/render/combined_chart_renderer.dart | 4 +- .../lib/mp/core/render/legend_renderer.dart | 2 +- .../mp/core/render/line_chart_renderer.dart | 8 +- .../render/y_axis_renderer_radar_chart.dart | 4 +- 56 files changed, 198 insertions(+), 202 deletions(-) diff --git a/mp_chart/example/lib/demo/action_state.dart b/mp_chart/example/lib/demo/action_state.dart index 8cdba63c..8aae3872 100644 --- a/mp_chart/example/lib/demo/action_state.dart +++ b/mp_chart/example/lib/demo/action_state.dart @@ -31,38 +31,42 @@ import 'package:permission_handler/permission_handler.dart'; PopupMenuItem item(String text, String id) { return PopupMenuItem( - value: id, - child: Container( - padding: EdgeInsets.only(top: 15.0), - child: Center( - child: Text( - text, - textDirection: TextDirection.ltr, - textAlign: TextAlign.center, - style: TextStyle( - color: ColorUtils.BLACK, - fontSize: 18, - fontWeight: FontWeight.bold), - )))); + value: id, + child: Container( + padding: EdgeInsets.only(top: 15), + child: Center( + child: Text( + text, + textDirection: TextDirection.ltr, + textAlign: TextAlign.center, + style: TextStyle( + color: ColorUtils.BLACK, + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ); } abstract class ActionState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar( - actions: [ - PopupMenuButton( - itemBuilder: getBuilder(), - onSelected: (String action) { - itemClick(action); - }, - ), - ], - // Here we take the value from the MyHomePage object that was created by - // the App.build method, and use it to set our appbar title. - title: Text(getTitle())), - body: getBody()); + appBar: AppBar( + actions: [ + PopupMenuButton( + itemBuilder: getBuilder(), + onSelected: itemClick, + ), + ], + // Here we take the value from the MyHomePage object that was created by + // the App.build method, and use it to set our appbar title. + title: Text(getTitle()), + ), + body: getBody(), + ); } void itemClick(String action); @@ -73,29 +77,18 @@ abstract class ActionState extends State { PopupMenuItemBuilder getBuilder(); - void captureImg(CaptureCallback callback) { - /* - PermissionHandler() - .checkPermissionStatus(PermissionGroup.storage) - .then((permission) { - if (permission.value != PermissionStatus.granted.value) { - PermissionHandler() - .requestPermissions([PermissionGroup.storage]).then((permissions) { - if (permissions.containsKey(PermissionGroup.storage)) { - if (permissions[PermissionGroup.storage] == - PermissionStatus.granted || - ((permissions[PermissionGroup.storage] == - PermissionStatus.unknown) && - Platform.isIOS)) { - callback(); - } - } - }); - } else { + Future captureImg(CaptureCallback callback) async { + final status = await Permission.storage.request(); + if (status.isGranted) { + callback(); + return; + } + if (Platform.isIOS) { + if (status.isRestricted) { callback(); + return; } - }); - */ + } } } @@ -110,8 +103,9 @@ abstract class SimpleActionState @override getBuilder() { - return (BuildContext context) => - >[item('View on GitHub', 'A') as PopupMenuItem]; + return (context) => >[ + item('View on GitHub', 'A') as PopupMenuItem + ]; } } @@ -121,7 +115,7 @@ abstract class LineActionState @override getBuilder() { - return (BuildContext context) => >[ + return (context) => >[ item('View on GitHub', 'A') as PopupMenuItem, item('Toggle Values', 'B') as PopupMenuItem, item('Toggle Icons', 'C') as PopupMenuItem, @@ -227,7 +221,8 @@ abstract class LineActionState controller!.state!.setStateIfNotDispose(); break; case 'J': - controller!.autoScaleMinMaxEnabled = !controller!.autoScaleMinMaxEnabled; + controller!.autoScaleMinMaxEnabled = + !controller!.autoScaleMinMaxEnabled; controller!.state!.setStateIfNotDispose(); break; case 'K': @@ -266,7 +261,7 @@ abstract class BarActionState extends ActionState { @override getBuilder() { - return (BuildContext context) => >[ + return (context) => >[ item('View on GitHub', 'A') as PopupMenuItem, item('Toggle Bar Borders', 'B') as PopupMenuItem, item('Toggle Values', 'C') as PopupMenuItem, @@ -355,7 +350,7 @@ abstract class HorizontalBarActionState @override getBuilder() { - return (BuildContext context) => >[ + return (context) => >[ item('View on GitHub', 'A') as PopupMenuItem, item('Toggle Bar Borders', 'B') as PopupMenuItem, item('Toggle Values', 'C') as PopupMenuItem, @@ -443,7 +438,7 @@ abstract class PieActionState extends ActionState { @override getBuilder() { - return (BuildContext context) => >[ + return (context) => >[ item('View on GitHub', 'A') as PopupMenuItem, item('Toggle Y-Values', 'B') as PopupMenuItem, item('Toggle X-Values', 'C') as PopupMenuItem, @@ -552,7 +547,7 @@ abstract class CombinedActionState @override getBuilder() { - return (BuildContext context) => >[ + return (context) => >[ item('View on GitHub', 'A') as PopupMenuItem, item('Toggle Line Values', 'B') as PopupMenuItem, item('Toggle Bar Values', 'C') as PopupMenuItem, @@ -611,7 +606,7 @@ abstract class ScatterActionState @override getBuilder() { - return (BuildContext context) => >[ + return (context) => >[ item('View on GitHub', 'A') as PopupMenuItem, item('Toggle Values', 'B') as PopupMenuItem, item('Toggle Icons', 'C') as PopupMenuItem, @@ -693,7 +688,7 @@ abstract class BubbleActionState @override getBuilder() { - return (BuildContext context) => >[ + return (context) => >[ item('View on GitHub', 'A') as PopupMenuItem, item('Toggle Values', 'B') as PopupMenuItem, item('Toggle Icons', 'C') as PopupMenuItem, @@ -772,7 +767,7 @@ abstract class CandlestickActionState @override getBuilder() { - return (BuildContext context) => >[ + return (context) => >[ item('View on GitHub', 'A') as PopupMenuItem, item('Toggle Values', 'B') as PopupMenuItem, item('Toggle Icons', 'C') as PopupMenuItem, @@ -859,7 +854,7 @@ abstract class RadarActionState @override getBuilder() { - return (BuildContext context) => >[ + return (context) => >[ item('View on GitHub', 'A') as PopupMenuItem, item('Toggle Values', 'B') as PopupMenuItem, item('Toggle Icons', 'C') as PopupMenuItem, diff --git a/mp_chart/example/lib/demo/bar_chart/basic.dart b/mp_chart/example/lib/demo/bar_chart/basic.dart index 187cd65f..e67765a1 100644 --- a/mp_chart/example/lib/demo/bar_chart/basic.dart +++ b/mp_chart/example/lib/demo/bar_chart/basic.dart @@ -201,7 +201,7 @@ class BarChartBasicState extends BarActionState void _initData(int count, double range, ui.Image img) { double start = 1; - List values = []; + List values = []; for (int i = start.toInt(); i < start + count; i++) { double val = (random.nextDouble() * (range + 1)); @@ -232,7 +232,7 @@ class BarChartBasicState extends BarActionState Color endColor4 = ColorUtils.HOLO_RED_DARK; Color endColor5 = ColorUtils.HOLO_ORANGE_DARK; - List gradientColors = []; + List gradientColors = []; gradientColors.add(GradientColor(startColor1, endColor1)); gradientColors.add(GradientColor(startColor2, endColor2)); gradientColors.add(GradientColor(startColor3, endColor3)); @@ -241,7 +241,7 @@ class BarChartBasicState extends BarActionState set1.setGradientColors(gradientColors); - List dataSets = []; + List dataSets = []; dataSets.add(set1); controller.data = BarData(dataSets); diff --git a/mp_chart/example/lib/demo/bar_chart/basic2.dart b/mp_chart/example/lib/demo/bar_chart/basic2.dart index d9db0f04..54211426 100644 --- a/mp_chart/example/lib/demo/bar_chart/basic2.dart +++ b/mp_chart/example/lib/demo/bar_chart/basic2.dart @@ -123,7 +123,7 @@ class BarChartBasic2State extends BarActionState { void _initBarData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List values = []; + List values = []; for (int i = 0; i < count; i++) { double multi = (range + 1); @@ -137,7 +137,7 @@ class BarChartBasic2State extends BarActionState { set1.setColors1(ColorUtils.VORDIPLOM_COLORS); set1.setDrawValues(false); - List dataSets = []; + List dataSets = []; dataSets.add(set1); controller.data = BarData(dataSets); diff --git a/mp_chart/example/lib/demo/bar_chart/horizontal.dart b/mp_chart/example/lib/demo/bar_chart/horizontal.dart index 81173751..ad585899 100644 --- a/mp_chart/example/lib/demo/bar_chart/horizontal.dart +++ b/mp_chart/example/lib/demo/bar_chart/horizontal.dart @@ -136,7 +136,7 @@ class BarChartHorizontalState var img = await ImageLoader.loadImage('assets/img/star.png'); double barWidth = 9; double spaceForBar = 10; - List values = []; + List values = []; for (int i = 0; i < count; i++) { double val = random.nextDouble() * range; @@ -149,7 +149,7 @@ class BarChartHorizontalState set1.setDrawIcons(false); - List dataSets = []; + List dataSets = []; dataSets.add(set1); controller.data = BarData(dataSets); diff --git a/mp_chart/example/lib/demo/bar_chart/multiple.dart b/mp_chart/example/lib/demo/bar_chart/multiple.dart index e6170d9f..918cfc3d 100644 --- a/mp_chart/example/lib/demo/bar_chart/multiple.dart +++ b/mp_chart/example/lib/demo/bar_chart/multiple.dart @@ -202,10 +202,10 @@ class BarChartMultipleState extends BarActionState startYear = 1980; endYear = startYear + groupCount; - List values1 = []; - List values2 = []; - List values3 = []; - List values4 = []; + List values1 = []; + List values2 = []; + List values3 = []; + List values4 = []; double randomMultiplier = range * 100000; diff --git a/mp_chart/example/lib/demo/bar_chart/negative.dart b/mp_chart/example/lib/demo/bar_chart/negative.dart index 9a0e2d24..801cf324 100644 --- a/mp_chart/example/lib/demo/bar_chart/negative.dart +++ b/mp_chart/example/lib/demo/bar_chart/negative.dart @@ -23,7 +23,7 @@ class BarChartNegative extends StatefulWidget { class BarChartNegativeState extends SimpleActionState { late BarChartController _controller; - List _data = []; + List _data = []; @override void initState() { @@ -58,8 +58,8 @@ class BarChartNegativeState extends SimpleActionState { } void _initBarData() { - List values = []; - List colors = []; + List values = []; + List colors = []; Color green = Color.fromARGB(255, 110, 190, 102); Color red = Color.fromARGB(255, 211, 74, 88); diff --git a/mp_chart/example/lib/demo/bar_chart/sine.dart b/mp_chart/example/lib/demo/bar_chart/sine.dart index 3b019bb6..ff793851 100644 --- a/mp_chart/example/lib/demo/bar_chart/sine.dart +++ b/mp_chart/example/lib/demo/bar_chart/sine.dart @@ -31,7 +31,7 @@ class BarChartSineState extends BarActionState { void initState() { _initController(); Util.loadAsset("othersine.txt").then((value) { - _data = []; + _data = []; List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -154,7 +154,7 @@ class BarChartSineState extends BarActionState { void _initBarData(int count) { if (_data == null) return; - List entries = []; + List entries = []; for (int i = 0; i < count; i++) { entries.add(_data![i]); } diff --git a/mp_chart/example/lib/demo/bar_chart/stacked.dart b/mp_chart/example/lib/demo/bar_chart/stacked.dart index f1cf8f5b..f186097c 100644 --- a/mp_chart/example/lib/demo/bar_chart/stacked.dart +++ b/mp_chart/example/lib/demo/bar_chart/stacked.dart @@ -133,7 +133,7 @@ class BarChartStackedState extends BarActionState void _initBarData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List values = []; + List values = []; for (int i = 0; i < count; i++) { double mul = (range + 1); @@ -155,7 +155,7 @@ class BarChartStackedState extends BarActionState set1.setStackLabels( []..add("Births")..add("Divorces")..add("Marriages")); - List dataSets = []; + List dataSets = []; dataSets.add(set1); controller.data = BarData(dataSets); diff --git a/mp_chart/example/lib/demo/bar_chart/stacked2.dart b/mp_chart/example/lib/demo/bar_chart/stacked2.dart index 58ceca5b..ecffdd34 100644 --- a/mp_chart/example/lib/demo/bar_chart/stacked2.dart +++ b/mp_chart/example/lib/demo/bar_chart/stacked2.dart @@ -55,7 +55,7 @@ class BarChartStacked2State extends HorizontalBarActionState void _initBarData() async { var img = await ImageLoader.loadImage('assets/img/star.png'); // IMPORTANT: When using negative values in stacked bars, always make sure the negative values are in the array first - List values = []; + List values = []; values.add(BarEntry.fromListYVals( x: 5, vals: []..add(-10)..add(10), icon: img)); values.add(BarEntry.fromListYVals( diff --git a/mp_chart/example/lib/demo/even_more/dynamic.dart b/mp_chart/example/lib/demo/even_more/dynamic.dart index 1dddc265..8ade13a2 100644 --- a/mp_chart/example/lib/demo/even_more/dynamic.dart +++ b/mp_chart/example/lib/demo/even_more/dynamic.dart @@ -168,7 +168,7 @@ class EvenMoreDynamicState extends ActionState } LineDataSet _createSet() { - LineDataSet set = LineDataSet(List.empty(), "DataSet 1"); + LineDataSet set = LineDataSet([], "DataSet 1"); set.setLineWidth(2.5); set.setCircleRadius(4.5); set.setColor1(Color.fromARGB(255, 240, 99, 99)); @@ -198,7 +198,7 @@ class EvenMoreDynamicState extends ActionState } else { int count = (data.getDataSetCount() + 1); int amount = data.getDataSetByIndex(0)!.getEntryCount(); - List values = []; + List values = []; for (int i = 0; i < amount; i++) { values.add(new Entry( x: i.toDouble(), y: (random.nextDouble() * 50) + 50 * count)); diff --git a/mp_chart/example/lib/demo/even_more/hourly.dart b/mp_chart/example/lib/demo/even_more/hourly.dart index d0b3ff01..6e0ff4ea 100644 --- a/mp_chart/example/lib/demo/even_more/hourly.dart +++ b/mp_chart/example/lib/demo/even_more/hourly.dart @@ -146,7 +146,7 @@ class EvenMoreHourlyState extends LineActionState { // now in hours int now = Util.currentTimeMillis(); - List values = []; + List values = []; // count = hours double to = now + count; diff --git a/mp_chart/example/lib/demo/even_more/realtime.dart b/mp_chart/example/lib/demo/even_more/realtime.dart index 1d75348a..f7b2248c 100644 --- a/mp_chart/example/lib/demo/even_more/realtime.dart +++ b/mp_chart/example/lib/demo/even_more/realtime.dart @@ -243,7 +243,7 @@ class EvenMoreRealtimeState extends ActionState } LineDataSet _createSet() { - LineDataSet set = LineDataSet(List.empty(), "Dynamic Data"); + LineDataSet set = LineDataSet([], "Dynamic Data"); set.setAxisDependency(AxisDependency.LEFT); set.setColor1(ColorUtils.getHoloBlue()); set.setCircleColor(ColorUtils.WHITE); diff --git a/mp_chart/example/lib/demo/line_chart/basic.dart b/mp_chart/example/lib/demo/line_chart/basic.dart index 6cbaf9f0..0b430b10 100644 --- a/mp_chart/example/lib/demo/line_chart/basic.dart +++ b/mp_chart/example/lib/demo/line_chart/basic.dart @@ -198,7 +198,7 @@ class LineChartBasicState extends LineActionState { void _initLineData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List values = []; + List values = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) - 30; @@ -245,7 +245,7 @@ class LineChartBasicState extends LineActionState { // set color of filled area set1.setGradientColor(ColorUtils.BLUE, ColorUtils.RED); - List dataSets = []; + List dataSets = []; dataSets.add(set1); // add the data sets // create a data object with the data sets diff --git a/mp_chart/example/lib/demo/line_chart/colorful.dart b/mp_chart/example/lib/demo/line_chart/colorful.dart index 2a7a8406..33e14386 100644 --- a/mp_chart/example/lib/demo/line_chart/colorful.dart +++ b/mp_chart/example/lib/demo/line_chart/colorful.dart @@ -92,7 +92,7 @@ class LineChartColorfulState extends SimpleActionState { } LineData _getData(int count, double range) { - List values = []; + List values = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 3; diff --git a/mp_chart/example/lib/demo/line_chart/cubic.dart b/mp_chart/example/lib/demo/line_chart/cubic.dart index bdc11698..e338b67d 100644 --- a/mp_chart/example/lib/demo/line_chart/cubic.dart +++ b/mp_chart/example/lib/demo/line_chart/cubic.dart @@ -167,7 +167,7 @@ class LineChartCubicState extends LineActionState { void _initLineData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List values = []; + List values = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * (range + 1)) + 20; diff --git a/mp_chart/example/lib/demo/line_chart/dual_axis.dart b/mp_chart/example/lib/demo/line_chart/dual_axis.dart index b79ee11c..9356cb3a 100644 --- a/mp_chart/example/lib/demo/line_chart/dual_axis.dart +++ b/mp_chart/example/lib/demo/line_chart/dual_axis.dart @@ -201,21 +201,21 @@ class LineChartDualAxisState extends LineActionState imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); - List values1 = [];; + List values1 = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * (range / 2.0)) + 50; values1.add(Entry(x: i.toDouble(), y: val, icon: imgs[0])); } - List values2 = []; + List values2 = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 450; values2.add(new Entry(x: i.toDouble(), y: val, icon: imgs[1])); } - List values3 = []; + List values3 = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 500; diff --git a/mp_chart/example/lib/demo/line_chart/filled.dart b/mp_chart/example/lib/demo/line_chart/filled.dart index b2331751..12048f58 100644 --- a/mp_chart/example/lib/demo/line_chart/filled.dart +++ b/mp_chart/example/lib/demo/line_chart/filled.dart @@ -170,14 +170,14 @@ class LineChartFilledState extends SimpleActionState { } void _initLineData(int count, double range) { - List values1 = new List.empty(); + List values1 = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 50; values1.add(new Entry(x: i.toDouble(), y: val)); } - List values2 = new List.empty(); + List values2 = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 450; diff --git a/mp_chart/example/lib/demo/line_chart/invert_axis.dart b/mp_chart/example/lib/demo/line_chart/invert_axis.dart index 1bd23097..b046d877 100644 --- a/mp_chart/example/lib/demo/line_chart/invert_axis.dart +++ b/mp_chart/example/lib/demo/line_chart/invert_axis.dart @@ -159,7 +159,7 @@ class LineChartInvertAxisState extends LineActionState void _initLineData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List entries = []; + List entries = []; for (int i = 0; i < count; i++) { double xVal = (random.nextDouble() * range); diff --git a/mp_chart/example/lib/demo/line_chart/multiple.dart b/mp_chart/example/lib/demo/line_chart/multiple.dart index d57021cc..a93f0ee4 100644 --- a/mp_chart/example/lib/demo/line_chart/multiple.dart +++ b/mp_chart/example/lib/demo/line_chart/multiple.dart @@ -202,10 +202,10 @@ class LineChartMultipleState extends LineActionState imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); - List dataSets = []; + List dataSets = []; for (int z = 0; z < 3; z++) { - List values = []; + List values = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 3; diff --git a/mp_chart/example/lib/demo/line_chart/performance.dart b/mp_chart/example/lib/demo/line_chart/performance.dart index 4840b6bf..c480ed2c 100644 --- a/mp_chart/example/lib/demo/line_chart/performance.dart +++ b/mp_chart/example/lib/demo/line_chart/performance.dart @@ -117,7 +117,7 @@ class LineChartPerformanceState } void _initLineData(double range) { - List values = []; + List values = []; _count = (range + 1000).toInt(); diff --git a/mp_chart/example/lib/demo/other_chart/bubble.dart b/mp_chart/example/lib/demo/other_chart/bubble.dart index dfa5994c..3898994f 100644 --- a/mp_chart/example/lib/demo/other_chart/bubble.dart +++ b/mp_chart/example/lib/demo/other_chart/bubble.dart @@ -172,9 +172,9 @@ class OtherChartBubbleState extends BubbleActionState imgs[0] = await ImageLoader.loadImage('assets/img/star.png'); imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); - List values1 = []; - List values2 = []; - List values3 = []; + List values1 = []; + List values2 = []; + List values3 = []; for (int i = 0; i < count; i++) { values1.add(BubbleEntry( @@ -210,7 +210,7 @@ class OtherChartBubbleState extends BubbleActionState set3.setColor3(ColorUtils.COLORFUL_COLORS[2], 130); set3.setDrawValues(true); - List dataSets = []; + List dataSets = []; dataSets.add(set1); // add the data sets dataSets.add(set2); dataSets.add(set3); diff --git a/mp_chart/example/lib/demo/other_chart/candlestick.dart b/mp_chart/example/lib/demo/other_chart/candlestick.dart index a6481828..de247a35 100644 --- a/mp_chart/example/lib/demo/other_chart/candlestick.dart +++ b/mp_chart/example/lib/demo/other_chart/candlestick.dart @@ -161,7 +161,7 @@ class OtherChartCandlestickState var img = await ImageLoader.loadImage('assets/img/star.png'); // chart.resetTracking(); - List values = []; + List values = []; for (int i = 0; i < count; i++) { double multi = (range + 1); diff --git a/mp_chart/example/lib/demo/other_chart/combined.dart b/mp_chart/example/lib/demo/other_chart/combined.dart index 84f779cf..d5bdb02f 100644 --- a/mp_chart/example/lib/demo/other_chart/combined.dart +++ b/mp_chart/example/lib/demo/other_chart/combined.dart @@ -132,7 +132,7 @@ class OtherChartCombinedState extends CombinedActionState { LineData generateLineData() { LineData d = LineData(); - List entries = []; + List entries = []; for (int index = 0; index < _count; index++) entries.add(Entry(x: index + 0.5, y: getRandom(15, 5))); @@ -155,8 +155,8 @@ class OtherChartCombinedState extends CombinedActionState { } BarData generateBarData() { - List entries1 = []; - List entries2 = []; + List entries1 = []; + List entries2 = []; for (int index = 0; index < _count; index++) { entries1.add(BarEntry(x: 0, y: getRandom(25, 25))); @@ -201,7 +201,7 @@ class OtherChartCombinedState extends CombinedActionState { ScatterData generateScatterData() { ScatterData d = ScatterData(); - List entries = []; + List entries = []; for (double index = 0; index < _count; index += 0.5) entries.add(Entry(x: index + 0.25, y: getRandom(10, 55))); @@ -219,7 +219,7 @@ class OtherChartCombinedState extends CombinedActionState { CandleData generateCandleData() { CandleData d = CandleData(); - List entries = []; + List entries = []; for (int index = 0; index < _count; index += 2) entries.add(CandleEntry( @@ -239,7 +239,7 @@ class OtherChartCombinedState extends CombinedActionState { BubbleData generateBubbleData() { BubbleData bd = BubbleData(); - List entries = []; + List entries = []; for (int index = 0; index < _count; index++) { double y = getRandom(10, 105); diff --git a/mp_chart/example/lib/demo/other_chart/radar.dart b/mp_chart/example/lib/demo/other_chart/radar.dart index 76184df3..5af5676b 100644 --- a/mp_chart/example/lib/demo/other_chart/radar.dart +++ b/mp_chart/example/lib/demo/other_chart/radar.dart @@ -103,8 +103,8 @@ class OtherChartRadarState extends RadarActionState { double min = 20; int cnt = 5; - List entries1 = []; - List entries2 = []; + List entries1 = []; + List entries2 = []; // NOTE: The order of the entries when being added to the entries array determines their position around the center of // the chart. @@ -134,7 +134,7 @@ class OtherChartRadarState extends RadarActionState { set2.setDrawHighlightCircleEnabled(true); set2.setDrawHighlightIndicators(false); - List sets = []; + List sets = []; sets.add(set1); sets.add(set2); diff --git a/mp_chart/example/lib/demo/other_chart/scatter_plot.dart b/mp_chart/example/lib/demo/other_chart/scatter_plot.dart index 59cfdde4..c3896ba3 100644 --- a/mp_chart/example/lib/demo/other_chart/scatter_plot.dart +++ b/mp_chart/example/lib/demo/other_chart/scatter_plot.dart @@ -174,9 +174,9 @@ class OtherChartScatterPlotState imgs[1] = await ImageLoader.loadImage('assets/img/add.png'); imgs[2] = await ImageLoader.loadImage('assets/img/close.png'); - List values1 = []; - List values2 = []; - List values3 = []; + List values1 = []; + List values2 = []; + List values3 = []; for (int i = 0; i < count; i++) { double val = (random.nextDouble() * range) + 3; @@ -210,7 +210,7 @@ class OtherChartScatterPlotState set2.setScatterShapeSize(8); set3.setScatterShapeSize(8); - List dataSets = []; + List dataSets = []; dataSets.add(set1); // add the data sets dataSets.add(set2); dataSets.add(set3); diff --git a/mp_chart/example/lib/demo/pie_chart/basic.dart b/mp_chart/example/lib/demo/pie_chart/basic.dart index 4c2efa6d..b9ff58a7 100644 --- a/mp_chart/example/lib/demo/pie_chart/basic.dart +++ b/mp_chart/example/lib/demo/pie_chart/basic.dart @@ -201,7 +201,7 @@ class PieChartBasicState extends PieActionState void _initPieData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List entries = []; + List entries = []; // NOTE: The order of the entries when being added to the entries array determines their position around the center of // the chart. @@ -222,7 +222,7 @@ class PieChartBasicState extends PieActionState dataSet.setSelectionShift(5); // add a lot of colors - List colors = []; + List colors = []; for (Color c in ColorUtils.VORDIPLOM_COLORS) colors.add(c); for (Color c in ColorUtils.JOYFUL_COLORS) colors.add(c); for (Color c in ColorUtils.COLORFUL_COLORS) colors.add(c); diff --git a/mp_chart/example/lib/demo/pie_chart/half_pie.dart b/mp_chart/example/lib/demo/pie_chart/half_pie.dart index 916842a9..f573c877 100644 --- a/mp_chart/example/lib/demo/pie_chart/half_pie.dart +++ b/mp_chart/example/lib/demo/pie_chart/half_pie.dart @@ -124,7 +124,7 @@ class PieChartHalfPieState extends SimpleActionState { var count = 4; var range = 100; - List values = []; + List values = []; for (int i = 0; i < count; i++) { values.add(new PieEntry( diff --git a/mp_chart/example/lib/demo/pie_chart/value_lines.dart b/mp_chart/example/lib/demo/pie_chart/value_lines.dart index f5f7bddd..dea19e55 100644 --- a/mp_chart/example/lib/demo/pie_chart/value_lines.dart +++ b/mp_chart/example/lib/demo/pie_chart/value_lines.dart @@ -132,7 +132,7 @@ class PieChartValueLinesState extends PieActionState } // ignore: non_constant_identifier_names - final List PARTIES = List.empty() + final List PARTIES = [] ..add("Party A") ..add("Party B") ..add("Party C") @@ -199,7 +199,7 @@ class PieChartValueLinesState extends PieActionState void _initPieData(int count, double range) async { var img = await ImageLoader.loadImage('assets/img/star.png'); - List entries = []; + List entries = []; // NOTE: The order of the entries when being added to the entries array determines their position around the center of // the chart. @@ -217,7 +217,7 @@ class PieChartValueLinesState extends PieActionState dataSet.setSelectionShift(5); // add a lot of colors - List colors = []; + List colors = []; for (Color c in ColorUtils.VORDIPLOM_COLORS) colors.add(c); for (Color c in ColorUtils.JOYFUL_COLORS) colors.add(c); for (Color c in ColorUtils.COLORFUL_COLORS) colors.add(c); diff --git a/mp_chart/example/lib/demo/scrolling_chart/many_bar_chart.dart b/mp_chart/example/lib/demo/scrolling_chart/many_bar_chart.dart index 8a4350ef..4924889a 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/many_bar_chart.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/many_bar_chart.dart @@ -22,7 +22,7 @@ class ScrollingChartManyBar extends StatefulWidget { class ScrollingChartManyBarState extends SimpleActionState { - List _controllers = []; + List _controllers = []; var random = Random(1); bool _isParentMove = true; double _curX = 0.0; @@ -132,7 +132,7 @@ class ScrollingChartManyBarState } BarData generateData(int cnt) { - List entries = []; + List entries = []; for (int i = 0; i < 12; i++) { entries @@ -143,7 +143,7 @@ class ScrollingChartManyBarState d.setColors1(ColorUtils.VORDIPLOM_COLORS); d.setBarShadowColor(Color.fromARGB(255, 203, 203, 203)); - List sets = []; + List sets = []; sets.add(d); BarData cd = BarData(sets); diff --git a/mp_chart/example/lib/demo/scrolling_chart/multiple.dart b/mp_chart/example/lib/demo/scrolling_chart/multiple.dart index 9dabbe87..f6d56c7d 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/multiple.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/multiple.dart @@ -38,7 +38,7 @@ class ScrollingChartMultiple extends StatefulWidget { class ScrollingChartMultipleState extends SimpleActionState { - List _controllers = []; + List _controllers = []; var random = Random(1); bool _isParentMove = true; double _curX = 0.0; @@ -210,7 +210,7 @@ class ScrollingChartMultipleState } LineData _generateDataLine(int cnt) { - List values1 = []; + List values1 = []; for (int i = 0; i < 12; i++) { values1.add(Entry(x: i.toDouble(), y: (random.nextDouble() * 65) + 40)); @@ -222,7 +222,7 @@ class ScrollingChartMultipleState d1.setHighLightColor(Color.fromARGB(255, 244, 117, 117)); d1.setDrawValues(false); - List values2 = []; + List values2 = []; for (int i = 0; i < 12; i++) { values2.add(Entry(x: i.toDouble(), y: values1[i].y! - 30)); @@ -236,7 +236,7 @@ class ScrollingChartMultipleState d2.setCircleColor(ColorUtils.VORDIPLOM_COLORS[0]); d2.setDrawValues(false); - List sets = []; + List sets = []; sets.add(d1); sets.add(d2); @@ -244,7 +244,7 @@ class ScrollingChartMultipleState } BarData _generateDataBar(int cnt) { - List entries = []; + List entries = []; for (int i = 0; i < 12; i++) { entries @@ -261,7 +261,7 @@ class ScrollingChartMultipleState } PieData _generateDataPie() { - List entries = []; + List entries = []; for (int i = 0; i < 4; i++) { entries.add(PieEntry( diff --git a/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart b/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart index f4d623f1..f1cf0d32 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/tall_bar.dart @@ -158,7 +158,7 @@ class ScrollingChartTallBarState } BarData generateData() { - List entries = []; + List entries = []; for (int i = 0; i < 10; i++) { entries @@ -169,7 +169,7 @@ class ScrollingChartTallBarState d.setColors1(ColorUtils.VORDIPLOM_COLORS); d.setDrawValues(false); - List sets = []; + List sets = []; sets.add(d); return BarData(sets); diff --git a/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart b/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart index 3765b078..2cc27d36 100644 --- a/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart +++ b/mp_chart/example/lib/demo/scrolling_chart/view_pager.dart @@ -235,10 +235,10 @@ class ScrollingChartViewPagerState } void _initLineData1() { - List sets = []; + List sets = []; Util.loadAsset("sine.txt").then((value) { - List data = []; + List data = []; List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -259,7 +259,7 @@ class ScrollingChartViewPagerState }); Util.loadAsset("cosine.txt").then((value) { - List data = []; + List data = []; List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -281,10 +281,10 @@ class ScrollingChartViewPagerState } void _initLineData2() { - List sets = []; + List sets = []; Util.loadAsset("n.txt").then((value) { - List data = []; + List data = []; List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -307,7 +307,7 @@ class ScrollingChartViewPagerState }); Util.loadAsset("nlogn.txt").then((value) { - List data = []; + List data = []; List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -330,7 +330,7 @@ class ScrollingChartViewPagerState }); Util.loadAsset("square.txt").then((value) { - List data = []; + List data = []; List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -353,7 +353,7 @@ class ScrollingChartViewPagerState }); Util.loadAsset("three.txt").then((value) { - List data = []; + List data = []; List lines = value.split("\n"); for (int i = 0; i < lines.length; i++) { var datas = lines[i].split("#"); @@ -385,11 +385,11 @@ class ScrollingChartViewPagerState ..add("Company F"); void _initBarData() { - List sets = []; + List sets = []; var range = 20000; for (int i = 0; i < 1; i++) { - List entries = []; + List entries = []; for (int j = 0; j < 12; j++) { entries.add(BarEntry( @@ -409,12 +409,12 @@ class ScrollingChartViewPagerState var dataSets = 6; var range = 10000; var count = 200; - List sets = []; + List sets = []; List shapes = ScatterShape.values; for (int i = 0; i < dataSets; i++) { - List entries = []; + List entries = []; for (int j = 0; j < count; j++) { entries.add(Entry( @@ -436,7 +436,7 @@ class ScrollingChartViewPagerState void _initPieData() { int count = 4; - List entries1 = []; + List entries1 = []; for (int i = 0; i < count; i++) { entries1.add(PieEntry( diff --git a/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart b/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart index 2fd3faf0..682fc8d7 100644 --- a/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart +++ b/mp_chart/lib/mp/controller/bar_line_scatter_candle_bubble_controller.dart @@ -236,7 +236,7 @@ abstract class BarLineScatterCandleBubbleController< /// /// @param xValue void moveViewToX(double xValue) { - List pts = []; + List pts = []; pts.add(xValue); pts.add(0.0); @@ -251,7 +251,7 @@ abstract class BarLineScatterCandleBubbleController< /// @param axis - which axis should be used as a reference for the y-axis void moveViewToY(double yValue, AxisDependency axis) { double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); - List pts = []; + List pts = []; pts.add(0.0); pts.add(yValue + yInView / 2); @@ -268,7 +268,7 @@ abstract class BarLineScatterCandleBubbleController< /// @param axis - which axis should be used as a reference for the y-axis void moveViewTo(double xValue, double yValue, AxisDependency axis) { double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); - List pts = []; + List pts = []; pts.add(xValue); pts.add(yValue + yInView / 2); painter?.getTransformer(axis)?.pointValuesToPixel(pts); @@ -290,7 +290,7 @@ abstract class BarLineScatterCandleBubbleController< double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); yValue = yValue + yInView / 2; - List pts = []; + List pts = []; pts.add(xValue); pts.add(yValue); double? xOrigin = bounds.x; @@ -313,7 +313,7 @@ abstract class BarLineScatterCandleBubbleController< /// @param axis - which axis should be used as a reference for the y-axis void centerViewToY(double yValue, AxisDependency axis) { double valsInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); - List pts = []; + List pts = []; pts.add(0.0); pts.add(yValue + valsInView / 2); painter?.getTransformer(axis)?.pointValuesToPixel(pts); @@ -330,7 +330,7 @@ abstract class BarLineScatterCandleBubbleController< void centerViewTo(double xValue, double yValue, AxisDependency axis) { double yInView = getAxisRange(axis) / viewPortHandler!.getScaleY(); double xInView = xAxis!.axisRange / viewPortHandler!.getScaleX(); - List pts = []; + List pts = []; pts.add(xValue - xInView / 2); pts.add(yValue + yInView / 2); painter?.getTransformer(axis)?.pointValuesToPixel(pts); @@ -353,7 +353,7 @@ abstract class BarLineScatterCandleBubbleController< xValue = xValue - xInView / 2; yValue = yValue + yInView / 2; - List pts = []; + List pts = []; pts.add(xValue); pts.add(yValue); double? xOrigin = bounds.x; diff --git a/mp_chart/lib/mp/core/axis/axis_base.dart b/mp_chart/lib/mp/core/axis/axis_base.dart index 969c223b..d04915b3 100644 --- a/mp_chart/lib/mp/core/axis/axis_base.dart +++ b/mp_chart/lib/mp/core/axis/axis_base.dart @@ -19,9 +19,9 @@ abstract class AxisBase extends ComponentBase { double _axisLineWidth = 1; - List _entries = []; + List _entries = []; - List _centeredEntries = []; + List _centeredEntries = []; /// the number of entries the legend contains int _entryCount = 0; @@ -95,7 +95,7 @@ abstract class AxisBase extends ComponentBase { textSize = 10; xOffset = 5; yOffset = 5; - this._limitLines = [];//List[]; + this._limitLines = []; } // ignore: unnecessary_getters_setters @@ -253,7 +253,7 @@ abstract class AxisBase extends ComponentBase { /// /// @param l void addLimitLine(LimitLine l) { - _limitLines?.add(l); + _limitLines!.add(l); } /// Removes the specified LimitLine from the axis. diff --git a/mp_chart/lib/mp/core/data/chart_data.dart b/mp_chart/lib/mp/core/data/chart_data.dart index ff521a94..a48af019 100644 --- a/mp_chart/lib/mp/core/data/chart_data.dart +++ b/mp_chart/lib/mp/core/data/chart_data.dart @@ -34,7 +34,7 @@ class ChartData> { /// Default constructor. ChartData() { - _dataSets = []; + _dataSets = []; } /// Constructor taking single or multiple DataSet objects. diff --git a/mp_chart/lib/mp/core/data/combined_data.dart b/mp_chart/lib/mp/core/data/combined_data.dart index 91d8a0a1..85752d0a 100644 --- a/mp_chart/lib/mp/core/data/combined_data.dart +++ b/mp_chart/lib/mp/core/data/combined_data.dart @@ -47,7 +47,7 @@ class CombinedData extends BarLineScatterCandleBubbleData< @override void calcMinMax1() { if (dataSets == null) { - dataSets = >[]; + dataSets = []; } dataSets!.clear(); @@ -66,7 +66,8 @@ class CombinedData extends BarLineScatterCandleBubbleData< for (ChartData? data in allData) { data!.calcMinMax1(); - List> sets = data.dataSets as List>; + List> sets = + data.dataSets as List>; dataSets!.addAll(sets); if (data.getYMax1()! > yMax!) yMax = data.getYMax1(); @@ -111,8 +112,7 @@ class CombinedData extends BarLineScatterCandleBubbleData< /// /// @return List getAllData() { - List data = - []; + List data = []; if (_lineData != null) data.add(_lineData); if (_barData != null) data.add(_barData); if (_scatterData != null) data.add(_scatterData); @@ -179,7 +179,8 @@ class CombinedData extends BarLineScatterCandleBubbleData< } int getDataIndex(ChartData data) { - return getAllData().indexOf(data as BarLineScatterCandleBubbleData>?); + return getAllData().indexOf(data as BarLineScatterCandleBubbleData< + IBarLineScatterCandleBubbleDataSet>?); } @override diff --git a/mp_chart/lib/mp/core/data_set/bar_data_set.dart b/mp_chart/lib/mp/core/data_set/bar_data_set.dart index 6ff16a12..550764b7 100644 --- a/mp_chart/lib/mp/core/data_set/bar_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/bar_data_set.dart @@ -37,7 +37,7 @@ class BarDataSet extends BarLineScatterCandleBubbleDataSet @override DataSet copy1() { - List entries = []; + List entries = []; for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/base_data_set.dart b/mp_chart/lib/mp/core/data_set/base_data_set.dart index e0cdee10..9c69d011 100644 --- a/mp_chart/lib/mp/core/data_set/base_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/base_data_set.dart @@ -60,8 +60,8 @@ abstract class BaseDataSet implements IDataSet { /// Default constructor. BaseDataSet() { - _colors = []; - _valueColors = []; + _colors = []; + _valueColors = []; // default color _colors!.add(ui.Color.fromARGB(255, 140, 234, 255)); _valueColors!.add(ColorUtils.BLACK); @@ -71,8 +71,8 @@ abstract class BaseDataSet implements IDataSet { /// /// @param label BaseDataSet.withLabel(String label) { - _colors = []; - _valueColors = []; + _colors = []; + _valueColors = []; // default color _colors!.add(ui.Color.fromARGB(255, 140, 234, 255)); @@ -140,7 +140,7 @@ abstract class BaseDataSet implements IDataSet { /// /// @param color void addColor(ui.Color color) { - if (_colors == null) _colors = []; + if (_colors == null) _colors = []; _colors!.add(color); } @@ -196,7 +196,7 @@ abstract class BaseDataSet implements IDataSet { /// Resets all colors of this DataSet and recreates the colors array. void resetColors() { if (_colors == null) { - _colors = []; + _colors = []; } _colors!.clear(); } diff --git a/mp_chart/lib/mp/core/data_set/bubble_data_set.dart b/mp_chart/lib/mp/core/data_set/bubble_data_set.dart index 5c102f09..7ff3f51f 100644 --- a/mp_chart/lib/mp/core/data_set/bubble_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/bubble_data_set.dart @@ -37,7 +37,7 @@ class BubbleDataSet extends BarLineScatterCandleBubbleDataSet @override DataSet copy1() { - List entries = []; + List entries = []; for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/candle_data_set.dart b/mp_chart/lib/mp/core/data_set/candle_data_set.dart index 91ae030a..ddba9118 100644 --- a/mp_chart/lib/mp/core/data_set/candle_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/candle_data_set.dart @@ -51,7 +51,7 @@ class CandleDataSet extends LineScatterCandleRadarDataSet @override DataSet copy1() { - List entries = []; + List entries = []; for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/data_set.dart b/mp_chart/lib/mp/core/data_set/data_set.dart index 648243c3..e3e16e4e 100644 --- a/mp_chart/lib/mp/core/data_set/data_set.dart +++ b/mp_chart/lib/mp/core/data_set/data_set.dart @@ -27,7 +27,7 @@ abstract class DataSet extends BaseDataSet { DataSet(List values, String label) : super.withLabel(label) { this._values = values; - if (_values == null) _values = []; + if (_values == null) _values = []; calcMinMax(); } @@ -169,7 +169,7 @@ abstract class DataSet extends BaseDataSet { if (e == null) return; if (_values == null) { - _values = []; + _values = []; } calcMinMax1(e); @@ -194,7 +194,7 @@ abstract class DataSet extends BaseDataSet { List? valueDatas = values; if (valueDatas == null) { - valueDatas = []; + valueDatas = []; } calcMinMax1(e); @@ -352,7 +352,7 @@ abstract class DataSet extends BaseDataSet { @override List getEntriesForXValue(double? xValue) { - List entries = []; + List entries = []; int low = 0; int high = _values!.length - 1; diff --git a/mp_chart/lib/mp/core/data_set/line_data_set.dart b/mp_chart/lib/mp/core/data_set/line_data_set.dart index fbd564dd..8bad8b49 100644 --- a/mp_chart/lib/mp/core/data_set/line_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/line_data_set.dart @@ -47,7 +47,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { // mLineWidth = Utils.convertDpToPixel(1f); if (_circleColors == null) { - _circleColors = []; + _circleColors = []; } _circleColors!.clear(); @@ -246,7 +246,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { /// resets the circle-colors array and creates a one void resetCircleColors() { if (_circleColors == null) { - _circleColors = []; + _circleColors = []; } _circleColors!.clear(); } @@ -293,7 +293,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { @override DataSet copy1() { - List entries = []; + List entries = []; for (int i = 0; i < values!.length; i++) { entries.add(Entry( x: values![i]!.x, diff --git a/mp_chart/lib/mp/core/data_set/pie_data_set.dart b/mp_chart/lib/mp/core/data_set/pie_data_set.dart index 05604c83..336be547 100644 --- a/mp_chart/lib/mp/core/data_set/pie_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/pie_data_set.dart @@ -29,7 +29,7 @@ class PieDataSet extends DataSet implements IPieDataSet { @override DataSet copy1() { - List entries = []; + List entries = []; for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/radar_data_set.dart b/mp_chart/lib/mp/core/data_set/radar_data_set.dart index c606ec81..8847ba07 100644 --- a/mp_chart/lib/mp/core/data_set/radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/radar_data_set.dart @@ -97,7 +97,7 @@ class RadarDataSet extends LineRadarDataSet @override DataSet copy1() { - List entries = []; + List entries = []; for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/data_set/scatter_data_set.dart b/mp_chart/lib/mp/core/data_set/scatter_data_set.dart index 2f77a8cc..d82af5da 100644 --- a/mp_chart/lib/mp/core/data_set/scatter_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/scatter_data_set.dart @@ -37,7 +37,7 @@ class ScatterDataSet extends LineScatterCandleRadarDataSet @override DataSet copy1() { - List entries = []; + List entries = []; for (int i = 0; i < values!.length; i++) { entries.add(values![i]!.copy()); } diff --git a/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart b/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart index 37df45ff..00b97d95 100644 --- a/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart +++ b/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart @@ -16,7 +16,7 @@ class ChartHighlighter T? _provider; /// buffer for storing previously highlighted values - List _highlightBuffer = []; + List _highlightBuffer = []; ChartHighlighter(T provider) { this._provider = provider; @@ -144,7 +144,7 @@ class ChartHighlighter /// @return List buildHighlights( IDataSet set, int dataSetIndex, double? xVal, Rounding rounding) { - List highlights = []; + List highlights = []; //noinspection unchecked List entries = set.getEntriesForXValue(xVal); diff --git a/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart b/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart index 6feb653e..36865d56 100644 --- a/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart +++ b/mp_chart/lib/mp/core/highlight/horizontal_bar_highlighter.dart @@ -33,7 +33,7 @@ class HorizontalBarHighlighter extends BarHighlighter { @override List buildHighlights( IDataSet set, int dataSetIndex, double? xVal, Rounding rounding) { - List highlights = []; + List highlights = []; //noinspection unchecked List entries = set.getEntriesForXValue(xVal); diff --git a/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart b/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart index 33f1a3a3..defce71c 100644 --- a/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart +++ b/mp_chart/lib/mp/core/highlight/pie_radar_highlighter.dart @@ -8,7 +8,7 @@ abstract class PieRadarHighlighter T? _painter; /// buffer for storing previously highlighted values - List _highlightBuffer = []; + List _highlightBuffer = []; PieRadarHighlighter(T painter) { this._painter = painter; diff --git a/mp_chart/lib/mp/core/legend/legend.dart b/mp_chart/lib/mp/core/legend/legend.dart index afdb0c5b..5f10a1b7 100644 --- a/mp_chart/lib/mp/core/legend/legend.dart +++ b/mp_chart/lib/mp/core/legend/legend.dart @@ -16,7 +16,7 @@ import 'package:mp_chart/mp/core/utils/utils.dart'; class Legend extends ComponentBase { /// The legend entries array - List _entries = []; + List _entries = []; /// Entries that will be appended to the end of the auto calculated entries after calculating the legend. /// (if the legend has already been calculated, you will need to call notifyDataSetChanged() to let the changes take effect) @@ -164,7 +164,7 @@ class Legend extends ComponentBase { /// (if the legend has already been calculated, you will need to call notifyDataSetChanged() /// to let the changes take effect) void setExtra2(List colors, List labels) { - List entries = []; + List entries = []; for (int i = 0; i < min(colors.length, labels.length); i++) { final LegendEntry entry = LegendEntry.empty(); entry.formColor = colors[i]; @@ -423,9 +423,9 @@ class Legend extends ComponentBase { double requiredWidth = 0; int stackedStartIndex = -1; - _calculatedLabelBreakPoints = []; - _calculatedLabelSizes = []; - _calculatedLineSizes = []; + _calculatedLabelBreakPoints = []; + _calculatedLabelSizes = []; + _calculatedLineSizes = []; for (int i = 0; i < entryCount; i++) { LegendEntry e = entries[i]!; diff --git a/mp_chart/lib/mp/core/poolable/point.dart b/mp_chart/lib/mp/core/poolable/point.dart index adaa771f..10cf6574 100644 --- a/mp_chart/lib/mp/core/poolable/point.dart +++ b/mp_chart/lib/mp/core/poolable/point.dart @@ -140,7 +140,7 @@ class ObjectPool { "Object Pool must be instantiated with a capacity greater than 0!"); } this.desiredCapacity = withCapacity; - this.objects = []..length = this.desiredCapacity!;//[this.desiredCapacity]; + this.objects = []..length = withCapacity; this.objectsPointer = 0; this.modelObject = object; this.replenishPercentage = 1.0; diff --git a/mp_chart/lib/mp/core/render/axis_renderer.dart b/mp_chart/lib/mp/core/render/axis_renderer.dart index a04bffa0..bad93e02 100644 --- a/mp_chart/lib/mp/core/render/axis_renderer.dart +++ b/mp_chart/lib/mp/core/render/axis_renderer.dart @@ -138,8 +138,8 @@ abstract class AxisRenderer extends Renderer { double range = (yMax - yMin).abs(); if (labelCount == 0 || range <= 0 || range.isInfinite) { - _axis!.entries = []; - _axis!.centeredEntries = []; + _axis!.entries = []; + _axis!.centeredEntries = []; _axis!.entryCount = 0; return; } diff --git a/mp_chart/lib/mp/core/render/bar_chart_renderer.dart b/mp_chart/lib/mp/core/render/bar_chart_renderer.dart index 9d5a509a..7fe47003 100644 --- a/mp_chart/lib/mp/core/render/bar_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/bar_chart_renderer.dart @@ -191,7 +191,7 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { renderPaint! ..shader = (LinearGradient( - colors: List.empty() + colors: [] ..add(gradientColor.startColor) ..add(gradientColor.endColor), tileMode: TileMode.mirror)) @@ -205,7 +205,7 @@ class BarChartRenderer extends BarLineScatterCandleBubbleRenderer { if (dataSet.getGradientColors() != null) { renderPaint! ..shader = (LinearGradient( - colors: List.empty() + colors: [] ..add(dataSet.getGradientColor2(j ~/ 4).startColor) ..add(dataSet.getGradientColor2(j ~/ 4).endColor), tileMode: TileMode.mirror)) diff --git a/mp_chart/lib/mp/core/render/combined_chart_renderer.dart b/mp_chart/lib/mp/core/render/combined_chart_renderer.dart index 7686d68a..71ef5025 100644 --- a/mp_chart/lib/mp/core/render/combined_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/combined_chart_renderer.dart @@ -21,7 +21,7 @@ import 'package:mp_chart/mp/core/entry/entry.dart'; class CombinedChartRenderer extends DataRenderer { /// all rederers for the different kinds of data this combined-renderer can draw - List _renderers = []; + List _renderers = []; ChartPainter? _painter; @@ -95,7 +95,7 @@ class CombinedChartRenderer extends DataRenderer { for (DataRenderer renderer in _renderers) renderer.drawExtras(c); } - List mHighlightBuffer = []; + List mHighlightBuffer = []; @override void drawHighlighted(Canvas c, List? indices) { diff --git a/mp_chart/lib/mp/core/render/legend_renderer.dart b/mp_chart/lib/mp/core/render/legend_renderer.dart index 342b9a34..eb4623ed 100644 --- a/mp_chart/lib/mp/core/render/legend_renderer.dart +++ b/mp_chart/lib/mp/core/render/legend_renderer.dart @@ -66,7 +66,7 @@ class LegendRenderer extends Renderer { /// @param data void computeLegend(ChartData? data) { if (!_legend!.isLegendCustom) { - _computedEntries = []; + _computedEntries = []; // loop for building up the colors and labels used in the legend for (int i = 0; i < data!.getDataSetCount(); i++) { diff --git a/mp_chart/lib/mp/core/render/line_chart_renderer.dart b/mp_chart/lib/mp/core/render/line_chart_renderer.dart index 731309e3..c44590ff 100644 --- a/mp_chart/lib/mp/core/render/line_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/line_chart_renderer.dart @@ -119,7 +119,7 @@ class LineChartRenderer extends LineRadarRenderer { xBounds!.set(_provider!, dataSet); - List list = []; + List list = []; if (xBounds!.range! >= 1) { Entry prev = dataSet.getEntryForIndex(xBounds!.min)!; @@ -195,7 +195,7 @@ class LineChartRenderer extends LineRadarRenderer { double intensity = dataSet.getCubicIntensity(); - List list = []; + List list = []; if (xBounds!.range! >= 1) { double prevDx = 0; @@ -291,7 +291,7 @@ class LineChartRenderer extends LineRadarRenderer { double fillMin = dataSet.getFillFormatter().getFillLinePosition(dataSet, _provider); - List list = []; + List list = []; list.add(dataSet.getEntryForIndex(bounds.min! + bounds.range!)!.x); list.add(fillMin); list.add(dataSet.getEntryForIndex(bounds.min)!.x); @@ -515,7 +515,7 @@ class LineChartRenderer extends LineRadarRenderer { final double phaseY = animator!.getPhaseY(); final bool isDrawSteppedEnabled = dataSet.getMode() == Mode.STEPPED; - List points = []; + List points = []; final Path filled = outputPath; filled.reset(); diff --git a/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart b/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart index ad4244dd..ad83e2a2 100644 --- a/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart +++ b/mp_chart/lib/mp/core/render/y_axis_renderer_radar_chart.dart @@ -30,8 +30,8 @@ class YAxisRendererRadarChart extends YAxisRenderer { double range = (yMax - yMin).abs(); if (labelCount == 0 || range <= 0 || range.isInfinite) { - axis!.entries = []; - axis!.centeredEntries = []; + axis!.entries = []; + axis!.centeredEntries = []; axis!.entryCount = 0; return; } From b81461c2ad41489a33b05067de61f4d2118e80aa Mon Sep 17 00:00:00 2001 From: Takuro KAKOI Date: Tue, 28 Sep 2021 21:19:19 +0900 Subject: [PATCH 13/29] fix OptimizedGestureDetector --- mp_chart/example/pubspec.yaml | 6 +----- mp_chart/pubspec.yaml | 2 ++ 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/mp_chart/example/pubspec.yaml b/mp_chart/example/pubspec.yaml index 88661b33..783ac2f6 100644 --- a/mp_chart/example/pubspec.yaml +++ b/mp_chart/example/pubspec.yaml @@ -21,14 +21,10 @@ dependencies: permission_handler: ^8.1.6 flutter: sdk: flutter - #mp_chart: ^0.2.2 - mp_chart: # self null-safety - path: ../ - + mp_chart: ^0.2.2 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.3 - intl: ^0.17.0 dev_dependencies: diff --git a/mp_chart/pubspec.yaml b/mp_chart/pubspec.yaml index 5ccf0132..fafbc4f8 100644 --- a/mp_chart/pubspec.yaml +++ b/mp_chart/pubspec.yaml @@ -26,6 +26,8 @@ dev_dependencies: flutter_test: sdk: flutter + + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec From d034d797082fadd8a20297ecb62a6f449411c0de Mon Sep 17 00:00:00 2001 From: Absar Date: Sun, 6 Feb 2022 20:33:28 +0100 Subject: [PATCH 14/29] Null safety updates. Upgrade dependencies. Bump version. --- mp_chart/example/lib/demo/action_state.dart | 1 - mp_chart/example/lib/demo/even_more/dynamic.dart | 1 - .../example/lib/demo/even_more/realtime.dart | 1 - mp_chart/example/pubspec.yaml | 8 ++++---- .../lib/mp/controller/bar_chart_controller.dart | 1 - .../mp/controller/bubble_chart_controller.dart | 1 - .../controller/candlestick_chart_controller.dart | 1 - .../horizontal_bar_chart_controller.dart | 1 - .../lib/mp/controller/line_chart_controller.dart | 1 - .../mp/controller/scatter_chart_controller.dart | 1 - mp_chart/lib/mp/core/axis/y_axis.dart | 1 - mp_chart/lib/mp/core/cache.dart | 1 - .../lib/mp/core/marker/line_chart_marker.dart | 1 - .../lib/mp/core/marker/radar_chart_marker.dart | 1 - mp_chart/lib/mp/core/render/axis_renderer.dart | 1 - .../lib/mp/core/render/bar_chart_renderer.dart | 1 - mp_chart/lib/mp/core/render/data_renderer.dart | 1 - .../lib/mp/core/render/line_chart_renderer.dart | 1 - .../lib/mp/core/render/pie_chart_renderer.dart | 1 - mp_chart/lib/mp/core/render/y_axis_renderer.dart | 1 - .../y_axis_renderer_horizontal_bar_chart.dart | 1 - mp_chart/lib/mp/core/utils/matrix4_utils.dart | 1 - mp_chart/lib/mp/painter/bar_chart_painter.dart | 1 - .../lib/mp/painter/bar_line_chart_painter.dart | 1 - .../lib/mp/painter/combined_chart_painter.dart | 1 - .../mp/painter/horizontal_bar_chart_painter.dart | 2 -- mp_chart/lib/mp/painter/line_chart_painter.dart | 1 - mp_chart/lib/mp/painter/pie_chart_painter.dart | 1 - mp_chart/pubspec.yaml | 16 ++++++++-------- 29 files changed, 12 insertions(+), 40 deletions(-) diff --git a/mp_chart/example/lib/demo/action_state.dart b/mp_chart/example/lib/demo/action_state.dart index 8aae3872..7b297e73 100644 --- a/mp_chart/example/lib/demo/action_state.dart +++ b/mp_chart/example/lib/demo/action_state.dart @@ -2,7 +2,6 @@ import 'dart:io'; import 'dart:math'; import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:mp_chart/mp/controller/bar_chart_controller.dart'; import 'package:mp_chart/mp/controller/bubble_chart_controller.dart'; import 'package:mp_chart/mp/controller/candlestick_chart_controller.dart'; diff --git a/mp_chart/example/lib/demo/even_more/dynamic.dart b/mp_chart/example/lib/demo/even_more/dynamic.dart index 8ade13a2..a7209fae 100644 --- a/mp_chart/example/lib/demo/even_more/dynamic.dart +++ b/mp_chart/example/lib/demo/even_more/dynamic.dart @@ -1,7 +1,6 @@ import 'dart:math'; import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:mp_chart/mp/chart/line_chart.dart'; import 'package:mp_chart/mp/controller/line_chart_controller.dart'; import 'package:mp_chart/mp/core/common_interfaces.dart'; diff --git a/mp_chart/example/lib/demo/even_more/realtime.dart b/mp_chart/example/lib/demo/even_more/realtime.dart index f7b2248c..9b193a07 100644 --- a/mp_chart/example/lib/demo/even_more/realtime.dart +++ b/mp_chart/example/lib/demo/even_more/realtime.dart @@ -4,7 +4,6 @@ import 'dart:math'; import 'package:example/demo/action_state.dart'; import 'package:example/demo/util.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:mp_chart/mp/chart/line_chart.dart'; import 'package:mp_chart/mp/controller/line_chart_controller.dart'; import 'package:mp_chart/mp/core/common_interfaces.dart'; diff --git a/mp_chart/example/pubspec.yaml b/mp_chart/example/pubspec.yaml index 783ac2f6..a1c4de1c 100644 --- a/mp_chart/example/pubspec.yaml +++ b/mp_chart/example/pubspec.yaml @@ -17,14 +17,14 @@ environment: sdk: '>=2.12.0 <3.0.0' dependencies: - url_launcher: ^6.0.12 - permission_handler: ^8.1.6 + url_launcher: ^6.0.18 + permission_handler: ^8.3.0 flutter: sdk: flutter - mp_chart: ^0.2.2 + mp_chart: ^0.3.2 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^1.0.3 + cupertino_icons: ^1.0.4 intl: ^0.17.0 dev_dependencies: diff --git a/mp_chart/lib/mp/controller/bar_chart_controller.dart b/mp_chart/lib/mp/controller/bar_chart_controller.dart index 0c2ba5f6..c9f60e4e 100644 --- a/mp_chart/lib/mp/controller/bar_chart_controller.dart +++ b/mp_chart/lib/mp/controller/bar_chart_controller.dart @@ -1,4 +1,3 @@ -import 'package:flutter/painting.dart'; import 'package:flutter/widgets.dart'; import 'package:mp_chart/mp/chart/bar_chart.dart'; import 'package:mp_chart/mp/controller/bar_line_scatter_candle_bubble_controller.dart'; diff --git a/mp_chart/lib/mp/controller/bubble_chart_controller.dart b/mp_chart/lib/mp/controller/bubble_chart_controller.dart index 53240d42..d0a0c16f 100644 --- a/mp_chart/lib/mp/controller/bubble_chart_controller.dart +++ b/mp_chart/lib/mp/controller/bubble_chart_controller.dart @@ -1,4 +1,3 @@ -import 'package:flutter/painting.dart'; import 'package:flutter/widgets.dart'; import 'package:mp_chart/mp/chart/bubble_chart.dart'; import 'package:mp_chart/mp/controller/bar_line_scatter_candle_bubble_controller.dart'; diff --git a/mp_chart/lib/mp/controller/candlestick_chart_controller.dart b/mp_chart/lib/mp/controller/candlestick_chart_controller.dart index dda0a771..4b12e903 100644 --- a/mp_chart/lib/mp/controller/candlestick_chart_controller.dart +++ b/mp_chart/lib/mp/controller/candlestick_chart_controller.dart @@ -1,4 +1,3 @@ -import 'package:flutter/painting.dart'; import 'package:flutter/widgets.dart'; import 'package:mp_chart/mp/chart/candlestick_chart.dart'; import 'package:mp_chart/mp/controller/bar_line_scatter_candle_bubble_controller.dart'; diff --git a/mp_chart/lib/mp/controller/horizontal_bar_chart_controller.dart b/mp_chart/lib/mp/controller/horizontal_bar_chart_controller.dart index fc88ff41..b2fa9d6e 100644 --- a/mp_chart/lib/mp/controller/horizontal_bar_chart_controller.dart +++ b/mp_chart/lib/mp/controller/horizontal_bar_chart_controller.dart @@ -1,4 +1,3 @@ -import 'package:flutter/painting.dart'; import 'package:flutter/widgets.dart'; import 'package:mp_chart/mp/controller/bar_chart_controller.dart'; import 'package:mp_chart/mp/core/axis/y_axis.dart'; diff --git a/mp_chart/lib/mp/controller/line_chart_controller.dart b/mp_chart/lib/mp/controller/line_chart_controller.dart index bb3d743b..d6016e7c 100644 --- a/mp_chart/lib/mp/controller/line_chart_controller.dart +++ b/mp_chart/lib/mp/controller/line_chart_controller.dart @@ -1,4 +1,3 @@ -import 'package:flutter/painting.dart'; import 'package:flutter/widgets.dart'; import 'package:mp_chart/mp/chart/line_chart.dart'; import 'package:mp_chart/mp/controller/bar_line_scatter_candle_bubble_controller.dart'; diff --git a/mp_chart/lib/mp/controller/scatter_chart_controller.dart b/mp_chart/lib/mp/controller/scatter_chart_controller.dart index cc0974e1..51b3b1f1 100644 --- a/mp_chart/lib/mp/controller/scatter_chart_controller.dart +++ b/mp_chart/lib/mp/controller/scatter_chart_controller.dart @@ -1,4 +1,3 @@ -import 'package:flutter/painting.dart'; import 'package:flutter/widgets.dart'; import 'package:mp_chart/mp/chart/scatter_chart.dart'; import 'package:mp_chart/mp/controller/bar_line_scatter_candle_bubble_controller.dart'; diff --git a/mp_chart/lib/mp/core/axis/y_axis.dart b/mp_chart/lib/mp/core/axis/y_axis.dart index 69643018..fba49eb3 100644 --- a/mp_chart/lib/mp/core/axis/y_axis.dart +++ b/mp_chart/lib/mp/core/axis/y_axis.dart @@ -1,5 +1,4 @@ import 'dart:math'; -import 'dart:ui'; import 'package:flutter/painting.dart'; import 'package:mp_chart/mp/core/axis/axis_base.dart'; diff --git a/mp_chart/lib/mp/core/cache.dart b/mp_chart/lib/mp/core/cache.dart index a68c5eb9..159306f8 100644 --- a/mp_chart/lib/mp/core/cache.dart +++ b/mp_chart/lib/mp/core/cache.dart @@ -2,7 +2,6 @@ import 'dart:typed_data'; import 'dart:ui' as ui; import 'dart:ui'; -import 'package:flutter/painting.dart'; import 'package:mp_chart/mp/core/data_interfaces/i_line_data_set.dart'; class DataSetImageCache { diff --git a/mp_chart/lib/mp/core/marker/line_chart_marker.dart b/mp_chart/lib/mp/core/marker/line_chart_marker.dart index 5ffe3cc2..ce098479 100644 --- a/mp_chart/lib/mp/core/marker/line_chart_marker.dart +++ b/mp_chart/lib/mp/core/marker/line_chart_marker.dart @@ -1,4 +1,3 @@ -import 'dart:ui'; import 'package:flutter/painting.dart'; import 'package:mp_chart/mp/core/entry/entry.dart'; diff --git a/mp_chart/lib/mp/core/marker/radar_chart_marker.dart b/mp_chart/lib/mp/core/marker/radar_chart_marker.dart index 138848bf..536b8589 100644 --- a/mp_chart/lib/mp/core/marker/radar_chart_marker.dart +++ b/mp_chart/lib/mp/core/marker/radar_chart_marker.dart @@ -1,4 +1,3 @@ -import 'dart:ui'; import 'package:flutter/painting.dart'; import 'package:mp_chart/mp/core/entry/entry.dart'; diff --git a/mp_chart/lib/mp/core/render/axis_renderer.dart b/mp_chart/lib/mp/core/render/axis_renderer.dart index bad93e02..02396000 100644 --- a/mp_chart/lib/mp/core/render/axis_renderer.dart +++ b/mp_chart/lib/mp/core/render/axis_renderer.dart @@ -1,5 +1,4 @@ import 'dart:math'; -import 'dart:ui'; import 'package:flutter/painting.dart'; import 'package:mp_chart/mp/core/axis/axis_base.dart'; diff --git a/mp_chart/lib/mp/core/render/bar_chart_renderer.dart b/mp_chart/lib/mp/core/render/bar_chart_renderer.dart index 7fe47003..78d9c660 100644 --- a/mp_chart/lib/mp/core/render/bar_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/bar_chart_renderer.dart @@ -1,5 +1,4 @@ import 'dart:math'; -import 'dart:ui'; import 'package:flutter/painting.dart'; import 'package:mp_chart/mp/core/adapter_android_mp.dart'; diff --git a/mp_chart/lib/mp/core/render/data_renderer.dart b/mp_chart/lib/mp/core/render/data_renderer.dart index b6ebcf92..c6ba0721 100644 --- a/mp_chart/lib/mp/core/render/data_renderer.dart +++ b/mp_chart/lib/mp/core/render/data_renderer.dart @@ -1,4 +1,3 @@ -import 'dart:ui'; import 'package:flutter/painting.dart'; import 'package:mp_chart/mp/core/adapter_android_mp.dart'; diff --git a/mp_chart/lib/mp/core/render/line_chart_renderer.dart b/mp_chart/lib/mp/core/render/line_chart_renderer.dart index c44590ff..a69d4f44 100644 --- a/mp_chart/lib/mp/core/render/line_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/line_chart_renderer.dart @@ -2,7 +2,6 @@ import 'dart:math'; import 'dart:typed_data'; import 'dart:ui'; -import 'package:flutter/painting.dart'; import 'package:mp_chart/mp/core/adapter_android_mp.dart'; import 'package:mp_chart/mp/core/bounds.dart'; import 'package:mp_chart/mp/core/cache.dart'; diff --git a/mp_chart/lib/mp/core/render/pie_chart_renderer.dart b/mp_chart/lib/mp/core/render/pie_chart_renderer.dart index 81c9f35f..c06306f3 100644 --- a/mp_chart/lib/mp/core/render/pie_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/pie_chart_renderer.dart @@ -1,5 +1,4 @@ import 'dart:math'; -import 'dart:ui'; import 'package:flutter/painting.dart'; import 'package:mp_chart/mp/core/adapter_android_mp.dart'; diff --git a/mp_chart/lib/mp/core/render/y_axis_renderer.dart b/mp_chart/lib/mp/core/render/y_axis_renderer.dart index eace766b..67769533 100644 --- a/mp_chart/lib/mp/core/render/y_axis_renderer.dart +++ b/mp_chart/lib/mp/core/render/y_axis_renderer.dart @@ -1,4 +1,3 @@ -import 'dart:ui'; import 'package:flutter/painting.dart'; import 'package:mp_chart/mp/core/axis/y_axis.dart'; diff --git a/mp_chart/lib/mp/core/render/y_axis_renderer_horizontal_bar_chart.dart b/mp_chart/lib/mp/core/render/y_axis_renderer_horizontal_bar_chart.dart index d97130a6..c263f0de 100644 --- a/mp_chart/lib/mp/core/render/y_axis_renderer_horizontal_bar_chart.dart +++ b/mp_chart/lib/mp/core/render/y_axis_renderer_horizontal_bar_chart.dart @@ -1,4 +1,3 @@ -import 'dart:ui'; import 'package:flutter/painting.dart'; import 'package:mp_chart/mp/core/axis/y_axis.dart'; diff --git a/mp_chart/lib/mp/core/utils/matrix4_utils.dart b/mp_chart/lib/mp/core/utils/matrix4_utils.dart index 69b2dabc..9aadce65 100644 --- a/mp_chart/lib/mp/core/utils/matrix4_utils.dart +++ b/mp_chart/lib/mp/core/utils/matrix4_utils.dart @@ -1,4 +1,3 @@ -import 'dart:ui'; import 'package:flutter/rendering.dart'; import 'package:vector_math/vector_math_64.dart'; diff --git a/mp_chart/lib/mp/painter/bar_chart_painter.dart b/mp_chart/lib/mp/painter/bar_chart_painter.dart index ccbd9be2..8adfb37b 100644 --- a/mp_chart/lib/mp/painter/bar_chart_painter.dart +++ b/mp_chart/lib/mp/painter/bar_chart_painter.dart @@ -1,4 +1,3 @@ -import 'package:flutter/painting.dart'; import 'package:flutter/rendering.dart'; import 'package:mp_chart/mp/core/animator.dart'; import 'package:mp_chart/mp/core/axis/x_axis.dart'; diff --git a/mp_chart/lib/mp/painter/bar_line_chart_painter.dart b/mp_chart/lib/mp/painter/bar_line_chart_painter.dart index 00d9094c..a46d8cf8 100644 --- a/mp_chart/lib/mp/painter/bar_line_chart_painter.dart +++ b/mp_chart/lib/mp/painter/bar_line_chart_painter.dart @@ -1,6 +1,5 @@ import 'dart:math'; -import 'package:flutter/painting.dart'; import 'package:flutter/rendering.dart'; import 'package:mp_chart/mp/core/animator.dart'; import 'package:mp_chart/mp/core/axis/x_axis.dart'; diff --git a/mp_chart/lib/mp/painter/combined_chart_painter.dart b/mp_chart/lib/mp/painter/combined_chart_painter.dart index 49866fdf..85bd7379 100644 --- a/mp_chart/lib/mp/painter/combined_chart_painter.dart +++ b/mp_chart/lib/mp/painter/combined_chart_painter.dart @@ -1,4 +1,3 @@ -import 'package:flutter/painting.dart'; import 'package:flutter/rendering.dart'; import 'package:mp_chart/mp/core/animator.dart'; import 'package:mp_chart/mp/core/axis/x_axis.dart'; diff --git a/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart b/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart index 0d30bf35..125ff511 100644 --- a/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart +++ b/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart @@ -1,7 +1,5 @@ import 'dart:math'; -import 'dart:ui'; -import 'package:flutter/painting.dart'; import 'package:flutter/rendering.dart'; import 'package:mp_chart/mp/core/animator.dart'; import 'package:mp_chart/mp/core/axis/x_axis.dart'; diff --git a/mp_chart/lib/mp/painter/line_chart_painter.dart b/mp_chart/lib/mp/painter/line_chart_painter.dart index 33dcc439..5f5c8fb0 100644 --- a/mp_chart/lib/mp/painter/line_chart_painter.dart +++ b/mp_chart/lib/mp/painter/line_chart_painter.dart @@ -1,4 +1,3 @@ -import 'package:flutter/painting.dart'; import 'package:flutter/rendering.dart'; import 'package:mp_chart/mp/core/animator.dart'; import 'package:mp_chart/mp/core/axis/x_axis.dart'; diff --git a/mp_chart/lib/mp/painter/pie_chart_painter.dart b/mp_chart/lib/mp/painter/pie_chart_painter.dart index bed0f7e9..3394bbcd 100644 --- a/mp_chart/lib/mp/painter/pie_chart_painter.dart +++ b/mp_chart/lib/mp/painter/pie_chart_painter.dart @@ -1,5 +1,4 @@ import 'dart:math'; -import 'dart:ui'; import 'package:flutter/painting.dart'; import 'package:flutter/rendering.dart'; diff --git a/mp_chart/pubspec.yaml b/mp_chart/pubspec.yaml index fafbc4f8..7c7925ef 100644 --- a/mp_chart/pubspec.yaml +++ b/mp_chart/pubspec.yaml @@ -1,6 +1,6 @@ name: mp_chart description: A Flutter chart package just like AndroidMPChart, apply easy to use chart for Flutter. -version: 0.3.1 +version: 0.3.2 author: SunPointed<410338643@qq.com> homepage: https://github.com/SunPointed/MPFlutterChart @@ -9,16 +9,16 @@ environment: dependencies: intl: ^0.17.0 - path_provider: ^2.0.1 - screenshot: ^1.0.0-nullsafety.1 - path_drawing: ^0.5.0 - image_gallery_saver: ^1.6.9 + path_provider: ^2.0.8 + screenshot: ^1.2.3 + path_drawing: ^1.0.0 + image_gallery_saver: ^1.7.1 optimized_gesture_detector: git: - url: https://github.com/tkakoi-orphe/OptimizedGestureDetector.git - ref: null-safety + url: https://github.com/absar/OptimizedGestureDetector.git + #ref: null-safety path: ./ - vector_math: ^2.1.0 + vector_math: ^2.1.1 flutter: sdk: flutter From 895bc499d6827f6ea0ef753b0eeee76917dae413 Mon Sep 17 00:00:00 2001 From: Absar Date: Mon, 16 May 2022 01:04:35 +0200 Subject: [PATCH 15/29] * Flutter 3 fixes. * Upgrade dependencies path_provider, vector_math. * Example app: ** Use Uri instead of deprecated String in launchUrl ** Upgrade dependencies, url_launcher, permission_handler --- .gitignore | 1 + mp_chart/CHANGELOG.md | 9 +++++++++ mp_chart/example/lib/demo/util.dart | 10 +++++++--- mp_chart/example/pubspec.yaml | 8 ++++---- mp_chart/lib/mp/core/data_set/scatter_data_set.dart | 2 -- mp_chart/lib/mp/core/utils/screen_utils.dart | 6 +++--- mp_chart/pubspec.yaml | 6 +++--- 7 files changed, 27 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index bbe34fe5..7f640a14 100644 --- a/.gitignore +++ b/.gitignore @@ -74,3 +74,4 @@ pubspec.lock !**/ios/**/default.pbxuser !**/ios/**/default.perspectivev3 !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages +mp_chart/.flutter-plugins-dependencies diff --git a/mp_chart/CHANGELOG.md b/mp_chart/CHANGELOG.md index da871564..eb1499aa 100644 --- a/mp_chart/CHANGELOG.md +++ b/mp_chart/CHANGELOG.md @@ -1,3 +1,12 @@ +## 0.3.3 2022-05-16 +* Flutter 3 fixes. +* Upgrade dependencies path_provider, vector_math. +* Example app: +** Use Uri instead of deprecated String in launchUrl +** Upgrade dependencies, url_launcher, permission_handler +## 0.3.2 2022-02-06 +* Null safety updates. +* Upgrade dependencies. ## 0.3.1 2020-10-30 * Updated for Flutter 1.22.0 to use updated Dart intl package 0.17.0-nullsafety.1. ## 0.3.0 2020-09-18 diff --git a/mp_chart/example/lib/demo/util.dart b/mp_chart/example/lib/demo/util.dart index 53474ba5..00100e47 100644 --- a/mp_chart/example/lib/demo/util.dart +++ b/mp_chart/example/lib/demo/util.dart @@ -18,9 +18,13 @@ abstract class Util { } static void _launchURL() async { - const url = 'https://github.com/SunPointed/mp_flutter_chart'; - if (await canLaunch(url)) { - await launch(url); + final Uri url = Uri( + scheme: 'https', + host: 'github.com', + path: '/SunPointed/mp_flutter_chart', + ); + if (await canLaunchUrl(url)) { + await launchUrl(url); } else { throw 'Could not launch $url'; } diff --git a/mp_chart/example/pubspec.yaml b/mp_chart/example/pubspec.yaml index a1c4de1c..45737a26 100644 --- a/mp_chart/example/pubspec.yaml +++ b/mp_chart/example/pubspec.yaml @@ -11,17 +11,17 @@ description: flutter charts just like MPAndroidChart # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.1 +version: 1.0.2 environment: sdk: '>=2.12.0 <3.0.0' dependencies: - url_launcher: ^6.0.18 - permission_handler: ^8.3.0 + url_launcher: ^6.1.2 + permission_handler: ^9.2.0 flutter: sdk: flutter - mp_chart: ^0.3.2 + mp_chart: ^0.3.3 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.4 diff --git a/mp_chart/lib/mp/core/data_set/scatter_data_set.dart b/mp_chart/lib/mp/core/data_set/scatter_data_set.dart index d82af5da..a795e240 100644 --- a/mp_chart/lib/mp/core/data_set/scatter_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/scatter_data_set.dart @@ -134,7 +134,5 @@ class ScatterDataSet extends LineScatterCandleRadarDataSet case ScatterShape.CHEVRON_DOWN: return ChevronDownShapeRenderer(); } - - return null; } } diff --git a/mp_chart/lib/mp/core/utils/screen_utils.dart b/mp_chart/lib/mp/core/utils/screen_utils.dart index a6dee8cb..72b2dc3e 100644 --- a/mp_chart/lib/mp/core/utils/screen_utils.dart +++ b/mp_chart/lib/mp/core/utils/screen_utils.dart @@ -131,7 +131,7 @@ class ScreenUtils { /// 返回根据屏幕宽适配后尺寸(单位 dp or pt) /// size 单位 dp or pt static double getScaleW(BuildContext context, double size) { - if (context == null || getScreenW(context) == 0.0) return size; + if (getScreenW(context) == 0.0) return size; return size * getScreenW(context) / _designW; } @@ -139,7 +139,7 @@ class ScreenUtils { /// 返回根据屏幕高适配后尺寸 (单位 dp or pt) /// size unit dp or pt static double getScaleH(BuildContext context, double size) { - if (context == null || getScreenH(context) == 0.0) return size; + if (getScreenH(context) == 0.0) return size; return size * getScreenH(context) / _designH; } @@ -147,7 +147,7 @@ class ScreenUtils { /// 返回根据屏幕宽适配后字体尺寸 /// fontSize 字体尺寸 static double getScaleSp(BuildContext context, double fontSize) { - if (context == null || getScreenDensity(context) == 0.0) return fontSize; + if (getScreenDensity(context) == 0.0) return fontSize; return fontSize * getScreenW(context) / _designW; } diff --git a/mp_chart/pubspec.yaml b/mp_chart/pubspec.yaml index 7c7925ef..83743b7b 100644 --- a/mp_chart/pubspec.yaml +++ b/mp_chart/pubspec.yaml @@ -1,6 +1,6 @@ name: mp_chart description: A Flutter chart package just like AndroidMPChart, apply easy to use chart for Flutter. -version: 0.3.2 +version: 0.3.3 author: SunPointed<410338643@qq.com> homepage: https://github.com/SunPointed/MPFlutterChart @@ -9,7 +9,7 @@ environment: dependencies: intl: ^0.17.0 - path_provider: ^2.0.8 + path_provider: ^2.0.10 screenshot: ^1.2.3 path_drawing: ^1.0.0 image_gallery_saver: ^1.7.1 @@ -18,7 +18,7 @@ dependencies: url: https://github.com/absar/OptimizedGestureDetector.git #ref: null-safety path: ./ - vector_math: ^2.1.1 + vector_math: ^2.1.2 flutter: sdk: flutter From ae78cdc6128f388e2de928d534e6cd7ca41c186a Mon Sep 17 00:00:00 2001 From: Absar Date: Sun, 16 Oct 2022 19:44:30 +0200 Subject: [PATCH 16/29] Flutter 3.3 fixes * Upgrade dependencies path_provider, path_drawing, optimized_gesture_detector * bump sdk from >=2.12.0 to >=2.17.0 * Example app: ** Upgrade dependencies, url_launcher, permission_handler, cupertino_icons --- mp_chart/CHANGELOG.md | 6 ++++++ mp_chart/example/pubspec.yaml | 12 ++++++------ mp_chart/pubspec.yaml | 9 ++++----- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/mp_chart/CHANGELOG.md b/mp_chart/CHANGELOG.md index eb1499aa..7c881658 100644 --- a/mp_chart/CHANGELOG.md +++ b/mp_chart/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.0.0 2022-10-16 +* Flutter 3.3 fixes +* Upgrade dependencies path_provider, path_drawing, optimized_gesture_detector +* bump sdk from >=2.12.0 to >=2.17.0 +* Example app: + ** Upgrade dependencies, url_launcher, permission_handler, cupertino_icons ## 0.3.3 2022-05-16 * Flutter 3 fixes. * Upgrade dependencies path_provider, vector_math. diff --git a/mp_chart/example/pubspec.yaml b/mp_chart/example/pubspec.yaml index 45737a26..96e746af 100644 --- a/mp_chart/example/pubspec.yaml +++ b/mp_chart/example/pubspec.yaml @@ -11,20 +11,20 @@ description: flutter charts just like MPAndroidChart # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.2 +version: 1.0.3 environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' dependencies: - url_launcher: ^6.1.2 - permission_handler: ^9.2.0 + url_launcher: ^6.1.6 + permission_handler: ^10.1.0 flutter: sdk: flutter - mp_chart: ^0.3.3 + mp_chart: ^1.0.0 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^1.0.4 + cupertino_icons: ^1.0.5 intl: ^0.17.0 dev_dependencies: diff --git a/mp_chart/pubspec.yaml b/mp_chart/pubspec.yaml index 83743b7b..1fb593b3 100644 --- a/mp_chart/pubspec.yaml +++ b/mp_chart/pubspec.yaml @@ -1,17 +1,16 @@ name: mp_chart description: A Flutter chart package just like AndroidMPChart, apply easy to use chart for Flutter. -version: 0.3.3 -author: SunPointed<410338643@qq.com> +version: 1.0.0 homepage: https://github.com/SunPointed/MPFlutterChart environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' dependencies: intl: ^0.17.0 - path_provider: ^2.0.10 + path_provider: ^2.0.11 screenshot: ^1.2.3 - path_drawing: ^1.0.0 + path_drawing: ^1.0.1 image_gallery_saver: ^1.7.1 optimized_gesture_detector: git: From f392a8bcff95c9b980676a76c28921c7c0917b7c Mon Sep 17 00:00:00 2001 From: Absar Date: Mon, 13 Mar 2023 13:51:41 +0100 Subject: [PATCH 17/29] Upgrade dependencies path_provider, screenshot, url_launcher, permission_handler --- mp_chart/CHANGELOG.md | 2 ++ mp_chart/example/pubspec.yaml | 6 +++--- mp_chart/pubspec.yaml | 6 +++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/mp_chart/CHANGELOG.md b/mp_chart/CHANGELOG.md index 7c881658..3e6789f3 100644 --- a/mp_chart/CHANGELOG.md +++ b/mp_chart/CHANGELOG.md @@ -1,3 +1,5 @@ +## 1.1.0 2023-03-13 +* Upgrade dependencies path_provider, screenshot, url_launcher, permission_handler ## 1.0.0 2022-10-16 * Flutter 3.3 fixes * Upgrade dependencies path_provider, path_drawing, optimized_gesture_detector diff --git a/mp_chart/example/pubspec.yaml b/mp_chart/example/pubspec.yaml index 96e746af..274dd788 100644 --- a/mp_chart/example/pubspec.yaml +++ b/mp_chart/example/pubspec.yaml @@ -17,11 +17,11 @@ environment: sdk: '>=2.17.0 <3.0.0' dependencies: - url_launcher: ^6.1.6 - permission_handler: ^10.1.0 + url_launcher: ^6.1.10 + permission_handler: ^10.2.0 flutter: sdk: flutter - mp_chart: ^1.0.0 + mp_chart: ^1.1.0 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.5 diff --git a/mp_chart/pubspec.yaml b/mp_chart/pubspec.yaml index 1fb593b3..9bbcccc1 100644 --- a/mp_chart/pubspec.yaml +++ b/mp_chart/pubspec.yaml @@ -1,6 +1,6 @@ name: mp_chart description: A Flutter chart package just like AndroidMPChart, apply easy to use chart for Flutter. -version: 1.0.0 +version: 1.1.0 homepage: https://github.com/SunPointed/MPFlutterChart environment: @@ -8,8 +8,8 @@ environment: dependencies: intl: ^0.17.0 - path_provider: ^2.0.11 - screenshot: ^1.2.3 + path_provider: ^2.0.13 + screenshot: ^1.3.0 path_drawing: ^1.0.1 image_gallery_saver: ^1.7.1 optimized_gesture_detector: From 703ab4816bd484b30e0376cb994abb12a00f2fe3 Mon Sep 17 00:00:00 2001 From: Absar Date: Mon, 13 Mar 2023 17:24:05 +0100 Subject: [PATCH 18/29] Disable image saver(image_gallery_saver) for now, as it's using a very old kotlin-gradle-plugin --- mp_chart/CHANGELOG.md | 2 ++ mp_chart/example/pubspec.yaml | 2 +- mp_chart/lib/mp/chart/chart.dart | 16 +++++++++------- mp_chart/pubspec.yaml | 4 ++-- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/mp_chart/CHANGELOG.md b/mp_chart/CHANGELOG.md index 3e6789f3..54de9263 100644 --- a/mp_chart/CHANGELOG.md +++ b/mp_chart/CHANGELOG.md @@ -1,3 +1,5 @@ +## 1.2.0 2023-03-13 +* Disable image saver(image_gallery_saver) for now, as it's using a very old kotlin-gradle-plugin ## 1.1.0 2023-03-13 * Upgrade dependencies path_provider, screenshot, url_launcher, permission_handler ## 1.0.0 2022-10-16 diff --git a/mp_chart/example/pubspec.yaml b/mp_chart/example/pubspec.yaml index 274dd788..cc6c31e4 100644 --- a/mp_chart/example/pubspec.yaml +++ b/mp_chart/example/pubspec.yaml @@ -21,7 +21,7 @@ dependencies: permission_handler: ^10.2.0 flutter: sdk: flutter - mp_chart: ^1.1.0 + mp_chart: ^1.2.0 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.5 diff --git a/mp_chart/lib/mp/chart/chart.dart b/mp_chart/lib/mp/chart/chart.dart index 7de9e6a8..9ccb78fb 100644 --- a/mp_chart/lib/mp/chart/chart.dart +++ b/mp_chart/lib/mp/chart/chart.dart @@ -1,5 +1,5 @@ import 'package:flutter/widgets.dart'; -import 'package:image_gallery_saver/image_gallery_saver.dart'; +// import 'package:image_gallery_saver/image_gallery_saver.dart'; import 'package:mp_chart/mp/controller/controller.dart'; import 'package:optimized_gesture_detector/details.dart'; import 'package:optimized_gesture_detector/optimized_gesture_detector.dart'; @@ -32,12 +32,14 @@ abstract class ChartState extends State { if (isCapturing) return; isCapturing = true; - _screenshotController.capture(pixelRatio: 3.0).then((imgFile) { - ImageGallerySaver.saveImage(imgFile!); - isCapturing = false; - }).catchError((error) { - isCapturing = false; - }); + // (TODO) once image_gallery_saver is updated for kotlin-gradle-plugin revert the comment and remove "isCapturing = false" from the end + // _screenshotController.capture(pixelRatio: 3.0).then((imgFile) { + // ImageGallerySaver.saveImage(imgFile!); + // isCapturing = false; + // }).catchError((error) { + // isCapturing = false; + // }); + isCapturing = false; } @override diff --git a/mp_chart/pubspec.yaml b/mp_chart/pubspec.yaml index 9bbcccc1..3b2d7c7c 100644 --- a/mp_chart/pubspec.yaml +++ b/mp_chart/pubspec.yaml @@ -1,6 +1,6 @@ name: mp_chart description: A Flutter chart package just like AndroidMPChart, apply easy to use chart for Flutter. -version: 1.1.0 +version: 1.2.0 homepage: https://github.com/SunPointed/MPFlutterChart environment: @@ -11,7 +11,7 @@ dependencies: path_provider: ^2.0.13 screenshot: ^1.3.0 path_drawing: ^1.0.1 - image_gallery_saver: ^1.7.1 +# image_gallery_saver: ^1.7.1 optimized_gesture_detector: git: url: https://github.com/absar/OptimizedGestureDetector.git From 6f3f86fa7ad87803f730619917405169738e6612 Mon Sep 17 00:00:00 2001 From: Absar Date: Fri, 17 Mar 2023 16:31:45 +0100 Subject: [PATCH 19/29] * Flutter 3.7 updates * Null safety cleanups. * Upgrade dependency vector_math --- mp_chart/CHANGELOG.md | 4 + mp_chart/example/lib/demo/action_state.dart | 2 +- .../example/lib/demo/even_more/dynamic.dart | 6 +- mp_chart/example/pubspec.yaml | 7 +- mp_chart/lib/mp/core/adapter_android_mp.dart | 3 - mp_chart/lib/mp/core/axis/axis_base.dart | 14 +-- mp_chart/lib/mp/core/data/chart_data.dart | 34 +++---- mp_chart/lib/mp/core/data/combined_data.dart | 2 +- .../lib/mp/core/data_set/base_data_set.dart | 5 +- mp_chart/lib/mp/core/data_set/data_set.dart | 5 +- .../lib/mp/core/data_set/line_data_set.dart | 5 +- .../mp/core/data_set/line_radar_data_set.dart | 17 +--- .../mp/core/highlight/bar_highlighter.dart | 6 +- .../mp/core/highlight/chart_hightlighter.dart | 2 +- mp_chart/lib/mp/core/image_loader.dart | 1 - mp_chart/lib/mp/core/legend/legend.dart | 4 - mp_chart/lib/mp/core/poolable/size.dart | 2 +- ...r_line_scatter_candle_bubble_renderer.dart | 2 +- .../lib/mp/core/render/legend_renderer.dart | 92 ++++++++++--------- .../mp/core/render/line_chart_renderer.dart | 31 +++---- .../mp/core/render/pie_chart_renderer.dart | 75 ++++++++------- .../lib/mp/core/render/x_axis_renderer.dart | 2 +- .../x_axis_renderer_horizontal_bar_chart.dart | 2 +- .../render/x_axis_renderer_radar_chart.dart | 2 +- mp_chart/lib/mp/core/utils/screen_utils.dart | 2 +- .../core/value_formatter/value_formatter.dart | 2 +- mp_chart/lib/mp/core/view_port.dart | 6 +- .../mp/painter/bar_line_chart_painter.dart | 2 - .../mp/painter/combined_chart_painter.dart | 5 +- .../painter/horizontal_bar_chart_painter.dart | 2 - mp_chart/lib/mp/painter/painter.dart | 31 +++---- .../lib/mp/painter/pie_chart_painter.dart | 22 ++--- mp_chart/pubspec.yaml | 4 +- 33 files changed, 190 insertions(+), 211 deletions(-) diff --git a/mp_chart/CHANGELOG.md b/mp_chart/CHANGELOG.md index 54de9263..62ecee7c 100644 --- a/mp_chart/CHANGELOG.md +++ b/mp_chart/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.2.1 2023-03-17 +* Flutter 3.7 updates +* Null safety cleanups. +* Upgrade dependency vector_math ## 1.2.0 2023-03-13 * Disable image saver(image_gallery_saver) for now, as it's using a very old kotlin-gradle-plugin ## 1.1.0 2023-03-13 diff --git a/mp_chart/example/lib/demo/action_state.dart b/mp_chart/example/lib/demo/action_state.dart index 7b297e73..cc37ab7f 100644 --- a/mp_chart/example/lib/demo/action_state.dart +++ b/mp_chart/example/lib/demo/action_state.dart @@ -582,7 +582,7 @@ abstract class CombinedActionState int rnd = _getRandom(controller.data!.getDataSetCount().toDouble(), 0) .toInt(); controller.data! - .removeDataSet1(controller.data!.getDataSetByIndex(rnd)!); + .removeDataSet1(controller.data!.getDataSetByIndex(rnd)); controller.data!.notifyDataChanged(); controller.state!.setStateIfNotDispose(); } diff --git a/mp_chart/example/lib/demo/even_more/dynamic.dart b/mp_chart/example/lib/demo/even_more/dynamic.dart index a7209fae..747f6764 100644 --- a/mp_chart/example/lib/demo/even_more/dynamic.dart +++ b/mp_chart/example/lib/demo/even_more/dynamic.dart @@ -183,8 +183,8 @@ class EvenMoreDynamicState extends ActionState if (data != null) { ILineDataSet? set = data.getDataSetByIndex(0); if (set != null) { - Entry e = set.getEntryForXValue2( - (set.getEntryCount() - 1).toDouble(), double.nan)!; + Entry? e = set.getEntryForXValue2( + (set.getEntryCount() - 1).toDouble(), double.nan); data.removeEntry1(e, 0); } } @@ -218,7 +218,7 @@ class EvenMoreDynamicState extends ActionState void _removeDataSet() { LineData? data = controller!.data; if (data != null) { - data.removeDataSet1(data.getDataSetByIndex(data.getDataSetCount() - 1)!); + data.removeDataSet1(data.getDataSetByIndex(data.getDataSetCount() - 1)); } } } diff --git a/mp_chart/example/pubspec.yaml b/mp_chart/example/pubspec.yaml index cc6c31e4..885aee6c 100644 --- a/mp_chart/example/pubspec.yaml +++ b/mp_chart/example/pubspec.yaml @@ -21,7 +21,8 @@ dependencies: permission_handler: ^10.2.0 flutter: sdk: flutter - mp_chart: ^1.2.0 + mp_chart: + path: ../ # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.5 @@ -31,10 +32,6 @@ dev_dependencies: flutter_test: sdk: flutter -dependency_overrides: - mp_chart: - path : ../ - # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/mp_chart/lib/mp/core/adapter_android_mp.dart b/mp_chart/lib/mp/core/adapter_android_mp.dart index 1f57bd85..5d7a6097 100644 --- a/mp_chart/lib/mp/core/adapter_android_mp.dart +++ b/mp_chart/lib/mp/core/adapter_android_mp.dart @@ -16,9 +16,6 @@ class DashPathEffect { _dashOffset = DashOffset.absolute(value); Path convert2DashPath(Path path) { - if (_circularIntervalList == null) { - return path; - } return dashPath(path, dashArray: _circularIntervalList, dashOffset: _dashOffset); } diff --git a/mp_chart/lib/mp/core/axis/axis_base.dart b/mp_chart/lib/mp/core/axis/axis_base.dart index d04915b3..54d93780 100644 --- a/mp_chart/lib/mp/core/axis/axis_base.dart +++ b/mp_chart/lib/mp/core/axis/axis_base.dart @@ -301,7 +301,7 @@ abstract class AxisBase extends ComponentBase { for (int i = 0; i < _entries.length; i++) { String text = getFormattedLabel(i); - if (text != null && longest.length < text.length) longest = text; + if (longest.length < text.length) longest = text; } return longest; @@ -311,7 +311,7 @@ abstract class AxisBase extends ComponentBase { if (index < 0 || index >= _entries.length) return ""; else - return getValueFormatter()!.getAxisLabel(_entries[index], this); + return getValueFormatter().getAxisLabel(_entries[index], this); } /// Sets the formatter to be used for formatting the axis labels. If no formatter is set, the @@ -322,23 +322,20 @@ abstract class AxisBase extends ComponentBase { /// /// @param f void setValueFormatter(ValueFormatter f) { - if (f == null) - _axisValueFormatter = DefaultAxisValueFormatter(_decimals); - else - _axisValueFormatter = f; + _axisValueFormatter = f; } /// Returns the formatter used for formatting the axis labels. /// /// @return - ValueFormatter? getValueFormatter() { + ValueFormatter getValueFormatter() { if (_axisValueFormatter == null || (_axisValueFormatter is DefaultAxisValueFormatter && (_axisValueFormatter as DefaultAxisValueFormatter).digits != _decimals)) _axisValueFormatter = DefaultAxisValueFormatter(_decimals); - return _axisValueFormatter; + return _axisValueFormatter!; } /// Enables the grid line to be drawn in dashed mode, e.g. like this @@ -381,7 +378,6 @@ abstract class AxisBase extends ComponentBase { /// @param spaceLength the length of space in between the pieces /// @param phase offset, in degrees (normally, use 0) void enableAxisLineDashedLine( - double lineLength, double spaceLength, double phase) { _axisLineDashPathEffect = DashPathEffect(lineLength, spaceLength, phase); } diff --git a/mp_chart/lib/mp/core/data/chart_data.dart b/mp_chart/lib/mp/core/data/chart_data.dart index a48af019..ac63f4e2 100644 --- a/mp_chart/lib/mp/core/data/chart_data.dart +++ b/mp_chart/lib/mp/core/data/chart_data.dart @@ -58,6 +58,7 @@ class ChartData> { /// @param fromX the x-value to start the calculation from /// @param toX the x-value to which the calculation should be performed void calcMinMaxY(double fromX, double toX) { + if (_dataSets == null) return; for (T set in _dataSets!) { set.calcMinMaxY(fromX, toX); } @@ -234,6 +235,7 @@ class ChartData> { /// /// @return List getDataSetLabels() { + if (_dataSets == null) return ['']; List types = []..length = (_dataSets!.length); for (int i = 0; i < _dataSets!.length; i++) { @@ -248,7 +250,9 @@ class ChartData> { /// @param highlight /// @return the entry that is highlighted Entry? getEntryForHighlight(Highlight? highlight) { - if (highlight == null || highlight.dataSetIndex! >= _dataSets!.length) + if (highlight == null || + _dataSets == null || + highlight.dataSetIndex! >= _dataSets!.length) return null; else { return _dataSets![highlight.dataSetIndex!] @@ -264,6 +268,7 @@ class ChartData> { /// @param ignorecase /// @return T? getDataSetByLabel(String label, bool ignorecase) { + if (_dataSets == null) return null; int index = getDataSetIndexByLabel(_dataSets, label, ignorecase); if (index < 0 || index >= _dataSets!.length) @@ -283,10 +288,8 @@ class ChartData> { /// /// @param d void addDataSet(T d) { - if (d == null) return; - calcMinMax3(d); - + if (_dataSets == null) _dataSets = [d]; _dataSets!.add(d); } @@ -295,8 +298,9 @@ class ChartData> { /// if no DataSet could be removed. /// /// @param d - bool removeDataSet1(T d) { + bool removeDataSet1(T? d) { if (d == null) return false; + if (_dataSets == null) return false; bool removed = _dataSets!.remove(d); @@ -314,6 +318,7 @@ class ChartData> { /// /// @param index bool removeDataSet2(int index) { + if (_dataSets == null) return false; if (index >= _dataSets!.length || index < 0) return false; T set = _dataSets![index]; @@ -398,11 +403,11 @@ class ChartData> { /// /// @param e /// @param dataSetIndex - bool removeEntry1(Entry e, int dataSetIndex) { - // entry null, outofbounds + bool removeEntry1(Entry? e, int dataSetIndex) { + // entry null, out of bounds if (e == null || dataSetIndex >= _dataSets!.length) return false; - IDataSet set = _dataSets![dataSetIndex]; + IDataSet? set = _dataSets?[dataSetIndex]; if (set != null) { // remove the entry from the dataset @@ -441,8 +446,7 @@ class ChartData> { /// @param e /// @return T? getDataSetForEntry(Entry e) { - if (e == null) return null; - + if (_dataSets == null) return null; for (int i = 0; i < _dataSets!.length; i++) { T set = _dataSets![i]; @@ -516,12 +520,9 @@ class ChartData> { /// /// @param f void setValueFormatter(ValueFormatter f) { - if (f == null) - return; - else { - for (IDataSet set in _dataSets!) { - set.setValueFormatter(f); - } + if (_dataSets == null) return; + for (IDataSet set in _dataSets!) { + set.setValueFormatter(f); } } @@ -610,6 +611,7 @@ class ChartData> { /// @param dataSet /// @return bool contains(T dataSet) { + if (_dataSets == null) return false; for (T set in _dataSets!) { if (set == dataSet) return true; } diff --git a/mp_chart/lib/mp/core/data/combined_data.dart b/mp_chart/lib/mp/core/data/combined_data.dart index 85752d0a..5fef28dd 100644 --- a/mp_chart/lib/mp/core/data/combined_data.dart +++ b/mp_chart/lib/mp/core/data/combined_data.dart @@ -184,7 +184,7 @@ class CombinedData extends BarLineScatterCandleBubbleData< } @override - bool removeDataSet1(IBarLineScatterCandleBubbleDataSet d) { + bool removeDataSet1(IBarLineScatterCandleBubbleDataSet? d) { List datas = getAllData(); bool success = false; for (ChartData? data in datas) { diff --git a/mp_chart/lib/mp/core/data_set/base_data_set.dart b/mp_chart/lib/mp/core/data_set/base_data_set.dart index 9c69d011..f73af239 100644 --- a/mp_chart/lib/mp/core/data_set/base_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/base_data_set.dart @@ -225,10 +225,7 @@ abstract class BaseDataSet implements IDataSet { @override void setValueFormatter(ValueFormatter f) { - if (f == null) - return; - else - _valueFormatter = f; + _valueFormatter = f; } @override diff --git a/mp_chart/lib/mp/core/data_set/data_set.dart b/mp_chart/lib/mp/core/data_set/data_set.dart index e3e16e4e..20c566a1 100644 --- a/mp_chart/lib/mp/core/data_set/data_set.dart +++ b/mp_chart/lib/mp/core/data_set/data_set.dart @@ -122,9 +122,8 @@ abstract class DataSet extends BaseDataSet { /// @return String toSimpleString() { StringBuffer buffer = StringBuffer(); - buffer.write("DataSet, label: " + - (getLabel() == null ? "" : getLabel()) + - ", entries:${_values!.length}\n"); + buffer.write( + "DataSet, label: " + getLabel() + ", entries:${_values!.length}\n"); return buffer.toString(); } diff --git a/mp_chart/lib/mp/core/data_set/line_data_set.dart b/mp_chart/lib/mp/core/data_set/line_data_set.dart index 8bad8b49..68a8cb0e 100644 --- a/mp_chart/lib/mp/core/data_set/line_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/line_data_set.dart @@ -280,10 +280,7 @@ class LineDataSet extends LineRadarDataSet implements ILineDataSet { /// /// @param formatter void setFillFormatter(IFillFormatter formatter) { - if (formatter == null) - _fillFormatter = DefaultFillFormatter(); - else - _fillFormatter = formatter; + _fillFormatter = formatter; } @override diff --git a/mp_chart/lib/mp/core/data_set/line_radar_data_set.dart b/mp_chart/lib/mp/core/data_set/line_radar_data_set.dart index 7e98d9ec..ae460292 100644 --- a/mp_chart/lib/mp/core/data_set/line_radar_data_set.dart +++ b/mp_chart/lib/mp/core/data_set/line_radar_data_set.dart @@ -7,8 +7,7 @@ import 'package:mp_chart/mp/core/entry/entry.dart'; import 'package:mp_chart/mp/core/utils/utils.dart'; abstract class LineRadarDataSet - extends LineScatterCandleRadarDataSet - implements ILineRadarDataSet { + extends LineScatterCandleRadarDataSet implements ILineRadarDataSet { /// the color that is used for filling the line surface Color _fillColor = Color.fromARGB(255, 140, 234, 255); @@ -40,18 +39,13 @@ abstract class LineRadarDataSet /// /// @param color void setFillColor(Color color) { - if(color != null) { - _fillColor = color; -// mFillDrawable = null; + _fillColor = color; setGradientFilled(false); - } } void setGradientColor(Color start, Color end) { - if(start != null && end != null) { - super.setGradientColor(start, end); - setGradientFilled(true); - } + super.setGradientColor(start, end); + setGradientFilled(true); } // @override @@ -130,7 +124,6 @@ abstract class LineRadarDataSet @override String toString() { - return '${super - .toString()}\nLineRadarDataSet{_fillColor: $_fillColor,\n _fillAlpha: $_fillAlpha,\n _lineWidth: $_lineWidth,\n _drawFilled: $_drawFilled}'; + return '${super.toString()}\nLineRadarDataSet{_fillColor: $_fillColor,\n _fillAlpha: $_fillAlpha,\n _lineWidth: $_lineWidth,\n _drawFilled: $_drawFilled}'; } } diff --git a/mp_chart/lib/mp/core/highlight/bar_highlighter.dart b/mp_chart/lib/mp/core/highlight/bar_highlighter.dart index 84973a1f..d3ece620 100644 --- a/mp_chart/lib/mp/core/highlight/bar_highlighter.dart +++ b/mp_chart/lib/mp/core/highlight/bar_highlighter.dart @@ -53,9 +53,9 @@ class BarHighlighter extends ChartHighlighter { if (entry.yVals == null) { return high; } else { - List ranges = entry.ranges!; + List? ranges = entry.ranges; - if (ranges.length > 0) { + if (ranges != null && ranges.length > 0) { int stackIndex = getClosestStackIndex(ranges, yVal); MPPointD pixels = provider! @@ -86,7 +86,7 @@ class BarHighlighter extends ChartHighlighter { /// @param ranges /// @param value /// @return - int getClosestStackIndex(List ranges, double? value) { + int getClosestStackIndex(List? ranges, double? value) { if (ranges == null || ranges.length == 0) return 0; int stackIndex = 0; for (Range? range in ranges) { diff --git a/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart b/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart index 00b97d95..0d283e4a 100644 --- a/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart +++ b/mp_chart/lib/mp/core/highlight/chart_hightlighter.dart @@ -194,7 +194,7 @@ class ChartHighlighter for (int i = 0; i < closestValues.length; i++) { Highlight high = closestValues[i]; - if (axis == null || high.axis == axis) { + if (high.axis == axis) { double cDistance = getDistance(x, y, high.xPx!, high.yPx!); if (cDistance < distance!) { closest = high; diff --git a/mp_chart/lib/mp/core/image_loader.dart b/mp_chart/lib/mp/core/image_loader.dart index de7f5a36..ed6a0ab2 100644 --- a/mp_chart/lib/mp/core/image_loader.dart +++ b/mp_chart/lib/mp/core/image_loader.dart @@ -1,5 +1,4 @@ import 'dart:async'; -import 'dart:typed_data'; import 'dart:ui'; import 'package:flutter/services.dart'; diff --git a/mp_chart/lib/mp/core/legend/legend.dart b/mp_chart/lib/mp/core/legend/legend.dart index 5f10a1b7..affafe31 100644 --- a/mp_chart/lib/mp/core/legend/legend.dart +++ b/mp_chart/lib/mp/core/legend/legend.dart @@ -95,10 +95,6 @@ class Legend extends ComponentBase { this.textSize = Utils.convertDpToPixel(10)!; this.xOffset = Utils.convertDpToPixel(5); this.yOffset = Utils.convertDpToPixel(3); - if (entries == null) { - throw new Exception("entries array is NULL"); - } - this._entries = entries; } diff --git a/mp_chart/lib/mp/core/poolable/size.dart b/mp_chart/lib/mp/core/poolable/size.dart index f46e1e94..ed47bbe2 100644 --- a/mp_chart/lib/mp/core/poolable/size.dart +++ b/mp_chart/lib/mp/core/poolable/size.dart @@ -45,7 +45,7 @@ class FSize extends Poolable { FSize(this._width, this._height); - bool equals(final Object obj) { + bool equals(final Object? obj) { if (obj == null) { return false; } diff --git a/mp_chart/lib/mp/core/render/bar_line_scatter_candle_bubble_renderer.dart b/mp_chart/lib/mp/core/render/bar_line_scatter_candle_bubble_renderer.dart index 2bdb60d5..4bad266c 100644 --- a/mp_chart/lib/mp/core/render/bar_line_scatter_candle_bubble_renderer.dart +++ b/mp_chart/lib/mp/core/render/bar_line_scatter_candle_bubble_renderer.dart @@ -43,7 +43,7 @@ abstract class BarLineScatterCandleBubbleRenderer extends DataRenderer { double entryIndex = set.getEntryIndex2(e).toDouble(); - if (e == null || entryIndex >= set.getEntryCount() * animator!.getPhaseX()) { + if (entryIndex >= set.getEntryCount() * animator!.getPhaseX()) { return false; } else { return true; diff --git a/mp_chart/lib/mp/core/render/legend_renderer.dart b/mp_chart/lib/mp/core/render/legend_renderer.dart index eb4623ed..23cd3866 100644 --- a/mp_chart/lib/mp/core/render/legend_renderer.dart +++ b/mp_chart/lib/mp/core/render/legend_renderer.dart @@ -89,16 +89,15 @@ class LegendRenderer extends Renderer { clrs[j])); } - if (bds.getLabel() != null) { - // add the legend description label - _computedEntries.add(LegendEntry( - dataSet.getLabel(), - LegendForm.NONE, - double.nan, - double.nan, - null, - ColorUtils.COLOR_NONE)); - } + // add the legend description label + _computedEntries.add(LegendEntry( + dataSet.getLabel(), + LegendForm.NONE, + double.nan, + double.nan, + null, + ColorUtils.COLOR_NONE, + )); } else if (dataSet is IPieDataSet) { IPieDataSet pds = dataSet; @@ -112,16 +111,15 @@ class LegendRenderer extends Renderer { clrs[j])); } - if (pds.getLabel() != null) { - // add the legend description label - _computedEntries.add(LegendEntry( - dataSet.getLabel(), - LegendForm.NONE, - double.nan, - double.nan, - null, - ColorUtils.COLOR_NONE)); - } + // add the legend description label + _computedEntries.add(LegendEntry( + dataSet.getLabel(), + LegendForm.NONE, + double.nan, + double.nan, + null, + ColorUtils.COLOR_NONE, + )); } else if (dataSet is ICandleDataSet && dataSet.getDecreasingColor() != ColorUtils.COLOR_NONE) { Color decreasingColor = dataSet.getDecreasingColor(); @@ -183,7 +181,8 @@ class LegendRenderer extends Renderer { TextPainter getLabelPainter() { var fontFamily = _legend!.typeface?.fontFamily; var fontWeight = _legend!.typeface?.fontWeight; - return PainterUtils.create(_legendLabelPaint, null, _legend!.textColor, _legend!.textSize, + return PainterUtils.create( + _legendLabelPaint, null, _legend!.textColor, _legend!.textSize, fontFamily: fontFamily, fontWeight: fontWeight); } @@ -200,10 +199,11 @@ class LegendRenderer extends Renderer { List entries = _legend!.entries; - double? formToTextSpace = Utils.convertDpToPixel(_legend!.formToTextSpace); + // double? formToTextSpace = Utils.convertDpToPixel(_legend!.formToTextSpace); double? xEntrySpace = Utils.convertDpToPixel(_legend!.xEntrySpace); LegendOrientation orientation = _legend!.orientation; - LegendHorizontalAlignment horizontalAlignment = _legend!.horizontalAlignment; + LegendHorizontalAlignment horizontalAlignment = + _legend!.horizontalAlignment; LegendVerticalAlignment verticalAlignment = _legend!.verticalAlignment; LegendDirection direction = _legend!.direction; double? defaultFormSize = Utils.convertDpToPixel(_legend!.formSize); @@ -282,9 +282,10 @@ class LegendRenderer extends Renderer { break; case LegendVerticalAlignment.CENTER: - posY = (viewPortHandler!.getChartHeight() - _legend!.neededHeight) / - 2 + - yoffset!; + posY = + (viewPortHandler!.getChartHeight() - _legend!.neededHeight) / + 2 + + yoffset!; break; } @@ -306,29 +307,33 @@ class LegendRenderer extends Renderer { if (posX == originPosX && horizontalAlignment == LegendHorizontalAlignment.CENTER && lineIndex < calculatedLineSizes.length) { - posX = posX! + (direction == LegendDirection.RIGHT_TO_LEFT - ? calculatedLineSizes[lineIndex]!.width - : -calculatedLineSizes[lineIndex]!.width) / - 2; + posX = posX! + + (direction == LegendDirection.RIGHT_TO_LEFT + ? calculatedLineSizes[lineIndex]!.width + : -calculatedLineSizes[lineIndex]!.width) / + 2; lineIndex++; } bool isStacked = e.label == null; // grouped forms have null labels if (drawingForm) { - if (direction == LegendDirection.RIGHT_TO_LEFT) posX = posX! - formSize!; + if (direction == LegendDirection.RIGHT_TO_LEFT) + posX = posX! - formSize!; drawForm(c, posX, posY! + formYOffset, e, _legend); - if (direction == LegendDirection.LEFT_TO_RIGHT) posX = posX! + formSize!; + if (direction == LegendDirection.LEFT_TO_RIGHT) + posX = posX! + formSize!; } if (!isStacked) { - if (drawingForm){ + if (drawingForm) { posX = posX! + direction.index; - posX == LegendDirection.RIGHT_TO_LEFT - ? -formToTextSpace! - : formToTextSpace!; + // Commented as it does do anything + // posX == LegendDirection.RIGHT_TO_LEFT + // ? -formToTextSpace! + // : formToTextSpace!; } if (direction == LegendDirection.RIGHT_TO_LEFT) posX = posX! - calculatedLabelSizes[i]!.width; @@ -343,9 +348,8 @@ class LegendRenderer extends Renderer { : xEntrySpace!; } else posX = posX! + direction.index; - posX == LegendDirection.RIGHT_TO_LEFT - ? -stackSpace! - : stackSpace!; + // Commented as it does do anything + // posX == LegendDirection.RIGHT_TO_LEFT ? -stackSpace! : stackSpace!; } break; @@ -401,13 +405,11 @@ class LegendRenderer extends Renderer { } if (e.label != null) { - if (drawingForm && !wasStacked){ + if (drawingForm && !wasStacked) { posX = posX! + direction.index; - posX == LegendDirection.LEFT_TO_RIGHT - ? formToTextSpace! - : -formToTextSpace!; - } - else if (wasStacked) posX = originPosX; + // Commented as it does do anything + // posX == LegendDirection.LEFT_TO_RIGHT ? formToTextSpace! : -formToTextSpace!; + } else if (wasStacked) posX = originPosX; if (direction == LegendDirection.RIGHT_TO_LEFT) posX = posX! - Utils.calcTextWidth(_legendLabelPaint!, e.label); diff --git a/mp_chart/lib/mp/core/render/line_chart_renderer.dart b/mp_chart/lib/mp/core/render/line_chart_renderer.dart index a69d4f44..f37a56d4 100644 --- a/mp_chart/lib/mp/core/render/line_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/line_chart_renderer.dart @@ -1,5 +1,4 @@ import 'dart:math'; -import 'dart:typed_data'; import 'dart:ui'; import 'package:mp_chart/mp/core/adapter_android_mp.dart'; @@ -128,7 +127,9 @@ class LineChartRenderer extends LineRadarRenderer { list.add(cur.x); list.add(cur.y! * phaseY); - for (int j = xBounds!.min! + 1; j <= xBounds!.range! + xBounds!.min!; j++) { + for (int j = xBounds!.min! + 1; + j <= xBounds!.range! + xBounds!.min!; + j++) { prev = cur; cur = dataSet.getEntryForIndex(j)!; @@ -167,8 +168,8 @@ class LineChartRenderer extends LineRadarRenderer { _cubicPath.cubicTo(list[i]!, list[i + 1]!, list[i + 2]!, list[i + 3]!, list[i + 4]!, list[i + 5]!); if (dataSet.isDrawFilledEnabled()) { - _cubicFillPath.cubicTo(list[i]!, list[i + 1]!, list[i + 2]!, list[i + 3]!, - list[i + 4]!, list[i + 5]!); + _cubicFillPath.cubicTo(list[i]!, list[i + 1]!, list[i + 2]!, + list[i + 3]!, list[i + 4]!, list[i + 5]!); } i += 6; } @@ -222,7 +223,9 @@ class LineChartRenderer extends LineRadarRenderer { list.add(cur.x); list.add(cur.y! * phaseY); - for (int j = xBounds!.min! + 1; j <= xBounds!.range! + xBounds!.min!; j++) { + for (int j = xBounds!.min! + 1; + j <= xBounds!.range! + xBounds!.min!; + j++) { prevPrev = prev; prev = cur; cur = nextIndex == j ? next : dataSet.getEntryForIndex(j); @@ -268,8 +271,8 @@ class LineChartRenderer extends LineRadarRenderer { _cubicPath.cubicTo(list[i]!, list[i + 1]!, list[i + 2]!, list[i + 3]!, list[i + 4]!, list[i + 5]!); if (dataSet.isDrawFilledEnabled()) { - _cubicFillPath.cubicTo(list[i]!, list[i + 1]!, list[i + 2]!, list[i + 3]!, - list[i + 4]!, list[i + 5]!); + _cubicFillPath.cubicTo(list[i]!, list[i + 1]!, list[i + 2]!, + list[i + 3]!, list[i + 4]!, list[i + 5]!); } i += 6; } @@ -407,8 +410,8 @@ class LineChartRenderer extends LineRadarRenderer { if (mLineBuffer.length < max((entryCount) * pointsPerEntryPair, pointsPerEntryPair) * 2) - mLineBuffer = []..length = ( - max((entryCount) * pointsPerEntryPair, pointsPerEntryPair) * 4); + mLineBuffer = []..length = + (max((entryCount) * pointsPerEntryPair, pointsPerEntryPair) * 4); Entry? e1, e2; @@ -642,8 +645,8 @@ class LineChartRenderer extends LineRadarRenderer { valuePaint = PainterUtils.create(valuePaint, valueText, color, textSize, fontFamily: typeFace?.fontFamily, fontWeight: typeFace?.fontWeight); valuePaint!.layout(); - valuePaint!.paint( - c, Offset(x - valuePaint!.width / 2, y - valuePaint!.height)); + valuePaint! + .paint(c, Offset(x - valuePaint!.width / 2, y - valuePaint!.height)); } @override @@ -733,12 +736,6 @@ class LineChartRenderer extends LineRadarRenderer { } } - // ignore: unused_element - Future _loadImage(ByteData data) async { - if (data == null) throw 'Unable to read data'; - return await instantiateImageCodec(data.buffer.asUint8List()); - } - @override void drawHighlighted(Canvas c, List? indices) { LineData? lineData = _provider!.getLineData(); diff --git a/mp_chart/lib/mp/core/render/pie_chart_renderer.dart b/mp_chart/lib/mp/core/render/pie_chart_renderer.dart index c06306f3..fb96544e 100644 --- a/mp_chart/lib/mp/core/render/pie_chart_renderer.dart +++ b/mp_chart/lib/mp/core/render/pie_chart_renderer.dart @@ -51,8 +51,8 @@ class PieChartRenderer extends DataRenderer { // Canvas mBitmapCanvas; - PieChartRenderer( - PieChartPainter chart, Animator? animator, ViewPortHandler? viewPortHandler, + PieChartRenderer(PieChartPainter chart, Animator? animator, + ViewPortHandler? viewPortHandler, {TypeFace? centerTextTypeface, TypeFace? entryLabelTypeface}) : super(animator, viewPortHandler) { _painter = chart; @@ -153,8 +153,10 @@ class PieChartRenderer extends DataRenderer { center.y! + radius * sin((startAngle + sweepAngle) * Utils.FDEG2RAD); // Middle point on the arc - double arcMidPointX = center.x! + radius * cos(angleMiddle * Utils.FDEG2RAD); - double arcMidPointY = center.y! + radius * sin(angleMiddle * Utils.FDEG2RAD); + double arcMidPointX = + center.x! + radius * cos(angleMiddle * Utils.FDEG2RAD); + double arcMidPointY = + center.y! + radius * sin(angleMiddle * Utils.FDEG2RAD); // This is the base of the contained triangle double basePointsDistance = sqrt(pow(arcEndPointX - arcStartPointX, 2) + @@ -185,10 +187,11 @@ class PieChartRenderer extends DataRenderer { if (!dataSet.isAutomaticallyDisableSliceSpacingEnabled()) return dataSet.getSliceSpace(); - double spaceSizeRatio = - dataSet.getSliceSpace()! / viewPortHandler!.getSmallestContentExtension(); - double minValueRatio = - dataSet.getYMin()! / (_painter!.getData() as PieData).getYValueSum() * 2; + double spaceSizeRatio = dataSet.getSliceSpace()! / + viewPortHandler!.getSmallestContentExtension(); + double minValueRatio = dataSet.getYMin()! / + (_painter!.getData() as PieData).getYValueSum() * + 2; double? sliceSpace = spaceSizeRatio > minValueRatio ? 0 : dataSet.getSliceSpace(); @@ -285,8 +288,8 @@ class PieChartRenderer extends DataRenderer { if (sweepAngleOuter >= 360.0 && sweepAngleOuter % 360 <= Utils.FLOAT_EPSILON) { // Android is doing "mod 360" - mPathBuffer.addOval(Rect.fromLTRB(center.x! - radius, center.y! - radius, - center.x! + radius, center.y! + radius)); + mPathBuffer.addOval(Rect.fromLTRB(center.x! - radius, + center.y! - radius, center.x! + radius, center.y! + radius)); } else { if (drawRoundedSlices) { mPathBuffer.arcTo( @@ -364,7 +367,8 @@ class PieChartRenderer extends DataRenderer { startAngleOuter, sweepAngleOuter); mPathBuffer.lineTo( - center.x! + sliceSpaceOffset * cos(angleMiddle * Utils.FDEG2RAD), + center.x! + + sliceSpaceOffset * cos(angleMiddle * Utils.FDEG2RAD), center.y! + sliceSpaceOffset * sin(angleMiddle * Utils.FDEG2RAD)); } @@ -386,10 +390,10 @@ class PieChartRenderer extends DataRenderer { startAngleOuter, sweepAngleOuter); - double arcEndPointX = - center.x! + sliceSpaceOffset * cos(angleMiddle * Utils.FDEG2RAD); - double arcEndPointY = - center.y! + sliceSpaceOffset * sin(angleMiddle * Utils.FDEG2RAD); + double arcEndPointX = center.x! + + sliceSpaceOffset * cos(angleMiddle * Utils.FDEG2RAD); + double arcEndPointY = center.y! + + sliceSpaceOffset * sin(angleMiddle * Utils.FDEG2RAD); mPathBuffer.lineTo(arcEndPointX, arcEndPointY); } else { @@ -578,8 +582,10 @@ class PieChartRenderer extends DataRenderer { _valueLinePaint!..color = dataSet.getColor2(j); } - c.drawLine(Offset(pt0x, pt0y), Offset(pt1x, pt1y), _valueLinePaint!); - c.drawLine(Offset(pt1x, pt1y), Offset(pt2x, pt2y), _valueLinePaint!); + c.drawLine( + Offset(pt0x, pt0y), Offset(pt1x, pt1y), _valueLinePaint!); + c.drawLine( + Offset(pt1x, pt1y), Offset(pt2x, pt2y), _valueLinePaint!); } // draw everything, depending on settings @@ -693,8 +699,8 @@ class PieChartRenderer extends DataRenderer { valuePaint = PainterUtils.create(valuePaint, valueText, color, textSize, fontFamily: typeFace?.fontFamily, fontWeight: typeFace?.fontWeight); valuePaint!.layout(); - valuePaint!.paint( - c, Offset(x - valuePaint!.width / 2, y - valuePaint!.height)); + valuePaint! + .paint(c, Offset(x - valuePaint!.width / 2, y - valuePaint!.height)); } /// Draws an entry label at the specified position. @@ -711,8 +717,10 @@ class PieChartRenderer extends DataRenderer { labelColor ?? ColorUtils.WHITE, labelTextSize ?? Utils.convertDpToPixel(10)); _entryLabelsPaint!.layout(); - _entryLabelsPaint!.paint(c, - Offset(x - _entryLabelsPaint!.width / 2, y - _entryLabelsPaint!.height)); + _entryLabelsPaint!.paint( + c, + Offset( + x - _entryLabelsPaint!.width / 2, y - _entryLabelsPaint!.height)); } @override @@ -787,7 +795,7 @@ class PieChartRenderer extends DataRenderer { void drawCenterText(Canvas c) { String centerText = _painter!.getCenterText(); - if (_painter!.isDrawCenterTextEnabled() && centerText != null) { + if (_painter!.isDrawCenterTextEnabled()) { MPPointF center = _painter!.getCenterCircleBox(); MPPointF offset = _painter!.getCenterTextOffset(); @@ -830,7 +838,9 @@ class PieChartRenderer extends DataRenderer { c.save(); - _centerTextPaint = PainterUtils.create(_centerTextPaint, centerText, + _centerTextPaint = PainterUtils.create( + _centerTextPaint, + centerText, _painter!.centerTextColor ?? ColorUtils.BLACK, _painter!.centerTextSize ?? Utils.convertDpToPixel(12), fontFamily: _painter!.centerTextTypeface?.fontFamily, @@ -883,8 +893,9 @@ class PieChartRenderer extends DataRenderer { if (index >= drawAngles.length) continue; - IPieDataSet? set = - _painter!.getData()!.getDataSetByIndex(indices[i].dataSetIndex) as IPieDataSet?; + IPieDataSet? set = _painter! + .getData()! + .getDataSetByIndex(indices[i].dataSetIndex) as IPieDataSet?; if (set == null || !set.isHighlightEnabled()) continue; @@ -1034,10 +1045,10 @@ class PieChartRenderer extends DataRenderer { if (accountForSliceSpacing) { final double angleMiddle = startAngleOuter + sweepAngleOuter / 2.0; - final double arcEndPointX = - center.x! + sliceSpaceRadius * cos(angleMiddle * Utils.FDEG2RAD); - final double arcEndPointY = - center.y! + sliceSpaceRadius * sin(angleMiddle * Utils.FDEG2RAD); + final double arcEndPointX = center.x! + + sliceSpaceRadius * cos(angleMiddle * Utils.FDEG2RAD); + final double arcEndPointY = center.y! + + sliceSpaceRadius * sin(angleMiddle * Utils.FDEG2RAD); mPathBuffer.lineTo(arcEndPointX, arcEndPointY); } else { @@ -1129,9 +1140,9 @@ class PieChartRenderer extends DataRenderer { /// /// @param color void setTransparentCircleColor(Color color) { - Paint p = transparentCirclePaint!; - p.color = Color.fromARGB(p.color.alpha == null ? 255 : p.color.alpha, - color.red, color.green, color.blue); + Paint? p = transparentCirclePaint; + if (p == null) return; + p.color = Color.fromARGB(p.color.alpha, color.red, color.green, color.blue); } /// Sets the amount of transparency the transparent circle should have 0 = fully transparent, diff --git a/mp_chart/lib/mp/core/render/x_axis_renderer.dart b/mp_chart/lib/mp/core/render/x_axis_renderer.dart index 039e8cdb..df80f004 100644 --- a/mp_chart/lib/mp/core/render/x_axis_renderer.dart +++ b/mp_chart/lib/mp/core/render/x_axis_renderer.dart @@ -203,7 +203,7 @@ class XAxisRenderer extends AxisRenderer { if (viewPortHandler!.isInBoundsX(x)) { String label = _xAxis! - .getValueFormatter()! + .getValueFormatter() .getAxisLabel(_xAxis!.entries[i ~/ 2], _xAxis); if (_xAxis!.avoidFirstLastClipping) { diff --git a/mp_chart/lib/mp/core/render/x_axis_renderer_horizontal_bar_chart.dart b/mp_chart/lib/mp/core/render/x_axis_renderer_horizontal_bar_chart.dart index a1c39a8f..b6cba27b 100644 --- a/mp_chart/lib/mp/core/render/x_axis_renderer_horizontal_bar_chart.dart +++ b/mp_chart/lib/mp/core/render/x_axis_renderer_horizontal_bar_chart.dart @@ -140,7 +140,7 @@ class XAxisRendererHorizontalBarChart extends XAxisRenderer { if (viewPortHandler!.isInBoundsY(y)) { String label = xAxis! - .getValueFormatter()! + .getValueFormatter() .getAxisLabel(xAxis!.entries[i ~/ 2], xAxis); Utils.drawXAxisValueHorizontal(c, label, pos, y, axisLabelPaint!, anchor, labelRotationAngleDegrees, position); diff --git a/mp_chart/lib/mp/core/render/x_axis_renderer_radar_chart.dart b/mp_chart/lib/mp/core/render/x_axis_renderer_radar_chart.dart index 218dcd13..4c1e878e 100644 --- a/mp_chart/lib/mp/core/render/x_axis_renderer_radar_chart.dart +++ b/mp_chart/lib/mp/core/render/x_axis_renderer_radar_chart.dart @@ -41,7 +41,7 @@ class XAxisRendererRadarChart extends XAxisRenderer { i < _painter.getData()!.getMaxEntryCountSet()!.getEntryCount(); i++) { String label = - xAxis!.getValueFormatter()!.getAxisLabel(i.toDouble(), xAxis); + xAxis!.getValueFormatter().getAxisLabel(i.toDouble(), xAxis); double angle = (sliceangle * i + _painter.getRotationAngle()) % 360; diff --git a/mp_chart/lib/mp/core/utils/screen_utils.dart b/mp_chart/lib/mp/core/utils/screen_utils.dart index 72b2dc3e..58b04748 100644 --- a/mp_chart/lib/mp/core/utils/screen_utils.dart +++ b/mp_chart/lib/mp/core/utils/screen_utils.dart @@ -24,7 +24,7 @@ double _designD = 3.0; /// 配置设计稿尺寸 屏幕 宽,高,密度。 /// Configuration design draft size screen width, height, density. -void setDesignWHD(double w, double h, {double density: 3.0}) { +void setDesignWHD(double w, double h, {double density = 3.0}) { _designW = w; _designH = h; _designD = density; diff --git a/mp_chart/lib/mp/core/value_formatter/value_formatter.dart b/mp_chart/lib/mp/core/value_formatter/value_formatter.dart index 633c7307..954b2220 100644 --- a/mp_chart/lib/mp/core/value_formatter/value_formatter.dart +++ b/mp_chart/lib/mp/core/value_formatter/value_formatter.dart @@ -18,7 +18,7 @@ abstract class ValueFormatter { } String getFormattedValue1(double? value) { - return value.toString(); + return value?.toString() ?? ''; } String getAxisLabel(double? value, AxisBase? axis) { diff --git a/mp_chart/lib/mp/core/view_port.dart b/mp_chart/lib/mp/core/view_port.dart index b2daedf3..91660791 100644 --- a/mp_chart/lib/mp/core/view_port.dart +++ b/mp_chart/lib/mp/core/view_port.dart @@ -363,10 +363,8 @@ class ViewPortHandler { double width = 0; double height = 0; - if (content != null) { - width = content.width; - height = content.height; - } + width = content.width; + height = content.height; double maxTransX = -width * (_scaleX - 1); _transX = min(max(curTransX, maxTransX - _transOffsetX!), _transOffsetX!); diff --git a/mp_chart/lib/mp/painter/bar_line_chart_painter.dart b/mp_chart/lib/mp/painter/bar_line_chart_painter.dart index a46d8cf8..42f3cda4 100644 --- a/mp_chart/lib/mp/painter/bar_line_chart_painter.dart +++ b/mp_chart/lib/mp/painter/bar_line_chart_painter.dart @@ -670,8 +670,6 @@ abstract class BarLineChartBasePainter< /// @param e /// @return MPPointF? getPosition(Entry e, AxisDependency axis) { - if (e == null) return null; - mGetPositionBuffer[0] = e.x; mGetPositionBuffer[1] = e.y; diff --git a/mp_chart/lib/mp/painter/combined_chart_painter.dart b/mp_chart/lib/mp/painter/combined_chart_painter.dart index 85bd7379..5e283b81 100644 --- a/mp_chart/lib/mp/painter/combined_chart_painter.dart +++ b/mp_chart/lib/mp/painter/combined_chart_painter.dart @@ -158,7 +158,8 @@ class CombinedChartPainter extends BarLineChartBasePainter DrawOrder.BUBBLE, DrawOrder.LINE, DrawOrder.CANDLE, - DrawOrder.SCATTER]; + DrawOrder.SCATTER + ]; } @override @@ -288,7 +289,7 @@ class CombinedChartPainter extends BarLineChartBasePainter /// /// @param order void setDrawOrder(List order) { - if (order == null || order.length <= 0) return; + if (order.length <= 0) return; _drawOrder = order; } diff --git a/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart b/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart index 125ff511..b47d74cd 100644 --- a/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart +++ b/mp_chart/lib/mp/painter/horizontal_bar_chart_painter.dart @@ -250,8 +250,6 @@ class HorizontalBarChartPainter extends BarChartPainter { /// @return @override MPPointF? getPosition(Entry e, AxisDependency axis) { - if (e == null) return null; - List vals = mGetPositionBuffer; vals[0] = e.y; vals[1] = e.x; diff --git a/mp_chart/lib/mp/painter/painter.dart b/mp_chart/lib/mp/painter/painter.dart index 001b60d5..6427ecaa 100644 --- a/mp_chart/lib/mp/painter/painter.dart +++ b/mp_chart/lib/mp/painter/painter.dart @@ -23,8 +23,7 @@ import 'package:mp_chart/mp/core/value_formatter/value_formatter.dart'; import 'package:mp_chart/mp/core/view_port.dart'; abstract class ChartPainter>?> - extends CustomPainter - implements ChartInterface { + extends CustomPainter implements ChartInterface { /// object that holds all data that was originally set for the chart, before /// it was modified or any filtering algorithms had been applied final T _data; @@ -123,7 +122,8 @@ abstract class ChartPainter>?> bool get highLightPerTapEnabled => _highLightPerTapEnabled; - ChartPainter(T data, + ChartPainter( + T data, Animator? animator, ViewPortHandler? viewPortHandler, double? maxHighlightDistance, @@ -230,8 +230,7 @@ abstract class ChartPainter>?> if (!_isInit) { canvas.drawRect(Rect.fromLTRB(0, 0, size.width, size.height), - Paint() - ..color = _infoBackgroundColor!); + Paint()..color = _infoBackgroundColor!); MPPointF c = getCenter(size); _infoPaint!.layout(); _infoPaint!.paint(canvas, @@ -259,7 +258,9 @@ abstract class ChartPainter>?> double? x, y; // if no position specified, draw on default position if (position == null) { - x = size.width - _viewPortHandler!.offsetRight() - _description!.xOffset!; + x = size.width - + _viewPortHandler!.offsetRight() - + _description!.xOffset!; y = size.height - _viewPortHandler!.offsetBottom() - _description!.yOffset!; @@ -278,9 +279,7 @@ abstract class ChartPainter>?> /// /// @return bool valuesToHighlight() { - var res = _indicesToHighlight == null || - _indicesToHighlight!.length <= 0 || - _indicesToHighlight![0] == null + var res = _indicesToHighlight == null || _indicesToHighlight!.isEmpty ? false : true; return res; @@ -331,8 +330,8 @@ abstract class ChartPainter>?> /// @param y The y-value to highlight. Supply `NaN` for "any" /// @param dataSetIndex The dataset index to search in /// @param callListener Should the listener be called for this change - void highlightValue4(double x, double y, int dataSetIndex, - bool callListener) { + void highlightValue4( + double x, double y, int dataSetIndex, bool callListener) { if (dataSetIndex < 0 || dataSetIndex >= _data!.getDataSetCount()) { highlightValue6(null, callListener); } else { @@ -367,9 +366,7 @@ abstract class ChartPainter>?> high = null; } else { // set the indices to highlight - _indicesToHighlight = [ - high - ]; + _indicesToHighlight = [high]; } } @@ -415,8 +412,8 @@ abstract class ChartPainter>?> Entry? e = _data!.getEntryForHighlight(_indicesToHighlight![i]); int entryIndex = set.getEntryIndex2(e); // make sure entry not null - if (e == null || entryIndex > set.getEntryCount() * _animator!.getPhaseX()) - continue; + if (e == null || + entryIndex > set.getEntryCount() * _animator!.getPhaseX()) continue; List pos = getMarkerPosition(highlight); @@ -437,7 +434,7 @@ abstract class ChartPainter>?> /// @param high /// @return List getMarkerPosition(Highlight high) { - return [high.drawX,high.drawY]; + return [high.drawX, high.drawY]; } @override diff --git a/mp_chart/lib/mp/painter/pie_chart_painter.dart b/mp_chart/lib/mp/painter/pie_chart_painter.dart index 3394bbcd..4ff832eb 100644 --- a/mp_chart/lib/mp/painter/pie_chart_painter.dart +++ b/mp_chart/lib/mp/painter/pie_chart_painter.dart @@ -65,10 +65,10 @@ class PieChartPainter extends PieRadarChartPainter { Rect _circleBox = Rect.zero; /// array that holds the width of each pie-slice in degrees - List _drawAngles = []..length =1; + List _drawAngles = []..length = 1; /// array that holds the absolute angle in degrees of each slice - List _absoluteAngles = []..length =1; + List _absoluteAngles = []..length = 1; /// Hole color Color _holeColor; @@ -76,14 +76,17 @@ class PieChartPainter extends PieRadarChartPainter { MPPointF _centerTextOffset; TypeFace? _centerTextTypeface; + TypeFace? get centerTextTypeface => _centerTextTypeface; /// Center text color final Color? _centerTextColor; + Color? get centerTextColor => _centerTextColor; /// Center text font size final double? _centerTextSize; + double? get centerTextSize => _centerTextSize; TypeFace? _entryLabelTypeface; @@ -268,7 +271,7 @@ class PieChartPainter extends PieRadarChartPainter { center.y!); MPPointF.recycleInstance(center); - return [x,y]; + return [x, y]; } /// calculates the needed angles for the chart slices @@ -336,7 +339,8 @@ class PieChartPainter extends PieRadarChartPainter { // Correct bigger slices by relatively reducing their angles based on the total angle needed to subtract // This requires that `entryCount * _minAngleForSlices <= _maxAngle` be true to properly work! for (int i = 0; i < entryCount; i++) { - minAngles[i] = minAngles[i]! - ( (minAngles[i]! - _minAngleForSlices) / diff * offset); + minAngles[i] = minAngles[i]! - + ((minAngles[i]! - _minAngleForSlices) / diff * offset); if (i == 0) { _absoluteAngles[0] = minAngles[0]; } else { @@ -456,9 +460,8 @@ class PieChartPainter extends PieRadarChartPainter { @override double getRequiredLegendOffset() { - // ignore: null_aware_before_operator - var offset = legendRenderer!.legendLabelPaint!.text!.style!.fontSize! * 2.0; - return offset == null ? Utils.convertDpToPixel(9)! : offset; + var offset = legendRenderer?.legendLabelPaint?.text?.style?.fontSize; + return offset == null ? Utils.convertDpToPixel(9)! : offset * 2.0; } @override @@ -468,10 +471,7 @@ class PieChartPainter extends PieRadarChartPainter { @override double getRadius() { - if (_circleBox == null) - return 0; - else - return min(_circleBox.width / 2.0, _circleBox.height / 2.0); + return min(_circleBox.width / 2.0, _circleBox.height / 2.0); } /// returns the circlebox, the boundingbox of the pie-chart slices diff --git a/mp_chart/pubspec.yaml b/mp_chart/pubspec.yaml index 3b2d7c7c..f71d4d6c 100644 --- a/mp_chart/pubspec.yaml +++ b/mp_chart/pubspec.yaml @@ -1,6 +1,6 @@ name: mp_chart description: A Flutter chart package just like AndroidMPChart, apply easy to use chart for Flutter. -version: 1.2.0 +version: 1.2.1 homepage: https://github.com/SunPointed/MPFlutterChart environment: @@ -17,7 +17,7 @@ dependencies: url: https://github.com/absar/OptimizedGestureDetector.git #ref: null-safety path: ./ - vector_math: ^2.1.2 + vector_math: ^2.1.4 flutter: sdk: flutter From 3fa7dcec249013e74c0a615e23ddfb63268c13b2 Mon Sep 17 00:00:00 2001 From: Absar Date: Fri, 17 Mar 2023 17:51:02 +0100 Subject: [PATCH 20/29] BarLineChartBasePainter getData, getAxisRange getter improvements --- mp_chart/CHANGELOG.md | 3 +- .../mp/painter/bar_line_chart_painter.dart | 68 ++++++++++--------- 2 files changed, 39 insertions(+), 32 deletions(-) diff --git a/mp_chart/CHANGELOG.md b/mp_chart/CHANGELOG.md index 62ecee7c..1b830874 100644 --- a/mp_chart/CHANGELOG.md +++ b/mp_chart/CHANGELOG.md @@ -1,6 +1,7 @@ ## 1.2.1 2023-03-17 * Flutter 3.7 updates -* Null safety cleanups. +* Null safety cleanups +* BarLineChartBasePainter getData, getAxisRange getter improvements * Upgrade dependency vector_math ## 1.2.0 2023-03-13 * Disable image saver(image_gallery_saver) for now, as it's using a very old kotlin-gradle-plugin diff --git a/mp_chart/lib/mp/painter/bar_line_chart_painter.dart b/mp_chart/lib/mp/painter/bar_line_chart_painter.dart index 42f3cda4..ced99f0c 100644 --- a/mp_chart/lib/mp/painter/bar_line_chart_painter.dart +++ b/mp_chart/lib/mp/painter/bar_line_chart_painter.dart @@ -33,8 +33,8 @@ import 'package:mp_chart/mp/painter/painter.dart'; abstract class BarLineChartBasePainter< T extends BarLineScatterCandleBubbleData< - IBarLineScatterCandleBubbleDataSet>?> extends ChartPainter - implements BarLineScatterCandleBubbleDataProvider { + IBarLineScatterCandleBubbleDataSet>?> + extends ChartPainter implements BarLineScatterCandleBubbleDataProvider { final ChartTransListener? _chartTransListener; /// the maximum number of entries to which values will be drawn @@ -284,7 +284,8 @@ abstract class BarLineChartBasePainter< renderer!.drawData(canvas); - if (!xAxis!.drawGridLinesBehindData) _xAxisRenderer!.renderGridLines(canvas); + if (!xAxis!.drawGridLinesBehindData) + _xAxisRenderer!.renderGridLines(canvas); if (!_axisLeft!.drawGridLinesBehindData) _axisRendererLeft!.renderGridLines(canvas); @@ -350,20 +351,21 @@ abstract class BarLineChartBasePainter< final double fromX = getLowestVisibleX(); final double toX = getHighestVisibleX(); - getData()!.calcMinMaxY(fromX, toX); + final data = getData()!; + data.calcMinMaxY(fromX, toX); - xAxis!.calculate(getData()!.xMin, getData()!.xMax); + xAxis!.calculate(data.xMin, data.xMax); // calculate axis range (min / max) according to provided data if (axisLeft!.enabled) { - axisLeft!.calculate(getData()!.getYMin2(AxisDependency.LEFT), - getData()!.getYMax2(AxisDependency.LEFT)); + axisLeft!.calculate(data.getYMin2(AxisDependency.LEFT), + data.getYMax2(AxisDependency.LEFT)); } if (axisRight!.enabled) { - axisRight!.calculate(getData()!.getYMin2(AxisDependency.RIGHT), - getData()!.getYMax2(AxisDependency.RIGHT)); + axisRight!.calculate(data.getYMin2(AxisDependency.RIGHT), + data.getYMax2(AxisDependency.RIGHT)); } calculateOffsets(); @@ -371,12 +373,13 @@ abstract class BarLineChartBasePainter< @override void calcMinMax() { - xAxis!.calculate(getData()!.xMin, getData()!.xMax); + final data = getData()!; + xAxis!.calculate(data.xMin, data.xMax); // calculate axis range (min / max) according to provided data - _axisLeft!.calculate(getData()!.getYMin2(AxisDependency.LEFT), - getData()!.getYMax2(AxisDependency.LEFT)); - _axisRight!.calculate(getData()!.getYMin2(AxisDependency.RIGHT), - getData()!.getYMax2(AxisDependency.RIGHT)); + _axisLeft!.calculate( + data.getYMin2(AxisDependency.LEFT), data.getYMax2(AxisDependency.LEFT)); + _axisRight!.calculate(data.getYMin2(AxisDependency.RIGHT), + data.getYMax2(AxisDependency.RIGHT)); } Rect calculateLegendOffsets(Rect offsets) { @@ -489,12 +492,13 @@ abstract class BarLineChartBasePainter< } if (_axisRight!.enabled) { - _axisRendererRight!.computeAxis( - _axisRight!.axisMinimum, _axisRight!.axisMaximum, _axisRight!.inverted); + _axisRendererRight!.computeAxis(_axisRight!.axisMinimum, + _axisRight!.axisMaximum, _axisRight!.inverted); } if (xAxis!.enabled) { - _xAxisRenderer!.computeAxis(xAxis!.axisMinimum, xAxis!.axisMaximum, false); + _xAxisRenderer! + .computeAxis(xAxis!.axisMinimum, xAxis!.axisMaximum, false); } } @@ -521,8 +525,8 @@ abstract class BarLineChartBasePainter< } if (_axisRight!.needsOffset()) { - offsetRight += - _axisRight!.getRequiredWidthSpace(_axisRendererRight!.axisLabelPaint); + offsetRight += _axisRight! + .getRequiredWidthSpace(_axisRendererRight!.axisLabelPaint); } if (xAxis!.enabled && xAxis!.drawLabels) { @@ -640,8 +644,9 @@ abstract class BarLineChartBasePainter< /// @param axis void setVisibleYRange( double minYRange, double maxYRange, AxisDependency axis) { - double minScale = getAxisRange(axis) / minYRange; - double maxScale = getAxisRange(axis) / maxYRange; + final axisRange = getAxisRange(axis); + double minScale = axisRange / minYRange; + double maxScale = axisRange / maxYRange; viewPortHandler!.setMinMaxScaleY(minScale, maxScale); } @@ -879,7 +884,8 @@ abstract class BarLineChartBasePainter< @override BarLineScatterCandleBubbleData? getData() { - return super.getData() as BarLineScatterCandleBubbleData>?; + return super.getData() as BarLineScatterCandleBubbleData< + IBarLineScatterCandleBubbleDataSet>?; } /// Returns true if either the left or the right or both axes are inverted. @@ -891,25 +897,25 @@ abstract class BarLineChartBasePainter< return false; } - bool updateEntry(int index, Entry entry, int dataSetIndex){ - var dataSet = getData()!.getDataSetByIndex(dataSetIndex); - if(dataSet == null) { + bool updateEntry(int index, Entry entry, int dataSetIndex) { + final dataSet = getData()!.getDataSetByIndex(dataSetIndex); + if (dataSet == null) { return false; } return dataSet.updateEntryByIndex(index, entry); } - void addEntryByIndex(int index, Entry entry, int dataSetIndex){ - var dataSet = getData()!.getDataSetByIndex(dataSetIndex); - if(dataSet != null){ + void addEntryByIndex(int index, Entry entry, int dataSetIndex) { + final dataSet = getData()!.getDataSetByIndex(dataSetIndex); + if (dataSet != null) { dataSet.addEntryByIndex(index, entry); } } - void addEntry(Entry entry, int dataSetIndex){ - var dataSet = getData()!.getDataSetByIndex(dataSetIndex); - if(dataSet != null) { + void addEntry(Entry entry, int dataSetIndex) { + final dataSet = getData()!.getDataSetByIndex(dataSetIndex); + if (dataSet != null) { addEntryByIndex(dataSet.getEntryCount(), entry, dataSetIndex); } } From 6ff54a74463982d80c90806ceb290f166bfd3b01 Mon Sep 17 00:00:00 2001 From: Absar Date: Tue, 21 Mar 2023 00:56:27 +0100 Subject: [PATCH 21/29] Bump sdk constraints to >=2.18.0 --- mp_chart/CHANGELOG.md | 1 + mp_chart/example/pubspec.yaml | 2 +- mp_chart/pubspec.yaml | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mp_chart/CHANGELOG.md b/mp_chart/CHANGELOG.md index 1b830874..fc091d9f 100644 --- a/mp_chart/CHANGELOG.md +++ b/mp_chart/CHANGELOG.md @@ -3,6 +3,7 @@ * Null safety cleanups * BarLineChartBasePainter getData, getAxisRange getter improvements * Upgrade dependency vector_math +* Bump sdk constraints to >=2.18.0 ## 1.2.0 2023-03-13 * Disable image saver(image_gallery_saver) for now, as it's using a very old kotlin-gradle-plugin ## 1.1.0 2023-03-13 diff --git a/mp_chart/example/pubspec.yaml b/mp_chart/example/pubspec.yaml index 885aee6c..5414268b 100644 --- a/mp_chart/example/pubspec.yaml +++ b/mp_chart/example/pubspec.yaml @@ -14,7 +14,7 @@ description: flutter charts just like MPAndroidChart version: 1.0.3 environment: - sdk: '>=2.17.0 <3.0.0' + sdk: '>=2.18.0 <3.0.0' dependencies: url_launcher: ^6.1.10 diff --git a/mp_chart/pubspec.yaml b/mp_chart/pubspec.yaml index f71d4d6c..6382fec9 100644 --- a/mp_chart/pubspec.yaml +++ b/mp_chart/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.2.1 homepage: https://github.com/SunPointed/MPFlutterChart environment: - sdk: '>=2.17.0 <3.0.0' + sdk: '>=2.18.0 <3.0.0' dependencies: intl: ^0.17.0 From 6544e29ba5b5fe05816ead400bbd791d7afea8b0 Mon Sep 17 00:00:00 2001 From: Absar Date: Sat, 3 Jun 2023 16:11:48 +0200 Subject: [PATCH 22/29] Upgrade dependencies path_provider, url_launcher --- mp_chart/CHANGELOG.md | 2 ++ mp_chart/example/pubspec.yaml | 2 +- mp_chart/pubspec.yaml | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mp_chart/CHANGELOG.md b/mp_chart/CHANGELOG.md index fc091d9f..85144dd9 100644 --- a/mp_chart/CHANGELOG.md +++ b/mp_chart/CHANGELOG.md @@ -1,3 +1,5 @@ +## 1.2.2 2023-06-03 +* Upgrade dependencies path_provider, url_launcher ## 1.2.1 2023-03-17 * Flutter 3.7 updates * Null safety cleanups diff --git a/mp_chart/example/pubspec.yaml b/mp_chart/example/pubspec.yaml index 5414268b..e0c7df9c 100644 --- a/mp_chart/example/pubspec.yaml +++ b/mp_chart/example/pubspec.yaml @@ -17,7 +17,7 @@ environment: sdk: '>=2.18.0 <3.0.0' dependencies: - url_launcher: ^6.1.10 + url_launcher: ^6.1.11 permission_handler: ^10.2.0 flutter: sdk: flutter diff --git a/mp_chart/pubspec.yaml b/mp_chart/pubspec.yaml index 6382fec9..7ff0a9eb 100644 --- a/mp_chart/pubspec.yaml +++ b/mp_chart/pubspec.yaml @@ -8,7 +8,7 @@ environment: dependencies: intl: ^0.17.0 - path_provider: ^2.0.13 + path_provider: ^2.0.15 screenshot: ^1.3.0 path_drawing: ^1.0.1 # image_gallery_saver: ^1.7.1 From 385d9c40d2aecf550d6db4dbc3a84b8a26b4382e Mon Sep 17 00:00:00 2001 From: Absar Date: Sun, 11 Jun 2023 18:15:08 +0200 Subject: [PATCH 23/29] Flutter 3.10 updates * Upgrade dependencies intl, screenshot, permission_handler --- mp_chart/CHANGELOG.md | 3 +++ mp_chart/example/pubspec.yaml | 8 ++++---- mp_chart/lib/mp/core/utils/screen_utils.dart | 5 +++-- mp_chart/pubspec.yaml | 8 ++++---- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/mp_chart/CHANGELOG.md b/mp_chart/CHANGELOG.md index 85144dd9..616a68f2 100644 --- a/mp_chart/CHANGELOG.md +++ b/mp_chart/CHANGELOG.md @@ -1,3 +1,6 @@ +## 1.3.0 2023-06-11 +* Flutter 3.10 updates +* Upgrade dependencies intl, screenshot, permission_handler ## 1.2.2 2023-06-03 * Upgrade dependencies path_provider, url_launcher ## 1.2.1 2023-03-17 diff --git a/mp_chart/example/pubspec.yaml b/mp_chart/example/pubspec.yaml index e0c7df9c..0f297908 100644 --- a/mp_chart/example/pubspec.yaml +++ b/mp_chart/example/pubspec.yaml @@ -11,14 +11,14 @@ description: flutter charts just like MPAndroidChart # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.3 +version: 1.0.4 environment: - sdk: '>=2.18.0 <3.0.0' + sdk: '>=2.19.0 <4.0.0' dependencies: url_launcher: ^6.1.11 - permission_handler: ^10.2.0 + permission_handler: ^10.3.0 flutter: sdk: flutter mp_chart: @@ -26,7 +26,7 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.5 - intl: ^0.17.0 + intl: ^0.18.0 dev_dependencies: flutter_test: diff --git a/mp_chart/lib/mp/core/utils/screen_utils.dart b/mp_chart/lib/mp/core/utils/screen_utils.dart index 58b04748..6698f2bd 100644 --- a/mp_chart/lib/mp/core/utils/screen_utils.dart +++ b/mp_chart/lib/mp/core/utils/screen_utils.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'dart:ui' as ui show window; +import 'dart:ui' as ui show PlatformDispatcher; /** * @Author: thl @@ -48,7 +48,8 @@ class ScreenUtils { } _init() { - MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + final view = ui.PlatformDispatcher.instance.views.first; + MediaQueryData mediaQuery = MediaQueryData.fromView(view); if (_mediaQueryData != mediaQuery) { _mediaQueryData = mediaQuery; _screenWidth = mediaQuery.size.width; diff --git a/mp_chart/pubspec.yaml b/mp_chart/pubspec.yaml index 7ff0a9eb..f859351f 100644 --- a/mp_chart/pubspec.yaml +++ b/mp_chart/pubspec.yaml @@ -1,15 +1,15 @@ name: mp_chart description: A Flutter chart package just like AndroidMPChart, apply easy to use chart for Flutter. -version: 1.2.1 +version: 1.3.0 homepage: https://github.com/SunPointed/MPFlutterChart environment: - sdk: '>=2.18.0 <3.0.0' + sdk: '>=2.19.0 <4.0.0' dependencies: - intl: ^0.17.0 + intl: ^0.18.0 path_provider: ^2.0.15 - screenshot: ^1.3.0 + screenshot: ^2.1.0 path_drawing: ^1.0.1 # image_gallery_saver: ^1.7.1 optimized_gesture_detector: From 4e5915b2aa18a3361297f84d14118d01a065ddf4 Mon Sep 17 00:00:00 2001 From: Absar Date: Fri, 27 Oct 2023 23:47:15 +0200 Subject: [PATCH 24/29] Update sdk constraints to >=3.0.0 <4.0.0 * Upgrade dependencies intl, path_provider * Upgrade example app dependencies url_launcher, permission_handler, cupertino_icons, intl --- mp_chart/CHANGELOG.md | 4 ++++ mp_chart/example/pubspec.yaml | 12 ++++++------ mp_chart/pubspec.yaml | 8 ++++---- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/mp_chart/CHANGELOG.md b/mp_chart/CHANGELOG.md index 616a68f2..3df94d58 100644 --- a/mp_chart/CHANGELOG.md +++ b/mp_chart/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.4.0 2023-10-27 +* Update sdk constraints to >=3.0.0 <4.0.0 +* Upgrade dependencies intl, path_provider +* Upgrade example app dependencies url_launcher, permission_handler, cupertino_icons, intl ## 1.3.0 2023-06-11 * Flutter 3.10 updates * Upgrade dependencies intl, screenshot, permission_handler diff --git a/mp_chart/example/pubspec.yaml b/mp_chart/example/pubspec.yaml index 0f297908..0caaa1e9 100644 --- a/mp_chart/example/pubspec.yaml +++ b/mp_chart/example/pubspec.yaml @@ -11,22 +11,22 @@ description: flutter charts just like MPAndroidChart # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.4 +version: 1.1.0 environment: - sdk: '>=2.19.0 <4.0.0' + sdk: '>=3.0.0 <4.0.0' dependencies: - url_launcher: ^6.1.11 - permission_handler: ^10.3.0 + url_launcher: ^6.2.1 + permission_handler: ^11.0.1 flutter: sdk: flutter mp_chart: path: ../ # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^1.0.5 - intl: ^0.18.0 + cupertino_icons: ^1.0.6 + intl: ^0.18.1 dev_dependencies: flutter_test: diff --git a/mp_chart/pubspec.yaml b/mp_chart/pubspec.yaml index f859351f..8792c655 100644 --- a/mp_chart/pubspec.yaml +++ b/mp_chart/pubspec.yaml @@ -1,14 +1,14 @@ name: mp_chart description: A Flutter chart package just like AndroidMPChart, apply easy to use chart for Flutter. -version: 1.3.0 +version: 1.4.0 homepage: https://github.com/SunPointed/MPFlutterChart environment: - sdk: '>=2.19.0 <4.0.0' + sdk: '>=3.0.0 <4.0.0' dependencies: - intl: ^0.18.0 - path_provider: ^2.0.15 + intl: ^0.18.1 + path_provider: ^2.1.1 screenshot: ^2.1.0 path_drawing: ^1.0.1 # image_gallery_saver: ^1.7.1 From 73483e1307cd9c4721f7aafaea6f38a32d463dbf Mon Sep 17 00:00:00 2001 From: Absar Date: Fri, 22 Dec 2023 00:28:57 +0100 Subject: [PATCH 25/29] Rename Easing to MpEasing to not conflict with Flutter Easing * Export most classes in mp_chart so that users only import mp_chart instead of individual classes * Flutter 3.16 updates * Upgrade dependencies intl * Upgrade example app dependencies url_launcher, permission_handler, intl --- mp_chart/CHANGELOG.md | 6 +++ mp_chart/example/lib/demo/action_state.dart | 6 +-- .../example/lib/demo/other_chart/radar.dart | 2 +- .../example/lib/demo/pie_chart/half_pie.dart | 2 +- .../lib/demo/pie_chart/value_lines.dart | 2 +- mp_chart/example/pubspec.yaml | 6 +-- mp_chart/lib/mp/core/animator.dart | 14 +++---- mp_chart/lib/mp_chart.dart | 39 +++++++++++++++++++ mp_chart/pubspec.yaml | 4 +- 9 files changed, 63 insertions(+), 18 deletions(-) diff --git a/mp_chart/CHANGELOG.md b/mp_chart/CHANGELOG.md index 3df94d58..e58ca2ae 100644 --- a/mp_chart/CHANGELOG.md +++ b/mp_chart/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.5.0 2023-12-21 +* Rename Easing to MpEasing to not conflict with Flutter Easing +* Export most classes in mp_chart so that users only import mp_chart instead of individual classes +* Flutter 3.16 updates +* Upgrade dependencies intl +* Upgrade example app dependencies url_launcher, permission_handler, intl ## 1.4.0 2023-10-27 * Update sdk constraints to >=3.0.0 <4.0.0 * Upgrade dependencies intl, path_provider diff --git a/mp_chart/example/lib/demo/action_state.dart b/mp_chart/example/lib/demo/action_state.dart index cc37ab7f..557206e1 100644 --- a/mp_chart/example/lib/demo/action_state.dart +++ b/mp_chart/example/lib/demo/action_state.dart @@ -239,7 +239,7 @@ abstract class LineActionState case 'M': controller!.animator! ..reset() - ..animateY2(2000, Easing.EaseInCubic); + ..animateY2(2000, MpEasing.EaseInCubic); break; case 'N': controller!.animator! @@ -514,7 +514,7 @@ abstract class PieActionState extends ActionState { controller.animator! ..reset() ..spin(2000, controller.rotationAngle, controller.rotationAngle + 360, - Easing.EaseInOutCubic); + MpEasing.EaseInOutCubic); break; case 'K': controller.animator! @@ -932,7 +932,7 @@ abstract class RadarActionState controller.animator! ..reset() ..spin(2000, controller.rotationAngle, controller.rotationAngle + 360, - Easing.EaseInOutCubic); + MpEasing.EaseInOutCubic); break; case 'K': controller.animator! diff --git a/mp_chart/example/lib/demo/other_chart/radar.dart b/mp_chart/example/lib/demo/other_chart/radar.dart index 5af5676b..388e4c66 100644 --- a/mp_chart/example/lib/demo/other_chart/radar.dart +++ b/mp_chart/example/lib/demo/other_chart/radar.dart @@ -152,7 +152,7 @@ class OtherChartRadarState extends RadarActionState { var radarChart = RadarChart(controller); controller.animator! ..reset() - ..animateXY2(1400, 1400, Easing.EaseInOutQuad); + ..animateXY2(1400, 1400, MpEasing.EaseInOutQuad); return radarChart; } } diff --git a/mp_chart/example/lib/demo/pie_chart/half_pie.dart b/mp_chart/example/lib/demo/pie_chart/half_pie.dart index f573c877..663ce71e 100644 --- a/mp_chart/example/lib/demo/pie_chart/half_pie.dart +++ b/mp_chart/example/lib/demo/pie_chart/half_pie.dart @@ -150,7 +150,7 @@ class PieChartHalfPieState extends SimpleActionState { Widget _initPieChart() { var pieChart = PieChart(_controller); - _controller.animator!.animateY2(1400, Easing.EaseInOutQuad); + _controller.animator!.animateY2(1400, MpEasing.EaseInOutQuad); return pieChart; } } diff --git a/mp_chart/example/lib/demo/pie_chart/value_lines.dart b/mp_chart/example/lib/demo/pie_chart/value_lines.dart index dea19e55..06e6ac88 100644 --- a/mp_chart/example/lib/demo/pie_chart/value_lines.dart +++ b/mp_chart/example/lib/demo/pie_chart/value_lines.dart @@ -246,7 +246,7 @@ class PieChartValueLinesState extends PieActionState var pieChart = PieChart(controller); controller.animator! ..reset() - ..animateY2(1400, Easing.EaseInOutQuad); + ..animateY2(1400, MpEasing.EaseInOutQuad); return pieChart; } diff --git a/mp_chart/example/pubspec.yaml b/mp_chart/example/pubspec.yaml index 0caaa1e9..4fe58346 100644 --- a/mp_chart/example/pubspec.yaml +++ b/mp_chart/example/pubspec.yaml @@ -17,8 +17,8 @@ environment: sdk: '>=3.0.0 <4.0.0' dependencies: - url_launcher: ^6.2.1 - permission_handler: ^11.0.1 + url_launcher: ^6.2.2 + permission_handler: ^11.1.0 flutter: sdk: flutter mp_chart: @@ -26,7 +26,7 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.6 - intl: ^0.18.1 + intl: ^0.19.0 dev_dependencies: flutter_test: diff --git a/mp_chart/lib/mp/core/animator.dart b/mp_chart/lib/mp/core/animator.dart index 1f498b9b..53b9b713 100644 --- a/mp_chart/lib/mp/core/animator.dart +++ b/mp_chart/lib/mp/core/animator.dart @@ -31,7 +31,7 @@ abstract class Animator { /// /// @param durationMillis animation duration void animateX1(int durationMillis) { - animateX2(durationMillis, Easing.Linear); + animateX2(durationMillis, MpEasing.Linear); } /// Animates values along the X axis. @@ -45,7 +45,7 @@ abstract class Animator { /// @param durationMillisX animation duration along the X axis /// @param durationMillisY animation duration along the Y axis void animateXY1(int durationMillisX, int durationMillisY) { - animateXY3(durationMillisX, durationMillisY, Easing.Linear, Easing.Linear); + animateXY3(durationMillisX, durationMillisY, MpEasing.Linear, MpEasing.Linear); } /// Animates values along both the X and Y axes. @@ -69,7 +69,7 @@ abstract class Animator { /// /// @param durationMillis animation duration void animateY1(int durationMillis) { - animateY2(durationMillis, Easing.Linear); + animateY2(durationMillis, MpEasing.Linear); } /// Animates values along the Y axis. @@ -512,7 +512,7 @@ mixin EasingFunction { const double DOUBLE_PI = 2 * pi; -abstract class Easing { +abstract class MpEasing { static const EasingFunction Linear = LinearEasingFunction(); static const EasingFunction EaseInQuad = EaseInQuadEasingFunction(); static const EasingFunction EaseOutQuad = EaseOutQuadEasingFunction(); @@ -550,9 +550,9 @@ class EaseInOutBounceEasingFunction implements EasingFunction { @override double getInterpolation(double input) { if (input < 0.5) { - return Easing.EaseInBounce.getInterpolation(input * 2) * 0.5; + return MpEasing.EaseInBounce.getInterpolation(input * 2) * 0.5; } - return Easing.EaseOutBounce.getInterpolation(input * 2 - 1) * 0.5 + 0.5; + return MpEasing.EaseOutBounce.getInterpolation(input * 2 - 1) * 0.5 + 0.5; } } @@ -578,7 +578,7 @@ class EaseInBounceEasingFunction implements EasingFunction { @override double getInterpolation(double input) { - return 1 - Easing.EaseOutBounce.getInterpolation(1 - input); + return 1 - MpEasing.EaseOutBounce.getInterpolation(1 - input); } } diff --git a/mp_chart/lib/mp_chart.dart b/mp_chart/lib/mp_chart.dart index 015199da..d7b902be 100644 --- a/mp_chart/lib/mp_chart.dart +++ b/mp_chart/lib/mp_chart.dart @@ -1,5 +1,44 @@ library mp_chart; +export '/mp/core/animator.dart'; +export '/mp/core/enums/mode.dart'; +export '/mp/chart/pie_chart.dart'; +export '/mp/chart/line_chart.dart'; +export '/mp/core/axis/x_axis.dart'; +export '/mp/core/axis/y_axis.dart'; +export '/mp/core/utils/utils.dart'; +export '/mp/core/description.dart'; +export '/mp/core/entry/entry.dart'; +export '/mp/core/data/pie_data.dart'; +export '/mp/core/legend/legend.dart'; +export '/mp/core/axis/axis_base.dart'; +export '/mp/core/data/line_data.dart'; +export '/mp/core/poolable/point.dart'; +export '/mp/core/marker/i_marker.dart'; +export '/mp/core/entry/pie_entry.dart'; +export '/mp/controller/controller.dart'; +export '/mp/core/common_interfaces.dart'; +export '/mp/core/enums/legend_form.dart'; +export '/mp/core/adapter_android_mp.dart'; +export '/mp/core/highlight/highlight.dart'; +export '/mp/core/utils/painter_utils.dart'; +export '/mp/core/render/data_renderer.dart'; +export '/mp/core/enums/value_position.dart'; +export '/mp/core/data_set/pie_data_set.dart'; +export '/mp/core/enums/x_axis_position.dart'; +export '/mp/core/data_set/line_data_set.dart'; +export '/mp/core/enums/legend_orientation.dart'; +export '/mp/core/render/pie_chart_renderer.dart'; +export '/mp/controller/pie_chart_controller.dart'; +export '/mp/core/enums/y_axis_label_position.dart'; +export '/mp/controller/line_chart_controller.dart'; +export '/mp/core/value_formatter/value_formatter.dart'; +export '/mp/core/enums/legend_vertical_alignment.dart'; +export '/mp/core/enums/legend_horizontal_alignment.dart'; +export '/mp/core/value_formatter/percent_formatter.dart'; +export '/mp/core/value_formatter/default_value_formatter.dart'; +export '/mp/controller/bar_line_scatter_candle_bubble_controller.dart'; + /// A Calculator. class Calculator { /// Returns [value] plus 1. diff --git a/mp_chart/pubspec.yaml b/mp_chart/pubspec.yaml index 8792c655..5a3a0c65 100644 --- a/mp_chart/pubspec.yaml +++ b/mp_chart/pubspec.yaml @@ -1,13 +1,13 @@ name: mp_chart description: A Flutter chart package just like AndroidMPChart, apply easy to use chart for Flutter. -version: 1.4.0 +version: 1.5.0 homepage: https://github.com/SunPointed/MPFlutterChart environment: sdk: '>=3.0.0 <4.0.0' dependencies: - intl: ^0.18.1 + intl: '>=0.18.1 <0.20.0' path_provider: ^2.1.1 screenshot: ^2.1.0 path_drawing: ^1.0.1 From 50f99da839132bff80df3d6d801835b79b72c2b0 Mon Sep 17 00:00:00 2001 From: Absar Date: Sat, 31 Aug 2024 16:41:00 +0200 Subject: [PATCH 26/29] * Flutter 3.22 updates * Upgrade dependencies path_provider, screenshot * Upgrade example app dependencies url_launcher , permission_handler, cupertino_icons --- mp_chart/CHANGELOG.md | 4 ++++ mp_chart/example/pubspec.yaml | 6 +++--- mp_chart/pubspec.yaml | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/mp_chart/CHANGELOG.md b/mp_chart/CHANGELOG.md index e58ca2ae..51a97cf9 100644 --- a/mp_chart/CHANGELOG.md +++ b/mp_chart/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.6.0 2024-08-31 +* Flutter 3.22 updates +* Upgrade dependencies path_provider, screenshot +* Upgrade example app dependencies url_launcher , permission_handler, cupertino_icons ## 1.5.0 2023-12-21 * Rename Easing to MpEasing to not conflict with Flutter Easing * Export most classes in mp_chart so that users only import mp_chart instead of individual classes diff --git a/mp_chart/example/pubspec.yaml b/mp_chart/example/pubspec.yaml index 4fe58346..017b29b9 100644 --- a/mp_chart/example/pubspec.yaml +++ b/mp_chart/example/pubspec.yaml @@ -17,15 +17,15 @@ environment: sdk: '>=3.0.0 <4.0.0' dependencies: - url_launcher: ^6.2.2 - permission_handler: ^11.1.0 + url_launcher: ^6.3.0 + permission_handler: ^11.3.1 flutter: sdk: flutter mp_chart: path: ../ # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^1.0.6 + cupertino_icons: ^1.0.8 intl: ^0.19.0 dev_dependencies: diff --git a/mp_chart/pubspec.yaml b/mp_chart/pubspec.yaml index 5a3a0c65..e12e236d 100644 --- a/mp_chart/pubspec.yaml +++ b/mp_chart/pubspec.yaml @@ -8,8 +8,8 @@ environment: dependencies: intl: '>=0.18.1 <0.20.0' - path_provider: ^2.1.1 - screenshot: ^2.1.0 + path_provider: ^2.1.4 + screenshot: ^3.0.0 path_drawing: ^1.0.1 # image_gallery_saver: ^1.7.1 optimized_gesture_detector: From 5740833b4686a6563e054343c5ac51b312d3896d Mon Sep 17 00:00:00 2001 From: Absar Date: Fri, 20 Sep 2024 01:49:01 +0200 Subject: [PATCH 27/29] * Update example Gradle to 8.2 DSL * BREAKING: Update minimum supported Flutter to 3.22, Dart to 3.3 --- mp_chart/CHANGELOG.md | 3 ++ mp_chart/example/android/app/build.gradle | 34 ++++++++++++------- .../android/app/src/main/AndroidManifest.xml | 3 +- mp_chart/example/android/build.gradle | 15 ++------ .../gradle/wrapper/gradle-wrapper.properties | 3 +- mp_chart/example/android/settings.gradle | 31 +++++++++++------ mp_chart/example/pubspec.yaml | 4 +-- mp_chart/pubspec.yaml | 5 +-- 8 files changed, 55 insertions(+), 43 deletions(-) diff --git a/mp_chart/CHANGELOG.md b/mp_chart/CHANGELOG.md index 51a97cf9..585a5f7e 100644 --- a/mp_chart/CHANGELOG.md +++ b/mp_chart/CHANGELOG.md @@ -1,3 +1,6 @@ +## 1.7.0 2024-09-20 +* Update example Gradle to 8.2 DSL +* BREAKING: Update minimum supported Flutter to 3.22, Dart to 3.3 ## 1.6.0 2024-08-31 * Flutter 3.22 updates * Upgrade dependencies path_provider, screenshot diff --git a/mp_chart/example/android/app/build.gradle b/mp_chart/example/android/app/build.gradle index 931d114f..6a0cc0f3 100644 --- a/mp_chart/example/android/app/build.gradle +++ b/mp_chart/example/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -21,21 +22,28 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - android { - compileSdkVersion 28 + namespace "com.lqy.example" + compileSdkVersion flutter.compileSdkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget = '11' + } - lintOptions { - disable 'InvalidPackage' + sourceSets { + main.java.srcDirs += 'src/main/kotlin' } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.lqy.example" - minSdkVersion 16 - targetSdkVersion 28 + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" diff --git a/mp_chart/example/android/app/src/main/AndroidManifest.xml b/mp_chart/example/android/app/src/main/AndroidManifest.xml index f37d6ec6..a5ceb1be 100644 --- a/mp_chart/example/android/app/src/main/AndroidManifest.xml +++ b/mp_chart/example/android/app/src/main/AndroidManifest.xml @@ -18,7 +18,8 @@ android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" - android:windowSoftInputMode="adjustResize"> + android:windowSoftInputMode="adjustResize" + android:exported="true">