/** Set the properties for the columns in the results tables. */
  private void setColumnProperies() {

    proteinMatchTable.getTableHeader().setReorderingAllowed(false);
    uniqueHitsTable.getTableHeader().setReorderingAllowed(false);
    relatedHitsTable.getTableHeader().setReorderingAllowed(false);

    proteinMatchTable.getColumn("  ").setMinWidth(30);
    proteinMatchTable.getColumn("  ").setMaxWidth(30);

    // set the preferred size of the accession column
    Integer width =
        peptideShakerGUI.getPreferredAccessionColumnWidth(
            proteinMatchTable, proteinMatchTable.getColumn("Accession").getModelIndex(), 2);
    if (width != null) {
      proteinMatchTable.getColumn("Accession").setMinWidth(width);
      proteinMatchTable.getColumn("Accession").setMaxWidth(width);
    } else {
      proteinMatchTable.getColumn("Accession").setMinWidth(15);
      proteinMatchTable.getColumn("Accession").setMaxWidth(Integer.MAX_VALUE);
    }

    // the validated column
    uniqueHitsTable.getColumn(" ").setMaxWidth(30);
    relatedHitsTable.getColumn(" ").setMaxWidth(30);
    uniqueHitsTable.getColumn(" ").setMinWidth(30);
    relatedHitsTable.getColumn(" ").setMinWidth(30);

    proteinMatchTable.getColumn("").setMaxWidth(30);
    uniqueHitsTable.getColumn("").setMaxWidth(30);
    relatedHitsTable.getColumn("").setMaxWidth(30);
    proteinMatchTable.getColumn("").setMinWidth(30);
    uniqueHitsTable.getColumn("").setMinWidth(30);
    relatedHitsTable.getColumn("").setMinWidth(30);

    // the score and confidence columns
    uniqueHitsTable.getColumn("Confidence").setMaxWidth(90);
    uniqueHitsTable.getColumn("Confidence").setMinWidth(90);
    uniqueHitsTable.getColumn("Score").setMaxWidth(90);
    uniqueHitsTable.getColumn("Score").setMinWidth(90);

    relatedHitsTable.getColumn("Confidence").setMaxWidth(90);
    relatedHitsTable.getColumn("Confidence").setMinWidth(90);
    relatedHitsTable.getColumn("Score").setMaxWidth(90);
    relatedHitsTable.getColumn("Score").setMinWidth(90);

    // change the cell renderer to fix a problem in Nimbus and alternating row colors
    proteinMatchTable.getColumn("  ").setCellRenderer(new NimbusCheckBoxRenderer());

    proteinMatchTable
        .getColumn("Accession")
        .setCellRenderer(
            new HtmlLinksRenderer(
                peptideShakerGUI.getSelectedRowHtmlTagFontColor(),
                peptideShakerGUI.getNotSelectedRowHtmlTagFontColor()));

    uniqueHitsTable
        .getColumn("Protein(s)")
        .setCellRenderer(
            new HtmlLinksRenderer(
                peptideShakerGUI.getSelectedRowHtmlTagFontColor(),
                peptideShakerGUI.getNotSelectedRowHtmlTagFontColor()));
    uniqueHitsTable
        .getColumn(" ")
        .setCellRenderer(
            new TrueFalseIconRenderer(
                new ImageIcon(this.getClass().getResource("/icons/accept.png")),
                new ImageIcon(this.getClass().getResource("/icons/Error_3.png")),
                "Validated",
                "Not Validated"));
    uniqueHitsTable
        .getColumn("Score")
        .setCellRenderer(
            new JSparklinesBarChartTableCellRenderer(
                PlotOrientation.HORIZONTAL, 100.0, peptideShakerGUI.getSparklineColor()));
    uniqueHitsTable
        .getColumn("Confidence")
        .setCellRenderer(
            new JSparklinesBarChartTableCellRenderer(
                PlotOrientation.HORIZONTAL, 100.0, peptideShakerGUI.getSparklineColor()));
    ((JSparklinesBarChartTableCellRenderer) uniqueHitsTable.getColumn("Score").getCellRenderer())
        .showNumberAndChart(true, peptideShakerGUI.getLabelWidth() + 5);
    ((JSparklinesBarChartTableCellRenderer)
            uniqueHitsTable.getColumn("Confidence").getCellRenderer())
        .showNumberAndChart(true, peptideShakerGUI.getLabelWidth() + 5);

    relatedHitsTable
        .getColumn("Protein(s)")
        .setCellRenderer(
            new HtmlLinksRenderer(
                peptideShakerGUI.getSelectedRowHtmlTagFontColor(),
                peptideShakerGUI.getNotSelectedRowHtmlTagFontColor()));
    relatedHitsTable
        .getColumn(" ")
        .setCellRenderer(
            new TrueFalseIconRenderer(
                new ImageIcon(this.getClass().getResource("/icons/accept.png")),
                new ImageIcon(this.getClass().getResource("/icons/Error_3.png")),
                "Validated",
                "Not Validated"));
    relatedHitsTable
        .getColumn("Score")
        .setCellRenderer(
            new JSparklinesBarChartTableCellRenderer(
                PlotOrientation.HORIZONTAL, 100.0, peptideShakerGUI.getSparklineColor()));
    relatedHitsTable
        .getColumn("Confidence")
        .setCellRenderer(
            new JSparklinesBarChartTableCellRenderer(
                PlotOrientation.HORIZONTAL, 100.0, peptideShakerGUI.getSparklineColor()));
    ((JSparklinesBarChartTableCellRenderer) relatedHitsTable.getColumn("Score").getCellRenderer())
        .showNumberAndChart(true, peptideShakerGUI.getLabelWidth() + 5);
    ((JSparklinesBarChartTableCellRenderer)
            relatedHitsTable.getColumn("Confidence").getCellRenderer())
        .showNumberAndChart(true, peptideShakerGUI.getLabelWidth() + 5);

    // set up the table header tooltips
    candidateProteinsTableToolTips = new ArrayList<String>();
    candidateProteinsTableToolTips.add(null);
    candidateProteinsTableToolTips.add("Currently Selected Protein Match");
    candidateProteinsTableToolTips.add("Protein Accession");
    candidateProteinsTableToolTips.add("Protein Description");

    uniqueHitsTableToolTips = new ArrayList<String>();
    uniqueHitsTableToolTips.add(null);
    uniqueHitsTableToolTips.add("Protein Accession(s)");
    uniqueHitsTableToolTips.add("Protein Score");
    uniqueHitsTableToolTips.add("Protein Confidence");
    uniqueHitsTableToolTips.add("Validated");

    relatedHitsTableToolTips = new ArrayList<String>();
    relatedHitsTableToolTips.add(null);
    relatedHitsTableToolTips.add("Protein Accession(s)");
    relatedHitsTableToolTips.add("Protein Score");
    relatedHitsTableToolTips.add("Protein Confidence");
    relatedHitsTableToolTips.add("Validated");
  }