|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.kuali.rice.krad.uif.service.impl.ViewHelperServiceImpl org.kuali.rice.krad.lookup.LookupableImpl
public class LookupableImpl
View helper service that implements Lookupable
and executes a search using the
LookupService
.
LookupForm
,
LookupView
,
LookupService
,
Serialized FormConstructor Summary | |
---|---|
LookupableImpl()
|
Method Summary | |
---|---|
boolean |
allowsMaintenanceDeleteAction(Object dataObject)
Determines if given data object has associated maintenance document that allows delete maintenance actions. |
boolean |
allowsMaintenanceEditAction(Object dataObject)
Determines if given data object has associated maintenance document that allows edit maintenance actions. |
boolean |
allowsMaintenanceNewOrCopyAction()
Determines if given data object has associated maintenance document that allows new or copy maintenance actions. |
void |
buildMaintenanceActionLink(Link actionLink,
Object model,
String maintenanceMethodToCall)
Invoked to build a maintenance URL for a result row. |
void |
buildMultiValueSelectField(InputField selectField,
Object model)
Set the value for the input field control to contain the field conversion values for the line. |
void |
buildReturnUrlForResult(Link returnLink,
Object model)
Invoked to build the return URL for a result row. |
LookupableImpl |
copy()
Creates a copy of this LookupableImpl . |
protected Collection<?> |
executeSearch(Map<String,String> adjustedSearchCriteria,
List<String> wildcardAsLiteralSearchCriteria,
boolean bounded,
Integer searchResultsLimit)
Invoked to execute the search with the given criteria and restrictions. |
protected void |
generateLookupResultsMessages(Map<String,String> searchCriteria,
Collection<?> searchResults,
boolean bounded,
Integer searchResultsLimit)
Generates messages for the user based on the search results. |
protected Map<String,InputField> |
getCriteriaFieldsForValidation(LookupView lookupView,
LookupForm form)
Returns the criteria fields in a map keyed by the field property name. |
protected DataObjectAuthorizationService |
getDataObjectAuthorizationService()
|
Class<?> |
getDataObjectClass()
Returns the class for the data object the lookup is configured with. |
DocumentDictionaryService |
getDocumentDictionaryService()
|
protected EncryptionService |
getEncryptionService()
|
protected LookupService |
getLookupService()
|
protected String |
getMaintenanceActionUrl(LookupForm lookupForm,
Object dataObject,
String methodToCall,
List<String> pkNames)
Generates a URL to perform a maintenance action on the given result data object. |
protected String |
getMaintenanceDocumentTypeName()
Returns the maintenance document type associated with the business object class or null if one does not exist. |
protected Map<String,String> |
getReturnKeyValues(LookupView lookupView,
LookupForm lookupForm,
Object dataObject)
Returns a map of the configured return keys with their selected values. |
protected String |
getReturnUrl(LookupView lookupView,
LookupForm lookupForm,
Object dataObject)
Builds the URL for returning the given data object result row. |
protected Properties |
getReturnUrlParameters(LookupView lookupView,
LookupForm lookupForm,
Object dataObject)
Builds up a Properties object that will be used to provide the request parameters for the
return URL link |
protected List<?> |
getSearchResultsForEBO(Map<String,String> searchCriteria,
boolean unbounded)
Performs a search against an ExternalizableBusinessObject by invoking the
module service |
protected Map<String,String> |
getTranslatedReturnKeyValues(LookupView lookupView,
LookupForm lookupForm,
Object dataObject)
Returns a map of the configured return keys translated to their corresponding field conversion with the associated values. |
protected List<String> |
identifyWildcardDisabledFields(LookupForm lookupForm,
Map<String,String> searchCriteria)
Determines which searchCriteria have been configured with wildcard characters disabled. |
protected boolean |
isResultReturnable(Object dataObject)
Determines whether a given data object that's returned as one of the lookup's results is considered returnable, which means that for single-value lookups, a "return value" link may be rendered, and for multiple value lookups, a checkbox is rendered. |
Map<String,String> |
performClear(LookupForm form,
Map<String,String> lookupCriteria)
Invoked when the clear action is requested to reset the search fields to their initial default values. |
Collection<?> |
performSearch(LookupForm form,
Map<String,String> searchCriteria,
boolean bounded)
Invoked to carry out the lookup search based on the given map of key/value search values. |
protected Map<String,String> |
processSearchCriteria(LookupForm lookupForm,
Map<String,String> searchCriteria)
Filters the search criteria to be used with the lookup. |
void |
setDataObjectAuthorizationService(DataObjectAuthorizationService dataObjectAuthorizationService)
|
void |
setDataObjectClass(Class<?> dataObjectClass)
Sets the class for the data object the lookup will be provided on. |
void |
setDocumentDictionaryService(DocumentDictionaryService documentDictionaryService)
|
void |
setEncryptionService(EncryptionService encryptionService)
|
void |
setLookupService(LookupService lookupService)
|
protected void |
sortSearchResults(LookupForm form,
List<?> searchResults)
Sorts the given list of search results based on the lookup view's configured sort attributes. |
protected boolean |
validateSearchParameters(LookupForm form,
Map<String,String> searchCriteria)
Invoked to perform validation on the search criteria before the search is performed. |
protected void |
validateSearchParameterWildcardAndOperators(InputField inputField,
String searchPropertyValue)
Validates that any wildcards contained within the search value are valid wildcards and allowed for the property type for which the field is searching. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public LookupableImpl()
Method Detail |
---|
public Collection<?> performSearch(LookupForm form, Map<String,String> searchCriteria, boolean bounded)
performSearch
in interface Lookupable
form
- lookup form instance containing the lookup datasearchCriteria
- map of criteria currently setbounded
- indicates whether the results should be limited (if necessary) to the max search
result limit configured
CollectionIncomplete
protected Collection<?> executeSearch(Map<String,String> adjustedSearchCriteria, List<String> wildcardAsLiteralSearchCriteria, boolean bounded, Integer searchResultsLimit)
adjustedSearchCriteria
- map of criteria that has been adjusted (encyrption, ebos, etc)wildcardAsLiteralSearchCriteria
- map of criteria to treat as literals (wildcards disabled)bounded
- indicates whether the search should be boundedsearchResultsLimit
- for bounded searches, the result limit
protected Map<String,String> processSearchCriteria(LookupForm lookupForm, Map<String,String> searchCriteria)
Processing entails primarily of the removal of filtered and unused/blank search criteria. Encrypted field values are decrypted, and date range fields are combined into a single criteria entry.
In special cases additional non-valid criteria may be included. E.g. with the KIM User Control as a criteria the principal name may be passed so that it is displayed on the control. The filtering removes these values based on the viewPostMetadata. When calling the search directly (methodToCall=search) the viewPostMetadata is not set before filtering therefore non-valid criteria are not supported in these cases.
lookupForm
- lookup form instance containing the lookup datasearchCriteria
- map of criteria to process
protected List<String> identifyWildcardDisabledFields(LookupForm lookupForm, Map<String,String> searchCriteria)
lookupForm
- form used to collect search criteriasearchCriteria
- Map of property names and values to use as search parameters
protected boolean validateSearchParameters(LookupForm form, Map<String,String> searchCriteria)
form
- lookup form instance containing the lookup datasearchCriteria
- map of criteria where key is search property name and value is
search value (which can include wildcards)
protected void validateSearchParameterWildcardAndOperators(InputField inputField, String searchPropertyValue)
inputField
- attribute field instance for the field that is being searchedsearchPropertyValue
- value given for field to search forprotected void generateLookupResultsMessages(Map<String,String> searchCriteria, Collection<?> searchResults, boolean bounded, Integer searchResultsLimit)
Messages are generated for the number of results, if the results exceed the result limit, and if the search was done using the primary keys for the data object.
searchCriteria
- map of search criteria that was used for the searchsearchResults
- list of result data objects from the searchbounded
- whether the search was boundedsearchResultsLimit
- maximum number of search results to returnprotected void sortSearchResults(LookupForm form, List<?> searchResults)
First if the posted view exists we grab the sort attributes from it. This will take into account expressions that might have been configured on the sort attributes. If the posted view does not exist (because we did a search from a get request or form session storage is off), we get the sort attributes from the view that we will be rendered (and was initialized before controller call). However, expressions will not be evaluated yet, thus if expressions were configured we don't know the results and can not sort the list
form
- lookup form instance containing view informationsearchResults
- list of search results to sortprotected List<?> getSearchResultsForEBO(Map<String,String> searchCriteria, boolean unbounded)
ExternalizableBusinessObject
by invoking the
module service
searchCriteria
- map of criteria currently setunbounded
- indicates whether the complete result should be returned. When set to false the result is
limited (if necessary) to the max search result limit configured.
public Map<String,String> performClear(LookupForm form, Map<String,String> lookupCriteria)
performClear
in interface Lookupable
form
- lookup form instance containing the lookup datalookupCriteria
- map of criteria currently set
public void buildReturnUrlForResult(Link returnLink, Object model)
Based on the line contained in the field context, the URL for returning the role is constructed and set as the href for the link. If a return link cannot be constructed the link should be set to not render
buildReturnUrlForResult
in interface Lookupable
returnLink
- link that will be used to render the return URLmodel
- lookup form containing the dataprotected boolean isResultReturnable(Object dataObject)
Note that this can be part of an authorization mechanism, but not the complete authorization mechanism. The component that invoked the lookup/ lookup caller (e.g. document, nesting lookup, etc.) needs to check that the object that was passed to it was returnable as well because there are ways around this method (e.g. crafting a custom return URL).
dataObject
- an object from the search result set
protected String getReturnUrl(LookupView lookupView, LookupForm lookupForm, Object dataObject)
Note return URL will only be built if a return location is specified on the lookup form
lookupView
- lookup view instance containing lookup configurationlookupForm
- lookup form instance containing the datadataObject
- data object instance for the current line and for which the return URL is being built
protected Properties getReturnUrlParameters(LookupView lookupView, LookupForm lookupForm, Object dataObject)
Properties
object that will be used to provide the request parameters for the
return URL link
lookupView
- lookup view instance containing lookup configurationlookupForm
- lookup form instance containing the datadataObject
- data object instance for the current line and for which the return URL is being built
protected Map<String,String> getTranslatedReturnKeyValues(LookupView lookupView, LookupForm lookupForm, Object dataObject)
lookupView
- lookup view instance containing lookup configurationlookupForm
- lookup form instance containing the datadataObject
- data object instance
protected Map<String,String> getReturnKeyValues(LookupView lookupView, LookupForm lookupForm, Object dataObject)
lookupView
- lookup view instance containing lookup configurationlookupForm
- lookup form instance containing the datadataObject
- data object instance
public void buildMaintenanceActionLink(Link actionLink, Object model, String maintenanceMethodToCall)
Based on the line contained in the field context and the given maintenance method that should be called a URL is constructed and set as the action on the action link. If a maintenance link cannot be constructed the action link should be set to not render
buildMaintenanceActionLink
in interface Lookupable
actionLink
- link that will be used to return the maintenance URLmodel
- lookup form containing the datamaintenanceMethodToCall
- name of the method that should be invoked in the maintenance controllerprotected String getMaintenanceActionUrl(LookupForm lookupForm, Object dataObject, String methodToCall, List<String> pkNames)
Will build a URL containing keys of the data object to invoke the given maintenance action method within the maintenance controller
lookupForm
- lookup formdataObject
- data object instance for the line to build the maintenance action link formethodToCall
- method name on the maintenance controller that should be invokedpkNames
- list of primary key field names for the data object whose key/value pairs will be added to
the maintenance link
public void buildMultiValueSelectField(InputField selectField, Object model)
Creates and populate the value of the input field control. This value is built according to
LookupForm.getFieldConversions()
and allows for client side population of the returned fields without
having to do an additional server call.
buildMultiValueSelectField
in interface Lookupable
selectField
- the InputField used to mark the lookup row as selectedmodel
- lookup form containing the model datapublic boolean allowsMaintenanceNewOrCopyAction()
public boolean allowsMaintenanceEditAction(Object dataObject)
dataObject
- data object
public boolean allowsMaintenanceDeleteAction(Object dataObject)
dataObject
- data object
protected String getMaintenanceDocumentTypeName()
protected Map<String,InputField> getCriteriaFieldsForValidation(LookupView lookupView, LookupForm form)
lookupView
- lookup view instance to pull criteria fields fromform
- lookup form instance containing the lookup data
public Class<?> getDataObjectClass()
getDataObjectClass
in interface Lookupable
public void setDataObjectClass(Class<?> dataObjectClass)
setDataObjectClass
in interface Lookupable
dataObjectClass
- - data object class for lookupprotected DataObjectAuthorizationService getDataObjectAuthorizationService()
public void setDataObjectAuthorizationService(DataObjectAuthorizationService dataObjectAuthorizationService)
public DocumentDictionaryService getDocumentDictionaryService()
public void setDocumentDictionaryService(DocumentDictionaryService documentDictionaryService)
protected LookupService getLookupService()
public void setLookupService(LookupService lookupService)
protected EncryptionService getEncryptionService()
public void setEncryptionService(EncryptionService encryptionService)
public LookupableImpl copy()
LookupableImpl
.
LookupableImpl
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |