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.
@@ -0,0 +1,701 @@
1
+
2
+ module Mrdf_Model
3
+
4
+ def flex_generateMXML
5
+ eachStrutsBean { |b|
6
+ next if b.struts_actionForm.empty?
7
+ b.flex_generateMXML
8
+ }
9
+ end
10
+ end
11
+
12
+ module Muml_Class
13
+ def flex_ownedAttributeSet(ignoreId=false)
14
+ return struts_formAttribute(ignoreId)
15
+ end
16
+
17
+ def flex_generateMXML
18
+ mtk_writeSession("#{java_FileName.to_s.gsub(/\.[^.\/]*$/,"")}.mxml"){
19
+ flex_writeMXML
20
+ }
21
+ end
22
+
23
+ def flex_writeMXML
24
+ before=<<ENDHEAD
25
+ <?xml version="1.0" encoding="utf-8"?>
26
+ <mx:Box xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initForm()" height="100%" width="100%" xmlns:vo="#{FLEX_NS_PREFIX}#{umlx_owner_one.java_qualifiedName}.*" xmlns:utils="utils.*" xmlns:components="components.*" >
27
+ ENDHEAD
28
+
29
+ after=<<ENDFOOT
30
+ </mx:Box>
31
+ ENDFOOT
32
+ encloseWrite(before,after) {
33
+ flex_writeMXML_script
34
+ flex_writeMXML_vo
35
+ flex_writeMXML_menu
36
+ flex_writeMXML_MXvalidators
37
+ flex_writeMXML_Form
38
+
39
+ }
40
+ end
41
+ def flex_writeMXML_MXvalidators
42
+ encloseWrite(%{<mx:Array id="validators">\n},%{</mx:Array>\n}) {
43
+ flex_ownedAttributeSet.each { |prop|
44
+ tpl=JavaMapping.instance.getTemplate(prop.uml_type_one)
45
+ tpl.flex_writeMXML_MXvalidator(prop)
46
+ }
47
+ }
48
+ end
49
+ #SAMPLE:
50
+
51
+ # ////////////////////////////////////////////////////
52
+ # //debut des fonctions metiers. A qqchose pres c'est comme en JAVA
53
+ # ////////////////////////////////////////////////////
54
+ #
55
+
56
+ #
57
+ # function editAdresse(objid) {
58
+ # if("_"+objid != "_empty") {
59
+ # doWhat="editAdresse";
60
+ # reqtab=objid;
61
+ # submit();
62
+ # } else {
63
+ # Alert.show("no element selected for \nadresse");
64
+ # }
65
+ # }
66
+ #
67
+ # function removeAndDeleteAdresse(objid:String):void {
68
+ # if("_"+objid != "_empty") {
69
+ # doWhat="removeAndDeleteAdresse";
70
+ # reqtab=objid;
71
+ # submit();
72
+ # } else {
73
+ # Alert.show("no element selected for \nadresse");
74
+ # }
75
+ # }
76
+ #
77
+ #
78
+ #
79
+ # function createAndAddAdresse(reqType):void {
80
+ # doWhat="createAndAddAdresse";
81
+ # this.reqType=reqType;
82
+ # submit();
83
+ # }
84
+ #
85
+ #
86
+ #
87
+ # function editFavoris(objid) {
88
+ # if("_"+objid != "_empty") {
89
+ # doWhat="editFavoris";
90
+ # reqtab=objid;
91
+ # submit();
92
+ # } else {
93
+ # Alert.show("no element selected for \nfavoris");
94
+ # }
95
+ # }
96
+ #
97
+ # function removeAndDeleteFavoris(objid) {
98
+ # if("_"+objid != "_empty") {
99
+ # doWhat="removeAndDeleteFavoris";
100
+ # reqtab=objid;
101
+ # submit();
102
+ # } else {
103
+ # Alert.show("no element selected for \nfavoris");
104
+ # }
105
+ # }
106
+ #
107
+ # function addFavoris(objid) {
108
+ # if("_"+objid != "_empty") {
109
+ # doWhat="addFavoris";
110
+ # reqtab=objid;
111
+ # submit();
112
+ # } else {
113
+ # Alert.show("no element selected for \nfavoris");
114
+ # }
115
+ # }
116
+ #
117
+ # function createAndAddContrats(reqType) {
118
+ # doWhat="createAndAddContrats";
119
+ # this.reqType="package1_dot_Contrat";
120
+ # submit();
121
+ # }
122
+ #
123
+ # function editContrats(objid) {
124
+ # if("_"+objid != "_empty") {
125
+ # doWhat="editContrats";
126
+ # reqtab=objid;
127
+ # submit();
128
+ # } else {
129
+ # Alert.show("no element selected for \ncontrats");
130
+ # }
131
+ # }
132
+ #
133
+ # function removeAndDeleteContrats(objid) {
134
+ # if("_"+objid != "_empty") {
135
+ # doWhat="removeAndDeleteContrats";
136
+ # reqtab=objid;
137
+ # submit();
138
+ # } else {
139
+ # Alert.show("no element selected for \ncontrats");
140
+ # }
141
+ # }
142
+ #
143
+ #
144
+ #
145
+ # function addDernierContrat(id) {
146
+ # doWhat="addDernierContrat";
147
+ # this.reqtab=id;
148
+ # submit();
149
+ # }
150
+ #
151
+ # function editDernierContrat(objid) {
152
+ # if("_"+objid != "_empty") {
153
+ # doWhat="editDernierContrat";
154
+ # reqtab=objid;
155
+ # submit();
156
+ # } else {
157
+ # Alert.show("no element selected for \ncontrats");
158
+ # }
159
+ # }
160
+ #
161
+ # function editLastMonthContracts(objid) {
162
+ # if("_"+objid != "_empty") {
163
+ # doWhat="editLastMonthContracts";
164
+ # reqtab=objid;
165
+ # submit();
166
+ # } else {
167
+ # Alert.show("no element selected for \nLastMonthContracts");
168
+ # }
169
+ # }
170
+ #
171
+ #
172
+ #
173
+ # function removeAndDeleteDernierContrat(objid) {
174
+ # if("_"+objid != "_empty") {
175
+ # doWhat="removeAndDeleteDernierContrat";
176
+ # reqtab=objid;
177
+ # submit();
178
+ # } else {
179
+ # Alert.show("no element selected for \ncontrats");
180
+ # }
181
+ # }
182
+ #
183
+ # function ajoutRapideContrat() {
184
+ # doWhat="ajoutRapideContrat";
185
+ # submit();
186
+ # }
187
+ #
188
+ #
189
+ # ////////////////////////////////////////////////////
190
+ # debut des fonctions metiers
191
+ # ////////////////////////////////////////////////////
192
+ def flex_writeMXML_script
193
+
194
+ # (script directory is relative)
195
+ before= <<ENDHEAD
196
+ <mx:Script source="#{"../"*(umlx_hierarchy.length)}script/formsGlobalFunctions.as" />
197
+ <mx:Script>
198
+ <![CDATA[
199
+ ENDHEAD
200
+
201
+ after=<<ENDFOOT
202
+ ]]>
203
+ </mx:Script>
204
+ ENDFOOT
205
+ encloseWrite(before,after) {
206
+ flex_mxml_as_generateAs
207
+ }
208
+ end
209
+
210
+
211
+ #SAMPLE:
212
+ # nom="{txtNom.text}"
213
+ # adresse="{cmbAdresse.selectedItem.id}"
214
+ def flex_writeMXML_vo
215
+ before=<<ENDHEAD
216
+ <vo:#{flex_NameVO} id="model"
217
+ ENDHEAD
218
+
219
+ after=<<ENDFOOT
220
+ />
221
+ ENDFOOT
222
+
223
+ encloseWrite(before,after) {
224
+ noId=true
225
+ flex_ownedAttributeSet(noId).each { |prop|
226
+ tpl=JavaMapping.instance.getTemplate(prop.uml_type_one)
227
+ tpl.flex_writeMXML_vo_mapping(prop)
228
+ }}
229
+ end
230
+
231
+ #generate menu (fixed and dynamic based on object functions)
232
+ def flex_writeMXML_menu
233
+ before=<<ENDHEAD
234
+ <mx:ArrayCollection id="methods" source="{buXML.businessaction}"/>
235
+
236
+ <mx:Model id="buXML">
237
+ <businessactions>
238
+ <businessaction label="Valider" functionName="biz_proceed" icon="@Embed('/assets/valider.gif')"/>
239
+ <businessaction label="Annuler" functionName="" icon="@Embed('/assets/delete.png')"/>
240
+ <businessaction label="HTML" functionName="HTML_Display" icon="@Embed('/assets/html.gif')"/>
241
+ <businessaction label="Print" functionName="doPrint" icon="@Embed('/assets/printpca.gif')"/>
242
+ <businessaction label="{modelGlob.fullscreen?'Normal Size':'FullScreen'}" functionName="fullScreen" icon="@Embed('/assets/fullscreen.gif')"/>
243
+ ENDHEAD
244
+
245
+ after=<<ENDFOOT
246
+ </businessactions>
247
+ </mx:Model>
248
+ ENDFOOT
249
+ encloseWrite(before,after) {
250
+ uml_ownedOperation.each { |op|
251
+ next unless op.umlx_businessMethod?
252
+ write(%{<businessaction label="{getString('#{op.umlx_owner_one.java_qualifiedName}.#{op.java_Name}')}" functionName="#{op.java_Name}"/>\n})
253
+ }
254
+ }
255
+ end
256
+
257
+
258
+
259
+ def flex_writeMXML_Form
260
+ before= <<ENDHEAD
261
+ <utils:ValidatorForm id="MyForm" defaultButton="{btnValidate}" validators="{validators}" valid="handleFormValidate(event)" invalid="handleFormValidate(event)" width="100%" height="100%">
262
+ <mx:FormHeading styleName="PetitTitrePose" label="{getString('#{self.struts_actionForm_one.java_qualifiedName}.title')}"/>
263
+ ENDHEAD
264
+
265
+ after= <<ENDFOOT
266
+ </utils:ValidatorForm>
267
+
268
+ <mx:ControlBar id="ControlButtons">
269
+ <mx:Text id="status" width="186"/>
270
+ <mx:Button label="{getString('button.validate')}" click="biz_proceed()" id="btnValidate"/>
271
+ <mx:Button label="{getString('button.reset')}" click="this.executeBindings(true)" id="button2"/>
272
+ <mx:Button label="HTML" click="{HTML_Display()}" id="buttontest"/>
273
+ <mx:Button label="print" click="{doPrint()}" id="buttonPrint"/>
274
+ </mx:ControlBar>
275
+ ENDFOOT
276
+
277
+ encloseWrite(before,after) {
278
+ #uml_ownedOperation.each { |operation|
279
+ # next unless operation.umlx_businessMethod?
280
+ # operation.flex_writeMXML_Form_item_methods
281
+ # }
282
+ ignoreId=true
283
+ flex_ownedAttributeSet(ignoreId).each { |prop|
284
+ encloseWrite(%{<mx:FormItem label="{getString('#{self.struts_actionForm_one.java_qualifiedName}.#{prop.java_Name}')}">\n} ,%{</mx:FormItem>\n}) {
285
+ tpl=JavaMapping.instance.getTemplate(prop.uml_type_one)
286
+ tpl.flex_writeMXML_Form_item_property(prop)
287
+ }
288
+ }
289
+ }
290
+ end
291
+
292
+ end
293
+
294
+
295
+ # <mx:FormItem label="{getString('package1.struts.ClientStrutsForm.adresse')}">
296
+
297
+ # </mx:FormItem>
298
+ #
299
+ #
300
+ #
301
+ #
302
+ # <mx:FormItem label="{getString('package1.struts.ClientStrutsForm.dernierContrat')}">
303
+ # <mx:DataGrid height="49" dataProvider="{model.dernierContrat}">
304
+ # <mx:columns>
305
+ # <mx:DataGridColumn headerText="Column 1" dataField="id"/>
306
+ # <mx:DataGridColumn headerText="Column 2" dataField="info1"/>
307
+ # <mx:DataGridColumn dataField="id" width="30" headerText="" editable="false">
308
+ # <mx:itemRenderer>
309
+ # <mx:Component >
310
+ # <mx:LinkButton label="[R]"
311
+ # click="{outerDocument.removeAndDeleteDernierContrat(data.id)}">
312
+ # </mx:LinkButton>
313
+ # </mx:Component>
314
+ # </mx:itemRenderer>
315
+ # </mx:DataGridColumn>
316
+ # <mx:DataGridColumn dataField="id" width="30" headerText="" editable="false">
317
+ # <mx:itemRenderer>
318
+ # <mx:Component >
319
+ # <mx:LinkButton label="[E]"
320
+ # click="{outerDocument.editDernierContrat(data.id)}" >
321
+ # </mx:LinkButton>
322
+ # </mx:Component>
323
+ # </mx:itemRenderer>
324
+ # </mx:DataGridColumn>
325
+ # </mx:columns>
326
+ # </mx:DataGrid>
327
+ # <mx:ComboBox id="cmbDernierContrats" dataProvider="{model.dernierContratSug}" prompt="select...." change="{addDernierContrat(cmbDernierContrats.selectedItem.id)}" labelField="id"></mx:ComboBox>
328
+ # </mx:FormItem>
329
+ #
330
+ # <mx:FormItem label="{getString('package1.struts.ClientStrutsForm.favoris')}" width="531">
331
+ # <mx:DataGrid width="400" dataProvider="{model.favoris}">
332
+ # <mx:columns>
333
+ # <mx:DataGridColumn headerText="Column 1" dataField="id"/>
334
+ # <mx:DataGridColumn headerText="Column 2" dataField="info1"/>
335
+ # <mx:DataGridColumn dataField="id" width="30" headerText="" editable="false">
336
+ # <mx:itemRenderer>
337
+ # <mx:Component >
338
+ # <mx:LinkButton label="[R]"
339
+ # click="{outerDocument.removeAndDeleteFavoris(data.id)}">
340
+ # </mx:LinkButton>
341
+ # </mx:Component>
342
+ # </mx:itemRenderer>
343
+ # </mx:DataGridColumn>
344
+ # <mx:DataGridColumn dataField="id" width="30" headerText="" editable="false">
345
+ # <mx:itemRenderer>
346
+ # <mx:Component >
347
+ # <mx:LinkButton label="[E]"
348
+ # click="{outerDocument.editFavoris(data.id)}" >
349
+ # </mx:LinkButton>
350
+ # </mx:Component>
351
+ # </mx:itemRenderer>
352
+ # </mx:DataGridColumn>
353
+ # </mx:columns>
354
+ # </mx:DataGrid>
355
+ # <mx:ComboBox id="cmbFavoris" dataProvider="{ClientModel.favorisSug}" change="{addFavoris(cmbFavoris.selectedItem.id)}" prompt="select...." labelField="id">
356
+ #
357
+ # </mx:ComboBox>
358
+ # </mx:FormItem>
359
+ # <mx:FormItem label="{getString('package1.struts.ClientStrutsForm.contrats')}" >
360
+ # <mx:DataGrid width="400" dataProvider="{ClientModel.contrats}">
361
+ # <mx:columns>
362
+ # <mx:DataGridColumn headerText="Column 1" dataField="id"/>
363
+ # <mx:DataGridColumn headerText="Column 2" dataField="info1"/>
364
+ # <mx:DataGridColumn dataField="id" width="30" headerText="" editable="false">
365
+ # <mx:itemRenderer>
366
+ # <mx:Component >
367
+ # <mx:LinkButton label="[R]"
368
+ # click="{outerDocument.removeAndDeleteContrats(data.id)}">
369
+ # </mx:LinkButton>
370
+ # </mx:Component>
371
+ # </mx:itemRenderer>
372
+ # </mx:DataGridColumn>
373
+ # <mx:DataGridColumn dataField="id" width="30" headerText="" editable="false">
374
+ # <mx:itemRenderer>
375
+ # <mx:Component >
376
+ # <mx:LinkButton styleName="edit"
377
+ # click="{outerDocument.editContrats(data.id)}" >
378
+ # </mx:LinkButton>
379
+ # </mx:Component>
380
+ # </mx:itemRenderer>
381
+ # </mx:DataGridColumn>
382
+ # </mx:columns>
383
+ # </mx:DataGrid>
384
+ # <mx:ComboBox id="cmbContrats" dataProvider="{ClientModel.contratsSug}" labelFunction="myLabelFunction" change="{createAndAddContrats(cmbContrats.selectedItem.key)}" prompt="select...." labelField="value"></mx:ComboBox>
385
+ # </mx:FormItem>
386
+ #
387
+ # <mx:FormItem label="{getString('package1.struts.ClientStrutsForm.lastMonthContracts')}" >
388
+ # <mx:DataGrid width="400" dataProvider="{ClientModel.lastMonthContracts}">
389
+ # <mx:columns>
390
+ # <mx:DataGridColumn headerText="Column 1" dataField="id"/>
391
+ # <mx:DataGridColumn headerText="Column 2" dataField="info1"/>
392
+ # <mx:DataGridColumn headerText="Column 3" dataField="infoRO"/>
393
+ # <mx:DataGridColumn dataField="id" width="30" headerText="" editable="false">flex_writeMXML_validate
394
+ # <mx:itemRenderer>
395
+ # <mx:Component>
396
+ # <mx:LinkButton label="[E]"
397
+ # click="{outerDocument.editLastMonthContracts(data.id)}" >
398
+ # </mx:LinkButton>
399
+ # </mx:Component>
400
+ # </mx:itemRenderer>
401
+ # </mx:DataGridColumn>
402
+ # </mx:columns>
403
+ # </mx:DataGrid>
404
+ # </mx:FormItem>
405
+
406
+
407
+ #module Muml_Operation
408
+ # EXAMPLE:
409
+ # <mx:FormItem label="">
410
+ # <mx:Button label="{getString('package1.Client.ajoutRapideContrat')}" click="ajoutRapideContrat()" id="button1"/>
411
+ # </mx:FormItem>
412
+ #def flex_writeMXML_Form_item_methods
413
+ # write <<-ENDMETH
414
+ # <mx:FormItem label="">
415
+ # <mx:Button label="{getString('#{self.umlx_owner_one.java_qualifiedName}.#{self.java_Name}')}" click="{#{self.java_Name}()}" id="button_#{self.java_Name}"/>
416
+ # </mx:FormItem>
417
+ # ENDMETH
418
+ #end
419
+ #end
420
+
421
+
422
+ class JavaMappingText < JavaMapping
423
+ # EXAMPLE:
424
+ # <mx:TextInput id="txtNom" text="{model.nom}"/>
425
+ def flex_prefix
426
+ return "txt"
427
+ end
428
+ def flex_writeMXML_Form_item_property(prop)
429
+ prop.write(%{<mx:TextInput id="#{flex_prefix}#{prop.java_NameBean}" text="{model.#{prop.java_Name}}" #{maxStringLength.nil? ? "" : " maxChars=\"#{maxStringLength}\"" }/>\n})
430
+ end
431
+
432
+ def flex_writeMXML_vo_mapping(prop)
433
+ prop.write(%{ #{prop.java_Name}="{#{flex_prefix}#{prop.java_NameBean}.text}"})
434
+ end
435
+ def flex_writeMXML_Form_item_property_column(pcol)
436
+ pcol.write(%{<mx:DataGridColumn headerText="{getString('#{pcol.umlx_owner_one.java_qualifiedName}.#{pcol.java_Name}')}" dataField="#{pcol.java_Name}"/>\n})
437
+ end
438
+ end
439
+
440
+ class JavaMappingOrdinal < JavaMappingText
441
+
442
+ def flex_prefix
443
+ return "num"
444
+ end
445
+
446
+ # EXAMPLE:
447
+ # <mx:NumericStepper id="nNum" value="{model.numero}" stepSize="1"/>
448
+ def flex_writeMXML_Form_item_property(prop)
449
+ prop.write(%{<mx:NumericStepper id="#{flex_prefix}#{prop.java_NameBean}" value="{model.#{prop.java_Name}}" stepSize="1" />\n})
450
+ end
451
+
452
+ # EXAMPLE:
453
+ # numero="{numero.value}"
454
+ def flex_writeMXML_vo_mapping(prop)
455
+ prop.write(%{ #{prop.java_Name}="{#{flex_prefix}#{prop.java_NameBean}.value}"})
456
+ end
457
+
458
+ #def flex_writeMXML_Form_item_property_column(pcol)
459
+ # pcol.write(%{<mx:DataGridColumn headerText="Column " dataField="#{pcol.java_Name}"/>\n})
460
+ #end
461
+ end
462
+
463
+
464
+ class JavaMappingTimeStamp < JavaMapping
465
+
466
+ def flex_prefix
467
+ return "df"
468
+ end
469
+ # EXAMPLE:
470
+ #<mx:DateField width="150" id="dfDatedenaissance" selectedDate="{model.datedenaissance}" yearNavigationEnabled="true" formatString="DD/MM/YYYY"/>
471
+ def flex_writeMXML_Form_item_property(prop)
472
+ #prop.write %{<mx:DateField width="150" id="#{flex_prefix}#{prop.java_NameBean}" selectedDate="{model.#{prop.java_Name}}" yearNavigationEnabled="true" formatString="DD/MM/YYYY"/>}
473
+ prop.write %{<components:mon_timestamp id="#{flex_prefix}#{prop.java_NameBean}" is24Hour="true" backgroundColor="#000000" backgroundAlpha="0.05" borderColor="#00FF00" borderThickness="1" borderStyle="solid" cornerRadius="5" showDate="true" showTimes="true" showSeconds="true" timeValue="{model.#{prop.java_Name}}" />}
474
+ end
475
+
476
+ # datedenaissance="{dfDatedenaissance.selectedDate}"
477
+ def flex_writeMXML_vo_mapping(prop)
478
+ #prop.write(%{ #{prop.java_Name}="{#{flex_prefix}#{prop.java_NameBean}.selectedDate}"})
479
+ prop.write(%{ #{prop.java_Name}="{#{flex_prefix}#{prop.java_NameBean}.timeValue}"})
480
+ end
481
+ def flex_writeMXML_Form_item_property_column(pcol)
482
+ pcol.write(%{<mx:DataGridColumn headerText="Column " dataField="#{pcol.java_Name}"/>\n})
483
+ end
484
+ end
485
+
486
+ class JavaMappingCalendar < JavaMapping
487
+ def flex_prefix
488
+ return "df"
489
+ end
490
+ # EXAMPLE:
491
+ #<mx:DateField width="150" id="dfDatedenaissance" selectedDate="{model.datedenaissance}" yearNavigationEnabled="true" formatString="DD/MM/YYYY"/>
492
+ def flex_writeMXML_Form_item_property(prop)
493
+ prop.write %{<mx:DateField width="150" id="#{flex_prefix}#{prop.java_NameBean}" selectedDate="{model.#{prop.java_Name}}" yearNavigationEnabled="true" formatString="DD/MM/YYYY"/>}
494
+ end
495
+
496
+ # datedenaissance="{dfDatedenaissance.selectedDate}"
497
+ def flex_writeMXML_vo_mapping(prop)
498
+ prop.write(%{ #{prop.java_Name}="{#{flex_prefix}#{prop.java_NameBean}.selectedDate}"})
499
+ end
500
+ def flex_writeMXML_Form_item_property_column(pcol)
501
+ pcol.write(%{<mx:DataGridColumn headerText="Column " dataField="#{pcol.java_Name}"/>\n})
502
+ end
503
+ end
504
+
505
+ class JavaMappingGenericEnum < JavaMapping
506
+ def flex_prefix
507
+ return "cmb"
508
+ end
509
+
510
+ # EXAMPLE:
511
+ # <mx:ComboBox id="cmbCivilite" dataProvider="{model.civiliteSug}" selectedItem="{model.civilite}" labelFunction="myLabelFunction" labelField="value">
512
+ # </mx:ComboBox>
513
+ def flex_writeMXML_Form_item_property(prop)
514
+ prop.write <<-END
515
+ <mx:ComboBox id="#{flex_prefix}#{prop.java_NameBean}" dataProvider="{model.#{prop.java_Name}Sug}" selectedItem="{model.#{prop.java_Name}}" labelFunction="myLabelFunction" labelField="value">
516
+ </mx:ComboBox>
517
+ END
518
+ end
519
+
520
+ # civilite="{cmbCivilite.selectedItem}"
521
+ def flex_writeMXML_vo_mapping(prop)
522
+ prop.write(%{ #{prop.java_Name}="{#{flex_prefix}#{prop.java_NameBean}.selectedItem}"})
523
+ end
524
+
525
+ def flex_writeMXML_Form_item_property_column(pcol)
526
+ pcol.write(%{<mx:DataGridColumn headerText="Column " dataField="#{pcol.java_Name}"/>\n})
527
+ end
528
+
529
+ end
530
+
531
+ class JavaMappingBoolean < JavaMapping
532
+ def flex_prefix
533
+ return "chk"
534
+ end
535
+ def flex_writeMXML_Form_item_property(prop)
536
+ prop.write(%{<mx:CheckBox id="#{flex_prefix}#{prop.java_NameBean}" label="" selected="{model.#{prop.java_Name}}" />\n})
537
+ end
538
+
539
+ # ascenceur="{chkascenceur.selected}"
540
+ def flex_writeMXML_vo_mapping(prop)
541
+ prop.write(%{ #{prop.java_Name}="{#{flex_prefix}#{prop.java_NameBean}.selected}"})
542
+ end
543
+ def flex_writeMXML_Form_item_property_column(pcol)
544
+ pcol.write(%{<mx:DataGridColumn headerText="Column " dataField="#{pcol.java_Name}"/>\n})
545
+ end
546
+
547
+ end
548
+
549
+ class JavaMappingGenericClass < JavaMapping
550
+ def flex_prefix
551
+ return "cmb"
552
+ end
553
+
554
+ # EXAMPLE:
555
+ # <mx:DataGrid height="49" dataProvider="{model.adresse}">
556
+ # <mx:columns>
557
+ # <mx:DataGridColumn headerText="Column 1" dataField="ident"/>
558
+ # <mx:DataGridColumn headerText="Column 2" dataField="numero"/>
559
+ # <mx:DataGridColumn dataField="ident" width="30" headerText="" editable="false">
560
+ # <mx:itemRenderer>
561
+ # <mx:Component >
562
+ # <mx:LinkButton label="[R]"
563
+ # click="{outerDocument.removeAndDeleteAdresse(data.ident)}">
564
+ # </mx:LinkButton>
565
+ # </mx:Component>
566
+ # </mx:itemRenderer>
567
+ # </mx:DataGridColumn>
568
+ # <mx:DataGridColumn dataField="ident" width="30" headerText="" editable="false">
569
+ # <mx:itemRenderer>
570
+ # <mx:Component >
571
+ # <mx:LinkButton label="[E]"
572
+ # click="{outerDocument.editAdresse(data.ident)}" >
573
+ # </mx:LinkButton>
574
+ # </mx:Component>
575
+ # </mx:itemRenderer>
576
+ # </mx:DataGridColumn>
577
+ # </mx:columns>
578
+ # </mx:DataGrid>
579
+ # <mx:ComboBox id="cmbAdresse"
580
+ # prompt="Select one..."
581
+ # labelFunction="myLabelFunction"
582
+ # dataProvider="{model.adressesSug}"
583
+ # labelField="value"
584
+ # change="createAndAddAdresse(cmbAdresse.selectedItem.key)">
585
+ # </mx:ComboBox>
586
+
587
+ def flex_writeMXML_Form_item_property(prop)
588
+ before= <<-END_BEFORE
589
+ <mx:HBox>
590
+ <mx:VBox>
591
+
592
+ #{ %{<mx:Button styleName="Add" width="32" height="32" click="{showSug(dg#{prop.java_NameBean},model.#{prop.java_Name}Sug,add#{prop.java_NameBean})}" buttonMode="true" useHandCursor="true" />
593
+ } if !(prop.uml_isReadOnly?) && !(prop.umlx_isComposite?) }
594
+
595
+ #{ %{<mx:Button styleName="#{ prop.umlx_isComposite? ? "Delete" : "Remove" }" width="32" height="32" enabled="{dg#{prop.java_NameBean}.selectedItem}" click="removeAndDelete#{prop.java_NameBean}(dg#{prop.java_NameBean}.selectedItem.id)" buttonMode="true" useHandCursor="true" includeInLayout="{model.#{prop.java_Name}.length>0}" visible="{dg#{prop.java_NameBean}.visible}" />} if !prop.uml_isReadOnly? }
596
+
597
+ <mx:Button styleName="Edit" width="32" height="32" enabled="{dg#{prop.java_NameBean}.selectedItem}" click="edit#{prop.java_NameBean}(dg#{prop.java_NameBean}.selectedItem.id)" includeInLayout="{model.#{prop.java_Name}.length>0}" buttonMode="true" useHandCursor="true" visible="{dg#{prop.java_NameBean}.visible}"/>
598
+ </mx:VBox>
599
+
600
+ <mx:VBox>
601
+ <components:AdvancedDatagrid id="dg#{prop.java_NameBean}" width="100%" horizontalScrollPolicy="auto" maxWidth="{this.width - dg#{prop.java_NameBean}.x -50}" dataProvider="{model.#{prop.java_Name}}" doubleClickEnabled="true" itemDoubleClick="edit#{prop.java_NameBean}(dg#{prop.java_NameBean}.selectedItem.id)" includeInLayout="{model.#{prop.java_Name}.length>0}" visible="{model.#{prop.java_Name}.length>0}">
602
+ <components:columns>
603
+ END_BEFORE
604
+ after= <<-END_AFTER
605
+ </components:columns>
606
+ </components:AdvancedDatagrid>
607
+ #{%{<mx:ComboBox id="#{flex_prefix}#{prop.java_NameBean}"
608
+ prompt="Select one...(create)"
609
+ labelFunction="myLabelFunction"
610
+ dataProvider="{model.#{prop.java_Name}CreateAndAddSug}"
611
+ labelField="value"
612
+ change="createAndAdd#{prop.java_NameBean}(#{flex_prefix}#{prop.java_NameBean}.selectedItem.key)">
613
+ </mx:ComboBox>} if !prop.uml_isReadOnly? && prop.umlx_isComposite?}
614
+ </mx:VBox>
615
+ </mx:HBox>
616
+ END_AFTER
617
+
618
+ prop.encloseWrite(before,after) {
619
+ noId=true
620
+ prop.uml_type_one.flex_ownedAttributeSet(noId).each { |pcol|
621
+ tpl=JavaMapping.instance.getTemplate(pcol.uml_type_one)
622
+ tpl.flex_writeMXML_Form_item_property_column(pcol)
623
+ }
624
+ }
625
+ end
626
+
627
+
628
+ #def flex_writeMXML_Form_item_property(prop)
629
+ #
630
+ # before=""
631
+ #
632
+ # before=before+ <<-ENDHEAD
633
+ # <mx:DataGrid id="dg#{prop.java_NameBean}" dataProvider="{model.#{prop.java_Name}}">
634
+ # <mx:columns>
635
+ # ENDHEAD
636
+ # after=""
637
+ ## after= prop.uml_isReadOnly? ? "" : <<-ENDBOTTOM
638
+ ## <mx:DataGridColumn dataField="id" width="30" headerText="" editable="false">
639
+ ## <mx:itemRenderer>
640
+ ## <mx:Component >
641
+ ## <mx:LinkButton label="[R]" click="{outerDocument.removeAndDelete#{prop.java_NameBean}(data.id)}">
642
+ ## </mx:LinkButton>
643
+ ## </mx:Component>
644
+ ## </mx:itemRenderer>
645
+ ## </mx:DataGridColumn>
646
+ ## ENDBOTTOM
647
+ # after=after + <<-ENDBOTTOM
648
+ # <mx:DataGridColumn dataField="id" width="30" headerText="" editable="false">
649
+ # <mx:itemRenderer>
650
+ # <mx:Component >
651
+ # <mx:LinkButton label="[E]" click="{outerDocument.edit#{prop.java_NameBean}(data.id)}" >
652
+ # </mx:LinkButton>
653
+ # </mx:Component>
654
+ # </mx:itemRenderer>
655
+ # </mx:DataGridColumn>
656
+ # </mx:columns>
657
+ # </mx:DataGrid>
658
+ # ENDBOTTOM
659
+ #
660
+ # prop.encloseWrite(before,after) {
661
+ # noId=true
662
+ # prop.uml_type_one.flex_ownedAttributeSet(noId).each { |pcol|
663
+ # tpl=JavaMapping.instance.getTemplate(pcol.uml_type_one)
664
+ # tpl.flex_writeMXML_Form_item_property_column(pcol)
665
+ # }
666
+ # }
667
+ #
668
+ # # si composition
669
+ # if prop.uml_isReadOnly?
670
+ # #nop
671
+ # elsif prop.umlx_isComposite?
672
+ # prop.write <<-END
673
+ # <mx:ComboBox id="#{flex_prefix}#{prop.java_NameBean}"
674
+ # prompt="Select one...(create)"
675
+ # labelFunction="myLabelFunction"
676
+ # dataProvider="{model.#{prop.java_Name}CreateAndAddSug}"
677
+ # labelField="value"
678
+ # change="createAndAdd#{prop.java_NameBean}(#{flex_prefix}#{prop.java_NameBean}.selectedItem.key)">
679
+ # </mx:ComboBox>
680
+ # END
681
+ # else
682
+ # #prop.write <<-END
683
+ # # <mx:Button label="+" click="{showSug(dg#{prop.java_NameBean},model.#{prop.java_Name}Sug,add#{prop.java_NameBean})}" />
684
+ # #END
685
+ #
686
+ #
687
+ # end
688
+ #end
689
+
690
+ def flex_writeMXML_vo_mapping(prop)
691
+ #nop
692
+ end
693
+ def flex_writeMXML_Form_item_property_column(pcol)
694
+ #nop
695
+ end
696
+
697
+ end
698
+
699
+
700
+
701
+