package ua.kpi.ecampus.ui.presenter; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.inject.Inject; import ua.kpi.ecampus.model.Rating; import ua.kpi.ecampus.model.dao.IDataAccessObject; import ua.kpi.ecampus.model.dao.VotingDao; import ua.kpi.ecampus.model.pojo.Item; import ua.kpi.ecampus.model.pojo.VoteSet; import ua.kpi.ecampus.model.pojo.VoteTeacher; import ua.kpi.ecampus.model.pojo.VoteTerm; import ua.kpi.ecampus.ui.Navigator; import ua.kpi.ecampus.util.DateUtil; /** * Created by Administrator on 01.06.2016. */ public class VotingStudentPresenter extends BasePresenter { private IView mView; private IDataAccessObject<VoteSet> mDataAccess; private Navigator mNavigator; @Inject public VotingStudentPresenter(Navigator navigator) { mDataAccess = new VotingDao(); mNavigator = navigator; } public void setView(IView view) { mView = view; } @Override public void initializeViewComponent() { mView.setViewComponent(); } public void loadVoting() { // load makeStubData(); setResult(); } private void makeStubData() { List<VoteSet> set = new ArrayList<>(); VoteSet vs = new VoteSet(); List<VoteTerm> terms = new ArrayList<>(); terms.add(new VoteTerm(1, "2015-2016", "2015-09-01", "2016-09-01")); terms.add(new VoteTerm(2, "2014-2015", "2014-09-01", "2015-09-01")); List<Rating> criteria = new ArrayList<>(); criteria.add(new Rating(3F, "1")); criteria.add(new Rating(4F, "2")); criteria.add(new Rating(3F, "3")); criteria.add(new Rating(4F, "4")); criteria.add(new Rating(3F, "5")); criteria.add(new Rating(4F, "6")); List<VoteTeacher> teachers = new ArrayList<>(); VoteTeacher t = new VoteTeacher(1, 1, "Крилов Євген " + "Володимирович", false, "4.0"); t.setCriteria(criteria); teachers.add(t); t = new VoteTeacher(1, 2, "Лісовиченко Олег Іванович", false, "4.3"); t.setCriteria(criteria); teachers.add(t); t = new VoteTeacher(1, 3, "Мелкумян Катерина Юріївна", false, "4.3"); t.setCriteria(criteria); teachers.add(t); t = new VoteTeacher(2, 4, "Олійник Волдимир Валентинович", false, "4" + ".3"); t.setCriteria(criteria); teachers.add(t); vs.setTeachers(teachers); vs.setTerms(terms); mDataAccess.setData(new ArrayList<VoteSet>() {{ add(vs); }}); } public void setResult() { List<VoteTerm> terms = getVoting().getTerms(); List<Item> termNames = new ArrayList<>(); for (VoteTerm t : terms) { Item i = new Item(t.getVoteId(), t.getVoteName()); termNames.add(i); } mView.setTermsSpinner(termNames); } public void setSpecificAdapter() { VoteSet voting = getVoting(); VoteTerm latestTerm = voting.getTerms().get(0); if (isVotePeriod(latestTerm.getDateStop())) { // voting adapter mView.setVoteInProgressAdapter(voting.getTeachers()); } else { // resulting adapter mView.setVoteEndedAdapter(voting.getTeachers()); } } public VoteSet getVoting() { return mDataAccess.getData().iterator().next(); } public void onItemClick(Object item) { mNavigator.startRatingActivity((VoteTeacher)item); } private boolean isVotePeriod(String endDate) { Date currentDate = DateUtil.convert(DateUtil.getCurrentDate()); return !currentDate.after(DateUtil.convert(endDate)); } public interface IView { void setViewComponent(); void setTermsSpinner(List<Item> terms); void setVoteInProgressAdapter(List<VoteTeacher> teachers); void setVoteEndedAdapter(List<VoteTeacher> teachers); } }