mirror of
https://github.com/jupyter/notebook.git
synced 2024-12-21 04:10:17 +08:00
Prviatize methods that should not be called externally
in Model and View JS widget classes
This commit is contained in:
parent
673a723a73
commit
5ffd0f00c6
@ -42,8 +42,8 @@ define(["components/underscore/underscore-min",
|
|||||||
comm.model = this;
|
comm.model = this;
|
||||||
|
|
||||||
// Hook comm messages up to model.
|
// Hook comm messages up to model.
|
||||||
comm.on_close($.proxy(this.handle_comm_closed, this));
|
comm.on_close($.proxy(this._handle_comm_closed, this));
|
||||||
comm.on_msg($.proxy(this.handle_comm_msg, this));
|
comm.on_msg($.proxy(this._handle_comm_msg, this));
|
||||||
|
|
||||||
return Backbone.Model.apply(this);
|
return Backbone.Model.apply(this);
|
||||||
},
|
},
|
||||||
@ -65,7 +65,64 @@ define(["components/underscore/underscore-min",
|
|||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
handle_status: function (cell, msg) {
|
// Handle when a widget is closed.
|
||||||
|
_handle_comm_closed: function (msg) {
|
||||||
|
for (var cell in this.views) {
|
||||||
|
var views = this.views[cell];
|
||||||
|
for (var view_index in views) {
|
||||||
|
var view = views[view_index];
|
||||||
|
view.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// Handle incomming comm msg.
|
||||||
|
_handle_comm_msg: function (msg) {
|
||||||
|
var method = msg.content.data.method;
|
||||||
|
switch (method){
|
||||||
|
case 'display':
|
||||||
|
|
||||||
|
// Try to get the cell index.
|
||||||
|
var cell = this._get_msg_cell(msg.parent_header.msg_id);
|
||||||
|
if (cell == null) {
|
||||||
|
console.log("Could not determine where the display" +
|
||||||
|
" message was from. Widget will not be displayed")
|
||||||
|
} else {
|
||||||
|
this._display_view(msg.content.data.view_name,
|
||||||
|
msg.content.data.parent,
|
||||||
|
cell);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'update':
|
||||||
|
this._handle_update(msg.content.data.state);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// Handle when a widget is updated via the python side.
|
||||||
|
_handle_update: function (state) {
|
||||||
|
this.updating = true;
|
||||||
|
try {
|
||||||
|
for (var key in state) {
|
||||||
|
if (state.hasOwnProperty(key)) {
|
||||||
|
if (key == "_css"){
|
||||||
|
this.css = state[key];
|
||||||
|
} else {
|
||||||
|
this.set(key, state[key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.id = this.comm.comm_id;
|
||||||
|
this.save();
|
||||||
|
} finally {
|
||||||
|
this.updating = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
_handle_status: function (cell, msg) {
|
||||||
//execution_state : ('busy', 'idle', 'starting')
|
//execution_state : ('busy', 'idle', 'starting')
|
||||||
if (msg.content.execution_state=='idle') {
|
if (msg.content.execution_state=='idle') {
|
||||||
|
|
||||||
@ -90,7 +147,7 @@ define(["components/underscore/underscore-min",
|
|||||||
|
|
||||||
|
|
||||||
// Custom syncronization logic.
|
// Custom syncronization logic.
|
||||||
handle_sync: function (method, options) {
|
_handle_sync: function (method, options) {
|
||||||
var model_json = this.toJSON();
|
var model_json = this.toJSON();
|
||||||
|
|
||||||
// Only send updated state if the state hasn't been changed
|
// Only send updated state if the state hasn't been changed
|
||||||
@ -142,65 +199,8 @@ define(["components/underscore/underscore-min",
|
|||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
// Handle incomming comm msg.
|
|
||||||
handle_comm_msg: function (msg) {
|
|
||||||
var method = msg.content.data.method;
|
|
||||||
switch (method){
|
|
||||||
case 'display':
|
|
||||||
|
|
||||||
// Try to get the cell index.
|
|
||||||
var cell = this._get_msg_cell(msg.parent_header.msg_id);
|
|
||||||
if (cell == null) {
|
|
||||||
console.log("Could not determine where the display" +
|
|
||||||
" message was from. Widget will not be displayed")
|
|
||||||
} else {
|
|
||||||
this.display_view(msg.content.data.view_name,
|
|
||||||
msg.content.data.parent,
|
|
||||||
cell);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 'update':
|
|
||||||
this.handle_update(msg.content.data.state);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
// Handle when a widget is updated via the python side.
|
|
||||||
handle_update: function (state) {
|
|
||||||
this.updating = true;
|
|
||||||
try {
|
|
||||||
for (var key in state) {
|
|
||||||
if (state.hasOwnProperty(key)) {
|
|
||||||
if (key == "_css"){
|
|
||||||
this.css = state[key];
|
|
||||||
} else {
|
|
||||||
this.set(key, state[key]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.id = this.comm.comm_id;
|
|
||||||
this.save();
|
|
||||||
} finally {
|
|
||||||
this.updating = false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
// Handle when a widget is closed.
|
|
||||||
handle_comm_closed: function (msg) {
|
|
||||||
for (var cell in this.views) {
|
|
||||||
var views = this.views[cell];
|
|
||||||
for (var view_index in views) {
|
|
||||||
var view = views[view_index];
|
|
||||||
view.remove();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
// Create view that represents the model.
|
// Create view that represents the model.
|
||||||
display_view: function (view_name, parent_comm_id, cell) {
|
_display_view: function (view_name, parent_comm_id, cell) {
|
||||||
var new_views = [];
|
var new_views = [];
|
||||||
|
|
||||||
var displayed = false;
|
var displayed = false;
|
||||||
@ -279,7 +279,7 @@ define(["components/underscore/underscore-min",
|
|||||||
output : $.proxy(cell.output_area.handle_output, cell.output_area),
|
output : $.proxy(cell.output_area.handle_output, cell.output_area),
|
||||||
clear_output : $.proxy(cell.output_area.handle_clear_output, cell.output_area),
|
clear_output : $.proxy(cell.output_area.handle_clear_output, cell.output_area),
|
||||||
status : function(msg){
|
status : function(msg){
|
||||||
that.handle_status(cell, msg);
|
that._handle_status(cell, msg);
|
||||||
},
|
},
|
||||||
get_cell : function() {
|
get_cell : function() {
|
||||||
if (that.last_modified_view != undefined &&
|
if (that.last_modified_view != undefined &&
|
||||||
@ -356,7 +356,7 @@ define(["components/underscore/underscore-min",
|
|||||||
if (this.model.css.hasOwnProperty(selector)) {
|
if (this.model.css.hasOwnProperty(selector)) {
|
||||||
|
|
||||||
// Apply the css traits to all elements that match the selector.
|
// Apply the css traits to all elements that match the selector.
|
||||||
var elements = this.get_selector_element(selector);
|
var elements = this._get_selector_element(selector);
|
||||||
if (elements.length > 0) {
|
if (elements.length > 0) {
|
||||||
var css_traits = this.model.css[selector];
|
var css_traits = this.model.css[selector];
|
||||||
for (var css_key in css_traits) {
|
for (var css_key in css_traits) {
|
||||||
@ -374,7 +374,7 @@ define(["components/underscore/underscore-min",
|
|||||||
var add_class_calls = add_class[0];
|
var add_class_calls = add_class[0];
|
||||||
if (add_class_calls > this._add_class_calls) {
|
if (add_class_calls > this._add_class_calls) {
|
||||||
this._add_class_calls = add_class_calls;
|
this._add_class_calls = add_class_calls;
|
||||||
var elements = this.get_selector_element(add_class[1]);
|
var elements = this._get_selector_element(add_class[1]);
|
||||||
if (elements.length > 0) {
|
if (elements.length > 0) {
|
||||||
elements.addClass(add_class[2]);
|
elements.addClass(add_class[2]);
|
||||||
}
|
}
|
||||||
@ -386,7 +386,7 @@ define(["components/underscore/underscore-min",
|
|||||||
var remove_class_calls = remove_class[0];
|
var remove_class_calls = remove_class[0];
|
||||||
if (remove_class_calls > this._remove_class_calls) {
|
if (remove_class_calls > this._remove_class_calls) {
|
||||||
this._remove_class_calls = remove_class_calls;
|
this._remove_class_calls = remove_class_calls;
|
||||||
var elements = this.get_selector_element(remove_class[1]);
|
var elements = this._get_selector_element(remove_class[1]);
|
||||||
if (elements.length > 0) {
|
if (elements.length > 0) {
|
||||||
elements.removeClass(remove_class[2]);
|
elements.removeClass(remove_class[2]);
|
||||||
}
|
}
|
||||||
@ -394,7 +394,7 @@ define(["components/underscore/underscore-min",
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
get_selector_element: function(selector) {
|
_get_selector_element: function(selector) {
|
||||||
// Get the elements via the css selector. If the selector is
|
// Get the elements via the css selector. If the selector is
|
||||||
// blank, apply the style to the $el_to_style element. If
|
// blank, apply the style to the $el_to_style element. If
|
||||||
// the $el_to_style element is not defined, use apply the
|
// the $el_to_style element is not defined, use apply the
|
||||||
@ -422,7 +422,7 @@ define(["components/underscore/underscore-min",
|
|||||||
|
|
||||||
var that = this;
|
var that = this;
|
||||||
Backbone.sync = function(method, model, options, error) {
|
Backbone.sync = function(method, model, options, error) {
|
||||||
var result = model.handle_sync(method, options);
|
var result = model._handle_sync(method, options);
|
||||||
if (options.success) {
|
if (options.success) {
|
||||||
options.success(result);
|
options.success(result);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user