/** * 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); }
/** * Azurira atribut koji se odnosi na kategoriju na svim ciljevima u bazi koji predstavljaju * (posredne i neposredne) podciljeve onog cilja koji se azurira. Katgoriju im postavlja na * vrijednost koja je novo - postavljena ažuriranom cilju. * * @param updatedGoal - Goal koji se ažurira * @param newCategory - Novo - postavljena kategorija ažuriranog cilja */ private void updateSubgoalsCategories(Goal updatedGoal, Category newCategory) { ArrayList<Goal> subGoals = SubGoalGenerator.getSubGoals(updatedGoal); for (int i = 0; i < subGoals.size(); i++) { subGoals.get(i).setCategory(newCategory); dbc.updateGoal( subGoals.get(i).getId(), subGoals.get(i).getName(), subGoals.get(i).getDeadline(), subGoals.get(i).getPriority(), subGoals.get(i).getCategory(), subGoals.get(i).isAchieved(), subGoals.get(i).getHigherGoal(), subGoals.get(i).getComment()); updateSubgoalsCategories(subGoals.get(i), newCategory); } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(com.foi.air.goalsettingassistant.app.R.layout.activity_input_goal); setToolbar(); ctx = this; name = ""; deadline = null; priority = 0; category = null; higherGoal = null; comment = ""; dbc = DBConnector.getInstance(); txtName = (EditText) findViewById(com.foi.air.goalsettingassistant.app.R.id.txtName); setBtnChooseDate(); setTxtComment(); setBtnConfirm(); setRbPriority(); setSpnHigherGoal(); setSpnCategory(); setBtnModifySetOfCategories(); if (isUpdate()) initUpdateForm(); }
/** * Metoda daje podatke i funkcionalnosti Spinner - u koji se odnosi na postavljanje nadcilja. * Podaci se odnose na skup svih ciljeva u aplikacijskoj bazi, a funkcionalnost na dodjelu * vrijednosti prilikom nekog odabira. */ private void setSpnHigherGoal() { spnHigherGoal = (Spinner) findViewById(com.foi.air.goalsettingassistant.app.R.id.spnHighergoal); goalList = dbc.getGoals(); ArrayList<String> listaNazivaCiljeva = new ArrayList<>(); listaNazivaCiljeva.add(getString(R.string.noHigherGoal)); for (int i = 0; i < goalList.size(); i++) { listaNazivaCiljeva.add( goalList.get(i).getName() + getString(R.string.categoryBracket) + goalList.get(i).getCategory().getName() + ")"); } ArrayAdapter<String> adapterCiljeva = new ArrayAdapter<String>(ctx, android.R.layout.simple_spinner_item, listaNazivaCiljeva); spnHigherGoal.setAdapter(adapterCiljeva); spnHigherGoal.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { if (pos == 0) { higherGoal = null; return; } pos = pos - 1; higherGoal = goalList.get(pos); } @Override public void onNothingSelected(AdapterView<?> parent) { higherGoal = null; } }); }
/** * 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; } } }