{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "from jp_doodle import dual_canvas\n", "from IPython.display import display\n", "from jp_proxy_widget import notebook_test_helpers\n", "from canvas_test_helpers import ColorTester\n", "\n", "validators = notebook_test_helpers.ValidationSuite()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "c = dual_canvas.DualCanvasWidget(width=220, height=220)\n", "display(c)\n", "def two_rects(c):\n", " r1 = c.rect(x=0, y=0, w=100, h=100, color=\"rgb(123,34,222)\", events=False, name=True)\n", " r2 = c.rect(x=0, y=0, w=100, h=100, color=\"rgb(234,222,111)\", events=True)\n", " return (r1, r2)\n", "(cr1, cr2) = two_rects(c)\n", "cr2.change(color=\"rgb(111,222,222)\")\n", "c.fit()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "c_tester = ColorTester(c, \"change\", height=220)\n", "c_tester.add_check(100, 100, [111,222,222, 255])\n", "validators.add_validation(c, c_tester.validate)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "#c_tester.validate()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "f = dual_canvas.DualCanvasWidget(width=220, height=220)\n", "display(f)\n", "(fr1, fr2) = two_rects(f)\n", "fr2.forget()\n", "f.fit()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "f_tester = ColorTester(f, \"forget\", height=220)\n", "f_tester.add_check(100, 100, [123,34,222, 255])\n", "validators.add_validation(f, f_tester.validate)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "#f_tester.validate()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "v = dual_canvas.DualCanvasWidget(width=220, height=220)\n", "display(v)\n", "(vr1, vr2) = two_rects(v)\n", "vr2.visible(False)\n", "v.fit()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "v_tester = ColorTester(v, \"visible\", height=220)\n", "v_tester.add_check(100, 100, [123,34,222, 255])\n", "validators.add_validation(v, v_tester.validate)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "#v_tester.validate()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "t = dual_canvas.DualCanvasWidget(width=220, height=220)\n", "display(t)\n", "(tr1, tr2) = two_rects(t)\n", "tr2.transition(color=\"rgb(111,222,222)\", seconds_duration=0.01)\n", "t.fit()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "t_tester = ColorTester(t, \"transition\", height=220)\n", "t_tester.add_check(100, 100, [111,222,222, 255])\n", "validators.add_validation(t, t_tester.validate)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "#t_tester.position_to_color_found = {}\n", "#t_tester.validate()\n", "#t.js_debug()\n", "#t.element.request_redraw()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "n = dual_canvas.DualCanvasWidget(width=220, height=220)\n", "display(n.debugging_display())\n", "(nr1, nr2) = two_rects(n)\n", "n_info = []\n", "def n_callback(event):\n", " print(\"called back \" + repr(event.get(\"canvas_name\")))\n", " assert event[\"canvas_name\"] == nr2.name, (event[\"canvas_name\"], nr2.name)\n", " n_info.append(event)\n", " nr2.change(color=\"rgb(111,222,222)\")\n", "nr2.on(\"click\", n_callback)\n", "n.fit()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "n_tester = ColorTester(n, \"on event\", height=220)\n", "n_tester.spoof_event(\"click\", 100, 100)\n", "n_tester.add_check(100, 100, [111,222,222, 255])\n", "validators.add_validation(n, n_tester.validate)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "#n_tester.validate()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "ff = dual_canvas.DualCanvasWidget(width=220, height=220)\n", "display(ff.debugging_display())\n", "(ffr1, ffr2) = two_rects(ff)\n", "ff_info = []\n", "def ff_callback(event):\n", " print(\"called back \" + repr(event.get(\"canvas_name\")))\n", " assert event[\"canvas_name\"] == ffr2.name\n", " ff_info.append(event)\n", " ffr2.change(color=\"rgb(111,222,222)\")\n", "ffr2.on(\"click\", n_callback)\n", "ffr2.off(\"click\")\n", "ff.fit()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "ff_tester = ColorTester(ff, \"off event\", height=220)\n", "ff_tester.spoof_event(\"click\", 100, 100)\n", "ff_tester.add_check(100, 100, [234,222,111, 255])\n", "validators.add_validation(ff, ff_tester.validate)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "#ff_tester.validate()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "do_validations = True\n", "if do_validations:\n", " delay_ms = 5000\n", " display(validators.run_all_in_widget(delay_ms=delay_ms))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 2 }