##// END OF EJS Templates
font awesome icon
font awesome icon

File last commit:

r19799:9603e514 merge
r20397:ae55f08d
Show More
widget_box.js
154 lines | 5.3 KiB | application/javascript | JavascriptLexer
Jonathan Frederic
Almost done!...
r17198 // Copyright (c) IPython Development Team.
// Distributed under the terms of the Modified BSD License.
Jonathan Frederic
Added standard IPY JS header to widget JS files.
r14366
Jonathan Frederic
Almost done!...
r17198 define([
"widgets/js/widget",
Jonathan Frederic
Fix all the tests
r17216 "jqueryui",
Jonathan Frederic
Add a WrappedError class
r18895 "base/js/utils",
MinRK
add bootstrap shim for require...
r17312 "bootstrap",
Jonathan Frederic
Add a WrappedError class
r18895 ], function(widget, $, utils){
Matthias Bussonnier
Some code cleanup in javascript and python...
r19739 "use strict";
Jonathan Frederic
Added standard IPY JS header to widget JS files.
r14366
Jonathan Frederic
s/Container/Box
r17637 var BoxView = widget.DOMWidgetView.extend({
sylvain.corlay
widget simplification continued
r17349 initialize: function(){
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* Public constructor
*/
Jonathan Frederic
s/Container/Box
r17637 BoxView.__super__.initialize.apply(this, arguments);
Jason Grout
Refactor the do_diff and manual child view lists into a separate ViewList object
r18996 this.children_views = new widget.ViewList(this.add_child_model, null, this);
this.listenTo(this.model, 'change:children', function(model, value) {
this.children_views.update(value);
Jason Grout
Live updates for children automatically change container views....
r14503 }, this);
Jason Grout
Refactor the do_diff and manual child view lists into a separate ViewList object
r18996 this.listenTo(this.model, 'change:overflow_x', function(model, value) {
Jonathan Frederic
Fix some bugs found by the widget examples,...
r17727 this.update_overflow_x();
}, this);
Jason Grout
Refactor the do_diff and manual child view lists into a separate ViewList object
r18996 this.listenTo(this.model, 'change:overflow_y', function(model, value) {
Jonathan Frederic
Fix some bugs found by the widget examples,...
r17727 this.update_overflow_y();
}, this);
Jason Grout
Refactor the do_diff and manual child view lists into a separate ViewList object
r18996 this.listenTo(this.model, 'change:box_style', function(model, value) {
Jonathan Frederic
Added Bootstrap specific classes,...
r17728 this.update_box_style();
}, this);
Jason Grout
Live updates for children automatically change container views....
r14503 },
sylvain.corlay
widget simplification continued
r17349
Jonathan Frederic
Initial crack at using specific traits for styling.
r17722 update_attr: function(name, value) {
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* Set a css attr of the widget view.
*/
Jonathan Frederic
Initial crack at using specific traits for styling.
r17722 this.$box.css(name, value);
},
sylvain.corlay
widget simplification continued
r17349 render: function(){
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* Called when view is rendered.
*/
Jonathan Frederic
Fixed typo
r17663 this.$box = this.$el;
Jonathan Frederic
Fix logic, use box where applicable
r17661 this.$box.addClass('widget-box');
Jason Grout
Refactor the do_diff and manual child view lists into a separate ViewList object
r18996 this.children_views.update(this.model.get('children'));
Jonathan Frederic
Fix some bugs found by the widget examples,...
r17727 this.update_overflow_x();
this.update_overflow_y();
Jonathan Frederic
Added Bootstrap specific classes,...
r17728 this.update_box_style('');
Jonathan Frederic
Fix some bugs found by the widget examples,...
r17727 },
update_overflow_x: function() {
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* Called when the x-axis overflow setting is changed.
*/
Jonathan Frederic
Fix some bugs found by the widget examples,...
r17727 this.$box.css('overflow-x', this.model.get('overflow_x'));
},
update_overflow_y: function() {
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* Called when the y-axis overflow setting is changed.
*/
Jonathan Frederic
Fix some bugs found by the widget examples,...
r17727 this.$box.css('overflow-y', this.model.get('overflow_y'));
Jason Grout
Live updates for children automatically change container views....
r14503 },
Jonathan Frederic
Added Bootstrap specific classes,...
r17728
update_box_style: function(previous_trait_value) {
var class_map = {
success: ['alert', 'alert-success'],
info: ['alert', 'alert-info'],
warning: ['alert', 'alert-warning'],
danger: ['alert', 'alert-danger']
};
this.update_mapped_classes(class_map, 'box_style', previous_trait_value, this.$box);
},
Jason Grout
Live updates for children automatically change container views....
r14503
Jonathan Frederic
Got containers and mutlicontainers working! Yay
r14598 add_child_model: function(model) {
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* Called when a model is added to the children list.
*/
Thomas Kluyver
Allow widget views to be loaded from require modules...
r18142 var that = this;
Jonathan Frederic
Fix view rendering order.
r18883 var dummy = $('<div/>');
that.$box.append(dummy);
Jonathan Frederic
Finished adding error handling.
r18896 return this.create_child_view(model).then(function(view) {
Jason Grout
More simplifications due to promises
r18888 dummy.replaceWith(view.el);
Jonathan Frederic
Fixed bugs in displayed event triggering for containers
r16660
Thomas Kluyver
Allow widget views to be loaded from require modules...
r18142 // Trigger the displayed event of the child view.
that.after_displayed(function() {
view.trigger('displayed');
});
Jonathan Frederic
Finished adding error handling.
r18896 return view;
Jason Grout
Catch errors after our then()s, instead of in parallel with them (this missing exceptions)...
r19080 }).catch(utils.reject("Couldn't add child view to box", true));
Jonathan Frederic
Lots of updates to widget(s) js...
r14263 },
Jason Grout
Refactor the do_diff and manual child view lists into a separate ViewList object
r18996
remove: function() {
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* We remove this widget before removing the children as an optimization
* we want to remove the entire container from the DOM first before
* removing each individual child separately.
*/
Jason Grout
Refactor the do_diff and manual child view lists into a separate ViewList object
r18996 BoxView.__super__.remove.apply(this, arguments);
this.children_views.remove();
},
Jonathan Frederic
Lots of updates to widget(s) js...
r14263 });
Jonathan Frederic
Embrace flexible box model
r17596
Jonathan Frederic
s/Container/Box
r17637 var FlexBoxView = BoxView.extend({
Jonathan Frederic
Embrace flexible box model
r17596 render: function(){
Jonathan Frederic
s/Container/Box
r17637 FlexBoxView.__super__.render.apply(this);
Jason Grout
Refactor the do_diff and manual child view lists into a separate ViewList object
r18996 this.listenTo(this.model, 'change:orientation', this.update_orientation, this);
this.listenTo(this.model, 'change:flex', this._flex_changed, this);
this.listenTo(this.model, 'change:pack', this._pack_changed, this);
this.listenTo(this.model, 'change:align', this._align_changed, this);
Jonathan Frederic
Embrace flexible box model
r17596 this._flex_changed();
this._pack_changed();
this._align_changed();
Jonathan Frederic
s/that/this bug
r17688 this.update_orientation();
Sylvain Corlay
adding hbox and vbox...
r17600 },
update_orientation: function(){
var orientation = this.model.get("orientation");
if (orientation == "vertical") {
Jonathan Frederic
Fix logic, use box where applicable
r17661 this.$box.removeClass("hbox").addClass("vbox");
Sylvain Corlay
adding hbox and vbox...
r17600 } else {
Jonathan Frederic
Fix logic, use box where applicable
r17661 this.$box.removeClass("vbox").addClass("hbox");
Sylvain Corlay
adding hbox and vbox...
r17600 }
Jonathan Frederic
Embrace flexible box model
r17596 },
_flex_changed: function(){
if (this.model.previous('flex')) {
Jonathan Frederic
Fix logic, use box where applicable
r17661 this.$box.removeClass('box-flex' + this.model.previous('flex'));
Jonathan Frederic
Embrace flexible box model
r17596 }
Jonathan Frederic
Fix logic, use box where applicable
r17661 this.$box.addClass('box-flex' + this.model.get('flex'));
Jonathan Frederic
Embrace flexible box model
r17596 },
_pack_changed: function(){
if (this.model.previous('pack')) {
Jonathan Frederic
Fix logic, use box where applicable
r17661 this.$box.removeClass(this.model.previous('pack'));
Jonathan Frederic
Embrace flexible box model
r17596 }
Jonathan Frederic
Fix logic, use box where applicable
r17661 this.$box.addClass(this.model.get('pack'));
Jonathan Frederic
Embrace flexible box model
r17596 },
_align_changed: function(){
if (this.model.previous('align')) {
Jonathan Frederic
Fix logic, use box where applicable
r17661 this.$box.removeClass('align-' + this.model.previous('align'));
Jonathan Frederic
Embrace flexible box model
r17596 }
Jonathan Frederic
Fix logic, use box where applicable
r17661 this.$box.addClass('align-' + this.model.get('align'));
Jonathan Frederic
Embrace flexible box model
r17596 },
});
Jonathan Frederic
Almost done!...
r17198 return {
Jonathan Frederic
s/Container/Box
r17637 'BoxView': BoxView,
'FlexBoxView': FlexBoxView,
Jonathan Frederic
Almost done!...
r17198 };
Jonathan Frederic
Added ModalView
r14409 });