Загрузил(а) файлы в 'flutter/lib/pages'

This commit is contained in:
Морозов Андрей 2021-11-11 10:35:34 +00:00
parent d28f08679e
commit 44c4c47872
1 changed files with 31 additions and 23 deletions

View File

@ -6,9 +6,9 @@ import 'package:flutter/material.dart';
Graphs getGraph() {
List<Dot> d = <Dot>[];
d.add(Dot.fromTwoLists("1", [2, 3], [5, 1]));
d.add(Dot.fromTwoLists("2", [1, 3], [1, 1]));
d.add(Dot.fromTwoLists("3", [1, 2], [1, 2]));
d.add(Dot.fromTwoLists("1", [2], [3]));
d.add(Dot.fromTwoLists("2", [3], [1]));
d.add(Dot.fromTwoLists("3", [1], [2]));
//d.add(Dot.fromTwoLists("Name1", [], []));
//d.add(Dot.fromTwoLists("Name2", [], []));
return Graphs.fromList("Имя графа", d, true, true);
@ -77,8 +77,11 @@ class _DrawingPageState extends State<DrawingPage> {
void showPopUp(String alertTitle, String err) => showDialog<String>(
context: context,
builder: (BuildContext context) => AlertDialog(
title: Text(alertTitle),
content: Text(err),
title: Text(alertTitle, style: const TextStyle(fontSize: 26)),
content: Text(
err,
style: const TextStyle(fontSize: 18),
),
actions: <Widget>[
TextButton(
onPressed: () => Navigator.pop(context, 'OK'),
@ -146,7 +149,7 @@ class _DrawingPageState extends State<DrawingPage> {
SizedBox dropList1(double width) {
var button = DropdownButton(
hint: const Text(
'Select Dot',
'Select dot',
style: TextStyle(color: Colors.white, fontSize: 13),
),
//icon: const Icon(Icons.fiber_manual_record, color: Colors.white),
@ -232,9 +235,9 @@ class _DrawingPageState extends State<DrawingPage> {
void addPathPushed() {
clearDropDownVals();
if (dropdownValue1 == null) {
showPopUp("Error", "Select output dot");
showPopUp("Error", "No dot in first box selected");
} else if (dropdownValue2 == null) {
showPopUp("Error", "select input dot");
showPopUp("Error", "No dot in second box selected");
} else if (_textLnthController.text == "" && graphData.getUseLengthBool()) {
showPopUp("Error", "No length in \"Input length\" box");
} else {
@ -243,7 +246,7 @@ class _DrawingPageState extends State<DrawingPage> {
int? len = int.tryParse(_textLnthController.text);
if (len == null && graphData.getUseLengthBool()) {
showPopUp("Error",
"Can't parse input.\nInts only allowed in \"Dot number\", \"Destination number\" and \"Input length\"");
"Can't parse input.\nInts only allowed in \"Input length\"");
} else {
len ??= 0;
setState(() {
@ -272,9 +275,9 @@ class _DrawingPageState extends State<DrawingPage> {
void delPathPushed() {
clearDropDownVals();
if (dropdownValue1 == null) {
showPopUp("Error", "No number in \"Dot number\" box");
showPopUp("Error", "No dot in first box selected");
} else if (dropdownValue2 == null) {
showPopUp("Error", "No name in \"Dot name\" box");
showPopUp("Error", "No dot in second box selected");
} else {
int? from = int.tryParse(dropdownValue1!);
int? to = int.tryParse(dropdownValue2!);
@ -350,9 +353,9 @@ class _DrawingPageState extends State<DrawingPage> {
void bfsPushed() {
clearDropDownVals();
if (dropdownValue1 == null) {
showPopUp("Error", "No number in \"Dot number\" box");
showPopUp("Error", "No dot in first box selected");
} else if (dropdownValue2 == null) {
showPopUp("Error", "No number in \"Destination number\" box");
showPopUp("Error", "No dot in second box selected");
} else {
setState(() {
startDot = int.parse(dropdownValue1!);
@ -372,7 +375,7 @@ class _DrawingPageState extends State<DrawingPage> {
void dfsPushed() {
clearDropDownVals();
if (dropdownValue1 == null) {
showPopUp("Error", "No number in \"Dot number\" box");
showPopUp("Error", "No dot in first box selected");
} else {
setState(() {
startDot = int.parse(dropdownValue1!);
@ -396,7 +399,7 @@ class _DrawingPageState extends State<DrawingPage> {
} else {
setState(() {
startDot = int.parse(dropdownValue1!);
currOp = "OP: DFS from $startDot";
currOp = "OP: Dijkstra from $startDot";
op = Operations.dijkstra;
intListPath = graphData.dijkstra(startDot!);
});
@ -499,28 +502,33 @@ class _DrawingPageState extends State<DrawingPage> {
createButton("Save to file", fileSaver),
createButton("Load from file", fileOpener),
createButton("Help", () {
/*
String out =
" В поле \"Graph name\" можно сменить имя графу.\n";
out +=
" Для добавления точки необходимо ввести имя в \"Dot name\" и нажать на \"Add dot\".\n";
out +=
" Для удаления точки необходимо ввести номер в \"Dot number\" и нажать на \"Del dot\".\n";
" Для удаления точки необходимо выбрать номер в левом выпадающем списке и нажать на \"Del dot\".\n";
out +=
" Для добавления пути необходимо ввести: номер выходной вершины в \"Dot number\", номер входной вершины в \"Destination number\" ";
" Для добавления пути необходимо выбрать: первую вершину в левом выпадающем списке, вторую вершину в правом выпадающем списке, ";
out +=
"и, если граф взвешенный, то ввести длину пути в \"Input length\". Затем нажать \"Add path\".\n";
out +=
" Для удаления пути необходимо ввести номер выходной вершины в \"Dot number\" и номер входной вершины в \"Destination number\". Затем нажать \"Del path\".\n\n";
" Для удаления пути необходимо выбрать первую вершину из левого списка и вторую вершину в правом списке. Затем нажать \"Del path\".\n\n";
out +=
" Кнопки \"Bfs\" и \"Dfs\" нумеруют точки в зависимости от послежовательности, в которой они будут пройдены.\n";
" Кнопка \"Bfs\" отмечает точки в пути из вершины, выбранной слева, в вершину, выбранную справа.\n";
out +=
" Кнопка \"Dfs\" помечает точки, которые доступны из вершины, выбранной слева.";
out +=
" Кнопка \"Dijkstra\" ищет кратчайший путь из вершины, выбранной слева. во все другие.";
out +=
" Кнопка \"Clear op\" отменяет \"Bfs\", \"Dfs\" и \"Dijkstra\". Все эти отображения так же отменяются при любых действиях с графом.";
out +=
" Кнопки \"Взвешенный\" и \"Ориентированный\" позволяют сменить эти значения перед построением графа (т.е. для их работы граф должен быть пустым).\n";
out +=
" Кнопки \"Save to file\" и \"Load from file\" позволяют вывести информацию в файл и загрузить информацию из файла соответственно.\n";
out +=
" Кнопка \"Help\" описывает работу с интерфейсом программы.";*/
showPopUp("Help:", "На переработке");
" Кнопка \"Help\" описывает работу с интерфейсом программы.";
showPopUp("Help:", out);
})
],
),