public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Задание № 1 (b)"; form.SetDefaultVals(new System.Drawing.Size(800, 700)); var tmpbutt = BeautyfyForms.AddButton("Очистить дерево", new Point(0, 10), (o, k) => { _tree = new BranchingTree(); treeViewer.Clear(); _addedWords.Items.Clear(); }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); form.Controls.Add(BeautyfyForms.AddButton(" Суть ", new Point(200, 10), (o, k) => { MessageBox.Show("Задача № 1b. Параграф 6.3, Реализация структуры \"Лес\" "); })); tmpbutt = BeautyfyForms.AddButton("Добавить значение", new Point(0, 40), (o, k) => { if (string.IsNullOrEmpty(_addInput.Text)) { MessageBox.Show("Нет текста для поиска"); return; } var text = _addInput.Text; if (_tree.AddWord(text)) { if (!_addedWords.Items.Contains(text)) { _addedWords.Items.Add(text); } } treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton("Удалить значение", new Point(0, 70), (o, k) => { if (string.IsNullOrEmpty(_deleteInput.Text)) { MessageBox.Show("Нет текста для поиска"); return; } var text = _deleteInput.Text; _tree.DeleteWord(text); _addedWords.Items.Remove(text); treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton("Проверить значение", new Point(0, 100), (o, k) => { if (string.IsNullOrEmpty(_checkInput.Text)) { MessageBox.Show("Нет текста для поиска"); return; } var text = _checkInput.Text; if (_tree.WordExists(text)) { MessageBox.Show("Существует"); } else { MessageBox.Show("Не существует"); } }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton("Отобразить деревце", new Point(0, 140), (o, k) => { treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Импорт ", new Point(0, 180), (o, k) => { var keys = new List <string>(); Helper.LoadFile("Список слов", "wordlst", keys); if (keys.Count > 0) { _tree = new BranchingTree(); treeViewer.Clear(); _addedWords.Items.Clear(); foreach (var key in keys) { if (_tree.AddWord(key)) { if (!_addedWords.Items.Contains(key)) { _addedWords.Items.Add(key); } } } } treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Экспорт ", new Point(80, 180), (o, k) => { SaveFileDialog saveFile = new SaveFileDialog(); saveFile.Filter = string.Format("{0} (*.{1})|*.{1}", "Луч", "branchview"); if (saveFile.ShowDialog() == DialogResult.OK) { _buttonsToHide.ForEach(x => x.Enabled = false); _timerProgress.Start(); Task.Run(() => { System.IO.File.WriteAllText(saveFile.FileName, _tree.getTreeView(_addXToEnd.Checked, false)); }); _buttonsToHide.ForEach(x => x.Enabled = true); _timerProgress.Stop(); _progress.Value = _progress.Maximum; MessageBox.Show("Сохранено!"); } }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Импорт .index ", new Point(160, 180), async(o, k) => { OpenFileDialog openDic = new OpenFileDialog(); openDic.Multiselect = false; openDic.Filter = string.Format("{0} (*.{1})|*.{1}", "Index файл", "index"); if (openDic.ShowDialog() == DialogResult.OK) { _buttonsToHide.ForEach(x => x.Enabled = false); var openedFile = System.IO.Path.ChangeExtension(openDic.FileName, null); var indexFile = openedFile + ".index"; var baseFile = openedFile + ".base"; _timerProgress.Start(); var state = await Task.Run(() => LoadIndexFile(indexFile, baseFile)); if (state != false) { MessageBox.Show("Готово! Дерево загружено."); } else { MessageBox.Show("Ошибка загрузки дерева."); return; } _timerProgress.Stop(); _progress.Value = _progress.Maximum; _buttonsToHide.ForEach(x => x.Enabled = true); } }); //_buttonsToHide.Add(tmpbutt); //form.Controls.Add(tmpbutt); _progress = BeautyfyForms.AddProgressBar(new Point(300, 180), form.Size, 0, 10); form.Controls.Add(_progress); _timerProgress = BeautyfyForms.CreateTimer((sender, EventArgs) => { if (_progress.Value >= _progress.Maximum) { _progress.Value = 0; } else { _progress.Value = _progress.Value + 1; } }); _addInput = BeautyfyForms.CreateTextBox(new Point(150, 43), false); form.Controls.Add(_addInput); _deleteInput = BeautyfyForms.CreateTextBox(new Point(150, 73), false); form.Controls.Add(_deleteInput); _checkInput = BeautyfyForms.CreateTextBox(new Point(150, 103), false); form.Controls.Add(_checkInput); treeViewer = BeautyfyForms.CreateMLTextBox(new Point(5, 250 + 5), 780, 400); form.Controls.Add(treeViewer); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(150, 145), "Добавлять Х в качестве null-ветвей", true, 190)); _addXToEnd = BeautyfyForms.CreateCheckBox(new Point(340, 140), false); form.Controls.Add(_addXToEnd); _addedWords = BeautyfyForms.AddListBox(new Point(500, 20), new Size(200, 250)); _addedWords.MouseDoubleClick += (x, y) => { if (_addedWords.SelectedItem != null) { MessageBox.Show(_addedWords.SelectedItem.ToString()); } }; form.Controls.Add(_addedWords); }
public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Задание № 2"; form.SetDefaultVals(new System.Drawing.Size(800, 500)); var tmpbutt = BeautyfyForms.AddButton("Очистить дерево", new Point(0, 10), (o, k) => { _tree = new BinaryTree <int?, SelfOrganizeIndexNode>(null, default(SelfOrganizeIndexNode)); treeViewer.Clear(); }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); form.Controls.Add(BeautyfyForms.AddButton(" Суть ", new Point(200, 10), (o, k) => { MessageBox.Show("Задача № 2. Параграф 6.2.2, алгоритм D (удаление узла дерева)"); })); tmpbutt = BeautyfyForms.AddButton("Сгенерировать дерево (N элементное)", new Point(0, 40), (o, k) => { if (string.IsNullOrEmpty(_randomInput.Text)) { MessageBox.Show("Введите кол-во элементов для добавления"); return; } if (string.IsNullOrEmpty(_randomMin.Text)) { MessageBox.Show("Введите минимальное число"); return; } if (string.IsNullOrEmpty(_randomMax.Text)) { MessageBox.Show("Введите максимальное число"); return; } int min = 0, max = 0; try { min = int.Parse(_randomMin.Text); max = int.Parse(_randomMax.Text); } catch { MessageBox.Show("Пределы не валидны"); return; } var text = _randomInput.Text; int res; if (int.TryParse(text, out res)) { if (Math.Abs(min - max) < res) { MessageBox.Show("Cлющай, став нармалные пределы, окда?"); return; } _buttonsToHide.ForEach(x => x.Enabled = false); _timerProgress.Start(); treeViewer.Clear(); Task.Run(() => { _tree = new BinaryTree <int?, SelfOrganizeIndexNode>(null, default(SelfOrganizeIndexNode)); GenerateRandomTree(res, min, max); }).ContinueWith(result => { treeViewer.BeginInvoke(new MethodInvoker(() => treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : "")); }); _buttonsToHide.ForEach(x => x.Enabled = true); _timerProgress.Stop(); _progress.Value = _progress.Maximum; MessageBox.Show("Сгенерили!"); } else { MessageBox.Show("Это было не число, да?.."); return; } }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton("Удалить значение", new Point(0, 70), (o, k) => { if (string.IsNullOrEmpty(_singleInput.Text)) { MessageBox.Show("Нет текста для поиска"); return; } var text = _singleInput.Text; int res; if (int.TryParse(text, out res)) { //RemoveNode(res); RemoveNodeRewritten(res); if (_tree == null) { _tree = new BinaryTree <int?, SelfOrganizeIndexNode>(null, default(SelfOrganizeIndexNode)); } //funny but let`s skip this~ treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; } else { MessageBox.Show("Это было не число, да?.."); return; } }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton("Отобразить деревце", new Point(0, 100), (o, k) => { treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Импорт ", new Point(0, 140), (o, k) => { var keys = new List <int>(); Helper.LoadFile("Список ключей", "keylst", keys); foreach (var key in keys) { AddNewValue(key, default(SelfOrganizeIndexNode)); } treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Экспорт ", new Point(80, 140), (o, k) => { SaveFileDialog saveFile = new SaveFileDialog(); saveFile.Filter = string.Format("{0} (*.{1})|*.{1}", "Бинарное деревце", "btree"); if (saveFile.ShowDialog() == DialogResult.OK) { _buttonsToHide.ForEach(x => x.Enabled = false); _timerProgress.Start(); Task.Run(() => { System.IO.File.WriteAllText(saveFile.FileName, _tree.getTreeView(_addXToEnd.Checked, false)); }); _buttonsToHide.ForEach(x => x.Enabled = true); _timerProgress.Stop(); _progress.Value = _progress.Maximum; MessageBox.Show("Сохранено!"); } }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Импорт .index ", new Point(160, 140), async(o, k) => { OpenFileDialog openDic = new OpenFileDialog(); openDic.Multiselect = false; openDic.Filter = string.Format("{0} (*.{1})|*.{1}", "Index файл", "index"); if (openDic.ShowDialog() == DialogResult.OK) { _buttonsToHide.ForEach(x => x.Enabled = false); var openedFile = System.IO.Path.ChangeExtension(openDic.FileName, null); var indexFile = openedFile + ".index"; var baseFile = openedFile + ".base"; _timerProgress.Start(); var state = await Task.Run(() => LoadIndexFile(indexFile, baseFile)); if (state != false) { MessageBox.Show("Готово! Дерево загружено."); } else { MessageBox.Show("Ошибка загрузки дерева."); return; } _timerProgress.Stop(); _progress.Value = _progress.Maximum; _buttonsToHide.ForEach(x => x.Enabled = true); } }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); _progress = BeautyfyForms.AddProgressBar(new Point(300, 140), form.Size, 0, 10); form.Controls.Add(_progress); _timerProgress = BeautyfyForms.CreateTimer((sender, EventArgs) => { if (_progress.Value >= _progress.Maximum) { _progress.Value = 0; } else { _progress.Value = _progress.Value + 1; } }); _randomInput = BeautyfyForms.CreateTextBox(new Point(290, 43), false); _randomInput.Text = "20"; form.Controls.Add(_randomInput); _randomMin = BeautyfyForms.CreateTextBox(new Point(400, 43), false); _randomMin.Text = "1"; form.Controls.Add(_randomMin); _randomMax = BeautyfyForms.CreateTextBox(new Point(510, 43), false); _randomMax.Text = "100"; form.Controls.Add(_randomMax); _singleInput = BeautyfyForms.CreateTextBox(new Point(150, 73), false); form.Controls.Add(_singleInput); treeViewer = BeautyfyForms.CreateMLTextBox(new Point(5, 250 + 5), 780, 200); form.Controls.Add(treeViewer); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(150, 105), "Добавлять Х в качестве null-ветвей", true, 190)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(330, 20), "N", true, 10)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(430, 20), "Min", true, 25)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(540, 20), "Max", true, 30)); _addXToEnd = BeautyfyForms.CreateCheckBox(new Point(340, 100), false); form.Controls.Add(_addXToEnd); }