Difference between revisions of "Scout/Concepts/LookupCall"
Dev.jmini.fr (Talk | contribs) |
Dev.jmini.fr (Talk | contribs) (→Using a LookupCall in a SmartField: code) |
||
Line 46: | Line 46: | ||
== Code example == | == Code example == | ||
=== Using a LookupCall in a SmartField === | === Using a LookupCall in a SmartField === | ||
− | { | + | <source lang="java"> |
+ | public class ColorSmartField extends AbstractSmartField<String> { | ||
+ | // other configuration of properties. | ||
+ | @Override | ||
+ | protected Class<? extends LookupCall<?>> getConfiguredLookupCall(){ | ||
+ | return ColorLookupCall.class; | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
=== Accessing a LookupRow directly === | === Accessing a LookupRow directly === |
Revision as of 02:04, 16 April 2011
Scout |
Wiki Home |
Website |
Download • Git |
Community |
Forums • Blog • Twitter • G+ |
Bugzilla |
Bugzilla |
Lookup calls are used by smart fields and columns to look up single or multiple lookup rows.
Contents
Description
LookupCalls can be used in smart fields, tree boxes and other Scout widgets. They compute the Smart association: to a key a lookup rowis associated. This enable to provide more than a text to the key (The lookupRow also contains an Icon, Colors, a TooltipText...)
This schema explains the role of a LookupCall in a SmartField:
Input
Lookup calls provide different method to compute the set of LookupRows :
-
getDataByKey()
Retrieve a single lookup row for a specific key value. Used by SmartFields and SmatColumns to get the display text for a given value. -
getDataByText()
: Retrieve multiple lookup rows which match a certain String. Used by SmartFields when the user start to enter some text in the Field. -
getDataByAll()
: Retrieves all available lookup rows. Used by SmartFields when the user clic on the browse icon. -
getDataByRec()
: This can only be used for hierarchical lookup calls. It retrieves all available sub-tree lookup rows for a given parent.
Type of lookup calls
With a Lookup Service
Delegation to the Lookup Service on server side.
They are not necessarily restricted to a fix number of records. Instead they should be favoured if the set of records is rather large.
Directy
Principe of the Local Lookup Calls
An example of this approach is when a SmartField or a SmartColumn is configured to be use with a CodeType. A CodeLookupCall
is instantiated for the CodeType. It creates the LookupRows corresponding to the codes in the CodeType.
Overview
Properties
Defined with getConfiguredXxxxxx() methods.
- Service: Defines which service is used to retrieve lookup rows
- MasterRequired: Defines whether a master value must be set in order to query for multiple lookup rows
Code example
Using a LookupCall in a SmartField
public class ColorSmartField extends AbstractSmartField<String> { // other configuration of properties. @Override protected Class<? extends LookupCall<?>> getConfiguredLookupCall(){ return ColorLookupCall.class; } }
Accessing a LookupRow directly
It is possible to access a LookupRow direclty. In this example the input is a key (thisKey
) and the method getDataByKey()
is used.
Before accessing the text, we ensure that a LookupRow has been retrived.
//Execute the LookupCall (using DataByKey) LookupCall call = new MyLookupCall(); call.setKey(thisKey); LookupRow[] rows=call.getDataByKey(); //Get the text (with a null check) String text = null; if(rows != null && rows.length > 0) { text = rows[0].getText(); }