button.js
39 lines
| 1.2 KiB
| application/javascript
|
JavascriptLexer
Jonathan Frederic
|
r14270 | |||
Jonathan Frederic
|
r14285 | require(["notebook/js/widget"], function(){ | ||
Jonathan Frederic
|
r14270 | |||
var ButtonWidgetModel = IPython.WidgetModel.extend({}); | ||||
IPython.notebook.widget_manager.register_widget_model('ButtonWidgetModel', ButtonWidgetModel); | ||||
var ButtonView = IPython.WidgetView.extend({ | ||||
// Called when view is rendered. | ||||
render : function(){ | ||||
var that = this; | ||||
this.$el = $("<button />") | ||||
.addClass('btn') | ||||
.click(function() { | ||||
Jonathan Frederic
|
r14272 | that.model.set('clicks', that.model.get('clicks') + 1); | ||
Jonathan Frederic
|
r14278 | that.model.update_other_views(that); | ||
Jonathan Frederic
|
r14270 | }); | ||
this.update(); // Set defaults. | ||||
}, | ||||
// Handles: Backend -> Frontend Sync | ||||
// Frontent -> Frontend Sync | ||||
update : function(){ | ||||
Jonathan Frederic
|
r14292 | var description = this.model.get('description'); | ||
if (description.length==0) { | ||||
this.$el.html(' '); // Preserve button height | ||||
} else { | ||||
this.$el.html(description); | ||||
} | ||||
Jonathan Frederic
|
r14279 | return IPython.WidgetView.prototype.update.call(this); | ||
Jonathan Frederic
|
r14270 | }, | ||
}); | ||||
IPython.notebook.widget_manager.register_widget_view('ButtonView', ButtonView); | ||||
}); | ||||