private void MainForm_Load(object sender, EventArgs e) { string caminho_pasta = AppDomain.CurrentDomain.BaseDirectory; if (!caminho_pasta.EndsWith("\\")) { caminho_pasta += "\\"; } caminho_pasta += "..\\..\\data\\"; try { Controlador.carregarDados(caminho_pasta); } catch (Exception exception) { MessageBox.Show(exception.StackTrace, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //catch } //MainForm_Load()
/* * * Métodos de pesquisa e controle dos elementos visuais * */ /// <summary> /// Pesquisa (na árvore que está no disco) o que está na caixa de pesquisa. /// </summary> private void pesquisar() //pesquisa o que está escrito na caixa de pesquisa { /* obtem o nome da cidade a ser pesquisada */ string localidade = textPesquisar.Text; string nome_cidade = localidade; if (localidade.Contains(" -")) { nome_cidade = localidade.Substring(0, localidade.IndexOf(" -")); //pega apenas o nome da cidade } bool encontrou_cidade = false; List <DadosOcorrencia> resultados = Controlador.pesquisaCidade(nome_cidade); //limpa o textbox que tem os dados da ocorrencia limparDadosOcorrencia(); if (resultados.Count > 0) //retornou mais que 1 cidade { encontrou_cidade = true; resultados = OrdenaDados.insertionSort_localidade(resultados, true);// INSERTION SORT ?? //formata o nome para CIDADE - ESTADO string cidade_selecionada = resultados[0].ocorrencia.localidade + " - " + resultados[0].ocorrencia.uf; //busca no mapa gmapControl.SetPositionByKeywords(cidade_selecionada); textPesquisar.Text = cidade_selecionada; } else // == 0 { //filtro para mostrar todas localidade = ""; //busca todas resultados = Controlador.pesquisaCidade(localidade); resultados = OrdenaDados.insertionSort_localidade(resultados, true); // INSERTION SORT ?? } /* cria uma lista de cidades sem repetição, e adiciona as ocorrências de cada cidade na devida cidade */ List <Cidade> lista_cidades = new List <Cidade>(); foreach (DadosOcorrencia dados_ocorrencia in resultados) { bool existe_na_lista = false; for (int i = 0; i < lista_cidades.Count; i++) { if (lista_cidades.ElementAt(i).localidade == dados_ocorrencia.ocorrencia.localidade) { if (lista_cidades.ElementAt(i).uf == dados_ocorrencia.ocorrencia.uf) { existe_na_lista = true; lista_cidades.ElementAt(i).lista_ocorrencias.Add(dados_ocorrencia); break; } //if } //if } //for if (!existe_na_lista) { lista_cidades.Add(new Cidade(dados_ocorrencia.ocorrencia.localidade, dados_ocorrencia.ocorrencia.uf, dados_ocorrencia)); } //if } //foreach /* preenche combobox de cidades, e ordena (ordem crescente) a lista de ocorrencias de cada cidade */ List <string> lista_cidades_combobox = new List <string>(); foreach (Cidade cidade in lista_cidades) { lista_cidades_combobox.Add(cidade.localidade + " - " + cidade.uf); cidade.lista_ocorrencias = OrdenaDados.insertionSort_codigo_ocorrencia(cidade.lista_ocorrencias, true); // INSERTION SORT ?? } //foreach //preenche os dados no textbox preencherDadosOcorrencia(lista_cidades[0].lista_ocorrencias[0]); comboSelecioneCidade.DataSource = lista_cidades_combobox; /* preenche combobox de ocorrencias da cidade na posição 0*/ List <int> lista_codigo_ocorrencias = new List <int>(); foreach (DadosOcorrencia dados_ocorrencia in lista_cidades[0].lista_ocorrencias) { lista_codigo_ocorrencias.Add(dados_ocorrencia.codigo_ocorrencia); } comboOcorrencias.DataSource = lista_codigo_ocorrencias; resultados_pesquisa = lista_cidades; if (encontrou_cidade) { labelCidadesEncontradas.Text = lista_cidades.Count + " cidade(s) encontrada(s)."; labelSelecioneCidade.Text = "Resultados da busca (\'" + nome_cidade + "\'):"; } else { //atualiza labels labelCidadesEncontradas.Text = "\'" + nome_cidade + "\' não foi encontrada."; labelSelecioneCidade.Text = "Lista de todas as cidades (" + resultados.Count + "):"; } this.lista_dados_ocorrencia_resultados_pesquisa = resultados; //ativa o menu hamburger checkHamburger.Checked = true; } //pesquisar()