Example #1
0
 def _create_graphic(self) -> Graphics.LineGraphic:
     line_scan_graphic = Graphics.LineGraphic()
     line_scan_graphic.graphic_id = "line_scan"
     line_scan_graphic.label = _("Line Scan")
     line_scan_graphic.vector = self.__stem_controller.line_scan_vector
     line_scan_graphic.is_bounds_constrained = True
     return line_scan_graphic
Example #2
0
 def test_changing_region_properties_change_drawn_graphic_properties(self):
     with TestContext.create_memory_context() as test_context:
         document_model = test_context.create_document_model()
         data_item = DataItem.DataItem(numpy.zeros((8, 8), numpy.uint32))
         document_model.append_data_item(data_item)
         display_item = document_model.get_display_item_for_data_item(data_item)
         regions = list()
         regions.append(Graphics.PointGraphic())
         regions.append(Graphics.RectangleGraphic())
         regions.append(Graphics.EllipseGraphic())
         regions.append(Graphics.LineGraphic())
         regions.append(Graphics.IntervalGraphic())
         regions.append(Graphics.ChannelGraphic())
         for region in regions:
             region.label = "label"
             region.is_position_locked = False
             region.is_shape_locked = False
             region.is_bounds_constrained = False
             display_item.add_graphic(region)
             drawn_graphic = display_item.graphics[-1]
             self.assertEqual(region.label, drawn_graphic.label)
             self.assertEqual(region.is_position_locked, drawn_graphic.is_position_locked)
             self.assertEqual(region.is_shape_locked, drawn_graphic.is_shape_locked)
             self.assertEqual(region.is_bounds_constrained, drawn_graphic.is_bounds_constrained)
             region.label = "label2"
             region.is_position_locked = True
             region.is_shape_locked = True
             region.is_bounds_constrained = True
             self.assertEqual(region.label, drawn_graphic.label)
             self.assertEqual(region.is_position_locked, drawn_graphic.is_position_locked)
             self.assertEqual(region.is_shape_locked, drawn_graphic.is_shape_locked)
             self.assertEqual(region.is_bounds_constrained, drawn_graphic.is_bounds_constrained)
 def test_specific_parts_take_priority_over_all_part(self):
     # setup
     with TestContext.create_memory_context() as test_context:
         document_controller = test_context.create_document_controller()
         document_model = document_controller.document_model
         display_panel = document_controller.selected_display_panel
         data_item = DataItem.DataItem(numpy.zeros((10, 10)))
         document_model.append_data_item(data_item)
         display_item = document_model.get_display_item_for_data_item(
             data_item)
         display_panel.set_display_panel_display_item(display_item)
         header_height = display_panel.header_canvas_item.header_height
         display_panel.root_container.layout_immediate(
             (1000 + header_height, 1000))
         # run test
         rect_region = Graphics.RectangleGraphic()
         rect_region.bounds = (0.25, 0.25), (0.5, 0.5)
         line_region = Graphics.LineGraphic()
         line_region.start = (0.5, 0.5)
         line_region.end = (0.5, 1.0)
         # draws line, then rect
         display_item.add_graphic(line_region)
         display_item.add_graphic(rect_region)
         display_item = document_model.get_display_item_for_data_item(
             data_item)
         # clicking on line should select it
         display_panel.display_canvas_item.simulate_click((500, 600))
         self.assertEqual(display_item.graphic_selection.indexes, set(
             (0, )))
Example #4
0
 def test_selected_item_takes_priority_over_all_part(self):
     # setup
     document_model = DocumentModel.DocumentModel()
     document_controller = DocumentController.DocumentController(
         self.app.ui, document_model, workspace_id="library")
     with contextlib.closing(document_controller):
         display_panel = document_controller.selected_display_panel
         data_item = DataItem.DataItem(numpy.zeros((10, 10)))
         document_model.append_data_item(data_item)
         display_item = document_model.get_display_item_for_data_item(
             data_item)
         display_panel.set_display_panel_display_item(display_item)
         header_height = display_panel.header_canvas_item.header_height
         display_panel.root_container.layout_immediate(
             (1000 + header_height, 1000))
         # run test
         rect_region = Graphics.RectangleGraphic()
         rect_region.bounds = (0.25, 0.25), (0.5, 0.5)
         line_region = Graphics.LineGraphic()
         line_region.start = (0.0, 1.0)
         line_region.end = (0.75, 0.25)
         # draws line, then rect
         display_item.add_graphic(line_region)
         display_item.add_graphic(rect_region)
         display_item = document_model.get_display_item_for_data_item(
             data_item)
         display_panel.display_canvas_item.simulate_click((50, 950))
         self.assertEqual(display_item.graphic_selection.indexes, set(
             (0, )))
         display_panel.display_canvas_item.simulate_click((500, 500))
         self.assertEqual(display_item.graphic_selection.indexes, set(
             (0, )))
Example #5
0
 def test_region_mask_with_different_types_of_graphics(self):
     line_graphic = Graphics.LineGraphic()
     line_graphic.start = (0.25, 0.25)
     line_graphic.end = (0.75, 0.75)
     spot_graphic = Graphics.SpotGraphic()
     spot_graphic.bounds = (0.2, 0.2), (0.1, 0.1)
     ellipse_graphic = Graphics.EllipseGraphic()
     ellipse_graphic.bounds = (0.2, 0.2), (0.1, 0.1)
     rect_graphic = Graphics.RectangleGraphic()
     rect_graphic.bounds = (0.25, 0.25), (0.5, 0.5)
     point_graphic = Graphics.PointGraphic()
     point_graphic.position = (0.25, 0.25)
     wedge_graphic = Graphics.WedgeGraphic()
     line_graphic.get_mask((256, 256))
     spot_graphic.get_mask((256, 256))
     ellipse_graphic.get_mask((256, 256))
     rect_graphic.get_mask((256, 256))
     point_graphic.get_mask((256, 256))