1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.krad.uif.field;
17
18 import org.apache.commons.lang.StringUtils;
19 import org.kuali.rice.core.api.util.ConcreteKeyValue;
20 import org.kuali.rice.core.api.util.KeyValue;
21 import org.kuali.rice.krad.datadictionary.AttributeDefinition;
22 import org.kuali.rice.krad.uif.control.CheckboxControl;
23 import org.kuali.rice.krad.uif.control.Control;
24 import org.kuali.rice.krad.uif.control.RadioGroupControl;
25 import org.kuali.rice.krad.uif.control.TextAreaControl;
26 import org.kuali.rice.krad.uif.util.ComponentFactory;
27 import org.kuali.rice.krad.uif.util.ComponentUtils;
28 import org.kuali.rice.krad.uif.view.View;
29 import org.kuali.rice.krad.util.KRADConstants;
30 import org.kuali.rice.krad.util.KRADPropertyConstants;
31
32 import java.util.ArrayList;
33 import java.util.List;
34
35
36
37
38
39
40 public class LookupInputField extends InputField {
41 private static final long serialVersionUID = -8294275596836322699L;
42
43 private boolean treatWildcardsAndOperatorsAsLiteral;
44 private boolean addAllOption;
45
46 public LookupInputField() {
47 super();
48
49 treatWildcardsAndOperatorsAsLiteral = false;
50 addAllOption = false;
51 }
52
53
54
55
56
57
58
59
60 @Override
61 public void copyFromAttributeDefinition(View view, AttributeDefinition attributeDefinition) {
62
63 if (StringUtils.isEmpty(getLabel())) {
64 setLabel(attributeDefinition.getLabel());
65 }
66
67
68 if (StringUtils.isEmpty(getShortLabel())) {
69 setShortLabel(attributeDefinition.getShortLabel());
70 }
71
72
73 if (getAttributeSecurity() == null) {
74 setAttributeSecurity(attributeDefinition.getAttributeSecurity());
75 }
76
77
78 if (getOptionsFinder() == null) {
79 setOptionsFinder(attributeDefinition.getOptionsFinder());
80 }
81
82
83
84
85 if (getControl() == null) {
86 Control control = convertControlToLookupControl(attributeDefinition);
87 view.assignComponentIds(control);
88
89 setControl(control);
90 }
91
92
93 setMaxLength(100);
94
95
96 if (StringUtils.isEmpty(getDefaultValue())) {
97 if ((StringUtils.equals(getPropertyName(), KRADPropertyConstants.ACTIVE))) {
98 setDefaultValue(KRADConstants.YES_INDICATOR_VALUE);
99 }
100 }
101
102
103
104
105
106
107 }
108
109
110
111
112
113
114
115
116 protected static Control convertControlToLookupControl(AttributeDefinition attributeDefinition) {
117 if (attributeDefinition.getControlField() == null) {
118 return null;
119 }
120
121 Control newControl = null;
122
123
124 if (CheckboxControl.class.isAssignableFrom(attributeDefinition.getControlField().getClass())) {
125 newControl = ComponentFactory.getRadioGroupControlHorizontal();
126 List<KeyValue> options = new ArrayList<KeyValue>();
127 options.add(new ConcreteKeyValue("Y", "Yes"));
128 options.add(new ConcreteKeyValue("N", "No"));
129 options.add(new ConcreteKeyValue("", "Both"));
130
131 ((RadioGroupControl) newControl).setOptions(options);
132 }
133
134 else if (TextAreaControl.class.isAssignableFrom(attributeDefinition.getControlField().getClass())) {
135 newControl = ComponentFactory.getTextControl();
136 } else {
137 newControl = ComponentUtils.copy(attributeDefinition.getControlField(), "");
138 }
139
140 return newControl;
141 }
142
143
144
145
146 public boolean isTreatWildcardsAndOperatorsAsLiteral() {
147 return this.treatWildcardsAndOperatorsAsLiteral;
148 }
149
150
151
152
153 public void setTreatWildcardsAndOperatorsAsLiteral(boolean treatWildcardsAndOperatorsAsLiteral) {
154 this.treatWildcardsAndOperatorsAsLiteral = treatWildcardsAndOperatorsAsLiteral;
155 }
156
157
158
159
160
161
162
163 public boolean isAddAllOption() {
164 return addAllOption;
165 }
166
167
168
169
170
171
172 public void setAddAllOption(boolean addAllOption) {
173 this.addAllOption = addAllOption;
174 }
175 }