You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

996 lines
38 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* An 'interface' for undoable actions, implemented by classes that specify
* how to handle action
*
*
* @this {FigureCreateCommand}
* @constructor
* @param {Function} factoryFunction - the function that will create the {Figure}. It will be local copy (of original pointer)
* @param {Number} x - the x coordinates
* @param {Number} y - the x coordinates
* @author Alex <alex@scriptoid.com>
* @author Artyom Pokatilov <artyom.pokatilov@gmail.com>
*/
function FigureCreateCommand(factoryFunction, x, y) {
this.oType = 'FigureCreateCommand';
/**Any sequence of many mergeable actions can be packed by the history*/
this.mergeable = false;
this.factoryFunction = factoryFunction;
this.x = x;
this.y = y;
this.firstExecute = true;
this.figureId = null;
}
FigureCreateCommand.prototype = {
/**This method got called every time the Command must execute*/
execute: function () {
if (createFigureName == "FlowChart" || createFigureName == "ThreadDtl" || createFigureName == "SubFlowDtl" || createFigureName == "FrmCheck") {
var funIsExist = this.IsExist;
var isExit = funIsExist(createFigureName);
if (isExit == true) {
$.messager.alert("错误", "@已存在ID为(" + createFigureName + ")的元素,不允许添加同名元素!", "error");
return false;
}
}
if (this.firstExecute) {
var canAddFigure = true; //是否拖上去之后,就立刻创建?
//create figure
var createdFigure = this.factoryFunction(this.x, this.y);
//CCForm private Property
createdFigure.CCForm_Shape = createFigureName;
//move it into position
createdFigure.transform(Matrix.translationMatrix(this.x - createdFigure.rotationCoords[0].x, this.y - createdFigure.rotationCoords[0].y))
createdFigure.style.lineWidth = defaultLineWidth;
//ccflow business logic
switch (createFigureName) {
case CCForm_Controls.Image:
canAddFigure = false;
this.DataImgCreate(createdFigure, this.x, this.y);
//createdFigure.CCForm_MyPK = Util.NewGUID();
break;
case CCForm_Controls.Label:
case CCForm_Controls.Button:
createdFigure.CCForm_MyPK = Util.NewGUID();
this.ButtonCreate(createdFigure, this.x, this.y);
break;
case CCForm_Controls.HyperLink:
createdFigure.CCForm_MyPK = Util.NewGUID();
this.HyperLinkCreate(createdFigure, this.x, this.y);
break;
case CCForm_Controls.TextBox:
case CCForm_Controls.TextBoxInt:
case CCForm_Controls.TextBoxFloat:
case CCForm_Controls.TextBoxMoney:
case CCForm_Controls.Date:
case CCForm_Controls.DateTime:
case CCForm_Controls.CheckBox:
//case "HandSiganture":
canAddFigure = false;
this.DataFieldCreate(createdFigure, this.x, this.y);
break;
case CCForm_Controls.ListBox:
case CCForm_Controls.HiddendField:
alert('目前还没有对{' + createFigureName + '}提供该控件的支持.');
return;
case CCForm_Controls.DropDownListEnum: //枚举类型.
canAddFigure = false; // 需要弹出对话框创建.
this.RadioButtonCreate(createdFigure, this.x, this.y, 'DDL');
break;
case CCForm_Controls.RadioButton:
canAddFigure = false; // 需要弹出对话框创建.
this.RadioButtonCreate(createdFigure, this.x, this.y, 'RB');
break;
case CCForm_Controls.DropDownListTable: //枚举类型.
canAddFigure = false; // 需要弹出对话框创建.
this.DropDownListTableCreate(createdFigure, this.x, this.y);
break;
case "Fieldset":
case "HandSiganture":
case "iFrame":
case CCForm_Controls.Dtl: //明细表.
case CCForm_Controls.AthMulti: //多附件.
case CCForm_Controls.AthSingle: //单附件.
case CCForm_Controls.AthImg: //图片附件. 以上控件都是用通用的 No,Name 数据框.
canAddFigure = false; // 需要弹出对话框创建.
this.PublicNoNameCtrlCreate(createdFigure, this.x, this.y, createFigureName);
break;
case "CheckGroup":
alert('该功能没有实现' + createFigureName + ' 需要连续创建三个字段.');
break;
//case CCForm_Controls.FrmCheck: //审核组件
//case CCForm_Controls.FrmCheck: // 审核组件.
//case CCForm_Controls.FlowChart: //轨迹图.
//case CCForm_Controls.SubFlowDtl: //子流程.
//case CCForm_Controls.ThreadDtl: //子线城.
case "FrmCheck": // 审核组件.
case "FlowChart": //轨迹图.
case "SubFlowDtl": //子流程.
case "ThreadDtl": //子线城.
// alert(createFigureName);
// if (funIsExist(createFigureName) == true) {
// //$.messager.alert("错误", "已存在ID为(" + frmVal.KeyOfEn + ")的元素,不允许添加同名元素!", "error");
// // alert('该控件已经存在' + createFigureName);
// return;
// }
//名称都是独立的.
createdFigure.CCForm_MyPK = createFigureName;
this.FlowFieldCreate(createdFigure, this.x, this.y, createFigureName);
break;
default: //按照通用的接受编号,名称的方式来创建.
alert('没有判断的控件类型{' + createFigureName + '},或者该功能为实现。');
return;
}
if (canAddFigure == true) {
//store id for later use
//TODO: maybe we should try to recreate it with same ID (in case further undo will recreate objects linked to this)
this.figureId = createdFigure.id;
//add to STACK
STACK.figureAdd(createdFigure);
//make this the selected figure
selectedFigureId = createdFigure.id;
//set up it's editor
setUpEditPanel(createdFigure);
//move to figure selected state
state = STATE_FIGURE_SELECTED;
}
this.firstExecute = false;
}
else { //redo
throw "Not implemented";
}
},
ButtonCreate: function (createdFigure, x, y) {
// 定义参数,让其保存到数据库里。
var btn = new Entity("BP.Sys.FrmBtn");
btn.MyPK = createdFigure.CCForm_MyPK;
btn.FK_MapData = CCForm_FK_MapData;
btn.Lab = "Btn";
btn.EventType = 2;
btn.EventContext = "";
btn.X = x;
btn.Y = y;
btn.Insert();
},
HyperLinkCreate: function (createdFigure, x, y) {
// 定义参数,让其保存到数据库里。
var frmLink = new Entity("BP.Sys.FrmLink");
frmLink.MyPK = createdFigure.CCForm_MyPK;
frmLink.FK_MapData = CCForm_FK_MapData;
frmLink.Target = "_blank";
frmLink.Lab = '我的超链接';
frmLink.X = x;
frmLink.Y = y;
frmLink.Insert();
},
DataImgCreate: function (createdFigure, x, y) {
var dgId = "iframeImage";
var url = "DialogCtr/FrmImage.htm?DataType=" + createFigureName + "&s=" + Math.random();
var funIsExist = this.IsExist;
OpenEasyUiDialog(url, dgId, '新建图片字段', 600, 394, 'icon-new', true, function () {
var win = document.getElementById(dgId).contentWindow;
var frmVal = win.GetFrmInfo();
if (frmVal.Name == null || frmVal.Name.length == 0) {
$.messager.alert('错误', '字段名称不能为空。', 'error');
return false;
}
if (frmVal.KeyOfEn == null || frmVal.KeyOfEn.length == 0) {
$.messager.alert('错误', '英文字段不能为空。', 'error');
return false;
}
//判断主键是否存在
var isExit = funIsExist(frmVal.KeyOfEn);
if (isExit == true) {
$.messager.alert("错误", "已存在ID为(" + frmVal.KeyOfEn + ")的元素,不允许添加同名元素!", "error");
return false;
}
// //根据信息创建不同类型的数字控件
var transField = new TransFormDataField(createdFigure, frmVal, x, y);
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_CCFormDesigner");
handler.AddPara("FrmID", CCForm_FK_MapData);
handler.AddPara("KeyOfEn", frmVal.KeyOfEn);
handler.AddPara("Name", frmVal.Name);
handler.AddPara("x", x);
handler.AddPara("y", y);
var data = handler.DoMethodReturnString("NewImage");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
alert('创建成功.');
transField.paint();
}, null);
return false;
},
/**创建数据字段**/
DataFieldCreate: function (createdFigure, x, y) {
var dgId = "iframeTextBox";
var url = "DialogCtr/FrmTextBox.htm?DataType=" + createFigureName + "&s=" + Math.random();
// alert(mapData.PTableModel);
//如果不允许自定义字段.
if (mapData.PTableModel == "2") {
url = "DialogCtr/FrmTextBoxChoseOneField.htm?FK_MapData=" + mapData.No + "&DataType=" + createFigureName + "&M=" + Math.random();
}
// alert(url);
var funIsExist = this.IsExist;
OpenEasyUiDialog(url, dgId, '新建文本字段', 600, 394, 'icon-new', true, function (HidenFieldFun) {
var win = document.getElementById(dgId).contentWindow;
var frmVal = win.GetFrmInfo();
if (frmVal.Name == null || frmVal.Name.length == 0) {
$.messager.alert('错误', '字段名称不能为空。', 'error');
return false;
}
if (frmVal.KeyOfEn == null || frmVal.KeyOfEn.length == 0) {
$.messager.alert('错误', '英文字段不能为空。', 'error');
return false;
}
//判断主键是否存在
var isExit = funIsExist(frmVal.KeyOfEn);
if (isExit == true) {
$.messager.alert("错误", "已存在ID为(" + frmVal.KeyOfEn + ")的元素,不允许添加同名元素!", "error");
return false;
}
//控件数据类型
if (frmVal.FieldType == "1") {
createdFigure.CCForm_Shape = "TextBoxStr";
} else if (frmVal.FieldType == "2") {
createdFigure.CCForm_Shape = "TextBoxInt";
} else if (frmVal.FieldType == "3") {
createdFigure.CCForm_Shape = "TextBoxFloat";
} else if (frmVal.FieldType == "4") {
createdFigure.CCForm_Shape = "TextBoxBoolean";
} else if (frmVal.FieldType == "5") {
createdFigure.CCForm_Shape = "TextBoxDouble";
} else if (frmVal.FieldType == "6") {
createdFigure.CCForm_Shape = "TextBoxDate";
} else if (frmVal.FieldType == "7") {
createdFigure.CCForm_Shape = "TextBoxDateTime";
} else if (frmVal.FieldType == "8") {
createdFigure.CCForm_Shape = "TextBoxMoney";
}
//如果为隐藏字段
if (frmVal.IsHidenField == true) {
HidenFieldFun(frmVal,x,y);
} else {
//根据信息创建不同类型的数字控件
var transField = new TransFormDataField(createdFigure, frmVal, x, y);
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_CCFormDesigner");
handler.AddPara("FrmID", CCForm_FK_MapData);
handler.AddPara("KeyOfEn", frmVal.KeyOfEn);
handler.AddPara("Name", frmVal.Name);
handler.AddPara("FieldType", frmVal.FieldType);
handler.AddPara("x", x);
handler.AddPara("y", y);
var data = handler.DoMethodReturnString("NewField");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
transField.paint();
}
}, this.HidenFieldCreate);
return false;
},
/**创建单选按钮**/
RadioButtonCreate: function (createdFigure, x, y, dotype) {
var dgId = "iframeRadioButton";
//var url = "DialogCtr/FrmEnumeration.htm?DataType=&s=" + Math.random();
var pTableModel = mapData.PTableModel;
var url = "DialogCtr/FrmEnumeration.htm?PTableModel=" + pTableModel + "&FK_MapData=" + mapData.No + "&s=" + Math.random();
var funIsExist = this.IsExist;
var lab = '单选按钮枚举值';
if (dotype == 'DDL')
lab = '下拉框枚举值';
OpenEasyUiDialog(url, dgId, lab, 650, 394, 'icon-new', true, function () {
var win = document.getElementById(dgId).contentWindow;
var frmVal = win.GetFrmInfo();
if (frmVal.Name == null || frmVal.Name.length == 0) {
$.messager.alert('错误', '字段名称不能为空。', 'error');
return false;
}
if (frmVal.KeyOfEn == null || frmVal.KeyOfEn.length == 0) {
$.messager.alert('错误', '英文字段不能为空。', 'error');
return false;
}
//判断主键是否存在
var isExit = funIsExist(frmVal.KeyOfEn);
if (isExit == true) {
$.messager.alert("错误", "@已存在ID为(" + frmVal.KeyOfEn + ")的元素,不允许添加同名元素!", "error");
return false;
}
if (dotype == "DDL")
createdFigure.CCForm_Shape = "DropDownListEnum";
else
createdFigure.CCForm_Shape = "RadioButton";
//根据信息创建不同类型的数字控件.
var transField = new TransFormDataField(createdFigure, frmVal, x, y);
// 定义参数,让其保存到数据库里。
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_CCFormDesigner");
handler.AddPara("FK_MapData", CCForm_FK_MapData);
handler.AddPara("KeyOfEn", frmVal.KeyOfEn);
handler.AddPara("Name", frmVal.Name);
handler.AddPara("UIBindKey", frmVal.UIBindKey);
handler.AddPara("CtrlDoType", dotype);
handler.AddPara("x", x);
handler.AddPara("y", y);
var data = handler.DoMethodReturnString("FrmEnumeration_NewEnumField");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
try {
//开始画这个 - 元素.
transField.paint();
} catch (e) {
alert('画元素错误:' + e);
}
}, null);
return false;
},
/**通用的No,Name 明细表,多附件,单附件 存储**/
PublicNoNameCtrlCreate: function (createdFigure, x, y, ctrlType) {
var dgId = "iframeRadioButton";
var url = "DialogCtr/PublicNoNameCtrlCreate.htm?FrmID=" + CCForm_FK_MapData + "&CtrlType=" + ctrlType + "&s=" + Math.random();
var funIsExist = this.IsExist;
var lab = '创建从表';
var note = '<ul>';
switch (ctrlType) {
case "Dtl":
lab = "创建从表";
break;
case "Fieldset":
lab = "创建分组";
break;
case "AthMulti":
lab = "创建多附件";
break;
case "AthSingle":
lab = "创建单附件";
break;
case "AthImg":
lab = "创建图片附件";
break;
case "HandSiganture":
lab = "签字板";
break;
case "iFrame":
lab = "框架";
break;
default:
alert('没有判断的控件类型PublicNoNameCtrlCreate:' + ctrlType);
return;
}
OpenEasyUiDialog(url, dgId, lab, 650, 394, 'icon-new', true, function () {
var win = document.getElementById(dgId).contentWindow;
var frmVal = win.GetFrmInfo();
if (frmVal.Name == null || frmVal.Name.length == 0) {
$.messager.alert('错误', '名称不能为空。', 'error');
return false;
}
if (frmVal.No == null || frmVal.No.length == 0) {
$.messager.alert('错误', '编号不能为空。', 'error');
return false;
}
//秦 18.11.16
if (!CheckID(frmVal.No)) {
alert("编号不符合规则");
return false;
}
//判断主键是否存在?
var isExit = funIsExist(frmVal.No);
if (isExit == true) {
$.messager.alert("错误", "@已存在ID为(" + frmVal.No + ")的元素,不允许添加同名元素!", "error");
return false;
}
createdFigure.CCForm_Shape = ctrlType;
//根据信息创建不同类型的数字控件.
var transField = new TransFormDataField(createdFigure, frmVal, x, y);
// 定义参数,让其保存到数据库里。
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_CCFormDesigner");
handler.AddPara("CtrlType", ctrlType);
handler.AddPara("FK_MapData", CCForm_FK_MapData);
handler.AddPara("Name", frmVal.Name);
handler.AddPara("No", frmVal.No);
handler.AddPara("x", x);
handler.AddPara("y", y);
var data = handler.DoMethodReturnString("PublicNoNameCtrlCreate");
if (data == "true") {
try {
//开始画这个 - 元素.
transField.paint();
} catch (e) {
alert(e);
}
} else {
Designer_ShowMsg(data);
}
alert('创建成功.');
//transField.paint();
}, null);
return false;
},
/**创建外部数据源下拉框**/
DropDownListTableCreate: function (createdFigure, x, y) {
var dgId = "iframeRadioButton";
//var url = "DialogCtr/FrmTable.htm?DataType=&s=" + Math.random();
var pTableModel = mapData.PTableModel;
var url = './../FoolFormDesigner/SFList.htm?FK_MapData=' + CCForm_FK_MapData + '&From=FreeFrm&PTableModel=' + pTableModel;
var funIsExist = this.IsExist;
var lab = '外键表字段';
OpenEasyUiDialog(url, dgId, lab, 950, 550, 'icon-new', true, function () {
var win = document.getElementById(dgId).contentWindow;
var frmVal = win.GetFrmInfo();
if (frmVal.Name == null || frmVal.Name.length == 0) {
$.messager.alert('错误', '字段名称不能为空。', 'error');
return false;
}
if (frmVal.KeyOfEn == null || frmVal.KeyOfEn.length == 0) {
$.messager.alert('错误', '英文字段不能为空。', 'error');
return false;
}
//判断主键是否存在
var isExit = funIsExist(frmVal.KeyOfEn);
if (isExit == true) {
$.messager.alert("错误", "@已存在ID为(" + frmVal.KeyOfEn + ")的元素,不允许添加同名元素!", "error");
return false;
}
createdFigure.CCForm_Shape = "DropDownListTable";
//根据信息创建不同类型的数字控件.
var transField = new TransFormDataField(createdFigure, frmVal, x, y);
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_CCFormDesigner");
handler.AddPara("FK_MapData", CCForm_FK_MapData);
handler.AddPara("KeyOfEn", frmVal.KeyOfEn);
handler.AddPara("Name", frmVal.Name);
handler.AddPara("UIBindKey", frmVal.UIBindKey);
handler.AddPara("x", x);
handler.AddPara("y", y);
var data = handler.DoMethodReturnString("NewSFTableField");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
try {
//开始画这个 - 元素.
transField.paint();
} catch (e) {
alert('画元素失败');
alert(e);
}
}, null);
return false;
},
/**创建隐藏字段**/
HidenFieldCreate: function (frmVal,x,y) {
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_CCFormDesigner");
handler.AddPara("FrmID", CCForm_FK_MapData);
handler.AddPara("KeyOfEn", frmVal.KeyOfEn);
handler.AddPara("Name", frmVal.Name);
handler.AddPara("FieldType", frmVal.FieldType);
handler.AddPara("x", x);
handler.AddPara("y", y);
var data = handler.DoMethodReturnString("NewHidF");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
},
IsExist: function (MyPK) {
var flag = false;
for (f in STACK.figures) {
if (STACK.figures[f].CCForm_MyPK == MyPK || STACK.figures[f].CCForm_MyPK.indexOf("RB_" + MyPK + "_")!=-1) {
flag = true;
break;
}
}
return flag;
},
/**This method should be called every time the Command should be undone*/
undo: function () {
// if current figure is in text editing state
if (state == STATE_TEXT_EDITING) {
// remove current text editor
currentTextEditor.destroy();
currentTextEditor = null;
}
//remove it from container (if belongs to one)
var containerId = CONTAINER_MANAGER.getContainerForFigure(this.figureId);
if (containerId !== -1) {
CONTAINER_MANAGER.removeFigure(containerId, this.figureId);
}
//remove figure
STACK.figureRemoveById(this.figureId);
//change state
state = STATE_NONE;
// set properties panel to canvas because current figure doesn't exist anymore
setUpEditPanel(canvasProps);
},
/**创建流程控件 杨玉慧**/
FlowFieldCreate: function (createdFigure, x, y, createFigureName) {
//判断主键是否存在?
createdFigure.CCForm_Shape = createFigureName;
var frmVal = { Name: createFigureName, No: createFigureName }
switch (createFigureName) {
case "FrmCheck": // 审核组件.
frmVal.Name = "审核组件";
break;
case "FlowChart": //轨迹图.
frmVal.Name = "轨迹图";
break;
case "SubFlowDtl": //子流程.
frmVal.Name = "子流程";
break;
case "ThreadDtl": //子线程.
frmVal.Name = "子线程组件";
break;
case "FrmTransferCustom": //流转自定义.
frmVal.Name = "流转自定义";
break;
default:
alert('未定义类型:' + createFigureName);
return;
}
//根据信息创建不同类型的数字控件.
var transField = new TransFormDataField(createdFigure, frmVal, x, y);
// 定义参数,让其保存到数据库里。
var param = {
action: "PublicNoNameCtrlCreate",
CtrlType: createFigureName,
FK_MapData: CCForm_FK_MapData,
Name: frmVal.Name,
No: frmVal.No,
x: x,
y: y
};
transField.paint();
return false;
}
}
/**数据字段处理
**图片Image
**生成Label
**/
function TransFormDataField(newfigure, frmVal, x, y) {
this.figure = newfigure;
this.dataArrary = frmVal;
this.x = x;
this.y = y;
}
/*
* 绘制图形.
*/
TransFormDataField.prototype = {
/** 画输出控件 **/
paint: function () {
var createdFigure = this.figure;
//把主键给他.
if (this.dataArrary.KeyOfEn != null)
createdFigure.CCForm_MyPK = this.dataArrary.KeyOfEn;
if (this.dataArrary.No != null && createdFigure.CCForm_Shape != "iFrame")
createdFigure.CCForm_MyPK = this.dataArrary.No;
if(createdFigure.CCForm_Shape == "iFrame")
createdFigure.CCForm_MyPK =CCForm_FK_MapData+"_"+this.dataArrary.No;
//添加到Figures
//add to STACK
STACK.figureAdd(createdFigure);
//add property 增加属性.
createdFigure = this.Transform();
//change text //设置控件上的ID文本.
var figureText = STACK.figuresTextPrimitiveGetByFigureId(createdFigure.id);
if (figureText != null && createdFigure.CCForm_Shape == "TextBoxBoolean") {//除了复选框其余的都不写TEXT
if (this.dataArrary.Name != null)
figureText.setTextStr(this.dataArrary.Name);
//if (this.dataArrary.No != null)
// figureText.setTextStr(this.dataArrary.No);
} //创建标签
this.LabelCreateForFigure();
draw();
if (createdFigure.CCForm_Shape == "RadioButton") {
var rbArr = this.dataArrary.Vals.slice(1).split("@");
var s = [];
for (var i = 0; i < rbArr.length; i++) {
s.push("RB_" + this.dataArrary.UIBindKey + "_" + rbArr[i]);
}
for (var k = 0; k < s.length; k++) {
if (this.dataArrary.UIBindKey != null) {
createdFigure.CCForm_MyPK = s[k];
}
this.y += 24;
STACK.figureAdd(createdFigure);
if (createdFigure.name == "Label") {
createdFigure = this.Transform();
}
var figureText = STACK.figuresTextPrimitiveGetByFigureId(createdFigure.id);
if (figureText != null) {
if (this.dataArrary.KeyOfEn != null)
figureText.setTextStr(this.dataArrary.KeyOfEn);
this.LabelCreateForFigure();
draw();
}
}
}
},
/**根据控件类型,生成不同控件描述 and propertys**/
Transform: function () {
var createdFigure = this.figure;
var propertys = CCForm_Control_Propertys.TextBox_Str;
var shap_src = null;
// if(createdFigure.CCForm_Shape == "HandSiganture")
// shap_src = "/DataView/TextBoxStr.png";
// else
if (createdFigure.CCForm_Shape == "Image")
shap_src = "/basic/TempleteFile.png";
else
shap_src = "/DataView/" + createdFigure.CCForm_Shape + ".png";
// alert(shap_src);
// alert(shap_src);
// alert(figureSetsURL);
// alert(figureSetsURL + shap_src);
propertys = CCForm_Control_Propertys[createdFigure.CCForm_Shape];
var defaultProVals = CCForm_Control_DefaultPro[createdFigure.CCForm_Shape];
//shap image
if (createdFigure.CCForm_Shape != "RadioButton") {
var imageFrame = STACK.figuresImagePrimitiveGetByFigureId(createdFigure.id);
if (imageFrame != null) {
//alert(figureSetsURL + shap_src);
imageFrame.setUrl(figureSetsURL + shap_src);
//设置宽高
imageFrame.frameWidth = defaultProVals.DefaultWidth;
imageFrame.frameHeight = defaultProVals.DefaultHeight;
}
}
// alert(figureSetsURL + shap_src);
var ctrlLab = '控件属性';
switch (createdFigure.CCForm_Shape) {
case "Dtl":
ctrlLab = '从表/明细表属性';
break;
case "AthMulti":
ctrlLab = '多附件属性';
break;
case "AthSingle":
ctrlLab = '单附件属性';
break;
case "TextBoxStr":
ctrlLab = '控件属性-文本框';
break;
case "FlowChart":
ctrlLab = '控件属性-轨迹图';
case "ThreadDtl":
ctrlLab = '控件属性-子线程';
case "SubFlowDtl":
ctrlLab = '控件属性-子流程';
case "FrmCheck":
ctrlLab = '控件属性-审核组件';
default:
ctrlLab = '控件属性' + createdFigure.CCForm_Shape;
break;
}
//push property
createdFigure.properties.push(new BuilderProperty(ctrlLab, 'group', BuilderProperty.TYPE_GROUP_LABEL));
createdFigure.properties.push(new BuilderProperty(BuilderProperty.SEPARATOR));
for (var i = 0; i < propertys.length; i++) {
var defVal = propertys[i].DefVal ? propertys[i].DefVal : "";
switch (defVal) {
case "No": // 编号
defVal = this.dataArrary.No;
break;
case "Name": // 名称
defVal = this.dataArrary.Name;
break;
case "FieldText": // 字段中文名
defVal = this.dataArrary.Name;
break;
case "KeyOfEn": // 字段名.
if (createdFigure.CCForm_Shape == "RadioButton") {
this.dataArrary.KeyOfEn = "";
}
defVal = this.dataArrary.KeyOfEn;
break;
case "UIBindKey": // 绑定的外键.
defVal = this.dataArrary.UIBindKey;
break;
default:
break;
}
//替换系统值
defVal = this.DealExp(defVal);
//增加一个属性, 放到属性面板里.
createdFigure.properties.push(new BuilderProperty(propertys[i].ProText, propertys[i].proName, propertys[i].ProType, defVal));
}
return createdFigure;
},
/**创建控件对应的标签**/
LabelCreateForFigure: function () {
var defaultVals = CCForm_Control_DefaultPro[this.figure.CCForm_Shape];
var x = this.x - defaultVals.DefaultWidth / 2;
var y = this.y; //- defaultVals.DefaultHeight / 2;
//计算位移
var moveX = (this.dataArrary.Name.length * 12);
x = x - moveX;
y = y - 15;
//假如X,Y <5px 会靠边看不到设置为5px;
if (x < 0) {
x = 5;
}
if (y < 0) {
y = 5;
}
//create
var createdFigure;
//checkbox 不需要加LABEL
if (this.figure.CCForm_Shape != "TextBoxBoolean") {
createdFigure = figure_Label(x, y);
createdFigure.CCForm_MyPK = Util.NewGUID();
createdFigure.CCForm_Shape = CCForm_Controls.Label;
//store id for later use
//TODO: maybe we should try to recreate it with same ID (in case further undo will recreate objects linked to this)
this.figureId = createdFigure.id;
//add to STACK
STACK.figureAdd(createdFigure);
//make this the selected figure
selectedFigureId = createdFigure.id;
//set up it's editor
setUpEditPanel(createdFigure);
}
//move to figure selected state
state = STATE_FIGURE_SELECTED;
//change text
figureText = STACK.figuresTextPrimitiveGetByFigureId(selectedFigureId);
if (figureText != null) {
if (this.figure.CCForm_Shape == "RadioButton") {
figureText.setTextStr(" * " + this.figure.CCForm_MyPK.split("=")[1]);
createdFigure.CCForm_MyPK = this.figure.CCForm_MyPK.split("=")[0];
if (figureText.str == " * undefined") {
figureText.setTextStr(this.dataArrary.Name);
createdFigure.CCForm_MyPK = Util.NewGUID();
} else {
createdFigure.CCForm_Shape = this.figure.CCForm_Shape;
var propertys = CCForm_Control_Propertys.TextBox_Str;
propertys = CCForm_Control_Propertys[createdFigure.CCForm_Shape];
var ctrlLab = '控件属性';
switch (createdFigure.CCForm_Shape) {
case "Dtl":
ctrlLab = '从表/明细表属性';
break;
case "AthMulti":
ctrlLab = '多附件属性';
break;
case "AthSingle":
ctrlLab = '单附件属性';
break;
case "TextBoxStr":
ctrlLab = '控件属性-文本框';
break;
default:
ctrlLab = '控件属性' + createdFigure.CCForm_Shape;
break;
}
//push property
createdFigure.properties
.push(new BuilderProperty(ctrlLab, 'group', BuilderProperty.TYPE_GROUP_LABEL));
createdFigure.properties.push(new BuilderProperty(BuilderProperty.SEPARATOR));
for (var i = 0; i < propertys.length; i++) {
var defVal = propertys[i].DefVal ? propertys[i].DefVal : "";
switch (defVal) {
case "No": // 编号
defVal = this.dataArrary.No;
break;
case "Name": // 名称
defVal = this.dataArrary.Name;
break;
case "FieldText": // 字段中文名
defVal = this.dataArrary.Name;
break;
case "KeyOfEn": // 字段名.
if (createdFigure.CCForm_Shape == "RadioButton") {
this.dataArrary.KeyOfEn = "";
}
defVal = this.dataArrary.KeyOfEn;
break;
case "UIBindKey": // 绑定的外键.
defVal = this.dataArrary.UIBindKey;
break;
default:
break;
}
//替换系统值
defVal = this.DealExp(defVal);
//增加一个属性, 放到属性面板里.
createdFigure.properties
.push(new BuilderProperty(propertys[i].ProText,
propertys[i].proName,
propertys[i].ProType,
defVal));
}
}
} else {
figureText.setTextStr(this.dataArrary.Name);
}
}
},
/**替换系统表达式值**/
DealExp: function (expString) {
try {
expString = expString.replace(/@FrmID@/g, CCForm_FK_MapData);
if (this.dataArrary.No != null) {
expString = expString.replace(/@KeyOfEn@/g, this.dataArrary.No);
expString = expString.replace(/@No@/g, this.dataArrary.No);
}
if (this.dataArrary.KeyOfEn != null) {
expString = expString.replace(/@KeyOfEn@/g, this.dataArrary.KeyOfEn);
expString = expString.replace(/@No@/g, this.dataArrary.KeyOfEn);
}
} catch (e) {
}
return expString;
}
}
function CrateRB(createdFigure, dataArrary) {
//把主键给他.
if (this.dataArrary.KeyOfEn != null)
createdFigure.CCForm_MyPK = this.dataArrary.KeyOfEn;
if (this.dataArrary.No != null)
createdFigure.CCForm_MyPK = this.dataArrary.No;
//添加到Figures
//add to STACK
STACK.figureAdd(createdFigure);
//add property 增加属性.
createdFigure = this.Transform();
//change text //设置控件上的ID文本.
var figureText = STACK.figuresTextPrimitiveGetByFigureId(createdFigure.id);
if (figureText != null) {
if (this.dataArrary.KeyOfEn != null)
figureText.setTextStr(this.dataArrary.KeyOfEn);
if (this.dataArrary.No != null)
figureText.setTextStr(this.dataArrary.No);
}
//创建标签
this.LabelCreateForFigure();
draw();
}