1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.module.workflow.inbox;
35
36 import info.magnolia.cms.gui.controlx.list.DefaultValueProvider;
37 import info.magnolia.context.Context;
38 import info.magnolia.module.workflow.WorkflowUtil;
39 import openwfe.org.engine.workitem.Attribute;
40 import openwfe.org.engine.workitem.InFlowItem;
41 import openwfe.org.engine.workitem.StringAttribute;
42
43 import org.apache.commons.lang.StringUtils;
44
45
46
47
48
49
50 public class InboxValueProvider extends DefaultValueProvider {
51
52
53
54
55 public Object getValue(String name, Object obj) {
56 InFlowItem item = (InFlowItem) obj;
57 if (name.equalsIgnoreCase("name")){
58 String path = (String) getValue("path", obj);
59 if(path != null){
60 return StringUtils.substringAfterLast(path.toString(), "/");
61 }
62 return StringUtils.EMPTY;
63 }
64 else if (name.equalsIgnoreCase("id")) {
65 return WorkflowUtil.getId(item);
66 }
67 else if (name.equalsIgnoreCase("comment")) {
68 if(item.containsAttribute(Context.ATTRIBUTE_EXCEPTION)){
69 return item.getAttribute(Context.ATTRIBUTE_MESSAGE);
70 }
71 else if (item.containsAttribute("comment")) {
72 return item.getAttribute("comment");
73 }
74 else{
75 return StringUtils.EMPTY;
76 }
77 }
78 else if (name.equalsIgnoreCase("workflow")) {
79 return item.getId().getWorkflowDefinitionName();
80 }
81 else if (name.equalsIgnoreCase("workItemPath")) {
82 return WorkflowUtil.getPath(WorkflowUtil.getId(item));
83 }
84 if (item.containsAttribute(name)) {
85 Attribute attribute = item.getAttribute(name);
86 if(attribute instanceof StringAttribute){
87 return ((StringAttribute)attribute).toString();
88 }
89 return attribute;
90 }
91 else {
92 return super.getValue(name, obj);
93 }
94 }
95 }