Example usage for org.apache.wicket.markup.html.basic Label findParent

List of usage examples for org.apache.wicket.markup.html.basic Label findParent

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.basic Label findParent.

Prototype

public final <Z> Z findParent(final Class<Z> c) 

Source Link

Document

Finds the first container parent of this component of the given class.

Usage

From source file:org.projectforge.web.fibu.MonthlyEmployeeReportPage.java

License:Open Source License

private void addReport() {
    final RepeatingView headcolRepeater = new RepeatingView("headcolRepeater");
    table.add(headcolRepeater);//from w  w w.j  a va2 s . co m
    if (MapUtils.isEmpty(report.getKost2Rows()) == false) {
        headcolRepeater.add(new Label(headcolRepeater.newChildId(), getString("fibu.kost2")));
        headcolRepeater.add(new Label(headcolRepeater.newChildId(), getString("fibu.kunde")));
        headcolRepeater.add(new Label(headcolRepeater.newChildId(), getString("fibu.projekt")));
        headcolRepeater.add(new Label(headcolRepeater.newChildId(), getString("fibu.kost2.art")));
    } else {
        // No kost 2 entries, so only task as head is useful.
        headcolRepeater.add(new Label(headcolRepeater.newChildId(), getString("task"))
                .add(AttributeModifier.replace("colspan", "4")));
    }
    final RepeatingView headcolWeekRepeater = new RepeatingView("headcolWeekRepeater");
    table.add(headcolWeekRepeater);
    for (final MonthlyEmployeeReportWeek week : report.getWeeks()) {
        headcolWeekRepeater.add(new Label(headcolWeekRepeater.newChildId(),
                week.getFormattedFromDayOfMonth() + ".-" + week.getFormattedToDayOfMonth() + "."));
    }
    final RepeatingView rowRepeater = new RepeatingView("rowRepeater");
    table.add(rowRepeater);
    int rowCounter = 0;
    for (final Map.Entry<String, Kost2Row> rowEntry : report.getKost2Rows().entrySet()) {
        final WebMarkupContainer row = new WebMarkupContainer(rowRepeater.newChildId());
        rowRepeater.add(row);
        if (rowCounter++ % 2 == 0) {
            row.add(AttributeModifier.replace("class", "even"));
        } else {
            row.add(AttributeModifier.replace("class", "odd"));
        }
        final Kost2Row kost2Row = rowEntry.getValue();
        final Kost2DO cost2 = kost2Row.getKost2();
        addLabelCols(row, cost2, null, "kost2.nummer:" + cost2.getFormattedNumber(), report.getUser(),
                report.getFromDate().getTime(), report.getToDate().getTime());
        final RepeatingView colWeekRepeater = new RepeatingView("colWeekRepeater");
        row.add(colWeekRepeater);
        for (final MonthlyEmployeeReportWeek week : report.getWeeks()) {
            final MonthlyEmployeeReportEntry entry = week.getKost2Entries().get(kost2Row.getKost2().getId());
            colWeekRepeater.add(
                    new Label(colWeekRepeater.newChildId(), entry != null ? entry.getFormattedDuration() : ""));
        }
        row.add(new Label("sum", report.getKost2Durations().get(cost2.getId()).getFormattedDuration()));
    }

    for (final Map.Entry<String, TaskDO> rowEntry : report.getTaskEntries().entrySet()) {
        final WebMarkupContainer row = new WebMarkupContainer(rowRepeater.newChildId());
        rowRepeater.add(row);
        if (rowCounter++ % 2 == 0) {
            row.add(AttributeModifier.replace("class", "even"));
        } else {
            row.add(AttributeModifier.replace("class", "odd"));
        }
        final TaskDO task = rowEntry.getValue();
        addLabelCols(row, null, task, null, report.getUser(), report.getFromDate().getTime(),
                report.getToDate().getTime());
        final RepeatingView colWeekRepeater = new RepeatingView("colWeekRepeater");
        row.add(colWeekRepeater);
        for (final MonthlyEmployeeReportWeek week : report.getWeeks()) {
            final MonthlyEmployeeReportEntry entry = week.getTaskEntries().get(task.getId());
            colWeekRepeater.add(
                    new Label(colWeekRepeater.newChildId(), entry != null ? entry.getFormattedDuration() : ""));
        }
        row.add(new Label("sum", report.getTaskDurations().get(task.getId()).getFormattedDuration()));
    }
    {
        // Sum row.
        final WebMarkupContainer row = new WebMarkupContainer(rowRepeater.newChildId());
        rowRepeater.add(row);
        if (rowCounter++ % 2 == 0) {
            row.add(AttributeModifier.replace("class", "even"));
        } else {
            row.add(AttributeModifier.replace("class", "odd"));
        }
        addLabelCols(row, null, null, null, report.getUser(), report.getFromDate().getTime(),
                report.getToDate().getTime()).add(AttributeModifier.replace("style", "text-align: right;"));
        final RepeatingView colWeekRepeater = new RepeatingView("colWeekRepeater");
        row.add(colWeekRepeater);
        for (final MonthlyEmployeeReportWeek week : report.getWeeks()) {
            colWeekRepeater.add(new Label(colWeekRepeater.newChildId(), week.getFormattedTotalDuration()));
        }
        row.add(new Label("sum", report.getFormattedTotalNetDuration())
                .add(AttributeModifier.replace("style", "font-weight: bold; color:red; text-align: right;")));
    }
    if (report.getTotalGrossDuration() != report.getTotalNetDuration()) {
        // Net sum row.
        final WebMarkupContainer row = new WebMarkupContainer(rowRepeater.newChildId());
        rowRepeater.add(row);
        if (rowCounter++ % 2 == 0) {
            row.add(AttributeModifier.replace("class", "even"));
        } else {
            row.add(AttributeModifier.replace("class", "odd"));
        }
        final Component comp = new WebMarkupContainer("cost2").setVisible(false);
        row.add(comp);
        row.add(new Label("customer", "").setVisible(false));
        row.add(new Label("project", "").setVisible(false));
        final Label title = addCostType(row, getString("fibu.monthlyEmployeeReport.totalSum"));
        WicketUtils.addTooltip(title, new ResourceModel("fibu.monthlyEmployeeReport.totalSum.tooltip"));
        final WebMarkupContainer tdContainer = title.findParent(WebMarkupContainer.class);
        tdContainer.add(AttributeModifier.replace("colspan", "4"));
        tdContainer.add(AttributeModifier.replace("style", "font-weight: bold; text-align: right;"));
        final RepeatingView colWeekRepeater = new RepeatingView("colWeekRepeater");
        row.add(colWeekRepeater);
        for (@SuppressWarnings("unused")
        final MonthlyEmployeeReportWeek week : report.getWeeks()) {
            colWeekRepeater.add(new Label(colWeekRepeater.newChildId(), ""));
        }
        row.add(new Label("sum", report.getFormattedTotalGrossDuration())
                .add(AttributeModifier.replace("style", "font-weight: bold; text-align: right;")));
    }
}