private void excluirCaminho(object sender, EventArgs e) { string cidade1 = (cbxCidade1.SelectedItem == null ? null : cbxCidade1.SelectedItem.ToString()), cidade2 = (cbxCidade2.SelectedItem == null ? null : cbxCidade2.SelectedItem.ToString()); if (cidade1 == null || cidade2 == null) { MessageBox.Show("Selecione duas cidades"); return; } foreach (Caminho c in caminhos) { if ((c.Cidades[0] == cidade1 && c.Cidades[1] == cidade2) || (c.Cidades[1] == cidade1 && c.Cidades[0] == cidade2)) { if (MessageBox.Show("Deseja realmente excluir o caminho entre " + cidade1 + " e " + cidade2 + "?", "Exclusão", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { caminhos.Remove(c); MessageBox.Show("Caminho removido!"); grafo = new GrafoCaminhos(caminhos, cidades.Keys.ToList()); mapa.Invalidate(); return; } else { return; } } } MessageBox.Show("Caminho não existente."); }
private void excluirCidade(object sender, EventArgs e) { if (cbxCidades.SelectedIndex >= 0) { if (MessageBox.Show("Deseja realmente excluir " + cbxCidades.SelectedItem.ToString() + "? \n (Todas as ligações com ela serão excluidas junto)", "Exclusão", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { string nomeCidade = cbxCidades.SelectedItem.ToString(); cidades.Remove(nomeCidade); //Remove a cidade selecionada dos combobox. cbxCidade1.Items.RemoveAt(cbxCidades.SelectedIndex); cbxCidade2.Items.RemoveAt(cbxCidades.SelectedIndex); cbxCidades.Items.RemoveAt(cbxCidades.SelectedIndex); //Remove todos os caminhos em que a cidade destino ou a cidade inicial é a cidade a ser removida foreach (Caminho c in caminhos) { if (c.Cidades[0] == nomeCidade || c.Cidades[1] == nomeCidade) { caminhos.Remove(c); } } grafo = new GrafoCaminhos(caminhos, cidades.Keys.ToList()); mapa.Invalidate(); } } }
private void incluirCidade(object sender, EventArgs e) { string cidade = Microsoft.VisualBasic.Interaction.InputBox("Digite o nome da cidade", "Inclusão de cidade", ""); if (cidade != null && cidade.Trim() != "") { cidade = cidade.Trim(); if (cidade.Length > 15) { cidade = cidade.Substring(0, 15); } if (cidades.ContainsKey(cidade)) { MessageBox.Show("Cidade ja existente"); return; } cidades.Add(cidade, localCidade); showMousePos = false; cbxCidades.Items.Add(cidade); cbxCidade1.Items.Add(cidade); cbxCidade2.Items.Add(cidade); grafo = new GrafoCaminhos(caminhos, cidades.Keys.ToList()); MessageBox.Show("Cidade incluida com sucesso!"); } }
private void carregarCidades(object sender, EventArgs e) { if (dlgOpen.ShowDialog() == DialogResult.OK) { cbxCidades.Items.Clear(); cbxCidade1.Items.Clear(); cbxCidade2.Items.Clear(); StreamReader sr = new StreamReader(dlgOpen.FileName); try { string linha = sr.ReadLine(); while (linha != null && linha.Trim() != "") { PointF p = new PointF(); p.X = Convert.ToSingle(linha.Substring(16, 5)); p.Y = Convert.ToSingle(linha.Substring(22, 5)); //Adiciona a cidade em todos os combobox. string nomeCidade = linha.Substring(0, 15).Trim(); cbxCidades.Items.Add(nomeCidade); cbxCidade1.Items.Add(nomeCidade); cbxCidade2.Items.Add(nomeCidade); cidades[linha.Substring(0, 15).Trim()] = p; linha = sr.ReadLine(); } grafo = new GrafoCaminhos(caminhos, cidades.Keys.ToList()); cidadesMenu.Visible = true; pnlCaminhos.Visible = true; this.Size = new Size(929, 563); carregarCidadesMenu.Visible = false; mapa.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right; mapa.Invalidate(); } catch (Exception ex) { cbxCidades.Items.Clear(); cbxCidade1.Items.Clear(); cbxCidade2.Items.Clear(); MessageBox.Show("Formato de arquivo inválido! \n" + ex.Message); } sr.Close(); } }
private void inserirCaminho(object sender, EventArgs e) { string cidade1 = (cbxCidade1.SelectedItem == null ? null : cbxCidade1.SelectedItem.ToString()), cidade2 = (cbxCidade2.SelectedItem == null ? null : cbxCidade2.SelectedItem.ToString()); if (cidade1 == null || cidade2 == null) { MessageBox.Show("Selecione duas cidades"); return; } foreach (Caminho c in caminhos) { if ((c.Cidades[0] == cidade1 && c.Cidades[1] == cidade2) || (c.Cidades[1] == cidade1 && c.Cidades[0] == cidade2)) { MessageBox.Show("Caminho já existente!"); return; } } try { string result = Microsoft.VisualBasic.Interaction.InputBox("Digite a velocidade do percurso", cidade1 + " -> " + cidade2, "0"); if (result == null) { throw new Exception(); } int velocidade = Math.Abs(Convert.ToInt32(result)); result = Microsoft.VisualBasic.Interaction.InputBox("Digite a distância do percurso", cidade1 + " -> " + cidade2, "0"); if (result == null) { throw new Exception(); } int distancia = Math.Abs(Convert.ToInt32(result)); caminhos.Add(new Caminho(cidade1, cidade2, distancia, velocidade)); grafo = new GrafoCaminhos(caminhos, cidades.Keys.ToList()); mapa.Invalidate(); } catch { MessageBox.Show("Informações inválidas, inclusão de caminho cancelada"); return; } }
private void carregarCaminhos(object sender, EventArgs e) { if (dlgOpen.ShowDialog() == DialogResult.OK) { caminhos.Clear(); StreamReader sr = new StreamReader(dlgOpen.FileName); try { string linha = sr.ReadLine(); while (linha != null && linha.Trim() != "") { string cidade1 = linha.Substring(0, 15).Trim(), cidade2 = linha.Substring(15, 15).Trim(); //Faz com que tenha apenas caminhos entre cidades existentes if (!cidades.ContainsKey(cidade1) || !cidades.ContainsKey(cidade2)) { throw new Exception(); } caminhos.Add(new Caminho(cidade1, cidade2, Convert.ToInt32(linha.Substring(31, 3).Trim()), Convert.ToInt32(linha.Substring(35, 4)))); linha = sr.ReadLine(); } grafo = new GrafoCaminhos(caminhos, cidades.Keys.ToList()); mapa.Invalidate(); } catch (Exception ex) { caminhos.Clear(); MessageBox.Show("Formato de arquivo inválido ou cidade inexistente! \n" + ex.Message); } sr.Close(); } }