public static void AseguraElementoEsEquivalente(ElementoDelMapa elEsperado, ElementoDelMapa elReal, string elPrefijo) { Assert.AreEqual(elEsperado.Campos, elReal.Campos, elPrefijo + ".Campos"); Assert.AreEqual(elEsperado.Clase, elReal.Clase, elPrefijo + ".Clase"); Assert.AreEqual(elEsperado.FuéEliminado, elReal.FuéEliminado, elPrefijo + ".FuéEliminado"); Assert.AreEqual(elEsperado.FuéModificado, elReal.FuéModificado, elPrefijo + ".FuéModificado"); Assert.AreEqual(elEsperado.Nombre, elReal.Nombre, elPrefijo + ".Nombre"); Assert.AreEqual(elEsperado.Número, elReal.Número, elPrefijo + ".Número"); Assert.AreEqual(elEsperado.RazónParaEliminación, elReal.RazónParaEliminación, elPrefijo + ".RazónParaEliminación"); Assert.AreEqual(elEsperado.Tipo, elReal.Tipo, elPrefijo + ".Tipo"); }
/// <summary> /// Añade un item a la lista. /// </summary> /// <param name="elElementoConEtiqueta">El elemento dado.</param> /// <param name="elColorDeFondo">El color de fondo.</param> /// <param name="elGrupo">El grupo.</param> /// <param name="losSubItemsAdicionales">Los textos de los subitems adicionales</param> public virtual void AñadeItem(ElementoConEtiqueta elElementoConEtiqueta, Color elColorDeFondo, ListViewGroup elGrupo, params string[] losSubItemsAdicionales) { ElementoDelMapa elemento = elElementoConEtiqueta.ElementoDelMapa; string tipoComoTexto = string.Empty; if (elemento.Tipo != null) { tipoComoTexto = ((Tipo)elemento.Tipo).ToString(); } List <string> subItems = new List <string> { elemento.Número.ToString(CultureInfo.CurrentCulture).PadLeft(6), tipoComoTexto, elemento.Descripción, elemento.Nombre }; subItems.AddRange(losSubItemsAdicionales); ListViewItem item = new ListViewItem(subItems.ToArray()) { BackColor = elColorDeFondo, Group = elGrupo, Tag = elElementoConEtiqueta }; if (VirtualMode) { if (elGrupo != null) { throw new ArgumentException("No se pueden añadir grupos a lista virtuales. Ponga VirtualMode = false"); } misItemsVirtuales.Add(item); } else { Items.Add(item); } }
public void PruebaCambiaCampoParámetrosDeRuta() { #region Caso 1: Vía con Campo de Parámetros de Ruta. { #region Preparación. int número = 12; ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión()); string clase = "clase"; string nombre = "Nombre"; string tipo = "0xc"; string descripción = "Roundabout"; CampoParámetrosDeRuta campoParámetrosDeRuta = new CampoParámetrosDeRuta( new LímiteDeVelocidad(2), new ClaseDeRuta(3), new bool[] { true, false, false, true, true, false, true, true, false, false }); List <Campo> campos = new List <Campo> { new CampoNombre(nombre), new CampoComentario(";Comentario"), new CampoTipo(tipo), campoParámetrosDeRuta }; // Crea el objeto en prueba. Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos); ElementoDelMapa víaOriginal = (ElementoDelMapa)objectoEnPrueba.Clone(); // Nuevos valores. CampoParámetrosDeRuta nuevoCampoParámetrosDeRuta = new CampoParámetrosDeRuta( new LímiteDeVelocidad(5), campoParámetrosDeRuta.ClaseDeRuta, campoParámetrosDeRuta.OtrosParámetros); Assert.That(nuevoCampoParámetrosDeRuta, Is.Not.EqualTo(campoParámetrosDeRuta), "El nuevo campo de parámetros de ruta debe ser distinto"); #endregion // Llama al método a probar. objectoEnPrueba.CambiaCampoParámetrosDeRuta(nuevoCampoParámetrosDeRuta, "Razón"); // Prueba Propiedades. Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos"); Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase"); Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción"); Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado"); Assert.That(objectoEnPrueba.FuéModificado, Is.True, "FuéModificado"); Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre"); Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número"); PruebaElementoDesconocido.AseguraElementoEsEquivalente(víaOriginal, objectoEnPrueba.Original, "Original"); Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación"); Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo"); Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(nuevoCampoParámetrosDeRuta), "CampoParámetrosDeRuta"); } #endregion #region Caso 2: Vía sin Campo de Parámetros de Ruta. { #region Preparación. int número = 12; ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión()); string clase = "clase"; string nombre = "Nombre"; string tipo = "0xc"; string descripción = "Roundabout"; List <Campo> campos = new List <Campo> { new CampoNombre(nombre), new CampoComentario(";Comentario"), new CampoTipo(tipo) }; // Crea el objeto en prueba. Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos); ElementoDelMapa víaOriginal = (ElementoDelMapa)objectoEnPrueba.Clone(); // Nuevos valores. CampoParámetrosDeRuta nuevoCampoParámetrosDeRuta = new CampoParámetrosDeRuta( new LímiteDeVelocidad(4), new ClaseDeRuta(1), new bool[10]); #endregion // Llama al método a probar. objectoEnPrueba.CambiaCampoParámetrosDeRuta(nuevoCampoParámetrosDeRuta, "Razón"); // Prueba Propiedades. Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos"); Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase"); Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción"); Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado"); Assert.That(objectoEnPrueba.FuéModificado, Is.True, "FuéModificado"); Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre"); Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número"); PruebaElementoDesconocido.AseguraElementoEsEquivalente(víaOriginal, objectoEnPrueba.Original, "Original"); Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación"); Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo"); Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(nuevoCampoParámetrosDeRuta), "CampoParámetrosDeRuta"); } #endregion #region Caso 3: Vía con el Mismo Campo de Parámetros de Ruta. { #region Preparación. int número = 12; ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión()); string clase = "clase"; string nombre = "Nombre"; string tipo = "0xc"; string descripción = "Roundabout"; CampoParámetrosDeRuta campoParámetrosDeRuta = new CampoParámetrosDeRuta( new LímiteDeVelocidad(2), new ClaseDeRuta(3), new bool[] { true, false, false, true, true, false, true, true, false, false }); List <Campo> campos = new List <Campo> { new CampoNombre(nombre), new CampoComentario(";Comentario"), new CampoTipo(tipo), campoParámetrosDeRuta }; // Crea el objeto en prueba. Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos); #endregion // Llama al método a probar. objectoEnPrueba.CambiaCampoParámetrosDeRuta(campoParámetrosDeRuta, "Razón"); // Prueba Propiedades. Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos"); Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase"); Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción"); Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado"); Assert.That(objectoEnPrueba.FuéModificado, Is.False, "FuéModificado"); Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre"); Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número"); Assert.That(objectoEnPrueba.Original, Is.Null, "Original"); Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación"); Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo"); Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(campoParámetrosDeRuta), "CampoParámetrosDeRuta"); } #endregion }
/// <summary> /// Constructor. /// </summary> /// <param name="elElementoDelMapa">El elemento de mapa.</param> /// <param name="laEtiqueta">La etiqueta.</param> public ElementoConEtiqueta(ElementoDelMapa elElementoDelMapa, object laEtiqueta) { ElementoDelMapa = elElementoDelMapa; Etiqueta = laEtiqueta; }
/// <summary> /// Constructor. /// </summary> /// <param name="elElementoDelMapa">El elemento de mapa.</param> public ElementoConEtiqueta(ElementoDelMapa elElementoDelMapa) : this(elElementoDelMapa, null) { }
private void Guarda(ElementoDelMapa elElemento, StreamWriter elEscritor) { // Inicializa indices. var indiceDeNodoRuteable = 1; // Escribe la clase. string clase = elElemento.Clase; elEscritor.WriteLine("[" + clase + "]"); // Final del elemento. string finalDeElemento = "[END]"; switch (clase) { case "IMG ID": case "Countries": case "Regions": case "Cities": case "ZipCodes": case "Restrict": finalDeElemento = "[END-" + clase + "]"; break; } // Guarda los campos del elemento. foreach (var campo in elElemento.Campos) { CampoComentario campoComentario; CampoNombre campoNombre; CampoCoordenadas campoCoordenadas; CampoNodoRuteable campoNodo; CampoGenérico campoGenérico; CampoTipo campoTipo; CampoParámetrosDeRuta campoParámetrosDeRuta; CampoAtributo campoAtributo; CampoEsCiudad campoCiudad; CampoIndiceDeCiudad campoIndiceDeCiudad; if ((campoComentario = campo as CampoComentario) != null) { Guarda(campoComentario, elEscritor); } else if ((campoNombre = campo as CampoNombre) != null) { Guarda(campoNombre, elEscritor); } else if ((campoCoordenadas = campo as CampoCoordenadas) != null) { Guarda(campoCoordenadas, elEscritor); } else if ((campoNodo = campo as CampoNodoRuteable) != null) { Guarda(campoNodo, indiceDeNodoRuteable, elEscritor); // Incrementa el índice para el próximo nodo. ++indiceDeNodoRuteable; } else if ((campoGenérico = campo as CampoGenérico) != null) { Guarda(campoGenérico, elEscritor); } else if ((campoTipo = campo as CampoTipo) != null) { Guarda(campoTipo, elEscritor); } else if ((campoParámetrosDeRuta = campo as CampoParámetrosDeRuta) != null) { Guarda(campoParámetrosDeRuta, elEscritor); } else if ((campoAtributo = campo as CampoAtributo) != null) { Guarda(campoAtributo, elEscritor); } else if ((campoCiudad = campo as CampoEsCiudad) != null) { Guarda(campoCiudad, elEscritor); } else if ((campoIndiceDeCiudad = campo as CampoIndiceDeCiudad) != null) { Guarda(campoIndiceDeCiudad, elEscritor); } else { throw new ArgumentException("Campo desconocido: " + campo.GetType()); } } // Escribe el final del elemento. elEscritor.WriteLine(finalDeElemento); }
private static void ArreglaMapaTopografico(ManejadorDeMapa.ManejadorDeMapa elManejadorDeMapa) { #region Arregla el encabezado. ElementoDelMapa encabezado = elManejadorDeMapa.Encabezado; IList <Campo> camposDelEncabezado = encabezado.Campos; CampoGenérico campoNombre = (CampoGenérico)camposDelEncabezado[1]; // Borra los campos para re-generarlos. camposDelEncabezado.Clear(); camposDelEncabezado.Add(new CampoGenérico("CodePage", "1252")); camposDelEncabezado.Add(new CampoGenérico("LblCoding", "9")); camposDelEncabezado.Add(new CampoGenérico("ID", campoNombre.Texto)); camposDelEncabezado.Add(campoNombre); // Añade los campos nuevos. Campo[] camposNuevos = new Campo[] { new CampoGenérico("Elevation", "M"), new CampoGenérico("Preprocess", "F"), new CampoGenérico("TreSize", "5000"), new CampoGenérico("TreMargin", "0.00000"), new CampoGenérico("RgnLimit", "1024"), new CampoGenérico("Transparent", "Y"), new CampoGenérico("Copyright", "www.gpsyv.net"), new CampoGenérico("Levels", "5"), new CampoGenérico("Level0", "24"), new CampoGenérico("Level1", "22"), new CampoGenérico("Level2", "20"), new CampoGenérico("Level3", "19"), new CampoGenérico("Level4", "18"), new CampoGenérico("Zoom0", "0"), new CampoGenérico("Zoom1", "1"), new CampoGenérico("Zoom2", "2"), new CampoGenérico("Zoom3", "3"), new CampoGenérico("Zoom4", "4"), }; foreach (Campo campo in camposNuevos) { camposDelEncabezado.Add(campo); } Console.WriteLine(" arreglado encabezado..."); #endregion #region Arregla las Polilíneas foreach (var polilínea in elManejadorDeMapa.Polilíneas) { IList <Campo> campos = polilínea.Campos; // Busca el campo de tipo. int?índiceCampoTipo = null; for (int i = 0; i < campos.Count; ++i) { if (campos[i] is CampoTipo) { índiceCampoTipo = i; break; } } // Add EndLevel después del campo tipo. if (índiceCampoTipo != null) { int i = (int)índiceCampoTipo + 1; campos.Insert(i, new CampoGenérico("EndLevel", "3")); } } Console.WriteLine(" arregladas polilíneas..."); #endregion #region Elimina los elementos con Data1 y Data2, y los polígonos. IList <ElementoDelMapa> elementos = elManejadorDeMapa.ManejadorDeElementos.Elementos; int últimoIndex = elementos.Count - 1; for (int i = últimoIndex; i >= 0; --i) { ElementoDelMapa elemento = elementos[i]; // Remueve los polígonos. if (elemento is Polígono) { elementos.RemoveAt(i); } // Si no es polígono entonces vemos si es una polilínea // y la removemos si no tiene data0. else if (elemento is Polilínea) { // Buscamos si tiene data0. bool tieneData0 = false; foreach (var campo in elemento.Campos) { CampoCoordenadas campoCoordenadas = campo as CampoCoordenadas; if (campoCoordenadas != null) { if (campoCoordenadas.Nivel == 0) { tieneData0 = true; break; } } } // Removemos el elemento si no tiene data0. if (!tieneData0) { elementos.RemoveAt(i); } } } Console.WriteLine(" eliminados polilíneas sin data 0, y polígonos..."); #endregion }