-
Notifications
You must be signed in to change notification settings - Fork 7
/
GxOptions.bbj
1475 lines (1451 loc) · 68.3 KB
/
GxOptions.bbj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
rem /**
rem * The package exports a collection of option interfaces which are used to configure the grid and the columns
rem */
rem package GxOptions
rem /**
rem * This file is part of the BBjGridExWidget plugin.
rem * (c) Basis Europe <[email protected]>
rem *
rem * For the full copyright and license information, please view the LICENSE
rem * file that was distributed with this source code.
rem */
use java.util.ArrayList
use com.google.gson.Gson
use com.google.gson.JsonParser
use com.google.gson.JsonObject
use com.google.gson.JsonArray
use com.basiscomponents.db.ResultSet
use ::BBjGridExWidget/BBjGridExWidget.bbj::BBjGridExWidget
use ::BBjGridExWidget/GxLanguageManager.bbj::GxLanguageManager
use ::BBjGridExWidget/GxSidebar.bbj::GxSidebar
use ::BBjGridExWidget/GxSidebar.bbj::GxDefaultSidebar
use ::BBjGridExWidget/GxSidebar.bbj::GxFiltersToolpanel
use ::BBjGridExWidget/GxStatusBar.bbj::GxStatusBar
use ::BBjGridExWidget/GxContextMenu.bbj::GxContextMenu
use ::BBjGridExWidget/GxContextMenu.bbj::GxDefaultContextMenu
use ::BBjGridExWidget/GxColumns.bbj::GxDefaultColumnDefinition
use ::BBjGridExWidget/GxColumns.bbj::GxAutoGroupColumn
use ::BBjGridExWidget/GxColumns.bbj::GxDefaultColumnGroup
use ::BBjGridExWidget/GxExpressions.bbj::GxExpressionInterface
use ::BBjGridExWidget/GxExpressions.bbj::GxExpression
use ::BBjGridExWidget/GxLogger.bbj::GxLogger
rem /**
rem * The class defines the common boolean options shared between components which
rem * manipulate booleans
rem *
rem * @author Hyyan Abo Fakher
rem */
class public GxOptionsBoolean
rem /**
rem * A hashset of what is considered true
rem */
field public JsonArray PossibleTrueValues! = new JsonArray()
rem /**
rem * A hashset of what is considered false
rem */
field public JsonArray PossibleFalseValues! = new JsonArray()
rem /**
rem * Construct new GxOptionsBoolean
rem */
method public GxOptionsBoolean()
rem fill predefined false values
#getPossibleFalseValues().add("0")
#getPossibleFalseValues().add("false")
#getPossibleFalseValues().add("n")
#getPossibleFalseValues().add("no")
rem fill predefined yes values
#getPossibleTrueValues().add("1")
#getPossibleTrueValues().add("true")
#getPossibleTrueValues().add("y")
#getPossibleTrueValues().add("yes")
methodend
rem /**
rem * Transform the options object to json
rem *
rem * @return JsonObject
rem */
method public JsonObject getAsJsonObject()
declare JsonObject json!
json! = new JsonObject()
json!. add("booleanTrueValue", iff(#getPossibleTrueValues().size() > 0, #getPossibleTrueValues(), listEmpty!) ,err=*next)
json!. add("booleanFalseValue", iff(#getPossibleFalseValues().size() > 0, #getPossibleFalseValues(), listEmpty!) ,err=*next)
methodret json!
methodend
classend
rem /**
rem * The class defines the common date time options shared between components which
rem * manipulate dates , times & timestamps
rem *
rem * @author Hyyan Abo Fakher
rem */
class public GxOptionsDateTime
rem /**
rem * Enable / disable time selection
rem */
field public BBjNumber EnableTime! = 1
rem /**
rem * Enable / disable time 24 format.
rem */
field public BBjNumber Enable24HR! = 1
rem /**
rem * Enable / disable seconds selection
rem */
field public BBjNumber EnableSeconds! = 0
rem /**
rem * Enable / disable Calendar input.
rem */
field public BBjNumber EnableCalendar! = 1
rem /**
rem * Set disableMobile to true to always use the non-native picker.
rem */
field public BBjNumber DisableMobile! = 1
rem /**
rem * Enables display of week numbers in calendar.
rem */
field public BBjNumber EnableWeekNumber! = 0
rem /**
rem * The Date mask for calender input
rem */
field public BBjString Mask! = "%Y/%Mz/%Dz %Hz:%mz:%sz"
rem /**
rem * Initial value of the hour element.
rem */
field public BBjNumber DefaultHour! = 12
rem /**
rem * Initial value of the minute element.
rem */
field public BBjNumber DefaultMinute! = 0
rem /**
rem * A valid iso 8601 datetime which defines the max allowed value in the
rem * calender
rem */
field public BBjString Max! = null()
rem /**
rem * A valid iso 8601 datetime which defines the min allowed value in the
rem * calender
rem */
field public BBjString Min! = null()
rem /**
rem * A valid expression which validates the datetime
rem */
field public GxExpressionInterface FormatterExpression! = null()
rem /**
rem * The locale used to format and display dates and times. default to the System settings
rem */
field public BBjString Locale! = null()
rem /**
rem * When true then accepts direct user's input from the input field.
rem *
rem * @deprecated since version 0.101.0, GxOptionsDateTime.AllowInput is deprecated. Direct input is always disabled.
rem */
field public BBjNumber AllowInput! = 1
rem /**
rem * @deprecated since version 0.101.0, GxOptionsDateTime.setAllowInput(BBjNumber allow!) is deprecated. Direct input is always disabled.
rem */
method public void setAllowInput(BBjNumber allow!)
GxLogger.warn("GxOptions","since version 0.101.0, GxOptionsDateTime.setAllowInput(BBjNumber allow!) is deprecated. Direct input is always disabled.")
methodend
rem /**
rem * @deprecated since version 0.101.0, GxOptionsDateTime.getAllowInput() is deprecated. Direct input is always disabled.
rem */
method public BBjNumber getAllowInput()
GxLogger.warn("GxOptions","since version 0.101.0, GxOptionsDateTime.getAllowInput() is deprecated. Direct input is always disabled.")
methodret 0
methodend
rem /**
rem * Create a GxExpression from string and set it as FormatterExpression
rem *
rem * @param BBjString expression! Javascript expression
rem */
method public void setFormatterExpression(BBjString expression!)
#FormatterExpression! = new GxExpression(expression!)
methodend
rem /**
rem * Set the initial value of the hour element.
rem *
rem * @param hour! - if Enable24HR is true , the hour must be between 0 & 24 , otherwise between 0 & 12
rem *
rem * @return void
rem */
method public void setDefaultHour(BBjNumber hour!)
isEnable24HR! = #getEnable24HR().booleanValue()
if(isEnable24HR!) then
if(!(hour! >= 0 AND hour! <= 24))
throw "Invalid Default Hour, Value must be in range 0 ~ 24", 256
FI
else
if(!(hour! >= 0 AND hour! <= 12))
throw "Invalid Default Hour, Value must be in range 0 ~ 12", 256
FI
FI
#DefaultHour! = hour!
methodend
rem /**
rem * Set the initial value of the minute element.
rem *
rem * @param minute! - value in range 0 ~ 60
rem *
rem * @return void
rem */
method public void setDefaultMinute(BBjNumber minute!)
if(!(minute! >= 0 AND minute! <= 60))
throw "Invalid Default Minute, Value must be in range 0 ~ 60", 256
FI
#DefaultMinute! = minute!
methodend
rem /**
rem * Enable / disable time 24 format.
rem *
rem * @param hour! - 1 for enabled , 0 for disabled
rem *
rem * @return void
rem */
method public void setEnable24HR(BBjNumber enabled!)
hour! = #getDefaultHour()
if(enabled!) then
if(!(hour! >= 0 AND hour! <= 24))
throw "Invalid Default Hour, Value must be in range 0 ~ 24", 256
FI
else
if(!(hour! >= 0 AND hour! <= 12))
throw "Invalid Default Hour, Value must be in range 0 ~ 12", 256
FI
FI
#Enable24HR! = enabled!
methodend
rem /**
rem * Transform the options object to json
rem *
rem * @return JsonObject
rem */
method public JsonObject getAsJsonObject()
declare JsonObject json!
json! = new JsonObject()
json!.addProperty("dateTimeEnableTime" , #getEnableTime().booleanValue(),err=*next)
json!.addProperty("dateTimeEnable24HR" , #getEnable24HR().booleanValue(),err=*next)
json!.addProperty("dateTimeEnableSeconds" , #getEnableSeconds().booleanValue(),err=*next)
json!.addProperty("dateTimeEnableCalendar" , #getEnableCalendar().booleanValue(),err=*next)
json!.addProperty("dateTimeDisableMobile", #getDisableMobile().booleanValue(),err=*next)
json!.addProperty("dateTimeEnableWeekNumber", #getEnableWeekNumber().booleanValue(),err=*next)
json!.addProperty("dateTimeDefaultHour", #getDefaultHour().longValue(),err=*next)
json!.addProperty("dateTimeDefaultMinute", #getDefaultMinute().longValue(),err=*next)
json!.addProperty("dateTimeMask", #getMask(),err=*next)
json!.addProperty("dateTimeMax", #getMax(),err=*next)
json!.addProperty("dateTimeMin", #getMin(),err=*next)
json!.addProperty("dateTimeLocale", #getLocale(),err=*next)
json!.addProperty("dateTimeFormatter",#getFormatterExpression().toString(),err=*next)
methodret json!
methodend
classend
rem /**
rem * The class holds the grid configuration properties
rem *
rem * Every property and method has one or more tag attached.
rem *
rem * The following is the meaning for each tag :<br><br>
rem *
rem *
rem * <table border="1" cellpadding="10">
rem * <tbody>
rem * <tr>
rem * <td><strong> Enterprise</strong></td>
rem * <td>The property/method is used only with the enterprise version. using it without having a valid license will<br />be ignored.</td>
rem * </tr>
rem * <tr>
rem * <td> <strong>Configuration</strong></td>
rem * <td>Properties and methods which are tagged with this tag are used to configure the grid before it is rendered on the client.<br />Changing these properties or calling these methods won't affect the grid which is displayed on the client.<br />In order to reflect your changes on the client, you need to re-render the whole grid <br />or re-render the column definition once again.</td>
rem * </tr>
rem * <tr>
rem * <td> <strong>API</strong></td>
rem * <td>Methods/properties tagged with this tag can be called before or after the grid is rendered on the client and they don't require a refresh.</td>
rem * </tr>
rem * <tr>
rem * <td><strong> ColumnsRenderer</strong></td>
rem * <td>Changing this property or calling this method after the first render require columns re-render using <i>updateColumns()</i> method</td>
rem * </tr>
rem * <tr>
rem * <td><strong> GridRenderer</strong></td>
rem * <td>Changing this property or calling this method after the first render require full re-render using <i>render()</i> method</td>
rem * </tr>
rem * </tbody>
rem * </table>
rem * @author Hyyan Abo Fakher
rem */
class public GxOptions
rem /**
rem * Contains column properties all columns will inherit.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public GxDefaultColumnDefinition DefaultColumnDefinition! = new GxDefaultColumnDefinition()
rem /**
rem * Contains column group properties all column groups will inherit.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public GxDefaultColumnGroup DefaultColumnGroupDefinition! = new GxDefaultColumnGroup()
rem /**
rem * Suppresses auto-sizing columns for columns. In other words, double-clicking a column header's edge will not auto-size.Default is false
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressAutoSize! = null()
rem /**
rem * How many pixels to add to a column width after the auto-sizing calculation. The default is 4 pixels. Set this if you want to add extra room to accommodate (for example) sort icons, or some other dynamic nature of the header.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber AutoSizePadding! = null()
rem /**
rem * If true, the ag-column-moving class is not added to the grid while columns are moving. In the default themes, this transpires to no animation for moving columns.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressColumnMoveAnimation! = null()
rem /**
rem * Set to true to suppress column moving. In other words, set to true to make the columns fixed position.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressMovableColumns! = null()
rem /**
rem * Set to true to show the 'no sort' icon.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber UnSortIcon! = null()
rem /**
rem * Set to true to suppress multi-sort when the user shift-clicks a column header.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressMultiSort! = null()
rem /**
rem * Set to true to always show the column menu button, rather than only showing when the mouse is over the column header.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressMenuHide! = null()
rem /**
rem * Allows specifying the group 'auto column' if you are not happy with the default.
rem * If grouping, this column def is included as the first column definition in the grid.
rem * If not grouping, this column is not included.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public GxAutoGroupColumn AutoGroupColumnDefinition! = new GxAutoGroupColumn()
rem /**
rem * Set to true to suppress column events being raised when state is changed throw the API methods
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem *
rem * @deprecated since version 1.7.0 - no longer required
rem */
field public BBjNumber SuppressSetColumnStateEvents! = null()
rem /**
rem * Set to true to specify that the sort should take into account accented characters, if this feature is turned on the sort will perform slower.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber AccentedSort! = null()
rem /**
rem * Set to true to suppress sorting of un-sorted data to match original row data
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressMaintainUnsortedOrder! = null()
rem /**
rem * Allow selection of multiple cells or rows. When true enable multiselection, disable otherwise
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber MultipleSelection! = 0
rem /**
rem * Set to true to allow multiple rows to be selected with a single click.
rem *
rem * E.g. if you click select one row, then click select another row, the first row will keep it's selection.
rem * Clicking a selected row in this mode will deselect the row.
rem * This is useful for touch devices where ctrl and shift clicking is
rem * not an option.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem * <br>
rem * <b>Note</b> that Despite the setting name, it works when MultipleSelection is enabled or disabled
rem */
field public BBjNumber RowMultiSelectWithClick! = 0
rem /**
rem * Set to true or false. If true, then rows will be deselected if you
rem * hold down ctrl + click the row. Normal behaviour with the grid disallows
rem * deselection of nodes (ie once a row is selected, it remains selected until
rem * another row is selected in its place).
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem *
rem * @deprecated since v1.7.0 - use `SuppressRowDeselection` instead
rem */
field public BBjNumber RowDeselection! = 0
rem /**
rem * If true, rows will not be deselected if you hold down Ctrl and click the row or press Space.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressRowDeselection! = 1
rem /**
rem * If true, rows will not be deselected if you hold down Ctrl and click the row or press Space.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressRowClickSelection! = 0
rem /**
rem * Set to true to enable Single Click Editing for cells, to start editing with a single click.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SingleClickEdit! = null()
rem /**
rem * Set to true so that neither single or double-click starts editing.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressClickEdit! = null()
rem /**
rem * Set to 'fullRow' to enable Full Row Editing. Otherwise leave blank to edit one cell at a time.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem *
rem * @see BBjGridExWidget.GRID_EDITTYPE_ROW()
rem * @see BBjGridExWidget.GRID_EDITTYPE_CELL()
rem */
field public BBjString EditType! = BBjGridExWidget.GRID_EDITTYPE_CELL()
rem /**
rem * Set this to true to stop cell editing when grid loses focus. The default is the grid stays editing until focus goes onto another cell. For inline (non-popup) editors only.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber StopEditingWhenGridLosesFocus! = null()
rem /**
rem * Set to true to have Enter key move focus to the cell below if not editing. The default is Enter key starts editing the currently focused cell.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber EnterMovesDown! = null()
rem /**
rem * Set to true to have Enter key move focus to the cell below after Enter is pressed while editing. The default is editing will stop and focus will remain on the editing cell.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber EnterMovesDownAfterEdit! = null()
rem /**
rem * The height for the row containing the column label header. If not specified the default is 25px.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber HeaderHeight! = null()
rem /**
rem * The height for the rows containing header column groups. If not specified, it uses headerHeight
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber GroupHeaderHeight! = null()
rem /**
rem * The height for the row containing the floating filters. If not specified the default is 20px.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber FloatingFiltersHeight! = null()
rem /**
rem * The height for the row containing the columns when in pivot mode. If not specified, it uses headerHeight.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber PivotHeaderHeight! = null()
rem /**
rem * The height for the row containing header column groups when in pivot mode. If not specified, it uses groupHeaderHeight
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber PivotGroupHeaderHeight! = null()
rem /**
rem * If grouping, set to true or false (default is false).
rem * If true, a group row will span all columns across the entire width of the table.
rem * If false, the cells will be rendered as normal and you will have the opportunity to include
rem * a grouping column (normally the first on the left) to show the group
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem *
rem * @deprecated since v1.7.0 - use `GroupDisplayType! = GxOptions.GROUP_DISPLAY_GROUP_ROWS() ` instead
rem */
field public BBjNumber GroupUseEntireRow! = null()
rem /**
rem * If grouping, set to the number of levels to expand by default. Eg 0 for none, 1 first level only, etc. Default is 0 (expand none). Set to -1 for expand everything
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber GroupDefaultExpanded! = null()
rem /**
rem * Specifies how the results of row grouping should be displayed.
rem *
rem * The options are:
rem *
rem * 1. 'GxOptions.GROUP_DISPLAY_SINGLE_COLUMN()': single group column automatically added by the grid.<br>
rem * 2. 'GxOptions.GROUP_DISPLAY_MULTIPLE_COLUMNS()': a group column per row group is added automatically.<br>
rem * 3. 'GxOptions.GROUP_DISPLAY_GROUP_ROWS()': group rows are automatically added instead of group columns. <br>
rem * 4. 'GxOptions.GROUP_DISPLAY_CUSTOM()': informs the grid that group columns will be provided.<br>
rem *
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjString GroupDisplayType! = null()
rem /**
rem * If true, the grid will not swap in the grouping column when grouping is enabled.
rem * Use this if you want complete control on the column displayed and don't want the grids help.
rem * In other words, you already have a column in your column definitions that is responsible for displaying the groups
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem *
rem * @deprecated since v1.7.0 - use `GroupDisplayType! = GxOptions.GROUP_DISPLAY_CUSTOM()` instead
rem */
field public BBjNumber GroupSuppressAutoColumn! = null()
rem /**
rem * If using auto column, set to true to have each group in its own column separate column, eg if group by Country then Year, two auto columns will be created, one for country and one for year
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem *
rem * @deprecated since v1.7.0 - use `GroupDisplayType! = GxOptions.GROUP_DISPLAY_MULTIPLE_COLUMNS()` instead
rem */
field public BBjNumber GroupMultiAutoColumn! = null()
rem /**
rem * If true, the group row won't be displayed and the groups will be expanded by default with no ability to expand / contract the groups. Useful when you want to just 'group' the rows, but not add parent group row to each group
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem *
rem * @deprecated since v1.7.0 - There is no replacement for this functionality.
rem */
field public BBjNumber GroupSuppressRow! = null()
rem /**
rem * When true, selecting a group will have the impact of selecting all its children
rem * When false, then the group is selectable independently of the child nodes.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem * <br>
rem * <b>Note</b>That this settings has no effect if MultipleSelection is disabled
rem */
field public BBjNumber GroupSelectsChildren! = null()
rem /**
rem * If grouping, whether to show a group footer when the group is expanded.
rem * If true, then by default, the footer will contain aggregate data (if any)
rem * when shown and the header will be blank.
rem * When closed, the header will contain the aggregate data regardless
rem * of this setting (as footer is hidden anyway).
rem * This is handy for 'total' rows, that are displayed below the data when
rem * the group is open, and alongside the group when it is closed
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber GroupIncludeFooter! = null()
rem /**
rem * Set to true to show a 'grand' total group footer across all groups.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber GroupIncludeTotalFooter! = null()
rem /**
rem * If true, and showing footer, aggregate data will be displayed at both the header and footer levels always.
rem * This stops the possibly undesirable behaviour of the header details 'jumping' to the footer on expand.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber GroupSuppressBlankHeader! = null()
rem /**
rem * If using groupSelectsChildren, then only the children that pass the current filter will get selected
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber GroupSelectsFiltered! = null()
rem /**
rem * Set to true to collapse groups that only have one child.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber GroupRemoveSingleChildren! = null()
rem /**
rem * Set to true to collapse lowest level groups that only have one child.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber GroupRemoveLowestSingleChildren! = null()
rem /**
rem * Set to true to hide parents that are open. When used with multiple columns for showing groups, it can give more pleasing user experience
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber GroupHideOpenParents! = null()
rem /**
rem * When to show the 'row group panel' (where you drag rows to group) at the top. Default is never. Set to either 'always' or 'onlyWhenGrouping'
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem *
rem * @see BBjGridExWidget.GRID_GROUPPANEL_SHOW_HIDDEN()
rem * @see BBjGridExWidget.GRID_GROUPPANEL_SHOW_VISIBLE()
rem * @see BBjGridExWidget.GRID_GROUPPANEL_SHOW_ONGROUPING()
rem */
field public BBjString RowGroupPanelShow! = BBjGridExWidget.GRID_GROUPPANEL_SHOW_ONGROUPING()
rem /**
rem * Set to true to enable pivot mode
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#API</small></b>
rem */
field public BBjNumber PivotMode! = null()
rem /**
rem * When to show the 'pivot panel' (where you drag rows to pivot) at the top.
rem * Default is never. Set to either 'always' or 'onlyWhenPivoting'.
rem * Note that the pivot panel will never show if pivotMode is off.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem *
rem * @see GRID_GROUPPANEL_SHOW_HIDDEN()
rem * @see GRID_GROUPPANEL_SHOW_VISIBLE()
rem * @see GRID_GROUPPANEL_SHOW_ONGROUPING()
rem */
field public BBjNumber PivotPanelShow! = null()
rem /**
rem * When true, if you set new data into the grid and have groups open, the grid will keep groups open if they exist in the new dataset
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber RememberGroupStateWhenNewData! = null()
rem /**
rem * When true, column headers won't include the aggFunc, eg 'sum(Bank Balance)' will just be 'Bank Balance'.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressAggFuncInHeader! = null()
rem /**
rem * When true, the aggregations won't be computed for root node of the grid
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressAggAtRootLevel! = null()
rem /**
rem * If true, then row group, pivot and value aggregation will be read only from the UI.
rem * The grid will display what values are used for each, but will not allow the use to change the selection
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#API</small></b>
rem */
field public BBjNumber FunctionsReadOnly! = null()
rem /**
rem * By default when a column is un-grouped, it is made visible.
rem * This property stops the column becoming visible again when un-grouping.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressMakeVisibleAfterUnGroup! = null()
rem /**
rem * Set to true to always show the vertical scrollbar.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber AlwaysShowVerticalScroll! = null()
rem /**
rem * Set to true to never show the horizontal scroll.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressHorizontalScroll! = null()
rem /**
rem * When true, the grid will not scroll to the top when new row data is provided.
rem * Use this if you don't want the default behaviour of scrolling to the top every time you load new data.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressScrollOnNewData! = null()
rem /**
rem * When true, the grid will not use animation frames when drawing rows while scrolling.
rem * Use this if the grid is working fast enough that you don't need animations frame and you don't want the grid to flicker.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressAnimationFrame! = null()
rem /**
rem * Icons to use inside the grid instead of the grid's default icons.
rem *
rem * The icons can either be set on the grid options (all icons) or on the column definition (all except group).
rem * If defined in both the grid options and column definitions, the column definition will get used.
rem * This allows you to specify defaults in the grid options to fall back on, and then provide individual icons for
rem * specific columns. This is handy if, for example, you want to include 'A..Z' as string sort icons
rem * and just the simple arrow for other columns.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>.
rem * <br>
rem * The icons are set as follows:
rem * <pre>
rem * <code>
rem * // column header items
rem * menu
rem * filter
rem * columns
rem * sortAscending
rem * sortDescending
rem * sortUnSort
rem *
rem * // expand / contract row group
rem * groupExpanded
rem * groupContracted
rem *
rem * // expand / contract column group
rem * columnGroupOpened
rem * columnGroupClosed
rem *
rem * // tool panel column group open / close
rem * columnSelectOpen
rem * columnSelectClosed
rem *
rem * // row checkbox selection and tool panel column selection
rem * checkboxChecked
rem * checkboxUnchecked
rem * checkboxIndeterminate
rem *
rem * // tool panel column selection, when read only (ie disabled checkboxes)
rem * checkboxCheckedReadOnly
rem * checkboxUncheckedReadOnly
rem * checkboxIndeterminateReadOnly
rem *
rem * // when moving columns
rem * columnMovePin // when column is to the left, before it gets pinned
rem * columnMoveAdd // when adding a column
rem * columnMoveHide // when removing a column
rem * columnMoveMove // when moving a column
rem * columnMoveLeft // when moving and scrolling left
rem * columnMoveRight // when moving and scrolling right
rem * columnMoveGroup // when about to drop into group panel
rem * columnMoveValue // when about to drop into value panel
rem * columnMovePivot // when about to drop into pivot panel
rem * dropNotAllowed // when trying to drop column into group/value/pivot panel and column doesn't support it
rem *
rem * // menu
rem * menuPin // beside the column pin menu item
rem * menuValue // beside the column value menu item
rem * menuAddRowGroup // beside the column row group menu item
rem * menuRemoveRowGroup // beside the column row group menu item
rem * clipboardCopy // beside the copy to clipboard menu item
rem * clipboardPaste // beside the paste from clipboard menu item
rem *
rem * // column drop panels
rem * rowGroupPanel // beside where to drop columns for row group
rem * pivotPanel // beside where to drop columns for pivot
rem * valuePanel // beside where to drop columns for value
rem * </code>
rem * </pre>
rem */
field public JsonObject Icons! = new JsonObject()
rem /**
rem * Default Row Height in pixels. Default is 25 pixels.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#API</small></b>
rem */
field public BBjNumber RowHeight! = null()
rem /**
rem * Set to true to enable Row Animation.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber AnimateRows! = null()
rem /**
rem * Property to set style for all rows. Set to an object of key (style names) and values (style values)
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public JsonObject RowStyle! = new JsonObject()
rem /**
rem * Property to set CSS class for all rows
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public ArrayList RowClass! = new ArrayList()
rem /**
rem * Rules which can be applied to include certain CSS classes for rows.
rem *
rem * These rules are provided as a JavaScript map where the keys are class names and the values are expressions that
rem * if evaluated to true, the class gets used. The expression is a string which is treated as a shorthand for a
rem * function by the grid.<br><b><small>#Configuration</small></b><br><b><small>#GridRenderer</small></b>.
rem *
rem * The expression has the following attributes available: <br>
rem *
rem * <table border="1" cellpadding="10">
rem * <tbody>
rem * <tr>
rem * <td><strong> rowIndex</strong></td>
rem * <td> Maps the current row index</td>
rem * </tr>
rem * <tr>
rem * <td> <strong>data</strong></td>
rem * <td> Mapped from the DataRow</td>
rem * </tr>
rem * <tr>
rem * <td> <strong>ctx</strong></td>
rem * <td> The grid client context</td>
rem * </tr>
rem * </tbody>
rem * </table>
rem */
field public JsonObject RowClassRules! = new JsonObject()
rem /**
rem * Set to true to not highlight rows by adding the `ag-row-hover` CSS class.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressRowHoverHighlight! = null()
rem /**
rem * Set to true to highlight columns by adding the `ag-column-hover` CSS class.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber ColumnHoverHighlight! = null()
rem /**
rem * If true, then middle clicks will result in 'click' events for cell and row. Otherwise the browser will use middle click to scroll the grid.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressMiddleClickScrolls! = null()
rem /**
rem * Set to true to use the browser's default tooltip instead of using Ag-Grid's Tooltip Component.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber EnableBrowserTooltips! = null()
rem /**
rem * The delay in milliseconds that it takes for tooltips to show up once an element is hovered.
rem *
rem * <b>Note:</b> This property does not work if enableBrowserTooltips is true.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber TooltipShowDelay! = null()
rem /**
rem * If true, when you drag a column out of the grid (eg to the group zone) the column is not hidden.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressDragLeaveHidesColumns! = null()
rem /**
rem * Set to true to operate grid in RTL (Right to Left) mode.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber EnableRtl! = null()
rem /**
rem * Set to true to not show context menu. Use if you don't want to use the default 'right click' context menu.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressContextMenu! = null()
rem /**
rem * Disables touch support (but does not remove the browsers efforts to simulate mouse events on touch).
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressTouch! = null()
rem /**
rem * When true enables the floating filters, disable otherwise
rem *
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem *
rem * @deprecated enabling/disabling the floatingFilter on the Options level is deprecated. Use `GxColumn.FloatingFilter` on the column level instead.
rem */
field public BBjNumber EnableFloatingFilter! = 0
rem /**
rem * When true, A selection box will be shown on the first column
rem * When false, no checkbox will be displayed.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem * <br>
rem * <b>Note</b> The first column can override this settings when it sets the <i>CheckboxSelection</i> to true
rem */
field public BBjNumber ShowSelectionCheckbox! = 0
rem /**
rem * When true, selection box will be show on the first column's header
rem * When false, no checkbox will be displayed.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem * <br>
rem * <b>Note</b> The first column can override this settings when it sets the <i>tHeaderCheckboxSelection</i> to true
rem * <b>Note</b> This option will ignore multi row selection option by default so it is always enabled
rem */
field public BBjNumber ShowHeaderSelectionCheckbox! = 0
rem /**
rem * Defines how users can move between rows using arrow keys.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem *
rem * @see BBjGridExWidget.GRID_NAVIGATION_BEHAVIOUR_NEXT_ROW()
rem * @see BBjGridExWidget.GRID_NAVIGATION_BEHAVIOUR_NEXT_CELL()
rem */
field public BBjString NavigationBehavior! = BBjGridExWidget.GRID_NAVIGATION_BEHAVIOUR_NEXT_ROW()
rem /**
rem * The grid context menu
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public GxContextMenu ContextMenu! = new GxDefaultContextMenu()
rem /**
rem * By default when new columns are loaded into the grid, the following properties
rem * (Order, Aggregation Function, Width, Pivot, Row Group, Pinned ) are not used
rem *
rem * To change this behaviour and have column attributes above take effect each time the grid updates the columns,
rem * then set this option to true
rem *
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem *
rem * @deprecated use `GxOptions.ImmutableColumns` instead
rem */
field public BBjNumber DeltaColumnMode! = 0
rem /**
rem * Puts the grid into Immutable Column mode, so that setting new columns keeps column state.
rem * Default: false
rem *
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber ImmutableColumns! = 0
rem /**
rem * Disables the 'loading' overlay.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressLoadingOverlay! = null()
rem /**
rem * Disables the 'no rows' overlay.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressNoRowsOverlay! = null()
rem /**
rem * Provide a template for 'loading' overlay if not happy with the default one.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjString OverlayLoadingTemplate! = null()
rem /**
rem * Provide a template for 'no rows' overlay if not happy with the provided.
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjString OverlayNoRowsTemplate! = null()
rem /**
rem * Enable / Disable Tree Data mode
rem * <br><b><small>#Enterprise</small></b>
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber TreeData! = null()
rem /**
rem * A string template which will be compiled on the client to return an array
rem * for the tree hierarchy.
rem *
rem * <br><b><small>#Enterprise</small></b>
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjString DataPathTemplate! = null()
rem /**
rem * Set to true to enable Range Selection
rem *
rem * <br><b><small>#Enterprise</small></b>
rem * <br><b><small>#Configuration</small></b>
rem */
field public BBjNumber EnableRangeSelection! = null()
rem /**
rem * Enable / disable one range selection even if ctrl key is held down
rem *
rem * <br><b><small>#Enterprise</small></b>
rem * <br><b><small>#Configuration</small></b>
rem */
field public BBjNumber SuppressMultiRangeSelection! = null()
rem /**
rem * If true, cells won't be selectable. This means cells will not get keyboard focus when you click on them.
rem * Default: false
rem */
field public BBjNumber SuppressCellSelection! = null()
rem /**
rem * Set to true to enable charting
rem *
rem * <br><b><small>#Enterprise</small></b>
rem * <br><b><small>#Configuration</small></b>
rem */
field public BBjNumber EnableCharts! = null()
rem /**
rem * Set to true so that the grid doesn't virtualize the columns. S
rem * o if you have 100 columns, but only 10 visible due to scrolling, all 100 will always be rendered.
rem *
rem * <br><b><small>#Configuration</small></b>
rem * <br><b><small>#GridRenderer</small></b>
rem */
field public BBjNumber SuppressColumnVirtualisation! = null()
rem /**
rem * Set this to true to skip the headerName when autoSize is called by default
rem *
rem * <br><b><small>#Configuration</small></b>