/**
   * Makes sure the application reacts when the network is available.
   *
   * @param silent If true, wont show the "you are connected..." message to the user.
   */
  @Override
  public void networkCameUp(final boolean silent) {
    // Network came up after a logon
    if (!isLoggedOn()) {
      runDelayedLogon();
      sendLogOn();
    }

    // Network came up after a timeout
    else {
      ui.showTopic();

      if (!silent) {
        msgController.showSystemMessage("You are connected to the network again");
      }

      messages.sendTopicRequestedMessage(getTopic());
      messages.sendExposingMessage();
      messages.sendGetTopicMessage();
      messages.sendExposeMessage();
      messages.sendIdleMessage();
    }
  }
 /** Sends a message over the network to notify other clients that this client is still alive. */
 public void sendIdleMessage() {
   if (isConnected()) {
     messages.sendIdleMessage();
   }
 }