class HDBDialogView
Attributes
cancelButton[RW]
closeButton[RW]
dialogLevel[RW]
modelName[RW]
odb[RW]
oid[RW]
Public Class Methods
initByTableView(id, dbTableView)
click to toggle source
# File lib/hwidgets/hdbdialogview.rb, line 27 def self.initByTableView(id, dbTableView) return HDBDialogView.new(id, dbTableView.moduleName, dbTableView.odb, dbTableView.oid, dbTableView.dialogLevel) end
new(id, moduleName, odb, poid, dialogLevel)
click to toggle source
Calls superclass method
HWidget::new
# File lib/hwidgets/hdbdialogview.rb, line 5 def initialize(id, moduleName, odb, poid, dialogLevel) super("form", method: "POST") @moduleName = moduleName @modelName = odb.modelName.to_s @oid = hm().malloc(self, poid).obj.object_id.to_s @dialogLevel = dialogLevel + 1 @id = id @formFields = self.formFields() @fieldTable = HSpreadFieldTable.new() @fieldTable.addFieldName(0) @fieldTable.addFieldName(1) @tableView = HTableView.new(fieldTable: @fieldTable) @tableView.set(align: "center") @tabs = {} @tabView = HTabView.new(@tabs, @modelName) @odb = odb @dialogHeader = self.dialogHeader() @dialogFooter = self.dialogFooter() end
Public Instance Methods
addJsf(formField, jsfList)
click to toggle source
# File lib/hwidgets/hdbdialogview.rb, line 91 def addJsf(formField, jsfList) if(jsfList) jsfList.each do |jsf| formField.addJsFunction(jsf[0], jsf[1], *jsf.drop(2)) end end end
dialogHeader()
click to toggle source
# File lib/hwidgets/hdbdialogview.rb, line 128 def dialogHeader @closeButton = HWidget.new("button").set(type: "button", class: "close-btn").setInnerHTML("X") divHeader = HDivTag.new(class: "header") divHeader << @closeButton return divHeader end
formFields()
click to toggle source
# File lib/hwidgets/hdbdialogview.rb, line 31 def formFields keywords = { name: 'name', label: 'label', 'panel.name': 'panel', type: 'type', visible: 'visible', default: 'default', hidden: 'hidden', lineedit: 'lineedit', combobox: 'combobox', dbcombobox: 'dbcombobox', radiobutton: 'radiobutton', checkbox: 'checkbox', textarea: 'textarea', dbtable: 'dbtable', submit: 'submit', show_field: 'show_field', items: 'items', values: 'values', js_function: 'js_function', properties: 'properties', validator: 'validator' } formFields = [] hv().viewParsing(@moduleName, @modelName, :form).each do |node| record = HRecord.new(node.name) keywords.each do |key, value| key = key.to_s nodeValue = node.value(key) record.set(value, nodeValue) if nodeValue end formFields << record end return formFields end
html(cols = 1)
click to toggle source
cols e' il numero di colonne
Calls superclass method
HWidget#html
# File lib/hwidgets/hdbdialogview.rb, line 154 def html(cols = 1) puts "result: #{@id} - #{@modelName}" set(method: "post", action: "submit/params") i = 0 @odb = @odb.odb if @odb.class == HRecordPtr @odb.findByOffLine({id: @id}) @formFields.each do |w| # w like widget puts "name, type: #{w.name}, #{w.type}".red w.type = w.type.downcase w.visible = w.visible ? w.visible.to_b : true next if(w.visible == false) w.set(:value, @odb.data(w.name)) w.set("#id", @id) w.set("#dialogLevel", @dialogLevel) self.setFieldValidator(w, @odb) formField = HFormField.new(@moduleName, w, @odb, @oid, @dialogLevel).obj() formField.set(eval(w.properties)) if(w.properties) formField.connect(:onblur, "HInputValidator", "valid?", attributes: ':obj.value => fieldValue', # obj.value verra passato attraverso fieldValue after: 'hdialogView.fieldValidator(obj, response)', getElem: 'none', mode: 'none', args: {fieldType: w.validator, fieldName: w.name, modelName: @modelName}, id: @oid) if w.validator #formField.addJsFunction(:onblur, "setValue") # non server piu in quanto uso ':obj.value' w.panel += "-#{@dialogLevel}" if w.panel self.setWidget(i / cols, i % cols, formField, w.panel) i += 1 end self << @dialogHeader << @tableView << @tabView << @dialogFooter << self.systemRecords() divDialog = HDivTag.new(super(), class: "hdialog") return divDialog.html() end
setFieldValidator(w, odb)
click to toggle source
# File lib/hwidgets/hdbdialogview.rb, line 111 def setFieldValidator(w, odb) map = Hash.new('length') map[:integer] = 'integer, length' map[:float] = 'real, length' map[:text] = 'length' type = odb.fieldProperty(w.name, "type") mandatory = odb.fieldProperty(w.name, "mandatory") type = type.to_sym if type fieldValidator = map[type] fieldValidator += ", mandatory" if mandatory fieldValidator.split(',').uniq.join(',') w.validator = fieldValidator if w.value == 'field' end
setWidget(row, col, widget, tabName = nil)
click to toggle source
# File lib/hwidgets/hdbdialogview.rb, line 72 def setWidget(row, col, widget, tabName = nil) unless(tabName) @fieldTable.setData(row, col, HRecord.new(widget)) return end tabName = tabName.downcase.delete(' ') unless(@tabs.key?(tabName)) fieldTable = HSpreadFieldTable.new() fieldTable.addFieldName(0) fieldTable.addFieldName(1) tableView = HTableView.new(fieldTable: fieldTable) @tabs[tabName] = {tabCaption: tabName, tabContain: tableView} end @tabs[tabName][:tabContain].fieldTable.setData(row, col, HRecord.new(widget)) end
systemRecords()
click to toggle source
# File lib/hwidgets/hdbdialogview.rb, line 101 def systemRecords() hiddenFormFields = HDivTag.new(class: "system-records") hiddenFormFields << HHiddenInputTag.new("@modelName", @modelName) hiddenFormFields << HHiddenInputTag.new("@objectId", @odb.object_id) hiddenFormFields << HHiddenInputTag.new("@dialogLevel", @dialogLevel) return hiddenFormFields end