1 /*
2 * Copyright 2007 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.opensource.org/licenses/ecl2.php
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.kuali.ole.gl.web.struts;
17
18 import javax.servlet.http.HttpServletRequest;
19
20 import org.kuali.ole.gl.GeneralLedgerConstants;
21 import org.kuali.ole.gl.businessobject.Entry;
22 import org.kuali.ole.sys.businessobject.GeneralLedgerPendingEntry;
23 import org.kuali.ole.sys.businessobject.lookup.LookupableSpringContext;
24 import org.kuali.rice.kns.lookup.Lookupable;
25 import org.kuali.rice.kns.web.struts.form.MultipleValueLookupForm;
26
27 /**
28 * Balance inquiries are pretty much just lookups already, but are not used in the traditional sense. In most cases, balance
29 * inquiries only show the end-user data, and allow the end-user to drill-down into inquiries. A traditional lookup allows the user
30 * to return data to a form. This class is for balance inquiries implemented in the sense of a traditional lookup for forms that
31 * pull data out of inquiries.<br/> <br/> One example of this is the
32 * <code>{@link org.kuali.ole.module.ld.document.SalaryExpenseTransferDocument}</code> which creates source lines from a labor
33 * ledger balance inquiry screen.<br/> <br/> This is a <code>{@link KualiMultipleValueLookupAction}</code> which required some
34 * customization because requirements were not possible with displaytag. There are a number of properties/attributes that are used
35 * for pagination, formatting, etc...
36 *
37 * @see org.kuali.ole.module.ld.document.SalaryExpenseTransferDocument
38 * @see org.kuali.ole.module.ld.document.web.struts.SalaryExpenseTransferAction;
39 * @see org.kuali.ole.module.ld.document.web.struts.SalaryExpenseTransferForm;
40 */
41 public class BalanceInquiryLookupForm extends MultipleValueLookupForm {
42 private static final long serialVersionUID = 1L;
43
44 private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(BalanceInquiryForm.class);
45
46 private Lookupable pendingEntryLookupable;
47 private LookupResultsSelectable selectable;
48 private boolean segmented;
49
50 public BalanceInquiryLookupForm() {
51 }
52
53 /**
54 * Picks out business object name from the request to get retrieve a lookupable and set properties.
55 *
56 * @param request <code>{@link javax.servlet.http.HttpServletRequest}</code> instance for Struts
57 */
58 @Override
59 public void populate(HttpServletRequest request) {
60 Lookupable localPendingEntryLookupable = null;
61
62 super.populate(request);
63
64 if (Entry.class.getName().equals(getBusinessObjectClassName())) {
65 localPendingEntryLookupable = LookupableSpringContext.getLookupable(GeneralLedgerConstants.LookupableBeanKeys.PENDING_ENTRY);
66 }
67
68 if (localPendingEntryLookupable != null) {
69 localPendingEntryLookupable.setBusinessObjectClass(GeneralLedgerPendingEntry.class);
70 localPendingEntryLookupable.setFieldConversions(getFieldConversions());
71 }
72 setPendingEntryLookupable(localPendingEntryLookupable);
73 }
74
75
76 /**
77 * @param pendingEntryLookupable
78 */
79 public void setPendingEntryLookupable(Lookupable pendingEntryLookupable) {
80 this.pendingEntryLookupable = pendingEntryLookupable;
81 }
82
83
84 /**
85 * @return Returns the pendingEntryLookupable.
86 */
87 public Lookupable getPendingEntryLookupable() {
88 return this.pendingEntryLookupable;
89 }
90
91 /**
92 * Determines if the balance inquiry lookup should be segmented or not
93 *
94 * @return boolean
95 */
96 public boolean isSegmented() {
97 return segmented;
98 }
99
100 /**
101 * Tells the balance inquiry lookup whether to be segmented or not
102 *
103 * @param seg
104 */
105 public void setSegmented(boolean seg) {
106 segmented = seg;
107 }
108 }