Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Scout/Concepts/LookupCall"

 
(9 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{ScoutPage|cat=Concepts}}
+
The Scout documentation has been moved to https://eclipsescout.github.io/.
 
+
Lookup calls are used by {{ScoutLink|Concepts|SmartField|smart fields}} and {{ScoutLink|Concepts|SmartColumn|columns}} to look up single or multiple {{ScoutLink|Concepts|LookupRow|lookup rows}}.
+
 
+
* Class: {{ScoutJavadoc|LookupCall|C}}
+
 
+
== Description ==
+
 
+
LookupCalls can be used in smart fields, tree boxes and other Scout widgets. They compute the Smart association: to a key a {{ScoutLink|Concepts|LookupRow|lookup row}}is 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:  
+
 
+
[[Image:Schema LookupCall.png]]
+
 
+
=== Input ===
+
Lookup calls provide different method to compute the set of {{ScoutLink|Concepts|LookupRow|LookupRows}} :
+
 
+
* <code>getDataByKey()</code> Retrieve a single lookup row for a specific key value. Used by SmartFields and SmatColumns to get the display text for a given value.
+
* <code>getDataByText()</code>: Retrieve multiple lookup rows which match a certain String. Used by SmartFields when the user start to enter some text in the Field.
+
* <code>getDataByAll()</code>: Retrieves all available lookup rows. Used by SmartFields when the user clic on the browse icon.
+
* <code>getDataByRec()</code>: This can only be used for hierarchical lookup calls. It retrieves all available sub-tree lookup rows for a given parent.
+
 
+
{{note|TODO|parameters are present to compute the set of rows: Object key, ... Master}}
+
 
+
== Type of lookup calls ==
+
===With a Lookup Service===
+
Delegation to the {{ScoutLink|Concepts|Lookup Service|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 {{ScoutLink|Concepts|LocalLookupCall|Local Lookup Calls}}
+
{{note|TODO|Explain and mention the execCreateLookupRows method}}
+
 
+
An example of this approach is when a SmartField or a SmartColumn is configured to be use with a {{ScoutLink|Concepts|CodeType|CodeType}}. A {{ScoutJavadoc|CodeLookupCall|C}} is instantiated for the CodeType. It creates the LookupRows corresponding to the {{ScoutLink|Concepts|Code|codes}}  in the CodeType.
+
 
+
== Overview ==
+
[[Image:LookupCall.png]]
+
 
+
== Properties ==
+
''Defined with {{ScoutLink|Concepts|GetConfigured Methods|getConfiguredXxxxxx()}} methods''.
+
 
+
* {{ScoutProp|Service}}: Defines which service is used to retrieve lookup rows
+
* {{ScoutProp|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 ===
+
{{note|TODO|Code example: getConfigured method and mention of execPrepareLookup(call)}}
+
 
+
=== Accessing a LookupRow directly ===
+
It is possible to access a LookupRow direclty. In this example the input is a key (<code>thisKey</code>) and the method <code>getDataByKey()</code> is used.
+
Before accessing the text, we ensure that a LookupRow has been retrived.
+
 
+
<source lang="java">
+
//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();
+
}
+
</source>
+
 
+
== See Also ==
+
* {{ScoutLink|Concepts|LookupRow|Lookup Row}}
+
* {{ScoutLink|Concepts|Lookup Service|Lookup Service}}
+
* {{ScoutLink|Concepts|LocalLookupCall|Local Lookup Calls}}
+
* {{ScoutLink|Concepts|Shared Plug-In|Shared Plug-In}}
+

Latest revision as of 05:03, 14 March 2024

The Scout documentation has been moved to https://eclipsescout.github.io/.

Back to the top