Add bar chart to represent progress KPI "Global progress of the project".

FEA: ItEr75S27PerProjectDashboard
This commit is contained in:
Nacho Barrientos 2011-11-14 17:43:11 +01:00 committed by Manuel Rego Casasnovas
parent e0e2a5ca08
commit 16978d0963
2 changed files with 40 additions and 17 deletions

View file

@ -19,6 +19,8 @@
package org.libreplan.web.dashboard;
import static org.libreplan.web.I18nHelper._;
import org.libreplan.business.orders.entities.Order;
import org.libreplan.web.common.Util;
import org.springframework.beans.factory.annotation.Autowired;
@ -26,6 +28,9 @@ import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.CategoryModel;
import org.zkoss.zul.Chart;
import org.zkoss.zul.SimpleCategoryModel;
import org.zkoss.zul.Window;
/**
@ -43,6 +48,8 @@ public class DashboardController extends GenericForwardComposer {
private Order order;
private Chart progressKPIglobalProgressChart;
public DashboardController() {
}
@ -59,27 +66,37 @@ public class DashboardController extends GenericForwardComposer {
public void reload() {
dashboardModel.setCurrentOrder(order);
this.reloadCharts();
if (this.dashboardWindow != null) {
Util.reloadBindings(this.dashboardWindow);
}
}
/* Test */
public String getTextForLabel() {
if (dashboardModel.getPercentageOfFinishedTasks() == null) {
return "NULL";
}
String out = "% Finished: " + dashboardModel.getPercentageOfFinishedTasks().toString() + "" +
"% In progress: " + dashboardModel.getPercentageOfInProgressTasks() + " " +
"% Ready to Start: " + dashboardModel.getPercentageOfReadyToStartTasks() + " " +
"% Blocked: " + dashboardModel.getPercentageOfBlockedTasks() + " " +
"A% hours: " + dashboardModel.getAdvancePercentageByHours() + " " +
"TA% hours: " + dashboardModel.getTheoreticalAdvancePercentageByHoursUntilNow() + " " +
"ACP% hours: " + dashboardModel.getCriticalPathProgressByNumHours() + " " +
"TACP% hours: " + dashboardModel.getTheoreticalProgressByNumHoursForCriticalPathUntilNow() + " " +
"ACP% duration: " + dashboardModel.getCriticalPathProgressByDuration() + " " +
"TACP% duration: " + dashboardModel.getTheoreticalProgressByDurationForCriticalPathUntilNow();
return out;
private void reloadCharts() {
generateProgressKPIglobalProgressChart();
}
private void generateProgressKPIglobalProgressChart() {
CategoryModel xymodel;
xymodel = refreshProgressKPIglobalProgressCategoryModel();
progressKPIglobalProgressChart.setModel(xymodel);
}
private CategoryModel refreshProgressKPIglobalProgressCategoryModel() {
CategoryModel result = new SimpleCategoryModel();
result.setValue(_("Current"), _("All tasks (hours)"),
dashboardModel.getAdvancePercentageByHours());
result.setValue(_("Expected"), _("All tasks (hours)"),
dashboardModel.getTheoreticalAdvancePercentageByHoursUntilNow());
result.setValue(_("Current"), _("Critical path (hours)"),
dashboardModel.getCriticalPathProgressByNumHours());
result.setValue(_("Expected"), _("Critical path (hours)"), dashboardModel
.getTheoreticalProgressByNumHoursForCriticalPathUntilNow());
result.setValue(_("Current"), _("Critical path (duration)"),
dashboardModel.getCriticalPathProgressByDuration());
result.setValue(_("Expected"), _("Critical path (duration)"),
dashboardModel.getTheoreticalProgressByDurationForCriticalPathUntilNow());
return result;
}
}

View file

@ -23,7 +23,13 @@
</zscript>
<div self="@{define(content)}">
<window id="dashboardWindow" apply="${dsController}">
<label value="@{dsController.textForLabel}" />
<vbox id="charts">
<chart id="progressKPIglobalProgressChart" height="400px"
width="600px" type="bar" threeD="true"
yAxis="%" orient="horizontal"
title="${i18n:_('Global progress of the project')}"
paneColor="#FFFFFF" showLegend="true" />
</vbox>
</window>
</div>
</zk>