PageRenderTime 49ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/meta/src/main/resources/vm-scripts/java/entity-list.vtl

https://bitbucket.org/openicar/core
Unknown | 369 lines | 310 code | 59 blank | 0 comment | 0 complexity | ecf671d0113e2e1f4dd388d9224151cb MD5 | raw file
Possible License(s): Apache-2.0
  1. ##
  2. #set($entityElement = $generationHelper.getEntityElement())
  3. #set($entityName = $generationHelper.getEntityName())
  4. ##
  5. #set($entityListComponentName = $generationHelper.getEntityListComponentName())
  6. #set($entityListClassName = $generationHelper.getEntityListClassName())
  7. #set($baseListClassName = $generationHelper.getBaseListClassName())
  8. ##
  9. package $generationHelper.getPackageName();
  10. ##
  11. #foreach($entityListClassAnnotation in $generationHelper.getEntityListClassAnnotations())
  12. $entityListClassAnnotation
  13. #end
  14. public class $entityListClassName extends ${baseListClassName}<$entityName> {
  15. ##
  16. private static final long serialVersionUID = 1L;
  17. ##
  18. ##
  19. #set($entityClassName = $generationHelper.getEntityClassName())
  20. #set($entityVarName = $textUtils.varName($entityClassName))
  21. #set($entityMethodName = $textUtils.methodName($entityClassName))
  22. #set($hasEntityHome = $generationHelper.hasEntityHome())
  23. #set($entityHomeName = $generationHelper.getEntityHomeName())
  24. #set($entityHomeClassName = $generationHelper.getEntityHomeClassName())
  25. #set($entityHomeComponentName = $generationHelper.getEntityHomeComponentName())
  26. ##
  27. #set($hasViewPage = $generationHelper.hasViewPage())
  28. #set($hasEditPage = $generationHelper.hasEditPage())
  29. ##
  30. #set($searchClassName = $generationHelper.getSearchClassName())
  31. #set($searchVarName = $generationHelper.getSearchVarName())
  32. #set($searchMethodName = $generationHelper.getSearchMethodName())
  33. ##
  34. #set($entityAlias = $generationHelper.getEntityAlias())
  35. #set($ejbql = $generationHelper.getEjbqlSelect())
  36. #set($baseEjbql = $generationHelper.getEjbqlSelectBase())
  37. #set($restrictions = $generationHelper.getRestrictions())
  38. #set($joins = $generationHelper.getJoins())
  39. ##
  40. // private static final String EJBQL = "$ejbql";
  41. // private static final String BASE_EJBQL = "$baseEjbql";
  42. ##
  43. ## private static final String[] RESTRICTIONS = {
  44. ###foreach($restriction in $restrictions)
  45. ## "$restriction",
  46. ###end
  47. ## };
  48. protected void clearAll() {
  49. super.clearAll();
  50. resetSearch();
  51. }
  52. protected String getHqlKeyFieldPath() {
  53. return "${entityAlias}.id";
  54. }
  55. public class ${searchClassName} implements java.io.Serializable {
  56. private static final long serialVersionUID = 1L;
  57. ##
  58. #foreach($field in $generationHelper.getSearchClassFields())
  59. ##
  60. ${field.fieldClassName} ${field.fieldVarName};
  61. public ${field.fieldClassName} get${field.fieldMethodName}() {
  62. #if(${field.createIfNull})
  63. if (this.${field.fieldVarName} == null) this.${field.fieldVarName} = new ${field.fieldClassName}();
  64. #end
  65. return this.${field.fieldVarName};
  66. }
  67. public void set${field.fieldMethodName}(${field.fieldClassName} ${field.fieldVarName}) {
  68. this.${field.fieldVarName} = ${field.fieldVarName};
  69. }
  70. ##
  71. #end
  72. }
  73. protected ${searchClassName} ${searchVarName} = new ${searchClassName}();
  74. public ${searchClassName} get${searchMethodName}() {
  75. return ${searchVarName};
  76. }
  77. ##
  78. ## protected boolean searchPanelOpened = false;
  79. ##
  80. ## public boolean isSearchPanelOpened() {
  81. ## System.out.println("YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY " + searchPanelOpened);
  82. ## return searchPanelOpened;
  83. ## }
  84. ##
  85. ## public void setSearchPanelOpened(boolean searchPanelOpened) {
  86. ## System.out.println("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ " + searchPanelOpened);
  87. ## this.searchPanelOpened = searchPanelOpened;
  88. ## }
  89. protected void initQueryBuilder() {
  90. super.initQueryBuilder();
  91. getQueryBuilder().setQueryClass(${entityListClassName}.class);
  92. getQueryBuilder().setQueryInstance(this);
  93. ##
  94. #foreach($join in $joins)
  95. getQueryBuilder().getJoins().add("$join");
  96. #end
  97. setRestrictionExpressionStrings(java.util.Arrays.asList(new String[] {
  98. #foreach($restriction in $restrictions)
  99. "$restriction",
  100. #end
  101. }));
  102. ##
  103. ###set($accessCriteria = "null")
  104. ###set($accessCriteria = $generationHelper.getAccessCriteria())
  105. ###if($accessCriteria != "null")
  106. ##
  107. ## getCriteria().getWhere().add("$accessCriteria.expression");
  108. ## java.util.Map<String, String> modelParams = new java.util.LinkedHashMap<String, String>();
  109. ###foreach($accessCriteriaParam in $accessCriteria.params)
  110. ## modelParams.put("${accessCriteriaParam.name}", "${accessCriteriaParam.expression}");
  111. ###end
  112. ## for (java.util.Map.Entry<String, String> modelParam : modelParams.entrySet()) {
  113. ## getCriteria().getParams().put(modelParam.getKey(), org.jboss.seam.core.Expressions.instance().createValueExpression(modelParam.getValue()).getValue());
  114. ## }
  115. ###end
  116. }
  117. ##
  118. #if($generationHelper.hasHqlBuildExtension())
  119. protected org.comsoft.system.hql.HqlBuildExtension getQueryBuildExtension() {
  120. return (org.comsoft.system.hql.HqlBuildExtension) org.jboss.seam.Component.getInstance("${generationHelper.getHqlBuildExtension()}", true);
  121. }
  122. #end
  123. public ${entityListClassName}() {
  124. ## setRestrictionExpressionStrings(java.util.Arrays.asList(RESTRICTIONS));
  125. setMaxResults(25);
  126. }
  127. @Override
  128. public String getViewId() {
  129. return "${generationHelper.getViewId()}";
  130. ## return "/${generationHelper.getSeamUtils().getEntityListPageViewName($generationHelper.getEntityElement())}.xhtml";
  131. }
  132. ##
  133. @Override
  134. public Class getEntityClass() {
  135. return ${entityClassName}.class;
  136. }
  137. private String[] supportedActions;
  138. public String[] getSupportedActions() {
  139. if (supportedActions == null) {
  140. supportedActions = new String[]{"EDIT", "VIEW", "SAVE", "REMOVE"};
  141. #if($hasEntityHome)
  142. org.comsoft.system.EntityHomeController<${entityClassName}, org.jboss.seam.framework.EntityHome<${entityClassName}>> controller = getEntityHomeController(org.jboss.seam.ScopeType.STATELESS);
  143. if (controller != null) {
  144. for (org.comsoft.system.Operation operation : controller.getOperations(null)) {
  145. supportedActions = (String[]) org.apache.commons.lang.ArrayUtils.add(supportedActions, operation.getCode());
  146. }
  147. }
  148. #end
  149. }
  150. return supportedActions;
  151. }
  152. ##
  153. #* ----------------------------------------------
  154. max - getEntityHomeController getOperations doOperation перенес в SelectableEntityQuery
  155. #if($hasEntityHome)
  156. public org.comsoft.system.EntityHomeController<${entityClassName}, org.jboss.seam.framework.EntityHome<${entityClassName}>> getEntityHomeController(org.jboss.seam.ScopeType scope) {
  157. #if($generationHelper.hasController())
  158. ##
  159. ${entityHomeClassName} ${entityHomeComponentName} = (${entityHomeClassName}) org.jboss.seam.Component.getInstance("${entityHomeComponentName}", scope, true);
  160. if (${entityHomeComponentName} != null) return ${entityHomeComponentName}.getController();
  161. ##
  162. #end
  163. return null;
  164. }
  165. public org.comsoft.system.Operation[] getOperations() {
  166. java.util.Set<org.comsoft.system.Operation> operations = new java.util.LinkedHashSet<org.comsoft.system.Operation>();
  167. org.comsoft.system.EntityHomeController<${entityClassName}, org.jboss.seam.framework.EntityHome<${entityClassName}>> controller = getEntityHomeController(org.jboss.seam.ScopeType.STATELESS);
  168. if (controller != null) {
  169. org.comsoft.system.Operation[] controllerOperations = controller.getOperations(null);
  170. for (org.comsoft.system.Operation operation : controllerOperations) {
  171. if (!operation.isInstanceOperation()) {
  172. operations.add(operation);
  173. }
  174. }
  175. // return controller.getExternalOperations();
  176. } else {
  177. return new org.comsoft.system.Operation[] {};
  178. }
  179. return operations.toArray(new org.comsoft.system.Operation[operations.size()]);
  180. }
  181. public String doOperation(org.comsoft.system.Operation operation, Object param) throws Exception {
  182. org.comsoft.system.EntityHomeController<${entityClassName}, org.jboss.seam.framework.EntityHome<${entityClassName}>> controller = getEntityHomeController(org.jboss.seam.ScopeType.STATELESS);
  183. if (controller != null) {
  184. String result = controller.doOperation(operation, param);
  185. refresh();
  186. return result;
  187. }
  188. return null;
  189. }
  190. #end
  191. ----------------------------------------------------
  192. *#
  193. ##
  194. #if($hasEditPage)
  195. #set($editCallbackClassName = "${entityClassName}EditCallback")
  196. private class ${editCallbackClassName} extends org.comsoft.system.NavigationCallback<${entityClassName}> {
  197. public ${editCallbackClassName}(Object callbackMethodObject, java.lang.reflect.Method callbackMethod) {
  198. super(callbackMethodObject, callbackMethod);
  199. }
  200. public void doRefresh() {
  201. refresh();
  202. }
  203. public void afterCreate(${entityClassName} entity) {
  204. refresh();
  205. }
  206. public void afterDelete(${entityClassName} entity) {
  207. refresh();
  208. }
  209. }
  210. public String edit${entityMethodName}(Object ${entityVarName}Id) throws org.comsoft.system.controllers.OperationInvokingException {
  211. ${entityHomeName} ${entityHomeComponentName} = (${entityHomeName}) org.comsoft.system.ComponentUtils.instance().getInstance("${entityHomeComponentName}");
  212. ${entityHomeComponentName}.set${entityMethodName}Id(${entityVarName}Id);
  213. return ${entityHomeComponentName}.beginEdit(new ${editCallbackClassName}(this, null));
  214. }
  215. #end
  216. ##
  217. #if($hasViewPage)
  218. public String view${entityMethodName}(Object ${entityVarName}Id) throws org.comsoft.system.controllers.OperationInvokingException {
  219. ${entityHomeName} ${entityHomeComponentName} = (${entityHomeName}) org.comsoft.system.ComponentUtils.instance().getInstance("${entityHomeComponentName}");
  220. ${entityHomeComponentName}.set${entityMethodName}Id(${entityVarName}Id);
  221. return ${entityHomeComponentName}.beginView(new org.comsoft.system.NavigationCallback(this, null));
  222. }
  223. #end
  224. ##
  225. @org.jboss.seam.annotations.Transactional
  226. public String remove(Object objId)
  227. {
  228. Object obj = getEntityManager().find(${entityClassName}.class, objId);
  229. if (obj != null) {
  230. getEntityManager().joinTransaction();
  231. getEntityManager().remove(obj);
  232. getEntityManager().flush();
  233. debug("deleted entity #0 #1", ${entityClassName}.class.getName(), objId);
  234. refresh();
  235. }
  236. return getViewId();
  237. }
  238. ##
  239. #foreach($field in $modelUtils.getObjectFields($entityElement))
  240. ##
  241. #set($fieldGenerationParams = $generationHelper.getEntityHelper().getEntityFieldGenerationParams($field))
  242. ##
  243. #if($fieldGenerationParams.manyToOne || $fieldGenerationParams.oneToOne)
  244. #set($fieldVarName = ${fieldGenerationParams.fieldVarName})
  245. #set($fieldMethodName = ${fieldGenerationParams.fieldMethodName})
  246. #set($fieldClassName = ${fieldGenerationParams.fieldClassName})
  247. #set($refEntityListName = $generationHelper.getSeamUtils().getEntityListName($field.type))
  248. #set($refEntityListComponentName = $textUtils.beanName($refEntityListName))
  249. #set($selectedMethodName = "${fieldVarName}Selected")
  250. #set($selectionCriteria = "null")
  251. #set($selectionCriteria = $generationHelper.getFieldSelectionCriteria($fieldGenerationParams))
  252. ##
  253. #if($selectionCriteria != "null")
  254. private void prepareCriteriaFor${fieldMethodName}Selection(java.util.Collection<String> where, java.util.Map<String, Object> params) {
  255. where.add("$selectionCriteria.expression");
  256. java.util.Map<String, String> modelParams = new java.util.LinkedHashMap<String, String>();
  257. #foreach($selectionCriteriaParam in $selectionCriteria.params)
  258. modelParams.put("${selectionCriteriaParam.name}", "${selectionCriteriaParam.expression}");
  259. #end
  260. for (java.util.Map.Entry<String, String> modelParam : modelParams.entrySet()) {
  261. params.put(modelParam.getKey(), org.jboss.seam.core.Expressions.instance().createValueExpression(modelParam.getValue()).getValue());
  262. }
  263. }
  264. #end
  265. @SuppressWarnings("unchecked")
  266. ## @org.jboss.seam.annotations.Begin(nested = true, flushMode = org.jboss.seam.annotations.FlushModeType.MANUAL)
  267. public String select${fieldMethodName}() throws SecurityException, NoSuchMethodException {
  268. org.comsoft.system.SelectableEntityQuery selectable = (org.comsoft.system.SelectableEntityQuery) org.comsoft.system.ComponentUtils.instance().getInstance("${refEntityListComponentName}");
  269. #if($selectionCriteria != "null")
  270. java.util.Collection<String> where = new java.util.LinkedHashSet<String>();
  271. java.util.Map<String, Object> params = new java.util.LinkedHashMap<String, Object>();
  272. prepareCriteriaFor${fieldMethodName}Selection(where, params);
  273. return selectable.beginSelection(new org.comsoft.system.NavigationCallback(this, this.getClass().getMethod("$selectedMethodName", Object.class), true), where, params);
  274. #else
  275. return selectable.beginSelection(new org.comsoft.system.NavigationCallback(this, this.getClass().getMethod("$selectedMethodName", Object.class), true));
  276. #end
  277. }
  278. @SuppressWarnings("unchecked")
  279. public java.util.List autoComplete${fieldMethodName}(Object afilter) throws SecurityException, NoSuchMethodException {
  280. log.info("autocomplete ${fieldMethodName}" );
  281. org.comsoft.system.SelectableEntityQuery selectable = (org.comsoft.system.SelectableEntityQuery) org.jboss.seam.Component.getInstance("${refEntityListComponentName}Stateless", true);
  282. selectable.setElComponentName("${refEntityListComponentName}Stateless");
  283. org.jboss.seam.contexts.Contexts.getEventContext().set("${refEntityListComponentName}Stateless", selectable);
  284. #if($selectionCriteria != "null")
  285. java.util.Collection<String> where = new java.util.LinkedHashSet<String>();
  286. java.util.Map<String, Object> params = new java.util.LinkedHashMap<String, Object>();
  287. prepareCriteriaFor${fieldMethodName}Selection(where, params);
  288. return selectable.autoComplete(afilter, where, params);
  289. #else
  290. return selectable.autoComplete(afilter);
  291. #end
  292. }
  293. public void clear${fieldMethodName}() throws SecurityException, NoSuchMethodException {
  294. log.info("clear ${fieldMethodName}" );
  295. ${searchVarName}.set${fieldMethodName}(null);
  296. }
  297. public void selected${fieldMethodName}() throws SecurityException, NoSuchMethodException {
  298. log.info("selected ${fieldMethodName}" );
  299. }
  300. public void ${selectedMethodName}(Object ${fieldVarName}Id) {
  301. ${fieldClassName} ${fieldVarName} = getEntityManager().find(${fieldClassName}.class, ${fieldVarName}Id);
  302. ${searchVarName}.set${fieldMethodName}(${fieldVarName});
  303. }
  304. #end
  305. #end
  306. public void resetSearch() {
  307. ${searchVarName} = new ${searchClassName}();
  308. refresh();
  309. }
  310. }