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 000000000..1fd766cb1 Binary files /dev/null and b/navalplanner-webapp/src/main/webapp/common/img/ico_down.png differ 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 @@