@Override
  public void dispose() {
    ThreadingAssertions.assertEventDispatchThread();

    if (myWhere != null) {
      LOG.error("Already disposed: old trace: ", myWhere);
      LOG.error("Already disposed: new trace: ");
    }
    else {
      myWhere = new Exception();
    }

    myDocument.removeDocumentListener(myDocumentListener);

    if (!ApplicationManager.getApplication().isUnitTestMode()) {
      DesignerToolWindowManager.getInstance(myProject).dispose(this);
      PaletteToolWindowManager.getInstance(myProject).dispose(this);
    }

    myPsiTreeChangeListener.dispose();

    Disposer.dispose(myContentSplitterDisposable);
  }
@Override
  public void dispose()