coffeescript-ui
Version:
Coffeescript User Interface System
95 lines (80 loc) • 2.01 kB
text/coffeescript
###
* coffeescript-ui - Coffeescript User Interface System (CUI)
* Copyright (c) 2013 - 2016 Programmfabrik GmbH
* MIT Licence
* https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org
###
class CUI.DataTableNode extends CUI.ListViewRow
initOpts: ->
super()
dataTable:
mandatory: true
check: CUI.DataTable
data:
mandatory: true
check: "PlainObject"
check_changed_data:
check: "PlainObject"
rows:
mandatory: true
check: "Array"
dataRowIdx:
mandatory: true
check: (v) ->
v >= 0
readOpts: ->
super()
=
=
=
=
CUI.util.assert(.indexOf() > -1, "new #{CUI.util.getObjectClass(@)}", "opts.data needs to be item in opts.rows Array", opts: )
= []
for f in .getFieldList()
fopts = f.getOpts()
fopts.undo_support = false
if CUI[f.getElementClass()]
_f = new CUI[f.getElementClass()](fopts)
else
_f = new window[f.getElementClass()](fopts)
_f.setForm(@)
_f.setData()
if f.hasData()
if
_f.setCheckChangedValue([f.getName()])
else
_f.setCheckChangedValue(f.getDefaultValue())
.push(_f)
@
remove: ->
CUI.decide(._onBeforeRowRemove?.call(@, ))
.done =>
super()
CUI.util.removeFromArray(, )
._onRowRemove?.call(@, )
.updateButtons()
getDataTable: ->
getFieldByIdx: (idx) ->
[idx]
getDataRowIdx: ->
getFieldsByName: (name) ->
fields = []
for f in
if f.getName() == name
fields.push(f)
fields
getFields: ->
getData: ->
reload: ->
for df in
df.reload()
addedToListView: ->
for df in
df.start()
@