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:
lib
@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user