Thursday, June 13, 2013

Talend Open Studio Widgets for Component Configuration: Part 1


If you write a custom component for Talend Open Studio, your users will interact with the new component using the Components View.  You'll set up the Components View in the XML descriptor using the PARAMETERS and ADVANCED_PARAMETERS elements.

In Talend Open Studio, besides setting up a flow, users interact with components using the Components View.  The Components View will provide parameters like a schema, a database table, a variable, or another item to control the processing, display, and behavior of your component.   The Components View is configured in the XML descriptor accompanying the component.

For a component like tHelloWorld, the XML descriptor file is tHelloWorld_java.xml.  If Perl were supported, there would also be a similar descriptor tHelloWorld_perl.xml.

tHelloWorld collects two configuration parameters from the user in the Basic Settings tab of the Components View: a "YOUR SECOND STRING FOR TYPE" textbox and a table of usernames "Table of Names".  A third widget -- a check box -- toggles the textbox.

tHelloWorld with TEXT, CHECK, and TABLE Widgets
In the tHelloWorld_java.xml XML descriptor, the definition for the arrangement of TEXT, CHECK, and TABLE widgets is the following


  FIELD="TABLE"
 REQUIRED="true" NUM_ROW="3"
       NB_LINES="5" SHOW="true">
   
     
   
 
  FIELD="CHECK" REQUIRED="true" NUM_ROW="1">
    false
 
  FIELD="TEXT" NAME="DYNAMIC_PROPERTY" NUM_ROW="2" SHOW_IF="ISVIEW == 'true'" REPOSITORY_VALUE="DATABASE:MYSQL"/>


There are a lot of options for controlling the Components View.  After determining the information required of the user in order to use the component -- and with suitable defaults -- select an arrangement of widgets that will be displayed on the Components View.  This is a list of widgets that can appear on the Components View panel for a component.  (Taken from EParameterFieldType.java, 4.2.0M4)
  • TEXT,
  • MEMO_SQL,
  • MEMO_PERL,
  • MEMO_JAVA,
  • MEMO_IMPORT,
  • MEMO_MESSAGE,
  • CLOSED_LIST,
  • OPENED_LIST,
  • CHECK,
  • RADIO,
  • MEMO,
  • SCHEMA_TYPE,
  • SCHEMA_XPATH_QUERYS,
  • QUERYSTORE_TYPE,
  • GUESS_SCHEMA,
  • PROPERTY_TYPE,
  • EXTERNAL,
  • FILE,
  • VERSION,
  • TABLE,
  • DIRECTORY,
  • PROCESS_TYPE,
  • IMAGE,
  • COLUMN_LIST,  
  • CONNECTION_LIST,
  • PREV_COLUMN_LIST,
  • CONTEXT_PARAM_NAME_LIST,
  • LOOKUP_COLUMN_LIST,
  • TECHNICAL,
  • ENCODING_TYPE,
  • COMPONENT_LIST,
  • MAPPING_TYPE,
  • COLOR,
  • DBTABLE,
  • DATE,
  • DBTYPE_LIST,
  • LABEL,
  • AS400_CHECK,
  • MODULE_LIST,
  • COMMAND,
  • PALO_DIM_SELECTION,
  • WSDL2JAVA,
  • ICON_SELECTION,
  • RULE_TYPE,
  • TNS_EDITOR,
  • BROWSE_REPORTS,
  • JAVA_COMMAND, and
  • VALIDATION_RULE_TYPE

That's quite a list.  I'll be describing many of these in subsequent blog posts, starting with the basics like TEXT, CHECK, and TABLE.

No comments: