blob: d524692739bd0e4ea391e7b354eee90f22f24fbf [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
// //
// Copyright (c) 2000-2019 Ericsson Telecom AB //
// //
// All rights reserved. This program and the accompanying materials //
// are made available under the terms of the Eclipse Public License v2.0 //
// which accompanies this distribution, and is available at //
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html //
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// Module: EPTF_CLL_UIHandlerVariableUI_Functions
//
// Purpose:
// This module contains VariableUI functions of EPTF CLL UIHandler.
//
// Module Parameters:
//
// Module depends on:
// <EPTF_CLL_UIHandlerClient_Functions>
// <EPTF_CLL_UIHandler_Definitions>
// <XTDP_PDU_Defs>
// <EPTF_CLL_UIHandler_VariableUI_Definitions>
// <EPTF_CLL_UIHandler_Widget_Functions>
// <EPTF_CLL_Logging_Definitions>
// <EPTF_CLL_Logging_Functions>
// <EPTF_CLL_LoggingUI_Definitions>
// <EPTF_CLL_LoggingUI_Functions>
// <EPTF_CLL_LoggingUIClient_Functions>
// <EPTF_CLL_UIHandlerClient_Definitions>
// <EPTF_CLL_Base_Functions>
// <EPTF_CLL_Variable_Definitions>
// <EPTF_CLL_Variable_Functions>
//
// Current Owner:
// Zsolt Szalai (EZSOSZA)
//
// Last Review Date:
// 2010-xx-xx
//
// Detailed Comments:
// -
//
///////////////////////////////////////////////////////////////
module EPTF_CLL_UIHandlerVariableUI_Functions
// [.objid{ itu_t(0) identified_organization(4) etsi(0)
// identified_organization(127) ericsson(5) testing(0)
// <put further nodes here if needed>}]
{
// import EPTF_CLL_UIHandler_VariableUI_Definitions all;
import from EPTF_CLL_UIHandlerClient_Functions all;
import from EPTF_CLL_UIHandler_Definitions all;
import from EPTF_CLL_UIHandlerVariableUI_Definitions all;
import from EPTF_CLL_UIHandler_WidgetFunctions all;
import from EPTF_CLL_Logging_Definitions all;
import from EPTF_CLL_Logging_Functions all;
import from EPTF_CLL_LoggingUI_Definitions all;
import from EPTF_CLL_LoggingUIClient_Functions all;
import from EPTF_CLL_UIHandlerClient_Definitions all;
import from EPTF_CLL_Base_Functions all;
import from EPTF_CLL_Variable_Definitions all;
import from ttcn_ericsson_se_protocolModules_xtdp_xtdl all;
//===========================================================================
// Module parameters
//===========================================================================
modulepar boolean tsp_debug_EPTF_UIHandler_VariableUI := false;
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_init_CT
//
// Purpose:
// Initialize the component
//
// Parameters:
// pl_selfName - *in* *charstring* - the name of the component
// pl_UIHandler - *in* <EPTF_UIHandler_CT> - The UIHandler component of the application
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_init_CT(in charstring pl_selfName,
in EPTF_UIHandler_CT pl_UIHandler,
in EPTF_LoggingUI_CT pl_loggingUi_compRef := null)
runs on EPTF_UIHandler_VariableUI_CT {
if(pl_loggingUi_compRef != null) {
f_EPTF_LoggingUIClient_init_CT(pl_selfName, pl_loggingUi_compRef, pl_UIHandler);
} else {
f_EPTF_Logging_init_CT(pl_selfName);
}
v_UIHandler_VariableUI_loggingMaskId := f_EPTF_Logging_registerComponentMasks(tsp_EPTF_UIHandler_VariableUI_loggingComponentMask, c_EPTF_UIHandler_loggingEventClasses, EPTF_Logging_CLL);
if(tsp_debug_EPTF_UIHandler_VariableUI) {
f_EPTF_Logging_enableLocalMask(v_UIHandler_VariableUI_loggingMaskId, c_EPTF_UIHandler_loggingClassIdx_Debug);
} else {
f_EPTF_Logging_disableLocalMask(v_UIHandler_VariableUI_loggingMaskId, c_EPTF_UIHandler_loggingClassIdx_Debug);
}
if (true != v_VariableUI_initialized) {
// f_EPTF_Var_init_CT(pl_selfName);
f_EPTF_UIHandlerClient_init_CT(pl_selfName, pl_UIHandler);
f_EPTF_Logging_init_CT(pl_selfName);
v_VariableUI_UIHandler := pl_UIHandler;
v_VariableUI_initialized := true;
f_EPTF_Base_registerCleanup(refers(f_EPTF_UIHandler_VariableUI_cleanup_CT));
f_EPTF_UIHandler_VariableUI_debug("----CLL_UIHandler_VariableUI INIT DONE----");
}
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_logAll
//
// Purpose:
// Log all internal variables in EPTF_UIHandler_VariableUI_CT
//
// Parameters:
// -
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_logAll()
runs on EPTF_UIHandler_VariableUI_CT
{
log("------Content of EPTF_UIHandler_VariableUI_CT: -------");
log("v_VariableUI_initialized: ",v_VariableUI_initialized)
log("v_VariableUI_UIHandler: ",v_VariableUI_UIHandler);
log("v_VariableUI_connections: ", v_VariableUI_connections);
log("v_VariableUI_holdingwidgets: ",v_VariableUI_holdingwidgets);
log("v_VariableUI_initparent: ", v_VariableUI_initparent);
log("v_VariableUI_lastput: ", v_VariableUI_lastput);
log("------Finished Content of EPTF_UIHandler_VariableUI_CT -------");
}//f_
private function f_EPTF_UIHandler_VariableUI_cleanup_CT() runs on EPTF_UIHandler_VariableUI_CT{
v_VariableUI_initialized := false;
}
group PutFunctions{
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_putVarbyName
//
// Purpose:
// Puts the given(by name) variable to the GUI.
//
// Parameters:
// pl_var - *in* *charstring* - the name of the variable
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_putVarbyName(in charstring pl_var) runs on EPTF_UIHandler_VariableUI_CT{
for (var integer i:=0;i<sizeof(v_VariableUI_connections);i:=i+1){
if (v_VariableUI_connections[i].variablename == pl_var){
f_EPTF_UIHandler_VariableUI_putVar(v_VariableUI_connections[i]);
}
}
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_putconnections
//
// Purpose:
// Puts all the variables from the database to the GUI.
//
// Parameters:
// -
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_putconnections() runs on EPTF_UIHandler_VariableUI_CT{
for(var integer i:=0;i<sizeof(v_VariableUI_connections);i:=i+1){
f_EPTF_UIHandler_VariableUI_putVar(v_VariableUI_connections[i]);
}
v_VariableUI_lastput := sizeof(v_VariableUI_connections);
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_putlastconnections
//
// Purpose:
// Puts the new variables from the database to the GUI.
//
// Parameters:
// -
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_putlastconnections() runs on EPTF_UIHandler_VariableUI_CT{
var integer vl_startIndex := v_VariableUI_lastput;
var integer vl_stopIndex := sizeof(v_VariableUI_connections);
v_VariableUI_lastput := vl_stopIndex;
for(var integer i := vl_startIndex; i < vl_stopIndex; i := i + 1)
{
f_EPTF_UIHandler_VariableUI_putVar(v_VariableUI_connections[i]);
}
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_putsimpleconnection
//
// Purpose:
// Puts a variable to the GUI, the item won't be updated the database
//
// Parameters:
// pl_varname - *in* *charstring* - the name of the variable
// pl_widgetid - *in* *charstring* - the widgetid that should be connected to.
// pl_subsMode - *in* <EPTF_Var_SubscriptionMode> - the mode of the subscription [default: timeLine]
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_putsimpleconnection(in charstring pl_varname, in charstring pl_widgetid, in EPTF_Var_SubscriptionMode pl_subsMode := timeLine)
runs on EPTF_UIHandler_VariableUI_CT {
var EPTF_UIHandler_VariableUI_Connection conn := c_EPTF_emptyEPTF_UIHandler_VariableUI_Connection;
conn.variablename := pl_varname;
conn.widgetid := pl_widgetid;
conn.subsMode := pl_subsMode;
f_EPTF_UIHandler_VariableUI_putVar(conn);
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_putwidgetconnection
//
// Purpose:
// Puts a connection to GUI, database not updated.
//
// Parameters:
// pl_varname - *in* *charstring* - the name of the variable
// pl_widgetid - *in* *charstring* - the widgetid that should be connected to.
// pl_widget - *in* *XTDP_XML_Tag* - the widget that should be connected to.
// pl_parentid - *in* *charstring* - the parent widgetid
// pl_holdingname - *in* *charstring* - the name of the holding widget, optional
// pl_subsMode - *in* <EPTF_Var_SubscriptionMode> - the mode of the subscription [default: timeLine]
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_putwidgetconnection(in charstring pl_varname,
in charstring pl_widgetid,
in Widgets pl_widget,
in charstring pl_parentid,
in charstring pl_holdingname := "JajO5&%AR.z>r$;!oN7Lvc_f",
in EPTF_Var_SubscriptionMode pl_subsMode := timeLine)
runs on EPTF_UIHandler_VariableUI_CT{
var EPTF_UIHandler_VariableUI_Connection conn := c_EPTF_emptyEPTF_UIHandler_VariableUI_Connection;
conn.variablename := pl_varname;
conn.widgetid := pl_widgetid;
conn.widget := pl_widget;
conn.parentid := pl_parentid;
conn.holdingwidgetRef := f_EPTF_UIHandler_VariableUI_searchholding(pl_holdingname);
conn.subsMode := pl_subsMode;
f_EPTF_UIHandler_VariableUI_putVar(conn);
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_putsimpleconnectionList
//
// Purpose:
// Adds multiple connections to the GUI, database not updated
//
// Parameters:
// pl_connlist - *in* <EPTF_UIHandler_VariableUI_SimpleConnectionList> - the connections
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_putsimpleconnectionList(in EPTF_UIHandler_VariableUI_SimpleConnectionList pl_connlist)
runs on EPTF_UIHandler_VariableUI_CT{
for (var integer i:=0; i<sizeof(pl_connlist); i:=i+1){
f_EPTF_UIHandler_VariableUI_putsimpleconnection(pl_connlist[i].variablename, pl_connlist[i].widgetid);
}
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_putsimpleconnectionWithSubsModeList
//
// Purpose:
// Adds multiple connections (with subscription mode informations) to the GUI, database not updated
//
// Parameters:
// pl_connlist - *in* <EPTF_UIHandler_VariableUI_SimpleConnectionWithSubsModeList> - the connections
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_putsimpleconnectionWithSubsModeList(in EPTF_UIHandler_VariableUI_SimpleConnectionWithSubsModeList pl_connlist)
runs on EPTF_UIHandler_VariableUI_CT{
for (var integer i:=0; i<sizeof(pl_connlist); i:=i+1){
if (pl_connlist[i].subsMode == omit){
f_EPTF_UIHandler_VariableUI_putsimpleconnection(pl_connlist[i].variablename, pl_connlist[i].widgetid);
}
else{
f_EPTF_UIHandler_VariableUI_putsimpleconnection(pl_connlist[i].variablename, pl_connlist[i].widgetid, pl_connlist[i].subsMode);
}
}
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_putsinglewidgetconnectionList
//
// Purpose:
// Adds multiple connections to the GUI, with a single widget, database not updated
//
// Parameters:
// pl_connlist - *in* <EPTF_UIHandler_VariableUI_SimpleConnectionList> - the connections
// pl_widget - *in* *XTDP_XML_Tag* - the widget
// pl_parentid - *in* *charstring* - the parent widgetid
// pl_holdingname - *in* *charstring* - the name of the holding widget, optional
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_putsinglewidgetconnectionList(in EPTF_UIHandler_VariableUI_SimpleConnectionList pl_connlist,
in Widgets pl_widget,
in charstring pl_parentid,
in charstring pl_holdingname := "JajO5&%AR.z>r$;!oN7Lvc_f")
runs on EPTF_UIHandler_VariableUI_CT{
if (sizeof(pl_connlist)>0){
f_EPTF_UIHandler_VariableUI_putwidgetconnection(pl_connlist[0].variablename,
pl_connlist[0].widgetid,
pl_widget,
pl_parentid,
pl_holdingname);
for (var integer i:=1; i<sizeof(pl_connlist); i:=i+1){
f_EPTF_UIHandler_VariableUI_putsimpleconnection(pl_connlist[i].variablename, pl_connlist[i].widgetid);
}
} else {
f_EPTF_UIHandler_VariableUI_putwidgetconnection("",
"",
pl_widget,
pl_parentid,
pl_holdingname);
}
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_putsinglewidgetconnectionWithSubsModeList
//
// Purpose:
// Adds multiple connections (with subscription mode informations) to the GUI, with a single widget, database not updated
//
// Parameters:
// pl_connlist - *in* <EPTF_UIHandler_VariableUI_SimpleConnectionWithSubsModeList> - the connections
// pl_widget - *in* *XTDP_XML_Tag* - the widget
// pl_parentid - *in* *charstring* - the parent widgetid
// pl_holdingname - *in* *charstring* - the name of the holding widget, optional
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_putsinglewidgetconnectionWithSubsModeList(in EPTF_UIHandler_VariableUI_SimpleConnectionWithSubsModeList pl_connlist,
in Widgets pl_widget,
in charstring pl_parentid,
in charstring pl_holdingname := "JajO5&%AR.z>r$;!oN7Lvc_f")
runs on EPTF_UIHandler_VariableUI_CT{
if (sizeof(pl_connlist)>0){
if (pl_connlist[0].subsMode == omit){
f_EPTF_UIHandler_VariableUI_putwidgetconnection(pl_connlist[0].variablename,
pl_connlist[0].widgetid,
pl_widget,
pl_parentid,
pl_holdingname);
}
else{
f_EPTF_UIHandler_VariableUI_putwidgetconnection(pl_connlist[0].variablename,
pl_connlist[0].widgetid,
pl_widget,
pl_parentid,
pl_holdingname,
pl_connlist[0].subsMode);
}
for (var integer i:=1; i<sizeof(pl_connlist); i:=i+1){
if (pl_connlist[i].subsMode == omit){
f_EPTF_UIHandler_VariableUI_putsimpleconnection(pl_connlist[i].variablename, pl_connlist[i].widgetid);
}
else{
f_EPTF_UIHandler_VariableUI_putsimpleconnection(pl_connlist[i].variablename, pl_connlist[i].widgetid, pl_connlist[i].subsMode);
}
}
} else {
f_EPTF_UIHandler_VariableUI_putwidgetconnection("",
"",
pl_widget,
pl_parentid,
pl_holdingname,
timeLine);
}
}
/* function f_EPTF_UIHandler_VariableUI_putparentwidget(in charstring pl_widget,
in charstring pl_parent)
runs on EPTF_UIHandler_VariableUI_CT{
if (pl_widget != ""){
var EPTF_UIHandlerClient_SubsRet addresult :=
f_EPTF_UIHandlerClient_addElementToGUI(f_EPTF_UIHandler_decodeXUL(pl_widget), pl_parent);
if(not (addresult == sr_Exists or addresult == sr_Success)){
f_EPTF_Logging_error(true, "Adding the widget failed!");
}
v_VariableUI_initparent := true;
}
}*/
}
group Databasefunctions{
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_addsimpleconnection
//
// Purpose:
// Adds a connection to the database
//
// Parameters:
// pl_varname - *in* *charstring* - the name of the variable
// pl_widgetid - *in* *charstring* - the widgetid that should be connected to.
// pl_subsMode - *in* <EPTF_Var_SubscriptionMode> - the mode of the subscription. [default: timeLine]
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_addsimpleconnection(in charstring pl_varname, in charstring pl_widgetid, in EPTF_Var_SubscriptionMode pl_subsMode := timeLine)
runs on EPTF_UIHandler_VariableUI_CT
return integer{
return f_EPTF_UIHandler_VariableUI_addconnection({pl_varname, pl_widgetid, omit, omit, omit, pl_subsMode});
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_addsimpleconnectionList
//
// Purpose:
// Adds multiple connections to the database
//
// Parameters:
// pl_connlist - *in* - <EPTF_UIHandler_VariableUI_SimpleConnectionList> - The list of connections
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_addsimpleconnectionList(in EPTF_UIHandler_VariableUI_SimpleConnectionList pl_connlist)
runs on EPTF_UIHandler_VariableUI_CT
return integer{
var integer idx:=0;
for (var integer i:=0; i< sizeof(pl_connlist); i:=i+1){
idx := f_EPTF_UIHandler_VariableUI_addconnection({pl_connlist[i].variablename, pl_connlist[i].widgetid, omit, omit, omit, timeLine});
}
return idx;
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_addsimpleconnectionWithSubsModeList
//
// Purpose:
// Adds multiple connections to the database
//
// Parameters:
// pl_connlist - *in* - <EPTF_UIHandler_VariableUI_SimpleConnectionWithSubsModeList> - The list of connections
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_addsimpleconnectionWithSubsModeList(in EPTF_UIHandler_VariableUI_SimpleConnectionWithSubsModeList pl_connlist)
runs on EPTF_UIHandler_VariableUI_CT
return integer{
var integer idx:=0;
for (var integer i:=0; i< sizeof(pl_connlist); i:=i+1){
if (pl_connlist[i].subsMode == omit){
idx := f_EPTF_UIHandler_VariableUI_addconnection({pl_connlist[i].variablename, pl_connlist[i].widgetid, omit, omit, omit, omit});
}
else{
idx := f_EPTF_UIHandler_VariableUI_addconnection({pl_connlist[i].variablename, pl_connlist[i].widgetid, omit, omit, omit, pl_connlist[i].subsMode});
}
}
return idx;
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_widgetaddconnection
//
// Purpose:
// Adds a connection to the database
//
// Parameters:
// pl_varname - *in* *charstring* - the name of the variable
// pl_widgetid - *in* *charstring* - the widgetid that should be connected to.
// pl_widget - *in* *XTDP_XML_Tag* - the widget that should be connected to.
// pl_parentid - *in* *charstring* - the parent widgetid
// pl_subsmode - *in* <EPTF_Var_SubscriptionMode> - the mode of the subscription. [default: timeLine]
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_addwidgetconnection(in charstring pl_varname,
in charstring pl_widgetid,
in Widgets pl_widget,
in charstring pl_parentid,
in EPTF_Var_SubscriptionMode pl_subsMode := timeLine)
runs on EPTF_UIHandler_VariableUI_CT
return integer{
return f_EPTF_UIHandler_VariableUI_addconnection({pl_varname, pl_widgetid, pl_widget, pl_parentid, omit, pl_subsMode});
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_addwidgetconnectionList
//
// Purpose:
// Adds multiple connections to the database
//
// Parameters:
// pl_connlist - *in* - <EPTF_UIHandler_VariableUI_WidgetConnectionList> - The list of connections
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_addwidgetconnectionList(in EPTF_UIHandler_VariableUI_WidgetConnectionList pl_connlist)
runs on EPTF_UIHandler_VariableUI_CT
return integer{
var integer idx:=0;
for (var integer i:=0; i< sizeof(pl_connlist); i:=i+1){
if (pl_connlist[i].subsMode == omit){
idx := f_EPTF_UIHandler_VariableUI_addconnection({pl_connlist[i].variablename,
pl_connlist[i].widgetid,
pl_connlist[i].widget,
pl_connlist[i].parentid,
omit,
omit});
}
else{
idx := f_EPTF_UIHandler_VariableUI_addconnection({pl_connlist[i].variablename,
pl_connlist[i].widgetid,
pl_connlist[i].widget,
pl_connlist[i].parentid,
omit,
pl_connlist[i].subsMode});
}
}
return idx;
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_addholdingwidget
//
// Purpose:
// Adds a holding widget to the database
//
// Parameters:
// pl_name - *in* *charstring* - the name of the holdingitem
// pl_widget - *in* *XTDP_XML_Tag* - the holding widget.
// pl_parentid - *in* *charstring* - the parent widgetid
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_addholdingwidget(in charstring pl_name, in Widgets pl_widget, in charstring pl_parentid)
runs on EPTF_UIHandler_VariableUI_CT
return integer{
return f_EPTF_UIHandler_VariableUI_addfullholdingwidget({pl_name, false, pl_widget, pl_parentid});
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_assignholdingwidget
//
// Purpose:
// Assigns a connection to a holding widget, by names
//
// Parameters:
// pl_varname - *in* *charstring* - the name of the variable
// pl_holdingname - *in* *charstring* - the name of the holding item
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_assignholdingwidget(in charstring pl_varname, in charstring pl_holdingname) runs on EPTF_UIHandler_VariableUI_CT
return boolean{
return f_EPTF_UIHandler_VariableUI_assignholding(f_EPTF_UIHandler_VariableUI_getconnectionIdx(pl_varname),f_EPTF_UIHandler_VariableUI_getholdingwidgetIdx(pl_holdingname));
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_assignholding
//
// Purpose:
// Assigns a connection to a holding widget, by indexes.
//
// Parameters:
// pl_connidx - *in* *integer* - the connection's index
// pl_holdingidx - *in* *integer* - the holdingitem's index
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_assignholding(in integer pl_connidx, in integer pl_holdingidx) runs on EPTF_UIHandler_VariableUI_CT
return boolean{
if (sizeof(v_VariableUI_holdingwidgets)>pl_holdingidx and pl_holdingidx>=0 and sizeof(v_VariableUI_connections)>pl_connidx and pl_connidx >= 0){
v_VariableUI_connections[pl_connidx].holdingwidgetRef := pl_holdingidx;
return true;
} else {
f_EPTF_UIHandler_VariableUI_warning("Outbound index numbers!");
return false;
}
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_removeconnection
//
// Purpose:
// Removes a connection.
//
// Parameters:
// pl_varname - *in* *charstring* - the name of the variable
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
public function f_EPTF_UIHandler_VariableUI_removeconnection(in charstring pl_varname)
runs on EPTF_UIHandler_VariableUI_CT{
var EPTF_UIHandler_VariableUI_ConnectionList connections:={};
for (var integer i:=0;i<sizeof(v_VariableUI_connections);i:=i+1){
if (v_VariableUI_connections[i].variablename != pl_varname){
connections[sizeof(connections)]:=v_VariableUI_connections[i];
}
}
v_VariableUI_connections := connections;
}
}
group PrivateFunctions{
// puts the widget on, if a xul is given and not present in the GUI
// than connects it to the variable if it is not connected already
private function f_EPTF_UIHandler_VariableUI_putVar(inout EPTF_UIHandler_VariableUI_Connection pl_var)
runs on EPTF_UIHandler_VariableUI_CT
{
if (not f_EPTF_UIHandler_VariableUI_putHoldingwidget(pl_var)){
f_EPTF_UIHandler_VariableUI_warning("Error while putting up the HoldingWidget!");
return;
}
if (ispresent(pl_var.widget)){
if (ispresent(pl_var.parentid)){
var Widgets widget := pl_var.widget;
var charstring widgetid := f_EPTF_UIHandler_VariableUI_getidfromXUL(widget);
if (widgetid == ""){ widgetid := pl_var.widgetid;}
if (f_EPTF_UIHandlerClient_widgetExists(widgetid) == wtUnknown){
var EPTF_UIHandlerClient_SubsRet addresult :=
f_EPTF_UIHandlerClient_XSD_addElementToGUI(widget, pl_var.parentid);
if(not (addresult == sr_Exists or addresult == sr_Success)){
f_EPTF_UIHandler_VariableUI_warning("Adding the widget failed!");
return;
}
}
} else {
f_EPTF_UIHandler_VariableUI_warning("Widget give, but it's parent not!");
return;
}
}
if(not (pl_var.variablename == "" and pl_var.widgetid == "")){
if (pl_var.subsMode == omit){
f_EPTF_UIHandlerClient_subscribeMe(pl_var.variablename,
pl_var.variablename,
pl_var.widgetid);
}
else{
f_EPTF_UIHandlerClient_subscribeMe(pl_var.variablename,
pl_var.variablename,
pl_var.widgetid,
pl_var.subsMode);
}
}
}
private function f_EPTF_UIHandler_VariableUI_putHoldingwidget(in EPTF_UIHandler_VariableUI_Connection pl_var)
runs on EPTF_UIHandler_VariableUI_CT
return boolean{
if (ispresent(pl_var.holdingwidgetRef)){
var integer holdingref := pl_var.holdingwidgetRef
if (sizeof(v_VariableUI_holdingwidgets)>holdingref and holdingref>=0){
if (not v_VariableUI_holdingwidgets[holdingref].initialized){
f_EPTF_UIHandler_VariableUI_debug(log2str("FOOO", v_VariableUI_holdingwidgets, holdingref));
if (f_EPTF_UIHandlerClient_widgetExists(f_EPTF_UIHandler_VariableUI_getidfromXUL(v_VariableUI_holdingwidgets[holdingref].widget))
== wtUnknown){
var EPTF_UIHandlerClient_SubsRet addresult :=
f_EPTF_UIHandlerClient_XSD_addElementToGUI(v_VariableUI_holdingwidgets[holdingref].widget, v_VariableUI_holdingwidgets[holdingref].parentid);
if(not (addresult == sr_Exists or addresult == sr_Success)){
f_EPTF_UIHandler_VariableUI_warning("Adding the Holding widget failed!");
return false;
}
}
v_VariableUI_holdingwidgets[holdingref].initialized := true;
} else {
f_EPTF_UIHandler_VariableUI_debug("Holdingwidget already initialized!"); // switch it to false;
return true;
}
} else {
f_EPTF_UIHandler_VariableUI_warning("No such Refererence exists among the Holdigwidgets");
if (holdingref == -1){ return true; }
return false;
}
} else {
return true;
}
return true;
}
// Adding Connections
private function f_EPTF_UIHandler_VariableUI_addconnection(in EPTF_UIHandler_VariableUI_Connection pl_connection)
runs on EPTF_UIHandler_VariableUI_CT
return integer{
var integer size := sizeof(v_VariableUI_connections);
v_VariableUI_connections[size] := pl_connection;
return size;
}
private function f_EPTF_UIHandler_VariableUI_addfullholdingwidget(in EPTF_UIHandler_VariableUI_Holdingwidget pl_holdingwidget)
runs on EPTF_UIHandler_VariableUI_CT
return integer{
var integer size := sizeof(v_VariableUI_holdingwidgets);
v_VariableUI_holdingwidgets[size] := pl_holdingwidget;
return size;
}
private function f_EPTF_UIHandler_VariableUI_getconnectionIdx(in charstring pl_varname) runs on EPTF_UIHandler_VariableUI_CT return integer{
for (var integer i:=0; i<sizeof(v_VariableUI_connections);i:=i+1){
if (v_VariableUI_connections[i].variablename == pl_varname){
return i;
}
}
return -1;
}
function f_EPTF_UIHandler_VariableUI_getholdingwidgetIdx(in charstring pl_holdingname) runs on EPTF_UIHandler_VariableUI_CT return integer{
for (var integer i:=0; i<sizeof(v_VariableUI_holdingwidgets);i:=i+1){
if (v_VariableUI_holdingwidgets[i].name == pl_holdingname){
return i;
}
}
return -1;
}
private function f_EPTF_UIHandler_VariableUI_searchholding(in charstring pl_holdingname) runs on EPTF_UIHandler_VariableUI_CT
return integer{
if (pl_holdingname=="JajO5&%AR.z>r$;!oN7Lvc_f") {return -1;}
for (var integer i:=0; i<sizeof(v_VariableUI_holdingwidgets);i:=i+1){
if (v_VariableUI_holdingwidgets[i].name == pl_holdingname){return i;}
}
return -1;
}
private function f_EPTF_UIHandler_VariableUI_getidfromXUL(in Widgets pl_widget)
runs on EPTF_UIHandler_VariableUI_CT
return charstring {
select(pl_widget){
case({window := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.window.id});
}
case({tabpages := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.tabpages.id});
}
/* case({tabs := ?}){ */
/* return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.tabs.id}); */
/* } */
case({tabpage := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.tabpage.id});
}
/* case({tabpanels := ?}){ */
/* return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.tabpanels.id}); */
/* } */
/* case({tabpanel := ?}){ */
/* return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.tabpanel.id}); */
/* } */
case({tree := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.tree.id});
}
/* case({treecols := ?}){ */
/* return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.treecols.id}); */
/* } */
case({treecol := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.treecol.id});
}
/* case({treechildren := ?}){ */
/* return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.treechildren.id}); */
/* } */
/* case({treeitem := ?}){ */
/* return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.treeitem.id}); */
/* } */
/* case({treerow := ?}){ */
/* return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.treerow.id}); */
/* } */
case({treecell := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.treecell.id});
}
case({hbox := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.hbox.id});
}
case({label_ := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.label_.id});
}
case({spacer := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.spacer.id});
}
case({button := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.button.id});
}
case({textbox := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.textbox.id});
}
case({chart := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.chart.id});
}
/* case({tracelist := ?}){ */
/* return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.tracelist.id}); */
/* } */
case({toolbar := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.toolbar.id});
}
/* case({toolbarelements := ?}){ */
/* return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.toolbarelements.id}); */
/* } */
case({toolbarbutton := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.toolbarbutton.id});
}
/* case({separator := ?}){ */
/* return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.separator.id}); */
/* } */
case({listbox := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.listbox.id});
}
case({listitem := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.listitem.id});
}
case({numericalwidget := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.numericalwidget.id});
}
case({menulist := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.menulist.id});
}
case({menuitem := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.menuitem.id});
}
case({image := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.image.id});
}
case ({distributionchart := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.distributionchart.id});
}
case ({valuelist := ?}){
return f_EPTF_UIHandler_XULWidgetId2charstr({pl_widget.valuelist.id});
}
case else{
f_EPTF_UIHandler_VariableUI_debug("Unhandled widget, or widget with no id field");
return "";
}
}
// control never reaches this point but gcc complains on the generated code.
return "";
}
}
group Logging {
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUIr_error
//
// Purpose:
// Function to log an error from UIHandler_VariableUI feature.
//
// Parameters:
// - pl_message - *in* *charstring* - the message to log
//
// Return Value:
// -
//
// Errors & assertions:
// -
//
// Detailed Comments:
// -
//
///////////////////////////////////////////////////////////
private function f_EPTF_UIHandler_VariableUI_error(in charstring pl_message)
runs on EPTF_UIHandler_VariableUI_CT
{
f_EPTF_Logging_error(true, tsp_EPTF_UIHandler_VariableUI_loggingComponentMask&": "&pl_message);
f_EPTF_Base_stopAll();
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_warning
//
// Purpose:
// Function to log a warning from UIHandler_VariableUI feature.
//
// Parameters:
// - pl_message - *in* *charstring* - the message to log
//
// Return Value:
// -
//
// Errors & assertions:
// -
//
// Detailed Comments:
// -
//
///////////////////////////////////////////////////////////
private function f_EPTF_UIHandler_VariableUI_warning(in @lazy charstring pl_message)
runs on EPTF_UIHandler_VariableUI_CT
{
f_EPTF_Logging_warningV2(pl_message, v_UIHandler_VariableUI_loggingMaskId, {c_EPTF_UIHandler_loggingClassIdx_Warning});
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_VariableUI_debug
//
// Purpose:
// Function to log a debug message from UIHandler_VariableUI feature.
//
// Parameters:
// - pl_message - *in* *charstring* - the message to log
//
// Return Value:
// -
//
// Errors & assertions:
// -
//
// Detailed Comments:
// -
//
///////////////////////////////////////////////////////////
private function f_EPTF_UIHandler_VariableUI_debug(in @lazy charstring pl_message)
runs on EPTF_UIHandler_VariableUI_CT
{
f_EPTF_Logging_debugV2(pl_message, v_UIHandler_VariableUI_loggingMaskId, {c_EPTF_UIHandler_loggingClassIdx_Debug});
}
///////////////////////////////////////////////////////////
// Function: f_UIHandler_VariableUI_UIHandler_debugEnabled
//
// Purpose:
// Function to check if debug is enabled for UIHandler_VariableUI
//
// Parameters:
// -
//
// Return Value:
// *boolean* - true if debug enalbed
//
// Errors & assertions:
// -
//
// Detailed Comments:
// -
//
///////////////////////////////////////////////////////////
private function f_EPTF_UIHandler_VariableUI_debugEnabled()
runs on EPTF_UIHandler_VariableUI_CT
return boolean
{
return f_EPTF_Logging_isEnabled(v_UIHandler_VariableUI_loggingMaskId, c_EPTF_UIHandler_loggingClassIdx_Debug);
}
} // group Logging
}