int startIndex = getViewIndex(startOffset, Position.Bias.Forward);
int startIndex = getViewIndex(startOffset, Position.Bias.Backward);
  protected void forwardUpdate(DocumentEvent.ElementChange ec,                               DocumentEvent ev, Shape shape, ViewFactory vf)  {    int count = getViewCount();    if (count > 0)      {        int startOffset = ev.getOffset();        int endOffset = startOffset + ev.getLength();        // FIXME: What about this bias stuff?        int startIndex = getViewIndex(startOffset, Position.Bias.Forward);        int endIndex = getViewIndex(endOffset, Position.Bias.Forward);        int index = -1;        int addLength = -1;        if (ec != null)          {            index = ec.getIndex();            addLength = ec.getChildrenAdded().length;          }        if (startIndex >= 0 && endIndex >= 0)          {            for (int i = startIndex; i <= endIndex; i++)              {                // Skip newly added child views.                if (index >= 0 && i >= index && i < (index+addLength))                  continue;        View child = getView(i);        forwardUpdateToView(child, ev, shape, vf);      }  }      }  }