// 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); } }