diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningModel.java index 6df941e66..3d1be78d4 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningModel.java @@ -345,15 +345,21 @@ public class CompanyPlanningModel implements ICompanyPlanningModel { LocalDate date = new LocalDate(datebox.getValue()); org.zkoss.zk.ui.Component child = vbox .getFellow("indicatorsTable"); - vbox.removeChild(child); - vbox.appendChild(getEarnedValueChartConfigurableLegend( - earnedValueChartFiller, date)); + updateEarnedValueChartLegend(vbox, earnedValueChartFiller, date); dateInfutureMessage(datebox); } }); } + private void updateEarnedValueChartLegend(Vbox vbox, + CompanyEarnedValueChartFiller earnedValueChartFiller, LocalDate date) { + for (EarnedValueType type : EarnedValueType.values()) { + Label valueLabel = (Label) vbox.getFellow(type.toString()); + valueLabel.setValue(getLabelTextEarnedValueType(earnedValueChartFiller, type, date)); + } + } + private void dateInfutureMessage(Datebox datebox) { Date value = datebox.getValue(); Date today = LocalDate.fromDateFields(new Date()) @@ -466,16 +472,9 @@ public class CompanyPlanningModel implements ICompanyPlanningModel { checkbox.setAttribute("indicator", type); checkbox.setStyle("color: " + type.getColor()); - BigDecimal value = earnedValueChartFiller.getIndicator(type, date) != null ? earnedValueChartFiller - .getIndicator(type, date) - : BigDecimal.ZERO; - String units = _("h"); - if (type.equals(EarnedValueType.CPI) - || type.equals(EarnedValueType.SPI)) { - value = value.multiply(new BigDecimal(100)); - units = "%"; - } - Label valueLabel = new Label(value.intValue() + " " + units); + Label valueLabel = new Label(getLabelTextEarnedValueType( + earnedValueChartFiller, type, date)); + valueLabel.setId(type.toString()); Hbox hbox = new Hbox(); hbox.appendChild(checkbox); @@ -506,6 +505,20 @@ public class CompanyPlanningModel implements ICompanyPlanningModel { return mainhbox; } + private String getLabelTextEarnedValueType( + CompanyEarnedValueChartFiller earnedValueChartFiller, + EarnedValueType type, LocalDate date) { + BigDecimal value = earnedValueChartFiller.getIndicator(type, date) != null ? earnedValueChartFiller + .getIndicator(type, date) : BigDecimal.ZERO; + String units = _("h"); + if (type.equals(EarnedValueType.CPI) + || type.equals(EarnedValueType.SPI)) { + value = value.multiply(new BigDecimal(100)); + units = "%"; + } + return value.intValue() + " " + units; + } + private void markAsSelectedDefaultIndicators() { for (Checkbox checkbox : earnedValueChartConfigurationCheckboxes) { EarnedValueType type = (EarnedValueType) checkbox diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java index 8f76bce12..4bfa9aef7 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java @@ -805,9 +805,16 @@ public class OrderPlanningModel implements IOrderPlanningModel { LocalDate date = new LocalDate(earnedValueChartLegendDatebox.getRawValue()); org.zkoss.zk.ui.Component child = earnedValueChartLegendContainer .getFellow("indicatorsTable"); - earnedValueChartLegendContainer.removeChild(child); - earnedValueChartLegendContainer.appendChild(getEarnedValueChartConfigurableLegend( - earnedValueChartFiller, date)); + updateEarnedValueChartLegend(date); + } + + private void updateEarnedValueChartLegend(LocalDate date) { + for (EarnedValueType type : EarnedValueType.values()) { + Label valueLabel = (Label) earnedValueChartLegendContainer + .getFellow(type.toString()); + valueLabel.setValue(getLabelTextEarnedValueType( + earnedValueChartFiller, type, date)); + } } private org.zkoss.zk.ui.Component getEarnedValueChartConfigurableLegend( @@ -832,15 +839,9 @@ public class OrderPlanningModel implements IOrderPlanningModel { checkbox.setAttribute("indicator", type); checkbox.setStyle("color: " + type.getColor()); - BigDecimal value = earnedValueChartFiller.getIndicator(type, date); - String units = _("h"); - if (type.equals(EarnedValueType.CPI) - || type.equals(EarnedValueType.SPI)) { - value = value.multiply(new BigDecimal(100)); - units = "%"; - } - Label valueLabel = new Label( - value.setScale(0, RoundingMode.HALF_UP) + " " + units); + Label valueLabel = new Label(getLabelTextEarnedValueType( + earnedValueChartFiller, type, date)); + valueLabel.setId(type.toString()); Hbox hbox = new Hbox(); hbox.appendChild(checkbox); @@ -871,6 +872,19 @@ public class OrderPlanningModel implements IOrderPlanningModel { return mainhbox; } + private String getLabelTextEarnedValueType( + OrderEarnedValueChartFiller earnedValueChartFiller, + EarnedValueType type, LocalDate date) { + BigDecimal value = earnedValueChartFiller.getIndicator(type, date); + String units = _("h"); + if (type.equals(EarnedValueType.CPI) + || type.equals(EarnedValueType.SPI)) { + value = value.multiply(new BigDecimal(100)); + units = "%"; + } + return value.setScale(0, RoundingMode.HALF_UP) + " " + units; + } + private void markAsSelectedDefaultIndicators() { for (Checkbox checkbox : earnedValueChartConfigurationCheckboxes) { EarnedValueType type = (EarnedValueType) checkbox