/** Adds the overlay panel into the table & converts the button to 'download'. */
  private void setupFakeTable(JPanel overlay) {
    MAIN_PANEL.removeAll();

    // fixes flickering!
    JPanel background =
        new JPanel() {
          public boolean isOptimizedDrawingEnabled() {
            return false;
          }
        };

    background.setLayout(new OverlayLayout(background));

    // overlay.setBorder(BorderFactory.createEmptyBorder(20, 0, 20, 0));

    JPanel overlayPanel = new JPanel();
    overlayPanel.setOpaque(false);
    overlayPanel.setLayout(new MigLayout("fill"));
    overlayPanel.add(overlay, "center");
    JScrollPane scrollPane = new JScrollPane(overlayPanel);
    scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
    scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    scrollPane.getViewport().setBackground(Color.WHITE);
    scrollPane.setBorder(BorderFactory.createEmptyBorder(28, 10, 4, 10));

    JComponent table = getScrolledTablePane();
    table.setOpaque(false);
    background.add(scrollPane);
    background.add(table);

    MAIN_PANEL.add(background);
    addButtonRow();
  }
 protected void setupMainPanelBase() {
   if (SearchSettings.ENABLE_SPAM_FILTER.getValue() && MAIN_PANEL != null) {
     MAIN_PANEL.add(createSchemaBox());
     MAIN_PANEL.add(getScrolledTablePane());
     addButtonRow();
   } else {
     super.setupMainPanel();
   }
 }
  /** Adds the button row and the Spam Button */
  private void addButtonRow() {
    if (BUTTON_ROW != null) {
      SOUTH_PANEL = Box.createVerticalBox();
      SOUTH_PANEL.setOpaque(false);

      SOUTH_PANEL.add(Box.createVerticalStrut(GUIConstants.SEPARATOR));

      JPanel buttonPanel = new JPanel();
      buttonPanel.setLayout(new GridBagLayout());

      GridBagConstraints gbc = new GridBagConstraints();

      gbc.gridx = 1;
      gbc.gridy = 0;
      gbc.anchor = GridBagConstraints.CENTER;
      gbc.fill = GridBagConstraints.NONE;
      gbc.gridwidth = GridBagConstraints.RELATIVE;
      gbc.weightx = 1;

      buttonPanel.add(BUTTON_ROW, gbc);

      buttonPanel.setMaximumSize(new Dimension(Integer.MAX_VALUE, 64));
      SOUTH_PANEL.add(buttonPanel);

      MAIN_PANEL.add(SOUTH_PANEL);
    }
  }