Skip to content

Commit

Permalink
navigate to task from case page
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Mar 16, 2020
1 parent 9aa28d5 commit fb6012e
Showing 1 changed file with 33 additions and 2 deletions.
Expand Up @@ -9,13 +9,20 @@
import java.util.List;

import com.evolveum.midpoint.gui.api.component.tabs.PanelTab;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.schema.util.CaseTypeUtil;
import com.evolveum.midpoint.web.component.AjaxButton;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;
Expand Down Expand Up @@ -47,7 +54,7 @@ public class PageCase extends PageAdminObjectDetails<CaseType> {

private static final Trace LOGGER = TraceManager.getTrace(PageCase.class);
private static final String DOT_CLASS = PageCase.class.getName() + ".";
private static final String OPERATION_LOAD_CASE = DOT_CLASS + "loadCase";
private static final String OPERATION_LOAD_CONNECTED_TASK = DOT_CLASS + "loadConnectedTask";

private static final String ID_SUMMARY_PANEL = "summaryPanel";

Expand All @@ -61,7 +68,7 @@ public PageCase(PrismObject<CaseType> unitToEdit, boolean isNewObject) {

public PageCase(PageParameters parameters) {
getPageParameters().overwriteWith(parameters);
initialize(null, true, true);
initialize(null, false, true);
}


Expand Down Expand Up @@ -184,6 +191,30 @@ protected ObjectSummaryPanel<CaseType> createSummaryPanel(IModel<CaseType> summa
return new CaseSummaryPanel(ID_SUMMARY_PANEL, CaseType.class, summaryModel, this);
}

protected void initOperationalButtons(RepeatingView repeatingView){
OperationResult result = new OperationResult(OPERATION_LOAD_CONNECTED_TASK);
ObjectQuery query = getPrismContext().queryFor(TaskType.class)
.item(TaskType.F_OBJECT_REF)
.ref(getObjectWrapper().getOid())
.build();
List<PrismObject<TaskType>> connectedTasks = WebModelServiceUtils.searchObjects(TaskType.class, query, result, PageCase.this);
final ObjectReferenceType taskRef = new ObjectReferenceType();
if (CollectionUtils.isNotEmpty(connectedTasks)) {
taskRef.setOid(connectedTasks.get(0).getOid());
taskRef.setType(TaskType.COMPLEX_TYPE);
}
if (StringUtils.isNotEmpty(taskRef.getOid())) {
AjaxButton navigateToTask = new AjaxButton(repeatingView.newChildId(), createStringResource("PageCase.navigateToTask")) {
@Override
public void onClick(AjaxRequestTarget target) {
WebComponentUtil.dispatchToObjectDetailsPage(taskRef, PageCase.this, false);
}
};
navigateToTask.add(AttributeAppender.append("class", "btn-default"));
repeatingView.add(navigateToTask);
}
}

@Override
public void finishProcessing(AjaxRequestTarget target, OperationResult result, boolean returningFromAsync) {

Expand Down

0 comments on commit fb6012e

Please sign in to comment.