View Javadoc
1   package org.kuali.ole.describe.lookup;
2   
3   import org.apache.commons.lang.StringUtils;
4   import org.kuali.rice.krad.lookup.LookupableImpl;
5   import org.kuali.rice.krad.uif.UifConstants;
6   import org.kuali.rice.krad.uif.UifParameters;
7   import org.kuali.rice.krad.uif.view.LookupView;
8   import org.kuali.rice.krad.util.KRADConstants;
9   import org.kuali.rice.krad.util.KRADUtils;
10  import org.kuali.rice.krad.util.UrlFactory;
11  import org.kuali.rice.krad.web.form.LookupForm;
12  
13  import java.util.List;
14  import java.util.Map;
15  import java.util.Properties;
16  
17  /**
18   * Created with IntelliJ IDEA.
19   * User: ?
20   * Date: 1/23/13
21   * Time: 12:33 PM
22   * To change this template use File | Settings | File Templates.
23   */
24  public class OleAccessMethodLookupableImpl extends LookupableImpl {
25      private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(org.kuali.ole.describe.lookup.OleAccessMethodLookupableImpl.class);
26  
27  
28      /**
29       * Generates a URL to perform a maintenance action on the given result data object
30       * <p/>
31       * <p>
32       * Will build a URL containing keys of the data object to invoke the given maintenance action method
33       * within the maintenance controller
34       * </p>
35       *
36       * @param dataObject   - data object instance for the line to build the maintenance action link for
37       * @param methodToCall - method name on the maintenance controller that should be invoked
38       * @param pkNames      - list of primary key field names for the data object whose key/value pairs will be added to
39       *                     the maintenance link
40       * @return String URL link for the maintenance action
41       */
42      protected String getActionUrlHref(LookupForm lookupForm, Object dataObject, String methodToCall,
43                                        List<String> pkNames) {
44          LookupView lookupView = (LookupView) lookupForm.getView();
45          Properties props = new Properties();
46          props.put(KRADConstants.DISPATCH_REQUEST_PARAMETER, methodToCall);
47  
48          Map<String, String> primaryKeyValues = KRADUtils.getPropertyKeyValuesFromDataObject(pkNames, dataObject);
49          for (String primaryKey : primaryKeyValues.keySet()) {
50              String primaryKeyValue = primaryKeyValues.get(primaryKey);
51  
52              props.put(primaryKey, primaryKeyValue);
53          }
54  
55          if (StringUtils.isNotBlank(lookupForm.getReturnLocation())) {
56              props.put(KRADConstants.RETURN_LOCATION_PARAMETER, lookupForm.getReturnLocation());
57          }
58  
59          props.put(UifParameters.DATA_OBJECT_CLASS_NAME, lookupForm.getDataObjectClassName());
60          props.put(UifParameters.VIEW_TYPE_NAME, UifConstants.ViewType.MAINTENANCE.name());
61  
62          String maintenanceMapping = "accessMethodMaintenance";
63  
64          return UrlFactory.parameterizeUrl(maintenanceMapping, props);
65      }
66  
67  }
68  
69