ontomde-java 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. data/History.txt +10 -0
  2. data/Manifest.txt +156 -0
  3. data/README.txt +98 -0
  4. data/Rakefile +21 -0
  5. data/bin/ontomde-java +5 -0
  6. data/generateRdocFile.sh +16 -0
  7. data/lib/ontomde-java.rb +45 -0
  8. data/lib/ontomde-java/crank.rb +13 -0
  9. data/lib/ontomde-java/crank/context.rb +384 -0
  10. data/lib/ontomde-java/crank/crankJpa.rb +103 -0
  11. data/lib/ontomde-java/crank/equals.rb +83 -0
  12. data/lib/ontomde-java/crank/facelets.rb +243 -0
  13. data/lib/ontomde-java/crank/facesconfig.rb +113 -0
  14. data/lib/ontomde-java/crank/helper.rb +46 -0
  15. data/lib/ontomde-java/crank/main.rb +51 -0
  16. data/lib/ontomde-java/crank/menu.rb +39 -0
  17. data/lib/ontomde-java/crank/menu2.rb +78 -0
  18. data/lib/ontomde-java/crank/validation.rb +34 -0
  19. data/lib/ontomde-java/ejb2.rb +3 -0
  20. data/lib/ontomde-java/ejb2/main-ejb2.rb +194 -0
  21. data/lib/ontomde-java/flex.rb +7 -0
  22. data/lib/ontomde-java/flex/Editor.mxml.as.rb +184 -0
  23. data/lib/ontomde-java/flex/Editor.mxml.rb +701 -0
  24. data/lib/ontomde-java/flex/ImportationAS.rb +40 -0
  25. data/lib/ontomde-java/flex/ValueObjectAS.rb +338 -0
  26. data/lib/ontomde-java/flex/fileTypes.rb +19 -0
  27. data/lib/ontomde-java/flex/main.rb +347 -0
  28. data/lib/ontomde-java/frontend/command.rb +324 -0
  29. data/lib/ontomde-java/frontend/command.rdoc +583 -0
  30. data/lib/ontomde-java/frontend/defaultOptions.rb +124 -0
  31. data/lib/ontomde-java/frontend/options.rb +555 -0
  32. data/lib/ontomde-java/frontend/steps.rb +287 -0
  33. data/lib/ontomde-java/java/accessorCode.rb +528 -0
  34. data/lib/ontomde-java/java/accessorSignature.rb +347 -0
  35. data/lib/ontomde-java/java/annotationOntoMDE.rb +88 -0
  36. data/lib/ontomde-java/java/apache.rb +34 -0
  37. data/lib/ontomde-java/java/build.rb +80 -0
  38. data/lib/ontomde-java/java/collectionMapping.rb +112 -0
  39. data/lib/ontomde-java/java/component.rb +446 -0
  40. data/lib/ontomde-java/java/contextualize.rb +43 -0
  41. data/lib/ontomde-java/java/enumAssignable.rb +75 -0
  42. data/lib/ontomde-java/java/enumCompatibilityLayer.rb +195 -0
  43. data/lib/ontomde-java/java/equals.rb +91 -0
  44. data/lib/ontomde-java/java/groovy.rb +95 -0
  45. data/lib/ontomde-java/java/java.rb +1329 -0
  46. data/lib/ontomde-java/java/java.rdoc +78 -0
  47. data/lib/ontomde-java/java/javaDatatypeMapping.rb +156 -0
  48. data/lib/ontomde-java/java/javaHelper.rb +25 -0
  49. data/lib/ontomde-java/java/java_todo.rdoc +3 -0
  50. data/lib/ontomde-java/java/javadoc.rb +254 -0
  51. data/lib/ontomde-java/java/meta.rb +28 -0
  52. data/lib/ontomde-java/java/operationAsClass.rb +144 -0
  53. data/lib/ontomde-java/java/security.rb +260 -0
  54. data/lib/ontomde-java/java/stateMachine.rb +415 -0
  55. data/lib/ontomde-java/java/tenant.rb +65 -0
  56. data/lib/ontomde-java/java/xsd.rb +1363 -0
  57. data/lib/ontomde-java/java/xsdCollectionMapping.rb +112 -0
  58. data/lib/ontomde-java/java/xsdDatatypeMapping.rb +103 -0
  59. data/lib/ontomde-java/jpa.rb +17 -0
  60. data/lib/ontomde-java/jpa/configuration.rb +176 -0
  61. data/lib/ontomde-java/jpa/finder.rb +102 -0
  62. data/lib/ontomde-java/jpa/jpa.rb +531 -0
  63. data/lib/ontomde-java/jpa/jpa.rdoc +20 -0
  64. data/lib/ontomde-java/jpa/locking.rb +18 -0
  65. data/lib/ontomde-java/jpa/mapping.rb +314 -0
  66. data/lib/ontomde-java/jpa/redefined.rb +77 -0
  67. data/lib/ontomde-java/jpa/simulationAutoImplement.rb +54 -0
  68. data/lib/ontomde-java/jpdl.rb +9 -0
  69. data/lib/ontomde-java/jpdl/bpm.pprj +1745 -0
  70. data/lib/ontomde-java/jpdl/bpm.rdf +140 -0
  71. data/lib/ontomde-java/jpdl/bpm.rdfs +231 -0
  72. data/lib/ontomde-java/jpdl/constant.rb +5 -0
  73. data/lib/ontomde-java/jpdl/graphic.rb +52 -0
  74. data/lib/ontomde-java/jpdl/jpdl.rb +281 -0
  75. data/lib/ontomde-java/jpdl/jpdl_deploy.rb +114 -0
  76. data/lib/ontomde-java/jpdl/main.rb +348 -0
  77. data/lib/ontomde-java/jpdl/main.rdoc +2 -0
  78. data/lib/ontomde-java/jpdl/processOperationToClass.rb +316 -0
  79. data/lib/ontomde-java/kbjava.rb +6 -0
  80. data/lib/ontomde-java/kbjava/rdfToJava.rb +407 -0
  81. data/lib/ontomde-java/struts.rb +27 -0
  82. data/lib/ontomde-java/struts/MessageResources.rb +359 -0
  83. data/lib/ontomde-java/struts/action.rb +883 -0
  84. data/lib/ontomde-java/struts/blob.rb +11 -0
  85. data/lib/ontomde-java/struts/exceptionHandling.rb +167 -0
  86. data/lib/ontomde-java/struts/footer.rb +128 -0
  87. data/lib/ontomde-java/struts/form.rb +450 -0
  88. data/lib/ontomde-java/struts/header.rb +37 -0
  89. data/lib/ontomde-java/struts/header_link.rb +39 -0
  90. data/lib/ontomde-java/struts/jsp_edit.rb +870 -0
  91. data/lib/ontomde-java/struts/jsp_edit_field.rb +1 -0
  92. data/lib/ontomde-java/struts/jsp_edit_js.rb +124 -0
  93. data/lib/ontomde-java/struts/jsp_index.rb +136 -0
  94. data/lib/ontomde-java/struts/localeAction.rb +641 -0
  95. data/lib/ontomde-java/struts/main.rb +41 -0
  96. data/lib/ontomde-java/struts/mappingForBean.rb +132 -0
  97. data/lib/ontomde-java/struts/mappingForJsp.rb +272 -0
  98. data/lib/ontomde-java/struts/mappingToJavaHierarchy.rb +87 -0
  99. data/lib/ontomde-java/struts/reloadAction.rb +33 -0
  100. data/lib/ontomde-java/struts/spring.rb +89 -0
  101. data/lib/ontomde-java/struts/struts-config.rb +232 -0
  102. data/lib/ontomde-java/struts/validation.rb +116 -0
  103. data/lib/ontomde-java/struts/validator.rb +341 -0
  104. data/lib/ontomde-java/struts/webXml.rb +195 -0
  105. data/lib/ontomde-java/struts/xmlForm.rb +308 -0
  106. data/lib/ontomde-java/version.rb +5 -0
  107. data/profiling.xls +0 -0
  108. data/test/.classpath +14 -0
  109. data/test/.project +17 -0
  110. data/test/.settings/org.eclipse.jdt.core.prefs +23 -0
  111. data/test/Rakefile +71 -0
  112. data/test/build.xml +34 -0
  113. data/test/classpath.rb +15 -0
  114. data/test/lib/junit-4.1.jar +0 -0
  115. data/test/load1.rb +3 -0
  116. data/test/load2.rb +3 -0
  117. data/test/log4j.properties +46 -0
  118. data/test/model/.project +11 -0
  119. data/test/model/BigProject.mdzip +0 -0
  120. data/test/model/BigProject.mdzip.nt +102866 -0
  121. data/test/model/ClassDiagram.EntArch.gif +0 -0
  122. data/test/model/ClassDiagram.emx.gif +0 -0
  123. data/test/model/ClassDiagram.mdzip.gif +0 -0
  124. data/test/model/model_ea71.bis.ea.xmi +149 -0
  125. data/test/model/model_ea71.ea.xmi +4470 -0
  126. data/test/model/model_ea71.eap +0 -0
  127. data/test/model/model_ea71_README.txt +8 -0
  128. data/test/model/multipleInheritance.emx +466 -0
  129. data/test/model/multipleInheritance.emx.nt +2428 -0
  130. data/test/model/simple1-530.ofp +0 -0
  131. data/test/model/simple1-includedAsReference.emx +169 -0
  132. data/test/model/simple1.emx +3729 -0
  133. data/test/model/simple1.emx.fragments.nt +81 -0
  134. data/test/model/simple1.emx.nt +5760 -0
  135. data/test/model/simple1.mdzip +0 -0
  136. data/test/model/simple1.mdzip.nt +11500 -0
  137. data/test/model/simple1.oe530.nt +1986 -0
  138. data/test/model/simple1.oe600.nt +1627 -0
  139. data/test/src/RuntimeTest.java +656 -0
  140. data/test/src/testsLevel1.java +174 -0
  141. data/test/src/testsLevel2.java +29 -0
  142. data/test/src/testsLevel3.java +40 -0
  143. data/test/test-ea7.sh +15 -0
  144. data/test/test-magicDraw.sh +10 -0
  145. data/test/test-mi.sh +9 -0
  146. data/test/test-oe530.sh +10 -0
  147. data/test/test-oe600.sh +11 -0
  148. data/test/test-rsm.sh +11 -0
  149. data/test/test_export_ea71.rb +5 -0
  150. data/test/test_export_oe530.rb +4 -0
  151. data/test/test_export_oe600.rb +4 -0
  152. data/test/test_export_rsm60.rb +4 -0
  153. data/test/trace +419 -0
  154. data/test/uml_test.rb +1434 -0
  155. data/test/uml_test.xls +0 -0
  156. data/test/unit_test.rb +6 -0
  157. metadata +224 -0
@@ -0,0 +1,103 @@
1
+ module Muml_Property
2
+
3
+ def jpa_addRelationCascadeType(isIncludeType=true)
4
+ if crank_isMasterFromMasterDetail?
5
+ self.java_annotation_add("@xmda.jpa.annotations.MasterDetail")
6
+ self.umlx_owner_one.java_import_add("org.hibernate.annotations.Cascade");
7
+ self.java_annotation_add("@Cascade({org.hibernate.annotations.CascadeType.DELETE_ORPHAN})")
8
+ if (isIncludeType)
9
+ return ",cascade={CascadeType.ALL}"
10
+ else
11
+ return "(cascade={CascadeType.ALL})"
12
+ end
13
+ elsif crank_isDetailFromMasterDetail?
14
+ self.java_annotation_add("@xmda.jpa.annotations.Detail")
15
+ end
16
+
17
+ if (isIncludeType)
18
+ return CRANK_DEFAULT_CASCADE_I
19
+ else
20
+ return CRANK_DEFAULT_CASCADE
21
+ end
22
+ end
23
+
24
+ CRANK_DEFAULT_CASCADE="(cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})"
25
+ CRANK_DEFAULT_CASCADE_I=",cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}"
26
+
27
+ alias super_jpa_addPersistenceToAssociation! jpa_addPersistenceToAssociation!
28
+ def jpa_addPersistenceToAssociation!(ah)
29
+ super_jpa_addPersistenceToAssociation!(ah)
30
+ end
31
+
32
+ def crank_isMasterFromMasterDetail?
33
+ return true if self.umlx_isComposite?
34
+ return false
35
+ end
36
+ def crank_isDetailFromMasterDetail?
37
+ oe=umlx_otherEnd
38
+ binav=(!oe.nil?) && oe.umlx_isNavigable?
39
+ return false if !binav
40
+ return oe.crank_isMasterFromMasterDetail?
41
+ end
42
+
43
+ end
44
+
45
+
46
+
47
+ module DAO
48
+ DAOInterface="GenericDao"
49
+ DAOQualifiedInterface="org.crank.crud.GenericDao"
50
+
51
+ alias super_jpa_addDAO! jpa_addDAO!
52
+ def jpa_addDAO!
53
+
54
+ if !context[:crank]
55
+ super_jpa_addDAO!
56
+ return
57
+ end
58
+
59
+ log.debug { "adding dao for #{self}" }
60
+ p=umlx_package
61
+
62
+ p_dao=p.umlx_getOrCreatePackage(context[:dbDAOsubPackage,"dao"],p)
63
+ c=p_dao.umlx_createAndAddInterface(rdf_uri+"_dao")
64
+ c.db_isDAO=RDF_TRUE
65
+ c.db_isTransient=RDF_TRUE
66
+ self.java_DAOClass=c
67
+ c.java_persistentClass=self
68
+ c.uml_name=uml_name_one+"DAO"
69
+
70
+ i = umlx_getOrCreateClass("#{DAO::DAOInterface}<#{uml_name_one},Long>");
71
+ i.db_isTransient=RDF_TRUE
72
+ i.java_isGeneric=RDF_TRUE
73
+ c.umlx_createAndAddGeneralization(i)
74
+
75
+ self.jpa_addNamedQuery
76
+
77
+ log.debug { "DAO added: #{c.uml_name} in #{c.umlx_package.uml_name}"}
78
+ c.java_import_add(DAO::DAOQualifiedInterface)
79
+ c.java_import_add("#{self.java_qualifiedName}")
80
+ end
81
+
82
+ def jpa_addNamedQuery
83
+ namedQuery = "@javax.persistence.NamedQueries( {\n"
84
+ namedQuery << " @javax.persistence.NamedQuery( name = \"#{self.java_Name}.readPopulated\",\n"
85
+ namedQuery << " query = \"select distinct #{self.java_Name.downcase} from #{self.java_Name} #{self.java_Name.downcase} "
86
+ umlx_ownedAndInheritedAttribute.each { |a|
87
+ next if a.uml_type_one.db_isTransient?
88
+ next if a.uml_isDerived?
89
+ if !a.umlx_isAttribute?
90
+ namedQuery << jpa_addNamedQueryToAssociation!(a)
91
+ end
92
+ }
93
+ namedQuery << " where #{self.java_Name.downcase}.id=?\" )"
94
+
95
+ namedQuery += "})"
96
+ self.java_annotation_add(namedQuery)
97
+ end
98
+
99
+ def jpa_addNamedQueryToAssociation!(a)
100
+ return "left outer join fetch #{self.java_Name.downcase}.#{a.java_Name} "
101
+ end
102
+
103
+ end
@@ -0,0 +1,83 @@
1
+ module Muml_Classifier
2
+
3
+ def java_generate_equalsAndHash
4
+ ret=Set.new
5
+ uml_ownedAttribute.each {|biz|
6
+ ret << biz if biz.umlx_hasStereotype?("EqualsValue")
7
+ }
8
+ if !ret.empty?
9
+ java_generateEquals(ret, !crank_isTopCrankBean)
10
+ java_generateHashCode(ret)
11
+ end
12
+ end
13
+
14
+
15
+ def java_generateEquals(ret, callSuperEquals)
16
+ me=self.umlx_createAndAddOperation(self.rdf_uri+"_equals")
17
+ me.uml_name="equals"
18
+ # me.uml_class=self
19
+ me.uml_visibility=Cuml_VisibilityKind::Public
20
+ rme=me.umlx_createAndAddReturnParameter("#{me.rdf_uri}_ret")
21
+ rme.uml_type=umlx_getOrCreateDataType("boolean")
22
+ rpe=me.umlx_createAndAddParameter("#{me.rdf_uri}_par", "o")
23
+ rpe.uml_type=umlx_getOrCreateClass("Object")
24
+ me.java_annotation_add("@Override")
25
+ meCode = <<CODE
26
+ if(this == o) {
27
+ return true;
28
+ }
29
+ if(o==null || !(o instanceof #{self.java_Name})) {
30
+ return false;
31
+ }
32
+ CODE
33
+ if callSuperEquals
34
+ meCode << <<CODE
35
+ if !super.equals(o) {
36
+ return false;
37
+ }
38
+ CODE
39
+ end
40
+ meCode << <<CODE
41
+ final #{self.java_Name} _o = (#{self.java_Name}) o;
42
+ CODE
43
+ ret.each { |a|
44
+ meCode << <<CODE
45
+ if (#{a.java_Name} != null ?
46
+ !#{a.java_Name}.equals(_o.#{a.java_Name}) :
47
+ _o.#{a.java_Name} != null) {
48
+ return false;
49
+ }
50
+ CODE
51
+ }
52
+ meCode << <<CODE
53
+ return true;
54
+ CODE
55
+ me.java_code = meCode
56
+ end
57
+
58
+
59
+ def java_generateHashCode(ret)
60
+ me=self.umlx_createAndAddOperation(self.rdf_uri+"_hash")
61
+ me.uml_name="hashCode"
62
+ me.uml_class=self
63
+ me.uml_visibility=Cuml_VisibilityKind::Public
64
+ rme=me.umlx_createAndAddReturnParameter("#{me.rdf_uri}_ret")
65
+ rme.uml_type=umlx_getOrCreateDataType("int")
66
+ me.java_annotation_add("@Override")
67
+ meCode = <<CODE
68
+ final int prime = 31;
69
+ int result = 1;
70
+ CODE
71
+ ret.each { |a|
72
+ meCode << <<CODE
73
+ result = prime * result + ((#{a.java_Name} == null) ? 0 : #{a.java_Name}.hashCode());
74
+ CODE
75
+ }
76
+ meCode << <<CODE
77
+ return result;
78
+ CODE
79
+ me.java_code = meCode
80
+
81
+ end
82
+
83
+ end
@@ -0,0 +1,243 @@
1
+
2
+
3
+ module Muml_Classifier
4
+
5
+ def crank_generate_listing
6
+ mtk_writeSession("#{context[:webContentDir]}/pages/crud/#{self.java_Name}/Listing.xhtml") {
7
+ write <<END
8
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
9
+ <html xmlns="http://www.w3.org/1999/xhtml"
10
+ xmlns:ui="http://java.sun.com/jsf/facelets"
11
+ xmlns:h="http://java.sun.com/jsf/html"
12
+ xmlns:f="http://java.sun.com/jsf/core"
13
+ xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
14
+ xmlns:rich="http://richfaces.ajax4jsf.org/rich"
15
+ xmlns:c="http://java.sun.com/jstl/core"
16
+ xmlns:crank="http://www.googlecode.com/crank"
17
+ >
18
+ <ui:composition template="/templates/layout.xhtml">
19
+ <ui:define name="javascript">
20
+ <script type="text/javascript" src="${request.contextPath}/js/jquery.js"/>
21
+ <script type="text/javascript" src="${request.contextPath}/js/messages.js"/>
22
+ <script type="text/javascript" src="${request.contextPath}/js/details.js"/>
23
+ </ui:define>
24
+ <ui:define name="content">
25
+
26
+ <h:outputText value="#{self.java_Name}s" styleClass="pageTitle"/>
27
+
28
+ <a4j:region renderRegionOnly="false">
29
+ <a4j:form id="${daoName}ListForm">
30
+ <crank:listing
31
+ paginator="${paginators['#{self.java_Name}']}"
32
+ jsfCrudAdapter="${cruds['#{self.java_Name}']}"
33
+ propertyNames="#{self.crank_listingProperties}"
34
+ pageTitle="${daoName}"
35
+ parentForm="${daoName}ListForm"
36
+ reRender="${daoName}ListForm"
37
+ crud="${cruds['#{self.java_Name}'].controller}"
38
+ END
39
+ if crank_hasCrankBeanChild?
40
+ write <<END
41
+
42
+ clazzs="
43
+ END
44
+ isFirstSubclazz = true
45
+ crank_subCrankBean.each{|c|
46
+ if isFirstSubclazz
47
+ isFirstSubclazz = false
48
+ elsif
49
+ write ","
50
+ end
51
+ write "#{c.java_Name}"
52
+ }
53
+ write "\""
54
+ end
55
+
56
+ write <<END
57
+ />
58
+ </a4j:form>
59
+ </a4j:region>
60
+
61
+
62
+ </ui:define>
63
+ </ui:composition>
64
+ </html>
65
+ END
66
+ }
67
+ end
68
+
69
+
70
+ def crank_generate_form
71
+ mtk_writeSession("#{context[:webContentDir]}/pages/crud/#{self.java_Name}/Form.xhtml") {
72
+ write <<END
73
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
74
+ <html xmlns="http://www.w3.org/1999/xhtml"
75
+ xmlns:ui="http://java.sun.com/jsf/facelets"
76
+ xmlns:h="http://java.sun.com/jsf/html"
77
+ xmlns:f="http://java.sun.com/jsf/core"
78
+ xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
79
+ xmlns:rich="http://richfaces.ajax4jsf.org/rich"
80
+ xmlns:c="http://java.sun.com/jstl/core"
81
+ xmlns:crank="http://www.googlecode.com/crank"
82
+ xmlns:validation="http://code.google.com/p/krank/validation"
83
+ >
84
+
85
+ <ui:composition template="/templates/layout.xhtml">
86
+ <ui:define name="content">
87
+
88
+ <c:set var="adapter" value="${#{self.java_Name.downcase}Crud}" />
89
+ <c:set var="crud" value="${adapter.controller}" />
90
+
91
+ <span class="pageTitle">#{self.java_Name} Entry Form</span>
92
+
93
+ <a4j:region renderRegionOnly="false">
94
+ <a4j:form
95
+ id="#{self.java_Name.downcase}Form">
96
+
97
+ <crank:form
98
+ crud="${crud}"
99
+ parentForm="#{self.java_Name.downcase}Form"
100
+ propertyNames="#{self.crank_editSimpleProperties}"
101
+ readOnlyProperties="#{self.crank_readOnlyProperties}">
102
+ #{crank_crud_relationship}
103
+ </crank:form>
104
+ </a4j:form>
105
+ </a4j:region>
106
+
107
+ </ui:define>
108
+ </ui:composition>
109
+ </html>
110
+ END
111
+ }
112
+ end
113
+
114
+
115
+ def crank_crud_relationship
116
+ rel = ""
117
+ rels = eachCrankBeanRelations
118
+ rels.each { |a|
119
+ if !a.umlx_isComposite? && !a.java_isManyAssociation?
120
+ rel << crank_simpleRelationHelper(a)
121
+ end
122
+ }
123
+ bManyAsociation = false
124
+ rels.each { |a|
125
+ if !a.umlx_isComposite? && a.java_isManyAssociation?
126
+ if !bManyAsociation
127
+ rel << "<rich:tabPanel width=\"100%\">\n"
128
+ bManyAsociation = true
129
+ end
130
+ rel << " <rich:tab label=\"${crud:createLabel('#{a.java_Name}')}\">\n"
131
+ rel << crank_simpleRelationHelper(a)
132
+ rel << " </rich:tab>\n"
133
+ end
134
+ }
135
+ if bManyAsociation
136
+ rel << "</rich:tabPanel>\n"
137
+ end
138
+ bManyAsociation = false
139
+ rels.each { |a|
140
+ if a.crank_isMasterFromMasterDetail?
141
+ if !bManyAsociation
142
+ rel << "<rich:tabPanel width=\"100%\">\n"
143
+ bManyAsociation = true
144
+ end
145
+ rel << " <rich:tab label=\"${crud:createLabel('#{a.java_Name}')}\">\n"
146
+ rel << crank_masterDetailRelationHelper(a)
147
+ rel << " </rich:tab>\n"
148
+ end
149
+ }
150
+ if bManyAsociation
151
+ rel << "</rich:tabPanel>\n"
152
+ end
153
+ return rel
154
+ end
155
+
156
+ def crank_simpleRelationHelper(a)
157
+ rel=""
158
+ if a.java_isManyAssociation?
159
+ rel += " <crank:selectManyExtended jsfSelectManyController="
160
+ elsif
161
+ rel += " <crank:selectOneListing jsfSelectOneController="
162
+ end
163
+ rel +=<<CODE
164
+ "${#{a.java_Name.downcase}From#{java_Name}To#{a.uml_type_one.java_Name}Controller}"
165
+ propertyNames="#{a.uml_type_one.crank_listingProperties}"
166
+ parentForm="#{self.java_Name.downcase}Form" editRelation="${true}"
167
+ />
168
+
169
+ CODE
170
+ return rel
171
+ end
172
+
173
+ def crank_masterDetailRelationHelper(a)
174
+ rel=<<CODE
175
+ <crank:detailListingExtended detailController="${#{a.java_Name.downcase}From#{java_Name}To#{a.uml_type_one.java_Name}Controller}"
176
+ propertyNames="#{a.uml_type_one.crank_listingProperties}" editRelation="${true}"
177
+ CODE
178
+ if a.uml_type_one.crank_hasCrankBeanChild?
179
+ rel << " clazzs=\""
180
+ isFirstSubclazz = true
181
+ a.uml_type_one.crank_subCrankBean.each{|c|
182
+ if isFirstSubclazz
183
+ isFirstSubclazz = false
184
+ elsif
185
+ rel << ","
186
+ end
187
+ rel << "#{c.java_Name}"
188
+ }
189
+ rel << "\""
190
+ end
191
+ rel << " />\n"
192
+ return rel
193
+ end
194
+
195
+ def crank_listingProperties
196
+ attributes = nil
197
+ umlx_ownedAndInheritedAttribute.each { |a|
198
+ next if a.umlx_isComposite?
199
+ next unless a.umlx_isAttribute?
200
+ #next if a.uml_type_one.db_isTransient?
201
+ next if a.uml_isStatic?
202
+ next if a.uml_isReadOnly?
203
+ next if "id" == "#{a.java_Name}" #TODO Faire mieux
204
+ next if "objectVersion" == "#{a.java_Name}" #TODO Faire mieux
205
+ if attributes.nil?
206
+ attributes = "#{a.java_Name}"
207
+ else
208
+ attributes << ",#{a.java_Name}"
209
+ end
210
+ }
211
+ if (attributes.nil?)
212
+ attributes = ""
213
+ end
214
+ return attributes
215
+ end
216
+
217
+ def crank_readOnlyProperties
218
+ attributes = nil
219
+ umlx_ownedAndInheritedAttribute.each { |a|
220
+ next if a.umlx_isComposite?
221
+ next unless a.umlx_isAttribute?
222
+ #next if a.uml_type_one.db_isTransient?
223
+ next if a.uml_isStatic?
224
+ next if !a.uml_isReadOnly?
225
+ next if "id" == "#{a.java_Name}" #TODO Faire mieux
226
+ next if "objectVersion" == "#{a.java_Name}" #TODO Faire mieux
227
+ if attributes.nil?
228
+ attributes = "#{a.java_Name}"
229
+ else
230
+ attributes << ",#{a.java_Name}"
231
+ end
232
+ }
233
+ if (attributes.nil?)
234
+ attributes = ""
235
+ end
236
+ return attributes
237
+ end
238
+
239
+ def crank_editSimpleProperties
240
+ return crank_listingProperties
241
+ end
242
+
243
+ end
@@ -0,0 +1,113 @@
1
+
2
+ module Mrdf_Repository
3
+
4
+
5
+
6
+
7
+ def crank_faces_header
8
+ write <<END
9
+ <?xml version="1.0"?>
10
+ <faces-config xmlns="http://java.sun.com/xml/ns/javaee"
11
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
12
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
13
+ version="1.2">
14
+
15
+ <!--
16
+ <lifecycle>
17
+ <phase-listener>org.crank.jsf.support.DebugPhaseListener</phase-listener>
18
+ </lifecycle>
19
+ -->
20
+
21
+ <application>
22
+ <action-listener>org.crank.crud.jsf.support.JsfMessageActionListener</action-listener>
23
+ <variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
24
+ <message-bundle>messages</message-bundle>
25
+ </application>
26
+
27
+ <!--
28
+ <component>
29
+ <component-type>org.crank.javax.faces.SelectOne</component-type>
30
+ <component-class>org.crank.javax.faces.component.UISelectOne</component-class>
31
+ </component>
32
+ <render-kit>
33
+ <renderer>
34
+ <component-family>javax.faces.SelectOne</component-family>
35
+ <renderer-type>org.crank.javax.faces.Listbox</renderer-type>
36
+ <renderer-class>
37
+ org.crank.javax.faces.component.ListboxRenderer
38
+ </renderer-class>
39
+ </renderer>
40
+
41
+ </render-kit>
42
+ -->
43
+
44
+ <navigation-rule>
45
+ <navigation-case>
46
+ <from-outcome>HOME</from-outcome>
47
+ <to-view-id>/pages/Home.xhtml</to-view-id>
48
+ </navigation-case>
49
+ </navigation-rule>
50
+ END
51
+ end
52
+
53
+
54
+ def crank_faces_footer
55
+ if context[:crankXmdaNav]
56
+ write <<END
57
+ <navigation-rule>
58
+ <from-view-id>/pages/crud/*</from-view-id>
59
+ <navigation-case>
60
+ <from-outcome>LISTING</from-outcome>
61
+ <to-view-id>\#{%sCrudProxy.crudViewHandler.calculateListingViewId}</to-view-id>
62
+ </navigation-case>
63
+ <navigation-case>
64
+ <from-outcome>FORM</from-outcome>
65
+ <to-view-id>\#{%sCrudProxy.crudViewHandler.calculateFormViewId}</to-view-id>
66
+ </navigation-case>
67
+ </navigation-rule>
68
+ END
69
+ end
70
+ write <<END
71
+
72
+ </faces-config>
73
+ END
74
+ end
75
+
76
+ def crank_faces_crankbean
77
+ eachCrankBean.each { |c|
78
+ write <<BEAN
79
+ <navigation-rule>
80
+ <navigation-case>
81
+ <from-outcome>#{c.java_Name.upcase}</from-outcome>
82
+ <to-view-id>/pages/crud/#{c.java_Name}/Listing.xhtml</to-view-id>
83
+ </navigation-case>
84
+ </navigation-rule>
85
+
86
+ <navigation-rule>
87
+ <navigation-case>
88
+ <from-outcome>#{c.java_Name.upcase}_FORM</from-outcome>
89
+ <to-view-id>/pages/crud/#{c.java_Name}/Form.xhtml</to-view-id>
90
+ </navigation-case>
91
+ </navigation-rule>
92
+
93
+ BEAN
94
+ if !context[:crankXmdaNav]
95
+ write <<BEAN
96
+ <navigation-rule>
97
+ <from-view-id>/pages/crud/#{c.java_Name}/*</from-view-id>
98
+ <navigation-case>
99
+ <from-outcome>LISTING</from-outcome>
100
+ <to-view-id>/pages/crud/#{c.java_Name}/Listing.xhtml</to-view-id>
101
+ </navigation-case>
102
+ <navigation-case>
103
+ <from-outcome>FORM</from-outcome>
104
+ <to-view-id>/pages/crud/#{c.java_Name}/Form.xhtml</to-view-id>
105
+ </navigation-case>
106
+ </navigation-rule>
107
+
108
+ BEAN
109
+ end
110
+ }
111
+ end
112
+
113
+ end