private synchronized void unregisterToolWindow() {
    if (myToolWindow == null) return;

    ToolWindowManager toolWindowManager = ToolWindowManager.getInstance(myProject);
    toolWindowManager.unregisterToolWindow(TOOL_WINDOW_ID);
    myToolWindow = null;
  }
  @Override
  public void disposeComponent() {
    releaseEditor();
    myMappings.disposeMe();
    myConnect.disconnect();
    Disposer.dispose(myAnnotationLocalChangesListener);
    myContentManager = null;

    ToolWindowManager toolWindowManager = ToolWindowManager.getInstance(myProject);
    if (toolWindowManager != null && toolWindowManager.getToolWindow(ToolWindowId.VCS) != null) {
      toolWindowManager.unregisterToolWindow(ToolWindowId.VCS);
    }
  }
  public void close() {
    connectionManager.removeStateListener(this);

    // getTabComponent(Content content)
    //        Project project =
    // DataKeys.PROJECT.getData(DataManager.getInstance().getDataContext());

    ToolWindowManager toolWindowManager = null;
    try {
      toolWindowManager = ToolWindowManager.getInstance(project);
    } catch (Throwable e) {
      // todo -- fix me
    }
    if (toolWindowManager != null) {
      toolWindowManager.unregisterToolWindow(QUERY_RESULT_PANE);
    }
  }