Skip to content

Commit

Permalink
Merge pull request #301 from OpenTrafficCam/bug/2341-certain-abstract…
Browse files Browse the repository at this point in the history
…-methods-defined-by-interface-are-not-implemented-in-frametrackplotting-and-framecanvas-classes

Bug/2341 certain abstract methods defined by interface are not implemented in frametrackplotting and framecanvas classes
  • Loading branch information
briemla committed Aug 14, 2023
2 parents 73c6f13 + efcc989 commit 7a75e18
Show file tree
Hide file tree
Showing 7 changed files with 7 additions and 38 deletions.
4 changes: 0 additions & 4 deletions OTAnalytics/adapter_ui/abstract_frame_canvas.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,6 @@ class AbstractFrameCanvas:
def introduce_to_viewmodel(self) -> None:
pass

@abstractmethod
def update_show_tracks(self, value: bool) -> None:
pass

@abstractmethod
def update_background(self, image: TrackImage) -> None:
pass
Expand Down
6 changes: 1 addition & 5 deletions OTAnalytics/adapter_ui/view_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def set_flows_frame(self, frame: AbstractFrame) -> None:
pass

@abstractmethod
def set_tracks_canvas(self, tracks_canvas: AbstractFrameCanvas) -> None:
def set_frame_canvas(self, tracks_canvas: AbstractFrameCanvas) -> None:
pass

@abstractmethod
Expand Down Expand Up @@ -211,10 +211,6 @@ def save_events(self, file: str) -> None:
def export_events(self) -> None:
raise NotImplementedError

@abstractmethod
def update_show_tracks_state(self, value: bool) -> None:
pass

@abstractmethod
def set_track_offset(self, offset_x: float, offset_y: float) -> None:
pass
Expand Down
11 changes: 0 additions & 11 deletions OTAnalytics/application/state.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,6 @@ class TrackViewState:

def __init__(self) -> None:
self.background_image = ObservableOptionalProperty[TrackImage]()
self.show_tracks = ObservableOptionalProperty[bool]()
self.track_offset = ObservableOptionalProperty[RelativeOffsetCoordinate](
RelativeOffsetCoordinate(0.5, 0.5)
)
Expand Down Expand Up @@ -299,7 +298,6 @@ def __init__(
self._section_state = section_state
self._flow_state = flow_state
self._plotter = plotter
self._track_view_state.show_tracks.register(self._notify_show_tracks)
self._track_view_state.track_offset.register(self._notify_track_offset)
self._track_view_state.filter_element.register(self._notify_filter_element)
self._section_state.selected_sections.register(self._notify_section_selection)
Expand All @@ -323,15 +321,6 @@ def notify_tracks(self, tracks: list[TrackId]) -> None:
"""
self._update_image()

def _notify_show_tracks(self, show_tracks: Optional[bool]) -> None:
"""
Will update the image according to changes of the show tracks property.
Args:
show_tracks (Optional[bool]): current value
"""
self._update()

def _notify_track_offset(self, offset: Optional[RelativeOffsetCoordinate]) -> None:
"""
Will update the image according to changes of the track offset property.
Expand Down
17 changes: 2 additions & 15 deletions OTAnalytics/plugin_ui/customtkinter_gui/dummy_viewmodel.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,9 +169,6 @@ def register_to_subjects(self) -> None:
self._application.track_view_state.selected_videos.register(
self._update_selected_videos
)
self._application.track_view_state.show_tracks.register(
self._on_show_tracks_state_updated
)
self._application.section_state.selected_sections.register(
self._update_selected_sections
)
Expand Down Expand Up @@ -246,13 +243,6 @@ def _on_section_changed(self, section_id: SectionId) -> None:
def _on_flow_changed(self, flow_id: FlowId) -> None:
self.notify_flows([flow_id])

def _on_show_tracks_state_updated(self, value: Optional[bool]) -> None:
if self._frame_canvas is None:
raise MissingInjectedInstanceError(AbstractFrameCanvas.__name__)

new_value = value or False
self._frame_canvas.update_show_tracks(new_value)

def _on_background_updated(self, image: Optional[TrackImage]) -> None:
if self._frame_canvas is None:
raise MissingInjectedInstanceError(AbstractFrameCanvas.__name__)
Expand All @@ -262,9 +252,6 @@ def _on_background_updated(self, image: Optional[TrackImage]) -> None:
else:
self._frame_canvas.clear_image()

def update_show_tracks_state(self, value: bool) -> None:
self._application.track_view_state.show_tracks.set(value)

def _update_date_range(self, filter_element: FilterElement) -> None:
if self._frame_filter is None:
raise MissingInjectedInstanceError(AbstractFrameFilter.__name__)
Expand Down Expand Up @@ -473,8 +460,8 @@ def set_flows_frame(self, frame: AbstractFrame) -> None:
def set_canvas(self, canvas: AbstractCanvas) -> None:
self._canvas = canvas

def set_tracks_canvas(self, tracks_canvas: AbstractFrameCanvas) -> None:
self._frame_canvas = tracks_canvas
def set_frame_canvas(self, frame_canvas: AbstractFrameCanvas) -> None:
self._frame_canvas = frame_canvas

def set_filter_frame(self, filter_frame: AbstractFrameFilter) -> None:
self._frame_filter = filter_frame
Expand Down
2 changes: 1 addition & 1 deletion OTAnalytics/plugin_ui/customtkinter_gui/frame_canvas.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def __init__(self, viewmodel: ViewModel, **kwargs: Any) -> None:
self.introduce_to_viewmodel()

def introduce_to_viewmodel(self) -> None:
self._viewmodel.set_tracks_canvas(self)
self._viewmodel.set_frame_canvas(self)

def _get_widgets(self) -> None:
self.canvas_background = CanvasBackground(
Expand Down
3 changes: 2 additions & 1 deletion tests/OTAnalytics/application/test_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
)
from OTAnalytics.domain.date import DateRange
from OTAnalytics.domain.filter import FilterElement
from OTAnalytics.domain.geometry import RelativeOffsetCoordinate
from OTAnalytics.domain.section import SectionId
from OTAnalytics.domain.track import (
Detection,
Expand Down Expand Up @@ -155,7 +156,7 @@ def test_update_image(self) -> None:
track = Mock(spec=Track)
datastore = Mock(spec=Datastore)
track_view_state = TrackViewState()
track_view_state.show_tracks.set(True)
track_view_state.track_offset.set(RelativeOffsetCoordinate(0.5, 0.7))
track.id = track_id
flow_state = FlowState()
updater = TrackImageUpdater(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def test_plot(self) -> None:
track = Mock(spec=Track)
plotted_tracks = Mock(spec=TrackImage)
track_view_state = TrackViewState()
track_view_state.show_tracks.set(True)
track_view_state.track_offset.set(RelativeOffsetCoordinate(0.5, 0.7))
track_plotter = Mock(sepc=TrackPlotter)
track.id = track_id
track_plotter.plot.return_value = plotted_tracks
Expand Down

0 comments on commit 7a75e18

Please sign in to comment.