@Override
  public void refresh() {
    if (getContextManager() == null) {
      disposeInstallMessageComp();
      disposeNatTableComp();
      if (availableLabelComp == null
          || (availableLabelComp != null && availableLabelComp.isDisposed())) {
        createContextNotAvailableGroup(this);
      }
    } else {
      if (!ContextNatTableUtils.checkIsInstallExternalJar()) {
        disposeUnAvailableContextComp();
        if (messageComp == null || (messageComp != null && messageComp.isDisposed())) {
          createMessageGroup(this);
        }
      } else {
        reInitializeUI();

        initializeContextCombo();

        checkContextGroupSource();

        // dispose the data table composite
        disposeDataTable();
        // create the data table composite
        createNatTable();

        contextTableComp.getParent().layout();
        contextTableComp.layout();
        treeTable.refresh();

        setButtonEnableState();
      }
    }
  }
  /**
   * zwang Comment method "initializeUI".
   *
   * @param viewer
   */
  private void initializeUI() {
    if (getContextManager() == null) {
      createContextNotAvailableGroup(this);
    } else {
      if (!ContextNatTableUtils.checkIsInstallExternalJar()) {
        createMessageGroup(this);
      } else {
        createNatTableGroup(this);

        createNatTable();

        createButtonsGroup(this);

        addListener(SWT.Resize, resizeListener);
      }
    }
  }