From 934307a771a4d0217778a24f9c111a0df93eeb7b Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Tue, 16 Mar 2010 19:05:45 +0100 Subject: [PATCH] ItEr51S09CUAsignacionGrupoRecursosAPlanificacionItEr50S12: Vertical pagination in advanced assignment without selection listboxes --- .../TimeTrackedTableWithLeftPane.java | 1 + .../AdvancedAllocationController.java | 40 ++++++++++++++++-- .../src/main/webapp/common/img/ico_down.png | Bin 0 -> 662 bytes .../webapp/planner/advance_allocation.zul | 23 ++++++++-- .../src/main/webapp/planner/css/ganttzk.css | 7 ++- 5 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 navalplanner-webapp/src/main/webapp/common/img/ico_down.png diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackedTableWithLeftPane.java b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackedTableWithLeftPane.java index 91c0e46b7..c6e6b6f4a 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackedTableWithLeftPane.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackedTableWithLeftPane.java @@ -136,6 +136,7 @@ public class TimeTrackedTableWithLeftPane { public void reload() { timeTrackedTable.recreate(); + loadModelForLeftPane(); } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AdvancedAllocationController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AdvancedAllocationController.java index b451af1d0..2976520ca 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AdvancedAllocationController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AdvancedAllocationController.java @@ -370,6 +370,8 @@ public class AdvancedAllocationController extends GenericForwardComposer { } } + private static final int VERTICAL_MAX_ELEMENTS = 25; + private IMessagesForUser messages; private LayoutRegion insertionPointTimetracker; private Div insertionPointLeftPanel; @@ -378,6 +380,9 @@ public class AdvancedAllocationController extends GenericForwardComposer { private Button paginationDownButton; private Button paginationUpButton; + private Button verticalPaginationUpButton; + private Button verticalPaginationDownButton; + private TimeTracker timeTracker; private PaginatorFilter paginatorFilter; @@ -676,10 +681,11 @@ public class AdvancedAllocationController extends GenericForwardComposer { private Component normalLayout; private Component noDataLayout; private TimeTrackedTableWithLeftPane timeTrackedTableWithLeftPane; + private int verticalIndex = 0; private List getRows() { if (rowsCached != null) { - return rowsCached; + return filterRows(rowsCached); } rowsCached = new ArrayList(); for (AllocationInput allocationInput : allocationInputs) { @@ -693,9 +699,33 @@ public class AdvancedAllocationController extends GenericForwardComposer { groupingRow.listenTo(specificRows); rowsCached.addAll(specificRows); } - return rowsCached; + return filterRows(rowsCached); } + private List filterRows(List rows) { + verticalPaginationUpButton.setDisabled(verticalIndex <= 0); + verticalPaginationDownButton + .setDisabled((verticalIndex + VERTICAL_MAX_ELEMENTS) >= rows + .size()); + return rows.subList(verticalIndex, Math.min(rows.size(), + verticalIndex + VERTICAL_MAX_ELEMENTS)); + } + + public void verticalPagedown() { + verticalIndex = verticalIndex + VERTICAL_MAX_ELEMENTS; + timeTrackedTableWithLeftPane.reload(); + } + + public void setVerticalPagedownButtonDisabled(boolean disabled) { + verticalPaginationUpButton.setDisabled(disabled); + } + + public void verticalPageup() { + verticalIndex = Math.max(verticalIndex - VERTICAL_MAX_ELEMENTS, 0); + timeTrackedTableWithLeftPane.reload(); + } + + private List specificRows(AllocationInput allocationInput) { List result = new ArrayList(); for (SpecificResourceAllocation specificResourceAllocation : allocationInput.getAggregate() @@ -980,8 +1010,10 @@ class Row { if (isGroupingRow()) { Label label = (Label) allHoursInput; int totalHours = aggregate.getTotalHours(); - label.setValue(totalHours + ""); - Clients.closeErrorBox(label); + if (label != null) { + label.setValue(totalHours + ""); + Clients.closeErrorBox(label); + } if (restriction.isInvalidTotalHours(totalHours)) { restriction.showInvalidHours(messages, totalHours); } diff --git a/navalplanner-webapp/src/main/webapp/common/img/ico_down.png b/navalplanner-webapp/src/main/webapp/common/img/ico_down.png new file mode 100644 index 0000000000000000000000000000000000000000..1fd766cb1083587534eb78a983dc2004fead6e65 GIT binary patch literal 662 zcmV;H0%`q;P)znxFS(uJ>HAX_!VwanXUpd+)yQe)pX3J6sY%;4s65 zLk_*(54uAF<@#layMp#b$Yd`sJV7e+4H{|CwF>mw%*g&LZfMFXZYYELX+Wz+hxFGG#%U&l0-f?6KbkDCe=u9tU|gcO(;|!#hWeDLaLZT z!6|@8tXPsDP2z7;W!_9_(&)BHe+Y*<`tUmW7E}Gt;gwaD<>r!bRLf4;LDtS9@8o6X z@c7&~>{1cG<=U<27=}W9m9G9CY^!5NQg4lbL-OWl#)QGgGvau zhVg3Y4dVG#h?|uWs?snyyn@Kr1Rl`-W!%Y6On34GlL8}e1wHV?Xt4Lm6 zsc*`O<`BI&{|FQF&(t>?vMEV8z0#13y$QdRz+-qY9gl#qyk}RJFP*$XgPpy&{&5s- zfsk6u$triE`&c&~#wNiS#@0+my~}~dNrbH~40K&YG%+hpun`Od@h}5WNggxM!H6~h6s1`d>WgA-|bi9GyVDBx>W_Yyju=V_6m$a;64Pu w?}evEF4&d{OYrQi-N@2jSo-g8>@5KX03W~*G(x80XaE2J07*qoM6N<$f<(zNg#Z8m literal 0 HcmV?d00001 diff --git a/navalplanner-webapp/src/main/webapp/planner/advance_allocation.zul b/navalplanner-webapp/src/main/webapp/planner/advance_allocation.zul index a499bf27a..ae22b0605 100644 --- a/navalplanner-webapp/src/main/webapp/planner/advance_allocation.zul +++ b/navalplanner-webapp/src/main/webapp/planner/advance_allocation.zul @@ -42,15 +42,32 @@