/**
   * Atualiza Roteiro do Emulador
   *
   * @return
   * @throws ActionException
   */
  public String atualizaRoteiro() throws ActionException {
    int idUsuario = InfoHelper.setExtraInfo(this);
    int idEmulador = 0;

    try {
      idEmulador = input.getInt("id");
    } catch (InputException ie) {
      return NULL;
    }

    EmuladorCache emuladorCache = CacheManager.getCacheDeEmuladores();
    EmuladorVO storedVO =
        (EmuladorVO) emuladorCache.getCacheComoHashMap().get(new Integer(idEmulador));
    if (storedVO == null) return NULL;

    setEmuladorFavorito();
    //	Grava roteiro (reprovado por padrao)
    RoteiroInstalacaoEmuVO vo = new RoteiroInstalacaoEmuVO();
    vo.getEmulador().setId(input.getInt("id"));
    vo.getDistro().setId(input.getInt("distro_id"));
    vo.setDescricao(input.getString("descricao"));
    vo.getUsuario().setId(idUsuario);
    vo.setAprovado(Constantes.REPROVADO);

    try {
      RoteiroInstalacaoEmuDAO roteiroInstalacaoEmuDAO = RoteiroInstalacaoEmuDAO.getinstance();
      roteiroInstalacaoEmuDAO.adiciona(vo);
      int roteiroId = roteiroInstalacaoEmuDAO.buscaMaxId();
      // manda email de solicitacao
      ColaboradoresDAO colaboradoresDAO = ColaboradoresDAO.getinstance();
      ArrayList<KeyValueVO> colaboradores =
          (ArrayList<KeyValueVO>) colaboradoresDAO.buscaColaboradores();
      SolicitacaoVO solicitacao = new SolicitacaoVO();
      solicitacao.setNome(storedVO.getNome());
      solicitacao.setId(roteiroId);
      solicitacao.setTipoDeSolicitacao(Constantes.ROTEIRO_INSTALACAO);
      solicitacao.setCategoria(Constantes.EMULADOR);
      EmailHelper.mandaEmailSolicitacao(colaboradores, solicitacao);
    } catch (DAOException e) {
      logger.error("DAO:Cadastrando novo roteiro de solicitacao de Emulador...", e);
    } catch (Exception e) {
      logger.error("Cadastrando novo roteiro de solicitacao...", e);
    }

    output.setValue("aba3", "S");
    output.setValue("id", String.valueOf(idEmulador));
    output.setValue("nome", storedVO.getNome());
    output.setValue("notaGeral", storedVO.getNotaGeral());
    TopHelper.updateEmuladorHelper(idEmulador, output);
    return SUCCESS;
  }
  /**
   * aba de roteiros de instala&ccedil;&atilde;o
   *
   * @return
   * @throws ActionException
   */
  public String inst() throws ActionException {
    InfoHelper.setExtraInfo(this);
    int idEmulador = 0;

    try {
      idEmulador = input.getInt("id");
    } catch (InputException ie) {
      return NULL;
    }

    EmuladorCache emuladorCache = CacheManager.getCacheDeEmuladores();
    EmuladorVO storedVO =
        (EmuladorVO) emuladorCache.getCacheComoHashMap().get(new Integer(idEmulador));
    if (storedVO == null) return NULL;

    setEmuladorFavorito();
    // busca bibliotecas utilizadas
    try {
      BibliotecaXemuladorDAO bibliotecaXemuladorDAO = BibliotecaXemuladorDAO.getinstance();
      Collection<?> libs = (Collection<?>) bibliotecaXemuladorDAO.buscaPorEmulador(idEmulador);
      output.setValue("libs", libs);
    } catch (DAOException e) {
      logger.error("Erro na busca de libs...", e);
    }

    // busca instalacoes
    try {
      RoteiroInstalacaoEmuDAO roteiroInstalacaoEmuDAO = RoteiroInstalacaoEmuDAO.getinstance();
      Collection<?> roteiros = (Collection<?>) roteiroInstalacaoEmuDAO.buscaPorEmulador(idEmulador);
      output.setValue("roteiros", roteiros);
    } catch (DAOException e) {
      logger.error("Erro na busca de roteiros...", e);
    }

    output.setValue("aba3", "S");
    output.setValue("nome", storedVO.getNome());
    output.setValue("notaGeral", storedVO.getNotaGeral());
    TopHelper.updateEmuladorHelper(idEmulador, output);
    return SUCCESS;
  }