ontomde-uml2-struts 1.0.4

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