@Override
  public void dispose() {
    final AbstractSegmentStoreDensityViewer densityViewer = fDensityViewer;
    if (densityViewer != null) {
      densityViewer.dispose();
    }

    final AbstractSegmentStoreTableViewer tableViewer = fTableViewer;
    if (tableViewer != null) {
      tableViewer.dispose();
    }

    super.dispose();
  }
  @Override
  public void createPartControl(@Nullable Composite parent) {
    super.createPartControl(parent);

    final SashForm sashForm = new SashForm(parent, SWT.NONE);

    fTableViewer = createSegmentStoreTableViewer(sashForm);
    fDensityViewer = createSegmentStoreDensityViewer(sashForm);
    fDensityViewer.addDataListener(new DataChangedListener());

    sashForm.setWeights(DEFAULT_WEIGHTS);

    Action zoomOut = new ZoomOutAction(this);
    IToolBarManager toolBar = getViewSite().getActionBars().getToolBarManager();
    toolBar.add(zoomOut);
    ITmfTrace trace = TmfTraceManager.getInstance().getActiveTrace();
    if (trace != null && fDensityViewer != null) {
      fDensityViewer.loadTrace(trace);
    }
  }