Skip to content

Commit 39cbdf3

Browse files
committed
Add js default values for widget-selection
1 parent 7e01697 commit 39cbdf3

File tree

2 files changed

+82
-14
lines changed

2 files changed

+82
-14
lines changed

ipywidgets/static/widgets/js/widget_selection.js

Lines changed: 65 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,26 @@ define([
1212
"bootstrap",
1313
], function(widget, utils, $, _) {
1414

15+
var SelectionModel = widget.DOMWidgetModel.extend({
16+
defaults: _.extend({}, widget.DOMWidgetModel.prototype.defaults, {
17+
_model_name: "SelectionModel",
18+
selected_label: "",
19+
//_options_labels: [],
20+
disabled: false,
21+
description: "",
22+
}),
23+
});
24+
25+
var DropdownModel = SelectionModel.extend({
26+
defaults: _.extend({}, SelectionModel.prototype.defaults, {
27+
_model_name: "DropdownModel",
28+
_view_name: "DropdownView",
29+
button_style: ""
30+
}),
31+
});
32+
1533
var DropdownView = widget.DOMWidgetView.extend({
1634
render : function() {
17-
/**
18-
* Called when view is rendered.
19-
*/
2035
this.$el
2136
.addClass('ipy-widget widget-hbox widget-dropdown');
2237
this.$label = $('<div />')
@@ -149,6 +164,16 @@ define([
149164

150165
});
151166

167+
var RadioButtonsModel = SelectionModel.extend({
168+
defaults: _.extend({}, SelectionModel.prototype.defaults, {
169+
_model_name: "RadioButtonsModel",
170+
_view_name: "RadioButtonsView",
171+
tooltips: [],
172+
icons: [],
173+
button_style: ""
174+
}),
175+
});
176+
152177
var RadioButtonsView = widget.DOMWidgetView.extend({
153178
render : function() {
154179
/**
@@ -255,6 +280,12 @@ define([
255280
},
256281
});
257282

283+
var ToggleButtonsModel = SelectionModel.extend({
284+
defaults: _.extend({}, SelectionModel.prototype.defaults, {
285+
_model_name: "ToggleButtonsModel",
286+
_view_name: "ToggleButtonsView",
287+
}),
288+
});
258289

259290
var ToggleButtonsView = widget.DOMWidgetView.extend({
260291
initialize: function() {
@@ -410,6 +441,12 @@ define([
410441
},
411442
});
412443

444+
var SelectModel = SelectionModel.extend({
445+
defaults: _.extend({}, SelectionModel.prototype.defaults, {
446+
_model_name: "SelectModel",
447+
_view_name: "SelectView",
448+
}),
449+
});
413450

414451
var SelectView = widget.DOMWidgetView.extend({
415452
render: function() {
@@ -517,6 +554,19 @@ define([
517554
},
518555
});
519556

557+
var MultipleSelectionModel = SelectionModel.extend({
558+
defaults: _.extend({}, SelectionModel.prototype.defaults, {
559+
_model_name: "MultipleSelectionModel",
560+
selected_labels: [],
561+
}),
562+
});
563+
564+
var SelectMultipleModel = MultipleSelectionModel.extend({
565+
defaults: _.extend({}, MultipleSelectionModel.prototype.defaults, {
566+
_model_name: "SelectMultipleModel",
567+
_view_name: "SelectMultipleView",
568+
}),
569+
});
520570

521571
var SelectMultipleView = SelectView.extend({
522572
render: function() {
@@ -577,12 +627,18 @@ define([
577627
},
578628
});
579629

580-
581630
return {
582-
'DropdownView': DropdownView,
583-
'RadioButtonsView': RadioButtonsView,
584-
'ToggleButtonsView': ToggleButtonsView,
585-
'SelectView': SelectView,
586-
'SelectMultipleView': SelectMultipleView,
631+
SelectionModel: SelectionModel,
632+
DropdownView: DropdownView,
633+
DropdownModel: DropdownModel,
634+
RadioButtonsView: RadioButtonsView,
635+
RadioButtonsModel: RadioButtonsModel,
636+
ToggleButtonsView: ToggleButtonsView,
637+
ToggleButtonsModel: ToggleButtonsModel,
638+
SelectView: SelectView,
639+
SelectModel: SelectModel,
640+
MultipleSelectionModel: MultipleSelectionModel,
641+
SelectMultipleView: SelectMultipleView,
642+
SelectMultipleModel: SelectMultipleModel,
587643
};
588644
});

ipywidgets/widgets/widget_selection.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,13 @@ def _selected_labels_changed(self, name, old, new):
187187

188188
@register('Jupyter.ToggleButtons')
189189
class ToggleButtons(_Selection):
190-
"""Group of toggle buttons that represent an enumeration. Only one toggle
191-
button can be toggled at any point in time."""
190+
"""Group of toggle buttons that represent an enumeration.
191+
192+
Only one toggle button can be toggled at any point in time.
193+
"""
192194
_view_name = Unicode('ToggleButtonsView', sync=True)
195+
_model_name = Unicode('ToggleButtonsModel', sync=True)
196+
193197
tooltips = List(Unicode(), sync=True)
194198
icons = List(Unicode(), sync=True)
195199

@@ -203,6 +207,7 @@ class ToggleButtons(_Selection):
203207
class Dropdown(_Selection):
204208
"""Allows you to select a single item from a dropdown."""
205209
_view_name = Unicode('DropdownView', sync=True)
210+
_model_name = Unicode('DropdownModel', sync=True)
206211

207212
button_style = CaselessStrEnum(
208213
values=['primary', 'success', 'info', 'warning', 'danger', ''],
@@ -212,21 +217,28 @@ class Dropdown(_Selection):
212217

213218
@register('Jupyter.RadioButtons')
214219
class RadioButtons(_Selection):
215-
"""Group of radio buttons that represent an enumeration. Only one radio
216-
button can be toggled at any point in time."""
220+
"""Group of radio buttons that represent an enumeration.
221+
222+
Only one radio button can be toggled at any point in time.
223+
"""
217224
_view_name = Unicode('RadioButtonsView', sync=True)
225+
_modelname = Unicode('RadioButtonsModel', sync=True)
218226

219227

220228
@register('Jupyter.Select')
221229
class Select(_Selection):
222230
"""Listbox that only allows one item to be selected at any given time."""
223231
_view_name = Unicode('SelectView', sync=True)
232+
_model_name = Unicode('SelectModel', sync=True)
224233

225234

226235
@register('Jupyter.SelectMultiple')
227236
class SelectMultiple(_MultipleSelection):
228237
"""Listbox that allows many items to be selected at any given time.
238+
229239
Despite their names, inherited from ``_Selection``, the currently chosen
230240
option values, ``value``, or their labels, ``selected_labels`` must both be
231-
updated with a list-like object."""
241+
updated with a list-like object.
242+
"""
232243
_view_name = Unicode('SelectMultipleView', sync=True)
244+
_model_name = Unicode('SelectMultipleModel', sync=True)

0 commit comments

Comments
 (0)