import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:graphview/GraphView.dart'; import 'package:syncrow_web/pages/home/bloc/home_event.dart'; import 'package:syncrow_web/pages/home/bloc/home_state.dart'; class HomeBloc extends Bloc { final Graph graph = Graph()..isTree = true; final BuchheimWalkerConfiguration builder = BuchheimWalkerConfiguration(); List sourcesList = []; List destinationsList = []; HomeBloc() : super((HomeInitial())) { on(_createNode); } void _createNode(CreateNewNode event, Emitter emit) async { emit(HomeInitial()); sourcesList.add(event.sourceNode); destinationsList.add(event.destinationNode); for (int i = 0; i < sourcesList.length; i++) { graph.addEdge(sourcesList[i], destinationsList[i]); } builder ..siblingSeparation = (100) ..levelSeparation = (150) ..subtreeSeparation = (150) ..orientation = (BuchheimWalkerConfiguration.ORIENTATION_TOP_BOTTOM); emit(HomeUpdateTree(graph: graph, builder: builder)); } }