| 1 |
- MWF.xApplication.process.FormDesigner.Module=MWF.xApplication.process.FormDesigner.Module||{};MWF.xDesktop.requireApp("process.FormDesigner","Module.$Container",null,false);MWF.xApplication.process.FormDesigner.Module.Table$Td=MWF.FCTable$Td=new Class({Extends:MWF.FC$Container,Implements:[Options,Events],options:{style:"default",propertyPath:"/x_component_process_FormDesigner/Module/Table$Td/table$td.html",actions:[{name:"insertRow",icon:"insertRow1.png",event:"click",action:"insertRow",title:MWF.APPFD.LP.formAction.insertRow},{name:"insertCol",icon:"insertCol1.png",event:"click",action:"insertCol",title:MWF.APPFD.LP.formAction.insertCol},{name:"deleteRow",icon:"deleteRow1.png",event:"click",action:"deleteRow",title:MWF.APPFD.LP.formAction.deleteRow},{name:"deleteCol",icon:"deleteCol1.png",event:"click",action:"deleteCol",title:MWF.APPFD.LP.formAction.deleteCol},{name:"splitCell",icon:"splitCell.png",event:"click",action:"splitCell",title:MWF.APPFD.LP.formAction.splitCell}]},initialize:function(e,t){this.setOptions(t);this.path="/x_component_process_FormDesigner/Module/Table$Td/";this.cssPath="/x_component_process_FormDesigner/Module/Table$Td/"+this.options.style+"/css.wcss";this._loadCss();this.moduleType="container";this.moduleName="table$Td";this.Node=null;this.form=e},setAllStyles:function(){Object.each(this.json.styles,function(e,t){var o=/^border\w*/gi;if(!t.test(o)){if(t)this.node.setStyle(t,e)}}.bind(this));this.setPropertiesOrStyles("properties");this.reloadMaplist()},over:function(){if(this.form.selectedModules.indexOf(this)==-1){if(!this.form.moveModule)if(this.form.currentSelectedModule!=this)this.node.setStyles({"border-width":"1px","border-color":"#0072ff"})}},unOver:function(){if(this.form.selectedModules.indexOf(this)==-1){if(!this.form.moveModule)if(this.form.currentSelectedModule!=this)this.node.setStyles({"border-width":"1px","border-color":"#999"})}},unSelected:function(){this.node.setStyles({"border-width":"1px","border-color":"#999"});this._hideActions();this.form.currentSelectedModule=null;this.hideProperty()},_showActions:function(){if(this.actionArea){this._setActionAreaPosition();this.actionArea.setStyle("display","block");var e=this.node.get("colspan").toInt()||1;var t=this.node.get("rowspan").toInt()||1;if(e<=1&&t<=1){this.actionArea.getLast("div").setStyle("display","none")}}},unSelectedMulti:function(){if(this.form.selectedModules.indexOf(this)!=-1){this.form.selectedModules.erase(this);this.node.setStyle("border-color","#999")}},load:function(e,t,o){this.json=e;this.node=t;this.node.store("module",this);this.node.setStyles(this.css.moduleNode);if(!this.json.id){var s=this._getNewId(o.json.id);this.json.id=s}t.set({MWFType:"table$Td",id:this.json.id});if(!this.form.json.moduleList[this.json.id]){this.form.json.moduleList[this.json.id]=this.json}this._initModule();this._loadTreeNode(o);this.form.parseModules(this,this.node);this.parentContainer=this.treeNode.parentNode.module;this._setEditStyle_custom("id");this.json.moduleName=this.moduleName},_createMoveNode:function(){return false},_setEditStyle_custom:function(e){if(e=="cellType"){this.setCustomStyles()}},setCustomStyles:function(){var e=this.node.getStyle("border");this.node.clearStyles();this.node.setStyles(this.css.moduleNode);var t={};if(this.json.cellType=="title"){t=this.table.json.titleTdStyles}if(this.json.cellType=="content"){t=this.table.json.contentTdStyles}if(this.json.cellType=="layout"){t=this.table.json.layoutTdStyles}if(this.initialStyles)this.node.setStyles(this.initialStyles);this.node.setStyle("border",e);Object.each(t,function(e,t){var o=/^border\w*/gi;if(!t.test(o)){this.node.setStyle(t,e)}}.bind(this));Object.each(this.json.styles,function(e,t){var o=/^border\w*/gi;if(!t.test(o)){this.node.setStyle(t,e)}}.bind(this))},_dragInLikeElement:function(e){return false},insertRow:function(){var e=this;var t=this.path+"insertRow.html";MWF.require("MWF.widget.Dialog",function(){var o=$(document.body).getSize();var s=o.x/2-150;var n=o.y/2-90;var i=new MWF.DL({title:"Insert Row",style:"property",top:n,left:s-40,fromTop:o.y/2-45,fromLeft:o.x/2,width:300,height:180,url:t,buttonList:[{text:MWF.APPFD.LP.button.ok,action:function(){e._insertRow();this.close()}},{text:MWF.APPFD.LP.button.cancel,action:function(){this.close()}}]});i.show()}.bind(this))},_insertRow:function(){var e=$("MWFInsertRowNumber").get("value");var t=document.getElementsByName("MWFInsertRowPosition");var o="before";for(var s=0;s<t.length;s++){if(t[s].checked){o=t[s].value;break}}var n=this.node.getParent("tr");var i=n.getParent("table");var r=n.cells.length;var a=n.rowIndex;var l=i.getElements("td:rowspanBefore("+a+")");var d=n.getElements("td:colspan");d.each(function(e){var t=e.get("colspan").toInt()||1;r=r+t-1});l.each(function(t){this.__rowspanPlus(t,e)}.bind(this));if(o=="after"){var c=n.getElements("td:rowspan");c.each(function(t){this.__rowspanPlus(t,e);var o=t.get("colspan").toInt()||1;r=r-o}.bind(this))}for(var h=1;h<=e;h++){var f=new Element("tr").inject(n,o);for(var p=1;p<=r;p++){var u=new Element("td").inject(f);this.form.getTemplateData("Table$Td",function(e){var t=Object.clone(e);var o=new MWF.FCTable$Td(this.form);o.table=this.table;o.load(t,u,this.parentContainer);this.parentContainer.containers.push(o)}.bind(this))}}this.unSelected();this.selected()},insertCol:function(){var e=this;var t=this.path+"insertCol.html";MWF.require("MWF.widget.Dialog",function(){var o=$(document.body).getSize();var s=o.x/2-150;var n=o.y/2-90;var i=new MWF.DL({title:"Insert Col",style:"property",top:n,left:s-40,fromTop:o.y/2-45,fromLeft:o.x/2,width:300,height:180,url:t,buttonList:[{text:MWF.APPFD.LP.button.ok,action:function(){e._insertCol();this.close()}},{text:MWF.APPFD.LP.button.cancel,action:function(){this.close()}}]});i.show()}.bind(this))},_insertCol:function(){var e=$("MWFInsertColNumber").get("value");var t=document.getElementsByName("MWFInsertColPosition");var o="before";for(var s=0;s<t.length;s++){if(t[s].checked){o=t[s].value;break}}var n=this.node.getParent("tr");var i=n.getParent("table");var r=this.__getCellIndex(this.node);for(var a=1;a<=e;a++){var l=this.__getInsertTableColTds(i,r);l.each(function(e){e.td.inject(e.toTd,o);this.form.getTemplateData("Table$Td",function(t){var o=Object.clone(t);var s=new MWF.FCTable$Td(this.form);s.table=this.table;s.load(o,e.td,this.parentContainer);this.parentContainer.containers.push(s)}.bind(this))}.bind(this))}this.unSelected();this.selected()},deleteRow:function(e){var t=this;this.form.designer.confirm("warn",e,MWF.APPFD.LP.notice.deleteRowTitle,MWF.APPFD.LP.notice.deleteRow,300,120,function(){t._deleteRow();this.close()},function(){this.close()},null)},__rowspanPlus:function(e,t){var o=e.get("rowspan").toInt()||1;o=o+t.toInt();var s=e.retrieve("module");if(o>1){e.set("rowspan",o);if(s)s.json.properties.rowspan=o}else{e.set("rowspan",1);delete e.rowspan;if(s)delete s.json.properties.rowspan}},__rowspanMinus:function(e){var t=e.get("rowspan").toInt()||1;t=t-1;var o=e.retrieve("module");if(t>1){e.set("rowspan",t);if(o)o.json.properties.rowspan=t}else{e.set("rowspan",1);delete e.rowspan;if(o)delete o.json.properties.rowspan}},__colspanPlus:function(e,t){var o=e.get("colspan").toInt()||1;o=o+t.toInt();var s=e.retrieve("module");if(o>1){e.set("colspan",o);if(s)s.json.properties.colspan=o}else{e.set("colspan",1);delete e.colspan;if(s)delete s.json.properties.colspan}},__colspanMinus:function(e){var t=e.get("colspan").toInt()||1;t=t-1;var o=e.retrieve("module");if(t>1){e.set("colspan",t);if(o)o.json.properties.colspan=t}else{e.set("colspan",1);delete e.colspan;if(o)delete o.json.properties.colspan}},__getNextTd:function(e,t){var o=null;while(t>0){if(!o){o=e.getFirst("td")}else{o=o.getNext("td")}t--;var s=o.get("colspan").toInt()||1;t=t-s-1}return o},__getCellIndex:function(e){var t=e.getParent("tr");var o=t.getParent("table");var s=-1;var n=o.rows;var i={};var r=false;for(var a=0;a<n.length;a++){var l=null;var d=0;while(true){var c=i["rowspan_"+d];if(c){c.rows=c.rows-1;if(!c.rows){delete i["rowspan_"+d]}d++}else{if(!l){l=n[a].getFirst("td")}else{l=l.getNext("td")}if(!l)break;if(l==e){s=d;r=true;break}else{var c=l.get("rowspan").toInt()||1;var h=l.get("colspan").toInt()||1;if(c>1){var f=c-1;for(var p=0;p<h;p++){var u=d+p;i["rowspan_"+u]={rows:f}}}d=d+h-1}d++}}if(r)break}return s},__getInsertTableColTds:function(e,t){var o=[];var s=e.rows;var n={};for(var i=0;i<s.length;i++){var r=null;var a=0;while(true){var l=n["rowspan_"+a];if(l){l.rows=l.rows-1;if(!l.rows){delete n["rowspan_"+a]}a++}else{if(!r){r=s[i].getFirst("td")}else{r=r.getNext("td")}if(!r)break;var l=r.get("rowspan").toInt()||1;var d=r.get("colspan").toInt()||1;if(l>1){var c=l-1;for(var h=0;h<d;h++){var f=a+h;n["rowspan_"+f]={rows:c}}}if(d>1){if(a+d-1>=t&&a<=t){this.__colspanPlus(r,1);break}}else{if(a==t){var p=new Element("td");o.push({td:p,toTd:r});break}}a=a+d-1;a++}}}return o},__getDeleteTableColTds:function(e,t){var o=[];var s=e.rows;var n={};for(var i=0;i<s.length;i++){var r=null;var a=0;while(true){var l=n["rowspan_"+a];if(l){l.rows=l.rows-1;if(!l.rows){delete n["rowspan_"+a]}a++}else{if(!r){r=s[i].getFirst("td")}else{r=r.getNext("td")}if(!r)break;var l=r.get("rowspan").toInt()||1;var d=r.get("colspan").toInt()||1;if(l>1){var c=l-1;for(var h=0;h<d;h++){var f=a+h;n["rowspan_"+f]={rows:c}}}if(d>1){if(a+d-1>=t&&a<=t){this.__colspanMinus(r);break}}else{if(a==t){o.push(r);break}}a=a+d-1;a++}}}return o},_deleteRow:function(){var e=this.node.getParent("tr");var t=e.getParent("table");var o=e.rowIndex;var s=t.getElements("td:rowspanBefore("+o+")");var n=e.getElements("td:rowspan");s.each(function(e){this.__rowspanMinus(e)}.bind(this));n.each(function(e){this.__rowspanMinus(e);var s=t.rows[o+1];if(s){var n=e.cellIndex;var i=null;if(n>0){i=this.__getNextTd(s,n)}else{i=this.__getNextTd(s,2)}if(i)e.inject(i,"after")}}.bind(this));if(t.rows.length<=1){this.parentContainer.destroy()}else{tds=e.getElements("td");tds.each(function(e){var t=e.retrieve("module");if(t){t.parentContainer.containers.erase(t);t.destroy()}});e.destroy()}this.form.selected()},deleteCol:function(e){var t=this;this.form.designer.confirm("warn",e,MWF.APPFD.LP.notice.deleteColTitle,MWF.APPFD.LP.notice.deleteCol,300,120,function(){t._deleteCol();this.close()},function(){this.close()},null)},_deleteCol:function(){var e=this.node.getParent("tr");var t=e.getParent("table");var o=this.__getCellIndex(this.node);var s=this.node.get("colspan").toInt()||1;if(e.cells.length<=1&&s<=1){this.parentContainer.destroy()}else{var n=this.__getDeleteTableColTds(t,o);n.each(function(e){var t=e.retrieve("module");if(t){t.parentContainer.containers.erase(t);t.destroy()}})}},__getTdsByIndex:function(e,t,o,s){var n=[];var i=e.rows;var r={};for(var a=0;a<i.length;a++){var l=null;var d=0;var c=false;while(true){var h=r["rowspan_"+d];if(h){h.rows=h.rows-1;if(!h.rows){delete r["rowspan_"+d]}d++}else{if(!l){l=i[a].getFirst("td")}else{l=l.getNext("td")}if(!l){if(a>=t&&a<=t+o)if(!c)n.push(null);break}var h=l.get("rowspan").toInt()||1;var f=l.get("colspan").toInt()||1;var o;if(h>1){o=h-1;for(var p=0;p<f;p++){var u=d+p;r["rowspan_"+u]={rows:o}}}if(d+f-1>=s&&d<=s){if(a>=t&&a<=t+o){n.push(l);c=true}break}d=d+f-1;d++}}}return n},splitCell:function(){var e=this.node.get("colspan").toInt()||1;var t=this.node.get("rowspan").toInt()||1;var o=this.node.getParent("tr");var s=o.getParent("table");var n=o.rowIndex;var i=this.__getCellIndex(this.node);this.node.set("rowspan",1);delete this.node.rowspan;delete this.json.properties.rowspan;this.node.set("colspan",1);delete this.node.colspan;delete this.json.properties.colspan;if(this.form.currentSelectedModule)this.form.currentSelectedModule.unSelected();this.unSelectedMulti();this.selectedMulti();var r=this.__getTdsByIndex(s,n+1,t-1,i-1);for(var a=1;a<=t;a++){if(a==1){for(var l=2;l<=e;l++){var d=new Element("td").inject(this.node,"after");this.form.getTemplateData("Table$Td",function(e){var t=Object.clone(e);var o=new MWF.FCTable$Td(this.form);o.table=this.table;o.load(t,d,this.parentContainer);this.parentContainer.containers.push(o);o.selectedMulti()}.bind(this))}}else{var o=o.getNext("tr");var c=r[a-2];for(var l=1;l<=e;l++){var d=new Element("td");if(c){d.inject(c,"after")}else{d.inject(o,"top")}this.form.getTemplateData("Table$Td",function(e){var t=Object.clone(e);var o=new MWF.FCTable$Td(this.form);o.table=this.table;o.load(t,d,this.parentContainer);this.parentContainer.containers.push(o);o.selectedMulti()}.bind(this))}}}this.form._completeSelectMulti()}});
|