/** Updates the user message based on the current state of the application. */
  private void updateMessages() {
    browseStatusPanel.setBrowseStatus(browseStatus);

    if (!lifeCycleComplete) {
      messageLabel.setText(
          I18n.tr("LimeWire will start your search right after it finishes loading."));
      messagePanel.setVisible(true);
      browseFailedPanel.setVisible(false);
    } else if (!fullyConnected) {
      messageLabel.setText(
          I18n.tr("You might not receive many results until LimeWire finishes loading..."));
      messagePanel.setVisible(true);
      browseFailedPanel.setVisible(false);
    } else if (browseStatus != null && !browseStatus.getState().isOK()) {
      browseFailedPanel.update(
          browseStatus.getState(), browseStatus.getBrowseSearch(), browseStatus.getFailedFriends());
      browseFailedPanel.setVisible(true);
    } else {
      messagePanel.setVisible(false);
      browseFailedPanel.setVisible(false);
    }

    filterPanel.setVisible(!browseFailedPanel.isVisible());
    scrollPane.setVisible(!browseFailedPanel.isVisible());
  }