ontomde-java 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +10 -0
- data/Manifest.txt +156 -0
- data/README.txt +98 -0
- data/Rakefile +21 -0
- data/bin/ontomde-java +5 -0
- data/generateRdocFile.sh +16 -0
- data/lib/ontomde-java.rb +45 -0
- data/lib/ontomde-java/crank.rb +13 -0
- data/lib/ontomde-java/crank/context.rb +384 -0
- data/lib/ontomde-java/crank/crankJpa.rb +103 -0
- data/lib/ontomde-java/crank/equals.rb +83 -0
- data/lib/ontomde-java/crank/facelets.rb +243 -0
- data/lib/ontomde-java/crank/facesconfig.rb +113 -0
- data/lib/ontomde-java/crank/helper.rb +46 -0
- data/lib/ontomde-java/crank/main.rb +51 -0
- data/lib/ontomde-java/crank/menu.rb +39 -0
- data/lib/ontomde-java/crank/menu2.rb +78 -0
- data/lib/ontomde-java/crank/validation.rb +34 -0
- data/lib/ontomde-java/ejb2.rb +3 -0
- data/lib/ontomde-java/ejb2/main-ejb2.rb +194 -0
- data/lib/ontomde-java/flex.rb +7 -0
- data/lib/ontomde-java/flex/Editor.mxml.as.rb +184 -0
- data/lib/ontomde-java/flex/Editor.mxml.rb +701 -0
- data/lib/ontomde-java/flex/ImportationAS.rb +40 -0
- data/lib/ontomde-java/flex/ValueObjectAS.rb +338 -0
- data/lib/ontomde-java/flex/fileTypes.rb +19 -0
- data/lib/ontomde-java/flex/main.rb +347 -0
- data/lib/ontomde-java/frontend/command.rb +324 -0
- data/lib/ontomde-java/frontend/command.rdoc +583 -0
- data/lib/ontomde-java/frontend/defaultOptions.rb +124 -0
- data/lib/ontomde-java/frontend/options.rb +555 -0
- data/lib/ontomde-java/frontend/steps.rb +287 -0
- data/lib/ontomde-java/java/accessorCode.rb +528 -0
- data/lib/ontomde-java/java/accessorSignature.rb +347 -0
- data/lib/ontomde-java/java/annotationOntoMDE.rb +88 -0
- data/lib/ontomde-java/java/apache.rb +34 -0
- data/lib/ontomde-java/java/build.rb +80 -0
- data/lib/ontomde-java/java/collectionMapping.rb +112 -0
- data/lib/ontomde-java/java/component.rb +446 -0
- data/lib/ontomde-java/java/contextualize.rb +43 -0
- data/lib/ontomde-java/java/enumAssignable.rb +75 -0
- data/lib/ontomde-java/java/enumCompatibilityLayer.rb +195 -0
- data/lib/ontomde-java/java/equals.rb +91 -0
- data/lib/ontomde-java/java/groovy.rb +95 -0
- data/lib/ontomde-java/java/java.rb +1329 -0
- data/lib/ontomde-java/java/java.rdoc +78 -0
- data/lib/ontomde-java/java/javaDatatypeMapping.rb +156 -0
- data/lib/ontomde-java/java/javaHelper.rb +25 -0
- data/lib/ontomde-java/java/java_todo.rdoc +3 -0
- data/lib/ontomde-java/java/javadoc.rb +254 -0
- data/lib/ontomde-java/java/meta.rb +28 -0
- data/lib/ontomde-java/java/operationAsClass.rb +144 -0
- data/lib/ontomde-java/java/security.rb +260 -0
- data/lib/ontomde-java/java/stateMachine.rb +415 -0
- data/lib/ontomde-java/java/tenant.rb +65 -0
- data/lib/ontomde-java/java/xsd.rb +1363 -0
- data/lib/ontomde-java/java/xsdCollectionMapping.rb +112 -0
- data/lib/ontomde-java/java/xsdDatatypeMapping.rb +103 -0
- data/lib/ontomde-java/jpa.rb +17 -0
- data/lib/ontomde-java/jpa/configuration.rb +176 -0
- data/lib/ontomde-java/jpa/finder.rb +102 -0
- data/lib/ontomde-java/jpa/jpa.rb +531 -0
- data/lib/ontomde-java/jpa/jpa.rdoc +20 -0
- data/lib/ontomde-java/jpa/locking.rb +18 -0
- data/lib/ontomde-java/jpa/mapping.rb +314 -0
- data/lib/ontomde-java/jpa/redefined.rb +77 -0
- data/lib/ontomde-java/jpa/simulationAutoImplement.rb +54 -0
- data/lib/ontomde-java/jpdl.rb +9 -0
- data/lib/ontomde-java/jpdl/bpm.pprj +1745 -0
- data/lib/ontomde-java/jpdl/bpm.rdf +140 -0
- data/lib/ontomde-java/jpdl/bpm.rdfs +231 -0
- data/lib/ontomde-java/jpdl/constant.rb +5 -0
- data/lib/ontomde-java/jpdl/graphic.rb +52 -0
- data/lib/ontomde-java/jpdl/jpdl.rb +281 -0
- data/lib/ontomde-java/jpdl/jpdl_deploy.rb +114 -0
- data/lib/ontomde-java/jpdl/main.rb +348 -0
- data/lib/ontomde-java/jpdl/main.rdoc +2 -0
- data/lib/ontomde-java/jpdl/processOperationToClass.rb +316 -0
- data/lib/ontomde-java/kbjava.rb +6 -0
- data/lib/ontomde-java/kbjava/rdfToJava.rb +407 -0
- data/lib/ontomde-java/struts.rb +27 -0
- data/lib/ontomde-java/struts/MessageResources.rb +359 -0
- data/lib/ontomde-java/struts/action.rb +883 -0
- data/lib/ontomde-java/struts/blob.rb +11 -0
- data/lib/ontomde-java/struts/exceptionHandling.rb +167 -0
- data/lib/ontomde-java/struts/footer.rb +128 -0
- data/lib/ontomde-java/struts/form.rb +450 -0
- data/lib/ontomde-java/struts/header.rb +37 -0
- data/lib/ontomde-java/struts/header_link.rb +39 -0
- data/lib/ontomde-java/struts/jsp_edit.rb +870 -0
- data/lib/ontomde-java/struts/jsp_edit_field.rb +1 -0
- data/lib/ontomde-java/struts/jsp_edit_js.rb +124 -0
- data/lib/ontomde-java/struts/jsp_index.rb +136 -0
- data/lib/ontomde-java/struts/localeAction.rb +641 -0
- data/lib/ontomde-java/struts/main.rb +41 -0
- data/lib/ontomde-java/struts/mappingForBean.rb +132 -0
- data/lib/ontomde-java/struts/mappingForJsp.rb +272 -0
- data/lib/ontomde-java/struts/mappingToJavaHierarchy.rb +87 -0
- data/lib/ontomde-java/struts/reloadAction.rb +33 -0
- data/lib/ontomde-java/struts/spring.rb +89 -0
- data/lib/ontomde-java/struts/struts-config.rb +232 -0
- data/lib/ontomde-java/struts/validation.rb +116 -0
- data/lib/ontomde-java/struts/validator.rb +341 -0
- data/lib/ontomde-java/struts/webXml.rb +195 -0
- data/lib/ontomde-java/struts/xmlForm.rb +308 -0
- data/lib/ontomde-java/version.rb +5 -0
- data/profiling.xls +0 -0
- data/test/.classpath +14 -0
- data/test/.project +17 -0
- data/test/.settings/org.eclipse.jdt.core.prefs +23 -0
- data/test/Rakefile +71 -0
- data/test/build.xml +34 -0
- data/test/classpath.rb +15 -0
- data/test/lib/junit-4.1.jar +0 -0
- data/test/load1.rb +3 -0
- data/test/load2.rb +3 -0
- data/test/log4j.properties +46 -0
- data/test/model/.project +11 -0
- data/test/model/BigProject.mdzip +0 -0
- data/test/model/BigProject.mdzip.nt +102866 -0
- data/test/model/ClassDiagram.EntArch.gif +0 -0
- data/test/model/ClassDiagram.emx.gif +0 -0
- data/test/model/ClassDiagram.mdzip.gif +0 -0
- data/test/model/model_ea71.bis.ea.xmi +149 -0
- data/test/model/model_ea71.ea.xmi +4470 -0
- data/test/model/model_ea71.eap +0 -0
- data/test/model/model_ea71_README.txt +8 -0
- data/test/model/multipleInheritance.emx +466 -0
- data/test/model/multipleInheritance.emx.nt +2428 -0
- data/test/model/simple1-530.ofp +0 -0
- data/test/model/simple1-includedAsReference.emx +169 -0
- data/test/model/simple1.emx +3729 -0
- data/test/model/simple1.emx.fragments.nt +81 -0
- data/test/model/simple1.emx.nt +5760 -0
- data/test/model/simple1.mdzip +0 -0
- data/test/model/simple1.mdzip.nt +11500 -0
- data/test/model/simple1.oe530.nt +1986 -0
- data/test/model/simple1.oe600.nt +1627 -0
- data/test/src/RuntimeTest.java +656 -0
- data/test/src/testsLevel1.java +174 -0
- data/test/src/testsLevel2.java +29 -0
- data/test/src/testsLevel3.java +40 -0
- data/test/test-ea7.sh +15 -0
- data/test/test-magicDraw.sh +10 -0
- data/test/test-mi.sh +9 -0
- data/test/test-oe530.sh +10 -0
- data/test/test-oe600.sh +11 -0
- data/test/test-rsm.sh +11 -0
- data/test/test_export_ea71.rb +5 -0
- data/test/test_export_oe530.rb +4 -0
- data/test/test_export_oe600.rb +4 -0
- data/test/test_export_rsm60.rb +4 -0
- data/test/trace +419 -0
- data/test/uml_test.rb +1434 -0
- data/test/uml_test.xls +0 -0
- data/test/unit_test.rb +6 -0
- metadata +224 -0
@@ -0,0 +1,41 @@
|
|
1
|
+
|
2
|
+
module Mrdf_Repository
|
3
|
+
|
4
|
+
# returns a list of classifier which are "viewable"
|
5
|
+
# (for which a GUI should be created)
|
6
|
+
def struts_viewableClassifier(ignoreAbstract=true)
|
7
|
+
ret=Array.new
|
8
|
+
uml_Class_all.each { |c|
|
9
|
+
next unless (c.kind_of?(Muml_Class) && c.umlx_isReallyAClass?) #TODO: for jdo || c.kind_of?(Muml_Interface)
|
10
|
+
next if c.java_ignoreMe?
|
11
|
+
next if c.struts_isForm?
|
12
|
+
#next if c.java_isATestFile?
|
13
|
+
|
14
|
+
#TODO: Hack for human task (bug if MPC in name)!
|
15
|
+
if context[:db_useStereotypeMarker] && !"#{c.uml_name}".include?("MPC")
|
16
|
+
next if c.db_isTransient?
|
17
|
+
end
|
18
|
+
|
19
|
+
next if c.umlx_hasStereotype?('DTO')
|
20
|
+
|
21
|
+
next if c.db_isDAO?
|
22
|
+
next unless c.umlx_businessMethod?
|
23
|
+
#no struts for abstract classes
|
24
|
+
next if c.uml_isAbstract? && ignoreAbstract
|
25
|
+
ret<< c
|
26
|
+
}
|
27
|
+
return ret
|
28
|
+
end
|
29
|
+
|
30
|
+
# adds struts forms and struts action classes for each #struts_viewableClassifier.
|
31
|
+
def struts_addPerClassElement!
|
32
|
+
struts_viewableClassifier.each { |c|
|
33
|
+
c.struts_addActionForm!
|
34
|
+
}
|
35
|
+
struts_viewableClassifier.each { |c|
|
36
|
+
next if c.struts_actionForm_one0.nil?
|
37
|
+
c.struts_addAction!
|
38
|
+
}
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -0,0 +1,132 @@
|
|
1
|
+
#defines mapping between struts bean types (string,boolean,...) and strings
|
2
|
+
|
3
|
+
|
4
|
+
class DatatypeMapping
|
5
|
+
#returns code to be inserted in struts form copyTo
|
6
|
+
#def getFormCopyTo(field)
|
7
|
+
# # inheriting class should redefine this method
|
8
|
+
# log.error %{getFormCopyTo not implemented for #{self.class}}
|
9
|
+
# return %{/* TODO: implement ruby getFormCopyTo for #{self.class}*/}
|
10
|
+
#end
|
11
|
+
#returns code to be inserted in struts form initFrom
|
12
|
+
#def getFormInitFrom(field)
|
13
|
+
# # inheriting class should redefine this method
|
14
|
+
# log.error %{getFormInitFrom not implemented for #{self.class}}
|
15
|
+
# return %{/* TODO: implement ruby getFormInitFrom for #{self.class}*/}
|
16
|
+
#end
|
17
|
+
def getFormCopyTo(field)
|
18
|
+
return %{_to.set#{field.java_NameBean}(#{java_getJavaParse(%{this.get#{field.java_NameBean}()})});\n}
|
19
|
+
end
|
20
|
+
def getFormInitFrom(field)
|
21
|
+
return %{this.set#{field.java_NameBean}(#{java_getJavaToString(%{_from.get#{field.java_NameBean}()})});\n}
|
22
|
+
end
|
23
|
+
def getFormType(field)
|
24
|
+
return field.umlx_dataType_string
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
class DatatypeMappingText < DatatypeMapping
|
30
|
+
def java_getJavaToString(jsrc)
|
31
|
+
return jsrc
|
32
|
+
end
|
33
|
+
def java_getJavaParse(jsrc)
|
34
|
+
return jsrc
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
class DatatypeMappingInteger < DatatypeMappingOrdinal
|
39
|
+
def java_getJavaToString(jsrc)
|
40
|
+
return "Integer.toString(#{jsrc})"
|
41
|
+
end
|
42
|
+
def java_getJavaParse(jsrc)
|
43
|
+
return "Integer.parseInt(#{jsrc})"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
class DatatypeMappingLong < DatatypeMappingOrdinal
|
48
|
+
def java_getJavaToString(jsrc)
|
49
|
+
return "Long.toString(#{jsrc})"
|
50
|
+
end
|
51
|
+
def java_getJavaParse(jsrc)
|
52
|
+
return "Long.parseLong(#{jsrc})"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
class DatatypeMappingLongObject < DatatypeMappingOrdinal
|
57
|
+
def java_getJavaToString(jsrc)
|
58
|
+
# cast is to make sure we have a Long and avoid difficult debugging
|
59
|
+
return "((Long)#{jsrc}).toString()"
|
60
|
+
end
|
61
|
+
def java_getJavaParse(jsrc)
|
62
|
+
return "((Long)Long.parseLong(#{jsrc}))"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
class DatatypeMappingFile < DatatypeMapping
|
67
|
+
def getFormCopyTo(field)
|
68
|
+
"/* not implemented #{field} */\n"
|
69
|
+
#super # TODO
|
70
|
+
# /*TPL:9004*/"
|
71
|
+
end
|
72
|
+
def getFormInitFrom(field)
|
73
|
+
"/* not implemented #{field} */\n"
|
74
|
+
#super # TODO
|
75
|
+
# /*TPL:9004*/"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
class DatatypeMappingBoolean < DatatypeMapping
|
80
|
+
def java_getJavaToString(jsrc)
|
81
|
+
return %{((#{jsrc}) ? "true" : "false")}
|
82
|
+
end
|
83
|
+
def java_getJavaParse(jsrc)
|
84
|
+
return %{((#{jsrc}).compareTo("true")==0)}
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
class DatatypeMappingTimeStamp < DatatypeMapping
|
89
|
+
def getFormCopyTo(field)
|
90
|
+
return %{
|
91
|
+
if(get#{field.java_NameBean}().length()>0) { try {
|
92
|
+
java.util.Date local=#{::Muml_Classifier::STRUTS_TIMESTAMP_FORMATER_INSTANCE}.parse(get#{field.java_NameBean}());
|
93
|
+
java.util.Date gmt = xmda.struts.FormHelper.transformFromCurrentTZToGMT(currentTimeZone, local);
|
94
|
+
// the date is saved in the GMT timeZone
|
95
|
+
_to.set#{field.java_NameBean}(gmt);
|
96
|
+
} catch(java.text.ParseException e) { log.error(e);}\n
|
97
|
+
}}
|
98
|
+
end
|
99
|
+
|
100
|
+
def getFormInitFrom(field)
|
101
|
+
return "this.set#{field.java_NameBean}(_from.get#{field.java_NameBean}()==null?null:#{::Muml_Classifier::STRUTS_TIMESTAMP_FORMATER_INSTANCE}.format(xmda.struts.FormHelper.transformFromGMTToCurrentTZ(currentTimeZone,_from.get#{field.java_NameBean}())));\n"
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
class DatatypeMappingCalendar < DatatypeMapping
|
106
|
+
def getFormCopyTo(field)
|
107
|
+
return "if(get#{field.java_NameBean}().length()>0){try {_to.set#{field.java_NameBean}(#{::Muml_Classifier::STRUTS_DATE_FORMATER_INSTANCE}.parse(get#{field.java_NameBean}()));\n} catch(java.text.ParseException e) {log.error(e);}}\n"
|
108
|
+
end
|
109
|
+
|
110
|
+
def getFormInitFrom(field)
|
111
|
+
return "this.set#{field.java_NameBean}(_from.get#{field.java_NameBean}()==null?null:#{::Muml_Classifier::STRUTS_DATE_FORMATER_INSTANCE}.format(_from.get#{field.java_NameBean}()));\n"
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
class DatatypeMappingBLOB < DatatypeMapping
|
116
|
+
def getFormType(field)
|
117
|
+
return field.umlx_getOrCreateClass("org.apache.struts.upload.FormFile")
|
118
|
+
end
|
119
|
+
def getFormCopyTo(field)
|
120
|
+
return "try {_to.set#{field.java_NameBean}(get#{field.java_NameBean}().getFileData());\n} catch(java.io.FileNotFoundException e) {log.error(e);} catch(java.io.IOException e2){log.error(e2);}\n"
|
121
|
+
end
|
122
|
+
|
123
|
+
def getFormInitFrom(field)
|
124
|
+
return ""
|
125
|
+
#return "this.set#{field.java_NameBean}(_from.get#{field.java_NameBean}()==null?null:#{::Muml_Classifier::STRUTS_DATE_FORMATER_INSTANCE}.format(_from.get#{field.java_NameBean}()));\n"
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
class DatatypeMappingGRAPHVIZ < DatatypeMappingLargeText
|
130
|
+
end
|
131
|
+
|
132
|
+
|
@@ -0,0 +1,272 @@
|
|
1
|
+
# JSP mapping for data types, enums and classes
|
2
|
+
|
3
|
+
|
4
|
+
class DatatypeMapping
|
5
|
+
#returns true if this templates applies to datatype
|
6
|
+
def getJSP(datatype,field,owner)
|
7
|
+
# inheriting class should redefine this method
|
8
|
+
log.error %{getJSP not implemented for #{self.class}}
|
9
|
+
return %{<!-- TODO: implement ruby getJSP for #{self.class} --!>}
|
10
|
+
end
|
11
|
+
|
12
|
+
#adds special action for this type
|
13
|
+
def addActionFieldMethod!(field,action,form)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
class DatatypeMappingText < DatatypeMapping
|
20
|
+
def getJSP(datatype,field,owner)
|
21
|
+
n=datatype.java_Name.downcase #TODO
|
22
|
+
return %{<html:text property="#{field.java_Name}" size="20%" maxlength="#{self.maxStringLength}" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class DatatypeMappingLargeText < DatatypeMappingText
|
27
|
+
def getJSP(datatype,field,owner)
|
28
|
+
n=datatype.java_Name.downcase #TODO
|
29
|
+
#maxlength not supported by textarea
|
30
|
+
return %{<html:textarea property="#{field.java_Name}" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>}
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class DatatypeMappingURL < DatatypeMappingText
|
35
|
+
def getJSP(datatype,field,owner)
|
36
|
+
# cf: http://www.osix.net/modules/article/?id=586
|
37
|
+
n=datatype.java_Name.downcase #TODO
|
38
|
+
return <<END
|
39
|
+
<html:text property="#{field.java_Name}" size="20%" maxlength="#{self.maxStringLength}" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE} disabled="true"/>
|
40
|
+
|
41
|
+
<a onclick="javascript:document.getElementById('#{n}').disabled=false;document.getElementById('#{n}').value='';;">
|
42
|
+
<img src="res//orange/image/edit.gif" />
|
43
|
+
</a> <a onclick="javascript:window.open(document.forms[0].#{field.java_Name}.value);return false">
|
44
|
+
<img src="res//orange/image/go.gif" />
|
45
|
+
</a>
|
46
|
+
END
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
class DatatypeMappingInteger < DatatypeMappingOrdinal
|
52
|
+
def getJSP(datatype,field,owner)
|
53
|
+
super
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
class DatatypeMappingLong < DatatypeMappingOrdinal
|
58
|
+
def getJSP(datatype,field,owner)
|
59
|
+
super
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
class DatatypeMappingFile < DatatypeMapping
|
64
|
+
def getJSP(datatype,field,owner)
|
65
|
+
n=datatype.java_Name.downcase #TODO
|
66
|
+
return %{<html:file property="#{field.java_Name}" size="20%" maxlength="30" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>}
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
class DatatypeMappingBoolean < DatatypeMapping
|
71
|
+
def getJSP(datatype,field,owner)
|
72
|
+
if field.context[:jspUseXmdaTaglib]
|
73
|
+
return %{<xmda:checkbox property="#{field.java_Name}"/>\n}
|
74
|
+
else
|
75
|
+
return %{
|
76
|
+
<html:hidden property="#{field.java_Name}" />
|
77
|
+
<logic:equal value="true" property="#{field.java_Name}" name="#{STRUTS_BEAN_KEY}" >
|
78
|
+
<input type="checkbox" name="#{field.java_Name}_tmp" onClick='document.forms[0].#{field.java_Name}.value=this.checked;' checked />
|
79
|
+
</logic:equal>
|
80
|
+
<logic:notEqual value="true" property="#{field.java_Name}" name="#{STRUTS_BEAN_KEY}" >
|
81
|
+
<input type="checkbox" name="#{field.java_Name}_tmp" onClick='document.forms[0].#{field.java_Name}.value=this.checked;' />
|
82
|
+
</logic:notEqual>
|
83
|
+
}
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
class DatatypeMappingTimeStamp < DatatypeMapping
|
89
|
+
def getJSP(datatype,field,owner)
|
90
|
+
n="string"
|
91
|
+
#TODO: provide nicer html template
|
92
|
+
#xmda:dateText isCalendar defaults to "false"
|
93
|
+
return <<END
|
94
|
+
<xmda:dateText property="#{field.java_Name}" size="20%" maxlength="30" styleId="#{field.java_Name}Id" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>
|
95
|
+
<script type="text/javascript">
|
96
|
+
function formatDate(cal) {
|
97
|
+
var date = cal.date;
|
98
|
+
var field = document.getElementById("#{field.java_Name}");
|
99
|
+
var locale = document.getElementById("#{field.java_Name}Locale").value;
|
100
|
+
field.value = transformToServerFormat(date, field, locale);
|
101
|
+
|
102
|
+
}
|
103
|
+
Calendar.setup(\{
|
104
|
+
inputField : "#{field.java_Name}Id", // id of the input field
|
105
|
+
localeField : "#{field.java_Name}Locale", //field containing locale (hidden)
|
106
|
+
showsTime : true,
|
107
|
+
timeFormat : "24",
|
108
|
+
onUpdate : formatDate
|
109
|
+
\});
|
110
|
+
</script>
|
111
|
+
END
|
112
|
+
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
class DatatypeMappingCalendar < DatatypeMapping
|
117
|
+
def getJSP(datatype,field,owner)
|
118
|
+
n="string"
|
119
|
+
#TODO: provide nicer html template
|
120
|
+
#isCalendar="true"
|
121
|
+
return <<END
|
122
|
+
<xmda:dateText isCalendar="true" property="#{field.java_Name}" size="20%" maxlength="#{self.maxStringLength}" styleId="#{field.java_Name}Id" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>
|
123
|
+
<script type="text/javascript">
|
124
|
+
function formatDate(cal) {
|
125
|
+
var date = cal.date;
|
126
|
+
var field = document.getElementById("#{field.java_Name}");
|
127
|
+
var locale = document.getElementById("#{field.java_Name}Locale").value;
|
128
|
+
field.value = transformToServerFormat(date, field, locale);
|
129
|
+
}
|
130
|
+
Calendar.setup(\{
|
131
|
+
inputField : "#{field.java_Name}Id", // id of the input field
|
132
|
+
localeField : "#{field.java_Name}Locale", //field containing locale (hidden)
|
133
|
+
onUpdate : formatDate
|
134
|
+
\});
|
135
|
+
</script>
|
136
|
+
END
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
#Template used when no correct was found.
|
141
|
+
class DatatypeMappingerror # <
|
142
|
+
include Singleton
|
143
|
+
def getJSP(datatype,field,owner)
|
144
|
+
return %{<!-- TODO: fallback template used for datatype #{datatype} -->}
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
class DatatypeMappingGenericClass < DatatypeMapping
|
149
|
+
def getJSP(datatype,field,owner)
|
150
|
+
return "<!-- TODO:JSP #{self.class.name} -->"
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
class DatatypeMappingGenericEnum < DatatypeMapping
|
155
|
+
def getJSP(datatype,field,owner)
|
156
|
+
if field.context[:jspUseXmdaTaglib]
|
157
|
+
return getJSP_XmdaTagLib(datatype,field,owner)
|
158
|
+
else
|
159
|
+
return getJSP_StrutsOnly(datatype,field,owner)
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
def getJSP_XmdaTagLib(datatype,field,owner)
|
164
|
+
return %{
|
165
|
+
<html:select property="#{field.java_Name}" >
|
166
|
+
<xmda:i18noptionsCollection name="#{owner.java_Name}StrutsForm" property="#{field.java_Name}Sug" label="label" value="value"/>
|
167
|
+
</html:select>
|
168
|
+
}
|
169
|
+
end
|
170
|
+
|
171
|
+
def getJSP_StrutsOnly(datatype,field,owner)
|
172
|
+
return <<END
|
173
|
+
<html:select property="#{field.java_Name}" >
|
174
|
+
<logic:iterate id="_#{field.java_Name}" name="#{owner.java_Name}StrutsForm" property="#{field.java_Name}Sug" >
|
175
|
+
<option value="<bean:write name="_#{field.java_Name}" property="value" />" >
|
176
|
+
<bean:define id="_id">
|
177
|
+
<bean:write name="_#{field.java_Name}" property="label" />
|
178
|
+
</bean:define>
|
179
|
+
<%-- TODO: eviter entrelacement balises XML --%>
|
180
|
+
<bean:message key="<%= _id %>"/>
|
181
|
+
</option>
|
182
|
+
</logic:iterate>
|
183
|
+
</html:select>
|
184
|
+
<SCRIPT> <%-- TODO : supprimer javascript --%>
|
185
|
+
document.forms[0].#{field.java_Name}.value="<bean:write name="#{owner.java_Name}StrutsForm" property="#{field.java_Name}" />";
|
186
|
+
</SCRIPT>
|
187
|
+
END
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
|
192
|
+
class DatatypeMappingBLOB < DatatypeMapping
|
193
|
+
def getJSP(datatype,field,owner)
|
194
|
+
n=datatype.java_Name.downcase #TODO
|
195
|
+
return %{<html:file property="#{field.java_Name}" size="20%" maxlength="30" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>}
|
196
|
+
end
|
197
|
+
end
|
198
|
+
class DatatypeMappingIMG < DatatypeMappingBLOB
|
199
|
+
def getJSP(datatype,field,owner)
|
200
|
+
n=datatype.java_Name.downcase #TODO
|
201
|
+
return %{
|
202
|
+
#{super}
|
203
|
+
<br/>
|
204
|
+
<html:img action="#{owner.context[:strutsActionName]}?#{Muml_Classifier::STRUTS_DISPATCH_FIELD_NAME}=#{actionMethName(field)}" />
|
205
|
+
}
|
206
|
+
|
207
|
+
end
|
208
|
+
|
209
|
+
def actionMethName(field)
|
210
|
+
return "#{field.java_Name}_img"
|
211
|
+
end
|
212
|
+
|
213
|
+
|
214
|
+
#adds special action for this type
|
215
|
+
def addActionFieldMethod!(field,action,form)
|
216
|
+
# generate method returning gif image
|
217
|
+
m=action.struts_createAndAddExecuteOperation(actionMethName(field))
|
218
|
+
m.java_code=<<END
|
219
|
+
#{action.struts_formCastJavaCode(form)}
|
220
|
+
return #{action.struts_getActionHelper.java_qualifiedName}.writeGif(mapping,response, form.getReference().get#{field.java_NameBean}());
|
221
|
+
END
|
222
|
+
|
223
|
+
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
227
|
+
class DatatypeMappingGRAPHVIZ < DatatypeMappingLargeText
|
228
|
+
def actionMethName(field)
|
229
|
+
return "#{field.java_Name}_img"
|
230
|
+
end
|
231
|
+
def actionMapMethName(field)
|
232
|
+
return "#{field.java_Name}_map"
|
233
|
+
end
|
234
|
+
def actionMapUrl(datatype,field,owner)
|
235
|
+
return "/webapp/GraphVizDemoall-submit.do?#{Muml_Classifier::STRUTS_DISPATCH_FIELD_NAME}=#{actionMapMethName(field)}#myMap"
|
236
|
+
end
|
237
|
+
def getJSP(datatype,field,owner)
|
238
|
+
s=field.uml_isReadOnly? ? "" : super(datatype,field,owner)
|
239
|
+
|
240
|
+
return %{#{s}#{s.empty? ? "" : "<br>" }<html:img action="#{owner.context[:strutsActionName]}?#{Muml_Classifier::STRUTS_DISPATCH_FIELD_NAME}=#{actionMethName(field)}" usemap="#{actionMapUrl(datatype,field,owner)}"/>}
|
241
|
+
end
|
242
|
+
|
243
|
+
#adds special action for this type
|
244
|
+
def addActionFieldMethod!(field,action,form)
|
245
|
+
m=action.struts_createAndAddExecuteOperation(actionMethName(field))
|
246
|
+
m.java_code=<<END
|
247
|
+
#{action.struts_formCastJavaCode(form)}
|
248
|
+
return #{action.struts_getActionHelper.java_qualifiedName}.writeGraphviz(mapping,response, form.getReference().get#{field.java_NameBean}());
|
249
|
+
END
|
250
|
+
|
251
|
+
# generate method returning map (clickable zones)
|
252
|
+
m2=action.struts_createAndAddExecuteOperation(actionMapMethName(field))
|
253
|
+
m2.java_code=<<END
|
254
|
+
#{action.struts_formCastJavaCode(form)}
|
255
|
+
return #{action.struts_getActionHelper.java_qualifiedName}.writeGraphvizMap(mapping,response, form.getReference().get#{field.java_NameBean}());
|
256
|
+
END
|
257
|
+
end
|
258
|
+
|
259
|
+
end
|
260
|
+
class DatatypeMappingEmailAddress < DatatypeMappingText
|
261
|
+
end
|
262
|
+
|
263
|
+
class DatatypeMappingPassword < DatatypeMappingText
|
264
|
+
def getJSP(datatype,field,owner)
|
265
|
+
n=datatype.java_Name.downcase #TODO
|
266
|
+
return %{<html:password property="#{field.java_Name}" size="20%" maxlength="#{self.maxStringLength}" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>}
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
270
|
+
|
271
|
+
|
272
|
+
|
@@ -0,0 +1,87 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Mrdf_Repository
|
4
|
+
def struts_createDataTypeHelpers!
|
5
|
+
DatatypeMapping.instance.getMappings.each { |m|
|
6
|
+
m.struts_generateHelper(self)
|
7
|
+
}
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class DatatypeMapping
|
12
|
+
def java_Name
|
13
|
+
return self.class.name
|
14
|
+
end
|
15
|
+
def java_qualifiedName
|
16
|
+
return rdf_uri
|
17
|
+
end
|
18
|
+
def rdf_uri
|
19
|
+
return "xmda.datatypes.#{java_Name}"
|
20
|
+
end
|
21
|
+
def struts_generateHelper(model)
|
22
|
+
return unless self.respond_to?("java_getType")
|
23
|
+
c=model.umlx_reserved_model.umlx_getOrCreateClass(java_qualifiedName)
|
24
|
+
return c unless c.umlx_external?
|
25
|
+
c.umlx_external=RDF_FALSE
|
26
|
+
c.db_isTransient=RDF_TRUE
|
27
|
+
c.struts_isForm=RDF_FALSE
|
28
|
+
c.umlx_businessMethod=RDF_FALSE
|
29
|
+
|
30
|
+
c.umlx_createAndAddGeneralization(self.class.superclass.instance.struts_generateHelper(model)) if self.class.superclass.respond_to?("instance")
|
31
|
+
c.java_customCode=java_helper_customCode
|
32
|
+
java_helper_addMethods!(c)
|
33
|
+
return c
|
34
|
+
end
|
35
|
+
def java_helper_customCode
|
36
|
+
return if self.class==DatatypeMapping
|
37
|
+
return <<END
|
38
|
+
protected #{java_Name}() {};
|
39
|
+
private static #{java_Name} instance=new #{java_Name}();
|
40
|
+
public #{java_Name} getInstance() {
|
41
|
+
return instance;
|
42
|
+
}
|
43
|
+
|
44
|
+
public #{java_getType} parse(final String str,final #{java_getType} nullCast ) {
|
45
|
+
#{if respond_to?(:java_getJavaParse)
|
46
|
+
"return #{java_getJavaParse("str")};"
|
47
|
+
else
|
48
|
+
%{throw new java.lang.RuntimeException("Method not implemented");}
|
49
|
+
end
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
public String toString(final #{java_getType} elt) {
|
54
|
+
#{if respond_to?(:java_getJavaToString)
|
55
|
+
"return #{java_getJavaToString("elt")};"
|
56
|
+
else
|
57
|
+
%{throw new java.lang.RuntimeException("Method not implemented");}
|
58
|
+
end
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
END
|
63
|
+
end
|
64
|
+
|
65
|
+
def java_helper_addMethods!(c)
|
66
|
+
return
|
67
|
+
m=c.umlx_createAndAddOperation(self.rdf_uri+"_parse","parse")
|
68
|
+
r=m.umlx_createAndAddReturnParameter(m.rdf_uri+"ret")
|
69
|
+
r.uml_type=c.umlx_getOrCreateClass("java.lang.Object") #TODO
|
70
|
+
|
71
|
+
r=m.umlx_createAndAddParameter(m.rdf_uri+"tr","tr")
|
72
|
+
r.uml_type=c.umlx_dataType_string
|
73
|
+
|
74
|
+
m=c.umlx_createAndAddOperation(self.rdf_uri+"_parse","to_s")
|
75
|
+
r=m.umlx_createAndAddReturnParameter(m.rdf_uri+"ret")
|
76
|
+
r.uml_type=c.umlx_getOrCreateClass("java.lang.Object") #TODO
|
77
|
+
|
78
|
+
r=m.umlx_createAndAddParameter(m.rdf_uri+"elt","elt")
|
79
|
+
r.uml_type=c.umlx_dataType_string
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
class DatatypeMapping
|
86
|
+
end
|
87
|
+
|