public void dispose() {
    removeComponents(this);
    editorPanel.cleanup(); // 1.3.1 popup mem leak & remove listener
    szap.removeHighlightRegion(editorPanel);
    editorPanel = null;
    translationViewer = null;
    viewport.removeChangeListener(scrollListener);
    viewport = null;

    lengthLabel = null;
    // featureNameLabel = null;
    transcriptComboBox = null;

    szap = null;
    transformer = null;
    scrollListener = null;
    indicatorColor = null;
    colorSwatch = null;
    // changeListener = null;
    // removeWindowListener(windowListener);
    // windowListener = null;
    getController().removeListener(this);
    // getController() = null;
    // view = null;

    findButton = null;
    clearFindsButton = null;
    goToButton = null;
    upstream_button = null;
    downstream_button = null;

    super.dispose();
  }