Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
b43df96
update scatter_inspector_overlay.py
aaronayres35 Apr 1, 2021
4c34c1c
update tools/image_inspector_tool.py
aaronayres35 Apr 1, 2021
517dfa1
update examples/demo/zoomed_plot/zoom_overlay.py
aaronayres35 Apr 1, 2021
49bc9d7
update and fix examples/demo/financial/stock_prices.py
aaronayres35 Apr 1, 2021
67fc1b1
update examples/demo/financial/correlations.py and fix changes to sca…
aaronayres35 Apr 1, 2021
0a09063
update examples/demo/basic/scatter_toggle.py and fix changes to chaco…
aaronayres35 Apr 2, 2021
1137f04
update examples/demo/basic/scatter_select.py
aaronayres35 Apr 2, 2021
6de2d63
update examples/demo/basic/scatter_rect_select.py
aaronayres35 Apr 2, 2021
4d7ee30
update examples/demo/basic/scatter_inspector.py
aaronayres35 Apr 2, 2021
c48665f
update examples/demo/basic/image_lasso.py
aaronayres35 Apr 2, 2021
066d9f6
update examples/demo/advanced/scalar_image_function_inspector.py
aaronayres35 Apr 2, 2021
e45adbe
updat examples/demo/advanced/scalar_image_function_inspector_old.py
aaronayres35 Apr 2, 2021
c22e513
update examples/demo/chaco_trait_editor.py
aaronayres35 Apr 2, 2021
41f4c0d
update chaco/tools/tests/test_scatter_inspector.py
aaronayres35 Apr 2, 2021
3bd9cc7
update chaco/tools/tests/test_image_inspector.py
aaronayres35 Apr 2, 2021
d422909
update chaco/tools/simple_zoom.py
aaronayres35 Apr 2, 2021
51bf40d
update chaco/tools/range_selection.py tthis was and still is broken
aaronayres35 Apr 2, 2021
db11277
update chaco/tools/range_selection_overlay.py
aaronayres35 Apr 2, 2021
fa617a6
flake8 indentation
aaronayres35 Apr 2, 2021
8680d8c
Merge branch 'master' into replace-dynamic-on_trait_change2
aaronayres35 Apr 2, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 18 additions & 9 deletions chaco/scatter_inspector_overlay.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
# Enthought library imports
from enable.api import ColorTrait, MarkerTrait
from traits.api import Float, Int, Str, Trait
from traits.observation.events import TraitChangeEvent

# Local, relative imports
from .abstract_overlay import AbstractOverlay
Expand Down Expand Up @@ -41,7 +42,7 @@ class ScatterInspectorOverlay(AbstractOverlay):
# using a series of trait change handlers (defined at the end of the
# class)
Comment on lines 42 to 43
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is tangential but i want to dig a little and find the source of this comment - it looks like there was going to be some fancy traits feature which would remove unnecessary code.

#@on_trait_change('component.index.metadata_changed,component.value.metadata_changed')
def metadata_changed(self, object, name, old, new):
def metadata_updated(self, event):
Comment thread
rahulporuri marked this conversation as resolved.
if self.component is not None:
self.component.request_redraw()

Expand Down Expand Up @@ -125,19 +126,27 @@ def _draw_overlay(self, gc, view_bounds=None, mode="normal"):

def _component_changed(self, old, new):
if old:
old.on_trait_change(self._ds_changed, 'index', remove=True)
old.observe(self._ds_changed, 'index', remove=True)
if hasattr(old, "value"):
old.on_trait_change(self._ds_changed, 'value', remove=True)
old.observe(self._ds_changed, 'value', remove=True)
if new:
for dsname in ("index", "value"):
if not hasattr(new, dsname):
continue
new.on_trait_change(self._ds_changed, dsname)
new.observe(self._ds_changed, dsname)
if getattr(new, dsname):
self._ds_changed(new, dsname, None, getattr(new,dsname))

def _ds_changed(self, object, name, old, new):
self._ds_changed(
TraitChangeEvent(
object=new,
name=dsname,
old=None,
new=getattr(new, dsname)
)
)

def _ds_changed(self, event):
old, new = event.old, event.new
if old:
old.on_trait_change(self.metadata_changed, 'metadata_changed', remove=True)
old.observe(self.metadata_updated, 'metadata_changed', remove=True)
if new:
new.on_trait_change(self.metadata_changed, 'metadata_changed')
new.observe(self.metadata_updated, 'metadata_changed')
17 changes: 9 additions & 8 deletions chaco/tools/image_inspector_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,17 +126,18 @@ def _build_text_from_event(self, event):

def _image_inspector_changed(self, old, new):
if old:
old.on_trait_event(self._new_value_updated, 'new_value',
old.observe(self._new_value_updated, 'new_value',
remove=True)
old.on_trait_change(self._tool_visible_changed, "visible",
old.observe(self._tool_visible_updated, "visible",
remove=True)
if new:
new.on_trait_event(self._new_value_updated, 'new_value')
new.on_trait_change(self._tool_visible_changed, "visible")
self._tool_visible_changed()
new.observe(self._new_value_updated, 'new_value')
new.observe(self._tool_visible_updated, "visible")
self._tool_visible_updated()

def _new_value_updated(self, event):
if event is None:
new_value_event = event.new
if new_value_event is None:
self.text = ""
if self.visibility == "auto":
self.visible = False
Expand All @@ -149,13 +150,13 @@ def _new_value_updated(self, event):
else:
self.alternate_position = None

self.text = self._build_text_from_event(event)
self.text = self._build_text_from_event(new_value_event)
self.component.request_redraw()

def _visible_changed(self):
self.component.request_redraw()

def _tool_visible_changed(self):
def _tool_visible_updated(self, event=None):
self.visibility = self.image_inspector.visible
if self.visibility != "auto":
self.visible = self.visibility
Expand Down
10 changes: 5 additions & 5 deletions chaco/tools/range_selection.py
Original file line number Diff line number Diff line change
Expand Up @@ -660,13 +660,13 @@ def _determine_axis(self):
else:
return 0

def __mapper_changed(self):
def __mapper_changed(self, event):
self.deselect()

def _axis_changed(self, old, new):
if old is not None:
self.plot.on_trait_change(self.__mapper_changed,
old + "_mapper", remove=True)
self.plot.observe(
self.__mapper_changed, old + "_mapper", remove=True
)
if new is not None:
self.plot.on_trait_change(self.__mapper_changed,
old + "_mapper", remove=True)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This previous code seems like it was a copy paste error...
Butt the updated code is still not right ad we have a case in the test suite where old is non None, but its listener never was hooked up initially

self.plot.observe(self.__mapper_changed, new + "_mapper")
7 changes: 4 additions & 3 deletions chaco/tools/range_selection_overlay.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,10 +159,11 @@ def _attach_metadata_handler(self, old, new):

datasource = getattr(self.plot, self.axis)
if old:
datasource.on_trait_change(self._metadata_change_handler, "metadata_changed",
remove=True)
datasource.observe(
self._metadata_change_handler, "metadata_changed", remove=True
)
if new:
datasource.on_trait_change(self._metadata_change_handler, "metadata_changed")
datasource.observe(self._metadata_change_handler, "metadata_changed")

def _metadata_change_handler(self, event):
self.component.request_redraw()
Expand Down
4 changes: 2 additions & 2 deletions chaco/tools/simple_zoom.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ def __init__(self, component=None, *args, **kw):
self._orig_low_setting = (x_range.low_setting, y_range.low_setting)
self._orig_high_setting = \
(x_range.high_setting, y_range.high_setting)
component.on_trait_change(self._reset_state_to_current,
component.observe(self._reset_state_to_current,
"index_data_changed")

def enable(self, event=None):
Expand Down Expand Up @@ -571,7 +571,7 @@ def _activate(self):
# implementations of abstract methods on ToolHistoryMixin
#------------------------------------------------------------------------

def _reset_state_to_current(self):
def _reset_state_to_current(self, event=None):
""" Clears the tool history, and sets the current state to be the
first state in the history.
"""
Expand Down
14 changes: 7 additions & 7 deletions chaco/tools/tests/test_image_inspector.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def test_mouse_move_custom_overlay(self):
tool = self.tool

# Add a listener to catch the emitted event:
tool.on_trait_change(self.store_inspector_event, "new_value")
tool.observe(self.store_inspector_event, "new_value")
try:
self.assertIsNone(self.insp_event)

Expand All @@ -67,13 +67,13 @@ def test_mouse_move_custom_overlay(self):

self.assertEqual(self.overlay2.text, 'Position: (0, 0)')
finally:
tool.on_trait_change(self.store_inspector_event, "new_value",
tool.observe(self.store_inspector_event, "new_value",
remove=True)

# Helper methods ----------------------------------------------------------

def store_inspector_event(self, event):
self.insp_event = event
self.insp_event = event.new


class TestImageInspectorToolGray(BaseImageInspectorTool, TestCase):
Expand All @@ -89,7 +89,7 @@ def test_mouse_move_collect_image_info(self):
tool = self.tool

# Add a listener to catch the emitted event:
tool.on_trait_change(self.store_inspector_event, "new_value")
tool.observe(self.store_inspector_event, "new_value")
try:
self.assertIsNone(self.insp_event)

Expand Down Expand Up @@ -136,7 +136,7 @@ def test_mouse_move_collect_image_info(self):
self.assertEqual(self.overlay.text, '(1, 1)\n3')

finally:
tool.on_trait_change(self.store_inspector_event, "new_value",
tool.observe(self.store_inspector_event, "new_value",
remove=True)


Expand All @@ -153,7 +153,7 @@ def test_mouse_move_collect_image_info(self):
tool = self.tool

# Add a listener to catch the emitted event:
tool.on_trait_change(self.store_inspector_event, "new_value")
tool.observe(self.store_inspector_event, "new_value")
try:
self.assertIsNone(self.insp_event)

Expand Down Expand Up @@ -205,5 +205,5 @@ def test_mouse_move_collect_image_info(self):
self.assertEqual(self.overlay.text, '(1, 1)\n(9, 10, 11)')

finally:
tool.on_trait_change(self.store_inspector_event, "new_value",
tool.observe(self.store_inspector_event, "new_value",
remove=True)
13 changes: 7 additions & 6 deletions chaco/tools/tests/test_scatter_inspector.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def test_hover_triggers_event(self):
tool = self.tool

# Add a listener to catch the emitted event:
tool.on_trait_change(self.store_inspector_event, "inspector_event")
tool.observe(self.store_inspector_event, "inspector_event")
try:
self.assertIsNone(self.insp_event)

Expand Down Expand Up @@ -131,14 +131,14 @@ def test_hover_triggers_event(self):
self.assertEqual(self.insp_event.event_type, "hover")
self.assertEqual(self.insp_event.event_index, 1)
finally:
tool.on_trait_change(self.store_inspector_event, "inspector_event",
tool.observe(self.store_inspector_event, "inspector_event",
remove=True)

def test_select_triggers_event(self):
tool = self.tool

# Add a listener to catch the emitted event:
tool.on_trait_change(self.store_inspector_event, "inspector_event")
tool.observe(self.store_inspector_event, "inspector_event")
try:
self.assertIsNone(self.insp_event)

Expand All @@ -162,10 +162,11 @@ def test_select_triggers_event(self):
self.assertEqual(self.insp_event.event_type, "deselect")
self.assertEqual(self.insp_event.event_index, 1)
finally:
tool.on_trait_change(self.store_inspector_event, "inspector_event",
remove=True)
tool.observe(
self.store_inspector_event, "inspector_event", remove=True
)

# Helper methods ----------------------------------------------------------

def store_inspector_event(self, event):
self.insp_event = event
self.insp_event = event.new
6 changes: 3 additions & 3 deletions examples/demo/advanced/scalar_image_function_inspector.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,7 @@ def create_plot(self):
array([]),
sort_order=("ascending","ascending"))
image_index_range = DataRange2D(self._image_index)
self._image_index.on_trait_change(self._metadata_changed,
"metadata_changed")
self._image_index.observe(self._metadata_changed, "metadata_changed")

self._image_value = ImageData(data=array([]), value_depth=1)
image_value_range = DataRange1D(self._image_value)
Expand Down Expand Up @@ -323,7 +322,8 @@ def update(self, model):
# Event handlers
#---------------------------------------------------------------------------

def _metadata_changed(self, old, new):
def _metadata_changed(self, event):
old, new = event.old, event.new
""" This function takes out a cross section from the image data, based
on the line inspector selections, and updates the line and scatter
plots."""
Expand Down
10 changes: 5 additions & 5 deletions examples/demo/advanced/scalar_image_function_inspector_old.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,7 @@ def create_plot(self):
array([]),
sort_order=("ascending","ascending"))
image_index_range = DataRange2D(self._image_index)
self._image_index.on_trait_change(self._metadata_changed,
"metadata_changed")
self._image_index.observe(self._metadata_changed, "metadata_changed")

self._image_value = ImageData(data=array([]), value_depth=1)
image_value_range = DataRange1D(self._image_value)
Expand Down Expand Up @@ -283,7 +282,8 @@ def update(self, model):
# Event handlers
#---------------------------------------------------------------------------

def _metadata_changed(self, old, new):
def _metadata_changed(self, event):
old, new = event.old, event.new
""" This function takes out a cross section from the image data, based
on the line inspector selections, and updates the line and scatter
plots."""
Expand Down Expand Up @@ -353,7 +353,7 @@ class Controller(Handler):
def init(self, info):
self.model = info.object.model
self.view = info.object.view
self.model.on_trait_change(self._model_changed, "model_changed")
self.model.observe(self._model_changed, "model_changed")


#---------------------------------------------------------------------------
Expand All @@ -371,7 +371,7 @@ def edit_plot(self, ui_info):
# Private Controller interface
#---------------------------------------------------------------------------

def _model_changed(self):
def _model_changed(self, event):
if self.view is not None:
self.view.update(self.model)

Expand Down
8 changes: 6 additions & 2 deletions examples/demo/basic/image_lasso.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,11 @@
# # Create the Chaco plot.
#===============================================================================

def lasso_updated(lasso_tool, name, old, new_selections):
def lasso_updated(event):
lasso_tool = event.object
name = event.name
old = event.old
new_selections = event.new
# new_selections is a list of arrays of coordinates in dataspace. It is a
# list because the LassoSelection supports multiple, disjoint selection regions.
for i, selection in enumerate(new_selections):
Expand Down Expand Up @@ -62,7 +66,7 @@ def _create_plot_component():# Create a scalar field to colormap
plot.padding = 50

lasso_selection = LassoSelection(component=img_plot)
lasso_selection.on_trait_change(lasso_updated, "disjoint_selections")
lasso_selection.observe(lasso_updated, "disjoint_selections")
lasso_overlay = LassoOverlay(lasso_selection = lasso_selection, component=img_plot)
img_plot.tools.append(lasso_selection)
img_plot.overlays.append(lasso_overlay)
Expand Down
5 changes: 3 additions & 2 deletions examples/demo/basic/scatter_inspector.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,10 @@ def _create_plot_component():
scatter.overlays.append(overlay)

# Optional: add a listener on inspector events:
def echo(new):
def echo(event):
new = event.new
print("{} event on element {}".format(new.event_type, new.event_index))
inspector.on_trait_change(echo, "inspector_event")
inspector.observe(echo, "inspector_event")

return plot

Expand Down
5 changes: 2 additions & 3 deletions examples/demo/basic/scatter_rect_select.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ class Demo(HasTraits):
resizable=True, title=title
)

def _selection_changed(self):
def _selection_changed(self, event):
mask = self.index_datasource.metadata['selections']
print("New selection: ")
print(compress(mask, arange(len(mask))))
Expand All @@ -123,8 +123,7 @@ def _plot_default(self):

# Set up the trait handler for the selection
self.index_datasource = my_plot.index
rect_selection.on_trait_change(self._selection_changed,
'selection_changed')
rect_selection.observe(self._selection_changed, 'selection_changed')

return plot

Expand Down
5 changes: 2 additions & 3 deletions examples/demo/basic/scatter_select.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ class Demo(HasTraits):
resizable=True, title=title
)

def _selection_changed(self):
def _selection_changed(self, event):
mask = self.index_datasource.metadata['selection']
print("New selection: ")
print(compress(mask, arange(len(mask))))
Expand All @@ -115,8 +115,7 @@ def _plot_default(self):

# Set up the trait handler for the selection
self.index_datasource = my_plot.index
lasso_selection.on_trait_change(self._selection_changed,
'selection_changed')
lasso_selection.observe(self._selection_changed, 'selection_changed')

return plot

Expand Down
7 changes: 4 additions & 3 deletions examples/demo/basic/scatter_toggle.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ class Demo(HasTraits):
resizable=True, title=title
)

def _metadata_handler(self):
def _metadata_handler(self, event):
sel_indices = self.index_datasource.metadata.get('selections', [])
print("Selection indices:", sel_indices)

Expand All @@ -119,8 +119,9 @@ def _plot_default(self):

# Set up the trait handler for the selection
self.index_datasource = my_plot.index
self.index_datasource.on_trait_change(self._metadata_handler,
"metadata_changed")
self.index_datasource.observe(
self._metadata_handler, "metadata_changed"
)

return plot

Expand Down
Loading