public static File resolveHashFileForArchive(
     AbstractIncrementalFileSystemMedium medium, File archive) throws IOException {
   if (!medium.checkArchiveCompatibility(archive, true)) {
     return null;
   }
   File metadataDir = medium.getDataDirectory(archive);
   return new File(metadataDir, medium.getHashFileName());
 }
  private void fillTargetData(AbstractTarget target) {
    AbstractIncrementalFileSystemMedium medium =
        (AbstractIncrementalFileSystemMedium) target.getMedium();
    File[] archives = new File[0];
    try {
      Logger.defaultLogger()
          .info(
              "Looking for archives in "
                  + medium.getFileSystemPolicy().getDisplayableParameters(true),
              "Physical View");
      archives = medium.listArchives(null, null, true);
    } catch (Throwable e) {
      this.application.handleException(e);
    }

    if (archives == null) {
      archives = new File[0];
    }

    medium.checkArchivesEncoding(archives);

    for (int i = archives.length - 1; i >= 0; i--) {
      TableItem item = new TableItem(table, SWT.NONE);
      item.setData(archives[i]);

      try {
        Manifest manifest = ArchiveManifestCache.getInstance().getManifest(medium, archives[i]);

        String prp = null;
        if (manifest != null) {
          item.setText(1, Utils.formatDisplayDate(manifest.getDate()));
          initText(item, 0, manifest);
          prp = manifest.getStringProperty(ManifestKeys.OPTION_BACKUP_SCHEME);
        }

        if ((prp != null && prp.equals(AbstractTarget.BACKUP_SCHEME_FULL)) || i == 0) {
          item.setImage(0, ArecaImages.ICO_FS_FOLDER_FULL);
        } else if (prp != null && prp.equals(AbstractTarget.BACKUP_SCHEME_DIFFERENTIAL)) {
          item.setImage(0, ArecaImages.ICO_FS_FOLDER_DIFFERENTIAL);
        } else {
          item.setImage(0, ArecaImages.ICO_FS_FOLDER);
        }
        initSize(item, 2, archives[i], medium);
      } catch (ApplicationException e) {
        application.handleException(e);
      }
    }

    /*
    if (archives.length == 0) {
    	showViewMessage();
    } else {
    	removeViewMessage();
    }
    */
  }
  private void initSize(
      TableItem item, int column, File archive, AbstractIncrementalFileSystemMedium medium)
      throws ApplicationException {
    long prp = medium.getArchiveSize(archive, false);

    if (prp >= 0) {
      item.setForeground(column, Colors.C_BLACK);
      item.setText(column, Utils.formatFileSize(prp));
    } else {
      item.setForeground(column, Colors.C_LIGHT_GRAY);
      item.setText(column, ResourceManager.instance().getLabel("mainpanel.nosize.label"));
    }
  }