Esempio n. 1
0
  /**
   * Constructor. Initializes the controller, but does not log on to the network.
   *
   * @param ui The active user interface object.
   * @param settings The settings to use.
   */
  public Controller(final UserInterface ui, final Settings settings) {
    Validate.notNull(ui, "User interface can not be null");
    Validate.notNull(settings, "Settings can not be null");

    this.ui = ui;
    this.settings = settings;

    Runtime.getRuntime()
        .addShutdownHook(
            new Thread("ControllerShutdownHook") {
              @Override
              public void run() {
                logOff(false);
                shutdown();
              }
            });

    me = settings.getMe();
    userListController = new UserListController(settings);
    chatState = new ChatState();
    tList = new TransferList();
    wList = new WaitingList();
    idleThread = new IdleThread(this, ui, settings);
    networkService = new NetworkService(settings);
    final MessageResponder msgResponder = new DefaultMessageResponder(this, ui, settings);
    final PrivateMessageResponder privmsgResponder =
        new DefaultPrivateMessageResponder(this, ui, settings);
    final MessageParser msgParser = new MessageParser(msgResponder, settings);
    networkService.registerMessageReceiverListener(msgParser);
    final PrivateMessageParser privmsgParser = new PrivateMessageParser(privmsgResponder, settings);
    networkService.registerUDPReceiverListener(privmsgParser);
    messages = new Messages(networkService, settings);
    networkService.registerNetworkConnectionListener(this);
    msgController = ui.getMessageController();

    new DayTimer(ui);
    idleThread.start();

    msgController.showSystemMessage(
        "Welcome to " + Constants.APP_NAME + " v" + Constants.APP_VERSION + "!");
    final String date = Tools.dateToString(null, "EEEE, d MMMM yyyy");
    msgController.showSystemMessage("Today is " + date);
  }
Esempio n. 2
0
 /**
  * Prepares the application for shutdown. Should <strong>only</strong> be called when the
  * application shuts down.
  */
 private void shutdown() {
   idleThread.stopThread();
 }