Bug #1335: Update the earned value chart legend every time the chart is reloaded.
To be able to do it, some local variables were moved to a wider scope (private class-level attributes). FEA: ItEr76S04BugFixing
This commit is contained in:
parent
39b582d5ab
commit
405d788a0d
1 changed files with 37 additions and 12 deletions
|
|
@ -383,7 +383,7 @@ public class OrderPlanningModel implements IOrderPlanningModel {
|
|||
|
||||
// Create 'Earned value' tab
|
||||
Timeplot chartEarnedValueTimeplot = createEmptyTimeplot();
|
||||
OrderEarnedValueChartFiller earnedValueChartFiller = createOrderEarnedValueChartFiller(planner.getTimeTracker());
|
||||
this.earnedValueChartFiller = createOrderEarnedValueChartFiller(planner.getTimeTracker());
|
||||
chartTabpanels.appendChild(createEarnedValueTab(chartEarnedValueTimeplot, earnedValueChartFiller));
|
||||
|
||||
// Create 'Overall progress' tab
|
||||
|
|
@ -413,6 +413,8 @@ public class OrderPlanningModel implements IOrderPlanningModel {
|
|||
+ (System.currentTimeMillis() - overalProgressContentTime));
|
||||
}
|
||||
|
||||
private OrderEarnedValueChartFiller earnedValueChartFiller;
|
||||
|
||||
private void setupAdvanceAssignmentPlanningController(final Planner planner,
|
||||
AdvanceAssignmentPlanningController advanceAssignmentPlanningController) {
|
||||
|
||||
|
|
@ -447,7 +449,11 @@ public class OrderPlanningModel implements IOrderPlanningModel {
|
|||
return null;
|
||||
}
|
||||
if (planner.isVisibleChart()) {
|
||||
earnedValueChart.fillChart(); //update earned value chart
|
||||
//update earned value chart
|
||||
earnedValueChart.fillChart();
|
||||
//update earned value legend
|
||||
updateEarnedValueChartLegend(new LocalDate(
|
||||
earnedValueChartLegendDatebox.getValue()));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
@ -508,10 +514,14 @@ public class OrderPlanningModel implements IOrderPlanningModel {
|
|||
return result;
|
||||
}
|
||||
|
||||
private Vbox earnedValueChartLegendContainer;
|
||||
private Datebox earnedValueChartLegendDatebox;
|
||||
|
||||
private void appendEarnedValueChartAndLegend(
|
||||
Tabpanel earnedValueChartPannel, Timeplot chartEarnedValueTimeplot,
|
||||
final OrderEarnedValueChartFiller earnedValueChartFiller) {
|
||||
Vbox vbox = new Vbox();
|
||||
this.earnedValueChartLegendContainer = vbox;
|
||||
vbox.setClass("legend-container");
|
||||
vbox.setAlign("center");
|
||||
vbox.setPack("center");
|
||||
|
|
@ -522,6 +532,7 @@ public class OrderPlanningModel implements IOrderPlanningModel {
|
|||
LocalDate initialDateForIndicatorValues = earnedValueChartFiller.initialDateForIndicatorValues();
|
||||
Datebox datebox = new Datebox(initialDateForIndicatorValues
|
||||
.toDateTimeAtStartOfDay().toDate());
|
||||
this.earnedValueChartLegendDatebox = datebox;
|
||||
datebox.setConstraint(dateMustBeInsideVisualizationArea(earnedValueChartFiller));
|
||||
dateHbox.appendChild(datebox);
|
||||
|
||||
|
|
@ -551,7 +562,7 @@ public class OrderPlanningModel implements IOrderPlanningModel {
|
|||
Chart loadChart = setupChart(planningState.getOrder(),
|
||||
new OrderLoadChartFiller(planningState.getOrder()),
|
||||
chartLoadTimeplot, planner);
|
||||
refillLoadChartWhenNeeded(changeHooker, planner, loadChart);
|
||||
refillLoadChartWhenNeeded(changeHooker, planner, loadChart, false);
|
||||
}
|
||||
|
||||
private Chart earnedValueChart;
|
||||
|
|
@ -561,7 +572,7 @@ public class OrderPlanningModel implements IOrderPlanningModel {
|
|||
Planner planner, ChangeHooker changeHooker) {
|
||||
earnedValueChart = setupChart(planningState.getOrder(),
|
||||
earnedValueChartFiller, chartEarnedValueTimeplot, planner);
|
||||
refillLoadChartWhenNeeded(changeHooker, planner, earnedValueChart);
|
||||
refillLoadChartWhenNeeded(changeHooker, planner, earnedValueChart, true);
|
||||
setEventListenerConfigurationCheckboxes(earnedValueChart);
|
||||
}
|
||||
|
||||
|
|
@ -799,17 +810,21 @@ public class OrderPlanningModel implements IOrderPlanningModel {
|
|||
@Override
|
||||
public void onEvent(Event event) {
|
||||
LocalDate date = new LocalDate(datebox.getValue());
|
||||
org.zkoss.zk.ui.Component child = vbox
|
||||
.getFellow("indicatorsTable");
|
||||
vbox.removeChild(child);
|
||||
vbox.appendChild(getEarnedValueChartConfigurableLegend(
|
||||
earnedValueChartFiller, date));
|
||||
updateEarnedValueChartLegend(date);
|
||||
dateInfutureMessage(datebox);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
private void updateEarnedValueChartLegend(LocalDate date) {
|
||||
org.zkoss.zk.ui.Component child = earnedValueChartLegendContainer
|
||||
.getFellow("indicatorsTable");
|
||||
earnedValueChartLegendContainer.removeChild(child);
|
||||
earnedValueChartLegendContainer.appendChild(getEarnedValueChartConfigurableLegend(
|
||||
earnedValueChartFiller, date));
|
||||
}
|
||||
|
||||
private org.zkoss.zk.ui.Component getEarnedValueChartConfigurableLegend(
|
||||
OrderEarnedValueChartFiller earnedValueChartFiller, LocalDate date) {
|
||||
Hbox mainhbox = new Hbox();
|
||||
|
|
@ -912,6 +927,7 @@ public class OrderPlanningModel implements IOrderPlanningModel {
|
|||
@Override
|
||||
public Void execute() {
|
||||
earnedValueChart.fillChart();
|
||||
//not necessary to update legend here
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
|
@ -922,9 +938,10 @@ public class OrderPlanningModel implements IOrderPlanningModel {
|
|||
}
|
||||
|
||||
private void refillLoadChartWhenNeeded(ChangeHooker changeHooker,
|
||||
final Planner planner, final Chart loadChart) {
|
||||
final Planner planner, final Chart loadChart,
|
||||
final boolean updateEarnedValueChartLegend) {
|
||||
planner.getTimeTracker().addZoomListener(
|
||||
fillOnZoomChange(loadChart, planner));
|
||||
fillOnZoomChange(loadChart, planner, updateEarnedValueChartLegend));
|
||||
planner
|
||||
.addChartVisibilityListener(fillOnChartVisibilityChange(loadChart));
|
||||
|
||||
|
|
@ -938,6 +955,10 @@ public class OrderPlanningModel implements IOrderPlanningModel {
|
|||
}
|
||||
if (planner.isVisibleChart()) {
|
||||
loadChart.fillChart();
|
||||
if(updateEarnedValueChartLegend) {
|
||||
updateEarnedValueChartLegend(new LocalDate(
|
||||
earnedValueChartLegendDatebox.getValue()));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -1127,7 +1148,7 @@ public class OrderPlanningModel implements IOrderPlanningModel {
|
|||
}
|
||||
|
||||
private IZoomLevelChangedListener fillOnZoomChange(final Chart loadChart,
|
||||
final Planner planner) {
|
||||
final Planner planner, final boolean updateEarnedValueChartLegend) {
|
||||
IZoomLevelChangedListener zoomListener = new IZoomLevelChangedListener() {
|
||||
|
||||
@Override
|
||||
|
|
@ -1140,6 +1161,10 @@ public class OrderPlanningModel implements IOrderPlanningModel {
|
|||
public Void execute() {
|
||||
if (planner.isVisibleChart()) {
|
||||
loadChart.fillChart();
|
||||
if (updateEarnedValueChartLegend) {
|
||||
updateEarnedValueChartLegend(new LocalDate(
|
||||
earnedValueChartLegendDatebox.getValue()));
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue