##// END OF EJS Templates
add locks to update everywhere by using options to pass this...
add locks to update everywhere by using options to pass this (and check for this)

File last commit:

r14568:515cf551
r14570:4e85339b
Show More
widget_button.js
67 lines | 2.2 KiB | application/javascript | JavascriptLexer
Jonathan Frederic
Added standard IPY JS header to widget JS files.
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.
//----------------------------------------------------------------------------
//============================================================================
// ButtonWidget
//============================================================================
/**
* @module IPython
* @namespace IPython
**/
Jonathan Frederic
Add button widget
r14270
Jonathan Frederic
Updated require.js references
r14537 define(["notebook/js/widgets/widget"], function(widget_manager){
Jonathan Frederic
Add button widget
r14270
var ButtonWidgetModel = IPython.WidgetModel.extend({});
Jonathan Frederic
Changed require.js load calls to allow require.js to pass...
r14374 widget_manager.register_widget_model('ButtonWidgetModel', ButtonWidgetModel);
Jonathan Frederic
Add button widget
r14270
Jonathan Frederic
s/BaseWidgetView/WidgetView and s/WidgetView/DOMWidgetView
r14564 var ButtonView = IPython.DOMWidgetView.extend({
Jonathan Frederic
Add button widget
r14270
// Called when view is rendered.
render : function(){
var that = this;
Jonathan Frederic
Use setElement to set the view's element properly.
r14397 this.setElement($("<button />")
Jonathan Frederic
Changed button to use custom messages instead of state to communicate events.
r14400 .addClass('btn'));
Jonathan Frederic
Add button widget
r14270
this.update(); // Set defaults.
},
update : function(){
Jonathan Frederic
make JS update comment more descriptive (english)
r14568 // Update the contents of this view
//
// Called when the model is changed. The model may have been
// changed by another view or by a state update from the back-end.
Jonathan Frederic
Added labels to basic widgets
r14292 var description = this.model.get('description');
Jonathan Frederic
Use regular expressions when fixing button-like captions
r14369 description = description.replace(/ /g, '&nbsp;', 'm');
description = description.replace(/\n/g, '<br>\n', 'm');
Jonathan Frederic
jslint /widgets
r14466 if (description.length === 0) {
Jonathan Frederic
Added support for multiple spaces in a row...
r14367 this.$el.html('&nbsp;'); // Preserve button height
Jonathan Frederic
Added labels to basic widgets
r14292 } else {
Jonathan Frederic
Added support for multiple lines in button-like widgets
r14368 this.$el.html(description);
Jonathan Frederic
Added labels to basic widgets
r14292 }
Jonathan Frederic
Added support for disabled flag to button widget.
r14430 if (this.model.get('disabled')) {
this.$el.attr('disabled','disabled');
} else {
this.$el.removeAttr('disabled');
}
Jonathan Frederic
s/BaseWidgetView/WidgetView and s/WidgetView/DOMWidgetView
r14564 return IPython.DOMWidgetView.prototype.update.call(this);
Jonathan Frederic
Add button widget
r14270 },
Jonathan Frederic
Changed button to use custom messages instead of state to communicate events.
r14400
events: {
'click': '_handle_click',
},
Jonathan Frederic
Add button widget
r14270
Jonathan Frederic
Changed button to use custom messages instead of state to communicate events.
r14400 _handle_click: function(){
Jonathan Frederic
Made scroll to bottom use msgs...
r14403 this.send({event: 'click'});
Jonathan Frederic
Changed button to use custom messages instead of state to communicate events.
r14400 },
Jonathan Frederic
Add button widget
r14270 });
Jonathan Frederic
Changed require.js load calls to allow require.js to pass...
r14374 widget_manager.register_widget_view('ButtonView', ButtonView);
Jonathan Frederic
Add button widget
r14270
});