TmListGetMethod Function
Returns the procedure name associated with the specified list method name.
Usage
procedure_name = TmListGetMethod(tool_name, list_name, method_name)
Input Parameters
tool_name—A string specifying the unique name of a VDA Tool.
list_name—A string specifying the unique name of a list.
method_name—A string specifying the name of a method.
Returned Value
procedure_name—A string containing the name of the list method procedure if set, otherwise a NULL string is returned.
Keywords
None.
Discussion
The default list method names and their procedures are listed in Table 17-2: Default List Methods and Procedures.
 
Default List Methods and Procedures
Description
Method Name
Method Procedure
Extend a list
TM_LIST_EXTEND
TmListExtend
Append to a list
TM_LIST_APPEND
TmListAppend
Insert in a list
TM_LIST_INSERT
TmListInsert
Retrieve from a list
TM_LIST_RETRIEVE
TmListRetrieve
Replace a list element
TM_LIST_REPLACE
TmListReplace
Delete (Undo) previous change to a list
TM_LIST_DELETE
TmListDelete
Clear list elements
TM_LIST_CLEAR
TmListClear
Destroy list elements
TM_LIST_DESTROY
TmListDestroy
 
note
Code for the default list method procedures are contained in the file, where WAVE_DIR is the the main PV‑WAVE directory.
(UNIX) WAVE_DIR/lib/vdatools/tmlist.pro
(WIN) WAVE_DIR\lib\vdatools\tmlist.pro
Use TmListSetMethod to override the default method procedures.
Example
In this example, a user-defined TM_LIST_APPEND method is called. The method adds all items except the string 'Dont_Add'.
; Create the method procedure. 
PRO MyListAppend, tool_name, list_name, item
   DECLARE FUNC, TmGetAttribute
   DECLARE FUNC, TmSetAttribute
   items = TmGetAttribute(tool_name, list_name, 'ITEMS')
   free = TmGetAttribute(tool_name, list_name, 'FREE')
   IF free GE N_ELEMENTS(items) THEN BEGIN
      TmListExtend, tool_name, list_name
      items = TmGetAttribute(tool_name, list_name, 'ITEMS')
   ENDIF
   IF item NE 'Dont_Add' THEN BEGIN
      items(free) = item
      s = TmSetAttribute(tool_name, list_name, 'ITEMS', items)
      s = TmSetAttribute(tool_name, list_name, 'FREE', free+1)
   ENDIF
END
 
; Create a list and append to it. 
list_name = TmList(tool_name)
TmListSetMethod, tool_name, list_name, 'TM_LIST_APPEND', $ 
   'MyListAppend'
TmListAppend, tool_name, list_name, 'First Item'
INFO, TmListRetrieve(tool_name, list_name), /Full
; PV-WAVE prints the following: 
; <Expression>    LIST      = List(1)
; STRING    = 'First Item'
; TmListAppend, tool_name, list_name, 'Dont_Add'
INFO, TmListRetrieve(tool_name, list_name), /Full
; PV-WAVE prints the following: 
; <Expression>    LIST      = List(1)
; STRING    = 'First Item'
; Use TmListGetMethod to access the name of the method and 
; execute it explicitly.
new_var = 'Second Item'
var_name = 'new_var'
method = TmListGetMethod(tool_name, list_name, 'TM_LIST_APPEND')
INFO, method
; PV-WAVE prints: METHOD          STRING    = 'MyListAppend'
s = EXECUTE(method + ', tool_name, list_name, ' + var_name)
INFO, TmListRetrieve(tool_name, list_name), /Full
; PV-WAVE prints the following: 
; <Expression>    LIST      = List(2)
; STRING    = 'First Item'
; STRING    = 'Second Item'
See Also