/**
   * Metoda puni Spinner koji se odnosi na odabir kategorije sa svim kategorijama koje se nalaze u
   * aplikacijskoj bazi.
   */
  private void fillCategorySpinner() {
    categoryList = dbc.getCategories();
    ArrayList<String> listaNazivaKategorija = new ArrayList<>();
    for (int i = 0; i < categoryList.size(); i++) {
      listaNazivaKategorija.add(categoryList.get(i).getName());
    }
    ArrayAdapter<String> adapterKategorija =
        new ArrayAdapter<String>(ctx, android.R.layout.simple_spinner_item, listaNazivaKategorija);

    spnCategory.setAdapter(adapterKategorija);
  }
  /**
   * Metoda, u osnovi, inicira GUI u modu za azuriranje postojećeg cilja. To se koknretnije odnosi
   * na popunjavanje odgovarajucih polja za input sa trenutnim atributima cilja koji se azurira.
   * Takodjer se postavljaju vrijednosti teksta podnaslova Activity - a i Button - a za potvru, na
   * odgovarajucu vrijednost.
   */
  private void initUpdateForm() {
    toolbar.setSubtitle(getString(R.string.updateExistingGoal));
    Intent intent = getIntent();
    int goalId = intent.getIntExtra(getResources().getString(R.string.extraGoalIdTag), -1);

    if (goalId == -1) {
      Toast.makeText(ctx, getResources().getString(R.string.errorMessage), Toast.LENGTH_SHORT)
          .show();
      onBackPressed();
      return;
    }
    ArrayList<Goal> goals = dbc.getGoals();
    updatingGoal = new Goal();
    int i = 0;
    for (; i < goals.size(); i++) {
      if (goals.get(i).getId() == goalId) {
        updatingGoal = goals.get(i);
        break;
      }
    }
    txtName.setText(updatingGoal.getName());
    txtComment.setText(updatingGoal.getComment());

    int temp = -1;
    if (updatingGoal.getHigherGoal() == null) temp = -1;
    else {
      Goal higherGoal = HigherGoalGenerator.getHigherGoal(updatingGoal);

      for (int j = 0; j < goals.size(); j++) {
        try {
          if (goals.get(j).getId() == higherGoal.getId()) {
            temp = j;
            break;
          }
        } catch (Exception e) {

        }
      }
    }
    final int higherGoalIndex = temp + 1;
    spnHigherGoal.post(
        new Runnable() {
          @Override
          public void run() {
            spnHigherGoal.setSelection(higherGoalIndex);
          }
        });

    btnChooseDate.setText(DataParser.dateToString(updatingGoal.getDeadline()));
    rbPriority.setRating(updatingGoal.getPriority());

    ArrayList<Category> categories = dbc.getCategories();
    i = 0;
    for (; i < categories.size(); i++) {
      if (categories.get(i).getId() == updatingGoal.getCategory().getId()) {
        final int categoryIndex = i;

        spnCategory.post(
            new Runnable() {
              @Override
              public void run() {
                spnCategory.setSelection(categoryIndex);
              }
            });
        break;
      }
    }
  }