1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.kew.impl.peopleflow;
17
18 import org.apache.commons.lang.StringUtils;
19 import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
20 import org.kuali.rice.core.api.uif.RemotableAttributeField;
21 import org.kuali.rice.kew.api.KewApiServiceLocator;
22 import org.kuali.rice.kew.api.peopleflow.PeopleFlowDefinition;
23 import org.kuali.rice.kew.api.repository.type.KewTypeDefinition;
24 import org.kuali.rice.kew.framework.peopleflow.PeopleFlowTypeService;
25 import org.kuali.rice.krad.maintenance.MaintainableImpl;
26 import org.kuali.rice.krad.uif.container.Container;
27 import org.kuali.rice.krad.uif.view.View;
28 import org.kuali.rice.krad.web.form.MaintenanceForm;
29
30 import java.util.ArrayList;
31 import java.util.List;
32
33
34
35
36
37
38 public class PeopleFlowMaintainableImpl extends MaintainableImpl {
39
40
41
42
43
44
45
46
47
48
49 public List<RemotableAttributeField> retrieveTypeAttributes(View view, Object model, Container container) {
50 List<RemotableAttributeField> remoteFields = new ArrayList<RemotableAttributeField>();
51
52 PeopleFlowBo peopleFlow =
53 (PeopleFlowBo) ((MaintenanceForm) model).getDocument().getNewMaintainableObject().getDataObject();
54
55
56 String typeId = peopleFlow.getTypeId();
57 if (StringUtils.isNotBlank(typeId)) {
58 KewTypeDefinition typeDefinition = KewApiServiceLocator.getKewTypeRepositoryService().getTypeById(typeId);
59 PeopleFlowTypeService peopleFlowTypeService = GlobalResourceLoader.<PeopleFlowTypeService>getService(
60 typeDefinition.getServiceName());
61 remoteFields = peopleFlowTypeService.getAttributeFields(typeId);
62 }
63
64 return remoteFields;
65 }
66
67
68
69
70
71 @Override
72 public void saveDataObject() {
73 ((PeopleFlowBo) getDataObject()).updateAttributeBoValues();
74
75 PeopleFlowDefinition peopleFlowDefinition = PeopleFlowBo.to(((PeopleFlowBo) getDataObject()));
76 if (StringUtils.isNotBlank(peopleFlowDefinition.getId())) {
77 KewApiServiceLocator.getPeopleFlowService().updatePeopleFlow(peopleFlowDefinition);
78 } else {
79 KewApiServiceLocator.getPeopleFlowService().createPeopleFlow(peopleFlowDefinition);
80 }
81 }
82 }