/** * Change the order of a KPI color rule comparing to the other rules of the corresponding KPI. * * @param kpiColorRuleId the KPI color rule id * @param isDecrement if true then we decrement the order, else we increment it */ public Result changeRuleOrder(Long kpiColorRuleId, Boolean isDecrement) { KpiColorRule kpiColorRule = KpiColorRule.getById(kpiColorRuleId); KpiColorRule kpiColorRuleToReverse = null; if (isDecrement) { kpiColorRuleToReverse = KpiColorRule.getPrevious(kpiColorRule.kpiDefinition.id, kpiColorRule.order); } else { kpiColorRuleToReverse = KpiColorRule.getNext(kpiColorRule.kpiDefinition.id, kpiColorRule.order); } if (kpiColorRuleToReverse != null) { Integer newOrder = kpiColorRuleToReverse.order; kpiColorRuleToReverse.order = kpiColorRule.order; kpiColorRuleToReverse.save(); kpiColorRule.order = newOrder; kpiColorRule.save(); reloadKpiDefinition(kpiColorRule.kpiDefinition.uid); } return redirect( controllers.admin.routes.KpiManagerController.view(kpiColorRule.kpiDefinition.id)); }