widget_button.js
60 lines
| 2.0 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. | ||||
//---------------------------------------------------------------------------- | ||||
//============================================================================ | ||||
// ButtonWidget | ||||
//============================================================================ | ||||
/** | ||||
* @module IPython | ||||
* @namespace IPython | ||||
**/ | ||||
Jonathan Frederic
|
r14270 | |||
Jonathan Frederic
|
r14627 | define(["notebook/js/widgets/widget"], function(WidgetManager){ | ||
Jonathan Frederic
|
r14609 | |||
var ButtonView = IPython.DOMWidgetView.extend({ | ||||
Jonathan Frederic
|
r14270 | render : function(){ | ||
Jonathan Frederic
|
r14609 | // Called when view is rendered. | ||
Jonathan Frederic
|
r14397 | this.setElement($("<button />") | ||
Jonathan Frederic
|
r14400 | .addClass('btn')); | ||
Jonathan Frederic
|
r14270 | |||
this.update(); // Set defaults. | ||||
}, | ||||
update : function(){ | ||||
Jonathan Frederic
|
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
|
r14292 | var description = this.model.get('description'); | ||
Jonathan Frederic
|
r14466 | if (description.length === 0) { | ||
Jonathan Frederic
|
r14663 | this.$el.text(' '); // Preserve button height | ||
Jonathan Frederic
|
r14292 | } else { | ||
Jonathan Frederic
|
r14663 | this.$el.text(description); | ||
Jonathan Frederic
|
r14292 | } | ||
Jonathan Frederic
|
r14430 | if (this.model.get('disabled')) { | ||
this.$el.attr('disabled','disabled'); | ||||
} else { | ||||
this.$el.removeAttr('disabled'); | ||||
} | ||||
Jonathan Frederic
|
r14583 | return ButtonView.__super__.update.apply(this); | ||
Jonathan Frederic
|
r14270 | }, | ||
Jonathan Frederic
|
r14400 | |||
events: { | ||||
Jonathan Frederic
|
r14609 | // Dictionary of events and their handlers. | ||
Jonathan Frederic
|
r14400 | 'click': '_handle_click', | ||
}, | ||||
Jonathan Frederic
|
r14270 | |||
Jonathan Frederic
|
r14400 | _handle_click: function(){ | ||
Jonathan Frederic
|
r14609 | // Handles when the button is clicked. | ||
Jonathan Frederic
|
r14403 | this.send({event: 'click'}); | ||
Jonathan Frederic
|
r14400 | }, | ||
Jonathan Frederic
|
r14270 | }); | ||
Jonathan Frederic
|
r14627 | WidgetManager.register_widget_view('ButtonView', ButtonView); | ||
Jonathan Frederic
|
r14270 | }); | ||