Resolve error in DashboardControllerGlobal.
This commit is contained in:
parent
fbdaf8f31f
commit
cb0b44adb2
2 changed files with 115 additions and 55 deletions
|
|
@ -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();
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 ""
|
||||
Loading…
Add table
Reference in a new issue