/// <summary> /// Abre el archivo de límites. /// </summary> /// <param name="elArchivo"></param> public void AbrirLímites(string elArchivo) { // Por ahora el único formato es el Polish. var limitsMapManager = new ManejadorDeMapa(EscuchadorDeEstatus); LectorDeFormatoPolish lector = new LectorDeFormatoPolish(limitsMapManager, elArchivo); // Extrae los polígonos como los límites. IList <ElementoDelMapa> elementos = lector.ElementosDelMapa; misLímitesPorMapas.Clear(); foreach (ElementoDelMapa elemento in elementos) { Polígono límite = elemento as Polígono; if (límite != null) { string nombreDelMapa = límite.Nombre; if (misLímitesPorMapas.ContainsKey(nombreDelMapa)) { throw new ArgumentException(string.Format( "El archivo de límites tiene el polígono del mapa '{0}' repetido.", nombreDelMapa)); } misLímitesPorMapas.Add(nombreDelMapa, límite); } } // Reportar los límites encontrados. EscuchadorDeEstatus.Estatus = string.Format("Leídos {0} límites.", misLímitesPorMapas.Count); // Actualizar los límites del mapa. ActualizaLímitesDelMapa(); }
/// <summary> /// Abre un archivo. /// </summary> /// <param name="elArchivo"></param> public void Abrir(string elArchivo) { Archivo = elArchivo; EscuchadorDeEstatus.ArchivoActivo = Path.GetFullPath(elArchivo); // Por ahora el único formato es el Polish. LectorDeFormatoPolish lector = new LectorDeFormatoPolish(this, elArchivo); IList <ElementoDelMapa> losElementos = lector.ElementosDelMapa; CreaMapaNuevo(losElementos); }