public static Point convertPoint(
      final Component source, final int x, final int y, final Component destination) {
    Point convertedPoint = new Point(x, y);
    if (source != null && destination != null) {
      convertPointToScreen(convertedPoint, source);
      convertPointFromScreen(convertedPoint, destination);
    } else {
      translateRelatedPoint(convertedPoint, source, 1, true);
      translateRelatedPoint(convertedPoint, destination, -1, true);
    }

    return convertedPoint;
  }
 public static void convertPointFromScreen(final Point point, final Component component) {
   if (component == null) {
     throw new NullPointerException(Messages.getString("swing.62")); // $NON-NLS-1$
   }
   translateRelatedPoint(point, component, -1, false);
 }