package fi.otavanopisto.pyramus.views.system.setupwizard;
import java.util.List;
import fi.internetix.smvc.controllers.PageRequestContext;
import fi.otavanopisto.pyramus.dao.DAOFactory;
import fi.otavanopisto.pyramus.dao.base.EducationSubtypeDAO;
import fi.otavanopisto.pyramus.dao.base.EducationTypeDAO;
import fi.otavanopisto.pyramus.domainmodel.base.EducationType;
import fi.otavanopisto.pyramus.util.JSONArrayExtractor;
public class EducationSubtypesSetupWizardViewController extends SetupWizardController {
public EducationSubtypesSetupWizardViewController() {
super("educationsubtypes");
}
@Override
public void setup(PageRequestContext requestContext) throws SetupWizardException {
EducationTypeDAO educationTypeDAO = DAOFactory.getInstance().getEducationTypeDAO();
List<EducationType> educationTypes = educationTypeDAO.listUnarchived();
this.setJsDataVariable(requestContext, "educationTypes", new JSONArrayExtractor("name", "id").extractString(educationTypes));
}
@Override
public void save(PageRequestContext requestContext) throws SetupWizardException {
EducationSubtypeDAO educationSubtypeDAO = DAOFactory.getInstance().getEducationSubtypeDAO();
EducationTypeDAO educationTypeDAO = DAOFactory.getInstance().getEducationTypeDAO();
int rowCount = requestContext.getInteger("educationSubtypesTable.rowCount");
for (int i = 0; i < rowCount; i++) {
String colPrefix = "educationSubtypesTable." + i;
String name = requestContext.getString(colPrefix + ".name");
String code = requestContext.getString(colPrefix + ".code");
Long educationTypeId = requestContext.getLong(colPrefix + ".educationTypeId");
EducationType educationType = null;
if (educationTypeId != null) {
educationType = educationTypeDAO.findById(educationTypeId);
}
educationSubtypeDAO.create(educationType, name, code);
}
}
@Override
public boolean isInitialized(PageRequestContext requestContext) throws SetupWizardException {
EducationSubtypeDAO educationSubtypeDAO = DAOFactory.getInstance().getEducationSubtypeDAO();
return !educationSubtypeDAO.listUnarchived().isEmpty();
}
}