Exemple #1
0
        private void EnMenúAbrirLímites(object sender, EventArgs losArgumentos)
        {
            using (OpenFileDialog ventanaParaAbrirArchivo = new OpenFileDialog())
            {
                ventanaParaAbrirArchivo.Title              = "Seleccione archivo de Límites";
                ventanaParaAbrirArchivo.CheckFileExists    = true;
                ventanaParaAbrirArchivo.AutoUpgradeEnabled = true;
                ventanaParaAbrirArchivo.DefaultExt         = "mp";
                ventanaParaAbrirArchivo.Filter             = ManejadorDeMapa.FiltrosDeExtensiones;

                DialogResult respuesta = ventanaParaAbrirArchivo.ShowDialog();

                switch (respuesta)
                {
                case DialogResult.OK:
                    string archivo = ventanaParaAbrirArchivo.FileName;
                    try
                    {
                        miManejadorDeMapa.AbrirLímites(archivo);
                        Settings.Default.ArchivoDeLímites = archivo;
                    }
                    catch (Exception e)
                    {
                        Programa.MuestraExcepción("Error abriendo archivo " + archivo, e);
                    }
                    break;
                }
            }
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        public InterfaseManejadorDeMapa()
        {
            // Lee la cultura de las opciones.
              // Si la cultura no esta definida entonces usamos Inglés
              // para todas las culturas que no deriven del Español.
              var culturaTexto = Settings.Default.Cultura;
              CultureInfo cultura;
              if (string.IsNullOrEmpty(culturaTexto))
              {
            cultura = CultureInfo.CurrentCulture;
            if (cultura.TwoLetterISOLanguageName != "es")
            {
              cultura = new CultureInfo("en");
            }
              }
              else
              {
            cultura = new CultureInfo(culturaTexto);
              }
              Thread.CurrentThread.CurrentUICulture = cultura;

              InitializeComponent();

              // Crea la lista de menús a desabilitar.
              misMenúsADesabilitar = new List<ToolStripMenuItem> {
            miMenúMapa,
            miMenúProcesar};

              // Crea la lista de menús de lenguage.
              misMenúsDeLenguage = new List<ToolStripMenuItem> {
            miMenúLenguajeEspañol,
            miMenúLenguajeInglés,
            miMenúLenguajeAutomático};
              miMenúLenguajeAutomático.Tag = string.Empty;
              CambiaCultura(culturaTexto);

              // Pone el nombre.
              Text = Recursos.DescripciónDelEjecutable + " - " + VentanaDeAcerca.AssemblyCompany;

              #region Asigna los ToolTips de los menús.
              miMenúAceptarModificaciones.ToolTipText = ManejadorDeMapa.DescripciónAceptarModificaciones;

              // PDIs.
              miMenúProcesarTodoEnPdis.ToolTipText = GpsYv.ManejadorDeMapa.Pdis.ManejadorDePdis.DescripciónProcesarTodo;
              miMenúArreglarIndicesDeCiudadEnPdis.ToolTipText = GpsYv.ManejadorDeMapa.Pdis.ArregladorDeIndicesDeCiudad.Descripción;
              miMenuArreglarCosasGeneralesEnPdis.ToolTipText = GpsYv.ManejadorDeMapa.Pdis.ArregladorGeneral.Descripción;
              miMenúBuscaDuplicadosEnPdis.ToolTipText = GpsYv.ManejadorDeMapa.Pdis.BuscadorDeDuplicados.Descripción;
              miMenúBuscarAlertasEnPdis.ToolTipText = GpsYv.ManejadorDeMapa.Pdis.BuscadorDeAlertas.Descripción;
              miMenúBuscarErroresEnPdis.ToolTipText = GpsYv.ManejadorDeMapa.Pdis.BuscadorDeErrores.Descripción;

              // Vías.
              miMenúProcesarTodoEnVías.ToolTipText = GpsYv.ManejadorDeMapa.Vías.ManejadorDeVías.DescripciónProcesarTodo;
              miMenúArreglarIndicesDeCiudadEnVías.ToolTipText = GpsYv.ManejadorDeMapa.Vías.ArregladorDeIndicesDeCiudad.Descripción;
              miMenúArreglarCosasGeneralesEnVías.ToolTipText = GpsYv.ManejadorDeMapa.Vías.ArregladorGeneral.Descripción;
              miMenúBuscarAlertasEnVías.ToolTipText = GpsYv.ManejadorDeMapa.Vías.BuscadorDeAlertas.Descripción;
              miMenúBuscarPosiblesErroresDeRuteoEnVías.ToolTipText = GpsYv.ManejadorDeMapa.Vías.BuscadorDePosiblesErroresDeRuteo.Descripción;
              miMenúBuscarPosiblesNodosDesconectadosEnVías.ToolTipText = GpsYv.ManejadorDeMapa.Vías.BuscadorDePosiblesNodosDesconectados.Descripción;
              miMenúBuscarErroresEnVías.ToolTipText = GpsYv.ManejadorDeMapa.Vías.BuscadorDeErrores.Descripción;
              #endregion

              // Crea y asigna el escuchador de estatus.
              miEscuchadorDeEstatus = new EscuchadorDeEstatus(
            this,
            miTextoDeEstatus,
            miBarraDeProgreso,
            miTextoDeCoordenadas);

              // Crea el objecto Manejador de Mapa.
              miManejadorDeMapa = new ManejadorDeMapa(
            miEscuchadorDeEstatus,
            new OpenFileDialogService());

              // Maneja eventos de modificación de elementos.
              miManejadorDeMapa.MapaNuevo += EnMapaNuevo;
              miManejadorDeMapa.ElementosModificados += EnElementosModificados;

              // Maneja eventos de procesamiento.
              miManejadorDeMapa.Procesando += EnProcesando;
              miManejadorDeMapa.Procesó += EnProcesó;

              // Oculta el botón de parar de procesar.
              miBotónParaDeProcesar.Visible = false;
              miTimerParaMostrarBotónParaDeProcesar.Interval = 5000;
              miTimerParaMostrarBotónParaDeProcesar.Tick += EnTimerParaMostrarBotónParaDeProcesar;

              // Pone el método llenador de items.
              miLista.PoneLlenadorDeItems(LlenaItems);

              // Asigna las propiedades de la interfase de mapa.
              miInterfaseDeMapa.ManejadorDeMapa = miManejadorDeMapa;
              miInterfaseDeMapa.EscuchadorDeEstatus = miEscuchadorDeEstatus;

              // Asigna las propiedades de la interfase de PDIs.
              miInterfaseManejadorDePdis.ManejadorDeMapa = miManejadorDeMapa;
              miInterfaseManejadorDePdis.EscuchadorDeEstatus = miEscuchadorDeEstatus;

              // Asigna las propiedades de la interfase de Vías.
              miInterfaseManejadorDeVías.ManejadorDeMapa = miManejadorDeMapa;
              miInterfaseManejadorDeVías.EscuchadorDeEstatus = miEscuchadorDeEstatus;

              // Crea el diccionario de índices de pestañas.
              TabControl.TabPageCollection pestañas = miControladorDePestañasPrincipal.TabPages;
              for (int i = 0; i < pestañas.Count; ++i)
              {
            misIndicesDePestañas[pestañas[i]] = i;
              }

              // Maneja evento de cambio de Estado Máximo de Pestañas de PDIs.
              miInterfaseManejadorDePdis.CambióEstadoMáximoDePestañas +=
            ((elEnviador, losArgumentos) =>
              miControladorDePestañasPrincipal.PoneEstadoDePestaña(
            miPaginaDePdis,
            losArgumentos.EstadoMáximoDePestañas));

              // Maneja evento de cambio de Estado Máximo de Pestañas de Vías.
              miInterfaseManejadorDeVías.CambióEstadoMáximoDePestañas +=
            ((elEnviador, losArgumentos) =>
              miControladorDePestañasPrincipal.PoneEstadoDePestaña(
            miPáginaDeVías,
            losArgumentos.EstadoMáximoDePestañas));

              // Lee el archivo de límites si existe en los settings.
              if (!string.IsNullOrEmpty(Settings.Default.ArchivoDeLímites))
              {
            // Trata de leer el archivo de límites.
            try
            {
              miManejadorDeMapa.AbrirLímites(Settings.Default.ArchivoDeLímites);
            }
            catch
            {
              // Ignoramos errores.
            }
              }
        }
Exemple #3
0
        /// <summary>
        /// Constructor.
        /// </summary>
        public InterfaseManejadorDeMapa()
        {
            // Lee la cultura de las opciones.
            // Si la cultura no esta definida entonces usamos Inglés
            // para todas las culturas que no deriven del Español.
            var         culturaTexto = Settings.Default.Cultura;
            CultureInfo cultura;

            if (string.IsNullOrEmpty(culturaTexto))
            {
                cultura = CultureInfo.CurrentCulture;
                if (cultura.TwoLetterISOLanguageName != "es")
                {
                    cultura = new CultureInfo("en");
                }
            }
            else
            {
                cultura = new CultureInfo(culturaTexto);
            }
            Thread.CurrentThread.CurrentUICulture = cultura;

            InitializeComponent();

            // Crea la lista de menús a desabilitar.
            misMenúsADesabilitar = new List <ToolStripMenuItem> {
                miMenúMapa,
                miMenúProcesar
            };

            // Crea la lista de menús de lenguage.
            misMenúsDeLenguage = new List <ToolStripMenuItem> {
                miMenúLenguajeEspañol,
                miMenúLenguajeInglés,
                miMenúLenguajeAutomático
            };
            miMenúLenguajeAutomático.Tag = string.Empty;
            CambiaCultura(culturaTexto);

            // Pone el nombre.
            Text = Recursos.DescripciónDelEjecutable + " - " + VentanaDeAcerca.AssemblyCompany;

            #region Asigna los ToolTips de los menús.
            miMenúAceptarModificaciones.ToolTipText = ManejadorDeMapa.DescripciónAceptarModificaciones;

            // PDIs.
            miMenúProcesarTodoEnPdis.ToolTipText            = GpsYv.ManejadorDeMapa.Pdis.ManejadorDePdis.DescripciónProcesarTodo;
            miMenúArreglarIndicesDeCiudadEnPdis.ToolTipText = GpsYv.ManejadorDeMapa.Pdis.ArregladorDeIndicesDeCiudad.Descripción;
            miMenuArreglarCosasGeneralesEnPdis.ToolTipText  = GpsYv.ManejadorDeMapa.Pdis.ArregladorGeneral.Descripción;
            miMenúBuscaDuplicadosEnPdis.ToolTipText         = GpsYv.ManejadorDeMapa.Pdis.BuscadorDeDuplicados.Descripción;
            miMenúBuscarAlertasEnPdis.ToolTipText           = GpsYv.ManejadorDeMapa.Pdis.BuscadorDeAlertas.Descripción;
            miMenúBuscarErroresEnPdis.ToolTipText           = GpsYv.ManejadorDeMapa.Pdis.BuscadorDeErrores.Descripción;

            // Vías.
            miMenúProcesarTodoEnVías.ToolTipText                     = GpsYv.ManejadorDeMapa.Vías.ManejadorDeVías.DescripciónProcesarTodo;
            miMenúArreglarIndicesDeCiudadEnVías.ToolTipText          = GpsYv.ManejadorDeMapa.Vías.ArregladorDeIndicesDeCiudad.Descripción;
            miMenúArreglarCosasGeneralesEnVías.ToolTipText           = GpsYv.ManejadorDeMapa.Vías.ArregladorGeneral.Descripción;
            miMenúBuscarAlertasEnVías.ToolTipText                    = GpsYv.ManejadorDeMapa.Vías.BuscadorDeAlertas.Descripción;
            miMenúBuscarPosiblesErroresDeRuteoEnVías.ToolTipText     = GpsYv.ManejadorDeMapa.Vías.BuscadorDePosiblesErroresDeRuteo.Descripción;
            miMenúBuscarPosiblesNodosDesconectadosEnVías.ToolTipText = GpsYv.ManejadorDeMapa.Vías.BuscadorDePosiblesNodosDesconectados.Descripción;
            miMenúBuscarErroresEnVías.ToolTipText                    = GpsYv.ManejadorDeMapa.Vías.BuscadorDeErrores.Descripción;
            #endregion

            // Crea y asigna el escuchador de estatus.
            miEscuchadorDeEstatus = new EscuchadorDeEstatus(
                this,
                miTextoDeEstatus,
                miBarraDeProgreso,
                miTextoDeCoordenadas);

            // Crea el objecto Manejador de Mapa.
            miManejadorDeMapa = new ManejadorDeMapa(
                miEscuchadorDeEstatus,
                new OpenFileDialogService());

            // Maneja eventos de modificación de elementos.
            miManejadorDeMapa.MapaNuevo            += EnMapaNuevo;
            miManejadorDeMapa.ElementosModificados += EnElementosModificados;

            // Maneja eventos de procesamiento.
            miManejadorDeMapa.Procesando += EnProcesando;
            miManejadorDeMapa.Procesó    += EnProcesó;

            // Oculta el botón de parar de procesar.
            miBotónParaDeProcesar.Visible = false;
            miTimerParaMostrarBotónParaDeProcesar.Interval = 5000;
            miTimerParaMostrarBotónParaDeProcesar.Tick    += EnTimerParaMostrarBotónParaDeProcesar;

            // Pone el método llenador de items.
            miLista.PoneLlenadorDeItems(LlenaItems);

            // Asigna las propiedades de la interfase de mapa.
            miInterfaseDeMapa.ManejadorDeMapa     = miManejadorDeMapa;
            miInterfaseDeMapa.EscuchadorDeEstatus = miEscuchadorDeEstatus;

            // Asigna las propiedades de la interfase de PDIs.
            miInterfaseManejadorDePdis.ManejadorDeMapa     = miManejadorDeMapa;
            miInterfaseManejadorDePdis.EscuchadorDeEstatus = miEscuchadorDeEstatus;

            // Asigna las propiedades de la interfase de Vías.
            miInterfaseManejadorDeVías.ManejadorDeMapa     = miManejadorDeMapa;
            miInterfaseManejadorDeVías.EscuchadorDeEstatus = miEscuchadorDeEstatus;

            // Crea el diccionario de índices de pestañas.
            TabControl.TabPageCollection pestañas = miControladorDePestañasPrincipal.TabPages;
            for (int i = 0; i < pestañas.Count; ++i)
            {
                misIndicesDePestañas[pestañas[i]] = i;
            }

            // Maneja evento de cambio de Estado Máximo de Pestañas de PDIs.
            miInterfaseManejadorDePdis.CambióEstadoMáximoDePestañas +=
                ((elEnviador, losArgumentos) =>
                 miControladorDePestañasPrincipal.PoneEstadoDePestaña(
                     miPaginaDePdis,
                     losArgumentos.EstadoMáximoDePestañas));

            // Maneja evento de cambio de Estado Máximo de Pestañas de Vías.
            miInterfaseManejadorDeVías.CambióEstadoMáximoDePestañas +=
                ((elEnviador, losArgumentos) =>
                 miControladorDePestañasPrincipal.PoneEstadoDePestaña(
                     miPáginaDeVías,
                     losArgumentos.EstadoMáximoDePestañas));

            // Lee el archivo de límites si existe en los settings.
            if (!string.IsNullOrEmpty(Settings.Default.ArchivoDeLímites))
            {
                // Trata de leer el archivo de límites.
                try
                {
                    miManejadorDeMapa.AbrirLímites(Settings.Default.ArchivoDeLímites);
                }
                catch
                {
                    // Ignoramos errores.
                }
            }
        }