Skip to content

Commit

Permalink
MID-5952 Direct link to work items in UI
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Mar 12, 2020
1 parent f4a600b commit b09af86
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 5 deletions.
Expand Up @@ -14,6 +14,7 @@
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.PrismReferenceValue;
import com.evolveum.midpoint.prism.Referencable;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.web.component.data.column.ImagePanel;
import com.evolveum.midpoint.web.component.util.EnableBehaviour;
Expand All @@ -31,7 +32,7 @@
/**
* Created by honchar
*/
public class LinkedReferencePanel<O extends ObjectType> extends BasePanel<ObjectReferenceType> {
public class LinkedReferencePanel<O extends ObjectType, R extends Referencable> extends BasePanel<R> {
private static final long serialVersionUID = 1L;

private static final String ID_ICON = "icon";
Expand All @@ -43,7 +44,7 @@ public class LinkedReferencePanel<O extends ObjectType> extends BasePanel<Object

IModel<ObjectType> referencedObjectModel = null;

public LinkedReferencePanel(String id, IModel<ObjectReferenceType> objectReferenceModel){
public LinkedReferencePanel(String id, IModel<R> objectReferenceModel){
super(id, objectReferenceModel);
}

Expand All @@ -65,10 +66,11 @@ protected ObjectType load() {
&& getModelObject().asReferenceValue().getObject().asObjectable() instanceof ObjectType ){
return (ObjectType)getModelObject().asReferenceValue().getObject().asObjectable();
}
if (StringUtils.isNotEmpty(getModelObject().getOid()) && getModelObject().getType() != null) {
if (StringUtils.isNotEmpty(getModelObject().getOid()) && getModelObject().getType() != null &&
getModelObject() instanceof ObjectReferenceType) {
PageBase pageBase = LinkedReferencePanel.this.getPageBase();
OperationResult result = new OperationResult(OPERATION_LOAD_REFERENCED_OBJECT);
PrismObject<ObjectType> referencedObject = WebModelServiceUtils.loadObject(getModelObject(), pageBase,
PrismObject<ObjectType> referencedObject = WebModelServiceUtils.loadObject((ObjectReferenceType) getModelObject(), pageBase,
pageBase.createSimpleTask(OPERATION_LOAD_REFERENCED_OBJECT), result);
return referencedObject != null ? referencedObject.asObjectable() : null;
}
Expand Down
Expand Up @@ -32,6 +32,7 @@
import org.apache.wicket.Component;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.feedback.FeedbackMessage;
import org.apache.wicket.request.mapper.parameter.PageParameters;

import java.util.ArrayList;
Expand Down Expand Up @@ -98,6 +99,10 @@ public class PageCaseWorkItem extends PageAdminCaseWorkItems {
private WorkItemId workItemId;
private PageParameters pageParameters;

public PageCaseWorkItem() {
this(null);
}

public PageCaseWorkItem(CaseWorkItemType workItem) {
this(workItem, null);
}
Expand All @@ -108,7 +113,12 @@ public PageCaseWorkItem(CaseWorkItemType workItem, PageParameters parameters) {
caseWorkItemModel = new LoadableModel<CaseWorkItemType>(false) {
@Override
protected CaseWorkItemType load() {
return workItem;
if (workItem != null) {
return workItem;
} else {
getSession().error("Workitem model cannot be null");
throw redirectBackViaRestartResponseException();
}
}
};

Expand Down

0 comments on commit b09af86

Please sign in to comment.