/// <summary>
        /// Dibuja el mapa resaltando los elementos seleccionados.
        /// </summary>
        public void DibujaElementos()
        {
            // Nos salimos si no hay elementos seleccionados.
            if (miLista.SelectedIndices.Count == 0)
            {
                MuestraTodoElMapa = true;
                return;
            }

            // Desabilita el mapa.
            Enabled = false;

            List <ElementoDelMapa> elementos = new List <ElementoDelMapa>();

            foreach (int indice in miLista.SelectedIndices)
            {
                ListViewItem item = miLista.Items[indice];

                // El Tag del item de la lista tiene que ser una vía.
                ElementoConEtiqueta elementoConEtiqueta = item.Tag as ElementoConEtiqueta;
                if (elementoConEtiqueta == null)
                {
                    throw new InvalidOperationException("El Tag del item de la lista tiene que ser una ElementoConEtiqueta, pero es: " + item.Tag.GetType());
                }

                // Añade el elemento a la lista.
                elementos.Add(elementoConEtiqueta.ElementoDelMapa);
            }

            // Busca el rango visible para los elementos.
            const float margen = 0.0005f;
            RectangleF  rectánguloQueEncierra = RectanguloQueEncierra(elementos);
            RectangleF  rectánguloVisible     = new RectangleF(
                rectánguloQueEncierra.X - margen,
                rectánguloQueEncierra.Y - margen,
                rectánguloQueEncierra.Width + (2 * margen),
                rectánguloQueEncierra.Height + (2 * margen));

            DibujaObjectosAdicionales(elementos);

            // Muestra el mapa en la region deseada.
            RectánguloVisibleEnCoordenadas = rectánguloVisible;
            MuestraTodoElMapa = false;

            // Envía el evento.
            if (DibujóElementos != null)
            {
                DibujóElementos(this, new EventArgs());
            }

            // Dibuja el mapa.
            Enabled = true;
            Refresh();
        }
        /// <summary>
        /// Retorna los elementos seleccionados.
        /// </summary>
        public IList <ElementoConEtiqueta> ObtieneElementosConEtiquetaSeleccionados()
        {
            List <ElementoConEtiqueta> elementos = new List <ElementoConEtiqueta>();

            foreach (int indice in Lista.SelectedIndices)
            {
                ListViewItem item = Lista.Items[indice];

                // El Tag del item de la lista tiene que ser un ElementoConEtiqueta con un PDI.
                ElementoConEtiqueta elemento = item.Tag as ElementoConEtiqueta;
                if (elemento == null)
                {
                    throw new InvalidOperationException(string.Format("El Tag del item de la lista tiene que ser un ElementoConEtiqueta, pero es: {0}", item.Tag.GetType()));
                }

                // Añade el elemento a la lista.
                elementos.Add(elemento);
            }
            return(elementos);
        }
Example #3
0
        /// <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);
            }
        }
        /// <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);
              }
        }
 /// <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="losSubItemsAdicionales">Los textos de los subitems adicionales</param>
 public void AñadeItem(ElementoConEtiqueta elElementoConEtiqueta, Color elColorDeFondo, params string[] losSubItemsAdicionales)
 {
     AñadeItem(elElementoConEtiqueta, elColorDeFondo, null, losSubItemsAdicionales);
 }
 /// <summary>
 /// Añade un item a la lista.
 /// </summary>
 /// <param name="elElementoConEtiqueta">El elemento dado.</param>
 /// <param name="elGrupo">El grupo.</param>
 /// <param name="losSubItemsAdicionales">Los textos de los subitems adicionales</param>
 public void AñadeItem(ElementoConEtiqueta elElementoConEtiqueta, ListViewGroup elGrupo, params string[] losSubItemsAdicionales)
 {
     AñadeItem(elElementoConEtiqueta, BackColor, elGrupo, losSubItemsAdicionales);
 }
 /// <summary>
 /// Añade un item a la lista.
 /// </summary>
 /// <param name="elElementoConEtiqueta">El elemento dado.</param>
 /// <param name="losSubItemsAdicionales">Los textos de los subitems adicionales</param>
 public void AñadeItem(ElementoConEtiqueta elElementoConEtiqueta, params string[] losSubItemsAdicionales)
 {
     AñadeItem(elElementoConEtiqueta, BackColor, null, losSubItemsAdicionales);
 }
Example #8
0
 /// <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="losSubItemsAdicionales">Los textos de los subitems adicionales</param>
 public void AñadeItem(ElementoConEtiqueta elElementoConEtiqueta, Color elColorDeFondo, params string[] losSubItemsAdicionales)
 {
     AñadeItem(elElementoConEtiqueta, elColorDeFondo, null, losSubItemsAdicionales);
 }
Example #9
0
 /// <summary>
 /// Añade un item a la lista.
 /// </summary>
 /// <param name="elElementoConEtiqueta">El elemento dado.</param>
 /// <param name="elGrupo">El grupo.</param>
 /// <param name="losSubItemsAdicionales">Los textos de los subitems adicionales</param>
 public void AñadeItem(ElementoConEtiqueta elElementoConEtiqueta, ListViewGroup elGrupo, params string[] losSubItemsAdicionales)
 {
     AñadeItem(elElementoConEtiqueta, BackColor, elGrupo, losSubItemsAdicionales);
 }
Example #10
0
 /// <summary>
 /// Añade un item a la lista.
 /// </summary>
 /// <param name="elElementoConEtiqueta">El elemento dado.</param>
 /// <param name="losSubItemsAdicionales">Los textos de los subitems adicionales</param>
 public void AñadeItem(ElementoConEtiqueta elElementoConEtiqueta, params string[] losSubItemsAdicionales)
 {
     AñadeItem(elElementoConEtiqueta, BackColor, null, losSubItemsAdicionales);
 }