def test_ui_radio_button_initial_state(interactive=False): filename = "test_ui_radio_button" recording_filename = pjoin(DATA_DIR, filename + ".log.gz") expected_events_counts_filename = pjoin(DATA_DIR, filename + ".json") radio_button_test = ui.RadioButton( labels=["option 1", "option 2\nOption 2", "option 3", "option 4"], position=(100, 100), checked_labels=['option 4']) selected_option = [] def _on_change(radio_button): selected_option.append(radio_button.checked_labels) # Set up a callback when selection changes radio_button_test.on_change = _on_change event_counter = EventCounter() event_counter.monitor(radio_button_test) # Create a show manager and record/play events. show_manager = window.ShowManager(size=(600, 600), title="FURY Checkbox") show_manager.scene.add(radio_button_test) # Recorded events: # 1. Click on button of option 1. # 2. Click on button of option 2. # 3. Click on button of option 2. # 4. Click on text of option 2. # 5. Click on button of option 1. # 6. Click on text of option 3. # 7. Click on button of option 4. # 8. Click on text of option 4. show_manager.play_events_from_file(recording_filename) expected = EventCounter.load(expected_events_counts_filename) event_counter.check_counts(expected) # Check if the right options were selected. expected = [['option 1'], ['option 2\nOption 2'], ['option 2\nOption 2'], ['option 2\nOption 2'], ['option 1'], ['option 3'], ['option 4'], ['option 4']] npt.assert_equal(len(selected_option), len(expected)) assert_arrays_equal(selected_option, expected) del show_manager if interactive: radio_button_test = ui.RadioButton( labels=["option 1", "option 2\nOption 2", "option 3", "option 4"], position=(100, 100), checked_labels=[]) showm = window.ShowManager(size=(600, 600)) showm.scene.add(radio_button_test) showm.start()
def test_ui_radio_button(interactive=False): filename = "test_ui_radio_button" recording_filename = pjoin(DATA_DIR, filename + ".log.gz") expected_events_counts_filename = pjoin(DATA_DIR, filename + ".pkl") radio_button_test = ui.RadioButton( labels=["option 1", "option 2\nOption 2", "option 3", "option 4"], position=(10, 10)) old_positions = [] for option in radio_button_test.options: old_positions.append(option.position) old_positions = np.asarray(old_positions) radio_button_test.position = (100, 100) new_positions = [] for option in radio_button_test.options: new_positions.append(option.position) new_positions = np.asarray(new_positions) npt.assert_allclose(new_positions - old_positions, 90 * np.ones((4, 2))) selected_option = [] def _on_change(radio_button): selected_option.append(radio_button.checked) # Set up a callback when selection changes radio_button_test.on_change = _on_change event_counter = EventCounter() event_counter.monitor(radio_button_test) # Create a show manager and record/play events. show_manager = window.ShowManager(size=(600, 600), title="FURY Checkbox") show_manager.ren.add(radio_button_test) # Recorded events: # 1. Click on button of option 1. # 2. Click on button of option 2. # 3. Click on button of option 2. # 4. Click on text of option 2. # 5. Click on button of option 1. # 6. Click on text of option 3. # 7. Click on button of option 4. # 8. Click on text of option 4. show_manager.play_events_from_file(recording_filename) expected = EventCounter.load(expected_events_counts_filename) event_counter.check_counts(expected) # Check if the right options were selected. expected = [['option 1'], ['option 2\nOption 2'], ['option 2\nOption 2'], ['option 2\nOption 2'], ['option 1'], ['option 3'], ['option 4'], ['option 4']] assert len(selected_option) == len(expected) assert_arrays_equal(selected_option, expected) del show_manager if interactive: radio_button_test = ui.RadioButton( labels=["option 1", "option 2\nOption 2", "option 3", "option 4"], position=(100, 100)) showm = window.ShowManager(size=(600, 600)) showm.ren.add(radio_button_test) showm.start()
######################################################################## # Sphere and Radio Buttons # ======================== # # Add a Sphere to the scene. sphere = actor.sphere(centers=np.array([[50, 0, 0]]), colors=np.array([[0, 0, 1]]), radii=11.0, theta=360, phi=360) # Creating a dict of possible options and mapping it with their values. options = {'Blue': (0, 0, 255), 'Red': (255, 0, 0), 'Green': (0, 255, 0)} color_toggler = ui.RadioButton(list(options), checked_labels=['Blue'], padding=1, font_size=16, font_family='Arial', position=(200, 200)) # A callback which will set the values for the box def toggle_color(radio): vcolors = utils.colors_from_actor(sphere) color = options[radio.checked_labels[0]] vcolors[:] = np.array(color) utils.update_actor(sphere) color_toggler.on_change = toggle_color ###############################################################################
def test_ui_radio_button_default(recording=False): filename = "test_ui_radio_button_initial" recording_filename = pjoin(DATA_DIR, filename + ".log.gz") expected_events_counts_filename = pjoin(DATA_DIR, filename + ".json") radio_button_test = ui.RadioButton( labels=["option 1", "option 2\nOption 2", "option 3", "option 4"], position=(10, 10), checked_labels=[]) old_positions = [] for option in radio_button_test.options.values(): old_positions.append(option.position) old_positions = np.asarray(old_positions) radio_button_test.position = (100, 100) new_positions = [] for option in radio_button_test.options.values(): new_positions.append(option.position) new_positions = np.asarray(new_positions) npt.assert_allclose(new_positions - old_positions, 90 * np.ones((4, 2))) selected_option = [] def _on_change(radio_button): selected_option.append(radio_button.checked_labels) # Set up a callback when selection changes radio_button_test.on_change = _on_change event_counter = EventCounter() event_counter.monitor(radio_button_test) # Create a show manager and record/play events. show_manager = window.ShowManager(size=(600, 600), title="FURY Checkbox") show_manager.scene.add(radio_button_test) if recording: show_manager.record_events_to_file(recording_filename) print(list(event_counter.events_counts.items())) event_counter.save(expected_events_counts_filename) else: # Recorded events: # 1. Click on button of option 1. # 2. Click on button of option 2. # 3. Click on button of option 2. # 4. Click on text of option 2. # 5. Click on button of option 1. # 6. Click on text of option 3. # 7. Click on button of option 4. # 8. Click on text of option 4. show_manager.play_events_from_file(recording_filename) expected = EventCounter.load(expected_events_counts_filename) event_counter.check_counts(expected) # Check if the right options were selected. expected = [['option 1'], ['option 2\nOption 2'], ['option 2\nOption 2'], ['option 2\nOption 2'], ['option 1'], ['option 3'], ['option 4'], ['option 4']] npt.assert_equal(len(selected_option), len(expected)) assert_arrays_equal(selected_option, expected)