public TaskSelectPanel( final FieldsetPanel fieldsetPanel, final IModel<TaskDO> model, final ISelectCallerPage caller, final String selectProperty) { super(fieldsetPanel.newChildId(), model, caller, selectProperty); this.fieldsetPanel = fieldsetPanel; fieldsetPanel.getFieldset().setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true); TaskDO task = model.getObject(); if (Hibernate.isInitialized(task) == false) { task = taskTree.getTaskById(task.getId()); model.setObject(task); } divContainer = new WebMarkupContainer("div") { private static final long serialVersionUID = -8150112323444983335L; /** @see org.apache.wicket.Component#isVisible() */ @Override public boolean isVisible() { // display only, if we are not in ajax task select mode return ajaxTaskSelectMode == false; } }; divContainer.setOutputMarkupId(true); divContainer.setOutputMarkupPlaceholderTag(true); add(divContainer); ajaxTaskSelectMode = false; }
/** @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); } }