Resolve error in DashboardControllerGlobal.

This commit is contained in:
Vova Perebykivskyi 2016-06-23 15:22:10 +03:00 committed by Dgray16
parent fbdaf8f31f
commit cb0b44adb2
2 changed files with 115 additions and 55 deletions

View file

@ -14,17 +14,17 @@ import org.zkoss.zul.Label;
import org.zkoss.zul.Rows;
import org.zkoss.zul.Row;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static org.libreplan.web.I18nHelper._;
/**
* Created
* @author Vova Perebykivskiy <vova@libreplan-enterprise.com>
* on 20.11.15.
* Controller to manage Dashboard tab on index page.
*
* @author Created by Vova Perebykivskyi <vova@libreplan-enterprise.com> on 20.11.2015.
*/
@org.springframework.stereotype.Component
@ -35,22 +35,34 @@ public class DashboardControllerGlobal extends GenericForwardComposer {
private IOrderModel orderModel;
private Grid pipelineGrid;
private Checkbox storedColumnVisible;
private List<Order> preSalesOrders = new ArrayList<Order>();
private List<Order> offeredOrders = new ArrayList<Order>();
private List<Order> outsourcedOrders = new ArrayList<Order>();
private List<Order> acceptedOrders = new ArrayList<Order>();
private List<Order> startedOrders = new ArrayList<Order>();
private List<Order> onHoldOrders = new ArrayList<Order>();
private List<Order> finishedOrders = new ArrayList<Order>();
private List<Order> cancelledOrders = new ArrayList<Order>();
private List<Order> storedOrders = new ArrayList<Order>();
private List<Order> preSalesOrders = new ArrayList<>();
private List<Order> offeredOrders = new ArrayList<>();
private List<Order> outsourcedOrders = new ArrayList<>();
private List<Order> acceptedOrders = new ArrayList<>();
private List<Order> startedOrders = new ArrayList<>();
private List<Order> onHoldOrders = new ArrayList<>();
private List<Order> finishedOrders = new ArrayList<>();
private List<Order> cancelledOrders = new ArrayList<>();
private List<Order> storedOrders = new ArrayList<>();
@Override
public void doAfterCompose(Component component) throws Exception {
super.doAfterCompose(component);
// TODO resolve deprecated
component.setVariable("dashboardControllerGlobal", this, true);
fillOrderLists();
setupPipelineGrid();
showStoredColumn();
@ -62,55 +74,70 @@ public class DashboardControllerGlobal extends GenericForwardComposer {
private void fillOrderLists() {
for (Order orderItem : getOrders()) {
switch ( orderItem.getState() ) {
case PRE_SALES: {
case PRE_SALES:
preSalesOrders.add(orderItem);
break;
}
case OFFERED: {
case OFFERED:
offeredOrders.add(orderItem);
break;
}
case OUTSOURCED: {
case OUTSOURCED:
outsourcedOrders.add(orderItem);
break;
}
case ACCEPTED: {
case ACCEPTED:
acceptedOrders.add(orderItem);
break;
}
case STARTED: {
case STARTED:
startedOrders.add(orderItem);
break;
}
case ON_HOLD: {
case ON_HOLD:
onHoldOrders.add(orderItem);
break;
}
case FINISHED: {
case FINISHED:
finishedOrders.add(orderItem);
break;
}
case CANCELLED: {
case CANCELLED:
cancelledOrders.add(orderItem);
break;
}
case STORED: {
case STORED:
storedOrders.add(orderItem);
break;
}
default:
/* Nothing */
break;
}
}
}
private void setupPipelineGrid() throws ParseException {
int rowsCount = findMaxList(preSalesOrders.size(), offeredOrders.size(), outsourcedOrders.size(), acceptedOrders.size(),
startedOrders.size(), onHoldOrders.size(), finishedOrders.size(), cancelledOrders.size(), storedOrders.size());
int rowsCount = findMaxList(
preSalesOrders.size(),
offeredOrders.size(),
outsourcedOrders.size(),
acceptedOrders.size(),
startedOrders.size(),
onHoldOrders.size(),
finishedOrders.size(),
cancelledOrders.size(),
storedOrders.size());
Rows rows = new Rows();
for (int i = 0; i < rowsCount; i++) {
Row row = new Row();
for (int columns = 0; columns < 9; columns++) row.appendChild(new Label());
for (int columns = 0; columns < 9; columns++)
row.appendChild(new Label());
rows.appendChild(row);
}
@ -124,9 +151,11 @@ public class DashboardControllerGlobal extends GenericForwardComposer {
String outputDeadline = getOrderDeadline(preSalesOrders.get(i));
( (Label) pipelineGrid.getCell(i, 0) ).setValue(preSalesOrders.get(i).getName());
String tooltipText = "Start date: " + outputInit +
"\n" + "End date: " + outputDeadline +
"\n" + "Progress: " + preSalesOrders.get(i).getAdvancePercentage() + " %";
( (Label) pipelineGrid.getCell(i, 0) ).setTooltiptext(tooltipText);
( (Label) pipelineGrid.getCell(i, 0) ).setClass("label-highlight");
}
@ -138,9 +167,11 @@ public class DashboardControllerGlobal extends GenericForwardComposer {
String outputDeadline = getOrderDeadline(offeredOrders.get(i));
( (Label) pipelineGrid.getCell(i, 1) ).setValue(offeredOrders.get(i).getName());
String tooltipText = "Start date: " + outputInit +
"\n" + "End date: " + outputDeadline +
"\n" + "Progress: " + offeredOrders.get(i).getAdvancePercentage() + " %";
( (Label) pipelineGrid.getCell(i, 1) ).setTooltiptext(tooltipText);
( (Label) pipelineGrid.getCell(i, 1) ).setClass("label-highlight");
}
@ -152,9 +183,11 @@ public class DashboardControllerGlobal extends GenericForwardComposer {
String outputDeadline = getOrderDeadline(outsourcedOrders.get(i));
( (Label) pipelineGrid.getCell(i, 2) ).setValue(outsourcedOrders.get(i).getName());
String tooltipText = "Start date: " + outputInit +
"\n" + "End date: " + outputDeadline +
"\n" + "Progress: " + outsourcedOrders.get(i).getAdvancePercentage() + " %";
( (Label) pipelineGrid.getCell(i, 2) ).setTooltiptext(tooltipText);
( (Label) pipelineGrid.getCell(i, 2) ).setClass("label-highlight");
}
@ -166,9 +199,11 @@ public class DashboardControllerGlobal extends GenericForwardComposer {
String outputDeadline = getOrderDeadline(acceptedOrders.get(i));
( (Label) pipelineGrid.getCell(i, 3) ).setValue(acceptedOrders.get(i).getName());
String tooltipText = "Start date: " + outputInit +
"\n" + "End date: " + outputDeadline +
"\n" + "Progress: " + acceptedOrders.get(i).getAdvancePercentage() + " %";
( (Label) pipelineGrid.getCell(i, 3) ).setTooltiptext(tooltipText);
( (Label) pipelineGrid.getCell(i, 3) ).setClass("label-highlight");
}
@ -180,9 +215,11 @@ public class DashboardControllerGlobal extends GenericForwardComposer {
String outputDeadline = getOrderDeadline(startedOrders.get(i));
( (Label) pipelineGrid.getCell(i, 4) ).setValue(startedOrders.get(i).getName());
String tooltipText = "Start date: " + outputInit +
"\n" + "End date: " + outputDeadline +
"\n" + "Progress: " + startedOrders.get(i).getAdvancePercentage() + " %";
( (Label) pipelineGrid.getCell(i, 4) ).setTooltiptext(tooltipText);
( (Label) pipelineGrid.getCell(i, 4) ).setClass("label-highlight");
}
@ -194,9 +231,11 @@ public class DashboardControllerGlobal extends GenericForwardComposer {
String outputDeadline = getOrderDeadline(onHoldOrders.get(i));
( (Label) pipelineGrid.getCell(i, 5) ).setValue(onHoldOrders.get(i).getName());
String tooltipText = "Start date: " + outputInit +
"\n" + "End date: " + outputDeadline +
"\n" + "Progress: " + onHoldOrders.get(i).getAdvancePercentage() + " %";
( (Label) pipelineGrid.getCell(i, 5) ).setTooltiptext(tooltipText);
( (Label) pipelineGrid.getCell(i, 5) ).setClass("label-highlight");
}
@ -208,9 +247,11 @@ public class DashboardControllerGlobal extends GenericForwardComposer {
String outputDeadline = getOrderDeadline(finishedOrders.get(i));
( (Label) pipelineGrid.getCell(i, 6) ).setValue(finishedOrders.get(i).getName());
String tooltipText = "Start date: " + outputInit +
"\n" + "End date: " + outputDeadline +
"\n" + "Progress: " + finishedOrders.get(i).getAdvancePercentage() + " %";
( (Label) pipelineGrid.getCell(i, 6) ).setTooltiptext(tooltipText);
( (Label) pipelineGrid.getCell(i, 6) ).setClass("label-highlight");
}
@ -223,9 +264,11 @@ public class DashboardControllerGlobal extends GenericForwardComposer {
( (Label) pipelineGrid.getCell(i, 7) ).setValue(cancelledOrders.get(i).getName());
String tooltipText = "Start date: " + outputInit +
"\n" + "End date: " + outputDeadline +
"\n" + "Progress: " + cancelledOrders.get(i).getAdvancePercentage() + " %";
( (Label) pipelineGrid.getCell(i, 7) ).setTooltiptext(tooltipText);
( (Label) pipelineGrid.getCell(i, 7) ).setClass("label-highlight");
}
@ -236,9 +279,12 @@ public class DashboardControllerGlobal extends GenericForwardComposer {
return new SimpleDateFormat("EEE MMM dd yyyy").format(order.getInitDate());
}
private String getOrderDeadline(Order order) throws ParseException {
return new SimpleDateFormat("EEE MMM dd yyyy").format(order.getDeadline());
return (order.getDeadline() != null)
? new SimpleDateFormat("EEE MMM dd yyyy").format(order.getDeadline())
: "--" + _("Undefined") + "--";
}
/* Should be public! */
public void showStoredColumn() throws ParseException {
if ( storedColumnVisible.isChecked() ) {
if ( storedOrders.size() > 0 ) {
@ -249,9 +295,11 @@ public class DashboardControllerGlobal extends GenericForwardComposer {
pipelineGrid.getCell(i, 8).setVisible(true);
( (Label) pipelineGrid.getCell(i, 8) ).setValue(storedOrders.get(i).getName());
String tooltipText = "Start date: " + outputInit +
"\n" + "End date: " + outputDeadline +
"\n" + "Progress: " + storedOrders.get(i).getAdvancePercentage() + " %";
( (Label) pipelineGrid.getCell(i, 8) ).setTooltiptext(tooltipText);
( (Label) pipelineGrid.getCell(i, 8) ).setClass("label-highlight");
}
@ -263,14 +311,22 @@ public class DashboardControllerGlobal extends GenericForwardComposer {
}
}
private int findMaxList(int preSales, int offered, int outsourced, int accepted, int started, int onHold, int finished,
int cancelled, int stored){
private int findMaxList(int preSales,
int offered,
int outsourced,
int accepted,
int started,
int onHold,
int finished,
int cancelled,
int stored){
int[] sizes = { preSales, offered, outsourced, accepted, started, onHold, finished, cancelled, stored };
int max = sizes[0];
for (int i = 1; i < sizes.length; i++)
if ( sizes[i] > max ) max = sizes[i];
if ( sizes[i] > max )
max = sizes[i];
return max;
}

View file

@ -9419,3 +9419,7 @@ msgstr ""
#: libreplan-webapp/src/main/java/org/libreplan/web/orders/DetailsOrderElement.java:110
msgid "Must be after 2010!"
msgstr ""
#: libreplan-webapp/src/main/java/org/libreplan/web/dashboard/DashboardControllerGlobal.java:284
msgid "Undefined"
msgstr ""