diff --git a/prototypes/dyn1.py b/prototypes/dyn1.py new file mode 100644 index 0000000..4022e12 --- /dev/null +++ b/prototypes/dyn1.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python + +from bokeh.layouts import column#, layout +from bokeh.models import Button, ColumnDataSource +from bokeh.models.widgets import Div, Panel, Tabs +from bokeh.plotting import curdoc +from bokeh.plotting import figure + +def add_button(): + print("adding") + + data = { + "x": [0, 1, 2], + "y": [2, 0, 1] + } + source = ColumnDataSource(data=data) + + fig = figure() + fig.step(x="x", y="y", source=source, mode="after") + fig.circle(x="x", y="y", source=source) + pan = Panel(child=fig, title="test", closable=True) + tab = [pan] + + size = 25 + height, width = fig.height, fig.width + btn = Button(label="X", button_type="danger", margin=(-height+size, 0, 0, width-size), width=0, height=0, width_policy="fixed", height_policy="fixed") + + layout.children.append(Tabs(tabs=tab)) + layout.children.append(btn) + + +button = Button(label="Click to add", button_type="success") +button.on_click(add_button) +layout = column(button) +curdoc().add_root(layout) + + + diff --git a/prototypes/dyn2.py b/prototypes/dyn2.py new file mode 100644 index 0000000..d23f730 --- /dev/null +++ b/prototypes/dyn2.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python + +import numpy as np +from bokeh.layouts import row, column#, layout +from bokeh.models import Button, ColumnDataSource +from bokeh.models import Spacer +from bokeh.models.widgets import Div, Panel, Tabs +from bokeh.plotting import curdoc +from bokeh.plotting import figure + + +def add_button(): + print("adding") + + btn = Button(label="🗙", button_type="light", width=35) + + lbl = Div(text="A test plot", align="center", style={"font-size": "150%"}) + + data = { + "x": [0, 1, 2], + "y": np.random.random((3,)) + } + source = ColumnDataSource(data=data) + + fig = figure() + fig.step(x="x", y="y", source=source, mode="after") + fig.circle(x="x", y="y", source=source) + + combo = column(row(btn, lbl), fig, Spacer(height=35)) + btn.on_click(lambda: remove_button(combo)) + + layout.children.append(combo) + + + +def remove_button(which): + print("removing", which) + layout.children.remove(which) + + + +button = Button(label="Click to add", button_type="success") +#button0 = Button(label="Click to add", button_type="default") +#button1 = Button(label="Click to add", button_type="primary") +#button2 = Button(label="Click to add", button_type="success") +#button3 = Button(label="Click to add", button_type="warning") +#button4 = Button(label="Click to add", button_type="danger") +#button5 = Button(label="Click to add", button_type="light") + +button.on_click(add_button) +layout = column(button)#, button0, button1, button2, button3, button4, button5) +curdoc().add_root(layout) + + +