private boolean validatePage() {
    if (dataFileInfo == null) return false;

    if (!dataFileInfo.getStatus().isOK()
        && !(dataFileInfo.getStatus().getSeverity() == IStatus.WARNING)) {
      setThisPageComplete(dataFileInfo.getStatus().getMessage(), IStatus.ERROR);
      return false;
    }

    setThisPageComplete(EMPTY, NONE);
    return true;
  }
  private void synchronizeUI() {
    synchronizing = true;

    if (dataFileInfo == null) return;

    String charset = this.info.getFileInfo(this.dataFileInfo.getDataFile()).getCharset();
    if (!charset.equals(this.dataFileInfo.getCharset())) {
      this.dataFileInfo = this.info.getFileInfo(this.dataFileInfo.getDataFile());
      loadFileContentsViewers();
    }

    selectedFileText.setText(dataFileInfo.getDataFile().getName());

    boolean isDelimitedOption = this.dataFileInfo.doUseDelimitedColumns();

    { // number of preview lines
      final String numLines = Integer.toString(this.dataFileInfo.getNumberOfCachedFileLines());

      if (!numLines.equals(this.numberPreviewLinesText.getText())) {
        this.numberPreviewLinesText.setText(numLines);
      }
    }

    this.delimitedColumnsRB.setSelection(isDelimitedOption);
    this.fixedWidthColumnsRB.setSelection(!isDelimitedOption);

    this.numberLinesInFileText.setText(
        Integer.toString(this.dataFileInfo.getNumberOfLinesInFile()));

    synchronizing = false;
  }
  @Override
  public void setVisible(boolean visible) {
    super.setVisible(visible);

    if (visible) {
      TeiidMetadataFileInfo fileInfo = null;
      for (TeiidMetadataFileInfo theFileInfo : info.getFileInfos()) {
        if (theFileInfo.doProcess()) {
          fileInfo = theFileInfo;
          break;
        }
      }
      if (fileInfo != null) {
        this.dataFileInfo = fileInfo;

        loadFileContentsViewers();
      }
      synchronizeUI();

      validatePage();
    }
  }