public @Nullable <T> T setNeedsRepaint(T oldValue, T newValue) {
    if (!myNeedsRepaint) {
      if (oldValue != null) {
        setNeedsRepaint(!oldValue.equals(newValue));
      }
      else if (newValue != null) {
        setNeedsRepaint(true);
      }
      else {
        setNeedsRepaint(false);
      }
    }

    return newValue;
  }
public @Nullable <T> T setNeedsRepaint(T oldValue, T newValue)