/** @see org.projectforge.web.wicket.AbstractSelectPanel#onBeforeRender() */ @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); } }