MethodValue.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. /**
  2. * @author GJ
  3. */
  4. urule.MethodValue=function(arithmetic,data){
  5. this.arithmetic=arithmetic;
  6. this.container=$("<span>");
  7. this.rightParn=$("<span style='color:blue'>]</span>");
  8. this.label=generateContainer();
  9. this.fetchLength=false;
  10. this.uppercase=false;
  11. this.lowercase=false;
  12. this.fetchSize=false;
  13. this.container.append(this.label);
  14. this.label.css({
  15. "color":"blue"
  16. });
  17. this.actionContainer=$("<span></span>");
  18. this.container.append(this.actionContainer);
  19. URule.setDomContent(this.label,"请选择方法");
  20. if(arithmetic){
  21. this.container.append(arithmetic.getContainer());
  22. }
  23. if(data){
  24. this.setAction(data);
  25. arithmetic.initData(data["arithmetic"]);
  26. }
  27. window._ActionTypeArray.push(this);
  28. this.initMenu();
  29. };
  30. urule.MethodValue.prototype.initMenu=function(actionLibraries){
  31. var data=window._uruleEditorActionLibraries;
  32. if(actionLibraries){
  33. data=actionLibraries;
  34. }
  35. var self,onClick,config;
  36. self=this;
  37. onClick=function(menuItem){
  38. var parent=menuItem.parent.parent;
  39. self.setAction({
  40. beanLabel:parent.label,
  41. beanId:parent.name,
  42. methodLabel:menuItem.label,
  43. methodName:menuItem.name,
  44. parameters:menuItem.parameters
  45. });
  46. };
  47. config={menuItems:[]};
  48. $.each(data||[],function(index,item){
  49. var springBeans=item.springBeans||[];
  50. $.each(springBeans,function(i,springBean){
  51. var menuItem={
  52. name:springBean.id,
  53. label:springBean.name
  54. };
  55. var methods=springBean.methods||[];
  56. $.each(methods,function(j,method){
  57. if(!menuItem.subMenu){
  58. menuItem.subMenu={menuItems:[]};
  59. }
  60. menuItem.subMenu.menuItems.push({
  61. name:method.methodName,
  62. label:method.name,
  63. parameters:method.parameters,
  64. onClick:onClick
  65. });
  66. });
  67. config.menuItems.push(menuItem);
  68. });
  69. });
  70. if(self.menu){
  71. self.menu.setConfig(config);
  72. }else{
  73. self.menu=new URule.menu.Menu(config);
  74. }
  75. this.label.click(function(e){
  76. self.menu.show(e);
  77. });
  78. };
  79. urule.MethodValue.prototype.setAction=function(data){
  80. window._setDirty();
  81. if(this.action){
  82. this.action.getContainer().remove();
  83. }
  84. this.action=new urule.MethodAction();
  85. URule.setDomContent(this.label,"[");
  86. this.actionContainer.append(this.action.getContainer());
  87. this.actionContainer.append(this.rightParn);
  88. this.action.initData(data);
  89. };
  90. urule.MethodValue.prototype.getDisplayContainer=function(){
  91. var name="",method="";
  92. if(this.action){
  93. name=this.action.name;
  94. method=this.action.methodLabel;
  95. }
  96. var container=$("<span>"+method+"</span>");
  97. if(this.arithmetic){
  98. var dis=this.arithmetic.getDisplayContainer();
  99. if(dis){
  100. container.append(dis);
  101. }
  102. }
  103. return container;
  104. };
  105. urule.MethodValue.prototype.toXml=function(){
  106. if(!this.action.bean || this.action.name==""){
  107. throw "执行方法不能为空!";
  108. }
  109. var xml="bean-name=\""+this.action.bean+"\"";
  110. xml+=" bean-label=\""+this.action.name+"\"";
  111. xml+=" method-name=\""+this.action.method+"\"";
  112. xml+=" method-label=\""+this.action.methodLabel+"\"";
  113. return xml;
  114. };
  115. urule.MethodValue.prototype.getContainer=function(){
  116. return this.container;
  117. };