Skip to content

Commit

Permalink
MID-7977 target ref for case work item now shown (link not enabled if…
Browse files Browse the repository at this point in the history
… object oid is not available)
  • Loading branch information
1azyman committed Sep 7, 2022
1 parent 6bb3008 commit 5da8d27
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -360,10 +360,10 @@ private static String emptyIfNull(String s) {
}

public static String getReferencedObjectDisplayNameAndName(Referencable ref, boolean loadObject, PageBase pageBase) {
if (ref == null || ref.getOid() == null) {
if (ref == null) {
return "";
}
if (ref.asReferenceValue().getObject() == null && !loadObject) {
if (ref.getOid() != null && ref.asReferenceValue().getObject() == null && !loadObject) {
return getReferencedObjectDisplayNamesAndNames(ref, false, true);
}
PrismObject<ObjectType> prismObject = ref.asReferenceValue().getObject();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,20 @@ public void initReferencedObjectModel() {

@Override
protected PrismReferenceValue load() {
if (getModelObject() == null || getModelObject().getOid() == null) {
R ref = getModelObject();
if (ref == null) {
return null;
}
PrismReferenceValue value = getModelObject().asReferenceValue().clone();

PrismReferenceValue value = ref.asReferenceValue().clone();
if (value.getOid() == null && value.getObject() == null) {
return null;
}

if (value.getObject() == null) {
Task task = getPageBase().createSimpleTask(OPERATION_LOAD_REFERENCED_OBJECT);
OperationResult result = task.getResult();
PrismObject<ObjectType> referencedObject = WebModelServiceUtils.loadObject(getModelObject(),
PrismObject<ObjectType> referencedObject = WebModelServiceUtils.loadObject(ref,
true, getPageBase(), task, result);
if (referencedObject != null) {
value.setObject(referencedObject.clone());
Expand Down Expand Up @@ -114,7 +120,7 @@ public void onClick(AjaxRequestTarget ajaxRequestTarget) {
return false;
}

return ref.getObject() != null;
return ref.getOid() != null;
}));
add(nameLink);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,6 @@
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.api.prism.wrapper.PrismValueWrapper;
import com.evolveum.midpoint.gui.impl.component.icon.IconCssStyle;
import com.evolveum.midpoint.util.QNameUtil;

import com.evolveum.midpoint.web.component.assignment.AssignmentsUtil;
import com.evolveum.midpoint.web.component.util.SelectableRow;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.Component;
Expand All @@ -42,12 +35,14 @@
import com.evolveum.midpoint.gui.api.GuiStyleConstants;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerValueWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismValueWrapper;
import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.gui.impl.component.data.column.CompositedIconColumn;
import com.evolveum.midpoint.gui.impl.component.icon.CompositedIcon;
import com.evolveum.midpoint.gui.impl.component.icon.CompositedIconBuilder;
import com.evolveum.midpoint.gui.impl.component.icon.IconCssStyle;
import com.evolveum.midpoint.gui.impl.page.admin.org.PageOrg;
import com.evolveum.midpoint.prism.Containerable;
import com.evolveum.midpoint.prism.PrismObject;
Expand All @@ -64,11 +59,14 @@
import com.evolveum.midpoint.schema.util.cases.ApprovalUtils;
import com.evolveum.midpoint.schema.util.cases.CaseTypeUtil;
import com.evolveum.midpoint.schema.util.task.work.ResourceObjectSetUtil;
import com.evolveum.midpoint.util.QNameUtil;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.DateLabelComponent;
import com.evolveum.midpoint.web.component.assignment.AssignmentsUtil;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.component.util.SelectableBeanImpl;
import com.evolveum.midpoint.web.component.util.SelectableRow;
import com.evolveum.midpoint.web.page.admin.server.dto.ApprovalOutcomeIcon;
import com.evolveum.midpoint.web.page.admin.server.dto.OperationResultStatusPresentationProperties;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
Expand Down Expand Up @@ -656,7 +654,8 @@ public boolean isEnabled(IModel<PrismContainerValueWrapper<CaseWorkItemType>> ro
Collections.singletonList(caseType.getObjectRef()), "loadCaseWorkItemObjectRef", pageBase));
}
});
columns.add(new AjaxLinkColumn<PrismContainerValueWrapper<CaseWorkItemType>>(createStringResource("WorkItemsPanel.target")) {
columns.add(new AjaxLinkColumn<>(createStringResource("WorkItemsPanel.target")) {

private static final long serialVersionUID = 1L;

@Override
Expand Down Expand Up @@ -690,10 +689,14 @@ public void populateItem(Item<ICellPopulator<PrismContainerValueWrapper<CaseWork

@Override
public boolean isEnabled(IModel<PrismContainerValueWrapper<CaseWorkItemType>> rowModel) {
CaseWorkItemType caseWorkItemType = unwrapRowModel(rowModel);
CaseType caseType = CaseTypeUtil.getCase(caseWorkItemType);
return CollectionUtils.isNotEmpty(WebComponentUtil.loadReferencedObjectList(
Collections.singletonList(caseType.getTargetRef()), "loadCaseWorkItemTargetRef", pageBase));
CaseWorkItemType caseWorkItem = unwrapRowModel(rowModel);
CaseType caseType = CaseTypeUtil.getCase(caseWorkItem);
if (caseType == null) {
return false;
}

ObjectReferenceType ref = caseType.getTargetRef();
return ref != null && ref.getOid() != null;
}
});
if (isFullView) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,8 +198,7 @@ private void initLayout() {
parentCaseLink.setOutputMarkupId(true);
parentCaseContainer.add(parentCaseLink);

LinkedReferencePanel<ObjectReferenceType> target = new LinkedReferencePanel<>(ID_TARGET,
Model.of(WorkItemTypeUtil.getTargetReference(getModelObject())));
LinkedReferencePanel<ObjectReferenceType> target = new LinkedReferencePanel<>(ID_TARGET, () -> WorkItemTypeUtil.getTargetReference(getModelObject()));
target.setOutputMarkupId(true);
add(target);

Expand Down

0 comments on commit 5da8d27

Please sign in to comment.