예제 #1
0
        /// <summary>
        /// Mover pictogramas de una posición a otra
        /// </summary>
        /// <param name="oldIndex">Índice en el que está el pictograma</param>
        /// <param name="newIndex">Índice al que quieres enviar el pictogramaa</param>
        private void MovePictogram(int oldIndex, int newIndex)
        {
            if (tale.GetPage(currentPageIndex) != null)
            {
                if (newIndex <= 10 && newIndex >= 0)
                {
                    Pictogram pictogram = tale.GetPage(currentPageIndex).ElementAt(oldIndex);
                    tale.GetPage(currentPageIndex).RemovePictogram(oldIndex);

                    if (newIndex < oldIndex)
                    {
                        displacePictograms(newIndex, oldIndex - 1);
                    }
                    else
                    {
                        displacePictograms(oldIndex + 1, newIndex, true);
                    }
                    pictogram.Index = newIndex;
                    tale.page.InsertPictogram(pictogram);
                }
                else
                {
                    throw new ArgumentOutOfRangeException();
                }
            }
            else
            {
                throw new ArgumentNullException();
            }
        }
예제 #2
0
        /// <summary>
        /// Desplaza páginas hacia la derecha o hacia la izquierda
        /// </summary>
        /// <param name="first">El ínndice desde donde quieres mover la página</param>
        /// <param name="last">El índice hasta donde quieres mover la página</param>
        /// <param name="toLeft">Por defecto: Hacia la derecha</param>
        private void displacePictograms(int first, int last, bool toLeft = false)
        {
            if (last == -1)
            {
                last = tale.GetPage(currentPageIndex).Pictograms.Count - 1;
            }

            // derecha
            if (!toLeft)
            {
                for (int i = last; i >= first; i--)
                {
                    Pictogram p = tale.GetPage(currentPageIndex).ElementAt(i);
                    tale.GetPage(currentPageIndex).RemovePictogram(i);
                    p.Index++;
                    tale.GetPage(currentPageIndex).InsertPictogram(p);
                }
            }
            else //izquierda
            {
                for (int i = first; i <= last; i++)
                {
                    Pictogram p = tale.GetPage(currentPageIndex).ElementAt(i);
                    tale.GetPage(currentPageIndex).RemovePictogram(i);
                    p.Index--;
                    tale.GetPage(currentPageIndex).InsertPictogram(p);
                }
            }
        }
예제 #3
0
 /// <summary>
 /// Inserta un pictograma en el xml
 /// </summary>
 /// <param name="pictogram">Pictograma que quieres insertar</param>
 ///<param name="page">Página donde quieres insertar el pictograma</param>
 public void InsertPictogram(Pictogram pictogram, Page page)
 {
     if (pictogram != null)
     {
         if (pictogram.Index <= 10 && pictogram.Index >= 0)
         {
             if (page != null)
             {
                 page.Pictograms.Add(pictogram);
             }
         }
         else
         {
             throw new ArgumentOutOfRangeException();
         }
     }
     else
     {
         throw new ArgumentNullException();
     }
 }
예제 #4
0
 /// <summary>
 /// Cambia el pictograma de una página
 /// </summary>
 /// <param name="pictogram">Pictograma que quieres cambiar</param>
 public void SetPictogram(Pictogram pictogram)
 {
     CurrentPage.SetPictogram(pictogram);
 }