Search in sources :

Example 1 with ReportContextType

use of fi.otavanopisto.pyramus.domainmodel.reports.ReportContextType in project pyramus by otavanopisto.

the class EditReportJSONRequestController method process.

/**
 * Processes the request to edit a report.
 *
 * @param requestContext The JSON request context
 */
public void process(JSONRequestContext requestContext) {
    ReportDAO reportDAO = DAOFactory.getInstance().getReportDAO();
    ReportCategoryDAO categoryDAO = DAOFactory.getInstance().getReportCategoryDAO();
    ReportContextDAO reportContextDAO = DAOFactory.getInstance().getReportContextDAO();
    Long reportId = requestContext.getLong("reportId");
    Report report = reportDAO.findById(reportId);
    Long reportCategoryId = requestContext.getLong("category");
    ReportCategory category = reportCategoryId == null ? null : categoryDAO.findById(reportCategoryId);
    String name = requestContext.getString("name");
    reportDAO.update(report, name, category);
    for (ReportContextType contextType : ReportContextType.values()) {
        ReportContext context = reportContextDAO.findByReportAndContextType(report, contextType);
        boolean selected = requestContext.getBoolean("context." + contextType.toString());
        if (selected && context == null)
            reportContextDAO.create(report, contextType);
        else if (!selected && context != null)
            reportContextDAO.delete(context);
    }
    requestContext.setRedirectURL(requestContext.getReferer(true));
}
Also used : ReportCategory(fi.otavanopisto.pyramus.domainmodel.reports.ReportCategory) Report(fi.otavanopisto.pyramus.domainmodel.reports.Report) ReportContextDAO(fi.otavanopisto.pyramus.dao.reports.ReportContextDAO) ReportCategoryDAO(fi.otavanopisto.pyramus.dao.reports.ReportCategoryDAO) ReportContextType(fi.otavanopisto.pyramus.domainmodel.reports.ReportContextType) ReportDAO(fi.otavanopisto.pyramus.dao.reports.ReportDAO) ReportContext(fi.otavanopisto.pyramus.domainmodel.reports.ReportContext)

Example 2 with ReportContextType

use of fi.otavanopisto.pyramus.domainmodel.reports.ReportContextType in project pyramus by otavanopisto.

the class ImportReportViewController method processForm.

@Override
public void processForm(PageRequestContext requestContext) {
    ReportDAO reportDAO = DAOFactory.getInstance().getReportDAO();
    ReportCategoryDAO categoryDAO = DAOFactory.getInstance().getReportCategoryDAO();
    ReportContextDAO reportContextDAO = DAOFactory.getInstance().getReportContextDAO();
    List<Report> reports = reportDAO.listAll();
    Collections.sort(reports, new StringAttributeComparator("getName"));
    JSONArray contextTypesJSON = new JSONArray();
    List<String> contextTypes = new ArrayList<>();
    for (ReportContextType contextType : ReportContextType.values()) {
        contextTypes.add(contextType.toString());
        contextTypesJSON.add(contextType.toString());
    }
    JSONArray reportsJSON = new JSONArray();
    for (Report report : reports) {
        JSONObject rObj = new JSONObject();
        List<ReportContext> contexts = reportContextDAO.listByReport(report);
        JSONArray rCtxs = new JSONArray();
        for (ReportContext ctx : contexts) {
            rCtxs.add(ctx.getContext().toString());
        }
        rObj.put("id", report.getId().toString());
        rObj.put("name", report.getName());
        rObj.put("category", report.getCategory() != null ? report.getCategory().getId() : "");
        rObj.put("contexts", rCtxs);
        reportsJSON.add(rObj);
    }
    List<ReportCategory> categories = categoryDAO.listAll();
    Collections.sort(categories, new Comparator<ReportCategory>() {

        public int compare(ReportCategory o1, ReportCategory o2) {
            if (o1.getIndexColumn() == o2.getIndexColumn() || o1.getIndexColumn().equals(o2.getIndexColumn())) {
                return o1.getName() == null ? -1 : o2.getName() == null ? 1 : o1.getName().compareTo(o2.getName());
            } else {
                return o1.getIndexColumn() == null ? -1 : o2.getIndexColumn() == null ? 1 : o1.getIndexColumn().compareTo(o2.getIndexColumn());
            }
        }
    });
    setJsDataVariable(requestContext, "reports", reportsJSON.toString());
    setJsDataVariable(requestContext, "contextTypes", contextTypesJSON.toString());
    requestContext.getRequest().setAttribute("reports", reports);
    requestContext.getRequest().setAttribute("reportCategories", categories);
    requestContext.getRequest().setAttribute("contextTypes", contextTypes);
    requestContext.setIncludeJSP("/templates/system/importreport.jsp");
}
Also used : ReportCategory(fi.otavanopisto.pyramus.domainmodel.reports.ReportCategory) Report(fi.otavanopisto.pyramus.domainmodel.reports.Report) ReportCategoryDAO(fi.otavanopisto.pyramus.dao.reports.ReportCategoryDAO) StringAttributeComparator(fi.otavanopisto.pyramus.util.StringAttributeComparator) JSONArray(net.sf.json.JSONArray) ArrayList(java.util.ArrayList) ReportContextType(fi.otavanopisto.pyramus.domainmodel.reports.ReportContextType) JSONObject(net.sf.json.JSONObject) ReportContextDAO(fi.otavanopisto.pyramus.dao.reports.ReportContextDAO) ReportDAO(fi.otavanopisto.pyramus.dao.reports.ReportDAO) ReportContext(fi.otavanopisto.pyramus.domainmodel.reports.ReportContext)

Example 3 with ReportContextType

use of fi.otavanopisto.pyramus.domainmodel.reports.ReportContextType in project pyramus by otavanopisto.

the class EditReportViewController method process.

/**
 * Processes the page request by including the corresponding JSP page to the response.
 *
 * @param pageRequestContext Page request context
 */
public void process(PageRequestContext pageRequestContext) {
    ReportDAO reportDAO = DAOFactory.getInstance().getReportDAO();
    ReportCategoryDAO categoryDAO = DAOFactory.getInstance().getReportCategoryDAO();
    ReportContextDAO reportContextDAO = DAOFactory.getInstance().getReportContextDAO();
    Long reportId = pageRequestContext.getLong("reportId");
    Report report = reportDAO.findById(reportId);
    List<ReportCategory> categories = categoryDAO.listAll();
    List<ReportContext> reportContexts = reportContextDAO.listByReport(report);
    Collections.sort(categories, new Comparator<ReportCategory>() {

        public int compare(ReportCategory o1, ReportCategory o2) {
            if (o1.getIndexColumn() == o2.getIndexColumn() || o1.getIndexColumn().equals(o2.getIndexColumn())) {
                return o1.getName() == null ? -1 : o2.getName() == null ? 1 : o1.getName().compareTo(o2.getName());
            } else {
                return o1.getIndexColumn() == null ? -1 : o2.getIndexColumn() == null ? 1 : o1.getIndexColumn().compareTo(o2.getIndexColumn());
            }
        }
    });
    Map<String, Boolean> selectedContexts = new HashMap<>();
    for (ReportContext context : reportContexts) selectedContexts.put(context.getContext().toString(), Boolean.TRUE);
    List<String> contextTypes = new ArrayList<>();
    for (ReportContextType contextType : ReportContextType.values()) contextTypes.add(contextType.toString());
    pageRequestContext.getRequest().setAttribute("report", report);
    pageRequestContext.getRequest().setAttribute("reportCategories", categories);
    pageRequestContext.getRequest().setAttribute("reportContexts", selectedContexts);
    pageRequestContext.getRequest().setAttribute("contextTypes", contextTypes);
    pageRequestContext.setIncludeJSP("/templates/reports/editreport.jsp");
}
Also used : ReportCategory(fi.otavanopisto.pyramus.domainmodel.reports.ReportCategory) Report(fi.otavanopisto.pyramus.domainmodel.reports.Report) HashMap(java.util.HashMap) ReportCategoryDAO(fi.otavanopisto.pyramus.dao.reports.ReportCategoryDAO) ArrayList(java.util.ArrayList) ReportContextType(fi.otavanopisto.pyramus.domainmodel.reports.ReportContextType) ReportContextDAO(fi.otavanopisto.pyramus.dao.reports.ReportContextDAO) ReportDAO(fi.otavanopisto.pyramus.dao.reports.ReportDAO) ReportContext(fi.otavanopisto.pyramus.domainmodel.reports.ReportContext)

Example 4 with ReportContextType

use of fi.otavanopisto.pyramus.domainmodel.reports.ReportContextType in project pyramus by otavanopisto.

the class ImportReportViewController method handleContexts.

private void handleContexts(PageRequestContext requestContext, Report report) {
    ReportContextDAO reportContextDAO = DAOFactory.getInstance().getReportContextDAO();
    for (ReportContextType contextType : ReportContextType.values()) {
        ReportContext context = reportContextDAO.findByReportAndContextType(report, contextType);
        boolean selected = requestContext.getBoolean("context." + contextType.toString());
        if (selected && context == null)
            reportContextDAO.create(report, contextType);
        else if (!selected && context != null)
            reportContextDAO.delete(context);
    }
}
Also used : ReportContextDAO(fi.otavanopisto.pyramus.dao.reports.ReportContextDAO) ReportContextType(fi.otavanopisto.pyramus.domainmodel.reports.ReportContextType) ReportContext(fi.otavanopisto.pyramus.domainmodel.reports.ReportContext)

Aggregations

ReportContextDAO (fi.otavanopisto.pyramus.dao.reports.ReportContextDAO)4 ReportContext (fi.otavanopisto.pyramus.domainmodel.reports.ReportContext)4 ReportContextType (fi.otavanopisto.pyramus.domainmodel.reports.ReportContextType)4 ReportCategoryDAO (fi.otavanopisto.pyramus.dao.reports.ReportCategoryDAO)3 ReportDAO (fi.otavanopisto.pyramus.dao.reports.ReportDAO)3 Report (fi.otavanopisto.pyramus.domainmodel.reports.Report)3 ReportCategory (fi.otavanopisto.pyramus.domainmodel.reports.ReportCategory)3 ArrayList (java.util.ArrayList)2 StringAttributeComparator (fi.otavanopisto.pyramus.util.StringAttributeComparator)1 HashMap (java.util.HashMap)1 JSONArray (net.sf.json.JSONArray)1 JSONObject (net.sf.json.JSONObject)1