ItEr51S09CUAsignacionGrupoRecursosAPlanificacionItEr50S12: Implemented behaviour of horizontal paginator listbox

This commit is contained in:
Lorenzo Tilve 2010-03-17 11:00:16 +01:00 committed by Javier Moran Rua
parent 934307a771
commit 2ce50f4713
2 changed files with 67 additions and 3 deletions

View file

@ -40,6 +40,8 @@ import org.apache.commons.lang.Validate;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.joda.time.Period;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import org.navalplanner.business.planner.entities.AggregateOfResourceAllocations;
import org.navalplanner.business.planner.entities.AssignmentFunction;
import org.navalplanner.business.planner.entities.CalculatedValue;
@ -84,6 +86,7 @@ import org.zkoss.zul.Intbox;
import org.zkoss.zul.Label;
import org.zkoss.zul.ListModel;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.SimpleListModel;
import org.zkoss.zul.api.Column;
@ -396,6 +399,8 @@ public class AdvancedAllocationController extends GenericForwardComposer {
private List<AllocationInput> allocationInputs;
private Component associatedComponent;
private Listbox advancedAllocationHorizontalPagination;
public AdvancedAllocationController(IBack back,
List<AllocationInput> allocationInputs) {
setInputData(back, allocationInputs);
@ -465,6 +470,44 @@ public class AdvancedAllocationController extends GenericForwardComposer {
return Period.years(5);
}
public void populateHorizontalListbox() {
advancedAllocationHorizontalPagination.getItems().clear();
DateTimeFormatter df = DateTimeFormat.forPattern("dd/MMM/yyyy");
if (intervalStart != null) {
DateTime itemStart = intervalStart;
DateTime itemEnd = intervalStart.plus(intervalIncrease());
while (intervalEnd.isAfter(itemStart)) {
if (intervalEnd.isBefore(itemEnd)
|| !intervalEnd.isAfter(itemEnd
.plus(intervalIncrease()))) {
itemEnd = intervalEnd;
}
Listitem item = new Listitem(df.print(itemStart) + " - "
+ df.print(itemEnd.minusDays(1)));
advancedAllocationHorizontalPagination.appendChild(item);
itemStart = itemEnd;
itemEnd = itemEnd.plus(intervalIncrease());
}
}
advancedAllocationHorizontalPagination
.setDisabled(advancedAllocationHorizontalPagination
.getItems().size() < 2);
}
public void goToHorizontalPage(int interval) {
if (interval >= 0) {
paginatorStart = intervalStart;
for (int i = 0; i < interval; i++) {
paginatorStart = paginatorStart.plus(intervalIncrease());
}
paginatorEnd = paginatorStart.plus(intervalIncrease());
if ((paginatorEnd.plus(intervalIncrease()).isAfter(intervalEnd))) {
paginatorEnd = paginatorEnd.plus(intervalIncrease());
}
updatePaginationButtons();
}
}
@Override
public Collection<DetailItem> selectsFirstLevel(
Collection<DetailItem> firstLevelDetails) {
@ -554,6 +597,7 @@ public class AdvancedAllocationController extends GenericForwardComposer {
paginatorFilter.setZoomLevel(detailLevel);
paginatorFilter.setInterval(timeTracker.getRealInterval());
timeTracker.setFilter(paginatorFilter);
populateHorizontalListbox();
Clients.evalJavaScript("ADVANCE_ALLOCATIONS.listenToScroll();");
}
});
@ -567,16 +611,36 @@ public class AdvancedAllocationController extends GenericForwardComposer {
leftPane = timeTrackedTableWithLeftPane.getLeftPane();
leftPane.setFixedLayout(true);
Clients.evalJavaScript("ADVANCE_ALLOCATIONS.listenToScroll();");
populateHorizontalListbox();
}
public void paginationDown() {
paginatorFilter.previous();
reloadComponent();
advancedAllocationHorizontalPagination
.setSelectedIndex(advancedAllocationHorizontalPagination
.getSelectedIndex() - 1);
}
public void paginationUp() {
paginatorFilter.next();
reloadComponent();
advancedAllocationHorizontalPagination.setSelectedIndex(Math.max(0,
advancedAllocationHorizontalPagination.getSelectedIndex()) + 1);
}
public void goToSelectedHorizontalPage() {
paginatorFilter
.goToHorizontalPage(advancedAllocationHorizontalPagination
.getSelectedIndex());
reloadComponent();
}
private void populateHorizontalListbox() {
advancedAllocationHorizontalPagination.setVisible(true);
paginatorFilter.populateHorizontalListbox();
}
private void reloadComponent() {
@ -589,6 +653,7 @@ public class AdvancedAllocationController extends GenericForwardComposer {
paginatorFilter.setZoomLevel(detailLevel);
paginatorFilter.setInterval(timeTracker.getRealInterval());
timeTracker.setFilter(paginatorFilter);
populateHorizontalListbox();
Clients.evalJavaScript("ADVANCE_ALLOCATIONS.listenToScroll();");
}
});

View file

@ -52,9 +52,8 @@
<label>${i18n:_('Pagination')}:</label>
<button tooltiptext="Page down" image="/common/img/ico_left.png" id="paginationDownButton"
onClick="advancedAllocationController.paginationDown();" disabled="true" />
<listbox mold="select" rows="1" visible="false" id="advancedAllocationHorizontalPagination">
<listitem><listcell label="${i18n:_('Dates range')}" /><listcell label="Date Range 2" /><listcell label="Date Range 3 ..." /></listitem>
</listbox>
<listbox mold="select" rows="1" visible="false" id="advancedAllocationHorizontalPagination"
onSelect="advancedAllocationController.goToSelectedHorizontalPage();" />
<button tooltiptext="Page up" image="/common/img/ico_right.png" id="paginationUpButton"
onClick="advancedAllocationController.paginationUp();" />