@Subscribe
  public void listen(ConnectionLostEvent connectionLostEvent) {

    jabRefFrame.output(Localization.lang("Connection lost."));

    String[] options = {
      Localization.lang("Reconnect"),
      Localization.lang("Work offline"),
      Localization.lang("Close database")
    };

    int answer =
        JOptionPane.showOptionDialog(
            jabRefFrame,
            Localization.lang("The connection to the server has been terminated.") + "\n\n",
            Localization.lang("Connection lost"),
            JOptionPane.YES_NO_CANCEL_OPTION,
            JOptionPane.WARNING_MESSAGE,
            null,
            options,
            options[0]);

    if (answer == 0) {
      jabRefFrame.closeCurrentTab();
      OpenSharedDatabaseDialog openSharedDatabaseDialog = new OpenSharedDatabaseDialog(jabRefFrame);
      openSharedDatabaseDialog.setVisible(true);
    } else if (answer == 1) {
      connectionLostEvent.getBibDatabaseContext().convertToLocalDatabase();
      jabRefFrame.refreshTitleAndTabs();
      jabRefFrame.updateEnabledState();
      jabRefFrame.output(Localization.lang("Working offline."));
    } else {
      jabRefFrame.closeCurrentTab();
    }
  }