if (index < -1) return null;  Shape childAllocation = getChildAllocation(index, allocation);  if (childAllocation.getBounds().contains(x, y)) return getView(index).getToolTipText(x, y, childAllocation);  return null;
String text = null; if (index >= 0) { allocation = getChildAllocation(index, allocation); Rectangle r = allocation instanceof Rectangle ? (Rectangle) allocation : allocation.getBounds(); if (r.contains(x, y)) text = getView(index).getToolTipText(x, y, allocation); } return text;
  public String getToolTipText(float x, float y, Shape allocation)  {    int index = getViewIndex(x, y, allocation);    if (index < -1)      return null;    Shape childAllocation = getChildAllocation(index, allocation);    if (childAllocation.getBounds().contains(x, y))      return getView(index).getToolTipText(x, y, childAllocation);    return null;  }