private void loadEstudosIntoGridViewFromAcompanhamento(Acompanhamento acompanhamento) {
   try {
     estudoBO.open();
     assuntoBO.open();
     // O acompanhamento já esteja persistido no BD e sua lista de estudos esteja vazia?
     if (acompanhamento.getEstudos().size() == 0
         && acompanhamento.getId() != null
         && acompanhamento.getId() > 0) {
       // sim -> pesquisa por possíveis estudos persistidos no BD deste acomp e se houver os inclui
       // na coleção de estudos do acomp:
       List<Estudo> estudosJaExistentes =
           estudoBO.selectEstudosFromAcompanhamentoId(acompanhamento.getId());
       for (Estudo estudo : estudosJaExistentes) {
         Assunto assunto = assuntoBO.selectOneById(estudo.getAssunto().getId());
         estudo.setAssunto(assunto);
         estudosAdapter.add(estudo);
       }
     }
   } catch (QueryModelException e) {
     e.printStackTrace();
     Toast.makeText(
             this,
             getString(R.string.failed_loading_model_list, Estudo.ACTUAL_NAME),
             Toast.LENGTH_LONG)
         .show();
   } finally {
     assuntoBO.close();
     estudoBO.close();
   }
 }
  public void fillSpnAssuntosFromIdDisciplina(long idDisciplina) {
    assuntosAdapter.clear();
    if (idDisciplina <= 0) {
      return;
    }

    List<Assunto> assuntos = null;
    try {
      assuntoBO.open();
      assuntos = assuntoBO.selectRootAssuntosByDisciplinaId((int) idDisciplina);
      assuntosAdapter.clear();
      assuntosAdapter.addAll(assuntos);
      Spinner spnAssuntos = getAssuntosSpinner();
      spnAssuntos.setAdapter(assuntosAdapter);
    } catch (QueryModelException ex) {
      ex.printStackTrace();
      Toast.makeText(
              this,
              getString(R.string.failed_loading_model_list, Disciplina.ACTUAL_NAME),
              Toast.LENGTH_LONG)
          .show();
    }
  }