1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.kim.web.struts.form;
17
18 import org.apache.log4j.Logger;
19 import org.kuali.rice.coreservice.api.parameter.Parameter;
20 import org.kuali.rice.coreservice.framework.CoreFrameworkServiceLocator;
21 import org.kuali.rice.kim.api.KimConstants;
22 import org.kuali.rice.kns.util.PagingBannerUtils;
23 import org.kuali.rice.kns.web.struts.form.KualiTableRenderFormMetadata;
24 import org.kuali.rice.kns.web.struts.form.KualiTransactionalDocumentFormBase;
25 import org.kuali.rice.krad.util.KRADConstants;
26
27 import javax.servlet.http.HttpServletRequest;
28 import java.util.ArrayList;
29 import java.util.List;
30
31
32
33
34
35
36
37 @SuppressWarnings("serial")
38 public abstract class IdentityManagementDocumentFormBase extends KualiTransactionalDocumentFormBase {
39 protected static final Logger LOG = Logger.getLogger(IdentityManagementDocumentFormBase.class);
40 protected static final String MAX_MEMBERS_PER_PAGE_PARM = "MAX_MEMBERS_PER_PAGE";
41 protected transient KualiTableRenderFormMetadata memberTableMetadata;
42 protected int recordsPerPage = -1;
43 protected boolean inquiry = false;
44
45 protected static final String CHANGE_NAMESPACE_METHOD_TO_CALL = "methodToCall.changeNamespace";
46 protected static final String CHANGE_MEMBER_TYPE_CODE_METHOD_TO_CALL = "methodToCall.changeMemberTypeCode";
47 protected static final String CHANGE_DEL_ROLE_MEMBER_METHOD_TO_CALL = "methodToCall.changeDelegationRoleMember";
48
49
50
51
52 @SuppressWarnings("unchecked")
53 @Override
54 public void populate(HttpServletRequest request) {
55 super.populate(request);
56
57 if (memberTableMetadata == null)
58 memberTableMetadata = new KualiTableRenderFormMetadata();
59
60 if (KRADConstants.TableRenderConstants.SWITCH_TO_PAGE_METHOD.equals(getMethodToCall())) {
61 final String paramPrefix = KRADConstants.DISPATCH_REQUEST_PARAMETER + "." + KRADConstants.TableRenderConstants.SWITCH_TO_PAGE_METHOD + ".";
62 memberTableMetadata.setSwitchToPageNumber(
63 PagingBannerUtils.getNumbericalValueAfterPrefix(paramPrefix, request.getParameterNames()));
64 if (memberTableMetadata.getSwitchToPageNumber() == -1) {
65 throw new RuntimeException("Couldn't find page number");
66 }
67 } else if (KRADConstants.TableRenderConstants.SORT_METHOD.equals(getMethodToCall())) {
68 final String paramPrefix = KRADConstants.DISPATCH_REQUEST_PARAMETER + "." + KRADConstants.TableRenderConstants.SORT_METHOD + ".";
69 memberTableMetadata.setColumnToSortIndex(PagingBannerUtils.getNumbericalValueAfterPrefix(paramPrefix, request.getParameterNames()));
70 if (memberTableMetadata.getColumnToSortIndex() == -1) {
71 memberTableMetadata.setColumnToSortName(PagingBannerUtils.getStringValueAfterPrefix(paramPrefix, request.getParameterNames()));
72 }
73 }
74 }
75
76 public KualiTableRenderFormMetadata getMemberTableMetadata() {
77 return this.memberTableMetadata;
78 }
79
80 public void setMemberTableMetadata(
81 KualiTableRenderFormMetadata memberTableMetadata) {
82 this.memberTableMetadata = memberTableMetadata;
83 }
84
85 public int getRecordsPerPage() {
86 if ( recordsPerPage == -1 ) {
87 Parameter param = CoreFrameworkServiceLocator.getParameterService().getParameter(KimConstants.NAMESPACE_CODE, KRADConstants.DetailTypes.DOCUMENT_DETAIL_TYPE, MAX_MEMBERS_PER_PAGE_PARM);
88 if ( param != null ) {
89 try {
90 recordsPerPage = Integer.parseInt( param.getValue() );
91 } catch ( NumberFormatException ex ) {
92 LOG.error( "Unable to parse parameter " + KimConstants.NAMESPACE_CODE+"/"+ KRADConstants.DetailTypes.DOCUMENT_DETAIL_TYPE+"/"+MAX_MEMBERS_PER_PAGE_PARM + "(+"+param.getValue()+") as an int - defaulting to 1." );
93 recordsPerPage = 1;
94 }
95 } else {
96 LOG.error( "Unable to find " + KimConstants.NAMESPACE_CODE+"/"+ KRADConstants.DetailTypes.DOCUMENT_DETAIL_TYPE+"/"+MAX_MEMBERS_PER_PAGE_PARM + " - defaulting to 1." );
97 recordsPerPage = 1;
98 }
99 }
100 return recordsPerPage;
101 }
102
103
104 public boolean isCanExport() {
105 return false;
106 }
107
108 @SuppressWarnings("unchecked")
109 public List getMemberRows() {
110 return new ArrayList();
111 }
112
113
114
115
116 public boolean isInquiry() {
117 return this.inquiry;
118 }
119
120
121
122
123 public void setInquiry(boolean inquiry) {
124 this.inquiry = inquiry;
125 }
126 }