ItEr23S10CUAsignacionGrupoRecursosAPlanificacionItEr22S10: Filling table with fake data.
This commit is contained in:
parent
336ec127d4
commit
75dafc025f
4 changed files with 130 additions and 11 deletions
|
|
@ -1,21 +1,25 @@
|
|||
package org.zkoss.ganttz.timetracker;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
import org.zkoss.zul.ListModel;
|
||||
import org.zkoss.zul.ListModelList;
|
||||
import org.zkoss.zul.RowRenderer;
|
||||
|
||||
public class TimeTrackedTable extends TimeTrackerComponent {
|
||||
public class TimeTrackedTable<T> extends TimeTrackerComponent {
|
||||
|
||||
private final ListModel listModel;
|
||||
private final Callable<List<T>> data;
|
||||
private final ICellForDetailItemRenderer<T> cellRenderer;
|
||||
|
||||
private final RowRenderer rowRenderer;
|
||||
|
||||
public TimeTrackedTable(ListModel listModel, RowRenderer rowRenderer,
|
||||
public TimeTrackedTable(Callable<List<T>> dataSource,
|
||||
ICellForDetailItemRenderer<T> cellRenderer,
|
||||
TimeTracker timeTracker,
|
||||
String idTimeTrackerElement) {
|
||||
super(timeTracker, "~./ganttz/zul/timetracker/secondlevelgrid.zul",
|
||||
idTimeTrackerElement);
|
||||
this.listModel = listModel;
|
||||
this.rowRenderer = rowRenderer;
|
||||
this.data = dataSource;
|
||||
this.cellRenderer = cellRenderer;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -23,11 +27,20 @@ public class TimeTrackedTable extends TimeTrackerComponent {
|
|||
}
|
||||
|
||||
public ListModel getTableModel() {
|
||||
return listModel;
|
||||
return new ListModelList(getData());
|
||||
}
|
||||
|
||||
public RowRenderer getGridRenderer() {
|
||||
return rowRenderer;
|
||||
private List<T> getData() {
|
||||
try {
|
||||
return data.call();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public RowRenderer getRowRenderer() {
|
||||
return OnDetailItemsRowRenderer.create(cellRenderer,
|
||||
getDetailsSecondLevel());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
<zk>
|
||||
<grid width="${top.horizontalSize+2}" model="${top.tableModel}">
|
||||
<grid width="${top.horizontalSize+2}" model="${top.tableModel}"
|
||||
rowRenderer="${top.rowRenderer}">
|
||||
<columns>
|
||||
<column label="${each.name}" width="${each.size}"
|
||||
forEach="${top.detailsSecondLevel}"></column>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,86 @@
|
|||
package org.navalplanner.web;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
import org.joda.time.Days;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.zkoss.ganttz.timetracker.ICellForDetailItemRenderer;
|
||||
import org.zkoss.ganttz.timetracker.TimeTrackedTable;
|
||||
import org.zkoss.ganttz.timetracker.TimeTracker;
|
||||
import org.zkoss.ganttz.timetracker.zoom.DetailItem;
|
||||
import org.zkoss.ganttz.util.Interval;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
import org.zkoss.zk.ui.util.GenericForwardComposer;
|
||||
import org.zkoss.zul.Div;
|
||||
import org.zkoss.zul.Label;
|
||||
|
||||
public class FakeTimeTrackableTableController extends GenericForwardComposer {
|
||||
|
||||
private Div insertionPoint;
|
||||
private TimeTrackedTable<FakeData> timeTrackedTable;
|
||||
|
||||
@Override
|
||||
public void doAfterCompose(Component comp) throws Exception {
|
||||
super.doAfterCompose(comp);
|
||||
|
||||
timeTrackedTable = new TimeTrackedTable<FakeData>(getDataSource(),
|
||||
getRenderer(), new TimeTracker(createExampleInterval()),
|
||||
"timetrackedtable");
|
||||
insertionPoint.appendChild(timeTrackedTable);
|
||||
timeTrackedTable.afterCompose();
|
||||
}
|
||||
|
||||
private Callable<List<FakeData>> getDataSource() {
|
||||
return new Callable<List<FakeData>>() {
|
||||
|
||||
@Override
|
||||
public List<FakeData> call() throws Exception {
|
||||
List<FakeData> result = new ArrayList<FakeData>();
|
||||
for (int i = 0; i < 10; i++) {
|
||||
result.add(new FakeData(6));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private ICellForDetailItemRenderer<FakeData> getRenderer() {
|
||||
return new ICellForDetailItemRenderer<FakeData>() {
|
||||
|
||||
@Override
|
||||
public Component cellFor(DetailItem item, FakeData data) {
|
||||
Label label = new Label();
|
||||
label.setValue(data.getHoursForDetailItem(item) + "h");
|
||||
return label;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private Interval createExampleInterval() {
|
||||
LocalDate start = new LocalDate(2008, 1, 1);
|
||||
LocalDate end = new LocalDate(2009, 1, 1);
|
||||
return new Interval(asDate(start), asDate(end));
|
||||
}
|
||||
|
||||
private Date asDate(LocalDate start) {
|
||||
return start.toDateMidnight().toDate();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class FakeData {
|
||||
private final int hoursPerDay;
|
||||
|
||||
FakeData(int hoursPerDay) {
|
||||
this.hoursPerDay = hoursPerDay;
|
||||
}
|
||||
|
||||
public int getHoursForDetailItem(DetailItem detail) {
|
||||
Days daysBetween = Days.daysBetween(detail.getStartDate(),
|
||||
detail.getEndDate());
|
||||
return daysBetween.getDays() * hoursPerDay;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<?page title="${i18n:_('Navalpro: Scheduling')}"?>
|
||||
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?>
|
||||
<?init class="org.zkoss.zk.ui.util.Composition" arg0="/common/layout/template.zul"?>
|
||||
<?taglib uri="/WEB-INF/tld/i18n.tld" prefix="i18n"?>
|
||||
<?link rel="stylesheet" type="text/css" href="/planner/css/ganttzk.css"?>
|
||||
<?link rel="stylesheet" type="text/css" href="/common/css/navalpro_v01.css"?>
|
||||
<?link rel="stylesheet" type="text/css" href="/common/css/navalpro_zk.css"?>
|
||||
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
|
||||
<zk>
|
||||
|
||||
<zscript><![CDATA[
|
||||
fakeController = new org.navalplanner.web.FakeTimeTrackableTableController();
|
||||
]]>
|
||||
</zscript>
|
||||
|
||||
<div id="insertionPoint" apply="${fakeController}">
|
||||
</div>
|
||||
|
||||
</zk>
|
||||
Loading…
Add table
Reference in a new issue