container.js
61 lines
| 2.5 KiB
| application/javascript
|
JavascriptLexer
Jonathan Frederic
|
r14366 | //---------------------------------------------------------------------------- | |
// Copyright (C) 2013 The IPython Development Team | |||
// | |||
// Distributed under the terms of the BSD License. The full license is in | |||
// the file COPYING, distributed as part of this software. | |||
//---------------------------------------------------------------------------- | |||
//============================================================================ | |||
// ContainerWidget | |||
//============================================================================ | |||
/** | |||
* @module IPython | |||
* @namespace IPython | |||
**/ | |||
Jonathan Frederic
|
r14374 | define(["notebook/js/widget"], function(widget_manager) { | |
Jonathan Frederic
|
r14263 | var ContainerModel = IPython.WidgetModel.extend({}); | |
Jonathan Frederic
|
r14374 | widget_manager.register_widget_model('ContainerWidgetModel', ContainerModel); | |
Jonathan Frederic
|
r14252 | ||
Jonathan Frederic
|
r14263 | var ContainerView = IPython.WidgetView.extend({ | |
Jonathan Frederic
|
r14333 | render: function(){ | |
Jonathan Frederic
|
r14268 | this.$el = $('<div />') | |
Jonathan Frederic
|
r14293 | .addClass('widget-container'); | |
Jonathan Frederic
|
r14263 | }, | |
Jonathan Frederic
|
r14333 | update: function(){ | |
Jonathan Frederic
|
r14269 | ||
// Apply flexible box model properties by adding and removing | |||
// corrosponding CSS classes. | |||
// Defined in IPython/html/static/base/less/flexbox.less | |||
Jonathan Frederic
|
r14333 | this.set_flex_property('vbox', this.model.get('_vbox')); | |
this.set_flex_property('hbox', this.model.get('_hbox')); | |||
this.set_flex_property('start', this.model.get('_pack_start')); | |||
this.set_flex_property('center', this.model.get('_pack_center')); | |||
this.set_flex_property('end', this.model.get('_pack_end')); | |||
Jonathan Frederic
|
r14335 | this.set_flex_property('align-start', this.model.get('_align_start')); | |
this.set_flex_property('align-center', this.model.get('_align_center')); | |||
this.set_flex_property('align-end', this.model.get('_align_end')); | |||
this.set_flex_property('box-flex0', this.model.get('_flex0')); | |||
this.set_flex_property('box-flex1', this.model.get('_flex1')); | |||
this.set_flex_property('box-flex2', this.model.get('_flex2')); | |||
Jonathan Frederic
|
r14333 | ||
Jonathan Frederic
|
r14279 | return IPython.WidgetView.prototype.update.call(this); | |
Jonathan Frederic
|
r14268 | }, | |
Jonathan Frederic
|
r14278 | ||
Jonathan Frederic
|
r14333 | set_flex_property: function(property_name, enabled) { | |
if (enabled) { | |||
this.$el.addClass(property_name); | |||
} else { | |||
this.$el.removeClass(property_name); | |||
} | |||
}, | |||
display_child: function(view) { | |||
Jonathan Frederic
|
r14280 | this.$el.append(view.$el); | |
Jonathan Frederic
|
r14278 | }, | |
Jonathan Frederic
|
r14263 | }); | |
Jonathan Frederic
|
r14252 | ||
Jonathan Frederic
|
r14374 | widget_manager.register_widget_view('ContainerView', ContainerView); | |
Jonathan Frederic
|
r14263 | }); |