Преглед изворни кода

improve IDE cue line info

improve IDE cue line info
ZhangXK пре 1 година
родитељ
комит
84a58bc4eb

+ 1 - 0
.gitignore

@@ -4,3 +4,4 @@
 /comx_sdk.node/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/
 /comx_sdk.node/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/
 /comx_sdk.node/include/comx_napi.hxx.orig
+comx_sdk.node/cache/_cpp_cache.cpp

+ 56 - 32
comx_sdk.node/js/kul_editor_pane.js

@@ -295,18 +295,24 @@ function OnLogFlagChange()
     //OnGeometryChange();
 }
 
+var g_cueline_init = false;
 function OnReady()
 {
     _initDockPane();
 
     ui.preview_visible.valid = true;
     ui.cueline_title.value = '<b><u> Cue Line:</u></b> ';
-    ui.cueline.value = '<span style=\"color:darkblue\">Loading ...</span>';
+    ui.cueline.value = '<span style=\"color:darkblue\">Initializing ...</span>';
 
     _initializeData();
 
     parent.setTimeout(()=>{
-        ui.cueline.value = '<span style=\"color:darkblue\">Ready.</span>';
+
+        if(!g_cueline_init)
+        {
+            g_cueline_init = true;
+            ui.cueline.value = '<span style=\"color:darkblue\">Ready.</span>';
+        }
 
         if(ui.geometry.width > ui.GetScreenGeometry().width ||
            ui.geometry.height > ui.GetScreenGeometry().height)
@@ -834,9 +840,12 @@ function OnSave_(is_slient)
 	ui.pb_preview.valid = is_preview;
 	if(ui.pb_preview.valid)
 	{
+            ui.cueline.value = '<span style=\"color:darkblue\">Loading Preview Form ...</span>';
 	    model.previewForm(ui.units.value, ui.forms.value, function(err, result){
 		if(err) {outputError(result); return;}
-		if(ui.preview_visible.valid)model.updateGeometryToPreviewForm(ui.forms.value, getUiGeometry());
+		if(ui.preview_visible.valid)model.updateGeometryToPreviewForm(ui.forms.value, getUiGeometry(),()=>{
+                    ui.cueline.value = '<span style=\"color:darkblue\">Ready.</span>';
+                });
 	    }, ui.preview_visible.valid);
 	}
     });
@@ -858,22 +867,27 @@ function OnPreviewVisible()
         
         if(ui.pb_preview.valid)
         {
-                model.previewForm(ui.units.value, ui.forms.value, function(err, result){
-                    if(err) {outputError(result); return;}
-
-                    if(ui.preview_visible.valid)model.updateGeometryToPreviewForm(
-                        ui.forms.value,
-                        getUiGeometry(),
-                        ()=>{
-                            // post-process
-                            // nothing
-
-                            //parent.setTimeout(()=>{
-                                OnClickTreeItem();
-                            //});
-                        }
-                    );
-                }, ui.preview_visible.valid);
+            if(ui.preview_visible.valid){
+                ui.cueline.value = '<span style=\"color:darkblue\">Loading Preview Form ...</span>';
+            }
+            
+            model.previewForm(ui.units.value, ui.forms.value, function(err, result){
+                if(err) {outputError(result); return;}
+                
+                if(ui.preview_visible.valid)model.updateGeometryToPreviewForm(
+                    ui.forms.value,
+                    getUiGeometry(),
+                    ()=>{
+                        // post-process
+                        // nothing
+                        
+                        //parent.setTimeout(()=>{
+                        OnClickTreeItem();
+                        ui.cueline.value = '<span style=\"color:darkblue\">Ready.</span>';
+                        //});
+                    }
+                );
+            }, ui.preview_visible.valid);
         }
     });
 }
@@ -884,18 +898,21 @@ function OnPreview()
 	if(err){outputError(result); return}
         if(ui.pb_preview.valid)
         {
-                model.previewForm(ui.units.value, ui.forms.value, function(err, result){
-                    if(err) {outputError(result); return;}
-
-                    if(ui.preview_visible.valid)model.updateGeometryToPreviewForm(
-                        ui.forms.value,
-                        getUiGeometry(),
-                        ()=>{
-                            // post-process
-                            // nothing
-                        }
-                    );
-                }, ui.preview_visible.valid);
+            ui.cueline.value = '<span style=\"color:darkblue\">Loading Preview Form ...</span>';
+            model.previewForm(ui.units.value, ui.forms.value, function(err, result){
+                if(err) {outputError(result); return;}
+                
+                if(ui.preview_visible.valid)model.updateGeometryToPreviewForm(
+                    ui.forms.value,
+                    getUiGeometry(),
+                    ()=>{
+                        // post-process
+                        // nothing
+                        
+                        ui.cueline.value = '<span style=\"color:darkblue\">Ready.</span>';
+                    }
+                );
+            }, ui.preview_visible.valid);
         }
     });
 }
@@ -1024,6 +1041,9 @@ var g_bOnFormChangedLock = false;
 
 function OnFormChanged()
 {
+    ui.cueline.value = '<span style=\"color:darkblue\">Loading Preview Form ...</span>';
+    g_cueline_init = true;
+    
     if(g_bOnFormChangedLock) return;
     
     if(g_current_unit_name == ui.units.value &&
@@ -1105,6 +1125,7 @@ function OnFormChanged()
                             ()=>{
                                 // post-process
                                 // nothing
+                                ui.cueline.value = '<span style=\"color:darkblue\">Ready.</span>';
                             }
                         );
                     }, ui.preview_visible.valid);
@@ -1544,13 +1565,16 @@ function OnPropertyChange()
 				    return;
 				}
 				ui.pb_preview.valid = is_preview;
+                                ui.cueline.value = '<span style=\"color:darkblue\">Loading Preview Form ...</span>';
 				model.previewForm(
 				    ui.units.value,
 				    ui.forms.value,
 				    function(err, result){
 					if(err) {outputError(result); return;}
 					if(ui.preview_visible.valid)model.updateGeometryToPreviewForm(
-					    ui.forms.value, getUiGeometry());
+					    ui.forms.value, getUiGeometry(),()=>{
+                                                ui.cueline.value = '<span style=\"color:darkblue\">Ready.</span>';
+                                            });
 					
 				    }, ui.preview_visible.valid);
 			    });

+ 1 - 1
comx_sdk.node/js/statuspane_pane.js

@@ -11,7 +11,7 @@ function OnInitializeData(reload, preview)
                 //The 'pui' variable is valid in all functions of this document.
             //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
             ui.cueline_title.value = '<b><u> Cue Line:</u></b> ';
-            ui.cueline.value = '<span style=\"color:darkblue\">Loading ...</span>';
+            ui.cueline.value = '<span style=\"color:darkblue\">Initializing ...</span>';
             ui.cueline_stack.index = 1;
             ui.update();
             

BIN
comx_sdk.node/template/402fcce78a1944828876736930c8f1d1


+ 0 - 435
comx_sdk.node/template/9502b2ddbdb443b6bddcfbdaa9d2d943

@@ -1,435 +0,0 @@
-+f{nhynpp/.
)()"ds!ou">"xlu|iwh(-fx,.<&#)(c{#h`pgqngzy}fmxj C kfqtgB&#)(c{#h`okttveyyu B#txuj@"'%$
)()"ds!}kofKJ'A'sjwIttjw{bn/--CA„ri)"paifqslxyydpsm)%wjuwys?
xju!n)?"hamlsteyuyemxl@	
-	if(typeof(unit) == "undefined") return;
-	if(!unit.form[m.form].innerWindow) return;
-		    
-	clearInterval(timeID);
-	g_first_run = false;
-	unit.form[m.form].ui.geometry = m.geometry;
-	process.send({type : 'loadedPreview'});
-    });
-
-    function evalStringToObj(str)
-    {
-	var ret = undefined;
-	
-	try
-	{
-	    ret = eval(str);
-	}
-	catch(err)
-	{
-	    //nothing.
-	}
-	
-	return ret;
-    }
-
-    /**
-     * Returns internal [[Class]] property of an object
-     *
-     * Ecma-262, 15.2.4.2
-     * Object.prototype.toString( )
-     *
-     * When the toString method is called, the following steps are taken: 
-     * 1. Get the [[Class]] property of this object. 
-     * 2. Compute a string value by concatenating the three strings "[object ", Result (1), and "]". 
-     * 3. Return Result (2).
-     *
-     * __getClass(5); // => "Number"
-     * __getClass({}); // => "Object"
-     * __getClass(/foo/); // => "RegExp"
-     * __getClass(''); // => "String"
-     * __getClass(true); // => "Boolean"
-     * __getClass([]); // => "Array"
-     * __getClass(undefined); // => "Undefined"
-     * __getClass(Element); // => "Constructor"
-     *
-     */
-    
-    function __getClass(object){
-	return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1];
-    };
-
-    function __isInArray(arr, value)
-    {
-	var ret = false;
-	arr.forEach(item=>{
-	    if(item == value)
-	    {
-		ret = true;
-	    }
-	});
-
-	return ret;
-    }
-
-    function __isWriteOnlyUiVariable(prop)
-    {
-	var listWriteOnlyList = [
-	    'value',
-	    'filter',
-	    'tip',
-	    'head_size',
-	    'button',
-	    'color',
-	    'readOnly',
-	    'keywords',
-	    'regex',
-	    'autoComplete',
-	    'autoCompleteCallback',
-	    'autoCompleteSelection',
-            'autoCompleteListItemChange',
-	    'autoCompleteMouseHover',
-	    'inserter',
-	    'head',
-	    'tail',
-	    'plot',
-	    'legend',
-	    'picker',
-	    'attachment',
-	    'db',
-	    'callTip',
-	    'callTipOnce'
-	];
-
-	return __isInArray(listWriteOnlyList, prop);
-    }
-
-    function __isUiGlobalVariable(prop)
-    {
-	var list = [
-	    'geometry',
-	    'hot_key',
-	    'clipboard',
-	    'attachment',
-	    'block_event'
-	];
-
-	return __isInArray(list, prop);
-    }
-
-    process.on("message", (m)=>{
-	//console.log(m.type);
-	if(m.type == "setGeometry")
-	{
-	    try
-	    {
-		if(g_first_run)
-		{
-		    g_geometry_msg = m;
-		}
-		else
-		{
-		    unit.form[m.form].ui.geometry = m.geometry;
-		    process.send({type : 'loadedPreview'});
-		}
-		
-		/*var timeID = setInterval(function(){
-		    if(typeof(unit) == "undefined")return;
-		    //if(!unit) return;
-		    if(!unit.form[m.form].innerWindow) return;
-		    
-		    clearInterval(timeID);
-		    unit.form[m.form].ui.geometry = m.geometry;
-		},100);
-		*/
-	    }
-	    catch(e)
-	    {
-		console.log(e);
-	    }
-	}
-	if(m.type == 'close')
-	{
-	    process.exit(0);
-	}
-	if(m.type == 'reload')
-	{
-	    unit.form[m.form].Reload();
-	    unit.form[m.form].ui.tindex = m.tindex;
-	    process.send({type:'reload'});
-	}
-	if(m.type == 'ui_interact')
-	{
-	    unit.form[m.form].ui.ui_interact = m.flag;
-	}
-        if(m.type == 'getNamespaceDesc')
-        {
-            var ns_list = m.ns_list;
-	    var obj  = unit.form[m.form].pane;
-            var prop =  ns_list[ns_list.length - 1];
-
-            var flag = true;
-	    for(var loop = 0; loop < ns_list.length - 1; ++loop)
-	    {
-		if(typeof(obj[ns_list[loop]]) != 'undefined')
-		{
-		    obj = obj[ns_list[loop]];
-		}
-		else
-		{
-		    flag = false;
-		    break;
-		}
-	    }
-
-            if(obj.__desc)
-            {
-                if(obj.__desc[prop])
-                {
-                    var str_desc = obj.__desc[prop];
-                    str_desc = str_desc.replace("?1(", "(");
-
-                    var str_snip = false;
-                    if(obj.__snip && obj.__snip[prop])
-                    {
-                        str_snip = obj.__snip[prop];
-                    }
-                    process.send({ type : 'getNamespaceDesc', desc : str_desc, snip : str_snip});
-                }
-            }
-            
-        }
-	if(m.type == 'getNamespaceList')
-	{
-            var ret = [];
-            try{
-	    var ns_list = m.ns_list;
-	    var obj  = unit.form[m.form].pane;
-
-	    var bUiNamesapce = ns_list.includes('ui');//(ns_list[0] == 'ui' || ns_list[ns_list.length - 1] == 'ui');
-
-	    if(typeof(obj[ns_list[0]]) == 'undefined' && ns_list.length > 1)
-	    {
-		var obj_0 =  evalStringToObj(ns_list[0]);
-		if(obj_0)
-		{
-		    obj = {};
-		    obj[ns_list[0]] = obj_0;
-		}
-	    }
-	    
-	    var flag = true;
-	    for(var loop = 0; loop < ns_list.length - 1; ++loop)
-	    {
-		if(typeof(obj[ns_list[loop]]) != 'undefined')
-		{
-		    obj = obj[ns_list[loop]];
-		}
-		else
-		{
-		    flag = false;
-		    break;
-		}
-	    }
-	  
-	    if(flag)
-	    {
-		if(__getClass(obj) == 'Object' ||
-		   __getClass(obj) == 'Function')
-		{
-                    var tar = ns_list[ns_list.length - 1];
-		    for(var prop in obj)
-		    {
-			if(prop.indexOf(tar) != 0) continue;
-
-			var prefixProp = prop;
-			if(obj.hasOwnProperty('_ui_obj_type'))
-			{
-			    prefixProp = obj._ui_obj_type + '#' + prop;
-			}
-			
-			if(bUiNamesapce)
-			{
-			    if(__isWriteOnlyUiVariable(prop) ||
-			       __isUiGlobalVariable(prop))
-			    {
-				ret.push(prefixProp + "?2");
-			    }
-			    else
-			    {
-				if(__getClass(obj[prop]) == 'Function')
-				{
-				    ret.push(prefixProp + "?1");
-				}
-				else if(__getClass(obj[prop]) == 'Object')
-				{
-				    ret.push(prefixProp + "?3");
-				}
-				else
-				{
-				    ret.push(prefixProp + "?2");
-				}
-			    }
-			}
-			else
-			{
-			    if(__getClass(obj[prop]) == 'Object' ||
-			       __getClass(obj[prop]) == 'console'||
-			       __getClass(obj[prop]) == 'process')
-			    {
-				ret.push(prop + "?3");
-			    }
-			    else if(__getClass(obj[prop]) == 'Function')
-			    {
-				ret.push(prop + "?1");
-			    }
-			    else
-			    {
-				ret.push(prop + "?2");
-			    }
-			}
-		    }
-                    
-                    if(obj.__declare && typeof(obj.__declare) == 'object')
-                    {
-                        var ret_merge = [];
-                        for(var loop = 0; loop < ret.length; ++loop)
-                        {
-                            var item = ret[loop];
-
-                            if(obj.hasOwnProperty('_ui_obj_type'))
-                            {
-                                var idx = item.indexOf('#');
-                                item = item.substring(idx + 1);
-                            }
-
-                            if(item == '_ui_obj_type?2')continue;
-
-                            for(var loop_sub = 0; loop_sub < obj.__declare.length; ++loop_sub)
-                            {
-                                var sub_item = obj.__declare[loop_sub];
-
-                                if(sub_item.indexOf(item) == 0)
-                                {
-                                    item = obj.__declare[loop_sub];
-                                    break;
-                                }
-                            }
-
-                            ret_merge.push(item);
-                        }
-
-                        ret_merge.push('B5AAED47BFB64CAAB94BA52424C3371B');
-                        ret = ret_merge;
-                    }
-
-                    var str_snip = false;
-                    var word = ns_list[ns_list.length - 1];
-                    if(obj.__snip && obj.__snip[word])
-                    {
-                        str_snip = obj.__snip[word];
-                    }
-
-                    if(str_snip)
-                    {
-                        ret.push(str_snip);
-                        ret.push('822DD938B2AC4FC6924C9864B7BD2EEE');
-                    }
-		}
-		else
-		{
-		    ret.push('@' + __getClass(obj));
-		}
-	    }
-            }
-            catch(err)
-            {
-                console.log(err);
-                ret = [];
-            }
-
-	    comx.mutex.Sync(false/*bWait*/, ()=>{
-		//console.log('comx.mutex.Sync: bWait = false');
-		var cache_file = process.env['COMX_SDK'] + 'data/tmp.cache';
-
-		fs.writeFileSync(cache_file, JSON.stringify(ret));
-	    });
-	}
-
-	if(m.type == 'getModelNamespaceList')
-	{
-            var ret = [];
-
-            try{
-                
-	    var ns_list = m.ns_list;
-	    var obj  = unit.form[m.form].pane.parent;
-
-	    if(typeof(obj[ns_list[0]]) == 'undefined' && ns_list.length > 1)
-	    {
-		var obj_0 =  evalStringToObj(ns_list[0]);
-		if(obj_0)
-		{
-		    obj = {};
-		    obj[ns_list[0]] = obj_0;
-		}
-	    }
-
-	    var flag = true;
-	    for(var loop = 0; loop < ns_list.length - 1; ++loop)
-	    {
-		if(typeof(obj[ns_list[loop]]) != 'undefined')
-		{
-		    obj = obj[ns_list[loop]];
-		}
-		else
-		{
-		    flag = false;
-		    break;
-		}
-	    }
-
-	    if(flag)
-	    {
-		if(__getClass(obj) == 'Object' ||
-		   __getClass(obj) == 'Function')
-		{
-		    for(var prop in obj)
-		    {
-			var tar = ns_list[ns_list.length - 1];
-			if(prop.indexOf(tar) == 0 && prop != 'model')
-			{
-			    if(__getClass(obj[prop]) == 'Object' ||
-			       __getClass(obj[prop]) == 'console'||
-			       __getClass(obj[prop]) == 'process')
-			    {
-				ret.push(prop + "?3");
-			    }
-			    else if(__getClass(obj[prop]) == 'Function')
-			    {
-				ret.push(prop + "?1");
-			    }
-			    else
-			    {
-				ret.push(prop + "?2");
-			    }
-			}
-		    }
-		}
-		else
-		{
-		    ret.push('@' + __getClass(obj));
-		}
-	    }
-            }
-            catch(err)
-            {
-                console.log(err);
-                ret = [];
-            }
-
-	    comx.mutex.Sync(false/*bWait*/, ()=>{
-		//console.log('comx.mutex.Sync: bWait = false');
-		var cache_file = process.env['COMX_SDK'] + 'data/tmp.cache';
-
-		fs.writeFileSync(cache_file, JSON.stringify(ret));
-	    });
-	    
-	}
-	if(m.type == "handshake")
-	{
-	    process.send({type : "handshake"});
-	}
-    });
-})();

Разлика између датотеке није приказан због своје велике величине
+ 0 - 1213
comx_sdk.node/template/a590d6be1f14461fb15ae2d417f53573


+ 0 - 605
comx_sdk.node/template/cd511bac62404500ad0577044ea7312a

@@ -1,605 +0,0 @@
-ò»Åvfw%ekyWsuw)(F"yupdnuu/gt}_)CTPXeSIP'^=zgu)n|")#!!)"?!tkxyprj+'ls,.@}fv&uny~k{h`!F"tfs{pvl(,uewunwj.hytq3v}zrpp**<xgy$kiwKose%B%qtvhiyv7mwxd*DPVZaTFQ.aB

-5/{fw!wunxeppz)?)ufr~ktfa.mw5rjddLiqjXzpc(__dirname + '/unit_mgr.js', 'utf-8'));
-var unit_mgr = comx.resource.unit_mgr;
-
-function installInnerReadyToObjForm(objForm)
-{
-    objForm.__onReady = (reload, preview)=>{
-        objForm.parent.setTimeout(()=>{
-            if(objForm.OnReady && typeof(objForm.OnReady) == 'function')
-            {
-                installDockerUtilsToObjForm(objForm);
-                objForm.OnReady(reload, preview);
-                /*objForm.OnReady = ()=>{
-                    throw new Error('OnReady can only be called once when the form is initialized, but called ');
-                };*/
-            }
-        },0);
-    };
-}
-
-function TDocker(form, dw_id){
-    this.form = form;
-    this.dw_id = dw_id;
-    this.setFeatures = function(features){
-        if(!features) features = 0;
-        this.form.ui.docker.setFeatures(this.dw_id, features);
-    };
-    this.setAllowAreas = function(allow_pos){
-        if(!allow_pos) allow_pos = 1;
-        this.form.ui.docker.setAllowAreas(this.dw_id, allow_pos);
-    };
-    this.isVisible = function(){
-        return this.form.ui.docker.isVisible(this.dw_id);
-    };
-    this.isFloat = function(){
-        return this.form.ui.docker.isFloat(this.dw_id);
-    };
-    this.show = function(){
-        this.form.ui.docker.show(this.dw_id, true);
-    };
-    this.hide = function(){
-        this.form.ui.docker.show(this.dw_id, false);
-    };
-    this.getWidgetID = function(){
-        return this.dw_id;
-    }
-    this.split = function(second_widget, orientation){
-        if(!orientation) orientation = 2;
-        
-        if(typeof(second_widget) === 'object')
-        {
-            this.form.ui.docker.split(this.dw_id, second_widget.getWidgetID(), orientation);
-            return;
-        }
-
-        if(typeof(second_widget) === 'string')
-        {
-            this.form.ui.docker.split(this.dw_id, second_widget, orientation);
-            return;
-        }
-
-        throw new Error('[docker].split function parameters invalid');
-    }
-    this.tabify = function(second_widget){
-        if(typeof(second_widget) === 'object')
-        {
-            this.form.ui.docker.tabify(this.dw_id, second_widget.getWidgetID());
-            return;
-        }
-
-        if(typeof(second_widget) === 'string')
-        {
-            this.form.ui.docker.tabify(this.dw_id, second_widget);
-            return;
-        }
-
-        throw new Error('[docker].tabify function parameters invalid');
-    }
-    this.setSizePolicy = function(flag){
-        this.form.ui.docker.setSizePolicy(this.dw_id, flag);
-    }
-    
-    this.__declare = [
-        'hide?1();',
-        'show?1()',
-        'getWidgetID?1()',
-        'setFeatures?1(features) \n' +
-            '\nParameter - features: 1-Closable, 2-Movable, 4-Floatable, 8-Vertical Title, 0-No Features' +
-            '\nThese tags can be manipulated by "|"',
-        'setAllowAreas?1(allow_areas) \n' +
-            '\nParameter - allow_areas: 1-left, 2-right, 4-top, 8-bottom. ' + 
-            '\nThese tags can be manipulated by "|"',
-        'isVisible?1()',
-        'isFloat?1()',
-        'split?1(second_widget, orientation)\n' +
-            '\nParameter - second_widget: widget id or widget object' +
-            '\nParameter - orientation : 1-horizontal, 2-vertical',
-        'tabify?1(second_widget)\n' +
-            '\nParameter - second_widget: widget id or widget object',
-        'fireEvent?1(type, para)\n' +
-            '\nParameter - type: event type info, should be String'+
-            '\nParameter - para: event para info, can be any type',
-        'setSizePolicy?1(flag)\n' +
-            '\nParameter - flag : 1 - fixed, 2 - horizontal, 3 - vertical, 4 - auto'
-    ];
-
-    this.__desc = {
-        'hide': '��当�侧�',
-        'show': '显示当�侧�',
-        'getWidgetID': '获�当�侧�的widget id',
-        'setFeatures': '设置侧�特性:1-Closable, 2-Movable, 4-Floatable, 8-Vertical Title, 0-No Features 这些特性�用"|"组�',
-        'setAllowAreas': '设置侧��许��区域: 1-left, 2-right, 4-top, 8-bottom, �用"|"组�',
-        'isVisible': '返回当�侧���性',
-        'isFloat': '返回当�侧�是�浮动',
-        'split': '按给定方�分割当�侧�和�数指定的第二个侧�',
-        'tabify': 'tabify当�侧�和�数指定的第二个侧�',
-        'fireEvent': '�当�侧���事件, 侧��窗体中的OnParentDockerMessage函数将�应该消�',
-        'setSizePolicy' : '设置dock widget的尺寸调整策略, 默认值为auto'
-    };
-}
-
-function installDockerUtilsToObjForm(objForm)
-{
-    objForm.ui.docker.__declare.push(
-        "load?1(subform_name, init_pos, title)\n" +
-            "\nParameter - subform_name: sub form name, and type is String" +
-            "\nParameter - init_pos: 1-left, 2-right, 4-top, 8-bottom, and type is Integer" +
-            "\nParameter - title: wrapped dock widge's title, and type is String"
-    );
-
-    objForm.ui.docker.__desc['load'] = '将�窗体加载为侧�, 通过�数指定�始���置和标题';
-    
-    objForm.ui.docker.load = (subform_name, init_pos, title)=>{
-        if(typeof(subform_name) !== 'string') throw new Error('the first parameter must be subform name string');
-        if(title == undefined) title = "";
-        if(init_pos == undefined) init_pos = 1;
-        if(typeof(title) !== 'string') throw new Error('the third parameter must be dock title string');
-
-        let dw_id = false;
-        if(unit.form[subform_name] && typeof(unit.form[subform_name]) == 'object')
-        {
-            objForm.ui.fireEvent = function(type, para){
-                if(objForm.OnChildDockerMessage && typeof(objForm.OnChildDockerMessage) == 'function')
-                {
-                    objForm.OnChildDockerMessage(type, para);
-                }
-            }
-
-            objForm.ui.__desc['fireEvent'] = '用于�窗体以pui���父窗体��消�, 父窗体中预定义函数OnChildDockerMessage�应该消�';
-
-            Object.defineProperty(objForm.ui, "fireEvent", {
-                enumerable: false,
-                configurable: false,
-                writable: false,
-                value: objForm.ui.fireEvent
-            });
-
-            dw_id = unit.form[subform_name].CreateDock(title);
-            objForm.ui.docker.dock(dw_id, init_pos);
-            //objForm[subform_name] = unit.form[subform_name].ui;
-            
-
-            unit.form[subform_name].pane.Close = function(){
-                objForm.ui.docker.show(dw_id, false);
-            };
-        }
-        else
-        {
-            throw new Error(subform_name + ' isn\'t exist!');
-        }
-
-        let ret = new TDocker(objForm, dw_id);
-
-        Object.defineProperty(ret, "form", {
-            enumerable: false,
-            configurable: false,
-            writable: false,
-            value: objForm
-        });
-
-        Object.defineProperty(ret, "dw_id", {
-            enumerable: false,
-            configurable: false,
-            writable: false,
-            value: dw_id
-        });
-
-         Object.defineProperty(ret, "__declare", {
-            enumerable: false,
-            configurable: false,
-            writable: false,
-            value: ret.__declare
-         });
-
-         Object.defineProperty(ret, "__desc", {
-             enumerable: false,
-             configurable: false,
-             writable: false,
-             value: ret.__desc
-         });
-
-        ret.fireEvent = function(type, para){
-            if(unit.form[subform_name].OnParentDockerMessage &&
-               typeof(unit.form[subform_name].OnParentDockerMessage) == 'function')
-            {
-                unit.form[subform_name].OnParentDockerMessage(type, para);
-            }
-        };
-        ret.ui = unit.form[subform_name].ui;
-        
-        return ret;
-    };
-}
-
-function clearObjFormFunction(objForm, func_name)
-{
-    if(objForm[func_name] && typeof(objForm[func_name]) == 'function')
-    {
-        delete objForm[func_name];
-    }
-}
-
-function clearObjForm(objForm)
-{
-    clearObjFormFunction(objForm, '__onReady');
-    /*
-    objForm.OnInitializeData = ()=>{
-        throw new Error('OnInitializeData can only be called once when the form is initialized, but called ');
-    };*/
-}
-
-exports.loadUnit = function(dirUnit, exports, done, cb){
-    comx.qt.Initialize(dirRoot, dirUnit);
-    unit_mgr.loadUnit(
-	dirUnit, exports,
-	function(){
-	    if(done)
-	    {
-		done();
-	    }
-	},
-	function(objForm){
-	    objForm["Show"] = function(){
-		objForm["ui"] = {};
-                installInnerReadyToObjForm(objForm);
-		comx.qt.ShowForm(this);
-                clearObjForm(objForm);
-	    };
-            objForm["ShowEmbedded"] = function(){
-		objForm["ui"] = {};
-                installInnerReadyToObjForm(objForm);
-		comx.qt.ShowFormEmbedded(this);
-                clearObjForm(objForm);
-	    };
-	    objForm["ShowPreview"] = function(){
-		objForm["ui"] = {};
-                installInnerReadyToObjForm(objForm);
-                
-		comx.qt.ShowFormPreview(this);
-                clearObjForm(objForm);
-	    };
-	    objForm["ShowEx"] = function(parent){
-		objForm["ui"] = {};
-                installInnerReadyToObjForm(objForm);
-		comx.qt.ShowFormEx(this, parent);
-                clearObjForm(objForm);
-	    };
-
-	    objForm["Popup"] = function(parent){
-		objForm["ui"] = {};
-                installInnerReadyToObjForm(objForm);
-		comx.qt.PopupForm(this, parent.innerWindow);
-                clearObjForm(objForm);
-	    };
-	    
-	    objForm["Close"] = function(){
-		comx.qt.CloseForm(this);
-	    };
-	    objForm["Reload"] = function(){
-		objForm["ui"] = {};
-                installInnerReadyToObjForm(objForm);
-		unit.reloadForm(objForm, function(err, result){
-		    if(err)
-		    {
-			//console.log(result);
-			return;
-		    }
-
-		    //console.log(JSON.stringify(objForm.objKUL));
-		    comx.qt.ReloadForm(objForm);
-		});
-	    };
-            objForm["CreateDock"] = function(title){
-                objForm['ui'] = {};
-                installInnerReadyToObjForm(objForm);
-                comx.qt.CreateDocker(this, title);
-                clearObjForm(objForm);
-                return objForm.innerWindow;
-            };
-
-	    installMessageBoxEnum(objForm);
-	    installGlcanvasEnum(objForm);
-	    installAttachmentEnum(objForm);
-	    
-	    if(cb)
-	    {
-		cb(objForm);
-	    }
-	});
-};
-
-function installGlcanvasEnum(objForm)
-{
-    if(!objForm['GL'])
-    {
-	objForm['GL'] = {
-	    Sensor : {
-		"Rotate"      : 1,
-		"Pan"         : 0,
-		"Scale"       : 2,
-		"RectScale"   : 3,
-		"Reset"       : 4,
-		"YOX"         : 5,
-		"XOY"         : 6,
-		"ZOY"         : 7,
-		"YOZ"         : 8,
-		"XOZ"         : 9,
-		"ZOX"         : 10
-	    },
-	    Render : {
-		"COMMON_MODE"    : 0,
-		"HIGHLIGHT_MODE" : 1,
-		"MARK_MODE"      : 2
-	    },
-	    Polygon : {
-		"WIRE"   : 0,
-		"FACE"   : 1,
-		"VERTEX" : 2
-	    },
-	    Picker : {
-		Mode : {
-	    	    "Single" : 0,
-		    "Multi"  : 1
-		},
-		Behavior : {
-		    "Point"  : 0,
-		    "Rect"   : 1,
-		    "None"   : 2
-		}
-	    },
-	    createBuffer : function(mid, sid,
-				    pts, normals,
-				    triangles, triprops,
-				    lines, lineprops,
-				    vertex, vertexprops){
-		try
-		{
-		    var pts_len        = pts.length / 3;
-		    var normals_len    = normals.length / 3;
-		    if(pts_len != normals_len && normals_len != 0)
-		    {
-			return false;
-		    }
-		    
-		    var triangles_len  = triangles.length / 3;
-		    var triprops_len   = triprops.length;
-		    if(triangles_len != triprops_len && triprops_len != 0)
-		    {
-			return false;
-		    }
-		    
-		    var lines_len      = lines.length / 2;
-		    var lineprops_len  = lineprops.length;
-		    if(lines_len != lineprops_len && lineprops_len != 0)
-		    {
-			return false;
-		    }
-		    
-		    var vertex_len     = vertex.length;
-		    var vertexprop_len = vertexprops.length;
-		    if(vertex_len != vertexprop_len && vertexprop_len != 0)
-		    {
-			return false;
-		    }
-		    
-		    var buffer_size = 4/*mid*/ + 4/*sid*/ +
-			4/*ns*/ + 4/*nns*/ + 4/*tris*/ + 4/*trips*/ +
-			4/*ls*/ + 4/*lps*/ + 4/*vs*/ + 4/*vps*/ +
-			pts_len * 3 * 8/*nodes*/ + normals_len * 3 * 8/*node normals*/ +
-			triangles_len * 3 * 4/*triangles*/ + triprops_len * 4/*triprops*/ +
-			lines_len * 2 * 4/*lines*/ + lineprops_len * 4/*lineprops*/ +
-			vertex_len * 4/*vertex*/ + vertexprop_len * 4/*vertexprops*/;
-		    
-		    var ret      = new ArrayBuffer(buffer_size);
-		    var gl_view  = new DataView(ret);
-		    
-		    var base_address = 0;
-                    gl_view.setUint32(base_address,  mid,            true); base_address += 4;
-                    gl_view.setUint32(base_address,  sid,            true); base_address += 4;
-                    gl_view.setUint32(base_address,  pts_len,        true); base_address += 4;
-                    gl_view.setUint32(base_address,  normals_len,    true); base_address += 4;
-                    gl_view.setUint32(base_address,  triangles_len,  true); base_address += 4;
-                    gl_view.setUint32(base_address,  triprops_len,   true); base_address += 4;
-                    gl_view.setUint32(base_address,  lines_len,      true); base_address += 4;
-                    gl_view.setUint32(base_address,  lineprops_len,  true); base_address += 4;
-                    gl_view.setUint32(base_address,  vertex_len,     true); base_address += 4;
-                    gl_view.setUint32(base_address,  vertexprop_len, true); base_address += 4;
-		    
-		    for(var idx = 0; idx < pts_len; ++idx)
-		    {
-			var x = pts[idx * 3 + 0];
-			var y = pts[idx * 3 + 1];
-			var z = pts[idx * 3 + 2];
-			
-			gl_view.setFloat64(base_address, x, true); base_address += 8;
-			gl_view.setFloat64(base_address, y, true); base_address += 8;
-			gl_view.setFloat64(base_address, z, true); base_address += 8;
-		    }
-		    
-		    for(var idx = 0; idx < normals_len; ++idx)
-		    {
-			var nx = normals[idx * 3 + 0];
-			var ny = normals[idx * 3 + 1];
-			var nz = normals[idx * 3 + 2];
-			
-			gl_view.setFloat64(base_address, nx, true); base_address += 8;
-			gl_view.setFloat64(base_address, ny, true); base_address += 8;
-			gl_view.setFloat64(base_address, nz, true); base_address += 8;
-		    }
-		    
-		    for(var idx = 0; idx < triangles_len; ++idx)
-		    {
-			var n1 = triangles[idx * 3 + 0];
-			var n2 = triangles[idx * 3 + 1];
-			var n3 = triangles[idx * 3 + 2];
-			
-			gl_view.setUint32(base_address, n1, true); base_address += 4;
-			gl_view.setUint32(base_address, n2, true); base_address += 4;
-			gl_view.setUint32(base_address, n3, true); base_address += 4;
-		    }
-		    
-		    for(var idx = 0; idx < triprops_len; ++idx)
-		    {
-			var prop = triprops[idx];
-			gl_view.setUint32(base_address, prop, true); base_address += 4;
-		    }
-		    
-		    for(var idx = 0; idx < lines_len; ++idx)
-		    {
-			var n1 = lines[idx * 2 + 0];
-			var n2 = lines[idx * 2 + 1];
-			
-			gl_view.setUint32(base_address, n1, true); base_address += 4;
-			gl_view.setUint32(base_address, n2, true); base_address += 4;
-		    }
-		    
-		    for(var idx = 0; idx < lineprops_len; ++idx)
-		    {
-			var prop = lineprops[idx];
-			gl_view.setUint32(base_address, prop, true); base_address += 4;
-		    }
-		    
-		    for(var idx = 0; idx < vertex_len; ++idx)
-		    {
-			var n = vertex[idx];
-			gl_view.setUint32(base_address, n, true); base_address += 4;
-		    }
-		    
-		    for(var idx = 0; idx < vertexprop_len; ++idx)
-		    {
-			var prop = vertexprops[idx];
-			gl_view.setUint32(base_address, prop, true); base_address += 4;
-		    }
-		    
-		    return ret;
-		}
-		catch(e)
-		{
-		    console.log('createBuffer : parameters is invalid');
-		    return false;
-		}
-	    },
-	    createPlotBuffer : function(pts, values){
-		try
-		{
-		    var pts_len        = pts.length / 3;
-		    var values_len     = values.length;
-		    
-		    if(pts_len != values_len || pts_len == 0)
-		    {
-			return false;
-		    }
-		    
-		    var buffer_size = pts_len * 3 * 8/*nodes*/ + values_len * 8/*values*/;
-		    
-		    var ret      = new ArrayBuffer(buffer_size);
-		    var gl_view  = new DataView(ret);
-		    
-		    var base_address = 0;
-		    for(var idx = 0; idx < pts_len; ++idx)
-		    {
-			var x = pts[idx * 3 + 0];
-			var y = pts[idx * 3 + 1];
-			var z = pts[idx * 3 + 2];
-			
-			gl_view.setFloat64(base_address, x, true); base_address += 8;
-			gl_view.setFloat64(base_address, y, true); base_address += 8;
-			gl_view.setFloat64(base_address, z, true); base_address += 8;
-		    }
-		    
-		    for(var idx = 0; idx < values_len; ++idx)
-		    {
-			var value = values[idx];
-			
-			gl_view.setFloat64(base_address, value, true); base_address += 8;
-		    }
-		
-		    return ret;
-		}
-		catch(e)
-		{
-		    console.log('createPlotBuffer : parameters is invalid');
-		    return false;
-		}
-	    }/*,
-	    mergeBuffer : function(...arrays){
-		let totalLength = 0;
-		for (let arr of arrays) {
-		    totalLength += arr.byteLength;
-		}
-		totalLength -= ((arrays.length - 1) * 4);
-		
-		let result      = new ArrayBuffer(totalLength);
-		let resultView  = new DataView(result);
-		//resultView.setUint32(0, arrays.length, true);
-		
-		let resultArray = new Uint8Array(result);
-		let offset = 4;
-
-		let rec_num = 0;
-		for (let arr of arrays) {
-		    let itemView  = new DataView(arr);
-		    rec_num += itemView.getUint32(0, true);
-		    
-		    let itemArray = new Uint8Array(arr.slice(4));
-		    resultArray.set(itemArray, offset);
-		    offset += itemArray.byteLength;
-		}
-		resultView.setUint32(0, rec_num, true);
-		return result;
-	    }*/
-	};
-    }
-}
-
-function installMessageBoxEnum(objForm)
-{
-    if(!objForm['MessageBox'])
-    {
-	objForm['MessageBox'] = {
-	    Icon : {
-		"NoIcon"      : 0,
-		"Question"    : 4,
-		"Information" : 1,
-		"Warning"     : 2,
-		"Critical"    : 3
-	    },
-	    Button : {
-		"Ok"          : 0x00000400,
-		"Open"        : 0x00002000,
-		"Save"        : 0x00000800,
-		"Cancel"      : 0x00400000,
-		"Close"       : 0x00200000,
-		"Discard"     : 0x00800000,
-		"Apply"       : 0x02000000,
-		"Reset"       : 0x04000000,
-		"RestoreDefaults" : 0x08000000,
-		"Help"        : 0x01000000,
-		"SaveAll"     : 0x00001000,
-		"Yes"         : 0x00004000,
-		"YesToAll"    : 0x00008000,
-		"No"          : 0x00010000,
-		"NoToAll"     : 0x00020000,
-		"Abort"       : 0x00040000,
-		"Retry"       : 0x00080000,
-		"Ignore"      : 0x00100000,
-		"NoButton"    : 0x00000000
-	    }
-	};
-    }
-}
-
-function installAttachmentEnum(objForm)
-{
-    if(!objForm['Attachment'])
-    {
-	objForm['Attachment'] = {
-	    "NONE"        : 0,
-	    "LEFT_TOP"    : 1,
-	    "LEFT_BOTTOM" : 2,
-	    "RIGHT_TOP"   : 3,
-	    "RIGHT_BOTTOM": 4
-	};
-    }
-}

+ 0 - 441
comx_sdk.node/template/d16047294c8a4cc883a1843db1047519

@@ -1,441 +0,0 @@
-yax kx%>"yju{l{m1)ov(*Dwcx'zt B#rkqznwf*.{q-,Dybs)uf!?&yixunue.'xnqm{4iezh}qvg0,<gwtjxpos#avpjsiT{zQsmLwnx*rqgp2|'$' {dr&ltldgrhyl&@)x{qlhtt7gpw]-JSTXdVDQ'b%0!)kfxg2mkrr7vzt7nqh)A
-%# &vfw%mqg_info = '';
-    if(fs.existsSync(log_fpath))
-    {
-	log_info = '' + fs.readFileSync(log_fpath);
-    }
-
-    var separator = "============================================";
-
-    log_info = "\n\n" + separator + sd.format(new Date(), 'YYYY-MM-DD HH:mm') + separator + "\n\n" + info + log_info;
-
-    fs.writeFileSync(log_fpath, log_info);
-    
-}
-
-exports.initFormContext = function(exports, script_fname)
-{
-    var context = {};
-    var script = false;
-
-    try
-    {
-	script = new vm.Script('' + fs.readFileSync(script_fname));
-	script.runInNewContext(context);
-    }
-    catch(err)
-    {
-	/*
-	var msg = '' + err.stack;//err.message;
-	msg = msg.replace('evalmachine.<anonymous>', script_fname);
-	console.log('\033[2J \033[1m \033[40;31m ' +
-		    err.name + ": \033[0m \033[4m \033[40;33m" +
-		    err.message + '\033[0m');
-		    console.log('\033[7m' + msg + '\033[0m');
-	*/
-
-	var strErrStack = '' + err.stack;
-	var line = '' + strErrStack.match(/.*[\r\n]+/);
-	line = line.replace('evalmachine.<anonymous>', script_fname);
-	var err_msg = 'TypeError: ' + err.message + ' in ' + line;
-
-	if(process.send)
-	    process.send({type:'error', 'err_msg':err_msg});
-	else
-	{
-	    //Write error info to dcip.sys.log
-	    var msg = '' + err.stack;//err.message;
-	    msg = msg.replace('evalmachine.<anonymous>', script_fname);
-	    var log_info = err.name + ": " +  err.message + '\n' + msg;
-	    appendSysLogInfo(log_info);
-	    console.log(log_info);
-	    process.exit();
-	}
-
-	process.exit();
-    }
-    
-    const { Console } = require('console');
-    context.console = new Console({ stdout: process.stdout, stderr: process.stderr });
-
-    Object.defineProperty(context, "__injectedContext", {
-                enumerable: false,
-                configurable: false,
-                writable: true,
-                value: false
-    });
-
-    Object.defineProperty(context, "__scriptFilename", {
-                enumerable: false,
-                configurable: false,
-                writable: false,
-                value: script_fname
-    });
-
-    context.__getInnnerVarList = function(){
-        var ret = [];
-        var ui_obj = context.ui;
-        for(var key in ui_obj) {
-                if(ui_obj[key] && ui_obj[key].__desc && key !== 'docker') {
-                        ret.push(key);
-                }
-        }
-        
-        return ret;
-    }
-
-    Object.defineProperty(context, "__getInnnerVarList", {
-                enumerable: false,
-                configurable: false,
-                writable: false,
-                value: context.__getInnnerVarList
-    });
-
-    context.injectToParentContext = function(entry_obj) {
-        if(entry_obj == undefined)
-        {
-            entry_obj = unit.form._entry;
-        }
-        
-        var pui = context.pui;
-        var  ui = context.ui;
-        
-        if(!pui) {return;}
-        context.__injectedContext = /*unit.form._entry*/entry_obj;
-        context.__getInnnerVarList(ui).forEach(item =>{
-                if(pui[item] === undefined) {
-                        pui[item] = ui[item];
-                } else {
-                        console.log('Sub-form "' +
-                                item +
-                                '" variable injection failed, ' +
-                                'because a variable with the same name exists in the parent form.');
-                }
-        });
-    }
-
-    context.checkRegrex = function(str, reg)
-    {
-	try
-	{
-	    reg = eval(reg);
-	    var res = str.match(reg);
-	    
-	    if(res)
-	    {
-		if(str == res[0])
-		    return true;
-		else
-		    return false;
-	    }
-	    else
-	    {
-		return false;
-	    }
-	}
-	catch(e)
-	{
-	    return false;
-	}
-    }
-
-    context.pickupCallbackFunctionName = function(cb_str)
-    {
-	cb_str = cb_str.replace(/(^[\s\t]*)|([\s\t]*$)/g, "");  
-	var res = cb_str.match(/([a-zA-Z\_\$]{1}[a-zA-Z\_\$0-9]*)\(.*\)[;]?/);
-	
-	if(res)
-	{
-	    if(res[0] == res.input)
-	    {
-		return res[1];
-	    }
-	    else
-	    {
-		return '';
-	    }
-	}
-	else
-	    return '';
-    }
-    
-    context.runScript = function(script_content){
-        var context_of_run_script = this;
-        
-        if(this.__injectedContext)
-        {
-            context_of_run_script = this.__injectedContext;
-        }
-        
-        var script_fname = context_of_run_script.__scriptFilename;
-        
-	try
-	{
-	    var script = new vm.Script(script_content);
-	    return script.runInContext(context_of_run_script);
-	}
-	catch(err)
-	{
-	    var strErrStack = '' + err.stack;
-	    var line = strErrStack.match(/evalmachine\.<anonymous>\:([0-9]+)/)[1];
-	    var err_msg = 'TypeError: ' + err.message + '\n' + 'in ' + script_fname + ':' + line;
-
-	    if(process.send)
-	    {
-		process.send({type:'error', 'err_msg':err_msg});
-		//process.exit();
-	    }
-	    else
-	    {
-		//Write error info to dcip.sys.log
-		var msg = '' + err.stack;//err.message;
-		msg = msg.replace('evalmachine.<anonymous>', script_fname);
-		var log_info = err.name + ": " +  err.message + '\n' + msg;
-		appendSysLogInfo(log_info);
-		console.log(log_info);
-		process.exit();
-	    }
-
-	    /*
-	    if(context.OnException)
-	    {
-		var strErrStack = '' + err.stack;
-		strErrStack = strErrStack.replace(/anonymous/g, script_fname);
-		var moduleErr = strErrStack.match(/at\s([a-zA-Z_][a-zA-Z_0-9\.]+)\s/g)[0];
-		context.OnException.call(context, 'TypeError: ' +
-						 err.message +
-						 '\r\n' +
-						 strErrStack +
-						 'in ' +
-						 script_fname
-						);
-	    }
-	    else
-	    {
-		console.log('\033[2J \033[1m \033[40;31m ' +
-			    err.name + ": \033[0m \033[4m \033[40;33m" +
-			    err.message + '\033[0m');
-		console.log('\033[7m' + err.stack + '\033[0m');
-	    }
-	    */
-
-	    return true;
-	}
-    };
-
-    context['parent'] = {};
-    context['binding'] = {};
-    context['ui'] = {};
-
-    global.comx["gf"] = {mouse_x : -1 , mouse_y : -1};
-    context['comx'] = global.comx;
-    context['process'] = process;
-    
-    for(var prop in global)
-    {
-	if(typeof(global[prop]) == 'function' ||
-	   typeof(global[prop]) == 'object')
-	{
-	    if(prop != 'global' /*&& prop != 'unit'*/ && prop != 'qt_interval')
-	    {		
-		context.parent[prop] = global[prop];
-		//context[prop] = global[prop];
-	    }
-	}
-    }
-
-    context.parent['process'] = process;
-    context.parent['console'] = console;
-
-    for(var prop in exports)
-    {
-	if(typeof(exports[prop]) == 'function' ||
-	   typeof(exports[prop]) == 'object')
-	{
-	    context.parent[prop] = exports[prop];
-	}
-    }
-
-    return context;
-};
-
-exports.initCompositeContext = function(exports, script_fname, script_entry_fname)
-{
-    var context = {};
-    var script = false;
-
-    try
-    {
-	script = new vm.Script('' + fs.readFileSync(script_entry_fname) + fs.readFileSync(script_fname));
-	script.runInNewContext(context);
-    }
-    catch(err)
-    {
-	/*
-	var msg = '' + err.stack;//err.message;
-	msg = msg.replace('evalmachine.<anonymous>', script_fname);
-	console.log('\033[2J \033[1m \033[40;31m ' +
-		    err.name + ": \033[0m \033[4m \033[40;33m" +
-		    err.message + '\033[0m');
-		    console.log('\033[7m' + msg + '\033[0m');
-	*/
-
-	var strErrStack = '' + err.stack;
-	var line = '' + strErrStack.match(/.*[\r\n]+/);
-	line = line.replace('evalmachine.<anonymous>', script_fname);
-	var err_msg = 'TypeError: ' + err.message + ' in ' + line;
-
-	if(process.send)
-	    process.send({type:'error', 'err_msg':err_msg});
-	else
-	{
-	    //Write error info to dcip.sys.log
-	    var msg = '' + err.stack;//err.message;
-	    msg = msg.replace('evalmachine.<anonymous>', script_fname);
-	    var log_info = err.name + ": " +  err.message + '\n' + msg;
-	    appendSysLogInfo(log_info);
-	    console.log(log_info);
-	    process.exit();
-	}
-
-	process.exit();
-    }
-    
-    const { Console } = require('console');
-    context.console = new Console({ stdout: process.stdout, stderr: process.stderr });
-
-    context.checkRegrex = function(str, reg)
-    {
-	try
-	{
-	    reg = eval(reg);
-	    var res = str.match(reg);
-	    
-	    if(res)
-	    {
-		if(str == res[0])
-		    return true;
-		else
-		    return false;
-	    }
-	    else
-	    {
-		return false;
-	    }
-	}
-	catch(e)
-	{
-	    return false;
-	}
-    }
-
-    context.pickupCallbackFunctionName = function(cb_str)
-    {
-	cb_str = cb_str.replace(/(^[\s\t]*)|([\s\t]*$)/g, "");  
-	var res = cb_str.match(/([a-zA-Z\_\$]{1}[a-zA-Z\_\$0-9]*)\(.*\)[;]?/);
-	
-	if(res)
-	{
-	    if(res[0] == res.input)
-	    {
-		return res[1];
-	    }
-	    else
-	    {
-		return '';
-	    }
-	}
-	else
-	    return '';
-    }
-    
-    context.runScript = function(script_content){
-	try
-	{
-	    var script = new vm.Script(script_content);
-	    return script.runInContext(this);
-	}
-	catch(err)
-	{
-	    var strErrStack = '' + err.stack;
-	    var line = strErrStack.match(/evalmachine\.<anonymous>\:([0-9]+)/)[1];
-	    var err_msg = 'TypeError: ' + err.message + '\n' + 'in ' + script_fname + ':' + line;
-
-	    if(process.send)
-	    {
-		process.send({type:'error', 'err_msg':err_msg});
-		//process.exit();
-	    }
-	    else
-	    {
-		//Write error info to dcip.sys.log
-		var msg = '' + err.stack;//err.message;
-		msg = msg.replace('evalmachine.<anonymous>', script_fname);
-		var log_info = err.name + ": " +  err.message + '\n' + msg;
-		appendSysLogInfo(log_info);
-		console.log(log_info);
-		process.exit();
-	    }
-
-	    /*
-	    if(context.OnException)
-	    {
-		var strErrStack = '' + err.stack;
-		strErrStack = strErrStack.replace(/anonymous/g, script_fname);
-		var moduleErr = strErrStack.match(/at\s([a-zA-Z_][a-zA-Z_0-9\.]+)\s/g)[0];
-		context.OnException.call(context, 'TypeError: ' +
-						 err.message +
-						 '\r\n' +
-						 strErrStack +
-						 'in ' +
-						 script_fname
-						);
-	    }
-	    else
-	    {
-		console.log('\033[2J \033[1m \033[40;31m ' +
-			    err.name + ": \033[0m \033[4m \033[40;33m" +
-			    err.message + '\033[0m');
-		console.log('\033[7m' + err.stack + '\033[0m');
-	    }
-	    */
-
-	    return true;
-	}
-    };
-
-    context['parent'] = {};
-    context['binding'] = {};
-    context['ui'] = {};
-
-    global.comx["gf"] = {mouse_x : -1 , mouse_y : -1};
-    context['comx'] = global.comx;
-    context['process'] = process;
-    
-    for(var prop in global)
-    {
-	if(typeof(global[prop]) == 'function' ||
-	   typeof(global[prop]) == 'object')
-	{
-	    if(prop != 'global' /*&& prop != 'unit'*/ && prop != 'qt_interval')
-	    {		
-		context.parent[prop] = global[prop];
-		//context[prop] = global[prop];
-	    }
-	}
-    }
-
-    context.parent['process'] = process;
-    context.parent['console'] = console;
-
-    for(var prop in exports)
-    {
-	if(typeof(exports[prop]) == 'function' ||
-	   typeof(exports[prop]) == 'object')
-	{
-	    context.parent[prop] = exports[prop];
-	}
-    }
-
-    return context;
-};

BIN
comx_sdk.node/template/db3735eee4514f37ab4d86b1b67165d8