Example usage for org.apache.commons.collections.comparators ComparatorChain addComparator

List of usage examples for org.apache.commons.collections.comparators ComparatorChain addComparator

Introduction

In this page you can find the example usage for org.apache.commons.collections.comparators ComparatorChain addComparator.

Prototype

public void addComparator(Comparator comparator) 

Source Link

Document

Add a Comparator to the end of the chain using the forward sort order

Usage

From source file:net.sourceforge.fenixedu.presentationTier.backBeans.departmentMember.ViewDepartmentTeachers.java

private List<ExecutionCourse> readLecturedExecutionCourses(DegreeType degreeType) throws FenixServiceException {

    String executionYearID = getSelectedExecutionYearID();

    List<ExecutionCourse> lecturedExecutionCourses = ReadLecturedExecutionCoursesByTeacherIDAndExecutionYearIDAndDegreeType
            .runReadLecturedExecutionCoursesByTeacherIDAndExecutionYearIDAndDegreeType(getSelectedTeacherID(),
                    executionYearID, degreeType);

    List<ExecutionCourse> result = new ArrayList<ExecutionCourse>();

    result.addAll(lecturedExecutionCourses);

    ComparatorChain comparatorChain = new ComparatorChain();
    BeanComparator executionYearComparator = new BeanComparator("executionPeriod.executionYear.year");
    BeanComparator semesterComparator = new BeanComparator("executionPeriod.semester");

    comparatorChain.addComparator(executionYearComparator);
    comparatorChain.addComparator(semesterComparator);

    Collections.sort(result, comparatorChain);

    return result;
}

From source file:net.sourceforge.fenixedu.presentationTier.backBeans.coordinator.evaluation.CoordinatorEvaluationManagementBackingBean.java

public List<SelectItem> getExecutionPeriodsLabels() {
    if (this.executionPeriodsLabels == null) {
        this.executionPeriodsLabels = new ArrayList();

        final List<InfoExecutionPeriod> infoExecutionPeriods = getExecutionPeriods();
        final ComparatorChain comparatorChain = new ComparatorChain();
        comparatorChain.addComparator(new ReverseComparator(new BeanComparator("infoExecutionYear.year")));
        comparatorChain.addComparator(new ReverseComparator(new BeanComparator("semester")));
        Collections.sort(infoExecutionPeriods, comparatorChain);
        for (final InfoExecutionPeriod infoExecutionPeriod : infoExecutionPeriods) {
            final SelectItem selectItem = new SelectItem();
            selectItem.setValue(infoExecutionPeriod.getExternalId());
            selectItem.setLabel(infoExecutionPeriod.getName() + " - "
                    + infoExecutionPeriod.getInfoExecutionYear().getYear());
            this.executionPeriodsLabels.add(selectItem);
        }//w w  w .  j a v a2 s  . c o  m
    }
    return this.executionPeriodsLabels;
}

From source file:net.sourceforge.fenixedu.presentationTier.Action.coordinator.DegreeCurricularPlanManagementDispatchAction.java

private void sortCurricularCourses(HttpServletRequest request, InfoCurriculum infoCurriculum) {
    // order list by year, semester
    if (infoCurriculum.getInfoCurricularCourse() != null) {
        ComparatorChain comparatorChain = new ComparatorChain();
        comparatorChain.addComparator(new BeanComparator("infoCurricularSemester.infoCurricularYear.year"));
        comparatorChain.addComparator(new BeanComparator("infoCurricularSemester.semester"));
        comparatorChain.addComparator(new BeanComparator("infoCurricularCourse.name"));
        Collections.sort(infoCurriculum.getInfoCurricularCourse().getInfoScopes(), comparatorChain);

        request.setAttribute("infoCurriculum", infoCurriculum);
    }/*from   w w  w.  j av a 2s  .  co  m*/
}

From source file:net.sourceforge.fenixedu.presentationTier.Action.coordinator.DegreeCurricularPlanManagementDispatchAction.java

public ActionForward showActiveCurricularCourses(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response) throws FenixActionException {

    final String degreeCurricularPlanID = getAndSetStringToRequest("degreeCurricularPlanID", request);
    List activeCurricularCourseScopes = null;
    try {/*from w  w  w. j  a v a 2  s  .c o  m*/
        activeCurricularCourseScopes = ReadActiveDegreeCurricularPlanScopes
                .runReadActiveDegreeCurricularPlanScopes(degreeCurricularPlanID);

    } catch (FenixServiceException e) {
        if (e.getMessage().equals("nullDegree")) {
            addErrorMessage(request, "nullCode", "error.coordinator.noExecutionDegree");
        } else {
            throw new FenixActionException(e);
        }
    }

    if (activeCurricularCourseScopes == null || activeCurricularCourseScopes.size() == 0) {
        addErrorMessage(request, "noDegreeCurricularPlan", "error.nonExisting.AssociatedCurricularCourses");
        return mapping.findForward("showActiveCurricularCourses");
    }

    // order list by year, next semester, next course
    final ComparatorChain comparatorChain = new ComparatorChain();
    comparatorChain.addComparator(new BeanComparator("infoCurricularSemester.infoCurricularYear.year"));
    comparatorChain.addComparator(new BeanComparator("infoCurricularSemester.semester"));
    comparatorChain.addComparator(new BeanComparator("infoCurricularCourse.name"));
    Collections.sort(activeCurricularCourseScopes, comparatorChain);

    request.setAttribute("allActiveCurricularCourseScopes", activeCurricularCourseScopes);

    return mapping.findForward("showActiveCurricularCourses");
}

From source file:com.safetys.framework.jmesa.core.sort.ComparableAwareColumnSort.java

@SuppressWarnings("unchecked")
public Collection<?> sortItems(Collection<?> items, Limit limit) {
    if (items.isEmpty()) {
        return items;
    }/*ww w  .ja v  a 2  s .  co  m*/

    ComparatorChain chain = new ComparatorChain();
    SortSet sortSet = limit.getSortSet();

    for (Sort sort : sortSet.getSorts()) {
        Class<?> type = null;

        try {
            type = getPropertyClassType(items, sort.getProperty());
        } catch (Exception e) {
            logger.error("Had problems getting the column sort type.", e);
        }

        if (type != null && Comparable.class.isAssignableFrom(type)) {
            if (sort.getOrder() == Order.ASC) {
                chain.addComparator(new BeanComparator(sort.getProperty(),
                        new NullComparator(ComparableComparator.getInstance())));
            } else if (sort.getOrder() == Order.DESC) {
                chain.addComparator(new BeanComparator(sort.getProperty(),
                        new NullComparator(ComparableComparator.getInstance())), true);
            }
        } else if (sort.getOrder() == Order.ASC) {
            chain.addComparator(new BeanComparator(sort.getProperty(), new NullComparator()));
        } else if (sort.getOrder() == Order.DESC) {
            chain.addComparator(new BeanComparator(sort.getProperty(), new NullComparator()), true);
        }
    }

    if (chain.size() > 0) {
        Collections.sort((List<?>) items, chain);
    }

    return items;
}

From source file:net.sourceforge.fenixedu.presentationTier.Action.coordinator.DegreeCurricularPlanManagementDispatchAction.java

public ActionForward showCurricularCoursesHistory(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response) throws FenixActionException {

    String degreeCurricularPlanID = getAndSetStringToRequest("degreeCurricularPlanID", request);

    InfoDegreeCurricularPlan infoDegreeCurricularPlan = null;

    try {/*from  www.  jav  a2  s.  co m*/
        infoDegreeCurricularPlan = ReadDegreeCurricularPlanHistoryByDegreeCurricularPlanID
                .run(degreeCurricularPlanID);

    } catch (NonExistingServiceException e) {
        addErrorMessage(request, "chosenDegree", "error.coordinator.noExecutionDegree");
    } catch (FenixServiceException e) {
        if (e.getMessage().equals("nullDegree")) {
            addErrorMessage(request, "nullCode", "error.coordinator.noExecutionDegree");
        } else {
            throw new FenixActionException(e);
        }
    }

    if (infoDegreeCurricularPlan == null) {
        addErrorMessage(request, "noDegreeCurricularPlan", "error.nonExisting.AssociatedCurricularCourses");
    }

    if (infoDegreeCurricularPlan != null && infoDegreeCurricularPlan.getCurricularCourses() != null) {

        // order list by year, next semester, next course
        List<InfoCurricularCourseScope> allCurricularCourseScopes = new ArrayList<InfoCurricularCourseScope>();
        Iterator iter = infoDegreeCurricularPlan.getCurricularCourses().listIterator();
        while (iter.hasNext()) {
            InfoCurricularCourse infoCurricularCourse = (InfoCurricularCourse) iter.next();
            allCurricularCourseScopes.addAll(getInfoCurricularCourseScopes(infoCurricularCourse));
        }
        ComparatorChain comparatorChain = new ComparatorChain();
        comparatorChain.addComparator(new BeanComparator("infoCurricularSemester.infoCurricularYear.year"));
        comparatorChain.addComparator(new BeanComparator("infoCurricularSemester.semester"));
        comparatorChain.addComparator(new BeanComparator("infoCurricularCourse.name"));
        comparatorChain.addComparator(new BeanComparator("beginDate.time"));
        Collections.sort(allCurricularCourseScopes, comparatorChain);

        // build hashmap for jsp
        HashMap<String, List<InfoCurricularCourseScope>> curricularCourseScopesHashMap = new HashMap<String, List<InfoCurricularCourseScope>>();
        String lastKey = null;
        Iterator<InfoCurricularCourseScope> iterCurricularCourseScopes = allCurricularCourseScopes.iterator();
        while (iterCurricularCourseScopes.hasNext()) {
            InfoCurricularCourseScope curricularCourseScope = iterCurricularCourseScopes.next();

            List<InfoCurricularCourseScope> equalCurricularCourseScopes = null;
            if (lastKey != null) {
                InfoCurricularCourseScope lastIntroduced = curricularCourseScopesHashMap.get(lastKey).iterator()
                        .next();

                if (scopesAreEqual(curricularCourseScope, lastIntroduced)) {
                    equalCurricularCourseScopes = curricularCourseScopesHashMap.get(lastKey);
                    equalCurricularCourseScopes.add(curricularCourseScope);
                    curricularCourseScopesHashMap.put(lastKey, equalCurricularCourseScopes);
                    continue;
                }
            }
            equalCurricularCourseScopes = new ArrayList<InfoCurricularCourseScope>();
            equalCurricularCourseScopes.add(curricularCourseScope);
            curricularCourseScopesHashMap.put(curricularCourseScope.getExternalId(),
                    equalCurricularCourseScopes);
            lastKey = curricularCourseScope.getExternalId();
        }
        request.setAttribute("allCurricularCourseScopes", allCurricularCourseScopes);
        request.setAttribute("curricularCourseScopesHashMap", curricularCourseScopesHashMap);
    }
    return mapping.findForward("showCurricularCoursesHistory");
}

From source file:net.sourceforge.fenixedu.presentationTier.Action.administrativeOffice.serviceRequests.AcademicServiceRequestsManagementDispatchAction.java

private Comparator getComparator(HttpServletRequest request) {
    final String orderParameter = request.getParameter(ORDER_PARAMETER);
    final String orderGetter = StringUtils.isEmpty(orderParameter) ? DEFAULT_ORDER_GETTER
            : orderParameter.substring(0, orderParameter.indexOf(ORDER_MARKER));

    final String orderDir = StringUtils.isEmpty(orderParameter) ? DEFAULT_ORDER_DIR
            : orderParameter.substring(orderParameter.indexOf(ORDER_MARKER) + 1, orderParameter.length());
    final boolean orderAsc = Arrays.asList(ASC_ORDER_DIR).contains(orderDir);

    if (orderGetter.equals(REQUEST_NUMBER_YEAR)) {
        return orderAsc ? AcademicServiceRequest.COMPARATOR_BY_NUMBER
                : new ReverseComparator(AcademicServiceRequest.COMPARATOR_BY_NUMBER);
    } else if (orderGetter.equals(EXECUTION_YEAR)) {
        return orderAsc ? AcademicServiceRequest.EXECUTION_YEAR_AND_OID_COMPARATOR
                : new ReverseComparator(AcademicServiceRequest.EXECUTION_YEAR_AND_OID_COMPARATOR);
    } else if (orderGetter.equals(REGISTRATION_NUMBER) || orderGetter.equals(DESCRIPTION)
            || orderGetter.equals(URGENT_REQUEST) || orderGetter.equals(REGISTRATION_NUMBER)
            || orderGetter.equals(REQUEST_DATE) || orderGetter.equals(ACTIVE_SITUATION_DATE)) {
        final ComparatorChain chain = new ComparatorChain();
        chain.addComparator(orderAsc ? new BeanComparator(orderGetter)
                : new ReverseComparator(new BeanComparator(orderGetter)));
        chain.addComparator(DomainObjectUtil.COMPARATOR_BY_ID);
        return chain;
    }/*from  w  w  w. jav a 2 s .  c  om*/

    return null;
}

From source file:net.sourceforge.fenixedu.presentationTier.renderers.VigilantTableRender.java

@Override
protected Layout getLayout(Object object, Class type) {
    ComparatorChain chain = new ComparatorChain();
    chain.addComparator(VigilantWrapper.CATEGORY_COMPARATOR);
    chain.addComparator(VigilantWrapper.USERNAME_COMPARATOR);

    this.group = (VigilantGroup) object;
    List<VigilantWrapper> vigilants = new ArrayList<VigilantWrapper>(this.group.getVigilantWrappersSet());

    Collections.sort(vigilants, chain);

    return new VigilantTableRenderLayout(vigilants);
}

From source file:net.sourceforge.fenixedu.presentationTier.Action.vigilancy.VigilantGroupManagement.java

public ActionForward showPoints(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {

    String vigilantGroupId = request.getParameter("oid");
    VigilantGroup group = (VigilantGroup) FenixFramework.getDomainObject(vigilantGroupId);

    List<VigilantWrapper> vigilantWrappers = group.getVigilantWrappersThatCanBeConvoked();
    ComparatorChain chain = new ComparatorChain();
    chain.addComparator(VigilantWrapper.CATEGORY_COMPARATOR);
    chain.addComparator(VigilantWrapper.USERNAME_COMPARATOR);
    chain.addComparator(VigilantWrapper.NAME_COMPARATOR);
    Collections.sort(vigilantWrappers, chain);
    request.setAttribute("vigilants", vigilantWrappers);
    request.setAttribute("group", group);

    return mapping.findForward("showPoints");
}

From source file:net.sourceforge.fenixedu.presentationTier.Action.vigilancy.VigilantGroupManagement.java

public ActionForward prepareBoundPropertyEdition(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response) throws Exception {

    String groupId = request.getParameter("oid");

    VigilantGroup group = (VigilantGroup) FenixFramework.getDomainObject(groupId);

    List<VigilantWrapper> vigilantWrappers = new ArrayList<VigilantWrapper>(group.getVigilantWrappersSet());
    ComparatorChain chain = new ComparatorChain();
    chain.addComparator(VigilantWrapper.CATEGORY_COMPARATOR);
    chain.addComparator(VigilantWrapper.USERNAME_COMPARATOR);
    chain.addComparator(VigilantWrapper.NAME_COMPARATOR);
    Collections.sort(vigilantWrappers, chain);
    request.setAttribute("vigilantWrappers", vigilantWrappers);
    request.setAttribute("group", group);
    return mapping.findForward("editVigilantBounds");
}