ontomde-uml2-struts 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.
@@ -0,0 +1,483 @@
1
+ module Muml_Element
2
+ # Struts LabelValueBean class qualified name.
3
+ STRUTS_LVB='org.apache.struts.util.LabelValueBean'
4
+
5
+ # LVB used for null object
6
+ NIL_LVB_KEY="nil"
7
+ NIL_LVB_RES_KEY="obj_nil"
8
+ end
9
+
10
+ module Mstruts_tab
11
+ end
12
+ class Cstruts_tab < Crdf_Resource
13
+ include Mstruts_tab
14
+ rdf_safe_attr_reader_many :struts_ownedAttribute
15
+ rdf_safe_attr_reader_many :java_Name
16
+ end
17
+
18
+ module Muml_Classifier
19
+ rdf_safe_attr_reader_many :struts_ownedTab
20
+ end
21
+
22
+ module Muml_Operation
23
+ #Struts ActionForm associated to this operation
24
+ rdf_safe_attr_reader_many :struts_actionForm
25
+ end
26
+
27
+ module Muml_Classifier
28
+ STRUTS_REQUESTED_CREATION_TYPE_FIELD_NAME="reqType"
29
+ STRUTS_REQUESTED_CREATION_TYPE_FIELD_PROP="ReqType"
30
+ STRUTS_DISPATCH_FIELD_NAME="doWhat"
31
+ STRUTS_DISPATCH_FIELD_METH="DoWhat"
32
+ STRUTS_REQUESTED_TAB="reqtab"
33
+ STRUTS_FORM_INTERFACE="xmda.struts.Form"
34
+
35
+ rdf_safe_attr_reader_many :struts_isForm
36
+
37
+ #class from which this StrutsActionForm was generated.
38
+ rdf_safe_attr_reader_many :struts_actionFormSrc
39
+
40
+ #Struts ActionForm associated to this class
41
+ rdf_safe_attr_reader_many :struts_actionForm
42
+
43
+ def struts_eachFormAttribute_deprec()
44
+ struts_formAttribute.each { |a|
45
+ yield(a)
46
+ }
47
+ end
48
+ #every attribute meant to appear in the form.
49
+ def struts_formAttribute(ignoreDbId=false)
50
+ #tab=context[:struts_tab,nil]
51
+
52
+ ret=Array.new
53
+ cgi=umlx_classifier_generalization_indirect
54
+ cgi.add(self)
55
+ cgi.each { |c|
56
+ c.uml_ownedAttribute.each { |a|
57
+ next if a.struts_ignoreInForm?(ignoreDbId)
58
+ ret << a
59
+ }
60
+ }
61
+ return ret
62
+ end
63
+
64
+
65
+
66
+ #every method meant to appear in the form.
67
+ def struts_formOperation()
68
+ ret=Array.new
69
+ cgi=umlx_classifier_generalization_indirect
70
+ cgi.add(self)
71
+ cgi.each { |c|
72
+ c.uml_ownedOperation.each { |a|
73
+ #next if a.db_isTransient?
74
+ next if a.uml_isStatic?
75
+ #next if a.java_ignoreMe?
76
+ ret << a
77
+ }
78
+ }
79
+ return ret
80
+ end
81
+
82
+ def struts_getFormInterface
83
+ iform=umlx_getOrCreateInterface(STRUTS_FORM_INTERFACE)
84
+ if(iform.uml_ownedOperation.empty?)
85
+ iform.umlx_external=RDF_FALSE
86
+ iform.struts_addActionLocaleFormFields!
87
+ ["initFromReference","copyToReference"].each {|m|
88
+ iform.umlx_createAndAddOperation(iform.rdf_uri+m,m);
89
+ }
90
+ iform.java_addAccessors! #ajouter getter/setter
91
+ end
92
+ return iform
93
+ end
94
+
95
+ def struts_addInitAndCopyToReference!
96
+ i=umlx_createAndAddOperation(rdf_uri+"initFromReference","initFromReference");
97
+ i.java_code="initFrom(getReference());"
98
+
99
+ c=umlx_createAndAddOperation(rdf_uri+"copyToReference","copyToReference");
100
+ c.java_code="copyTo(getReference());"
101
+ end
102
+
103
+ #Creates and add an action form corresponding to this class.
104
+ def struts_addActionForm!
105
+ #log.debug { "struts_addActionForm! for #{self}:#{self.class}" }
106
+ p=umlx_owner_one
107
+ p=p.umlx_getOrCreatePackage(context[:strutsFormPackage,context[:strutsActionFormPackage,"struts"]],p)
108
+
109
+ form=p.umlx_createAndAddClass(rdf_uri+"_ActionFormClass")
110
+
111
+ form.umlx_createAndAddImplementation(struts_getFormInterface)
112
+ form.struts_addInitAndCopyToReference!
113
+
114
+ form.struts_isForm=RDF_TRUE
115
+ form.db_isTransient=RDF_TRUE
116
+
117
+ form.struts_actionFormSrc=self
118
+ self.struts_actionForm=form
119
+
120
+ form.uml_name="#{uml_name}StrutsForm"
121
+ #af=umlx_getOrCreateClass("org.apache.struts.action.ActionForm")
122
+ #if (uml_generalization.empty?)
123
+ #NOTE: Forms inheritance DO NOT follow class inheritance.
124
+ # (to allow exact typing in redefined methods)
125
+
126
+ af=umlx_getOrCreateClass("org.apache.struts.validator.ValidatorForm")
127
+ form.umlx_createAndAddGeneralization(af)
128
+
129
+ form.java_makeSerializable!
130
+ #ag=umlx_getOrCreateClass("java.io.Serializable")
131
+ #form.umlx_createAndAddImplementation(ag)
132
+ #TODO ajouter implements interface
133
+
134
+ struts_addActionFormAttribute!(form)
135
+ struts_create_getXMLFormOperations!(form)
136
+
137
+ struts_addInitFrom!
138
+ struts_addCopyTo!
139
+ struts_addReset!
140
+
141
+ ref=form.umlx_createAndAddProperty(form.rdf_uri+"__ref","reference")
142
+ ref.uml_type=self
143
+
144
+ [STRUTS_DISPATCH_FIELD_NAME,STRUTS_SGBD_STATE,STRUTS_REQUESTED_CREATION_TYPE_FIELD_NAME].each {|p|
145
+ act=form.umlx_createAndAddProperty(form.rdf_uri+p)
146
+ act.uml_name=p
147
+ act.uml_type=umlx_dataType_string
148
+ }
149
+
150
+ form.struts_addActionLocaleFormFields!
151
+
152
+ form.java_addAccessors! #ajouter getter/setter
153
+ form.apaCom_addLogger!
154
+ end
155
+
156
+ STRUTS_ACCEPT_NULL_FIELD_IN_FORMS=true
157
+ def struts_addCopyTo!
158
+ #log.debug{ "addCopyTo #{self}" }
159
+ form=struts_actionForm_one
160
+ cpt=form.umlx_createAndAddOperation(form.rdf_uri+"_copyTo","copyTo")
161
+ cpt.java_annotation_add(%{@SuppressWarnings("unused")})
162
+ pcpt=cpt.umlx_createAndAddParameter(cpt.rdf_uri+"_to","_to")
163
+ pcpt.uml_direction=Cuml_ParameterDirectionKind::Inout
164
+ pcpt.uml_type=self
165
+ code="java.util.TimeZone currentTimeZone = java.util.TimeZone.getTimeZone(get#{STRUTS_SETTIMEZONE_BEAN}());"
166
+ struts_formAttribute.each { |a|
167
+ code=code+"if(this.get#{a.java_NameBean}()!=null) {\n " if(STRUTS_ACCEPT_NULL_FIELD_IN_FORMS)
168
+ code=code+"#{JavaMapping.instance.getTemplate(a.uml_type_one).getFormCopyTo(a)}"
169
+ code=code+" }//test !=null\n" if(STRUTS_ACCEPT_NULL_FIELD_IN_FORMS)
170
+ }
171
+
172
+ cpt.java_code=code
173
+ end
174
+
175
+ def struts_addActionFormAttribute!(form)
176
+ struts_formAttribute.each { |a|
177
+ a.struts_addActionFormAttribute!(form)
178
+ }
179
+ #struts_addDateFormater!(form)
180
+ end
181
+
182
+ def struts_typeIsUsed?(type)
183
+ type=type.downcase
184
+ struts_formAttribute.each { |a|
185
+ t=a.uml_type_one
186
+ next unless t.kind_of?(Muml_Property)
187
+ next unless t.uml_name_one.downcase==type
188
+ return true
189
+ }
190
+ return false
191
+ end
192
+
193
+
194
+ # def struts_addDateFormater!(form)
195
+ # if struts_typeIsUsed?("date")
196
+ # df=form.umlx_createAndAddProperty("#{rdf_uri}_dfCalendar",STRUTS_DATE_FORMATER_INSTANCE);
197
+ # df.uml_type=form.umlx_getOrCreateClass('java.text.SimpleDateFormat');
198
+ # df.java_code='new java.text.SimpleDateFormat("yyyy/MM/dd",java.util.Locale.ENGLISH);'
199
+ # df.java_noAccessors=RDF_TRUE
200
+ # df.uml_visibility=Cuml_VisibilityKind::Private
201
+ # df.uml_isStatic=RDF_TRUE #TODO : synchronized ??, (pb synchronisation)
202
+ # df.db_isTransient=RDF_TRUE
203
+ # df.java_isTransient=RDF_TRUE
204
+ # end
205
+ # if struts_typeIsUsed?("timestamp")
206
+ # df=form.umlx_createAndAddProperty("#{rdf_uri}_dfTimestamp",STRUTS_TIMESTAMP_FORMATER_INSTANCE);
207
+ # df.uml_type=form.umlx_getOrCreateClass('java.text.SimpleDateFormat');
208
+ # df.java_code='new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm:ss",java.util.Locale.ENGLISH);'
209
+ # df.java_noAccessors=RDF_TRUE
210
+ # df.uml_visibility=Cuml_VisibilityKind::Private
211
+ # df.uml_isStatic=RDF_TRUE #TODO : synchronized ??, (pb synchronisation)
212
+ # df.db_isTransient=RDF_TRUE
213
+ # df.java_isTransient=RDF_TRUE
214
+ # end
215
+ # end
216
+
217
+ def struts_addInitFrom!
218
+ form=struts_actionForm_one
219
+ inf=form.umlx_createAndAddOperation(form.rdf_uri+"_initFrom","initFrom")
220
+ inf.java_annotation_add(%{@SuppressWarnings("unused")})
221
+ pinf=inf.umlx_createAndAddParameter(inf.rdf_uri+"_from","_from")
222
+ pinf.uml_type=self
223
+ pinf.uml_direction=Cuml_ParameterDirectionKind::In
224
+
225
+ code="java.util.TimeZone currentTimeZone = java.util.TimeZone.getTimeZone(get#{STRUTS_SETTIMEZONE_BEAN}());\n"
226
+ struts_formAttribute.each { |a|
227
+ code=code+"#{JavaMapping.instance.getTemplate(a.uml_type_one).getFormInitFrom(a)}"
228
+
229
+ }
230
+ inf.java_code=code
231
+ end
232
+
233
+
234
+ def struts_addReset!
235
+ form=struts_actionForm_one
236
+ o=form.umlx_createAndAddOperation(form.rdf_uri+"_reset","reset")
237
+ o.java_annotation_add("@Override")
238
+ o.java_code= <<END
239
+ // if the time zone is not set yet in the session
240
+ // we set the default value ("Europe/Paris") else
241
+ // we get the timezone saved in the user session.
242
+ this.set#{Muml_Classifier::STRUTS_SETTIMEZONE_BEAN}(xmda.tags.helpers.XMDARequestUtils.getUserTimeZone(request, null).getID());
243
+ END
244
+ p=o.umlx_createAndAddParameter(o.rdf_uri+"_mapping","mapping")
245
+ p.uml_type=o.umlx_getOrCreateClass("org.apache.struts.action.ActionMapping")
246
+ p=o.umlx_createAndAddParameter(o.rdf_uri+"_request","request")
247
+ p.uml_type=o.umlx_getOrCreateClass("javax.servlet.http.HttpServletRequest")
248
+ end
249
+ end
250
+
251
+ module Muml_Property
252
+
253
+ #real type of this form field (int,float, ...)
254
+ rdf_safe_attr_reader_many :struts_sourceProperty
255
+
256
+
257
+ def struts_ignoreInForm?(ignoreDbId=true)
258
+ return true if uml_type_one.db_isTransient? && !uml_type_one.kind_of?(Muml_Enumeration) && !uml_type_one.kind_of?(Muml_DataType)
259
+ return true if db_isTransient?
260
+ return true if uml_isStatic?
261
+ return true if java_ignoreMe?
262
+ return true if ignoreDbId && uml_name_one=="id"
263
+ return true if uml_name_one==Muml_Classifier::DB_OBJECT_VERSION_FIELD
264
+ #return true if java_getter_property_inv.empty?
265
+ #return true if java_setter_property_inv.empty?
266
+ # a is a property added for compatibility
267
+ return true unless umlx_stringMappingForEnum.empty?
268
+ return false
269
+ end
270
+
271
+ #field for paginating in lists
272
+ rdf_safe_attr_reader_many :struts_paginatorProperty
273
+
274
+ # adds a matching field in form
275
+ # adds a paginator field when cardinality >1
276
+ def struts_copyAsFormField!(form)
277
+ #log.debug { %{add form field #{self} to #{form}} }
278
+ a2=form.umlx_createAndAddProperty(rdf_uri+"_ActionFormField")
279
+ a2.uml_name=uml_name
280
+ a2.uml_upperValue=uml_upperValue
281
+ a2.uml_lowerValue=uml_lowerValue
282
+ a2.java_use_Arrays=RDF_TRUE
283
+ a2.struts_sourceProperty=self
284
+
285
+ if ! umlx_upperValueIsOne?
286
+ paginator=form.umlx_createAndAddProperty(rdf_uri+"_ActionFormField_page")
287
+ paginator.uml_name=uml_name.to_s+"_strutsPage"
288
+ paginator.uml_type=form.umlx_owner_one.umlx_dataType_integer
289
+ a2.struts_paginatorProperty=paginator
290
+ end
291
+
292
+ return a2
293
+ end
294
+ def struts_addActionFormAttribute!(form)
295
+ return if db_isTransient?
296
+ return if uml_isStatic?
297
+
298
+
299
+ if uml_type_one.kind_of?(Muml_Enumeration)
300
+ struts_addActionFormAttributeEnumeration!(form)
301
+ elsif uml_type_one.kind_of?(Muml_DataType)
302
+ a2=struts_copyAsFormField!(form)
303
+ #a2.uml_type=form.umlx_dataType_string
304
+ tpl=JavaMapping.instance.getTemplate(uml_type_one)
305
+ a2.uml_type=tpl.getFormType(form)
306
+ else
307
+ struts_addActionFormAttributeReference!(form)
308
+
309
+ end
310
+ #TODO: ajouter autres propri�t�s
311
+ end
312
+
313
+
314
+ def nil_lvb(obj)
315
+ return %{new #{STRUTS_LVB}("#{obj.java_qualifiedName}.#{NIL_LVB_RES_KEY}", "#{NIL_LVB_KEY}")}
316
+ end
317
+
318
+ STRUTS_ENUM_AS_STRING=true
319
+
320
+ #Adds to the form class, a suggester operation corresponding to this attribute.
321
+ def struts_addActionFormAttributeEnumeration!(form)
322
+ return if uml_isReadOnly?
323
+ a2=struts_copyAsFormField!(form)
324
+ #a2.uml_type=form.umlx_dataType_integer
325
+ a2.uml_type=form.umlx_dataType_string
326
+ #a2.uml_type=form.umlx_getOrCreateClass("java.lang.Integer")
327
+
328
+ sug=form.umlx_createAndAddOperation(form.rdf_uri+"_sug","get#{self.java_NameBean}Sug")
329
+ ret=sug.umlx_createAndAddReturnParameter(sug.rdf_uri+"_return")
330
+ ret.uml_type=form.umlx_getOrCreateClass("#{STRUTS_LVB}")
331
+ ret.uml_upperValue=form.umlx_literal(-1)
332
+ ret.uml_isOrdered=RDF_TRUE
333
+
334
+ sug.java_code=%{ /* TPL:STRUTS 001 */
335
+ return #{form.struts_getFormHelper.java_qualifiedName}.#{STRUTS_FORM_HELPER_ENUMTOLVB}(#{self.uml_type_one.java_qualifiedName}.class,(#{self.uml_type_one.java_qualifiedName})null,getReference().get#{self.java_NameBean}Sug());
336
+ }
337
+ end
338
+
339
+ #suggester for a list of objects
340
+ def struts_addActionFormAttributeReference!(form)
341
+ a2=struts_copyAsFormField!(form)
342
+ a2.uml_type=form.umlx_dataType_string
343
+
344
+ if ! uml_isReadOnly?
345
+ sug=form.umlx_createAndAddOperation(form.rdf_uri+"_sug","get#{self.java_NameBean}Sug")
346
+ ret=sug.umlx_createAndAddReturnParameter(sug.rdf_uri+"_return")
347
+ ret.uml_type=form.umlx_getOrCreateClass("#{STRUTS_LVB}")
348
+ ret.uml_upperValue=form.umlx_literal(-1)
349
+ ret.uml_isOrdered=RDF_TRUE
350
+
351
+ sug.java_code= <<ENDJAVA
352
+ /* TPL:STRUTS 002 */
353
+ java.util.List<#{STRUTS_LVB}> ret=new java.util.ArrayList<#{STRUTS_LVB}>();
354
+ #{STRUTS_LVB} lvb=null;
355
+ //
356
+ // //#{self.umlx_manySide? ? "" : %{lvb=new #{STRUTS_LVB}("--","empty");
357
+ // //ret.add(lvb);} }
358
+
359
+ // return #{form.struts_getFormHelper.java_qualifiedName}.#{STRUTS_FORM_HELPER_ENUMTOLVB}(#{self.uml_type_one.java_qualifiedName}.class,(#{self.uml_type_one.java_qualifiedName})null,getReference().get#{self.java_NameBean}Sug());
360
+
361
+ for (#{self.uml_type_one.java_qualifiedName} item : getReference().get#{self.java_NameBean}Sug()) {
362
+ if(item!=null) {
363
+ lvb=new #{STRUTS_LVB}("obj:"+item.getId(), Long.toString(item.getId()));
364
+ } else {
365
+ lvb=#{nil_lvb(self.uml_type_one)};
366
+ }
367
+ ret.add(lvb);
368
+ }
369
+ return ret;
370
+ ENDJAVA
371
+ end
372
+ if(umlx_isComposite?)
373
+ m=java_createAndAddSuggester_one
374
+ r=nil
375
+ (m.uml_returnResult+m.uml_ownedParameter).each {|p| next unless p.uml_direction_one.isReturn? ; r=p.uml_type_one }
376
+ sugC=form.umlx_createAndAddOperation(form.rdf_uri+"_sugC","#{m.java_Name}")
377
+ ret=sugC.umlx_createAndAddReturnParameter("#{sugC.rdf_uri}_ret")
378
+ ret.uml_type=form.umlx_getOrCreateClass("#{STRUTS_LVB}")
379
+ ret.uml_upperValue=form.umlx_literal(-1)
380
+ ret.uml_isOrdered=RDF_TRUE
381
+ sugC.java_code=%{ /* TPL:STRUTS 001b */
382
+ return #{form.struts_getFormHelper.java_qualifiedName}.#{STRUTS_FORM_HELPER_ENUMTOLVB}(#{r.java_qualifiedName}.class,(#{r.java_qualifiedName})null,getReference().#{m.java_Name}(),true);
383
+ }
384
+
385
+ end
386
+
387
+ end
388
+
389
+
390
+
391
+
392
+ end
393
+
394
+ #module Muml_DataType
395
+ #contains regexp for string representation of corresponding type
396
+ #obsolete!
397
+ #STRUTS_PRIMITIVE_TYPE_REGEXP=Hash.new()
398
+ #end
399
+
400
+
401
+ module Muml_Element
402
+ STRUTS_FORM_HELPER="xmda.struts.FormHelper"
403
+ STRUTS_FORM_HELPER_ENUMTOLVB="enumToLvb"
404
+
405
+ STRUTS_DATE_FORMATER_INSTANCE=STRUTS_FORM_HELPER+'.DfCalendar'
406
+ STRUTS_TIMESTAMP_FORMATER_INSTANCE=STRUTS_FORM_HELPER+'.DfTimestamp'
407
+ def struts_getFormHelper
408
+ helper=umlx_getOrCreateClass(STRUTS_FORM_HELPER)
409
+ if(helper.java_customCode.empty?)
410
+ helper.apaCom_addLogger!
411
+ helper.umlx_external=RDF_FALSE
412
+ #helper.java_import_add(STRUTS_LVB)
413
+ helper.db_isTransient=RDF_TRUE
414
+ helper.struts_isForm=RDF_FALSE
415
+ helper.java_customCode= %{
416
+
417
+ public static final java.text.SimpleDateFormat DfTimestamp=new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm:ss",java.util.Locale.ENGLISH);
418
+ public static final java.text.SimpleDateFormat DfCalendar=new java.text.SimpleDateFormat("yyyy/MM/dd",java.util.Locale.ENGLISH);
419
+
420
+
421
+
422
+
423
+ /**
424
+ * Transform a timestamp date to its GMT equivalent date.
425
+ *
426
+ * @param fromTimeZone
427
+ * @param timestampToTransform
428
+ * @return
429
+ */
430
+ public static java.util.Date transformFromCurrentTZToGMT(final java.util.TimeZone fromTimeZone,final java.util.Date timestampToTransform) {
431
+ // the offset of this time zone from UTC.
432
+ int offset = fromTimeZone.getRawOffset();
433
+
434
+ java.util.GregorianCalendar gregCal = new java.util.GregorianCalendar();
435
+ gregCal.setTime(timestampToTransform);
436
+ gregCal.add(java.util.Calendar.HOUR_OF_DAY, (-offset / 3600000));
437
+
438
+ return gregCal.getTime();
439
+ }
440
+
441
+ public static java.util.Date transformFromGMTToCurrentTZ(final java.util.TimeZone currentTimeZone,final java.util.Date timestampToTransform) {
442
+ // the offset of this time zone from UTC.
443
+ int offset = currentTimeZone.getRawOffset();
444
+
445
+ java.util.GregorianCalendar gregorianCalendar = new java.util.GregorianCalendar();
446
+ gregorianCalendar.setTime(timestampToTransform);
447
+ gregorianCalendar.add(java.util.Calendar.HOUR_OF_DAY, (offset / 3600000));
448
+ return gregorianCalendar.getTime();
449
+ }
450
+
451
+ public static java.util.List<#{STRUTS_LVB}> #{STRUTS_FORM_HELPER_ENUMTOLVB}(final Class<?> enumType,final xmda.java.JavaEnumSig typeCheck, final java.util.List<?> enums) {
452
+ return #{STRUTS_FORM_HELPER_ENUMTOLVB}(enumType,typeCheck,enums,false);
453
+ }
454
+ // addNullItem is used for example to add a "add element" in creator selection.
455
+ public static java.util.List<#{STRUTS_LVB}> #{STRUTS_FORM_HELPER_ENUMTOLVB}(final Class<?> enumType,final xmda.java.JavaEnumSig typeCheck, final java.util.List<?> enums,final boolean addNullItem) {
456
+ try {
457
+ java.util.List<#{STRUTS_LVB}> ret=new java.util.ArrayList<#{STRUTS_LVB}>();
458
+ String prefix=enumType.getCanonicalName()+".";
459
+ #{STRUTS_LVB} lvb=null;
460
+ if(addNullItem) { ret.add(new #{STRUTS_LVB}(prefix+"obj_nil", "nil"));}
461
+ for ( Object itemObj : enums) {
462
+ xmda.java.JavaEnumSig item=(#{JAVA_ENUM_INTERFACE_QNAME})itemObj;
463
+ if(item!=null) {
464
+ //value is a localization resource key
465
+ lvb=new #{STRUTS_LVB}(prefix+item.name(),item.name());
466
+ } else {
467
+ lvb=new #{STRUTS_LVB}(prefix+"obj_nil", "nil");
468
+ }
469
+ ret.add(lvb);
470
+ }
471
+ return ret;
472
+ } catch (RuntimeException e) {
473
+ log.error(e);
474
+ throw(e);
475
+ }
476
+ }
477
+ }
478
+ end
479
+ return helper;
480
+ end
481
+ end
482
+
483
+
@@ -0,0 +1,37 @@
1
+
2
+ module Mrdf_Model
3
+ def struts_header_generate
4
+ write <<END
5
+ <%-- ******** ENTETE ****************** --%>
6
+ <div class="cadre">
7
+ <div class="AgLeft">
8
+ <a href="https://rubyforge.org/">
9
+ <img src="#{css_path_model}/#{css_color_class}/image/logoMDE.gif" border="0" alt="Home"/>
10
+ </a>
11
+ </div>
12
+ <div class="AgCenter">
13
+ <img src="#{css_path_model}/#{css_color_class}/image/bienvenue.gif" border="0" alt="will be delete"/>
14
+ </div>
15
+ <div class="AgRight">
16
+ <a href="javascript:window.print();">
17
+ <img src="#{css_path_model}/#{css_color_class}/image/btnPrint.gif" width="25" height="25" border="0" alt="Print"/>
18
+ </a>
19
+ <html:link page="/Welcome.do"title="Retour a l'accueil">
20
+ <img src="#{css_path_model}/#{css_color_class}/image/btnPosition.gif" width="25" height="25" border="0" alt="Position"/>
21
+ </html:link>
22
+ <a href="#">
23
+ <img src="#{css_path_model}/#{css_color_class}/image/btnHelp.gif" width="25" height="25" border="0" alt="Help"/>
24
+ </a>
25
+ </div>
26
+ </div>
27
+ <%-- ******** USER CONTEXT ************* --%>
28
+ END
29
+ end
30
+ end
31
+
32
+ module Muml_Class
33
+ def struts_header_generate
34
+ self.rdf_model.struts_header_generate;
35
+ return
36
+ end
37
+ end
@@ -0,0 +1,39 @@
1
+ require 'pathname'
2
+
3
+ module Muml_Class
4
+ def struts_header_link_generate
5
+ rdf_model.struts_header_link_generate(struts_jsp_edit_path.to_s)
6
+ end
7
+ end
8
+
9
+ module Mrdf_Resource #< ::Crdfs_Class
10
+ # def struts_header_link_generate
11
+ # rdf_model.struts_header_link_generate
12
+ # end
13
+ def css_path_model
14
+ rdf_model.css_path_model
15
+ end
16
+ def css_color_class
17
+ rdf_model.css_color_class
18
+ end
19
+ end
20
+
21
+ module Mrdf_Model
22
+ STRUTS_RES_DIRECTORY="res"
23
+
24
+ def css_path_model
25
+ return "#{STRUTS_RES_DIRECTORY}/"
26
+ end
27
+
28
+ def css_color_class
29
+ return "orange"
30
+ end
31
+
32
+ def struts_header_link_generate(sourcePage)
33
+ rel=Pathname.new(".").relative_path_from(Pathname.new(File.dirname(sourcePage)))
34
+ write <<END
35
+ <jsp:include page="#{rel}/res/orange/include/include_head.jsp" flush="false"/>
36
+ END
37
+ end
38
+ end
39
+