hypersonic-plus 0.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/hdatastructures/hfieldtable.rb +285 -0
- data/lib/hdatastructures/hhash.rb +9 -0
- data/lib/hdatastructures/hlist.rb +100 -0
- data/lib/hdatastructures/hrecord.rb +75 -0
- data/lib/hdatastructures/hspreadfieldtable.rb +129 -0
- data/lib/hdb/hdataloader.rb +75 -0
- data/lib/hdb/hdb.rb +357 -0
- data/lib/hdb/hdb_test.rb +248 -0
- data/lib/hdb/hdbgenerator.rb +211 -0
- data/lib/hdb/hdbi.rb +63 -0
- data/lib/hdb/hdbi_test.rb +133 -0
- data/lib/hdb/hfield.rb +180 -0
- data/lib/hdb/hmysql.rb +99 -0
- data/lib/hdb/hmysql2.rb +96 -0
- data/lib/hdb/hodb.rb +948 -0
- data/lib/hdb/hpgsql.rb +54 -0
- data/lib/hengine/application_controller.rb +204 -0
- data/lib/hengine/hconfiguration.rb +40 -0
- data/lib/hengine/hhotlogger.rb +13 -0
- data/lib/hengine/hlogger.rb +119 -0
- data/lib/hengine/hmalloc.rb +275 -0
- data/lib/hengine/hmoduleloader.rb +15 -0
- data/lib/hengine/hsessiondata.rb +79 -0
- data/lib/hengine/hshareddata.rb +60 -0
- data/lib/hengine/htranslate.rb +40 -0
- data/lib/hengine/hviewloader.rb +99 -0
- data/lib/hinit/hinit.rb +3 -0
- data/lib/hmisc/hcolorize.rb +100 -0
- data/lib/hmisc/hdecoratorfunctions.rb +15 -0
- data/lib/hmisc/hdir.rb +19 -0
- data/lib/hmisc/hhtmlnode.rb +27 -0
- data/lib/hmisc/hinputvalidator.rb +95 -0
- data/lib/hmisc/hio.rb +142 -0
- data/lib/hmisc/hjson.rb +16 -0
- data/lib/hsqlmanager/hpgsqldatabasemanager.rb +76 -0
- data/lib/hsqlmanager/hsqldatabasemanager.rb +349 -0
- data/lib/hsqlmanager/hsqltable.rb +16 -0
- data/lib/husermanager/husermanager.rb +122 -0
- data/lib/hwidgets/haccordionmenu.rb +117 -0
- data/lib/hwidgets/hcheckboxtag.rb +33 -0
- data/lib/hwidgets/hdbactionbuttons.rb +26 -0
- data/lib/hwidgets/hdbcombobox.rb +71 -0
- data/lib/hwidgets/hdbdialogview.rb +190 -0
- data/lib/hwidgets/hdbfilterview.rb +28 -0
- data/lib/hwidgets/hdbtableview.rb +213 -0
- data/lib/hwidgets/hdbview.rb +63 -0
- data/lib/hwidgets/hdivtag.rb +9 -0
- data/lib/hwidgets/hdropdown.rb +44 -0
- data/lib/hwidgets/hformfield.rb +91 -0
- data/lib/hwidgets/hgrouptag.rb +65 -0
- data/lib/hwidgets/hhiddeninputtag.rb +12 -0
- data/lib/hwidgets/hinputtag.rb +55 -0
- data/lib/hwidgets/hlabeltag.rb +30 -0
- data/lib/hwidgets/hmainview.rb +37 -0
- data/lib/hwidgets/hpagination.rb +65 -0
- data/lib/hwidgets/hradiobuttontag.rb +30 -0
- data/lib/hwidgets/hselecttag.rb +32 -0
- data/lib/hwidgets/htableview.rb +262 -0
- data/lib/hwidgets/htabview.rb +84 -0
- data/lib/hwidgets/htextareatag.rb +20 -0
- data/lib/hwidgets/htopnav.rb +85 -0
- data/lib/hwidgets/hwidget.rb +423 -0
- data/lib/hypersonic.rb +9 -0
- metadata +276 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
class HDBFilterView < HDivTag
|
2
|
+
|
3
|
+
def initialize(sourceView: nil, **args)
|
4
|
+
|
5
|
+
@sourceView = sourceView
|
6
|
+
return super(class: 'hdbfilterview', **args)
|
7
|
+
|
8
|
+
end
|
9
|
+
|
10
|
+
def applyFilter(value: 'true')
|
11
|
+
return @sourceView.html(filter: value)
|
12
|
+
end
|
13
|
+
|
14
|
+
def filter
|
15
|
+
div = HDivTag.new(class: 'filter-box')
|
16
|
+
div << HWidget.new("span", "Filter:")
|
17
|
+
div << filter = HWidget.new("input", class: 'filter', type: 'text', value: "",
|
18
|
+
onkeypress: "hdbFilterView.keyPress(this, event)")
|
19
|
+
filter.connect(:onblur, self, "applyFilter", id: @sourceView.oid, attributes: ":obj.value")
|
20
|
+
return div
|
21
|
+
end
|
22
|
+
|
23
|
+
def html
|
24
|
+
self << filter
|
25
|
+
return super
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,213 @@
|
|
1
|
+
require "hwidgets/htableview"
|
2
|
+
|
3
|
+
# Quando faccio doppio click su una tabella si apre una finestra di dialogo a cui passo l'odb della tabella
|
4
|
+
# Se in una finestra di dialogo ho un tabella a quella tabella deve essere passato l'odb direttamente dalla
|
5
|
+
# finestra di dialogo perche' l'odb deve essere generato con dialogOdb.tableName_table altrimenti quano chiudo
|
6
|
+
# l'ultima finestra con ok la tabella modificata non verra' salvata in quando sconnessa dalla dialog box
|
7
|
+
|
8
|
+
class HDBTableView < HTableView
|
9
|
+
attr_reader :moduleName, :modelName, :oid, :odb, :dialogLevel
|
10
|
+
|
11
|
+
def initialize(moduleName: nil, modelName: nil,
|
12
|
+
filter: "true", sortField: "id", sortDirection: "asc",
|
13
|
+
pageSize: 'all', page: 0,
|
14
|
+
odb: nil, poid: nil, dialogLevel: 0, connectionName: "default")
|
15
|
+
|
16
|
+
hl << " =========================================================".red
|
17
|
+
hl << " ==================== NEW HDBTableView ===================".red
|
18
|
+
hl << " =========================================================".red
|
19
|
+
super(className: 'hdbtableview')
|
20
|
+
@moduleName = moduleName
|
21
|
+
@modelName = modelName
|
22
|
+
@oid = hm().malloc(self, poid).obj.object_id.to_s
|
23
|
+
self.hotLog("hdbtableview oid: #{@oid}")
|
24
|
+
@odb = odb
|
25
|
+
@dialogLevel = dialogLevel
|
26
|
+
@connectionName = connectionName
|
27
|
+
|
28
|
+
@filter = filter
|
29
|
+
@sortField = sortField
|
30
|
+
@sortDirection = sortDirection
|
31
|
+
@pageSize = pageSize
|
32
|
+
@page = page
|
33
|
+
end
|
34
|
+
|
35
|
+
def rpcPageSize
|
36
|
+
return @pageSize
|
37
|
+
end
|
38
|
+
def rpcPages
|
39
|
+
return 1 if @pageSize == "all"
|
40
|
+
result = hdb(@connectionName).select("count(*)").from(@modelName).where(@filter).orderBy(nil).direction(nil).execute()
|
41
|
+
|
42
|
+
rows = result.data(0, "count").to_i
|
43
|
+
pages = rows / @pageSize.to_i
|
44
|
+
pages += 1 if (rows % @pageSize.to_i > 0)
|
45
|
+
return pages;
|
46
|
+
end
|
47
|
+
def rpcHtml(args)
|
48
|
+
return self.html(args)
|
49
|
+
end
|
50
|
+
|
51
|
+
def rpcAction(ids: nil, action: nil)
|
52
|
+
return if ids.empty?
|
53
|
+
odb = Marshal.load(Marshal.dump(@odb))
|
54
|
+
odb.findBy("id in (#{ids.join(',')})")
|
55
|
+
eval("odb.#{action}(ids)")
|
56
|
+
end
|
57
|
+
|
58
|
+
def setControlPanel()
|
59
|
+
|
60
|
+
tr = self.appendRow(@headerTr)
|
61
|
+
prevTd = HWidget.new("th")
|
62
|
+
prevTd.setInnerHTML("Prev")
|
63
|
+
# if arr is an array of integers then a.map!(&to_s) converts each number to string
|
64
|
+
prevTd.connect(:onclick, self, "html", id: @oid,
|
65
|
+
args: {page: [0, @page - 1].max})
|
66
|
+
nextTd = HWidget.new("th")
|
67
|
+
nextTd.setInnerHTML("Next")
|
68
|
+
nextTd.connect(:onclick, self, "html", id: @oid,
|
69
|
+
args: {page: @page + 1})
|
70
|
+
tr.getChilds()[-2] = prevTd
|
71
|
+
tr.getChilds()[-1] = nextTd
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
def setAddRowButton()
|
76
|
+
|
77
|
+
tr = self.appendRow()
|
78
|
+
td0 = tr.getChilds()[0]
|
79
|
+
td0.setInnerHTML("")
|
80
|
+
td0 << HWidget.new("a", "Add Row")
|
81
|
+
td0.connect(:onclick, self, "newRecord", getElem: "body", mode: "add", id: @oid)
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
def setThSlots(th, fieldName)
|
86
|
+
|
87
|
+
sortDirection = (@sortDirection == "asc") ? "desc" : "asc"
|
88
|
+
th.connect(:onclick, self, "html", id: @oid,
|
89
|
+
args: {sortField: fieldName, sortDirection: sortDirection},
|
90
|
+
hotLog: "sort #{fieldName}")
|
91
|
+
|
92
|
+
end
|
93
|
+
|
94
|
+
def setTrSlots(tr, row)
|
95
|
+
|
96
|
+
tr.set(value: "#id", tabindex: "0")
|
97
|
+
tr.connect(:ondblclick, self, "doubleClick", attributes: "id", getElem: "body", mode: "add", id: @oid, after:'loadComboBox()');
|
98
|
+
tr.addJsFunction(:onclick, :'hdbTableView.click', :event, @oid)
|
99
|
+
tr.addJsFunction(:oncontextmenu, :'hdbTableView.rightClick', :event, @oid)
|
100
|
+
tr.addJsFunction(:onkeypress, :'hdbTableView.keyPress', :event, @oid)
|
101
|
+
cancKey = 46
|
102
|
+
tr.connect(:onkeypress, self, "deleteRecord", attributes: "id", KeyEvent: :event, keyCode: cancKey, id: @oid)
|
103
|
+
|
104
|
+
end
|
105
|
+
|
106
|
+
def setTd(td, fieldName, value, row)
|
107
|
+
td.set(name: "#{@fieldTable.tableName}[#{row}][#{fieldName}]", overwrite: true)
|
108
|
+
end
|
109
|
+
|
110
|
+
def beforeInsertRow(row, tagName, fieldName, value)
|
111
|
+
checkBox = HWidget.new("input", value: value, type: "checkbox", class: 'hdbtableview-checkbox')
|
112
|
+
checkBox.set(onchange: "hdbTableView.selectAllRows(this)") if tagName == "th"
|
113
|
+
row << ( HWidget.new(tagName) << checkBox ) if fieldName == "id"
|
114
|
+
end
|
115
|
+
|
116
|
+
def setTableHeaders()
|
117
|
+
|
118
|
+
super()
|
119
|
+
|
120
|
+
end
|
121
|
+
|
122
|
+
def closeButton()
|
123
|
+
hl << "closeButton".red
|
124
|
+
@odb.remove() if @odb.id[0] == '#' and @odb.id[-1] != '#'
|
125
|
+
return nil
|
126
|
+
end
|
127
|
+
|
128
|
+
def doubleClick(id: nil)
|
129
|
+
dialogView = HDBDialogView.initByTableView(id, self)
|
130
|
+
dialogView.closeButton.connect(:onclick, self, "closeButton", before: 'hdialogView.close()', mode: 'none', id: @oid)
|
131
|
+
dialogView.cancelButton.connect(:onclick, self, "closeButton", before: 'hdialogView.close()', mode: 'none', id: @oid)
|
132
|
+
dialogView.connect(:onsubmit, self, "html", submit: true, id: @oid)
|
133
|
+
return dialogView.html()
|
134
|
+
end
|
135
|
+
|
136
|
+
def newRecord()
|
137
|
+
nvr = odb.create # new virtual record
|
138
|
+
dialogView = HDBDialogView.initByTableView(nvr.id, self)
|
139
|
+
dialogView.closeButton.connect(:onclick, self, "closeButton", before: 'hdialogView.close()', mode: 'none', id: @oid)
|
140
|
+
dialogView.cancelButton.connect(:onclick, self, "closeButton", before: 'hdialogView.close()', mode: 'none', id: @oid)
|
141
|
+
dialogView.connect(:onsubmit, self, "html", submit: true, id: @oid)
|
142
|
+
return dialogView.html()
|
143
|
+
end
|
144
|
+
|
145
|
+
def deleteRecord(id: nil)
|
146
|
+
hl << "deleteRecord: #{id}".red
|
147
|
+
if dialogLevel == 0
|
148
|
+
@odb.delete({"#{modelName}.id": id})
|
149
|
+
else
|
150
|
+
@odb.remove(id)
|
151
|
+
end
|
152
|
+
return self.html()
|
153
|
+
end
|
154
|
+
|
155
|
+
def html(filter: @filter, sortField: @sortField, sortDirection: @sortDirection, pageSize: @pageSize, page: @page)
|
156
|
+
|
157
|
+
filter = "true" if filter == ""
|
158
|
+
@filter = filter
|
159
|
+
@sortField = sortField
|
160
|
+
@sortDirection = sortDirection
|
161
|
+
@pageSize = pageSize
|
162
|
+
@page = page
|
163
|
+
|
164
|
+
@odb = HODB.newOdb(@modelName, @connectionName) unless @odb
|
165
|
+
@odb.where(filter).orderBy(sortField).direction(sortDirection).pageSize(pageSize).page(page) if @dialogLevel == 0
|
166
|
+
@fieldTable = @odb.toFieldTable(false)
|
167
|
+
@fieldTable.sortBy(sortField, asc: sortDirection == 'asc') if @dialogLevel > 0
|
168
|
+
|
169
|
+
self.set(id: @oid, name: @modelName, oid: self.object_id.to_s)
|
170
|
+
self.reset()
|
171
|
+
|
172
|
+
return super()
|
173
|
+
|
174
|
+
end
|
175
|
+
|
176
|
+
|
177
|
+
def self.tableViewDecorator(tableView)
|
178
|
+
headerTr = HWidget.new("tr").setStyle("background-color": "#0099cc")
|
179
|
+
td = HWidget.new("td").setStyle(padding: "8px")
|
180
|
+
tableView.
|
181
|
+
setStyle("table-layout": "auto").
|
182
|
+
set(align: "center", width: "100%")
|
183
|
+
tableView.headerTr = headerTr
|
184
|
+
tableView.td = td
|
185
|
+
#tableView.th = td
|
186
|
+
tr = Array.new()
|
187
|
+
tr[0] = HWidget.new("tr").set(class: "even-row", id: "#id")
|
188
|
+
tr[1] = HWidget.new("tr").set(class: "odd-row", id: "#id")
|
189
|
+
tableView.tr = tr
|
190
|
+
|
191
|
+
totalizerTr = Array.new()
|
192
|
+
totalizerTr[0] = HWidget.new("tr").setStyle("background-color": "yellow")
|
193
|
+
totalizerTr[1] = totalizerTr[0]
|
194
|
+
tableView.totalizerTr = totalizerTr
|
195
|
+
|
196
|
+
summaryTr = Array.new()
|
197
|
+
summaryTr[0] = summaryTr[1] = headerTr
|
198
|
+
tableView.summaryTr = summaryTr
|
199
|
+
|
200
|
+
return tableView
|
201
|
+
|
202
|
+
|
203
|
+
end
|
204
|
+
|
205
|
+
def self.html(moduleName: nil, modelName: nil, odb: nil, dialogLevel: 0, connectionName: "default", filter: "true", sortField: "id", sortDirection: "asc", pageSize: "5", page: 0)
|
206
|
+
modelName = modelName.to_s
|
207
|
+
dbTableView = HDBTableView.new(moduleName, modelName, odb, dialogLevel, connectionName)
|
208
|
+
HDBTableView.tableViewDecorator(dbTableView)
|
209
|
+
return dbTableView.html(filter: filter, sortField: sortField, sortDirection: sortDirection, pageSize: pageSize, page: page)
|
210
|
+
|
211
|
+
end
|
212
|
+
|
213
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
class HDBView < HDivTag
|
2
|
+
|
3
|
+
attr_reader :oid
|
4
|
+
|
5
|
+
def initialize(moduleName: nil, modelName: nil,
|
6
|
+
filter: "true", sortField: "id", sortDirection: "asc",
|
7
|
+
pageSize: '5', page: 0,
|
8
|
+
paginationView: true, filterView: true, actionMenu: true, actionButtons: true,
|
9
|
+
poid: nil,
|
10
|
+
**args)
|
11
|
+
|
12
|
+
@moduleName = moduleName
|
13
|
+
@modelName = modelName
|
14
|
+
@oid = hm().malloc(self, poid).obj.object_id.to_s
|
15
|
+
@pageSize = pageSize
|
16
|
+
@page = page
|
17
|
+
@paginationView = paginationView
|
18
|
+
@filterView = filterView
|
19
|
+
@actionMenu = actionMenu
|
20
|
+
@dbTableView = HDBTableView.new(moduleName: moduleName, modelName: modelName,
|
21
|
+
filter: filter, sortField: sortField, sortDirection: sortDirection,
|
22
|
+
pageSize: pageSize, page: page, poid: @oid)
|
23
|
+
HDBTableView.tableViewDecorator(@dbTableView)
|
24
|
+
|
25
|
+
super(class: 'hdbview', id: @oid, **args)
|
26
|
+
self.hotLog("hdbview oid: #{@oid}".hight_purple)
|
27
|
+
self.actionButtons() if actionButtons
|
28
|
+
self.dropDowns() if actionMenu
|
29
|
+
self << HDBFilterView.new(sourceView: @dbTableView) if filterView
|
30
|
+
self << HPagination.new(sourceView: @dbTableView, pages: @dbTableView.rpcPages, pageSize: pageSize,
|
31
|
+
rowsForPage: [@pageSize, 10, 100, 'all']) if paginationView
|
32
|
+
self << @dbTableView
|
33
|
+
return self
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
def dropDowns
|
38
|
+
|
39
|
+
actionMenus = hv().viewByType(@moduleName, @modelName, :table).xpath("//actionmenu")
|
40
|
+
actionMenus.each do |menu|
|
41
|
+
nodes = menu.xpath(".//item")
|
42
|
+
items = nodes.to_a_of_h
|
43
|
+
self << HDropDown.new(sourceView: @dbTableView, caption: menu["name"], items: items) if items.any?
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
def actionButtons
|
49
|
+
|
50
|
+
actionBtns = hv().viewByType(@moduleName, @modelName, :table).xpath("//actionbuttons")
|
51
|
+
actionBtns.each do |button|
|
52
|
+
nodes = button.xpath(".//button")
|
53
|
+
buttons = nodes.to_a_of_h
|
54
|
+
self << HDBActionButtons.new(sourceView: @dbTableView, buttons: buttons) if buttons.any?
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
def html
|
60
|
+
return super
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
class HDropDown < HDivTag
|
2
|
+
|
3
|
+
def initialize(sourceView: nil, caption: "select", items: [], **args)
|
4
|
+
|
5
|
+
@sourceView = sourceView
|
6
|
+
@caption = caption
|
7
|
+
@items = items
|
8
|
+
|
9
|
+
return super(class: 'hdropdown', **args)
|
10
|
+
end
|
11
|
+
|
12
|
+
def button
|
13
|
+
return HWidget.new("button", @caption, class: "dropbtn")
|
14
|
+
end
|
15
|
+
|
16
|
+
def a(innerHTML = '', icon: nil, **args)
|
17
|
+
|
18
|
+
a = HWidget.new("a", "", args)
|
19
|
+
a << HWidget.new('span', class: icon) if icon
|
20
|
+
a << HWidget.new('span', innerHTML)
|
21
|
+
return a
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
def content
|
26
|
+
contentDiv = HDivTag.new(class: 'dropdown-content')
|
27
|
+
@items.each do |item|
|
28
|
+
action = item.delete(:action)
|
29
|
+
link = self.a(item.delete(:name), icon: item.delete(:icon), **item)
|
30
|
+
link.connect(:onclick, @sourceView, "rpcAction", args: {action: action},
|
31
|
+
id: @sourceView.oid, mode: 'none',
|
32
|
+
attributes: ":hdbTableView.ids(obj) => ids")
|
33
|
+
|
34
|
+
contentDiv << link
|
35
|
+
end
|
36
|
+
return contentDiv
|
37
|
+
end
|
38
|
+
|
39
|
+
def html
|
40
|
+
self << self.button << self.content
|
41
|
+
return super
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
class HFormField
|
2
|
+
|
3
|
+
def initialize(moduleName, record, odb, oid, dialogLevel)
|
4
|
+
@formField = nil
|
5
|
+
@odb = odb
|
6
|
+
@moduleName = moduleName
|
7
|
+
@modelName = odb.modelName.to_s
|
8
|
+
@record = record
|
9
|
+
@oid = oid
|
10
|
+
@dialogLevel = dialogLevel
|
11
|
+
@value = @record.value(:value)
|
12
|
+
@oid = hm().malloc(self, oid).obj.object_id.to_s
|
13
|
+
end
|
14
|
+
|
15
|
+
def obj()
|
16
|
+
|
17
|
+
record = @record
|
18
|
+
value = @value
|
19
|
+
|
20
|
+
name = @record.name
|
21
|
+
type = @record.type
|
22
|
+
label = @record.label
|
23
|
+
default = @record.default
|
24
|
+
dialogLevel = @record.dialogLevel
|
25
|
+
|
26
|
+
if(type == "combobox")
|
27
|
+
@formField = HSelectTag.new(name, "#{@modelName}[#{name}]", label).
|
28
|
+
setItems(record.value("items").split(",")).
|
29
|
+
setValues(record.value("values").split(",")).
|
30
|
+
setCarriageReturn().
|
31
|
+
setSelected(value)
|
32
|
+
|
33
|
+
elsif(type == "dbcombobox")
|
34
|
+
hl << "dbComboBox".red
|
35
|
+
modelName = @odb.fieldProperty(name, "modelNameReference")
|
36
|
+
puts "@odb.#{modelName}_id".red
|
37
|
+
odb = eval("@odb.#{modelName}_id")
|
38
|
+
puts "#{odb.class}".red
|
39
|
+
puts "#{odb.table}".red
|
40
|
+
puts "#{odb.type}".red
|
41
|
+
puts "§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§===========> end".red
|
42
|
+
odb = odb.odb if odb.class == HRecordPtr
|
43
|
+
showedFieldName = record.value("show_field")
|
44
|
+
selectedValue = record.value(:value)
|
45
|
+
puts "#{selectedValue}".red
|
46
|
+
@formField = HDBComboBox.new(@moduleName, odb, name, showedFieldName, label, selectedValue, @oid, @dialogLevel)
|
47
|
+
|
48
|
+
elsif(type == "lineedit")
|
49
|
+
@formField = HInputTag.new(name, @modelName, label, nil, type).
|
50
|
+
setCarriageReturn().
|
51
|
+
setSelected(value)
|
52
|
+
|
53
|
+
elsif(type == "radiobutton")
|
54
|
+
@formField = HRadioButtonTag.new(name, @modelName, label).
|
55
|
+
setCarriageReturn().
|
56
|
+
setSelected(value)
|
57
|
+
@formField.items = record.value("items").split(",")
|
58
|
+
@formField.values = record.value("values").split(",")
|
59
|
+
|
60
|
+
elsif(type == "checkbox")
|
61
|
+
@formField = HCheckBoxTag.new(name, @modelName, label).
|
62
|
+
setCarriageReturn().
|
63
|
+
setSelected(value)
|
64
|
+
@formField.items = record.value("items").split(",")
|
65
|
+
@formField.values = record.value("values").split(",")
|
66
|
+
|
67
|
+
elsif(type == "textarea")
|
68
|
+
@formField = HTextAreaTag.new(name, @modelName, label).setCarriageReturn().
|
69
|
+
setSelected(value).
|
70
|
+
setInnerHTML(value)
|
71
|
+
|
72
|
+
elsif(type == "dbtable")
|
73
|
+
modelName = @odb.fieldProperty(name, "modelNameReference")
|
74
|
+
puts "@odb.#{modelName}_table".red
|
75
|
+
odb = eval("@odb.#{modelName}_table")
|
76
|
+
odb = odb.odb if odb.class == HRecordPtr
|
77
|
+
@formField = HDBTableView.new(moduleName: @moduleName, modelName: modelName,
|
78
|
+
poid: @oid, odb: odb, dialogLevel: dialogLevel.to_i + 1)
|
79
|
+
HDBTableView.tableViewDecorator(@formField)
|
80
|
+
|
81
|
+
elsif(type == "submit")
|
82
|
+
@formField = HWidget.new("input").setClosedTag(false)
|
83
|
+
@formField.set(type: "submit", value: label)
|
84
|
+
end
|
85
|
+
|
86
|
+
return @formField
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
end
|