Skip to main content
Jump to: navigation, search

Difference between revisions of "Scout/Concepts/LookupCall"

(Using a LookupCall in a SmartField: code)
(Replaced content with "{{ScoutPage|cat=Shared}} Moved to new Scout documentation at http://eclipsescout.github.io/6.0/technical-guide.html#lookup-call")
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{ScoutPage|cat=Concepts}}
+
{{ScoutPage|cat=Shared}}
  
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}}.
+
Moved to new Scout documentation at http://eclipsescout.github.io/6.0/technical-guide.html#lookup-call
 
+
* 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 ===
+
<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 ===
+
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 11:04, 29 June 2016


Scout
Wiki Home
Website
DownloadGit
Community
ForumsBlogTwitterG+
Bugzilla
Bugzilla


Moved to new Scout documentation at http://eclipsescout.github.io/6.0/technical-guide.html#lookup-call

Back to the top