ontomde-uml2-flex 1.0.4
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 +5 -0
- data/Manifest.txt +12 -0
- data/README.txt +40 -0
- data/Rakefile +21 -0
- data/lib/ontomde-uml2-flex/Editor.mxml.as.rb +184 -0
- data/lib/ontomde-uml2-flex/Editor.mxml.rb +701 -0
- data/lib/ontomde-uml2-flex/ImportationAS.rb +40 -0
- data/lib/ontomde-uml2-flex/ValueObjectAS.rb +338 -0
- data/lib/ontomde-uml2-flex/fileTypes.rb +19 -0
- data/lib/ontomde-uml2-flex/main.rb +347 -0
- data/lib/ontomde-uml2-flex/version.rb +8 -0
- data/lib/ontomde-uml2-flex.rb +14 -0
- data/test/test_ontomde-uml2-flex.rb +0 -0
- metadata +84 -0
data/History.txt
ADDED
data/Manifest.txt
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
History.txt
|
2
|
+
Manifest.txt
|
3
|
+
README.txt
|
4
|
+
Rakefile
|
5
|
+
lib/ontomde-uml2-flex.rb
|
6
|
+
lib/ontomde-uml2-flex/version.rb
|
7
|
+
lib/ontomde-uml2-flex/Editor.mxml.as.rb
|
8
|
+
lib/ontomde-uml2-flex/ValueObjectAS.rb
|
9
|
+
lib/ontomde-uml2-flex/ImportationAS.rb
|
10
|
+
lib/ontomde-uml2-flex/main.rb
|
11
|
+
lib/ontomde-uml2-flex/Editor.mxml.rb
|
12
|
+
lib/ontomde-uml2-flex/fileTypes.rb
|
data/README.txt
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
ontomde-uml2-flex
|
2
|
+
by Stephane (Pierre) Carrie - Eric Goueffon
|
3
|
+
http://ontomde.rubyforge.org
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
ontomde-uml2-flex is a FLEX generator with a J2EE/struts backend.
|
7
|
+
|
8
|
+
== FEATURES/PROBLEMS:
|
9
|
+
|
10
|
+
== SYNOPSIS:
|
11
|
+
|
12
|
+
== REQUIREMENTS:
|
13
|
+
|
14
|
+
* flex sdk must be downloaded from http://flex.org
|
15
|
+
|
16
|
+
== INSTALL:
|
17
|
+
|
18
|
+
* (unix) sudo gem install ontomde-uml2-flex
|
19
|
+
* (windows) sudo gem install ontomde-uml2-flex
|
20
|
+
|
21
|
+
Additional information is available on ontoMDE web site :
|
22
|
+
http://ontomde.rubyforge.org/website/download.html
|
23
|
+
== LICENSE:
|
24
|
+
|
25
|
+
Copyright (C) 2008 Orange-labs
|
26
|
+
38 rue General Leclerc
|
27
|
+
92130 ISSY LES MOULINEAUX, France
|
28
|
+
|
29
|
+
This program is free software: you can redistribute it and/or modify
|
30
|
+
it under the terms of the GNU Affero General Public License as
|
31
|
+
published by the Free Software Foundation, either version 3 of the
|
32
|
+
License, or (at your option) any later version.
|
33
|
+
|
34
|
+
This program is distributed in the hope that it will be useful,
|
35
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
36
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
37
|
+
GNU Affero General Public License for more details.
|
38
|
+
|
39
|
+
You should have received a copy of the GNU Affero General Public License
|
40
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
data/Rakefile
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'hoe'
|
5
|
+
require './lib/ontomde-uml2-flex/version.rb'
|
6
|
+
|
7
|
+
Hoe.new('ontomde-uml2-flex', Ontomde::Uml2::Flex::VERSION) do |p|
|
8
|
+
p.rubyforge_name = 'ontomde'
|
9
|
+
p.author = 'Stephane (Pierre) Carrie'
|
10
|
+
p.email = 'stephanepierre.carrie@orange-ftgroup.com'
|
11
|
+
p.summary = 'OntoMDE Flex generator cartridge'
|
12
|
+
p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
|
13
|
+
p.url="http://ontomde.rubyforge.org"
|
14
|
+
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
|
15
|
+
p.extra_deps=[
|
16
|
+
[ 'ontomde-uml2-struts', "= #{Ontomde::Uml2::Flex::VERSION}" ]
|
17
|
+
]
|
18
|
+
p.spec_extras={ :required_ruby_version => '>=1.8.6' ,:required_rubygems_version => '>=1.0.0'}
|
19
|
+
end
|
20
|
+
|
21
|
+
# vim: syntax=Ruby
|
@@ -0,0 +1,184 @@
|
|
1
|
+
class Crdf_Resource
|
2
|
+
def flex_localizeMsg(msg)
|
3
|
+
#TODO
|
4
|
+
return("localized #{msg}")
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
module Muml_Class
|
9
|
+
|
10
|
+
|
11
|
+
def flex_mxml_as_generateAs
|
12
|
+
#flex_mxml_as_generateAs_jspHeader
|
13
|
+
flex_mxml_as_generateAs_commun
|
14
|
+
flex_mxml_as_generateAs_operations
|
15
|
+
flex_mxml_as_generateAs_edit_remove_add
|
16
|
+
flex_mxml_as_generateAs_validateForm
|
17
|
+
flex_mxml_as_generateAs_createAndAdd
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
def flex_mxml_as_generateAs_createAndAdd
|
22
|
+
flex_ownedAttributeSet.each { |a|
|
23
|
+
next unless a.umlx_isComposite?
|
24
|
+
#next if a.umlx_oneSide?
|
25
|
+
f="createAndAdd#{a.java_NameBean}"
|
26
|
+
write %{
|
27
|
+
public function #{f}(reqTypeParam:String):void {
|
28
|
+
this.#{Muml_Class::STRUTS_DISPATCH_FIELD_NAME}="#{f}";
|
29
|
+
this.#{STRUTS_REQUESTED_CREATION_TYPE_FIELD_NAME}=reqTypeParam;
|
30
|
+
submit();
|
31
|
+
}
|
32
|
+
}}
|
33
|
+
end
|
34
|
+
|
35
|
+
def flex_mxml_as_generateAs_validateForm
|
36
|
+
head=<<-ENDHEAD
|
37
|
+
public function validForm():Boolean{
|
38
|
+
ENDHEAD
|
39
|
+
|
40
|
+
foot=<<-ENDFOOT
|
41
|
+
return true;
|
42
|
+
}
|
43
|
+
ENDFOOT
|
44
|
+
|
45
|
+
encloseWrite(head,foot){ flex_ownedAttributeSet.each { |prop|
|
46
|
+
tpl=JavaMapping.instance.getTemplate(prop.uml_type_one)
|
47
|
+
tpl.flex_writeMXML_validate(prop)
|
48
|
+
}}
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
def flex_mxml_as_generateAs_operations
|
53
|
+
uml_ownedOperation.each {|biz|
|
54
|
+
next unless biz.umlx_businessMethod?
|
55
|
+
f=biz.java_Name
|
56
|
+
write <<-ENDMETH
|
57
|
+
public function #{f}() :void{
|
58
|
+
this.#{Muml_Class::STRUTS_DISPATCH_FIELD_NAME}="#{f}";
|
59
|
+
submit();
|
60
|
+
}
|
61
|
+
ENDMETH
|
62
|
+
}
|
63
|
+
end
|
64
|
+
|
65
|
+
def flex_mxml_as_generateAs_commun
|
66
|
+
#//TODO this.#{Muml_Class::STRUTS_REQUESTED_TAB}=model.id.toString();
|
67
|
+
write <<-END_SCRIPT
|
68
|
+
public function #{STRUTS_REFRESH_ACTION}() :void{
|
69
|
+
this.#{Muml_Class::STRUTS_DISPATCH_FIELD_NAME}="#{STRUTS_REFRESH_ACTION}";
|
70
|
+
submit();
|
71
|
+
}
|
72
|
+
public function #{STRUTS_RETURN_ACTION}() :void{
|
73
|
+
this.#{Muml_Class::STRUTS_DISPATCH_FIELD_NAME}="#{STRUTS_RETURN_ACTION}";
|
74
|
+
submit();
|
75
|
+
}
|
76
|
+
public function #{STRUTS_PROCEED_ACTION}() :void{
|
77
|
+
this.#{Muml_Class::STRUTS_DISPATCH_FIELD_NAME}="#{STRUTS_PROCEED_ACTION}";
|
78
|
+
submit();
|
79
|
+
}
|
80
|
+
END_SCRIPT
|
81
|
+
end
|
82
|
+
|
83
|
+
def flex_mxml_as_generateAs_edit_remove_add
|
84
|
+
flex_ownedAttributeSet.each { |a|
|
85
|
+
#next unless a.umlx_isComposite?
|
86
|
+
#next unless a.umlx_isAssociation?
|
87
|
+
#next if a.umlx_oneSide?
|
88
|
+
li=a.uml_isReadOnly? ? ["edit"] : ["edit","removeAndDelete"]
|
89
|
+
li.each {|meth|
|
90
|
+
f="#{meth}#{a.java_NameBean}"
|
91
|
+
write <<-END
|
92
|
+
public function #{f}(objidParam:String) :void{
|
93
|
+
if("_"+objidParam != "_empty") {
|
94
|
+
this.#{Muml_Class::STRUTS_DISPATCH_FIELD_NAME}="#{f}";
|
95
|
+
this.#{Muml_Class::STRUTS_REQUESTED_TAB}=objidParam;
|
96
|
+
submit();
|
97
|
+
} else {
|
98
|
+
ExtendedAlert.error("no element selected for \\n#{flex_localizeMsg("#{self.java_qualifiedName}.#{a.java_Name}")}");
|
99
|
+
}
|
100
|
+
}
|
101
|
+
END
|
102
|
+
}
|
103
|
+
li=a.uml_isReadOnly? ? [] : ["add"]
|
104
|
+
li.each {|meth|
|
105
|
+
f="#{meth}#{a.java_NameBean}"
|
106
|
+
write <<-END
|
107
|
+
public function #{f}(e:SuggestionAddedEvent) :void{
|
108
|
+
if("_"+e.idToAdd != "_empty") {
|
109
|
+
this.#{Muml_Class::STRUTS_DISPATCH_FIELD_NAME}="#{f}";
|
110
|
+
this.#{Muml_Class::STRUTS_REQUESTED_TAB}=e.idToAdd;
|
111
|
+
submit();
|
112
|
+
} else {
|
113
|
+
ExtendedAlert.error("no element selected for \\n#{flex_localizeMsg("#{self.java_qualifiedName}.#{a.java_Name}")}");
|
114
|
+
}
|
115
|
+
}
|
116
|
+
END
|
117
|
+
}
|
118
|
+
}
|
119
|
+
end
|
120
|
+
|
121
|
+
end #module
|
122
|
+
|
123
|
+
|
124
|
+
class JavaMapping
|
125
|
+
def flex_writeMXML_validate(prop)
|
126
|
+
prop.write("//#{prop.java_Name}")
|
127
|
+
prop.write(" mapping=#{self.class}")
|
128
|
+
prop.write(" maxStringLength=#{self.maxStringLength}")
|
129
|
+
re=self.getValidationRegexp
|
130
|
+
prop.write(%{ regexp=#{re.nil? ? "nil" : re.source}})
|
131
|
+
prop.write("\n")
|
132
|
+
end
|
133
|
+
def flex_writeMXML_MXvalidator(prop)
|
134
|
+
#nop
|
135
|
+
end
|
136
|
+
end
|
137
|
+
class JavaMappingText < JavaMapping
|
138
|
+
# Example
|
139
|
+
# <mx:RegExpValidator source={le nom du control � valider} property="text" required="true/false pour obligatoire ou pas" expression="l'expression reguliere"/>
|
140
|
+
#<mx:StringValidator source="{txtNom}" property="text" required="false"/>
|
141
|
+
def flex_writeMXML_MXvalidator(prop)
|
142
|
+
re=getValidationRegexp
|
143
|
+
validator= re.nil? ? "StringValidator" : "RegExpValidator"
|
144
|
+
prop.encloseWrite(" <mx:#{validator}","/>\n") {
|
145
|
+
prop.write(%{ source="{#{flex_prefix}#{prop.java_NameBean}}"})
|
146
|
+
prop.write(%{ property="text"})
|
147
|
+
prop.write(%{ required="#{prop.umlx_lowerValueIsZero? ? "false":"true"}"})
|
148
|
+
prop.write(%{ expression="#{re.source}"}) unless re.nil?
|
149
|
+
}
|
150
|
+
end
|
151
|
+
end
|
152
|
+
class JavaMappingOrdinal < JavaMappingText
|
153
|
+
def flex_writeMXML_MXvalidator(prop)
|
154
|
+
#nop
|
155
|
+
end
|
156
|
+
def flex_writeMXML_validate(prop)
|
157
|
+
super
|
158
|
+
end
|
159
|
+
end
|
160
|
+
class JavaMappingTimeStamp < JavaMapping
|
161
|
+
def flex_writeMXML_validate(prop)
|
162
|
+
super
|
163
|
+
end
|
164
|
+
end
|
165
|
+
class JavaMappingCalendar < JavaMapping
|
166
|
+
def flex_writeMXML_validate(prop)
|
167
|
+
super
|
168
|
+
end
|
169
|
+
end
|
170
|
+
class JavaMappingGenericEnum < JavaMapping
|
171
|
+
def flex_writeMXML_validate(prop)
|
172
|
+
super
|
173
|
+
end
|
174
|
+
end
|
175
|
+
class JavaMappingBoolean < JavaMapping
|
176
|
+
def flex_writeMXML_validate(prop)
|
177
|
+
super
|
178
|
+
end
|
179
|
+
end
|
180
|
+
class JavaMappingGenericClass < JavaMapping
|
181
|
+
def flex_writeMXML_validate(prop)
|
182
|
+
super
|
183
|
+
end
|
184
|
+
end
|