switch (direction) { case NORTH:   if (index <= 0) return pos;  v = getView(index - 1); break; case SOUTH:   if (index >= getViewCount() - 1) return pos;  v = getView(index + 1); break; default: throw new IllegalArgumentException(); }  return v.getNextVisualPositionFrom(pos, b, a, direction, biasRet);
  protected int getNextNorthSouthVisualPositionFrom(int pos, Position.Bias b,                                                    Shape a, int direction,                                                    Position.Bias[] biasRet)    throws BadLocationException  {    // FIXME: Implement this correctly.    return pos;  }