GraphView: null safety++

This commit is contained in:
Vishesh Handa
2021-06-02 09:52:02 +02:00
parent bdd23f44ee
commit 2e77b3e191
2 changed files with 11 additions and 15 deletions

View File

@ -1,5 +1,3 @@
// @dart=2.9
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -13,7 +11,7 @@ class GraphViewScreen extends StatefulWidget {
} }
class _GraphViewScreenState extends State<GraphViewScreen> { class _GraphViewScreenState extends State<GraphViewScreen> {
Graph graph; Graph? graph;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -21,19 +19,19 @@ class _GraphViewScreenState extends State<GraphViewScreen> {
var rootFolder = Provider.of<NotesFolderFS>(context); var rootFolder = Provider.of<NotesFolderFS>(context);
setState(() { setState(() {
graph = Graph.fromFolder(rootFolder); graph = Graph.fromFolder(rootFolder);
graph.addListener(_setState); graph!.addListener(_setState);
}); });
return Container(width: 2500, height: 2500); return Container(width: 2500, height: 2500);
} }
return SafeArea(child: GraphView(graph)); return SafeArea(child: graph != null ? GraphView(graph!) : Container());
} }
@override @override
void dispose() { void dispose() {
if (graph != null) { if (graph != null) {
graph.stopLayout(); graph!.stopLayout();
graph.removeListener(_setState); graph!.removeListener(_setState);
} }
super.dispose(); super.dispose();
@ -57,7 +55,7 @@ class GraphView extends StatefulWidget {
class _GraphViewState extends State<GraphView> { class _GraphViewState extends State<GraphView> {
final nodeSize = 50.0; final nodeSize = 50.0;
TransformationController transformationController; late TransformationController transformationController;
@override @override
void initState() { void initState() {
@ -72,8 +70,7 @@ class _GraphViewState extends State<GraphView> {
} }
Offset _getLocationPosition(Offset globalPos) { Offset _getLocationPosition(Offset globalPos) {
RenderBox graphViewRenderBox = context.findRenderObject(); RenderBox graphViewRenderBox = context.findRenderObject() as RenderBox;
assert(graphViewRenderBox != null);
var pos = graphViewRenderBox.globalToLocal(globalPos); var pos = graphViewRenderBox.globalToLocal(globalPos);
var matrix = transformationController.value; var matrix = transformationController.value;
@ -138,6 +135,7 @@ class _GraphViewState extends State<GraphView> {
var view = Container( var view = Container(
width: 2500, width: 2500,
height: 2500, height: 2500,
color: Colors.white,
child: Stack( child: Stack(
children: children, children: children,
fit: StackFit.expand, fit: StackFit.expand,
@ -193,9 +191,9 @@ class NodeWidget extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var theme = Theme.of(context); var theme = Theme.of(context);
var textStyle = theme.textTheme.subtitle1.copyWith(fontSize: 8.0); var textStyle = theme.textTheme.subtitle1!.copyWith(fontSize: 8.0);
var label = node.label; var label = node.label!;
if (label.startsWith('docs/')) { if (label.startsWith('docs/')) {
label = label.substring(5); label = label.substring(5);
} }

View File

@ -1,5 +1,3 @@
// @dart=2.9
/* /*
Copyright 2020-2021 Roland Fredenhagen <important@van-fredenhagen.de> Copyright 2020-2021 Roland Fredenhagen <important@van-fredenhagen.de>
@ -21,7 +19,7 @@ import 'dart:ui';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class HeroDialogRoute<T> extends PageRoute<T> { class HeroDialogRoute<T> extends PageRoute<T> {
HeroDialogRoute({this.builder}) : super(); HeroDialogRoute({required this.builder}) : super();
final WidgetBuilder builder; final WidgetBuilder builder;