diff --git a/examples/widgets/Part 1 - Basics.ipynb b/examples/widgets/Part 1 - Basics.ipynb
index f7695ac..4ceea70 100644
--- a/examples/widgets/Part 1 - Basics.ipynb
+++ b/examples/widgets/Part 1 - Basics.ipynb
@@ -110,17 +110,7 @@
],
"language": "python",
"metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'value', 'step', 'max', 'min', 'disabled', 'orientation', 'description']\n",
- "[]\n",
- "[]\n"
- ]
- }
- ],
+ "outputs": [],
"prompt_number": 3
},
{
@@ -145,7 +135,7 @@
"cell_type": "code",
"collapsed": false,
"input": [
- "mywidget.value"
+ "mywidget.value\n"
],
"language": "python",
"metadata": {},
@@ -155,7 +145,7 @@
"output_type": "pyout",
"prompt_number": 13,
"text": [
- "55.1"
+ "42.7"
]
}
],
@@ -182,12 +172,10 @@
{
"metadata": {},
"output_type": "pyout",
- "prompt_number": 11,
+ "prompt_number": 14,
"text": [
"['visible',\n",
" '_css',\n",
- " '_children_attr',\n",
- " '_children_lists_attr',\n",
" 'default_view_name',\n",
" 'value',\n",
" 'step',\n",
@@ -199,7 +187,7 @@
]
}
],
- "prompt_number": 11
+ "prompt_number": 14
},
{
"cell_type": "markdown",
@@ -217,7 +205,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 12
+ "prompt_number": 15
},
{
"cell_type": "markdown",
@@ -238,13 +226,13 @@
{
"metadata": {},
"output_type": "pyout",
- "prompt_number": 30,
+ "prompt_number": 16,
"text": [
"25.0"
]
}
],
- "prompt_number": 30
+ "prompt_number": 16
},
{
"cell_type": "markdown",
@@ -262,18 +250,8 @@
],
"language": "python",
"metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'value', 'values', 'disabled', 'description']\n",
- "[]\n",
- "[]\n"
- ]
- }
- ],
- "prompt_number": 14
+ "outputs": [],
+ "prompt_number": 17
},
{
"cell_type": "code",
@@ -287,13 +265,13 @@
{
"metadata": {},
"output_type": "pyout",
- "prompt_number": 15,
+ "prompt_number": 18,
"text": [
- "u'Item C'"
+ "u'Nothing Selected'"
]
}
],
- "prompt_number": 15
+ "prompt_number": 18
},
{
"cell_type": "heading",
@@ -322,13 +300,13 @@
{
"metadata": {},
"output_type": "pyout",
- "prompt_number": 16,
+ "prompt_number": 19,
"text": [
"u'FloatSliderView'"
]
}
],
- "prompt_number": 16
+ "prompt_number": 19
},
{
"cell_type": "markdown",
@@ -347,7 +325,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 17
+ "prompt_number": 20
},
{
"cell_type": "markdown",
diff --git a/examples/widgets/Part 2 - Events.ipynb b/examples/widgets/Part 2 - Events.ipynb
index bd5c574..435eb9f 100644
--- a/examples/widgets/Part 2 - Events.ipynb
+++ b/examples/widgets/Part 2 - Events.ipynb
@@ -25,7 +25,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 1
+ "prompt_number": 2
},
{
"cell_type": "heading",
@@ -82,7 +82,7 @@
]
}
],
- "prompt_number": 2
+ "prompt_number": 3
},
{
"cell_type": "markdown",
@@ -108,7 +108,7 @@
"def on_value_change(name, value):\n",
" print(value)\n",
"\n",
- "#intrange.on_trait_change(on_value_change, 'value')"
+ "intrange.on_trait_change(on_value_change, 'value')"
],
"language": "python",
"metadata": {},
@@ -117,13 +117,298 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'value', 'step', 'max', 'min', 'disabled', 'orientation', 'description']\n",
- "[]\n",
- "[]\n"
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "11\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "12\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "13\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "14\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "15\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "16\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "17\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "18\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "19\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "18\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "17\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "16\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "12\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "18\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "39\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "60\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "68\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "75\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "79\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "82\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "85\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "86\n"
]
}
],
- "prompt_number": 9
+ "prompt_number": 5
},
{
"cell_type": "heading",
@@ -175,7 +460,7 @@
]
}
],
- "prompt_number": 4
+ "prompt_number": 6
},
{
"cell_type": "markdown",
@@ -200,269 +485,255 @@
"text": [
"hi\n"
]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "button = widgets.ButtonWidget(description=\"Click Me!\")\n",
- "display(button)\n",
- "\n",
- "def on_button_clicked(sender):\n",
- " print(\"Button clicked.\")\n",
- " intrange.value +=1\n",
- "\n",
- "button.on_click(on_button_clicked)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
+ },
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "85\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "Button clicked.\n"
+ "84\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "Button clicked.\n"
+ "81\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "Button clicked.\n"
+ "79\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "Button clicked.\n"
+ "73\n"
]
- }
- ],
- "prompt_number": 12
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Event handlers can also be used to create widgets. In the example below, clicking a button spawns another button with a description equal to how many times the parent button had been clicked at the time."
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": [
+ },
{
- "metadata": {},
- "output_type": "pyout",
- "prompt_number": 11,
+ "output_type": "stream",
+ "stream": "stdout",
"text": [
- "{'content': {'data': \"{'parent_header': {}, 'msg_type': u'comm_msg', 'msg_id': u'3DBB06AD83C942DD85DC6477B08F1FBF', 'content': {u'data': {u'method': u'custom', u'custom_content': {u'event': u'click'}}, u'comm_id': u'eea5f11ae7aa473993dd0c81d6016648'}, 'header': {u'username': u'username', u'msg_id': u'3DBB06AD83C942DD85DC6477B08F1FBF', u'msg_type': u'comm_msg', u'session': u'0F6D6BE728DA47A38CFC4BDEACF34FC4'}, 'buffers': [], 'metadata': {}}\\ncustom message {'parent_header': {}, 'msg_type': u'comm_msg', 'msg_id': u'3DBB06AD83C942DD85DC6477B08F1FBF', 'content': {u'data': {u'method': u'custom', u'custom_content': {u'event': u'click'}}, u'comm_id': u'eea5f11ae7aa473993dd0c81d6016648'}, 'header': {u'username': u'username', u'msg_id': u'3DBB06AD83C942DD85DC6477B08F1FBF', u'msg_type': u'comm_msg', u'session': u'0F6D6BE728DA47A38CFC4BDEACF34FC4'}, 'buffers': [], 'metadata': {}}\\nhandling click\\n{u'event': u'click'}\\nButton clicked.\\n2\\n\",\n",
- " 'name': 'stdout'},\n",
- " 'header': {'msg_id': 'd9dc144a-d86c-42c1-8bab-f8a6bc525723',\n",
- " 'msg_type': 'stream',\n",
- " 'session': '9b9408d8-7420-4e0c-976d-cdda9f8d2564',\n",
- " 'username': 'kernel'},\n",
- " 'metadata': {},\n",
- " 'msg_id': 'd9dc144a-d86c-42c1-8bab-f8a6bc525723',\n",
- " 'msg_type': 'stream',\n",
- " 'parent_header': {'msg_id': '3DBB06AD83C942DD85DC6477B08F1FBF',\n",
- " 'msg_type': 'comm_msg',\n",
- " 'session': '0F6D6BE728DA47A38CFC4BDEACF34FC4',\n",
- " 'username': 'username'}}"
+ "70\n"
]
- }
- ],
- "prompt_number": 11
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "def show_button(sender=None):\n",
- " button = widgets.ButtonWidget()\n",
- " button.clicks = 0\n",
- " if sender is None:\n",
- " button.description = \"0\"\n",
- " else:\n",
- " sender.clicks += 1\n",
- " button.description = \"%d\" % sender.clicks\n",
- " display(button)\n",
- " button.on_click(show_button)\n",
- "show_button()\n",
- " "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
+ },
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "67\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "59\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "56\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "53\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "51\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "49\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "47\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "45\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "44\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "42\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "button = widgets.ButtonWidget(description=\"Click Me!\")\n",
+ "display(button)\n",
+ "\n",
+ "def on_button_clicked(sender):\n",
+ " print(\"Button clicked.\")\n",
+ " intrange.value +=1\n",
+ "\n",
+ "button.on_click(on_button_clicked)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Button clicked.\n",
+ "43\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "Button clicked.\n",
+ "44\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "Button clicked.\n",
+ "45\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "Button clicked.\n",
+ "46\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "Button clicked.\n",
+ "47\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "Button clicked.\n",
+ "48\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'description', 'disabled']\n",
- "[]\n",
- "[]\n"
+ "Button clicked.\n",
+ "49\n"
]
}
],
- "prompt_number": 7
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Event handlers can also be used to create widgets. In the example below, clicking a button spawns another button with a description equal to how many times the parent button had been clicked at the time."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 11,
+ "text": [
+ "{'content': {'data': \"{'parent_header': {}, 'msg_type': u'comm_msg', 'msg_id': u'3DBB06AD83C942DD85DC6477B08F1FBF', 'content': {u'data': {u'method': u'custom', u'custom_content': {u'event': u'click'}}, u'comm_id': u'eea5f11ae7aa473993dd0c81d6016648'}, 'header': {u'username': u'username', u'msg_id': u'3DBB06AD83C942DD85DC6477B08F1FBF', u'msg_type': u'comm_msg', u'session': u'0F6D6BE728DA47A38CFC4BDEACF34FC4'}, 'buffers': [], 'metadata': {}}\\ncustom message {'parent_header': {}, 'msg_type': u'comm_msg', 'msg_id': u'3DBB06AD83C942DD85DC6477B08F1FBF', 'content': {u'data': {u'method': u'custom', u'custom_content': {u'event': u'click'}}, u'comm_id': u'eea5f11ae7aa473993dd0c81d6016648'}, 'header': {u'username': u'username', u'msg_id': u'3DBB06AD83C942DD85DC6477B08F1FBF', u'msg_type': u'comm_msg', u'session': u'0F6D6BE728DA47A38CFC4BDEACF34FC4'}, 'buffers': [], 'metadata': {}}\\nhandling click\\n{u'event': u'click'}\\nButton clicked.\\n2\\n\",\n",
+ " 'name': 'stdout'},\n",
+ " 'header': {'msg_id': 'd9dc144a-d86c-42c1-8bab-f8a6bc525723',\n",
+ " 'msg_type': 'stream',\n",
+ " 'session': '9b9408d8-7420-4e0c-976d-cdda9f8d2564',\n",
+ " 'username': 'kernel'},\n",
+ " 'metadata': {},\n",
+ " 'msg_id': 'd9dc144a-d86c-42c1-8bab-f8a6bc525723',\n",
+ " 'msg_type': 'stream',\n",
+ " 'parent_header': {'msg_id': '3DBB06AD83C942DD85DC6477B08F1FBF',\n",
+ " 'msg_type': 'comm_msg',\n",
+ " 'session': '0F6D6BE728DA47A38CFC4BDEACF34FC4',\n",
+ " 'username': 'username'}}"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def show_button(sender=None):\n",
+ " button = widgets.ButtonWidget()\n",
+ " button.clicks = 0\n",
+ " if sender is None:\n",
+ " button.description = \"0\"\n",
+ " else:\n",
+ " sender.clicks += 1\n",
+ " button.description = \"%d\" % sender.clicks\n",
+ " display(button)\n",
+ " button.on_click(show_button)\n",
+ "show_button()\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 9
},
{
"cell_type": "code",
diff --git a/examples/widgets/Part 3 - Placement.ipynb b/examples/widgets/Part 3 - Placement.ipynb
index 0bf580d..0293314 100644
--- a/examples/widgets/Part 3 - Placement.ipynb
+++ b/examples/widgets/Part 3 - Placement.ipynb
@@ -17,6 +17,9 @@
"cell_type": "code",
"collapsed": false,
"input": [
+ "\n",
+ "\n",
+ "\n",
"from IPython.html import widgets # Widget definitions\n",
"from IPython.display import display # Used to display widgets in the notebook"
],
@@ -50,7 +53,7 @@
"floatrange = widgets.FloatRangeWidget() # You can set the parent in the constructor,\n",
"\n",
"string = widgets.StringWidget(value='hi')\n",
- "container = widgets.MulticontainerWidget(children=[floatrange, string])\n",
+ "container = widgets.ContainerWidget(children=[floatrange, string])\n",
"\n",
"display(container) # Displays the `container` and all of it's children."
],
@@ -72,15 +75,15 @@
"cell_type": "code",
"collapsed": false,
"input": [
- "container = widgets.MulticontainerWidget()\n",
- "display(container)\n",
+ "intrange = widgets.IntRangeWidget() # Never gets displayed.\n",
+ "container = widgets.MulticontainerWidget(children=[intrange])\n",
"\n",
- "intrange = widgets.IntRangeWidget(parent=container) # Never gets displayed."
+ "display(container)\n"
],
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 3
+ "prompt_number": 5
},
{
"cell_type": "markdown",
@@ -123,20 +126,18 @@
"cell_type": "code",
"collapsed": false,
"input": [
- "container = widgets.MulticontainerWidget()\n",
"\n",
- "floatrange = widgets.FloatRangeWidget(parent=container)\n",
+ "floatrange = widgets.FloatRangeWidget()\n",
"floatrange.default_view_name = \"FloatTextView\" # It can be set as a property.\n",
"\n",
"string = widgets.StringWidget(default_view_name = \"TextAreaView\") # It can also be set in the constructor.\n",
- "string.parent = container\n",
- "\n",
+ "container = widgets.MulticontainerWidget(children=[floatrange, string])\n",
"display(container)"
],
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 5
+ "prompt_number": 6
},
{
"cell_type": "markdown",
@@ -190,18 +191,8 @@
],
"language": "python",
"metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "['visible', '_css', '_children_attr', '_children_lists_attr', 'default_view_name', 'value', 'disabled', 'description']\n",
- "[]\n",
- "[]\n"
- ]
- }
- ],
- "prompt_number": 11
+ "outputs": [],
+ "prompt_number": 7
},
{
"cell_type": "code",
@@ -212,7 +203,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 12
+ "prompt_number": 8
},
{
"cell_type": "code",
@@ -223,7 +214,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 13
+ "prompt_number": 9
},
{
"cell_type": "markdown",
@@ -319,13 +310,6 @@
"text": [
"False\n"
]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "True\n"
- ]
}
],
"prompt_number": 2
diff --git a/examples/widgets/Part 4 - Styles.ipynb b/examples/widgets/Part 4 - Styles.ipynb
index f50422c..0d003ac 100644
--- a/examples/widgets/Part 4 - Styles.ipynb
+++ b/examples/widgets/Part 4 - Styles.ipynb
@@ -53,7 +53,7 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "Set one or more CSS properties of the widget (shared among all of the \n",
+ "Set one or more CSS properties of the widget (shared among all of the\n",
" views). This function has two signatures:\n",
" - set_css(css_dict, [selector=''])\n",
" - set_css(key, value, [selector=''])\n",
@@ -94,8 +94,8 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "Get a CSS property of the widget. Note, this function does not \n",
- " actually request the CSS from the front-end; Only properties that have \n",
+ "Get a CSS property of the widget. Note, this function does not\n",
+ " actually request the CSS from the front-end; Only properties that have\n",
" been set with set_css can be read.\n",
"\n",
" Parameters\n",
@@ -121,7 +121,9 @@
"cell_type": "code",
"collapsed": false,
"input": [
- "container = widgets.ContainerWidget()\n",
+ "label = widgets.StringWidget(default_view_name=\"HTMLView\")\n",
+ "label.value = \"ALERT: Hello World!\"\n",
+ "container = widgets.ContainerWidget(children=[label])\n",
"\n",
"# set_css used to set a single CSS attribute.\n",
"container.set_css('border', '3px solid black') # Border the container\n",
@@ -130,9 +132,6 @@
"container.set_css({'padding': '6px', # Add padding to the container\n",
" 'background': 'yellow'}) # Fill the container yellow\n",
"\n",
- "label = widgets.StringWidget(default_view_name=\"HTMLView\", parent=container)\n",
- "label.value = \"ALERT: Hello World!\"\n",
- "\n",
"display(container)"
],
"language": "python",
@@ -173,10 +172,10 @@
" Parameters\n",
" ----------\n",
" class_name: unicode\n",
- " Class name(s) to add to the DOM element(s). Multiple class names \n",
+ " Class name(s) to add to the DOM element(s). Multiple class names\n",
" must be space separated.\n",
" selector: unicode (optional)\n",
- " JQuery selector to select the DOM element(s) that the class(es) will \n",
+ " JQuery selector to select the DOM element(s) that the class(es) will\n",
" be added to.\n",
" \n"
]
@@ -200,16 +199,16 @@
" 'padding': '6px', \n",
" 'background': 'yellow'}) \n",
"\n",
- "label = widgets.StringWidget(default_view_name=\"HTMLView\", parent=container)\n",
+ "label = widgets.StringWidget(default_view_name=\"HTMLView\")\n",
"label.value = \"ALERT: Hello World!\"\n",
- "\n",
+ "container.children = [label]\n",
"display(container)\n",
"container.add_class('corner-all') # Must be called AFTER display"
],
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 6
+ "prompt_number": 7
},
{
"cell_type": "markdown",
@@ -231,7 +230,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 7
+ "prompt_number": 11
},
{
"cell_type": "markdown",
@@ -261,7 +260,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 8
+ "prompt_number": 12
},
{
"cell_type": "markdown",
@@ -288,16 +287,16 @@
" Parameters\n",
" ----------\n",
" class_name: unicode\n",
- " Class name(s) to remove from the DOM element(s). Multiple class \n",
+ " Class name(s) to remove from the DOM element(s). Multiple class\n",
" names must be space separated.\n",
" selector: unicode (optional)\n",
- " JQuery selector to select the DOM element(s) that the class(es) will \n",
+ " JQuery selector to select the DOM element(s) that the class(es) will\n",
" be removed from.\n",
" \n"
]
}
],
- "prompt_number": 9
+ "prompt_number": 13
},
{
"cell_type": "markdown",
@@ -328,7 +327,15 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 10
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
}
],
"metadata": {}
diff --git a/examples/widgets/Part 5 - Alignment.ipynb b/examples/widgets/Part 5 - Alignment.ipynb
index 4e434ad..8084943 100644
--- a/examples/widgets/Part 5 - Alignment.ipynb
+++ b/examples/widgets/Part 5 - Alignment.ipynb
@@ -132,9 +132,9 @@
"def fill_container(container):\n",
" components = []\n",
" for i in range(3):\n",
- " components.append(widgets.StringWidget(parent=container, default_view_name='HTMLView', value=\"ABC\"[i]))\n",
+ " components.append(widgets.StringWidget(default_view_name='HTMLView', value=\"ABC\"[i]))\n",
" components[i].set_css(child_style)\n",
- " display(components[i])\n",
+ " container.children = components\n",
" \n",
"container = make_container('VBox')\n",
"container.vbox()\n",
@@ -205,7 +205,7 @@
" components[i].flex1()\n",
" elif flexes[i] == 2:\n",
" components[i].flex2()\n",
- " display(components[i])\n",
+ " container.children = components\n",
" \n",
"container = make_container('Different Flex Configurations')\n",
"container.hbox()\n",
@@ -234,7 +234,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 7
+ "prompt_number": 8
},
{
"cell_type": "markdown",
@@ -253,7 +253,7 @@
" components.append(widgets.StringWidget(parent=container, default_view_name='HTMLView', value=\"ABC\"[i]))\n",
" components[i].set_css(child_style)\n",
" components[i].set_css('height', str((i+1) * 50) + 'px')\n",
- " display(components[i])\n",
+ " container.children = components\n",
"\n",
"container = make_container('HBox Align Start')\n",
"container.hbox()\n",
@@ -273,7 +273,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 8
+ "prompt_number": 9
},
{
"cell_type": "markdown",
@@ -288,14 +288,22 @@
"input": [
"container = widgets.ContainerWidget()\n",
"container.hbox()\n",
- "for i in range(15):\n",
- " widgets.FloatRangeWidget(orientation='vertical', parent=container, description=str(i+1), value=50.0)\n",
+ "container.children=[widgets.FloatRangeWidget(orientation='vertical', description=str(i+1), value=50.0) \n",
+ " for i in range(15)]\n",
"display(container)"
],
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 9
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
}
],
"metadata": {}
diff --git a/examples/widgets/Part 6 - Custom Widget.ipynb b/examples/widgets/Part 6 - Custom Widget.ipynb
index f49b0ed..6d3ea76 100644
--- a/examples/widgets/Part 6 - Custom Widget.ipynb
+++ b/examples/widgets/Part 6 - Custom Widget.ipynb
@@ -37,7 +37,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 1
+ "prompt_number": 15
},
{
"cell_type": "markdown",
@@ -56,7 +56,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 2
+ "prompt_number": 16
},
{
"cell_type": "heading",
@@ -112,7 +112,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 3
+ "prompt_number": 17
},
{
"cell_type": "markdown",
@@ -143,7 +143,7 @@
"input": [
"%%javascript\n",
"\n",
- "require([\"notebook/js/widget\"], function(){\n",
+ "require([\"notebook/js/widgets/\"], function(){\n",
"\n",
"});"
],
@@ -160,11 +160,11 @@
"metadata": {},
"output_type": "display_data",
"text": [
- ""
+ ""
]
}
],
- "prompt_number": 4
+ "prompt_number": 18
},
{
"cell_type": "markdown",
@@ -179,7 +179,7 @@
"input": [
"%%javascript\n",
"\n",
- "require([\"notebook/js/widget\"], function(){\n",
+ "require([\"notebook/js/widgets/base\"], function(){\n",
" \n",
" // Define the DateModel and register it with the widget manager.\n",
" var DateModel = IPython.WidgetModel.extend({});\n",
@@ -192,7 +192,7 @@
{
"javascript": [
"\n",
- "require([\"notebook/js/widget\"], function(){\n",
+ "require([\"notebook/js/widgets/base\"], function(){\n",
" \n",
" // Define the DateModel and register it with the widget manager.\n",
" var DateModel = IPython.WidgetModel.extend({});\n",
@@ -202,11 +202,11 @@
"metadata": {},
"output_type": "display_data",
"text": [
- ""
+ ""
]
}
],
- "prompt_number": 5
+ "prompt_number": 20
},
{
"cell_type": "markdown",
@@ -223,7 +223,7 @@
"input": [
"%%javascript\n",
"\n",
- "require([\"notebook/js/widget\"], function(){\n",
+ "require([\"notebook/js/widgets/base\"], function(){\n",
" \n",
" // Define the DateModel and register it with the widget manager.\n",
" var DateModel = IPython.WidgetModel.extend({});\n",
@@ -248,7 +248,7 @@
{
"javascript": [
"\n",
- "require([\"notebook/js/widget\"], function(){\n",
+ "require([\"notebook/js/widgets/base\"], function(){\n",
" \n",
" // Define the DateModel and register it with the widget manager.\n",
" var DateModel = IPython.WidgetModel.extend({});\n",
@@ -270,11 +270,11 @@
"metadata": {},
"output_type": "display_data",
"text": [
- ""
+ ""
]
}
],
- "prompt_number": 6
+ "prompt_number": 23
},
{
"cell_type": "heading",
@@ -301,7 +301,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 7
+ "prompt_number": 24
},
{
"cell_type": "heading",
@@ -346,7 +346,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 8
+ "prompt_number": 25
},
{
"cell_type": "heading",
@@ -369,7 +369,7 @@
"input": [
"%%javascript\n",
"\n",
- "require([\"notebook/js/widget\"], function(){\n",
+ "require([\"notebook/js/widgets/base\"], function(){\n",
" \n",
" // Define the DateModel and register it with the widget manager.\n",
" var DateModel = IPython.WidgetModel.extend({});\n",
@@ -399,7 +399,7 @@
{
"javascript": [
"\n",
- "require([\"notebook/js/widget\"], function(){\n",
+ "require([\"notebook/js/widgets/base\"], function(){\n",
" \n",
" // Define the DateModel and register it with the widget manager.\n",
" var DateModel = IPython.WidgetModel.extend({});\n",
@@ -426,11 +426,11 @@
"metadata": {},
"output_type": "display_data",
"text": [
- ""
+ ""
]
}
],
- "prompt_number": 9
+ "prompt_number": 26
},
{
"cell_type": "markdown",
@@ -445,7 +445,7 @@
"input": [
"%%javascript\n",
"\n",
- "require([\"notebook/js/widget\"], function(){\n",
+ "require([\"notebook/js/widgets/base\"], function(){\n",
" \n",
" // Define the DateModel and register it with the widget manager.\n",
" var DateModel = IPython.WidgetModel.extend({});\n",
@@ -482,7 +482,7 @@
{
"javascript": [
"\n",
- "require([\"notebook/js/widget\"], function(){\n",
+ "require([\"notebook/js/widgets/base\"], function(){\n",
" \n",
" // Define the DateModel and register it with the widget manager.\n",
" var DateModel = IPython.WidgetModel.extend({});\n",
@@ -516,11 +516,11 @@
"metadata": {},
"output_type": "display_data",
"text": [
- ""
+ ""
]
}
],
- "prompt_number": 10
+ "prompt_number": 27
},
{
"cell_type": "markdown",
@@ -539,7 +539,7 @@
"input": [
"%%javascript\n",
"\n",
- "require([\"notebook/js/widget\"], function(){\n",
+ "require([\"notebook/js/widgets/base\"], function(){\n",
" \n",
" // Define the DateModel and register it with the widget manager.\n",
" var DateModel = IPython.WidgetModel.extend({});\n",
@@ -573,7 +573,6 @@
" // Callback for when the date is changed.\n",
" handle_date_change: function(event) {\n",
" this.model.set('value', this.$date.val());\n",
- " this.model.update_other_views(this);\n",
" },\n",
" \n",
" });\n",
@@ -588,7 +587,7 @@
{
"javascript": [
"\n",
- "require([\"notebook/js/widget\"], function(){\n",
+ "require([\"notebook/js/widgets/base\"], function(){\n",
" \n",
" // Define the DateModel and register it with the widget manager.\n",
" var DateModel = IPython.WidgetModel.extend({});\n",
@@ -622,7 +621,6 @@
" // Callback for when the date is changed.\n",
" handle_date_change: function(event) {\n",
" this.model.set('value', this.$date.val());\n",
- " this.model.update_other_views(this);\n",
" },\n",
" \n",
" });\n",
@@ -634,11 +632,11 @@
"metadata": {},
"output_type": "display_data",
"text": [
- ""
+ ""
]
}
],
- "prompt_number": 11
+ "prompt_number": 52
},
{
"cell_type": "heading",
@@ -665,7 +663,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 12
+ "prompt_number": 29
},
{
"cell_type": "markdown",
@@ -683,7 +681,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 13
+ "prompt_number": 30
},
{
"cell_type": "markdown",
@@ -704,13 +702,13 @@
{
"metadata": {},
"output_type": "pyout",
- "prompt_number": 14,
+ "prompt_number": 37,
"text": [
- "'2013-11-28'"
+ "u'1998-12-01'"
]
}
],
- "prompt_number": 14
+ "prompt_number": 37
},
{
"cell_type": "markdown",
@@ -723,12 +721,12 @@
"cell_type": "code",
"collapsed": false,
"input": [
- "my_widget.value = \"1999-12-01\" # December 1st, 1999"
+ "my_widget.value = \"1998-12-01\" # December 1st, 1999"
],
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 15
+ "prompt_number": 34
},
{
"cell_type": "heading",
@@ -786,7 +784,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 16
+ "prompt_number": 38
},
{
"cell_type": "markdown",
@@ -831,7 +829,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 17
+ "prompt_number": 39
},
{
"cell_type": "markdown",
@@ -879,7 +877,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 18
+ "prompt_number": 40
},
{
"cell_type": "markdown",
@@ -957,7 +955,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 19
+ "prompt_number": 41
},
{
"cell_type": "heading",
@@ -982,7 +980,7 @@
"input": [
"%%javascript\n",
"\n",
- "require([\"notebook/js/widget\"], function(){\n",
+ "require([\"notebook/js/widgets/base\"], function(){\n",
" \n",
" // Define the DateModel and register it with the widget manager.\n",
" var DateModel = IPython.WidgetModel.extend({});\n",
@@ -1034,7 +1032,6 @@
" // Callback for when the date is changed.\n",
" handle_date_change: function(event) {\n",
" this.model.set('value', this.$date.val());\n",
- " this.model.update_other_views(this);\n",
" },\n",
" \n",
" });\n",
@@ -1049,7 +1046,7 @@
{
"javascript": [
"\n",
- "require([\"notebook/js/widget\"], function(){\n",
+ "require([\"notebook/js/widgets/base\"], function(){\n",
" \n",
" // Define the DateModel and register it with the widget manager.\n",
" var DateModel = IPython.WidgetModel.extend({});\n",
@@ -1101,7 +1098,6 @@
" // Callback for when the date is changed.\n",
" handle_date_change: function(event) {\n",
" this.model.set('value', this.$date.val());\n",
- " this.model.update_other_views(this);\n",
" },\n",
" \n",
" });\n",
@@ -1113,11 +1109,11 @@
"metadata": {},
"output_type": "display_data",
"text": [
- ""
+ ""
]
}
],
- "prompt_number": 20
+ "prompt_number": 53
},
{
"cell_type": "heading",
@@ -1148,7 +1144,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 21
+ "prompt_number": 43
},
{
"cell_type": "markdown",
@@ -1166,7 +1162,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 22
+ "prompt_number": 44
},
{
"cell_type": "markdown",
@@ -1189,7 +1185,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 23
+ "prompt_number": 57
},
{
"cell_type": "code",
@@ -1201,7 +1197,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 24
+ "prompt_number": 46
},
{
"cell_type": "code",
@@ -1213,7 +1209,35 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 25
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "my_widget.value"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 58,
+ "text": [
+ "u''"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
}
],
"metadata": {}