ontomde-java 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|