@Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    UsageViewPresentation that = (UsageViewPresentation)o;
    return myCodeUsages == that.myCodeUsages
           && myDetachedMode == that.myDetachedMode
           && myMergeDupLinesAvailable == that.myMergeDupLinesAvailable
           && myOpenInNewTab == that.myOpenInNewTab
           && myShowCancelButton == that.myShowCancelButton
           && myShowReadOnlyStatusAsRed == that.myShowReadOnlyStatusAsRed
           && myUsageTypeFilteringAvailable == that.myUsageTypeFilteringAvailable
           && myExcludeAvailable == that.myExcludeAvailable
           && myReplaceMode == that.myReplaceMode
           && Objects.equals(myCodeUsagesString, that.myCodeUsagesString)
           && Objects.equals(myDynamicCodeUsagesString, that.myDynamicCodeUsagesString)
           && Objects.equals(myNonCodeUsagesString, that.myNonCodeUsagesString)
           && Objects.equals(myScopeText, that.myScopeText)
           && Objects.equals(myTabName, that.myTabName)
           && Objects.equals(myTabText, that.myTabText)
           && Objects.equals(myTargetsNodeText, that.myTargetsNodeText)
           && Objects.equals(myToolwindowTitle, that.myToolwindowTitle)
           && Objects.equals(myUsagesString, that.myUsagesString)
           && Objects.equals(mySearchString, that.mySearchString)
           && arePatternsEqual(mySearchPattern, that.mySearchPattern)
           && Objects.equals(myReplaceString, that.myReplaceString);
  }
@Override
  public boolean equals(Object o)