From cb0b44adb278ea56c4335347da7fcd859a1518f6 Mon Sep 17 00:00:00 2001 From: Vova Perebykivskyi Date: Thu, 23 Jun 2016 15:22:10 +0300 Subject: [PATCH] Resolve error in DashboardControllerGlobal. --- .../dashboard/DashboardControllerGlobal.java | 166 ++++++++++++------ .../src/main/resources/i18n/keys.pot | 4 + 2 files changed, 115 insertions(+), 55 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/DashboardControllerGlobal.java b/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/DashboardControllerGlobal.java index 3c2230122..35fbc8f4a 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/DashboardControllerGlobal.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/DashboardControllerGlobal.java @@ -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 - * on 20.11.15. + * Controller to manage Dashboard tab on index page. + * + * @author Created by Vova Perebykivskyi 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 preSalesOrders = new ArrayList(); - private List offeredOrders = new ArrayList(); - private List outsourcedOrders = new ArrayList(); - private List acceptedOrders = new ArrayList(); - private List startedOrders = new ArrayList(); - private List onHoldOrders = new ArrayList(); - private List finishedOrders = new ArrayList(); - private List cancelledOrders = new ArrayList(); - private List storedOrders = new ArrayList(); + private List preSalesOrders = new ArrayList<>(); + + private List offeredOrders = new ArrayList<>(); + + private List outsourcedOrders = new ArrayList<>(); + + private List acceptedOrders = new ArrayList<>(); + + private List startedOrders = new ArrayList<>(); + + private List onHoldOrders = new ArrayList<>(); + + private List finishedOrders = new ArrayList<>(); + + private List cancelledOrders = new ArrayList<>(); + + private List 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(); @@ -61,56 +73,71 @@ public class DashboardControllerGlobal extends GenericForwardComposer { } private void fillOrderLists() { - for (Order orderItem : getOrders()){ - switch (orderItem.getState()){ - case PRE_SALES: { + for (Order orderItem : getOrders()) { + + switch ( orderItem.getState() ) { + 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++){ + 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); } @@ -119,113 +146,129 @@ public class DashboardControllerGlobal extends GenericForwardComposer { // Fill data into first column and so on with other columns divided by Enter in code if ( preSalesOrders.size() > 0 ) - for (int i = 0; i < preSalesOrders.size(); i++){ + for (int i = 0; i < preSalesOrders.size(); i++) { String outputInit = getOrderInitDate(preSalesOrders.get(i)); 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"); } if ( offeredOrders.size() > 0 ) - for (int i = 0; i < offeredOrders.size(); i++){ + for (int i = 0; i < offeredOrders.size(); i++) { String outputInit = getOrderInitDate(offeredOrders.get(i)); 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"); } if ( outsourcedOrders.size() > 0 ) - for (int i = 0; i < outsourcedOrders.size(); i++){ + for (int i = 0; i < outsourcedOrders.size(); i++) { String outputInit = getOrderInitDate(outsourcedOrders.get(i)); 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"); } if ( acceptedOrders.size() > 0 ) - for (int i = 0; i < acceptedOrders.size(); i++){ + for (int i = 0; i < acceptedOrders.size(); i++) { String outputInit = getOrderInitDate(acceptedOrders.get(i)); 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"); } if ( startedOrders.size() > 0 ) - for (int i = 0; i < startedOrders.size(); i++){ + for (int i = 0; i < startedOrders.size(); i++) { String outputInit = getOrderInitDate(startedOrders.get(i)); 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"); } if ( onHoldOrders.size() > 0 ) - for (int i = 0; i < onHoldOrders.size(); i++){ + for (int i = 0; i < onHoldOrders.size(); i++) { String outputInit = getOrderInitDate(onHoldOrders.get(i)); 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"); } if ( finishedOrders.size() > 0 ) - for (int i = 0; i < finishedOrders.size(); i++){ + for (int i = 0; i < finishedOrders.size(); i++) { String outputInit = getOrderInitDate(finishedOrders.get(i)); 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"); } if ( cancelledOrders.size() > 0 ) - for (int i = 0; i < cancelledOrders.size(); i++){ + for (int i = 0; i < cancelledOrders.size(); i++) { String outputInit = getOrderInitDate(cancelledOrders.get(i)); String outputDeadline = getOrderDeadline(cancelledOrders.get(i)); ( (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,41 +279,54 @@ 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 ){ - for (int i = 0; i < storedOrders.size(); i++){ + if ( storedColumnVisible.isChecked() ) { + if ( storedOrders.size() > 0 ) { + for (int i = 0; i < storedOrders.size(); i++) { String outputInit = getOrderInitDate(storedOrders.get(i)); String outputDeadline = getOrderDeadline(storedOrders.get(i)); 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"); } } } - else if ( !storedColumnVisible.isChecked() ){ + else if ( !storedColumnVisible.isChecked() ) { for (int i = 0; i < storedOrders.size(); i++) pipelineGrid.getCell(i, 8).setVisible(false); } } - 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[] 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; } diff --git a/libreplan-webapp/src/main/resources/i18n/keys.pot b/libreplan-webapp/src/main/resources/i18n/keys.pot index 4f984ebee..dc2f9e663 100644 --- a/libreplan-webapp/src/main/resources/i18n/keys.pot +++ b/libreplan-webapp/src/main/resources/i18n/keys.pot @@ -9418,4 +9418,8 @@ msgstr "" #: libreplan-webapp/src/main/java/org/libreplan/web/orders/ProjectDetailsController.java:266 #: 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 "" \ No newline at end of file