return 0;
Rectangle rec = a.getBounds(); Document doc = getDocument(); Element root = doc.getDefaultRootElement();    int lineClicked = (int) (y - rec.y) / metrics.getHeight(); if (lineClicked >= root.getElementCount()) return getEndOffset() - 1;  Element line = root.getElement(lineClicked); Segment s = getLineBuffer();  int start = line.getStartOffset(); int end = line.getEndOffset(); try { doc.getText(start, end - start, s); } catch (BadLocationException ble) {  }  int pos = Utilities.getTabbedTextOffset(s, metrics, rec.x, (int)x, this, start); return Math.max (0, pos);
  public int viewToModel(float x, float y, Shape a, Position.Bias[] b)  {    // FIXME: not implemented    return 0;  }