/**
   * Registra la entrada del usuario en la sesión de comunicación del servidor
   *
   * @param user usuario
   * @param password contraseña
   * @throws RequestException si ocurre alguna error durante el proceso de la solicitud
   */
  public void login(String user, String password) throws RequestException {
    activeCommunication();

    this.rqsDispatcher = new RequestDispatcher(communication.getCommunicator());
    Seeker seeker = session.login(user, DrakkarSecurity.SHA(password));

    if (seeker == null) {
      listenerManager.notifyFailedConnection();
      return;
    }

    this.clientSetting.setSeeker(seeker);
    this.dRole = session.getDlgRole();
    seeker.setState(Seeker.STATE_ONLINE);
    seeker.setRole(Seeker.ROLE_POTENTIAL_MEMBER);
    //        ImageIcon fromDB = seeker.getAvatar();
    //        this.icon32 = fromDB;

    //        if (fromDB.getIconHeight() != 16 && fromDB.getIconWidth() != 16) {
    //            BufferedImage resized =
    // ImageUtil.getFasterScaledInstance(ImageUtil.makeBufferedImage(fromDB.getImage()), 16, 16,
    // java.awt.RenderingHints.VALUE_INTERPOLATION_BILINEAR, false);
    //            this.icon16 = new ImageIcon(resized);
    //            seeker.setAvatar(icon16);
    //        }
    this.dRole.login(seeker, appManager, rqsDispatcher);
  }
  /**
   * Registra la entrada del usuario en la sesión de comunicación del servidor sin autenticación.
   * Tomando el nombre de usuario del sistema operativo, más un ID generado automáticamente por
   * sistema, para identificar al seeker en el servidor. Solo para ejemplos demostrativos.
   *
   * @throws RequestException si ocurre alguna error durante el proceso de la solicitud
   */
  public void login() throws RequestException {
    activeCommunication();

    Seeker seeker = clientSetting.getSeeker();
    String user = seeker.getUser() + session.getSeekerID();
    seeker.setUser(user);
    seeker.setState(Seeker.STATE_ONLINE);
    seeker.setRole(Seeker.ROLE_POTENTIAL_MEMBER);
    //        ImageIcon fromDB = seeker.getAvatar();
    //        this.icon32 = fromDB;
    this.dRole = session.getDlgRole();
    this.rqsDispatcher = new RequestDispatcher(communication.getCommunicator());

    this.dRole.login(seeker, appManager, rqsDispatcher);
  }
  /**
   * Registra la entrada del usuario en la sesión de comunicación del servidor sin autenticación y
   * al mismo tiempo entra en una sesión de búsqueda colaborativa por defecto. Tomando el nombre de
   * usuario del sistema operativo, más un ID generado automáticamente por sistema, para identificar
   * al seeker en el servidor. Solo para ejemplos demostrativos.
   *
   * @param seeker
   * @throws RequestException si ocurre alguna error durante el proceso de la solicitud
   */
  public void loginSearchCollabSession(Seeker seeker) throws RequestException {
    activeCommunication();

    this.rqsDispatcher = new RequestDispatcher(communication.getCommunicator());
    clientSetting.setSeeker(seeker);
    this.dRole = session.getDlgRole();
    //        ImageIcon fromDB = seeker.getAvatar();
    //        this.icon32 = fromDB;
    seeker.setState(Seeker.STATE_ONLINE);
    seeker.setRole(Seeker.ROLE_CHAIRMAN);

    OutputMonitor.printLine("Request connection...", OutputMonitor.INFORMATION_MESSAGE);
    this.dRole.login(seeker, appManager, rqsDispatcher);
    String chairman = session.getChairmanName("DefaultSCS");
    if (!chairman.equals(seeker.getUser())) {
      seeker.setRole(Seeker.ROLE_MEMBER);
    }
  }
  /**
   * Registra la entrada del usuario en la sesión de comunicación del servidor sin autenticación.
   *
   * @param seeker
   * @throws RequestException si ocurre alguna error durante el proceso de la solicitud
   */
  public void login(Seeker seeker) throws RequestException {
    activeCommunication();

    this.rqsDispatcher = new RequestDispatcher(communication.getCommunicator());
    clientSetting.setSeeker(seeker);
    this.dRole = session.getDlgRole();
    seeker.setState(Seeker.STATE_ONLINE);
    //        ImageIcon fromDB = seeker.getAvatar();
    //        this.icon32 = fromDB;
    //        BufferedImage resized =
    // ImageUtil.getFasterScaledInstance(ImageUtil.makeBufferedImage(fromDB.getImage()), 16, 16,
    // java.awt.RenderingHints.VALUE_INTERPOLATION_BILINEAR, false);
    seeker.setRole(Seeker.ROLE_POTENTIAL_MEMBER);
    //        seeker.setAvatar(new ImageIcon(resized));

    this.dRole.login(seeker, appManager, rqsDispatcher);
  }