Example #1
0
        // overriding some of the ArrayList-methods

        /// <summary>
        /// Adds a Chunk, an Anchor or another Phrase
        /// to this Phrase.
        /// </summary>
        /// <param name="index">index at which the specified element is to be inserted</param>
        /// <param name="o">an object of type Chunk, Anchor, or Phrase</param>
        public void Add(int index, Object o)
        {
            try {
                IElement element = (IElement)o;
                if (element.Type == Element.CHUNK)
                {
                    Chunk chunk = (Chunk)element;
                    if (!font.isStandardFont())
                    {
                        chunk.Font = font.difference(chunk.Font);
                    }
                    base[index] = chunk;
                }
                else if (element.Type == Element.PHRASE ||
                         element.Type == Element.ANCHOR ||
                         element.Type == Element.ANNOTATION ||
                         element.Type == Element.TABLE ||                // line added by David Freels
                         element.Type == Element.GRAPHIC)
                {
                    base.Insert(index, element);
                }
                else
                {
                    throw new Exception(element.Type.ToString());
                }
            }
            catch (Exception cce) {
                throw new Exception("Insertion of illegal Element: " + cce.Message);
            }
        }