mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-08-06 15:21:21 +08:00
GraphView: null safety++
This commit is contained in:
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user