Example usage for org.apache.wicket.markup.html.form SubmitLink SubmitLink

List of usage examples for org.apache.wicket.markup.html.form SubmitLink SubmitLink

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.form SubmitLink SubmitLink.

Prototype

public SubmitLink(String id) 

Source Link

Document

With this constructor the SubmitLink must be inside a Form.

Usage

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

License:Open Source License

@SuppressWarnings("serial")
@Override/* w  ww  .java 2s  .  com*/
public void onBeforeRender() {
    super.onBeforeRender();
    final ReportStorage reportStorage = parentPage.getReportStorage();
    if (reportStorage == null) {
        currentReport = rootReport = null;
        // Nothing to be done.
        return;
    }
    currentReport = reportStorage.getCurrentReport();
    rootReport = reportStorage.getRoot();
    if (currentReport != rootReport) {
        path.setVisible(true);
        actionLinkRepeater.removeAll();
        for (final Report ancestorReport : currentReport.getPath()) {
            final WebMarkupContainer actionLinkContainer = new WebMarkupContainer(
                    actionLinkRepeater.newChildId());
            actionLinkRepeater.add(actionLinkContainer);
            actionLinkContainer.add(createReportLink("actionLink", reportStorage, ancestorReport.getId()));
        }
    } else {
        path.setVisible(false);
    }
    final List<Report> childs = currentReport.getChilds();
    childHeadColRepeater.removeAll();
    if (CollectionUtils.isNotEmpty(childs) == true) {
        for (final Report childReport : childs) {
            final WebMarkupContainer item = new WebMarkupContainer(childHeadColRepeater.newChildId());
            childHeadColRepeater.add(item);
            if (childReport.hasChilds() == true) {
                item.add(createReportLink("actionLink", reportStorage, childReport.getId()));
                item.add(new Label("childId", "[invisible]").setVisible(false));
            } else {
                item.add(new Label("actionLink", "[invisible]").setVisible(false));
                item.add(new PlainLabel("childId", childReport.getId()));
            }
            item.add(new SubmitLink("showAccountingRecordsLink") {
                @Override
                public void onSubmit() {
                    setResponsePage(new AccountingRecordListPage(
                            AccountingRecordListPage.getPageParameters(childReport.getId())));
                }
            });
        }
    }
    rowRepeater.removeAll();
    int row = 0;
    final BusinessAssessmentTable businessAssessmentTable = currentReport.getChildBusinessAssessmentTable(true);
    final BusinessAssessment firstBusinessAssessment = businessAssessmentTable.getBusinessAssessmentList()
            .get(0).getValue();
    for (final BusinessAssessmentRow firstBusinessAssessmentRow : firstBusinessAssessment.getRows()) { // First BusinessAssessment for
        // getting meta data of
        // BusinessAssessment.
        if (priority.ordinal() > firstBusinessAssessmentRow.getPriority().ordinal()) {
            // Don't show all business assessment rows (priority is here a kind of verbose level).
            continue;
        }
        final WebMarkupContainer rowContainer = new WebMarkupContainer(rowRepeater.newChildId());
        rowRepeater.add(rowContainer);
        rowContainer.add(AttributeModifier.replace("class", (row++ % 2 == 0) ? "even" : "odd"));
        rowContainer.add(new Label("zeileNo", firstBusinessAssessmentRow.getNo()));
        StringBuffer buf = new StringBuffer();
        for (int i = 0; i < firstBusinessAssessmentRow.getIndent(); i++) {
            buf.append("&nbsp;&nbsp;");
        }
        buf.append(HtmlHelper.escapeXml(firstBusinessAssessmentRow.getTitle()));
        rowContainer.add(new Label("description", buf.toString()).setEscapeModelStrings(false));
        final RepeatingView cellRepeater = new RepeatingView("cellRepeater");
        rowContainer.add(cellRepeater);
        int col = 0;
        for (final LabelValueBean<String, BusinessAssessment> lv : businessAssessmentTable
                .getBusinessAssessmentList()) {
            // So display the row for every BusinessAssessment:
            final String reportId = lv.getLabel();
            final BusinessAssessment businessAssessment = lv.getValue();
            final BusinessAssessmentRow businessAssessmentRow = businessAssessment
                    .getRow(firstBusinessAssessmentRow.getId());
            final WebMarkupContainer item = new WebMarkupContainer(cellRepeater.newChildId());
            cellRepeater.add(item);
            buf = new StringBuffer();
            buf.append("text-align: right; white-space: nowrap;");
            if (col++ == 0) {
                buf.append(" font-weight: bold;");
            }
            final BigDecimal amount = businessAssessmentRow.getAmount();
            if (amount != null && amount.compareTo(BigDecimal.ZERO) < 0) {
                buf.append(" color: red;");
            }
            item.add(AttributeModifier.replace("style", buf.toString()));
            item.add(new PlainLabel("bwaWert",
                    NumberHelper.isNotZero(businessAssessmentRow.getAmount()) == true
                            ? CurrencyFormatter.format(businessAssessmentRow.getAmount())
                            : ""));
            item.add(new SubmitLink("showAccountingRecordsLink") {
                @Override
                public void onSubmit() {
                    setResponsePage(new AccountingRecordListPage(AccountingRecordListPage
                            .getPageParameters(reportId, businessAssessmentRow.getNo())));
                }
            });
        }
    }
}

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

License:Open Source License

@SuppressWarnings("serial")
private Component createReportLink(final String id, final ReportStorage reportStorage, final String reportId) {
    return new SubmitLink(id) {
        @Override/*from ww  w .  jav a  2 s .c  om*/
        public void onSubmit() {
            parentPage.getReportStorage().setCurrentReport(reportId);
        }
    }.add(new PlainLabel("label", reportId));
}

From source file:org.projectforge.web.gantt.GanttChartEditTreeTablePanel.java

License:Open Source License

@SuppressWarnings("serial")
private void addPredecessorColumns(final Item<GanttTreeTableNode> item, final GanttTreeTableNode node,
        final GanttTask ganttObject, final TaskDO task) {
    final WebMarkupContainer panel = new WebMarkupContainer("predecessor");
    addColumn(item, panel, "white-space: nowrap;");
    final GanttTask predecessor = ganttObject.getPredecessor();
    final TaskDO predecessorTask = predecessor != null
            ? taskDao.getTaskTree().getTaskById((Integer) predecessor.getId())
            : null;//from www  .j ava2s . com
    final Label asStringLabel = new Label("asString", new Model<String>() {
        @Override
        public String getObject() {
            final GanttTask predecessor = ganttObject.getPredecessor();
            return predecessor != null ? predecessor.getTitle() : "";
        };
    });
    panel.add(asStringLabel);
    final String taskSelectProperty = "predecessorId:" + ganttObject.getId();
    final IconLinkPanel selectSubmitLink = new IconLinkPanel("select", IconType.TASK,
            new SubmitLink(IconLinkPanel.LINK_ID) {
                @Override
                public void onSubmit() {
                    final TaskTreePage taskTreePage = new TaskTreePage(GanttChartEditTreeTablePanel.this,
                            taskSelectProperty);
                    if (predecessorTask != null) {
                        taskTreePage.setHighlightedRowId(predecessorTask.getId()); // Preselect node for highlighting.
                    } else if (task != null) {
                        taskTreePage.setHighlightedRowId(task.getId()); // Preselect node for highlighting.
                    }
                    setResponsePage(taskTreePage);
                }
            }.setDefaultFormProcessing(false));
    selectSubmitLink.setTooltip(new ResourceModel("tooltip.selectTask"));
    panel.add(selectSubmitLink);
    final ImageSubmitLinkPanel unselectSubmitLink = new ImageSubmitLinkPanel("unselect", form,
            WebConstants.IMAGE_TASK_UNSELECT, getString("tooltip.unselectTask")) {
        @Override
        public void onSubmit() {
            ganttObject.setPredecessor(null);
        }

        @Override
        public boolean isVisible() {
            return ganttObject.getPredecessor() != null;
        }
    }.setDefaultFormProcessing(false);
    panel.add(unselectSubmitLink);

    new RejectSaveLinksFragment("rejectSavePredecessor", item, panel, task,
            task != null ? taskFormatter.getTaskPath(getRequestCycle(), task.getGanttPredecessorId()) : "") {
        @Override
        protected void onSave() {
            taskDao.setGanttPredecessor(task, (Integer) ganttObject.getPredecessorId());
            taskDao.update(task);
        }

        @Override
        protected void onReject() {
            ganttObject.setPredecessor(findById(task.getGanttPredecessorId()));
        }
    };
}

From source file:org.projectforge.web.humanresources.HRPlanningListForm.java

License:Open Source License

@SuppressWarnings({ "serial" })
@Override/*from ww w  . j av a2s. c o  m*/
protected void init() {
    super.init();
    final HRPlanningFilter filter = getSearchFilter();
    if (hrPlanningEntryDao.hasLoggedInUserSelectAccess(false) == false) {
        filter.setUserId(getUser().getId());
    }
    {
        gridBuilder.newSplitPanel(GridSize.COL66);
        final FieldsetPanel fs = gridBuilder.newFieldset(getString("timePeriod"));
        startDate = new DatePanel(fs.newChildId(), new PropertyModel<Date>(filter, "startTime"),
                DatePanelSettings.get().withSelectPeriodMode(true).withRequired(true));
        fs.add(startDate);
        fs.setLabelFor(startDate);
        fs.add(new DivTextPanel(fs.newChildId(), " - ").setRenderBodyOnly(false));
        stopDate = new DatePanel(fs.newChildId(), new PropertyModel<Date>(filter, "stopTime"),
                DatePanelSettings.get().withSelectPeriodMode(true).withRequired(true));
        fs.add(stopDate);
        {
            fs.add(new IconLinkPanel(fs.newChildId(), IconType.REMOVE_SIGN,
                    new ResourceModel("calendar.tooltip.unselectPeriod"),
                    new SubmitLink(IconLinkPanel.LINK_ID) {
                        @Override
                        public void onSubmit() {
                            getSearchFilter().setStartTime(null);
                            getSearchFilter().setStopTime(null);
                            clearInput();
                            parentPage.refresh();
                        };
                    }).setColor(CSSColor.RED));
        }
        final QuickSelectPanel quickSelectPanel = new QuickSelectPanel(fs.newChildId(), parentPage,
                "quickSelect", startDate);
        fs.add(quickSelectPanel);
        quickSelectPanel.init();
        fs.add(new DivTextPanel(fs.newChildId(), new Model<String>() {
            @Override
            public String getObject() {
                return WicketUtils.getCalendarWeeks(HRPlanningListForm.this, filter.getStartTime(),
                        filter.getStopTime());
            }
        }));
        fs.add(new HtmlCommentPanel(fs.newChildId(), new Model<String>() {
            @Override
            public String getObject() {
                return WicketUtils.getUTCDates(filter.getStartTime(), filter.getStopTime());
            }
        }));
    }
    {
        // Total hours
        gridBuilder.newSplitPanel(GridSize.COL33);
        final FieldsetPanel fs = gridBuilder.newFieldset(getString("timesheet.totalDuration"))
                .supressLabelForWarning();
        fs.add(new TextPanel(fs.newChildId(), new Model<String>() {
            @Override
            public String getObject() {
                BigDecimal duration = new BigDecimal(0);
                if (parentPage.getList() != null) {
                    for (final HRPlanningEntryDO sheet : parentPage.getList()) {
                        final BigDecimal temp = sheet.getTotalHours();
                        duration = duration.add(temp);
                    }
                }
                return duration.toString();
            }
        }));
    }
    boolean showProjectSelectPanel = false;
    final boolean hasFullAccess = parentPage.hasFullAccess();
    if (projektDao.hasLoggedInUserSelectAccess(false) == true) {
        // Project
        showProjectSelectPanel = true;
        if (hasFullAccess == true) {
            gridBuilder.newSplitPanel(GridSize.COL66);
        } else {
            gridBuilder.newGridPanel();
        }
        final FieldsetPanel fs = gridBuilder.newFieldset(getString("fibu.projekt"));
        final ProjektSelectPanel projektSelectPanel = new ProjektSelectPanel(fs.newChildId(),
                new Model<ProjektDO>() {
                    @Override
                    public ProjektDO getObject() {
                        return projektDao.getById(filter.getProjektId());
                    }
                }, parentPage, "projektId");
        fs.add(projektSelectPanel);
        projektSelectPanel.init();
    }
    if (hasFullAccess == true) {
        // User
        if (showProjectSelectPanel == true) {
            gridBuilder.newSplitPanel(GridSize.COL33);
        }
        final FieldsetPanel fs = gridBuilder.newFieldset(getString("user"));
        final UserSelectPanel userSelectPanel = new UserSelectPanel(fs.newChildId(), new Model<PFUserDO>() {
            @Override
            public PFUserDO getObject() {
                return userGroupCache.getUser(filter.getUserId());
            }

            @Override
            public void setObject(final PFUserDO object) {
                if (object == null) {
                    filter.setUserId(null);
                } else {
                    filter.setUserId(object.getId());
                }
            }
        }, parentPage, "userId");
        fs.add(userSelectPanel);
        userSelectPanel.setDefaultFormProcessing(false);
        userSelectPanel.init().withAutoSubmit(true);
    }
}

From source file:org.projectforge.web.mobile.AbstractMobileEditForm.java

License:Open Source License

@SuppressWarnings("serial")
protected void init() {
    add(new FeedbackPanel("feedback").setOutputMarkupId(true));
    final SubmitLink submitButton = new SubmitLink("submitButton") {
        @Override//from  w w  w  . jav  a  2 s.c  o  m
        public final void onSubmit() {
            parentPage.save();
        }
    };
    final RepeatingView flowform = new RepeatingView("flowform");
    add(flowform);
    gridBuilder = newGridBuilder(flowform);

    add(submitButton);
    if (isNew() == true) {
        submitButton.add(new Label("label", getString("create")));
    } else {
        submitButton.add(new Label("label", getString("update")));
    }
}

From source file:org.projectforge.web.mobile.LoginMobileForm.java

License:Open Source License

@SuppressWarnings("serial")
protected void init() {
    add(new CheckBox("stayLoggedIn", new PropertyModel<Boolean>(this, "stayLoggedIn")));
    add(new TextField<String>("username", new PropertyModel<String>(this, "username")));
    add(new PasswordTextField("password", new PropertyModel<String>(this, "password")).setResetPassword(true)
            .setRequired(true));//w  w  w .  jav  a 2 s. c om
    final SubmitLink loginButton = new SubmitLink("login") {
        @Override
        public final void onSubmit() {
            parentPage.checkLogin();
        }
    };
    add(loginButton);
}

From source file:org.projectforge.web.orga.VisitorbookListForm.java

License:Open Source License

@Override
protected void init() {
    super.init();
    final VisitorbookFilter filter = getSearchFilter();
    add(new IFormValidator() {
        @Override// w  w  w  .j  a  v a  2  s  .c o m
        public FormComponent<?>[] getDependentFormComponents() {
            return dependentFormComponents;
        }

        @Override
        public void validate(final Form<?> form) {
            final VisitorbookFilter filter = getSearchFilter();
            final Date from = startDate.getConvertedInput();
            final Date to = stopDate.getConvertedInput();
            if (from != null && to != null && from.after(to) == true) {
                error(getString("timesheet.error.startTimeAfterStopTime"));
            }
        }
    });
    {
        gridBuilder.newSplitPanel(GridSize.COL66);
        final FieldsetPanel fs = gridBuilder.newFieldset(getString("timePeriod"));
        startDate = new DatePanel(fs.newChildId(), new PropertyModel<Date>(filter, "startTime"),
                DatePanelSettings.get().withSelectPeriodMode(true), true);
        fs.add(dependentFormComponents[0] = startDate);
        fs.setLabelFor(startDate);
        fs.add(new DivTextPanel(fs.newChildId(), " - "));
        stopDate = new DatePanel(fs.newChildId(), new PropertyModel<Date>(filter, "stopTime"),
                DatePanelSettings.get().withSelectPeriodMode(true), true);
        fs.add(dependentFormComponents[1] = stopDate);
        {
            final SubmitLink unselectPeriodLink = new SubmitLink(IconLinkPanel.LINK_ID) {
                @Override
                public void onSubmit() {
                    getSearchFilter().setStartTime(null);
                    getSearchFilter().setStopTime(null);
                    clearInput();
                    parentPage.refresh();
                }

                ;
            };
            unselectPeriodLink.setDefaultFormProcessing(false);
            fs.add(new IconLinkPanel(fs.newChildId(), IconType.REMOVE_SIGN,
                    new ResourceModel("calendar.tooltip.unselectPeriod"), unselectPeriodLink)
                            .setColor(CSSColor.RED));
        }
        final QuickSelectPanel quickSelectPanel = new QuickSelectPanel(fs.newChildId(), parentPage,
                "quickSelect", startDate);
        fs.add(quickSelectPanel);
        quickSelectPanel.init();
        fs.add(new DivTextPanel(fs.newChildId(), new Model<String>() {
            @Override
            public String getObject() {
                return WicketUtils.getCalendarWeeks(VisitorbookListForm.this, filter.getStartTime(),
                        filter.getStopTime());
            }
        }));
        fs.add(new HtmlCommentPanel(fs.newChildId(), new Model<String>() {
            @Override
            public String getObject() {
                return WicketUtils.getUTCDates(filter.getStartTime(), filter.getStopTime());
            }
        }));
    }
}

From source file:org.projectforge.web.task.TaskSelectPanel.java

License:Open Source License

/**
 * @see org.projectforge.web.wicket.AbstractSelectPanel#onBeforeRender()
 *///from w  w  w . j  a  va 2 s. c om
@SuppressWarnings("serial")
@Override
protected void onBeforeRender() {
    super.onBeforeRender();
    final TaskDO task = getModelObject();
    final Integer taskId = task != null ? task.getId() : null;
    if (currentTaskId == taskId) {
        return;
    }
    currentTaskId = taskId;
    if (showPath == true && task != null) {
        ancestorRepeater.removeAll();
        final TaskNode taskNode = taskTree.getTaskNodeById(task.getId());
        final List<Integer> ancestorIds = taskNode.getAncestorIds();
        final ListIterator<Integer> it = ancestorIds.listIterator(ancestorIds.size());
        while (it.hasPrevious() == true) {
            final Integer ancestorId = it.previous();
            final TaskDO ancestorTask = taskTree.getTaskById(ancestorId);
            if (ancestorTask.getParentTask() == null) {
                // Don't show root node:
                continue;
            }
            final WebMarkupContainer cont = new WebMarkupContainer(ancestorRepeater.newChildId());
            ancestorRepeater.add(cont);
            final SubmitLink selectTaskLink = new SubmitLink("ancestorTaskLink") {
                @Override
                public void onSubmit() {
                    caller.select(selectProperty, ancestorTask.getId());
                }
            };
            selectTaskLink.setDefaultFormProcessing(false);
            cont.add(selectTaskLink);
            WicketUtils.addTooltip(selectTaskLink, getString("task.selectPanel.selectAncestorTask.tooltip"));
            selectTaskLink.add(new Label("name", ancestorTask.getTitle()));
        }
        ancestorRepeater.setVisible(true);
    } else {
        ancestorRepeater.setVisible(false);
    }
}

From source file:org.projectforge.web.task.TaskSelectPanel.java

License:Open Source License

@Override
@SuppressWarnings("serial")
public TaskSelectPanel init() {
    super.init();
    ancestorRepeater = new RepeatingView("ancestorTasks");
    divContainer.add(ancestorRepeater);/*from   w  w w .j a  v  a 2 s  . c o m*/
    final SubmitLink taskLink = new SubmitLink("taskLink") {
        @Override
        public void onSubmit() {
            final TaskDO task = getModelObject();
            if (task == null) {
                return;
            }
            final PageParameters pageParams = new PageParameters();
            pageParams.add(AbstractEditPage.PARAMETER_KEY_ID, String.valueOf(task.getId()));
            final TaskEditPage editPage = new TaskEditPage(pageParams);
            editPage.setReturnToPage((AbstractSecuredPage) getPage());
            setResponsePage(editPage);
        }
    };
    taskLink.setDefaultFormProcessing(false);
    divContainer.add(taskLink);
    // auto complete panels
    initAutoCompletePanels();

    WicketUtils.addTooltip(taskLink, getString("task.selectPanel.displayTask.tooltip"));
    taskLink.add(new Label("name", new Model<String>() {
        /**
         * @see org.apache.wicket.model.Model#getObject()
         */
        @Override
        public String getObject() {
            final TaskDO task = getModelObject();
            return task != null ? task.getTitle() : "";
        }
    }));

    final SubmitLink selectButton = new SubmitLink("select") {
        @Override
        public void onSubmit() {
            final TaskTreePage taskTreePage = new TaskTreePage(caller, selectProperty);
            if (getModelObject() != null) {
                taskTreePage.setHighlightedRowId(getModelObject().getId()); // Preselect node for highlighting.
            }
            setResponsePage(taskTreePage);
        };
    };
    selectButton.setDefaultFormProcessing(false);
    divContainer.add(selectButton);
    selectButton.add(new IconPanel("selectHelp", IconType.TASK, getString("tooltip.selectTask")));
    final SubmitLink unselectButton = new SubmitLink("unselect") {
        @Override
        public void onSubmit() {
            caller.unselect(selectProperty);
        }

        @Override
        public boolean isVisible() {
            return isRequired() == false && getModelObject() != null;
        }
    };
    unselectButton.setDefaultFormProcessing(false);
    divContainer.add(unselectButton);
    unselectButton.add(new IconPanel("unselectHelp", IconType.REMOVE_SIGN, getString("tooltip.unselectTask"))
            .setColor(CSSColor.RED));
    // DropDownChoice favorites
    final FavoritesChoicePanel<TaskDO, TaskFavorite> favoritesPanel = new FavoritesChoicePanel<TaskDO, TaskFavorite>(
            "favorites", UserPrefArea.TASK_FAVORITE, tabIndex, "full text") {
        @Override
        protected void select(final TaskFavorite favorite) {
            if (favorite.getTask() != null) {
                TaskSelectPanel.this.selectTask(favorite.getTask());
            }
        }

        @Override
        protected TaskDO getCurrentObject() {
            return TaskSelectPanel.this.getModelObject();
        }

        @Override
        protected TaskFavorite newFavoriteInstance(final TaskDO currentObject) {
            final TaskFavorite favorite = new TaskFavorite();
            favorite.setTask(currentObject);
            return favorite;
        }
    };
    divContainer.add(favoritesPanel);
    favoritesPanel.init();
    if (showFavorites == false) {
        favoritesPanel.setVisible(false);
    }
    return this;
}

From source file:org.projectforge.web.teamcal.event.TeamEventListForm.java

License:Open Source License

/**
 * @see org.projectforge.web.wicket.AbstractListForm#onOptionsPanelCreate(org.projectforge.web.wicket.flowlayout.FieldsetPanel,
 *      org.projectforge.web.wicket.flowlayout.DivPanel)
 *//*from  w  w  w .  j ava  2 s.  c  o m*/
@SuppressWarnings("serial")
@Override
protected void onOptionsPanelCreate(final FieldsetPanel optionsFieldsetPanel,
        final DivPanel optionsCheckBoxesPanel) {
    {
        optionsFieldsetPanel.setOutputMarkupId(true);
        startDate = new DatePanel(optionsFieldsetPanel.newChildId(),
                new PropertyModel<Date>(getSearchFilter(), "startDate"),
                DatePanelSettings.get().withSelectPeriodMode(true));
        optionsFieldsetPanel.add(dependentFormComponents[0] = startDate);
        optionsFieldsetPanel.setLabelFor(startDate);
        optionsFieldsetPanel.add(new DivTextPanel(optionsFieldsetPanel.newChildId(), " - "));
        endDate = new DatePanel(optionsFieldsetPanel.newChildId(),
                new PropertyModel<Date>(getSearchFilter(), "endDate"),
                DatePanelSettings.get().withSelectPeriodMode(true));
        optionsFieldsetPanel.add(dependentFormComponents[1] = endDate);
        {
            final SubmitLink unselectPeriod = new SubmitLink(IconLinkPanel.LINK_ID) {
                @Override
                public void onSubmit() {
                    getSearchFilter().setStartDate(null);
                    getSearchFilter().setEndDate(null);
                    clearInput();
                    parentPage.refresh();
                };
            };
            unselectPeriod.setDefaultFormProcessing(false);
            optionsFieldsetPanel.add(new IconLinkPanel(optionsFieldsetPanel.newChildId(), IconType.REMOVE_SIGN,
                    new ResourceModel("calendar.tooltip.unselectPeriod"), unselectPeriod)
                            .setColor(CSSColor.RED));
        }
        final QuickSelectPanel quickSelectPanel = new QuickSelectPanel(optionsFieldsetPanel.newChildId(),
                parentPage, "quickSelect", startDate);
        optionsFieldsetPanel.add(quickSelectPanel);
        quickSelectPanel.init();
        optionsFieldsetPanel.add(new HtmlCommentPanel(optionsFieldsetPanel.newChildId(), new Model<String>() {
            @Override
            public String getObject() {
                return WicketUtils.getUTCDates(getSearchFilter().getStartDate(),
                        getSearchFilter().getEndDate());
            }
        }));
    }
    {
        // Team calendar
        final FieldsetPanel fs = gridBuilder.newFieldset(getString("plugins.teamcal.calendar"));// .setLabelSide(false);
        final TeamCalsProvider calendarProvider = new TeamCalsProvider(teamCalCache);
        calendarsListHelper = new MultiChoiceListHelper<TeamCalDO>().setComparator(new TeamCalsComparator())
                .setFullList(calendarProvider.getSortedCalenders());
        final Collection<Integer> list = getFilter().getTeamCals();
        if (list != null) {
            for (final Integer calId : list) {
                final TeamCalDO cal = teamCalCache.getCalendar(calId);
                calendarsListHelper.addOriginalAssignedItem(cal).assignItem(cal);
            }
        }
        final Select2MultiChoice<TeamCalDO> calendars = new Select2MultiChoice<TeamCalDO>(
                fs.getSelect2MultiChoiceId(),
                new PropertyModel<Collection<TeamCalDO>>(this.calendarsListHelper, "assignedItems"),
                calendarProvider);
        fs.add(calendars);
    }
}