1
0
mirror of https://github.com/GitJournal/GitJournal.git synced 2025-08-06 07:12:07 +08:00

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

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

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