coffeescript-ui
Version:
Coffeescript User Interface System
169 lines (144 loc) • 3.3 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
###
CUI.Template.loadTemplateText(require('./Panel.html'));
class CUI.Panel extends CUI.DOMElement
constructor: (opts) ->
super(opts)
= new CUI.Template
name: "panel"
map:
header: true
content: true
if
= true
if CUI.util.isFunction()
if not
else if
= new CUI.Button
text:
class: "cui-panel-header-button"
radio:
radio_allow_null:
icon_active:
icon_inactive:
onActivate: (btn, flags, event) =>
?(btn, flags, event)
onDeactivate: (btn, flags, event) =>
?(btn, flags, event)
if
.deactivate()
else
.activate()
initOpts: ->
super()
readOpts: ->
super()
@
isClosed: ->
CUI.dom.hasClass(, "cui-panel-closed")
isOpen: ->
!
open: ->
.activate()
@
close: ->
.deactivate()
@
__close: (trigger = true) ->
CUI.dom.addClass(, "cui-panel-closed")
if trigger
CUI.Events.trigger
type: "content-resize"
node:
@
__open: (trigger = true) ->
done = =>
CUI.dom.removeClass(, "cui-panel-closed")
if trigger
CUI.Events.trigger
type: "content-resize"
node:
return
if and not
.done(done)
else
done()
@
loadContent: ->
if CUI.util.isFunction()
ret =
else
ret =
dfr = new CUI.Deferred()
if CUI.util.isPromise(ret)
ret.always (content) =>
dfr.resolve()
else
dfr.resolve()
= true
dfr.promise()
setContent: (content, key="content") ->
if content == false and
# keep loading
return @
= false
@
appendContent: (content, key="content") ->
if
else
@