"processorShowData": function() {
                //定义所有数据
                var allData = null;
                //请求当前alias数据
                var _queryData = this.queryData();
                var _metadata = this.handleMetaDataBefore(_queryData.data);
                var _data = this.handleDataBefore(_queryData.data, _metadata);

                allData = {
                    alias: this.param.alias,
                    data: _data,
                    orgData: _queryData,
                    metadata: _metadata
                };
                //本gadget数据
                //--头部描述区显示数据
                var _titileData = _queryData.data.cmsmetadata.displayName;
                var _listBtnData = FW.use().evalJSON(window.systemCtx.listButton);
                if (window.customized && window.customized[_metadata.alias] && window.customized[_metadata.alias].listButton) {
                    _listBtnData = FW.use().evalJSON(window.customized[_metadata.alias].listButton);
                }

                allData.titleData = _titileData;
                allData.btnData = _listBtnData;
                return allData;
            }
Beispiel #2
0
 "save2file": function() {
     //将内存对象转换成文本
     var resultText = FW.use().toJSONString(this.MY.data);
     //将文本保存到文件
     this.MY.fileSelect.saveFile(resultText);
     FW.alert("保存文件成功");
 },
Beispiel #3
0
        testMoke_ok: function() { 
			//模拟桩
			Cfg={baseUrl: ""};
            FW.use().getParameter = function(){
				return "my";
			}
			FW.doServer = function(sn,pkg,param,callback,thisObj,url){
				JSTest.assertEquals("testGadget", param.gadgetName, "发请求的gadget名字是否正确");
				JSTest.assertEquals("testMethod", param.funName, "发请求的method名字是否正确");
				JSTest.assertEquals(0, param.input.length, "发请求的input是否正确");
				return {
					code:0,
					data:{
						testGadget:{
							testMethod:{
								isMoke:true,
								"return":111
							}
						}
					}
				}
			}
			
			//测试正常发送
			var gadget = "testGadget";
			var method = "testMethod";
			var callbackArr = null;
			var input = null;
			var result = FW.pgMoke(gadget,method,callbackArr,input);
			JSTest.assertEquals(true, result.isMoke, "处理结果是否是模拟");
			JSTest.assertEquals("111", result["return"], "处理结果值是否正确");
        },
Beispiel #4
0
            "saveAddNew": function(type) {
                var cfgApp = this.MY.configObj[type];
                var data = cfgApp.getCfgSetting(".modal-body");

                if (data) {
                    $("[info-id='" + type + "']").val(FW.use().toJSONString(data));
                }
                $("#mask-modal").remove();
                $("[attr-mask='show']").remove();
            }
Beispiel #5
0
		testMoke_multCallBack: function() { 
			//模拟桩
			Cfg={baseUrl: ""};
            FW.use().getParameter = function(){
				return "my";
			}
			FW.doServer = function(sn,pkg,param,callback,thisObj,url){
				JSTest.assertEquals("testGadget", param.gadgetName, "发请求的gadget名字是否正确");
				JSTest.assertEquals("testMethod", param.funName, "发请求的method名字是否正确");
				JSTest.assertEquals(0, param.input.length, "发请求的input是否正确");
				return {
					code:0,
					data:{
						testGadget:{
							testMethod:{
								isMoke:true,
								"return":111,
								"callback":{
									c0:[
									   [1,2]
									],
									c1:[
									   [3,4],
									   [5,6]
									]
								}
							}
						}
					}
				}
			}
			
			//测试正常发送
			var gadget = "testGadget";
			var method = "testMethod";
			var cbra = [];
			var callbackArr = [function(a,b){
				cbra.push(a);
				cbra.push(b);
			},function(a,b){
				cbra.push(a);
				cbra.push(b);
			}];
			var input = null;
			var result = FW.pgMoke(gadget,method,callbackArr,input);
			JSTest.assertEquals(true, result.isMoke, "处理结果是否是模拟");
			JSTest.assertEquals("111", result["return"], "处理结果值是否正确");
			JSTest.assertEquals(6, cbra.length, "回调结果长度");
			JSTest.assertEquals(1, cbra[0], "回调结果每个元素");
			JSTest.assertEquals(2, cbra[1], "回调结果每个元素");
			JSTest.assertEquals(3, cbra[2], "回调结果每个元素");
			JSTest.assertEquals(4, cbra[3], "回调结果每个元素");
			JSTest.assertEquals(5, cbra[4], "回调结果每个元素");
			JSTest.assertEquals(6, cbra[5], "回调结果每个元素");
        },
Beispiel #6
0
            "showSequenceFromUrl": function() {
                //获取url参数
                var fileUrl = FW.use().getParameter("fileUrl");
                //block(代码块){构造文件对象读取对象
                var text = null;
                //if (传入的url不为空){获取文件信息
                if (fileUrl != null) {
                    //读取文件
                    var fileArr = fileUrl.split("/");
                    var fileName = fileArr.pop();
                    var fileDir = "/" + fileArr.join("/");
                    this.MY.fileSelect.setFileName(fileName);
                    this.MY.fileSelect.setPath(fileDir);
                    text = this.MY.fileSelect.queryFileContent();
                    //2015-08-10 12:05 FrankCheng 修改显示名称为中文
                    fileName = fileName.replace(/@/ig,"%");

                    $("#aliasTitle").html("[" + decodeURI(fileName.replace(/@/ig,"%")) + "]");
                }
                //}
                //else{就是url不存在了,要退货
                else {
                    //退出
                    alert("文件地址为空");
                    return;
                }
                //}
                //if(文件本身不存在){读取默认文件
                if (text == null) {
                    //重新设置文件
                    var dfileArr = this.param.fileUrl.split("/");
                    var dfileName = dfileArr.pop();
                    var dfileDir = "/" + dfileArr.join("/");
                    this.MY.fileSelect.setFileName(dfileName);
                    this.MY.fileSelect.setPath(dfileDir);
                    text = this.MY.fileSelect.queryFileContent();
                    //文件设置复位,便于后续保存
                    this.MY.fileSelect.setFileName(fileName);
                    this.MY.fileSelect.setPath(fileDir);
                }
                //}
                //if (文件还是为空){这说明出错了
                if (text == null) {
                    //alert错误并退出
                    alert("文件读取失败");
                    return;
                }
                //}
                //}
                //解析文本内容
                this.API.private('contructData', text);
                //显示到页面上
                this.API.private('showGraph');
            },
Beispiel #7
0
 "showPageFromUrl": function() {
     //获取url参数
     var fileUrl = FW.use().getParameter("fileUrl");
     //block(代码块){构造文件对象读取对象
     var text = null;
     //if (传入的url不为空){获取文件信息
     if (fileUrl != null) {
         //读取文件
         var fileArr = fileUrl.split("/");
         var fileName = fileArr.pop();
         var fileDir = "/" + fileArr.join("/");
         this.MY.fileSelect.setFileName(fileName);
         this.MY.fileSelect.setPath(fileDir);
         text = this.MY.fileSelect.queryFileContent();
         $("#aliasTitle").html("[" + fileName + "]");
     }
     //}
     //else{就是url不存在了,要退货
     else {
         //退出
         alert("文件地址为空");
         return;
     }
     //}
     //if(文件本身不存在){读取默认文件
     if (text == null) {
         //重新设置文件
         var dfileArr = this.param.fileUrl.split("/");
         var dfileName = dfileArr.pop();
         var dfileDir = "/" + dfileArr.join("/");
         this.MY.fileSelect.setFileName(dfileName);
         this.MY.fileSelect.setPath(dfileDir);
         text = this.MY.fileSelect.queryFileContent();
         //文件设置复位,便于后续保存
         this.MY.fileSelect.setFileName(fileName);
         this.MY.fileSelect.setPath(fileDir);
     }
     //}
     //if (文件还是为空){这说明出错了
     if (text == null) {
         //alert错误并退出
         alert("文件读取失败");
         return;
     }
     //}
     //}
     //调用contructHtmlText去解析结构
     this.API.private('contructCssText', text);
     //调用showStruct去将内容显示到页面上
     this.API.private('showOneCss');
 }
Beispiel #8
0
 "getTypeDecorateEditData": function(metadata, data) {
     if (!metadata) {
         alert("Info_Decorate描述数据不可以为空!");
         return;
     }
     var _type = this.gadgetName.replace("_Decorate", "");
     data = data ? FW.use().evalJSON(data) : null;
     var _data = {
         metadata: metadata,
         data: data,
         appId: this.id
     };
     //获取所有gadget对象查看是否有配置信息
     _data.cfgList = [];
     _data.cfgData = {};
     
     this.MY.configObj = {};
     var gadgets = FW.getGadget();
     for (var n in gadgets) {
         oneGadget = gadgets[n];
         if (oneGadget["public"] && oneGadget["public"].getCfgInfo) {
             if (oneGadget["public"].getCfgInfo()) {
                 var appObj = FW.createApp(n, n, this);
                 var cfgObj = appObj.getCfgInfo();
                 appObj.configCtr = this;
                 _data.cfgList.push(cfgObj);
                 this.MY.configObj[cfgObj.sig] = appObj;
                 var settingData = _data.data&&_data.data[cfgObj.sig];
                 _data.cfgData[cfgObj.sig] = settingData?FW.use().toJSONString(settingData):"";
                 appObj.cfgData = settingData;
             }
         }
     }
     this.MY.data = _data && _data.data;
     return this.API.show("Info_Decorate", _data, "_");
 },
Beispiel #9
0
 "onCreate": function() {
     //创建文件对象
     var pageParam = {
         id: 'fileselect',
         dom: this.dom,
         param: {
             viewid: null
         },
         //实际的参数
         view: {}
         //实际的视图内容
     }
     this.MY.fileSelect = FW.createApp("fileselect", "fileselect", pageParam);
     var fileUrl = FW.use().getParameter("fileUrl");
     //读取文件
     this.load4file(fileUrl);
 },
 "processingData": function(data) {
     var CMSMgrDefaultListFilterDecorate = null;
     //筛选位置数据
     if (data.orgData.data.cmsmetadata.dataMemo && data.orgData.data.cmsmetadata.dataMemo.aliasCfg && data.orgData.data.cmsmetadata.dataMemo.aliasCfg.filterSet) {
         CMSMgrDefaultListFilterDecorate = {
             data: FW.use().evalJSON(data.orgData.data.cmsmetadata.dataMemo.aliasCfg.filterSet),
             selectData: FW.getApp("CMSMgrControl").param.queryParam
         };
     }
     //进一步处理
     var _data = {};
     _data.filterData = CMSMgrDefaultListFilterDecorate && CMSMgrDefaultListFilterDecorate.data;
     _data.selectData = CMSMgrDefaultListFilterDecorate && CMSMgrDefaultListFilterDecorate.selectData;
     //2015年10月31日11:06:01 FrankCheng 添加描述数据 用于制作时间域选择
     if (data.metadata && CMSMgrDefaultListFilterDecorate != void 0){
     	_data.metadata = data.metadata;
     }
     return CMSMgrDefaultListFilterDecorate && CMSMgrDefaultListFilterDecorate.data ? _data: null;
 }
Beispiel #11
0
 "showGraph": function() {
     //block(块){构造graph对象
     _this = this;
     this.API.show(this.param.graphview);
     var graphwidth = $("#" + this.param.graphcontainer).css("width");
     var graph = FW.use("Graph").createGraph(this.API.find("#" + this.param.graphcontainer)[0], graphwidth, this.param.graphheight);
     //}
     //block(块){画对象和生命线
     //--所有图形对象不必记录到全局
     //--每个图形对象自己带上序号,被点击后使用
     //获取总层数
     //--从序列图的实际连线的数量可获取到,count*2+1就是实际总层数
     var deep = this.MY.data.line.length * 2 + 1;
     //设定每个对象的总空间
     //--这个空间包括对象和对象之间的空隙
     var roomWidth = 200;
     //设定每个矩形的宽度和高度
     var oneObjWidth = 100;
     var oneObjHeitht = 50;
     //设定对象矩形形状
     var objShape = FW.use("Graph").Shapes.getRect(oneObjWidth, oneObjHeitht, true, {
         "onclick": function(p, n) {
             _this.API.private('showNodeEdit', n.data);
         }
     });
     //设定生命线矩形形状
     var lifeWidht = 6;
     var lifeHeight = 40;
     var lifeShape = FW.use("Graph").Shapes.getRect(lifeWidht, lifeHeight);
     //for (每一个对象){
     //--从this.MY.data中获取,结构参见文件说明
     var allLifeArr = {};
     for (var i = 0; i < this.MY.data.node.length; i++) {
         //画出当前对象矩形
         //--难度在计算矩形的位置,利用前面的总空间和矩形宽度计算
         //--矩形内容要增加成员id(表示对象索引)
         var x = i * roomWidth + (roomWidth - oneObjWidth) / 2;
         var y = 10;
         var text = this.MY.data.node[i].name;
         var node = graph.createNode(text, objShape, x, y, "#4444ff");
         node.id = i;
         node.data = this.MY.data.node[i];
         allLifeArr[this.MY.data.node[i].name] = [];
         //画出矩形下的生命线
         //--循环一下就可以,循环数量为层数
         //--每个生命线,增加成员id(表示第几个对象),deep(表示第几层)
         for (var j = 0; j < deep; j++) {
             var xx = x + (oneObjWidth - lifeWidht) / 2;
             var yy = j * lifeHeight + oneObjHeitht + 10;
             var life = graph.createNode(null, lifeShape, xx, yy, "#660000");
             life.id = i;
             life.deep = j;
             allLifeArr[this.MY.data.node[i].name][j] = life;
         }
     }
     //}
     //}
     //block(块){画序列箭头
     //block(块){画实际线
     //for (所有的线){
     for (var i = 0; i < this.MY.data.line.length; i++) {
         //计算要画的层
         //--因为是间隔开的,所以要画线的索引就是i*2+1
         var dDeep = i * 2 + 1;
         //获取要画的起始和终止节点
         var oneLineInfo = this.MY.data.line[i];
         var sNode = allLifeArr[oneLineInfo.start][dDeep];
         var eNode = allLifeArr[oneLineInfo.end][dDeep];
         //画线
         //--记得带箭头,实线
         var dText = oneLineInfo.dtype + ":" + oneLineInfo.desc;
         var lineObj = graph.createEdge(dText, sNode, eNode, null, false, true, "black"); (function(_i, _oneLineInfo) {
             lineObj.addEvent({
                 onclick: function(p, l) {
                     _this.API.private('showLineEdit', _i, _oneLineInfo);
                 }
             });
         })(i, oneLineInfo);
     }
     //}
     //}
     //block(块){画虚拟线
     //for (遍历所有层,步长是2){画线
     for (var i = 0; i < this.MY.data.line.length + 1; i++) {
         var sNode = null;
         //for(遍历所有对象){
         for (var n in allLifeArr) {
             if (sNode == null) {
                 sNode = allLifeArr[n][i * 2];
                 continue;
             }
             var eNode = allLifeArr[n][i * 2];
             var lineObj = graph.createEdge(dText, sNode, eNode, null, true, false, "#dddddd"); (function(_i) {
                 lineObj.addEvent({
                     onclick: function() {
                         var newOne = {
                             start: _this.MY.data.node[0].name,
                             end: _this.MY.data.node[1].name,
                             dtype: "新增加",
                             desc: "在第[" + (_i + 1) + "]序列,增加新连线"
                         }
                         _this.MY.data.line.splice(_i, 0, newOne);
                         _this.API.private('showLineEdit', _i, newOne);
                     }
                 });
             })(i);
             sNode = eNode;
         }
         //}
     }
     //}
     //}
     //}
 },