1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.krad.uif.widget;
17
18 import org.apache.commons.lang.StringUtils;
19 import org.kuali.rice.krad.bo.DataObjectRelationship;
20 import org.kuali.rice.krad.bo.ExternalizableBusinessObject;
21 import org.kuali.rice.krad.datadictionary.parse.BeanTag;
22 import org.kuali.rice.krad.datadictionary.parse.BeanTagAttribute;
23 import org.kuali.rice.krad.datadictionary.parse.BeanTags;
24 import org.kuali.rice.krad.service.KRADServiceLocatorWeb;
25 import org.kuali.rice.krad.service.ModuleService;
26 import org.kuali.rice.krad.uif.UifConstants;
27 import org.kuali.rice.krad.uif.UifParameters;
28 import org.kuali.rice.krad.uif.component.BindingInfo;
29 import org.kuali.rice.krad.uif.component.Component;
30 import org.kuali.rice.krad.uif.component.MethodInvokerConfig;
31 import org.kuali.rice.krad.uif.container.CollectionGroup;
32 import org.kuali.rice.krad.uif.container.DialogGroup;
33 import org.kuali.rice.krad.uif.element.Action;
34 import org.kuali.rice.krad.uif.field.FieldGroup;
35 import org.kuali.rice.krad.uif.field.InputField;
36 import org.kuali.rice.krad.uif.lifecycle.LifecycleEventListener;
37 import org.kuali.rice.krad.uif.lifecycle.ViewLifecycle;
38 import org.kuali.rice.krad.uif.lifecycle.ViewLifecycleRestriction;
39 import org.kuali.rice.krad.uif.util.LifecycleElement;
40 import org.kuali.rice.krad.uif.util.ViewModelUtils;
41 import org.kuali.rice.krad.uif.view.View;
42 import org.kuali.rice.krad.util.KRADConstants;
43 import org.kuali.rice.krad.util.KRADUtils;
44 import org.kuali.rice.krad.web.form.UifFormBase;
45
46 import java.util.ArrayList;
47 import java.util.HashMap;
48 import java.util.List;
49 import java.util.Map;
50
51
52
53
54
55
56 @BeanTags({@BeanTag(name = "quickFinder", parent = "Uif-QuickFinder"),
57 @BeanTag(name = "quickFinderByScript", parent = "Uif-QuickFinderByScript"),
58 @BeanTag(name = "collectionQuickFinder", parent = "Uif-CollectionQuickFinder")})
59
60 public class QuickFinder extends WidgetBase implements LifecycleEventListener {
61
62 private static final long serialVersionUID = 3302390972815386785L;
63
64
65 private String baseLookupUrl;
66 private String dataObjectClassName;
67 private String viewName;
68
69 private boolean returnByScript;
70 private String readOnlyLookupFields;
71 private String referencesToRefresh;
72 private String lookupCollectionName;
73 private String lookupCollectionId;
74
75 private Map<String, String> fieldConversions;
76 private Map<String, String> lookupParameters;
77 private Map<String, String> additionalLookupParameters;
78
79 private Action quickfinderAction;
80
81 private String lookupDialogId;
82 private boolean openInDialog;
83
84
85 private Boolean renderReturnLink;
86 private Boolean renderResultActions;
87 private Boolean autoSearch;
88 private Boolean renderLookupCriteria;
89 private Boolean renderCriteriaActions;
90 private Boolean hideCriteriaOnSearch;
91 private Boolean renderMaintenanceLinks;
92 private Boolean multipleValuesSelect;
93
94 private String callbackMethodToCall;
95 private MethodInvokerConfig callbackMethod;
96 private Map<String, String> callbackContext;
97
98 public QuickFinder() {
99 super();
100
101 fieldConversions = new HashMap<String, String>();
102 lookupParameters = new HashMap<String, String>();
103 lookupDialogId = "";
104 }
105
106
107
108
109
110
111
112
113
114
115 @Override
116 public void performInitialization(Object model) {
117 super.performInitialization(model);
118
119 ViewLifecycle viewLifecycle = ViewLifecycle.getActiveLifecycle();
120 viewLifecycle.registerLifecycleCompleteListener(quickfinderAction, this);
121 }
122
123
124
125
126
127
128 @Override
129 public void afterEvaluateExpression() {
130 super.afterEvaluateExpression();
131
132 if (getReadOnly() == null) {
133 Component parent = ViewLifecycle.getPhase().getParent();
134 setReadOnly(parent == null ? null : parent.getReadOnly());
135 }
136 }
137
138
139
140
141
142
143
144
145
146
147
148
149 @Override
150 public void performFinalize(Object model, LifecycleElement parent) {
151 super.performFinalize(model, parent);
152
153 if (parent instanceof Component && Boolean.TRUE.equals(((Component) parent).getReadOnly())) {
154 setRender(false);
155 }
156
157 if (!isRender()) {
158 return;
159 }
160
161 View view = ViewLifecycle.getActiveLifecycle().getView();
162
163 if (parent instanceof InputField) {
164 setupForInputField(view, model, (InputField) parent);
165
166
167 if (isRender()) {
168 for (String toField : fieldConversions.values()) {
169 ViewLifecycle.getViewPostMetadata().addAccessibleBindingPath(toField);
170 }
171 }
172 } else if (parent instanceof CollectionGroup) {
173 setupForCollectionGroup(view, model, (CollectionGroup) parent);
174 }
175
176 setupQuickfinderAction(view, model, parent);
177
178 addCallbackParametersIfPresent();
179 }
180
181
182
183
184
185
186
187
188
189 protected void setupForInputField(View view, Object model, InputField inputField) {
190
191 if (StringUtils.isBlank(dataObjectClassName)) {
192 DataObjectRelationship relationship = getRelationshipForField(view, model, inputField);
193
194
195 if (relationship == null) {
196 setRender(false);
197
198 return;
199 }
200
201 dataObjectClassName = relationship.getRelatedClass().getName();
202
203 if ((fieldConversions == null) || fieldConversions.isEmpty()) {
204 generateFieldConversions(relationship);
205 }
206
207 if ((lookupParameters == null) || lookupParameters.isEmpty()) {
208 generateLookupParameters(relationship);
209 }
210 }
211
212
213 updateFieldConversions(inputField.getBindingInfo());
214 updateLookupParameters(inputField.getBindingInfo());
215 updateReferencesToRefresh(inputField.getBindingInfo());
216
217
218 inputField.addPostInputAddon(quickfinderAction);
219 }
220
221
222
223
224
225
226
227
228
229
230 protected DataObjectRelationship getRelationshipForField(View view, Object model, InputField field) {
231 String propertyName = field.getBindingInfo().getBindingName();
232
233
234 Object parentObject = ViewModelUtils.getParentObjectForMetadata(view, model, field);
235 Class<?> parentObjectClass = null;
236 if (parentObject != null) {
237 parentObjectClass = parentObject.getClass();
238 }
239
240
241 if (parentObjectClass != null) {
242 return KRADServiceLocatorWeb.getLegacyDataAdapter().getDataObjectRelationship(parentObject,
243 parentObjectClass, propertyName, "", true, true, false);
244 }
245
246 return null;
247 }
248
249
250
251
252
253
254 protected void generateFieldConversions(DataObjectRelationship relationship) {
255 fieldConversions = new HashMap<String, String>();
256
257 for (Map.Entry<String, String> entry : relationship.getParentToChildReferences().entrySet()) {
258 String fromField = entry.getValue();
259 String toField = entry.getKey();
260
261 fieldConversions.put(fromField, toField);
262 }
263 }
264
265
266
267
268
269
270 protected void generateLookupParameters(DataObjectRelationship relationship) {
271 lookupParameters = new HashMap<String, String>();
272
273 for (Map.Entry<String, String> entry : relationship.getParentToChildReferences().entrySet()) {
274 String fromField = entry.getKey();
275 String toField = entry.getValue();
276
277 if (relationship.getUserVisibleIdentifierKey() == null || relationship.getUserVisibleIdentifierKey().equals(
278 fromField)) {
279 lookupParameters.put(fromField, toField);
280 }
281 }
282 }
283
284
285
286
287
288
289
290 protected void updateFieldConversions(BindingInfo bindingInfo) {
291 Map<String, String> adjustedFieldConversions = new HashMap<String, String>();
292 for (String fromField : fieldConversions.keySet()) {
293 String toField = fieldConversions.get(fromField);
294
295 if (!StringUtils.startsWith(toField, bindingInfo.getBindingPathPrefix())) {
296 String adjustedToFieldPath = bindingInfo.getPropertyAdjustedBindingPath(toField);
297 adjustedFieldConversions.put(fromField, adjustedToFieldPath);
298 } else {
299 adjustedFieldConversions.put(fromField, toField);
300 }
301 }
302
303 this.fieldConversions = adjustedFieldConversions;
304 }
305
306
307
308
309
310
311
312 protected void updateLookupParameters(BindingInfo bindingInfo) {
313 Map<String, String> adjustedLookupParameters = new HashMap<String, String>();
314 for (String fromField : lookupParameters.keySet()) {
315 String toField = lookupParameters.get(fromField);
316 String adjustedFromFieldPath = bindingInfo.getPropertyAdjustedBindingPath(fromField);
317
318 adjustedLookupParameters.put(adjustedFromFieldPath, toField);
319 }
320
321 this.lookupParameters = adjustedLookupParameters;
322 }
323
324
325
326
327
328
329
330 protected void updateReferencesToRefresh(BindingInfo bindingInfo) {
331 List<String> adjustedReferencesToRefresh = new ArrayList<String>();
332
333 if (referencesToRefresh == null) {
334 referencesToRefresh = new String();
335 }
336
337 for (String reference : StringUtils.split(referencesToRefresh, KRADConstants.REFERENCES_TO_REFRESH_SEPARATOR)) {
338 adjustedReferencesToRefresh.add(bindingInfo.getPropertyAdjustedBindingPath(reference));
339 }
340
341 this.referencesToRefresh = StringUtils.join(adjustedReferencesToRefresh,
342 KRADConstants.REFERENCES_TO_REFRESH_SEPARATOR);
343 }
344
345
346
347
348
349
350
351
352
353 protected void setupForCollectionGroup(View view, Object model, CollectionGroup collectionGroup) {
354
355
356 if (StringUtils.isBlank(getDataObjectClassName())) {
357 Class<?> collectionObjectClass = collectionGroup.getCollectionObjectClass();
358
359 boolean isCollectionClassLookupable = KRADServiceLocatorWeb.getViewDictionaryService().isLookupable(
360 collectionObjectClass);
361 if (isCollectionClassLookupable) {
362 setDataObjectClassName(collectionObjectClass.getName());
363
364
365 if ((fieldConversions == null) || fieldConversions.isEmpty()) {
366 List<String> collectionObjectPKFields =
367 KRADServiceLocatorWeb.getLegacyDataAdapter().listPrimaryKeyFieldNames(
368 collectionObjectClass);
369
370 fieldConversions = new HashMap<String, String>();
371 for (String pkField : collectionObjectPKFields) {
372 fieldConversions.put(pkField, pkField);
373 }
374 }
375 } else {
376
377 setRender(false);
378 }
379 }
380
381
382 if (isRender() && StringUtils.isBlank(getLookupCollectionName())) {
383 setLookupCollectionName(collectionGroup.getBindingInfo().getBindingPath());
384 }
385
386 if (isRender() && StringUtils.isBlank(getLookupCollectionId())) {
387 setLookupCollectionId(collectionGroup.getId());
388 }
389 }
390
391
392
393
394
395
396
397
398
399 protected void setupQuickfinderAction(View view, Object model, LifecycleElement parent) {
400 quickfinderAction.setId(getId() + UifConstants.IdSuffixes.ACTION);
401
402 if (openInDialog) {
403 String lightboxScript = null;
404 String actionScript = quickfinderAction.getActionScript();
405 if (actionScript == null) {
406 actionScript = "";
407 }
408 String dialogId = quickfinderAction.getActionParameter(UifParameters.DIALOG_ID);
409
410
411
412 if (StringUtils.isBlank(dialogId)) {
413 UifFormBase form = (UifFormBase) model;
414 Map<String, String[]> requestParameters = form.getInitialRequestParameters();
415 if (requestParameters != null) {
416 String[] dialogIds = requestParameters.get(UifParameters.DIALOG_ID);
417 if (dialogIds != null && dialogIds.length > 0) {
418 dialogId = dialogIds[0];
419 }
420 }
421 }
422
423
424
425
426
427 if (StringUtils.isBlank(dialogId)) {
428 Object superParent = parent.getContext().get(UifConstants.ContextVariableNames.PARENT);
429 if (superParent != null) {
430 if (superParent instanceof DialogGroup) {
431 dialogId = ((DialogGroup) superParent).getId();
432 } else if (superParent instanceof CollectionGroup) {
433 CollectionGroup parentCollection = (CollectionGroup) superParent;
434 superParent = parentCollection.getContext().get(UifConstants.ContextVariableNames.PARENT);
435 if (superParent instanceof FieldGroup) {
436 FieldGroup parentFieldGroup = (FieldGroup) superParent;
437 superParent = parentFieldGroup.getContext().get(UifConstants.ContextVariableNames.PARENT);
438 if (superParent instanceof DialogGroup) {
439 dialogId = ((DialogGroup) superParent).getId();
440 }
441 }
442 }
443 }
444 }
445
446
447 if (StringUtils.isBlank(dialogId)) {
448 lightboxScript = UifConstants.JsFunctions.SHOW_LOOKUP_DIALOG + "(\"" + quickfinderAction.getId() + "\","
449 + returnByScript + ",\"" + lookupDialogId + "\");";
450 } else {
451 lightboxScript = UifConstants.JsFunctions.SHOW_LOOKUP_DIALOG + "(\"" + quickfinderAction.getId() + "\","
452 + returnByScript + ",\"" + lookupDialogId + "\",\"" + dialogId + "\");";
453
454
455
456 quickfinderAction.addActionParameter(UifParameters.DIALOG_ID, dialogId);
457 }
458
459 quickfinderAction.setActionScript(actionScript + lightboxScript);
460 }
461
462 quickfinderAction.addActionParameter(UifParameters.BASE_LOOKUP_URL, baseLookupUrl);
463
464 Class dataObjectClass = getDataObjectClass(dataObjectClassName);
465 ModuleService responsibleModuleService =
466 KRADServiceLocatorWeb.getKualiModuleService().getResponsibleModuleService(dataObjectClass);
467 if (responsibleModuleService != null && responsibleModuleService.isExternalizable(dataObjectClass)) {
468 if (ExternalizableBusinessObject.class.isAssignableFrom(dataObjectClass)) {
469 Class implementationClass = responsibleModuleService.getExternalizableBusinessObjectImplementation(
470 dataObjectClass.asSubclass(ExternalizableBusinessObject.class));
471 if (implementationClass != null) {
472 dataObjectClassName = implementationClass.getName();
473 }
474 }
475 }
476
477 quickfinderAction.addActionParameter(UifParameters.DATA_OBJECT_CLASS_NAME, dataObjectClassName);
478
479 if (!fieldConversions.isEmpty()) {
480 quickfinderAction.addActionParameter(UifParameters.CONVERSION_FIELDS, KRADUtils.buildMapParameterString(
481 fieldConversions));
482 }
483
484 if (!lookupParameters.isEmpty()) {
485 quickfinderAction.addActionParameter(UifParameters.LOOKUP_PARAMETERS, KRADUtils.buildMapParameterString(
486 lookupParameters));
487 }
488
489 addActionParameterIfNotNull(UifParameters.VIEW_NAME, viewName);
490 addActionParameterIfNotNull(UifParameters.READ_ONLY_FIELDS, readOnlyLookupFields);
491 addActionParameterIfNotNull(UifParameters.RENDER_RETURN_LINK, renderReturnLink);
492 addActionParameterIfNotNull(UifParameters.RENDER_RESULT_ACTIONS, renderResultActions);
493 addActionParameterIfNotNull(UifParameters.REFERENCES_TO_REFRESH, referencesToRefresh);
494 addActionParameterIfNotNull(UifParameters.AUTO_SEARCH, autoSearch);
495 addActionParameterIfNotNull(UifParameters.RENDER_LOOKUP_CRITERIA, renderLookupCriteria);
496 addActionParameterIfNotNull(UifParameters.RENDER_CRITERIA_ACTIONS, renderCriteriaActions);
497 addActionParameterIfNotNull(UifParameters.HIDE_CRITERIA_ON_SEARCH, hideCriteriaOnSearch);
498 addActionParameterIfNotNull(UifParameters.RENDER_MAINTENANCE_LINKS, renderMaintenanceLinks);
499 addActionParameterIfNotNull(UifParameters.MULTIPLE_VALUES_SELECT, multipleValuesSelect);
500 addActionParameterIfNotNull(UifParameters.LOOKUP_COLLECTION_NAME, lookupCollectionName);
501 addActionParameterIfNotNull(UifParameters.LOOKUP_COLLECTION_ID, lookupCollectionId);
502 addActionParameterIfNotNull(UifParameters.QUICKFINDER_ID, getId());
503
504
505 if (additionalLookupParameters != null) {
506
507 Map<String, String> actionParameters = quickfinderAction.getActionParameters();
508 actionParameters.putAll(additionalLookupParameters);
509 quickfinderAction.setActionParameters(actionParameters);
510 }
511
512 quickfinderAction.performFinalize(model, parent);
513 }
514
515 private Class<?> getDataObjectClass(String className) {
516 Class<?> dataObjectClass;
517
518 try {
519 dataObjectClass = Class.forName(className);
520 } catch (ClassNotFoundException e) {
521 throw new RuntimeException("Unable to get class for name: " + className, e);
522 }
523
524 return dataObjectClass;
525 }
526
527
528
529
530
531
532
533
534 protected void addActionParameterIfNotNull(String parameterName, Object parameterValue) {
535 if ((parameterValue != null) && StringUtils.isNotBlank(parameterValue.toString())) {
536 quickfinderAction.addActionParameter(parameterName, parameterValue.toString());
537 }
538 }
539
540
541
542
543
544
545
546 @Override
547 public void processEvent(ViewLifecycle.LifecycleEvent lifecycleEvent, View view, Object model,
548 LifecycleElement eventComponent) {
549 Action finalQuickfinderAction = (Action) eventComponent;
550
551
552 ViewLifecycle.getViewPostMetadata().addComponentPostData(this, UifConstants.PostMetadata.QUICKFINDER_FOCUS_ID,
553 finalQuickfinderAction.getFocusOnIdAfterSubmit());
554 ViewLifecycle.getViewPostMetadata().addComponentPostData(this, UifConstants.PostMetadata.QUICKFINDER_JUMP_TO_ID,
555 finalQuickfinderAction.getJumpToIdAfterSubmit());
556 }
557
558
559
560
561
562 protected void addCallbackParametersIfPresent() {
563 if (StringUtils.isNotBlank(callbackMethodToCall)) {
564 ViewLifecycle.getViewPostMetadata().addComponentPostData(this,
565 UifConstants.PostMetadata.QUICKFINDER_CALLBACK_METHOD_TO_CALL, callbackMethodToCall);
566 }
567
568 if (callbackMethod != null) {
569 ViewLifecycle.getViewPostMetadata().addComponentPostData(this,
570 UifConstants.PostMetadata.QUICKFINDER_CALLBACK_METHOD, callbackMethod);
571 }
572
573 if (callbackContext != null && !callbackContext.isEmpty()) {
574 ViewLifecycle.getViewPostMetadata().addComponentPostData(this,
575 UifConstants.PostMetadata.QUICKFINDER_CALLBACK_CONTEXT, callbackContext);
576 }
577 }
578
579
580
581
582
583
584
585
586
587
588
589 @BeanTagAttribute
590 public String getBaseLookupUrl() {
591 return this.baseLookupUrl;
592 }
593
594
595
596
597 public void setBaseLookupUrl(String baseLookupUrl) {
598 this.baseLookupUrl = baseLookupUrl;
599 }
600
601
602
603
604
605
606
607
608
609
610
611 @BeanTagAttribute
612 public String getDataObjectClassName() {
613 return this.dataObjectClassName;
614 }
615
616
617
618
619 public void setDataObjectClassName(String dataObjectClassName) {
620 this.dataObjectClassName = dataObjectClassName;
621 }
622
623
624
625
626
627
628
629
630
631
632
633
634 @BeanTagAttribute
635 public String getViewName() {
636 return this.viewName;
637 }
638
639
640
641
642 public void setViewName(String viewName) {
643 this.viewName = viewName;
644 }
645
646
647
648
649
650
651
652
653
654
655 @BeanTagAttribute
656 public boolean isReturnByScript() {
657 return returnByScript;
658 }
659
660
661
662
663 public void setReturnByScript(boolean returnByScript) {
664 this.returnByScript = returnByScript;
665 }
666
667
668
669
670
671
672
673
674
675
676
677 @BeanTagAttribute
678 public String getReadOnlyLookupFields() {
679 return this.readOnlyLookupFields;
680 }
681
682
683
684
685 public void setReadOnlyLookupFields(String readOnlyLookupFields) {
686 this.readOnlyLookupFields = readOnlyLookupFields;
687 }
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703 @BeanTagAttribute
704 public String getReferencesToRefresh() {
705 return this.referencesToRefresh;
706 }
707
708
709
710
711 public void setReferencesToRefresh(String referencesToRefresh) {
712 this.referencesToRefresh = referencesToRefresh;
713 }
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733 @BeanTagAttribute
734 public Map<String, String> getFieldConversions() {
735 return this.fieldConversions;
736 }
737
738
739
740
741 public void setFieldConversions(Map<String, String> fieldConversions) {
742 this.fieldConversions = fieldConversions;
743 }
744
745
746
747
748
749
750
751
752
753
754
755
756
757 @BeanTagAttribute
758 public Map<String, String> getLookupParameters() {
759 return this.lookupParameters;
760 }
761
762
763
764
765 public void setLookupParameters(Map<String, String> lookupParameters) {
766 this.lookupParameters = lookupParameters;
767 }
768
769
770
771
772
773
774
775
776
777
778 @BeanTagAttribute
779 public Boolean getRenderReturnLink() {
780 return this.renderReturnLink;
781 }
782
783
784
785
786 public void setRenderReturnLink(Boolean renderReturnLink) {
787 this.renderReturnLink = renderReturnLink;
788 }
789
790
791
792
793
794
795
796
797
798
799
800 @BeanTagAttribute
801 public Boolean getRenderResultActions() {
802 return renderResultActions;
803 }
804
805
806
807
808 public void setRenderResultActions(Boolean renderResultActions) {
809 this.renderResultActions = renderResultActions;
810 }
811
812
813
814
815
816
817
818
819
820
821 @BeanTagAttribute
822 public Boolean getAutoSearch() {
823 return this.autoSearch;
824 }
825
826
827
828
829 public void setAutoSearch(Boolean autoSearch) {
830 this.autoSearch = autoSearch;
831 }
832
833
834
835
836
837
838
839
840
841 @BeanTagAttribute
842 public Boolean getRenderLookupCriteria() {
843 return this.renderLookupCriteria;
844 }
845
846
847
848
849 public void setRenderLookupCriteria(Boolean renderLookupCriteria) {
850 this.renderLookupCriteria = renderLookupCriteria;
851 }
852
853
854
855
856
857
858 @BeanTagAttribute
859 public Boolean getRenderCriteriaActions() {
860 return this.renderCriteriaActions;
861 }
862
863
864
865
866 public void setRenderCriteriaActions(Boolean renderCriteriaActions) {
867 this.renderCriteriaActions = renderCriteriaActions;
868 }
869
870
871
872
873
874
875 @BeanTagAttribute
876 public Boolean getHideCriteriaOnSearch() {
877 return hideCriteriaOnSearch;
878 }
879
880
881
882
883 public void setHideCriteriaOnSearch(Boolean hideCriteriaOnSearch) {
884 this.hideCriteriaOnSearch = hideCriteriaOnSearch;
885 }
886
887
888
889
890
891
892
893
894
895
896
897
898 @BeanTagAttribute
899 public Boolean getRenderMaintenanceLinks() {
900 return this.renderMaintenanceLinks;
901 }
902
903
904
905
906 public void setRenderMaintenanceLinks(Boolean renderMaintenanceLinks) {
907 this.renderMaintenanceLinks = renderMaintenanceLinks;
908 }
909
910
911
912
913
914
915
916
917
918
919 @ViewLifecycleRestriction(exclude=UifConstants.ViewPhases.FINALIZE)
920 @BeanTagAttribute(type = BeanTagAttribute.AttributeType.BYTYPE)
921 public Action getQuickfinderAction() {
922 return this.quickfinderAction;
923 }
924
925
926
927
928 public void setQuickfinderAction(Action quickfinderAction) {
929 this.quickfinderAction = quickfinderAction;
930 }
931
932
933
934
935
936
937
938
939
940 @BeanTagAttribute
941 public String getLookupDialogId() {
942 return lookupDialogId;
943 }
944
945
946
947
948 public void setLookupDialogId(String lookupDialogId) {
949 this.lookupDialogId = lookupDialogId;
950 }
951
952
953
954
955
956
957
958 @BeanTagAttribute
959 public boolean isOpenInDialog() {
960 return openInDialog;
961 }
962
963
964
965
966 public void setOpenInDialog(boolean openInDialog) {
967 this.openInDialog = openInDialog;
968 }
969
970
971
972
973
974
975 @BeanTagAttribute
976 public Boolean getMultipleValuesSelect() {
977 return multipleValuesSelect;
978 }
979
980
981
982
983 public void setMultipleValuesSelect(Boolean multipleValuesSelect) {
984 this.multipleValuesSelect = multipleValuesSelect;
985 }
986
987
988
989
990
991
992
993
994
995
996 @BeanTagAttribute
997 public String getLookupCollectionName() {
998 return lookupCollectionName;
999 }
1000
1001
1002
1003
1004 public void setLookupCollectionName(String lookupCollectionName) {
1005 this.lookupCollectionName = lookupCollectionName;
1006 }
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017 @BeanTagAttribute
1018 public String getLookupCollectionId() {
1019 return lookupCollectionId;
1020 }
1021
1022
1023
1024
1025 public void setLookupCollectionId(String lookupCollectionId) {
1026 this.lookupCollectionId = lookupCollectionId;
1027 }
1028
1029
1030
1031
1032
1033
1034 @BeanTagAttribute
1035 public Map<String, String> getAdditionalLookupParameters() {
1036 return additionalLookupParameters;
1037 }
1038
1039
1040
1041
1042 public void setAdditionalLookupParameters(Map<String, String> additionalLookupParameters) {
1043 this.additionalLookupParameters = additionalLookupParameters;
1044 }
1045
1046
1047
1048
1049
1050
1051
1052 public String getCallbackMethodToCall() {
1053 return callbackMethodToCall;
1054 }
1055
1056
1057
1058
1059 public void setCallbackMethodToCall(String callbackMethodToCall) {
1060 this.callbackMethodToCall = callbackMethodToCall;
1061 }
1062
1063
1064
1065
1066
1067
1068 public MethodInvokerConfig getCallbackMethod() {
1069 return callbackMethod;
1070 }
1071
1072
1073
1074
1075 public void setCallbackMethod(MethodInvokerConfig callbackMethod) {
1076 this.callbackMethod = callbackMethod;
1077 }
1078
1079
1080
1081
1082
1083
1084 public Map<String, String> getCallbackContext() {
1085 return callbackContext;
1086 }
1087
1088
1089
1090
1091 public void setCallbackContext(Map<String, String> callbackContext) {
1092 this.callbackContext = callbackContext;
1093 }
1094 }