private @Nullable ActionListener getListener(Column column, Point point, Rectangle commonBounds) {
    Point primaryLocation = getColumnLocation(column == myPrimaryColumn, commonBounds);
    for (Fragment fragment : column.fragments) {
      Rectangle fragmentBounds = getFragmentBounds(column, primaryLocation, commonBounds, fragment);
      if (!fragmentBounds.contains(new Point(point.x, point.y))) continue;
      ActionListener listener = findListener(fragment.myComponent, fragment.myClickListeners, point.x - fragmentBounds.x);
      if (listener != null) return listener;
    }
    return null;
  }
private @Nullable ActionListener getListener(Column column, Point point, Rectangle commonBounds)